diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java index dd6920db..f21ebc1d 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java @@ -21,6 +21,7 @@ public enum ProcessType { ES_RECHECK("企标复审流程", "8", "es-recheck", "ProcessEsRecheckServiceImpl"), ES_ENABLE("已封存企标启用流程", "9", "es-enable", "ProcessEsEnableServiceImpl"), ES_INSPECT_PLAN("企标稽查计划", "16", "es-inspect_plan", "ProcessEsInspectPlanServiceImpl"), + ES_INSPECT("企标稽查流程", "17", "es-inspect", "ProcessEsInspectServiceImpl"), ; private final String name; diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/controller/ProcessEsInspectController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/controller/ProcessEsInspectController.java index 383d8658..0da43d7c 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/controller/ProcessEsInspectController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/controller/ProcessEsInspectController.java @@ -44,10 +44,9 @@ public class ProcessEsInspectController extends JeroController map = esInspectFlowVO.getMap(); + // 根据流程key启动流程 同时 设置审批人员参数 + ProcessInstance processInstance = runtimeService + .startProcessInstanceByKey(EsInspectPlanCommon.KEY, map); + + // 再次设置map + runtimeService.setVariables(processInstance.getId(), map); + + // 更新流程总表信息 + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + processAll.setPrcType(Integer.valueOf(ProcessType.ES_INSPECT.getValue())); + processAll.setCreateUserId(loginUser.getId()); + processAllService.update(processAll, + new LambdaUpdateWrapper() + .eq(ProcessAll::getProcessInstanceId, processInstance.getId())); + + // 根据流程实例id查询 + Task task = taskService.createTaskQuery() + .processInstanceId(processInstance.getId()) + .singleResult(); + + // 更新流程审批信息 + processApprovalRecord.setUserId(loginUser.getId()); + processApprovalRecord.setProjectId(processAll.getProjectId()); + processApprovalRecord.setFinishFlag(FinishFlagEnum.COMPLETE.getValue()); + processApprovalRecordService.update(processApprovalRecord, + new LambdaUpdateWrapper() + .eq(ProcessApprovalRecord::getTaskId, task.getId())); + + // 新增流程实例节点关联用户表 + processNodeLinkService.saveNodeUserLink(processInstance.getProcessDefinitionId(), processInstance.getId(), listToString(map)); + + // 自动完成第一个节点 + taskService.complete(task.getId()); + + // 删除草稿 + processDraftService.remove(new LambdaQueryWrapper() + .eq(ProcessDraft::getProjectId, processAll.getProjectId()) + .eq(ProcessDraft::getUserId, loginUser.getId())); } + private Map listToString(Map map) { + Map stringObjectHashMap; + stringObjectHashMap = map.entrySet().stream().map(v -> { + if (v.getValue() instanceof List) { + List list = (List)v.getValue(); + v.setValue(String.join(",", list)); + } + return v; + }).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + return stringObjectHashMap; + } + + @Override public void flowSave(EsInspectFlowVO esInspectFlowVO) { + // 流程信息 + ProcessAll processAll = esInspectFlowVO.getProcessAll(); + // 流程审批信息 + ProcessApprovalRecord processApprovalRecord = esInspectFlowVO.getProcessApprovalRecord(); + // 流程总表信息 + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + processAll.setPrcType(Integer.valueOf(ProcessType.ES_INSPECT_PLAN.getValue())); + 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()); + } + if (StringUtils.isNotBlank(processApprovalRecord.getCommitText())){ + 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); } @Override public EsInspectFlowVO queryDetailByProjectId(String projectId, String taskId) { - return null; + EsInspectFlowVO esInspectFlowVO = new EsInspectFlowVO(); + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + ProcessAll processAll = processAllService.getOne(new LambdaQueryWrapper() + .eq(ProcessAll::getProjectId, projectId), false); + ProcessApprovalRecord processApprovalRecord = new ProcessApprovalRecord(); + + // 是否存在草稿 + List processDraftList = processDraftService.list(new LambdaQueryWrapper() + .eq(ProcessDraft::getProjectId, projectId) + .eq(ProcessDraft::getUserId, loginUser.getId())); + if (!processDraftList.isEmpty()){ + String id = ""; + if(Objects.isNull(processAll)){ + processAll = new ProcessAll(); + id = String.valueOf(SnowflakeUtils.snowflake()); + }else { + id = processAll.getId(); + } + // 存在草稿 + ProcessDraft processDraft = processDraftList.get(0); + // 属性拷贝 + BeanUtils.copyProperties(processDraft, processAll); + processAll.setId(id); + if (StringUtils.isNotBlank(processDraft.getHandleFile())){ + processApprovalRecord.setCommitFile(processDraft.getHandleFile()); + } + if (StringUtils.isNotBlank(processDraft.getHandleText())){ + processApprovalRecord.setCommitText(processDraft.getHandleText()); + } + }else { + // 不存在草稿 + processApprovalRecord = processApprovalRecordService.getOne(new LambdaQueryWrapper() + .eq(ProcessApprovalRecord::getProjectId, projectId) + .eq(ProcessApprovalRecord::getUserId, loginUser.getId()) + .eq(StringUtils.isNotBlank(taskId), ProcessApprovalRecord::getTaskId, taskId) + , false); + } + esInspectFlowVO.setProcessAll(processAll); + esInspectFlowVO.setProcessApprovalRecord(processApprovalRecord); + return esInspectFlowVO; } @Override @@ -33,6 +217,12 @@ public class EsInspectFlowServiceImpl implements IEsInspectFlowService { @Override public void flowTransfer(String taskId, String userId) { - + // 更新流程审批信息 + processApprovalRecordService.update(new LambdaUpdateWrapper() + .eq(ProcessApprovalRecord::getTaskId, taskId) + .set(ProcessApprovalRecord::getTransferBy, userId) + .set(ProcessApprovalRecord::getUserId, userId)); + // 转办 + taskService.setAssignee(taskId, userId); } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/EsInspectPlanFlowController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/EsInspectPlanFlowController.java index 8b43a26f..07ea33b4 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/EsInspectPlanFlowController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/EsInspectPlanFlowController.java @@ -98,6 +98,20 @@ public class EsInspectPlanFlowController { return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); } + /** + * 企标稽查计划流程-驳回 + * @param esInspectPlanFlowVO 企标稽查计划流程VO对象 + * @return 结果对象 + */ + @AutoLog(value = "企标稽查计划流程-驳回") + @ApiOperation(value="企标稽查计划流程-驳回", notes="企标稽查计划流程-驳回") + @PostMapping(value = "/flowReject") + public Result flowReject(@RequestBody EsInspectPlanFlowVO esInspectPlanFlowVO) { + log.info(""); + esInspectPlanFlowService.flowApproval(esInspectPlanFlowVO); + return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); + } + /** * 企标稽查计划流程-流程转办 * @return 结果对象 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 5792d2a8..5f40cb66 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 @@ -70,7 +70,6 @@ public class ProcessEsInspectPlan extends BaseEntity { @ApiModelProperty(value = "稽查负责人") private String inspectUser; /**稽查负责人 翻译*/ - @Excel(name = "稽查负责人", width = 15) @ApiModelProperty(value = "稽查负责人 翻译") @TableField(exist = false) private String inspectUserDictText; @@ -79,7 +78,6 @@ public class ProcessEsInspectPlan extends BaseEntity { @ApiModelProperty(value = "标准化组对接人") private String standardizationDockingUser; /**标准化组对接人 翻译*/ - @Excel(name = "标准化组对接人", width = 15) @ApiModelProperty(value = "标准化组对接人 翻译") @TableField(exist = false) private String standardizationDockingUserDictText; @@ -88,7 +86,6 @@ public class ProcessEsInspectPlan extends BaseEntity { @ApiModelProperty(value = "征求意见对象") private String objectOfConsultation; /**征求意见对象 翻译*/ - @Excel(name = "征求意见对象", width = 15) @ApiModelProperty(value = "征求意见对象 翻译") @TableField(exist = false) private String objectOfConsultationDictText; 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 f0100e11..c3ad9f0b 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 @@ -38,10 +38,10 @@ import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.apache.shiro.SecurityUtils; import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; @@ -93,15 +93,13 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); RuntimeService runtimeService = processEngine.getRuntimeService(); - @Autowired + @Resource private TaskService taskService; @Override public void flowStart(EsInspectPlanFlowVO esInspectPlanFlowVO) { // 流程信息 ProcessAll processAll = esInspectPlanFlowVO.getProcessAll(); - // 企标稽查计划业务表 -// List processEsInspectPlanList = esInspectPlanFlowVO.getProcessEsInspectPlanList(); // 流程审批信息 ProcessApprovalRecord processApprovalRecord = esInspectPlanFlowVO.getProcessApprovalRecord(); // map(参数) @@ -111,6 +109,9 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { ProcessInstance processInstance = runtimeService .startProcessInstanceByKey(EsInspectPlanCommon.KEY, map); + // 再次设置map + runtimeService.setVariables(processInstance.getId(), map); + // 更新流程总表信息 LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); processAll.setPrcType(Integer.valueOf(ProcessType.ES_INSPECT_PLAN.getValue())); @@ -119,12 +120,6 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { new LambdaUpdateWrapper() .eq(ProcessAll::getProcessInstanceId, processInstance.getId())); - // 更新企标稽查计划业务表 -// for (ProcessEsInspectPlan processEsInspectPlan : processEsInspectPlanList) { -// processEsInspectPlan.setProjectId(processAll.getProjectId()); -// } -// processEsInspectPlanService.saveOrUpdateBatch(processEsInspectPlanList); - // 根据流程实例id查询 Task task = taskService.createTaskQuery() .processInstanceId(processInstance.getId()) @@ -155,8 +150,6 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { public void flowSave(EsInspectPlanFlowVO esInspectPlanFlowVO) { // 流程信息 ProcessAll processAll = esInspectPlanFlowVO.getProcessAll(); -// // 企标稽查计划业务表 -// List processEsInspectPlanList = esInspectPlanFlowVO.getProcessEsInspectPlanList(); // 流程审批信息 ProcessApprovalRecord processApprovalRecord = esInspectPlanFlowVO.getProcessApprovalRecord(); @@ -186,27 +179,6 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { .eq(ProcessDraft::getUserId, loginUser.getId())); // 保存新草稿 processDraftService.save(processDraft); - - // 处理企标稽查计划业务表 -// 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 (oldIds.isEmpty()){ -// processEsInspectPlanService.remove(new LambdaQueryWrapper() -// .eq(ProcessEsInspectPlan::getProjectId, processAll.getProjectId())); -// }else { -// processEsInspectPlanService.remove(new LambdaQueryWrapper() -// .eq(ProcessEsInspectPlan::getProjectId, processAll.getProjectId()) -// .notIn(ProcessEsInspectPlan::getId, oldIds)); -// } } private Map listToString(Map map) { 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 0ae0a38a..16d82971 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 @@ -130,7 +130,7 @@ public class ProcessEsInspectPlanServiceImpl extends ServiceImpl - qw.eq("object_of_consultation", loginUser.getId()) + qw.like("object_of_consultation", loginUser.getId()) .or().eq("create_by", loginUser.getUsername())); } queryWrapper.orderByDesc("create_time"); @@ -254,7 +254,7 @@ public class ProcessEsInspectPlanServiceImpl extends ServiceImpl sixthVerify(ProcessEsInspectPlan processEsInspectPlan) { List errorList = new ArrayList<>(); if (StringUtils.isNotBlank(processEsInspectPlan.getStandardizationDockingUser())){ - SysUser sysUser = sysUserService.getById(processEsInspectPlan.getStandardizationDockingUser()); + SysUser sysUser = sysUserService.getUserByName(processEsInspectPlan.getStandardizationDockingUser()); if (Objects.isNull(sysUser)){ errorList.add("标准化组对接人不存在!"); }else { @@ -264,7 +264,7 @@ public class ProcessEsInspectPlanServiceImpl extends ServiceImpl thirdVerify(ProcessEsInspectPlan processEsInspectPlan) { List errorList = new ArrayList<>(); if (StringUtils.isNotBlank(processEsInspectPlan.getStandardizationWorkGroup())){ - SysDepart sysDepart = sysDepartService.getById(processEsInspectPlan.getStandardizationWorkGroup()); - if (Objects.isNull(sysDepart)) { - errorList.add("主责标准化工作组不存在!"); - }else { - processEsInspectPlan.setStandardizationWorkGroup(sysDepart.getId()); - } + processEsInspectPlan.setStandardizationWorkGroup(processEsInspectPlan.getStandardizationWorkGroup()); }else { errorList.add("主责标准化工作组不能为空!"); } if (StringUtils.isNotBlank(processEsInspectPlan.getBelongDept())){ - SysDepart sysDepart = sysDepartService.getById(processEsInspectPlan.getBelongDept()); - if (Objects.isNull(sysDepart)) { + List sysDepart = sysDepartService.list( + new LambdaQueryWrapper() + .eq(SysDepart::getDepartName, processEsInspectPlan.getBelongDept())); + if (sysDepart.isEmpty()) { errorList.add("所属部门不存在!"); }else { - processEsInspectPlan.setBelongDept(sysDepart.getId()); + processEsInspectPlan.setBelongDept(sysDepart.get(0).getId()); } }else { errorList.add("所属部门不能为空!"); @@ -332,11 +329,13 @@ public class ProcessEsInspectPlanServiceImpl extends ServiceImpl sysDepart = sysDepartService.list( + new LambdaQueryWrapper() + .eq(SysDepart::getDepartName, s)); + if (sysDepart.isEmpty()) { errorList.add("计划稽查对象不存在!"); }else { - departList.add(sysDepart.getId()); + departList.add(sysDepart.get(0).getId()); } } }else { @@ -350,16 +349,7 @@ public class ProcessEsInspectPlanServiceImpl extends ServiceImpl firstVerify(ProcessEsInspectPlan processEsInspectPlan) { List errorList = new ArrayList<>(); - if (StringUtils.isNotBlank(processEsInspectPlan.getInspectNo())){ - /** - * List list = lawsEnterpriseStandardService.list(new LambdaQueryWrapper() - * .eq(LawsEnterpriseStandard::getStandardNumber, processEsInspectPlan.getInspectNo())); - * if (list.isEmpty()) { - * errorList.add("稽查依据标准号不存在!"); - * } - */ - - }else { + if (StringUtils.isBlank(processEsInspectPlan.getInspectNo())){ errorList.add("稽查依据标准号不能为空!"); } if (StringUtils.isNotBlank(processEsInspectPlan.getInspectName())){ @@ -371,17 +361,6 @@ public class ProcessEsInspectPlanServiceImpl extends ServiceImpl list = lawsEnterpriseStandardService.list(new LambdaQueryWrapper() - * .eq(LawsEnterpriseStandard::getStandardNumber, processEsInspectPlan.getInspectNo()) - * .eq(LawsEnterpriseStandard::getStandardName, processEsInspectPlan.getInspectName())); - * if (list.isEmpty()) { - * errorList.add("稽查依据标准号和稽查依据标准名称不匹配!"); - * }* } - */ return errorList; }