package com.gk.hotwork.Service.ServiceImpl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.gk.hotwork.Domain.Exception.BusinessException;
|
import com.gk.hotwork.Domain.SubTaskInfo;
|
import com.gk.hotwork.Domain.TaskEnclosure;
|
import com.gk.hotwork.Domain.UserInfo;
|
import com.gk.hotwork.Mapper.SubTaskInfoMapper;
|
import com.gk.hotwork.Service.SubTaskService;
|
import com.gk.hotwork.Service.TaskEnclosureService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* @author : jingjy
|
* @date : 2021/10/11 16:43
|
*/
|
@Service("SubTaskService")
|
public class SubTaskServiceImpl extends ServiceImpl<SubTaskInfoMapper, SubTaskInfo> implements SubTaskService {
|
@Autowired
|
private TaskEnclosureService taskEnclosureService;
|
@Override
|
public List<SubTaskInfo> getSubTasksByCode(String code) {
|
LambdaQueryWrapper<SubTaskInfo> wrapper = new LambdaQueryWrapper<>();
|
wrapper.eq(SubTaskInfo::getTaskcode,code);
|
List<SubTaskInfo> subTaskInfos = baseMapper.selectList(wrapper);
|
for (SubTaskInfo subTaskInfo : subTaskInfos){
|
if (subTaskInfo.getType().equals("动土作业")){
|
List<TaskEnclosure> enclosures = taskEnclosureService.getFileByCodeAndType(code,"动土方案文件");
|
enclosures.forEach(item->{
|
item.setUrl(item.getFileurl());
|
});
|
subTaskInfo.setSoilfile(enclosures);
|
}
|
if (subTaskInfo.getType().equals("断路作业")){
|
List<TaskEnclosure> enclosures = taskEnclosureService.getFileByCodeAndType(code,"断路地段示意图");
|
enclosures.forEach(item->{
|
item.setUrl(item.getFileurl());
|
});
|
subTaskInfo.setBreakfile(enclosures);
|
}
|
if (subTaskInfo.getType().equals("盲板抽堵作业")){
|
List<TaskEnclosure> enclosures = taskEnclosureService.getFileByCodeAndType(code,"盲板位置图");
|
enclosures.forEach(item->{
|
item.setUrl(item.getFileurl());
|
});
|
subTaskInfo.setBlindboardlocation(enclosures);
|
}
|
}
|
return subTaskInfos;
|
}
|
|
@Override
|
public void removeByCode(String taskCode) {
|
LambdaQueryWrapper<SubTaskInfo> wrapper = new LambdaQueryWrapper<>();
|
wrapper.eq(SubTaskInfo::getTaskcode,taskCode);
|
baseMapper.delete(wrapper);
|
}
|
|
@Override
|
public void saveSubTasks(List<SubTaskInfo> subTaskInfos, String taskCode, UserInfo userInfo, String option) {
|
{
|
if (subTaskInfos == null || subTaskInfos.size() == 0) {throw new BusinessException("请选择涉及的作业信息");}
|
List<TaskEnclosure> enclosures = new ArrayList<>();
|
subTaskInfos.forEach(item-> {
|
item.setTaskcode(taskCode);
|
List<TaskEnclosure> breakFiles = item.getBreakfile();
|
if (breakFiles != null){
|
breakFiles.forEach(item1->{
|
item1.setTaskcode(taskCode);
|
item1.setOriginalname(item1.getName());
|
item1.setCreatedat(new Date());
|
item1.setCreatedby(userInfo.getRealname());
|
item1.setType("断路地段示意图");
|
});
|
enclosures.addAll(breakFiles);
|
}
|
|
List<TaskEnclosure> soilFiles = item.getSoilfile();
|
if (soilFiles != null){
|
soilFiles.forEach(item2->{
|
item2.setTaskcode(taskCode);
|
item2.setOriginalname(item2.getName());
|
item2.setCreatedat(new Date());
|
item2.setCreatedby(userInfo.getRealname());
|
item2.setType("动土方案文件");
|
});
|
enclosures.addAll(soilFiles);
|
}
|
|
|
List<TaskEnclosure> blindBoardLocations = item.getBlindboardlocation();
|
if (blindBoardLocations != null){
|
blindBoardLocations.forEach(item3->{
|
item3.setTaskcode(taskCode);
|
item3.setOriginalname(item3.getName());
|
item3.setCreatedat(new Date());
|
item3.setCreatedby(userInfo.getRealname());
|
item3.setType("盲板位置图");
|
});
|
enclosures.addAll(blindBoardLocations);
|
}
|
|
});
|
if (option.equals("UPDATE")){
|
taskEnclosureService.removeSubFile(taskCode);
|
removeByCode(taskCode);
|
}
|
|
taskEnclosureService.saveBatch(enclosures);
|
saveBatch(subTaskInfos);
|
}
|
}
|
}
|