|
|
@@ -85,6 +85,7 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
|
|
|
private RemoteFileService fileService;
|
|
|
@Autowired
|
|
|
private CoreSafecheckPlanToCheckOrgTypeMapper coreSafecheckPlanToCheckOrgTypeMapper;
|
|
|
+
|
|
|
@Override
|
|
|
public TableDataInfo<CoreSafecheckPlan> selectPage(CoreSafecheckPlan coreSafecheckPlan) {
|
|
|
//未删除
|
|
|
@@ -192,12 +193,12 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
|
|
|
}
|
|
|
//再处理受检机构类型
|
|
|
List<CoreSafecheckPlanToCheckOrgType> checkOrgTypes = coreSafecheckPlanToCheckOrgTypeMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToCheckOrgType>().eq(CoreSafecheckPlanToCheckOrgType::getPlanId, dto.getId()));
|
|
|
- if(checkOrgTypes!=null){
|
|
|
+ if (checkOrgTypes != null) {
|
|
|
//删除当前计划的受检机构类型
|
|
|
coreSafecheckPlanToCheckOrgTypeMapper.delete(new LambdaQueryWrapper<CoreSafecheckPlanToCheckOrgType>().eq(CoreSafecheckPlanToCheckOrgType::getPlanId, coreSafecheckPlan.getId()));
|
|
|
for (CoreSafecheckPlanToCheckOrgType type :
|
|
|
checkOrgTypes) {
|
|
|
- coreSafecheckPlanToCheckOrgTypeMapper.insert(new CoreSafecheckPlanToCheckOrgType(coreSafecheckPlan.getId(),type.getTypeId()));
|
|
|
+ coreSafecheckPlanToCheckOrgTypeMapper.insert(new CoreSafecheckPlanToCheckOrgType(coreSafecheckPlan.getId(), type.getTypeId()));
|
|
|
}
|
|
|
}
|
|
|
//再处理检查要点关系
|
|
|
@@ -230,6 +231,11 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
|
|
|
CoreSafecheckPlan plan = baseMapper.selectById(id);
|
|
|
//修改所有子计划
|
|
|
List<CoreSafecheckPlan> appPlans = baseMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, id));
|
|
|
+ List<Long> planIds = appPlans.stream().map(CoreSafecheckPlan::getId).collect(Collectors.toList());
|
|
|
+ planIds.add(id);
|
|
|
+ //拿到父计划和所属子计划是否存在已完成
|
|
|
+ Long hasEdit = coreSafetyTaskMapper.selectCount(new LambdaQueryWrapper<CoreSafetyTask>().in(CoreSafetyTask::getPlanId, planIds).in(CoreSafetyTask::getStatus, 3, 4));
|
|
|
+
|
|
|
for (CoreSafecheckPlan ap :
|
|
|
appPlans) {
|
|
|
//修改计划状态为停用
|
|
|
@@ -243,12 +249,14 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
|
|
|
code = CycleCommonEnum.getEnum(Math.toIntExact(plan.getPlanCycle()) + 2);
|
|
|
dateRange = DateUtils.getStartAndEnd(new Date(), code);
|
|
|
}
|
|
|
- //撤回需要删除本周期所有任务
|
|
|
+ //如果不存在已完成撤回需要删除本周期所有任务
|
|
|
|
|
|
if (plan.getPlanCycle() == 6L) {
|
|
|
coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, ap.getId()).between(CoreSafetyTask::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
|
|
|
} else {
|
|
|
- coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, ap.getId()).in(CoreSafetyTask::getStatus, 1, 2).between(CoreSafetyTask::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
|
|
|
+ if (hasEdit == 0) {
|
|
|
+ coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, ap.getId()).in(CoreSafetyTask::getStatus, 1, 2).between(CoreSafetyTask::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
//设置下发状态为未下发
|
|
|
@@ -266,8 +274,9 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
|
|
|
if (plan.getPlanCycle() == 6L) {
|
|
|
coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, plan.getId()).between(CoreSafetyTask::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
|
|
|
} else {
|
|
|
- coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, plan.getId()).in(CoreSafetyTask::getStatus, 1, 2).between(CoreSafetyTask::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
|
|
|
-
|
|
|
+ if (hasEdit == 0) {
|
|
|
+ coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, plan.getId()).in(CoreSafetyTask::getStatus, 1, 2).between(CoreSafetyTask::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -413,12 +422,12 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
|
|
|
}
|
|
|
}
|
|
|
//再处理受检机构类型
|
|
|
- if(coreSafecheckPlan.getCheckOrgTypes()!=null){
|
|
|
+ if (coreSafecheckPlan.getCheckOrgTypes() != null) {
|
|
|
//删除当前计划的受检机构类型
|
|
|
coreSafecheckPlanToCheckOrgTypeMapper.delete(new LambdaQueryWrapper<CoreSafecheckPlanToCheckOrgType>().eq(CoreSafecheckPlanToCheckOrgType::getPlanId, coreSafecheckPlan.getId()));
|
|
|
for (Integer type :
|
|
|
coreSafecheckPlan.getCheckOrgTypes()) {
|
|
|
- coreSafecheckPlanToCheckOrgTypeMapper.insert(new CoreSafecheckPlanToCheckOrgType(coreSafecheckPlan.getId(),type));
|
|
|
+ coreSafecheckPlanToCheckOrgTypeMapper.insert(new CoreSafecheckPlanToCheckOrgType(coreSafecheckPlan.getId(), type));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -428,10 +437,15 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
|
|
|
|
|
|
@Async
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = RuntimeException.class)
|
|
|
public void childrenPlan(Long id) {
|
|
|
//处理子计划
|
|
|
//拿到所有子计划
|
|
|
List<CoreSafecheckPlan> children = baseMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, id));
|
|
|
+ List<Long> planIds = children.stream().map(CoreSafecheckPlan::getId).collect(Collectors.toList());
|
|
|
+ planIds.add(id);
|
|
|
+ Long hasEdit = coreSafetyTaskMapper.selectCount(new LambdaQueryWrapper<CoreSafetyTask>().in(CoreSafetyTask::getPlanId, planIds).in(CoreSafetyTask::getStatus, 3, 4));
|
|
|
+
|
|
|
CoreSafecheckPlan coreSafecheckPlan = baseMapper.selectById(id);
|
|
|
for (CoreSafecheckPlan p :
|
|
|
children) {
|
|
|
@@ -485,12 +499,12 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
|
|
|
}
|
|
|
//再处理受检机构类型
|
|
|
List<CoreSafecheckPlanToCheckOrgType> checkOrgTypes = coreSafecheckPlanToCheckOrgTypeMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToCheckOrgType>().eq(CoreSafecheckPlanToCheckOrgType::getPlanId, coreSafecheckPlan.getId()));
|
|
|
- if(checkOrgTypes!=null){
|
|
|
+ if (checkOrgTypes != null) {
|
|
|
//删除当前计划的受检机构类型
|
|
|
coreSafecheckPlanToCheckOrgTypeMapper.delete(new LambdaQueryWrapper<CoreSafecheckPlanToCheckOrgType>().eq(CoreSafecheckPlanToCheckOrgType::getPlanId, p.getId()));
|
|
|
for (CoreSafecheckPlanToCheckOrgType type :
|
|
|
checkOrgTypes) {
|
|
|
- coreSafecheckPlanToCheckOrgTypeMapper.insert(new CoreSafecheckPlanToCheckOrgType(p.getId(),type.getTypeId()));
|
|
|
+ coreSafecheckPlanToCheckOrgTypeMapper.insert(new CoreSafecheckPlanToCheckOrgType(p.getId(), type.getTypeId()));
|
|
|
}
|
|
|
}
|
|
|
//再处理子计划检查要点关系
|
|
|
@@ -504,25 +518,27 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
|
|
|
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
//如果计划是编辑全部,代表不存在已完成或者逾期的任务,需要删除重新生成
|
|
|
- if (coreSafecheckPlan.getHasEdit() == null && coreSafecheckPlan.isBuildTaskNow() && coreSafecheckPlan.getPlanStatus() == 1) {
|
|
|
+ if (hasEdit == 0 && p.getPlanStatus() == 1) {
|
|
|
coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, p.getId()).in(CoreSafetyTask::getStatus, 1, 2));
|
|
|
} else {
|
|
|
//否则代表编辑名称,需要同步未进行的任务名称
|
|
|
- CoreSafetyTask temp = new CoreSafetyTask();
|
|
|
- temp.setTitle(coreSafecheckPlan.getPlanName());
|
|
|
- coreSafetyTaskMapper.update(temp, new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, p.getId()).in(CoreSafetyTask::getStatus, 1, 2));
|
|
|
+// CoreSafetyTask temp = new CoreSafetyTask();
|
|
|
+// temp.setTitle(coreSafecheckPlan.getPlanName());
|
|
|
+// coreSafetyTaskMapper.update(temp, new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, p.getId()).in(CoreSafetyTask::getStatus, 1, 2));
|
|
|
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
//如果计划是编辑全部,代表不存在已完成或者逾期的任务,需要删除重新生成
|
|
|
- if (coreSafecheckPlan.getHasEdit() == null && coreSafecheckPlan.isBuildTaskNow() && coreSafecheckPlan.getPlanStatus() == 1) {
|
|
|
+ if (hasEdit == 0 && coreSafecheckPlan.getPlanStatus() == 1) {
|
|
|
coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, coreSafecheckPlan.getId()).in(CoreSafetyTask::getStatus, 1, 2));
|
|
|
} else {
|
|
|
//否则代表编辑名称,需要同步未进行的任务名称
|
|
|
- CoreSafetyTask temp = new CoreSafetyTask();
|
|
|
- temp.setTitle(coreSafecheckPlan.getPlanName());
|
|
|
- coreSafetyTaskMapper.update(temp, new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, coreSafecheckPlan.getId()).in(CoreSafetyTask::getStatus, 1, 2));
|
|
|
+// CoreSafetyTask temp = new CoreSafetyTask();
|
|
|
+// temp.setTitle(coreSafecheckPlan.getPlanName());
|
|
|
+// coreSafetyTaskMapper.update(temp, new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, coreSafecheckPlan.getId()).in(CoreSafetyTask::getStatus, 1, 2));
|
|
|
|
|
|
}
|
|
|
}
|
|
|
@@ -625,7 +641,7 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
|
|
|
//registerBookPdf.setFileName(StringUtils.substringAfterLast(url, "\\"));
|
|
|
registerBookPdf.setFileName(StringUtils.substringAfterLast(url, "/"));
|
|
|
registerBookPdf.setOrgName(registerBookVo.getOrgName());
|
|
|
- if(StringUtils.isEmpty(url)||StringUtils.isEmpty(registerBookPdf.getFileName())){
|
|
|
+ if (StringUtils.isEmpty(url) || StringUtils.isEmpty(registerBookPdf.getFileName())) {
|
|
|
throw new SystemException(ErrorMsgConstants.GENERATE_PDF_ERROR);
|
|
|
}
|
|
|
registerBookPdfService.save(registerBookPdf);
|
|
|
@@ -659,7 +675,7 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
|
|
|
private String buildSafeCheckPdfData(SafeCheckTaskRegisterBookVo data) {
|
|
|
|
|
|
String fileOrgName = registerBookPdfService.getFileOrgName(data.getOrgId());
|
|
|
- String fileName = fileOrgName + "_" + RegisterBookType.SAFE_CHECK_REPORT.getText()+ "_" + DateUtil.format(new Date(), "yyyyMMddHHmmss") + ".pdf";
|
|
|
+ String fileName = fileOrgName + "_" + RegisterBookType.SAFE_CHECK_REPORT.getText() + "_" + DateUtil.format(new Date(), "yyyyMMddHHmmss") + ".pdf";
|
|
|
|
|
|
data.setDest(fileName);
|
|
|
//新方式生成pdf
|