diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/entity/ProcessEsInspectPlan.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/entity/ProcessEsInspectPlan.java index 6d0b56be..f84e5155 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/entity/ProcessEsInspectPlan.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/entity/ProcessEsInspectPlan.java @@ -14,6 +14,7 @@ import org.jeecgframework.poi.excel.annotation.Excel; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; +import java.util.List; /** @@ -85,7 +86,7 @@ public class ProcessEsInspectPlan extends BaseEntity { @ApiModelProperty(value = "备注") private String remarks; /**意见*/ - @Excel(name = "意见", width = 15) @ApiModelProperty(value = "意见") - private String opinion; + @TableField(exist = false) + private List processEsInspectPlanOpinionList; } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/IEsInspectPlanFlowService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/IEsInspectPlanFlowService.java index bf7ed8ec..73ebff5e 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/IEsInspectPlanFlowService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/IEsInspectPlanFlowService.java @@ -53,4 +53,12 @@ public interface IEsInspectPlanFlowService { * @param userId */ void flowTransfer(String taskId, String userId); + + /** + * 企标稽查计划流程-是否是最后一个节点 + * + * @param processInstanceId + * @return + */ + boolean isLastNode(String processInstanceId); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java index d447f16f..86c90925 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java @@ -133,6 +133,11 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { // 自动完成第一个节点 taskService.complete(task.getId()); + + // 删除草稿 + processDraftService.remove(new LambdaQueryWrapper() + .eq(ProcessDraft::getProjectId, processAll.getProjectId()) + .eq(ProcessDraft::getUserId, loginUser.getId())); } @@ -151,6 +156,12 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { ProcessDraft processDraft = new ProcessDraft(); // 属性拷贝 BeanUtils.copyProperties(processAll, processDraft); + processDraft.setId(""); + processDraft.setUpdateBy(""); + Date date = new Date(); + processDraft.setCreateTime(date); + processDraft.setUpdateBy(""); + processDraft.setUpdateTime(date); // 保存草稿表 if (StringUtils.isNotBlank(processApprovalRecord.getCommitFile())){ processDraft.setHandleFile(processApprovalRecord.getCommitFile()); @@ -159,27 +170,33 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { processDraft.setHandleText(processApprovalRecord.getCommitText()); } processDraft.setUserId(loginUser.getId()); + // 删除旧草稿 + processDraftService.remove(new LambdaQueryWrapper() + .eq(ProcessDraft::getProjectId, processAll.getProjectId()) + .eq(ProcessDraft::getUserId, loginUser.getId())); + // 保存新草稿 processDraftService.save(processDraft); - // 保存企标稽查计划业务表 - List ids = new ArrayList<>(); - for (ProcessEsInspectPlan processEsInspectPlan : processEsInspectPlanList) { - if (StringUtils.isNotBlank(processApprovalRecord.getId())){ - ids.add(processEsInspectPlan.getId()); - } - processEsInspectPlan.setProjectId(processAll.getProjectId()); - } + // 处理企标稽查计划业务表 + List newInspectPlanList = processEsInspectPlanList.stream().filter(v -> StringUtils.isBlank(v.getId())).collect(Collectors.toList()); + List oldInspectPlanList = processEsInspectPlanList.stream().filter(v -> StringUtils.isNotBlank(v.getId())).collect(Collectors.toList()); + // 设置项目id + newInspectPlanList.forEach(v -> v.setProjectId(processAll.getProjectId())); + // 保存新数据 + processEsInspectPlanService.saveBatch(newInspectPlanList); + + // 旧数据ids + List oldIds = oldInspectPlanList.stream().map(ProcessEsInspectPlan::getId).collect(Collectors.toList()); + //删除旧数据 - if (ids.isEmpty()){ + if (oldIds.isEmpty()){ processEsInspectPlanService.remove(new LambdaQueryWrapper() .eq(ProcessEsInspectPlan::getProjectId, processAll.getProjectId())); }else { processEsInspectPlanService.remove(new LambdaQueryWrapper() .eq(ProcessEsInspectPlan::getProjectId, processAll.getProjectId()) - .notIn(ProcessEsInspectPlan::getId, ids)); + .notIn(ProcessEsInspectPlan::getId, oldIds)); } - // 保存新数据 - processEsInspectPlanService.saveOrUpdateBatch(processEsInspectPlanList); } private Map listToString(Map map) { @@ -198,7 +215,8 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { public EsInspectPlanFlowVO queryDetailByProjectId(String projectId, String taskId) { EsInspectPlanFlowVO esInspectPlanFlowVO = new EsInspectPlanFlowVO(); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - ProcessAll processAll = new ProcessAll(); + ProcessAll processAll = processAllService.getOne(new LambdaQueryWrapper() + .eq(ProcessAll::getProjectId, projectId), false); ProcessApprovalRecord processApprovalRecord = new ProcessApprovalRecord(); // 是否存在草稿 @@ -206,10 +224,12 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { .eq(ProcessDraft::getProjectId, projectId) .eq(ProcessDraft::getUserId, loginUser.getId())); if (!processDraftList.isEmpty()){ + String id = processAll.getId(); // 存在草稿 ProcessDraft processDraft = processDraftList.get(0); // 属性拷贝 BeanUtils.copyProperties(processDraft, processAll); + processAll.setId(id); if (StringUtils.isNotBlank(processDraft.getHandleFile())){ processApprovalRecord.setCommitFile(processDraft.getHandleFile()); } @@ -218,9 +238,6 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { } }else { // 不存在草稿 - processAll = processAllService.getOne(new LambdaQueryWrapper() - .eq(ProcessAll::getProjectId, projectId), false); - processApprovalRecord = processApprovalRecordService.getOne(new LambdaQueryWrapper() .eq(ProcessApprovalRecord::getProjectId, projectId) .eq(ProcessApprovalRecord::getUserId, loginUser.getId()) @@ -299,8 +316,8 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { if (task!= null) { // 完成任务 taskService.complete(task.getId(), map); - // 任务结束 - if (EsInspectPlanCommon.PROCESS_NODE_END.equals(task.getName()) + // 判断是否是最后一个节点 + if (isLastNode(processAll.getProcessInstanceId()) && map.containsKey("pass") && (boolean) map.get("pass")){ // 抄送消息 通过hiwork 给稽查联络人抄送消息 List processNodeList = queryPersonInfo(EsInspectPlanCommon.NAME, processAll.getProcessInstanceId()); @@ -332,4 +349,15 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { // 转办 taskService.setAssignee(taskId, userId); } + + @Override + public boolean isLastNode(String processInstanceId) { + // 查询流程实例状态 + ProcessInstance processInstance = runtimeService.createProcessInstanceQuery() + .processInstanceId(processInstanceId) + .singleResult(); + + // 如果流程实例为null,表示流程已结束 + return processInstance == null; + } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/ProcessEsInspectPlanServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/ProcessEsInspectPlanServiceImpl.java index 77596bf8..2f9e9c9b 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/ProcessEsInspectPlanServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/ProcessEsInspectPlanServiceImpl.java @@ -11,7 +11,9 @@ import com.jero.common.exception.JeroBootException; import com.jero.common.util.BeanCopyUtils; import com.jero.common.util.ImportExcelUtil; import com.jero.modules.activiti.process.esinspectplan.entity.ProcessEsInspectPlan; +import com.jero.modules.activiti.process.esinspectplan.entity.ProcessEsInspectPlanOpinion; import com.jero.modules.activiti.process.esinspectplan.mapper.ProcessEsInspectPlanMapper; +import com.jero.modules.activiti.process.esinspectplan.service.IProcessEsInspectPlanOpinionService; import com.jero.modules.activiti.process.esinspectplan.service.IProcessEsInspectPlanService; import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; @@ -47,15 +49,18 @@ public class ProcessEsInspectPlanServiceImpl extends ServiceImpl queryPage(ProcessEsInspectPlan processEsInspectPlan, Integer pageNo, Integer pageSize) { QueryWrapper queryWrapper = getProcessEsInspectPlanQueryWrapper(processEsInspectPlan); Page page = new Page<>(pageNo, pageSize); - return page(page, queryWrapper); + Page pages = page(page, queryWrapper); + fillOpinion(pages.getRecords()); + return pages; } /** @@ -86,9 +93,20 @@ public class ProcessEsInspectPlanServiceImpl extends ServiceImpl queryList(ProcessEsInspectPlan processEsInspectPlan) { QueryWrapper queryWrapper = getProcessEsInspectPlanQueryWrapper(processEsInspectPlan); - return list(queryWrapper); + List list = list(queryWrapper); + fillOpinion(list); + return list; } + private void fillOpinion(List list) { + for (ProcessEsInspectPlan processEsInspectPlan : list) { + List opinionList = iProcessEsInspectPlanOpinionService.list( + new LambdaQueryWrapper() + .eq(ProcessEsInspectPlanOpinion::getInspectPlanId, processEsInspectPlan.getId())); + processEsInspectPlan.setProcessEsInspectPlanOpinionList(opinionList); + } + } + @NotNull private static QueryWrapper getProcessEsInspectPlanQueryWrapper(ProcessEsInspectPlan processEsInspectPlan) { QueryWrapper queryWrapper = new QueryWrapper<>();