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 implements SubTaskService { @Autowired private TaskEnclosureService taskEnclosureService; @Override public List getSubTasksByCode(String code) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(SubTaskInfo::getTaskcode,code); List subTaskInfos = baseMapper.selectList(wrapper); for (SubTaskInfo subTaskInfo : subTaskInfos){ if (subTaskInfo.getType().equals("动土作业")){ List enclosures = taskEnclosureService.getFileByCodeAndType(code,"动土方案文件"); enclosures.forEach(item->{ item.setUrl(item.getFileurl()); }); subTaskInfo.setSoilfile(enclosures); } if (subTaskInfo.getType().equals("断路作业")){ List enclosures = taskEnclosureService.getFileByCodeAndType(code,"断路地段示意图"); enclosures.forEach(item->{ item.setUrl(item.getFileurl()); }); subTaskInfo.setBreakfile(enclosures); } if (subTaskInfo.getType().equals("盲板抽堵作业")){ List enclosures = taskEnclosureService.getFileByCodeAndType(code,"盲板位置图"); enclosures.forEach(item->{ item.setUrl(item.getFileurl()); }); subTaskInfo.setBlindboardlocation(enclosures); } } return subTaskInfos; } @Override public void removeByCode(String taskCode) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(SubTaskInfo::getTaskcode,taskCode); baseMapper.delete(wrapper); } @Override public void saveSubTasks(List subTaskInfos, String taskCode, UserInfo userInfo, String option) { { if (subTaskInfos == null || subTaskInfos.size() == 0) {throw new BusinessException("请选择涉及的作业信息");} List enclosures = new ArrayList<>(); subTaskInfos.forEach(item-> { item.setTaskcode(taskCode); List 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 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 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); } } }