diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/listener/ProcessESChangeEndListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/listener/ProcessESChangeEndListener.java index 1f104b0d..85b4ffb9 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/listener/ProcessESChangeEndListener.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/listener/ProcessESChangeEndListener.java @@ -2,9 +2,11 @@ package com.jero.modules.activiti.process.esChange.listener; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.common.api.CommonAPI; import com.jero.common.api.vo.Result; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.DictModel; +import com.jero.common.system.vo.SysDictItemCore; import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.enums.CommitFlagEnum; import com.jero.modules.activiti.enums.FinishFlagEnum; @@ -15,6 +17,7 @@ import com.jero.modules.activiti.process.esChange.entity.ProcessEsChange; import com.jero.modules.activiti.process.esChange.service.EsChangeOpinionService; import com.jero.modules.activiti.process.esChange.service.ProcessEsChangeService; import com.jero.modules.activiti.service.ProcessApprovalRecordService; +import com.jero.modules.activiti.util.ExcelUtils; import com.jero.modules.laws.common.constant.FieldCommon; import com.jero.modules.laws.common.service.ILawsCommonService; import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; @@ -94,6 +97,12 @@ public class ProcessESChangeEndListener implements ExecutionListener { @Resource private EsChangeOpinionService changeOpinionService; + @Resource + private ExcelUtils excelUtils; + + @Resource + private CommonAPI commonAPI; + @Override public void notify(DelegateExecution delegateExecution) { log.info("企标更改流程结束 监听执行器开始执行"); @@ -299,47 +308,55 @@ public class ProcessESChangeEndListener implements ExecutionListener { } private void setSecondTableContents(XWPFTable table, ProcessEsChange change) { + List listDict = commonAPI.getDictItemAll(); // 找到所有节点审批记录 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(ProcessApprovalRecord::getProcessInstanceId, change.getProcessInstanceId()); - queryWrapper.eq(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.COMPLETE.getValue()); - queryWrapper.orderByAsc(ProcessApprovalRecord::getCreateTime); List records = approvalRecordService.list(queryWrapper); - Map userMap = records.stream() - .collect(Collectors.toMap(ProcessApprovalRecord::getTaskName, e -> { - SysUser user; - if (StrUtil.isNotBlank(e.getTransferBy())) { - user = sysUserService.getById(e.getTransferBy()); - } else { - user = sysUserService.getById(e.getUserId()); - } - e.setUserId(user.getRealname()); - return e; - })); + Map> userMap = records.stream() + .collect(Collectors.groupingBy(ProcessApprovalRecord::getTaskName)); + // 获取表格的行列表 List rows = table.getRows(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); if (!rows.isEmpty()) { - ProcessApprovalRecord recordOne = userMap.get(EsChangeTaskNameConstant.MAIN_DRAFTER_INIT); - ProcessApprovalRecord recordTwo = userMap.get(EsChangeTaskNameConstant.RELATED_USER_CHECK); - ProcessApprovalRecord recordThree = userMap.get(EsChangeTaskNameConstant.MAIN_DRAFTER_LEADER_APPROVAL); - ProcessApprovalRecord recordFour = userMap.get(EsChangeTaskNameConstant.STANDARDIZATION_APPROVAL); - ProcessApprovalRecord recordFive = userMap.get(EsChangeTaskNameConstant.MAIN_DRAFTER_LEADER_LEADER_APPROVAL); + List recordListOne = userMap.get(EsChangeTaskNameConstant.MAIN_DRAFTER_INIT); + List recordListTwo = userMap.get(EsChangeTaskNameConstant.RELATED_USER_CHECK); + List recordListThree = userMap.get(EsChangeTaskNameConstant.MAIN_DRAFTER_LEADER_APPROVAL); + List recordListFour = userMap.get(EsChangeTaskNameConstant.STANDARDIZATION_APPROVAL); + List recordListFive = userMap.get(EsChangeTaskNameConstant.MAIN_DRAFTER_LEADER_LEADER_APPROVAL); + recordListOne = recordListOne.stream().sorted((o1, o2) -> o2.getEndTime().compareTo(o1.getEndTime())).collect(Collectors.toList()); + recordListTwo = recordListTwo.stream().sorted((o1, o2) -> o2.getEndTime().compareTo(o1.getEndTime())).collect(Collectors.toList()); + recordListThree = recordListThree.stream().sorted((o1, o2) -> o2.getEndTime().compareTo(o1.getEndTime())).collect(Collectors.toList()); + recordListFour = recordListFour.stream().sorted((o1, o2) -> o2.getEndTime().compareTo(o1.getEndTime())).collect(Collectors.toList()); + recordListFive = recordListFive.stream().sorted((o1, o2) -> o2.getEndTime().compareTo(o1.getEndTime())).collect(Collectors.toList()); + + ProcessApprovalRecord recordOne = recordListOne.get(0); + ProcessApprovalRecord recordTwo = recordListTwo.get(0); + ProcessApprovalRecord recordThree = recordListThree.get(0); + ProcessApprovalRecord recordFour = recordListFour.get(0); + ProcessApprovalRecord recordFive = recordListFive.get(0); + + String recordOneUser = excelUtils.translateDictValue("id", "CONCAT(realname, '(', username, ')')", "sys_user", recordOne.getUserId(), listDict); + String recordTwoUser = excelUtils.translateDictValue("id", "CONCAT(realname, '(', username, ')')", "sys_user", recordTwo.getUserId(), listDict); + String recordThreeUser = excelUtils.translateDictValue("id", "CONCAT(realname, '(', username, ')')", "sys_user", recordThree.getUserId(), listDict); + String recordFourUser = excelUtils.translateDictValue("id", "CONCAT(realname, '(', username, ')')", "sys_user", recordFour.getUserId(), listDict); + String recordFiveUser = excelUtils.translateDictValue("id", "CONCAT(realname, '(', username, ')')", "sys_user", recordFive.getUserId(), listDict); // 设计 - setContent(rows, 0, 1, recordOne.getUserId(), false, true, true); + setContent(rows, 0, 1, recordOneUser, false, true, true); setContent(rows, 1, 1, formatter.format(recordOne.getEndTime()), false, true, true); // 校对 - setContent(rows, 0, 3, recordTwo.getUserId(), false, true, true); + setContent(rows, 0, 3, recordTwoUser, false, true, true); setContent(rows, 1, 3, formatter.format(recordTwo.getEndTime()), false, true, true); // 审核 - setContent(rows, 0, 5, recordThree.getUserId(), false, true, true); + setContent(rows, 0, 5, recordThreeUser, false, true, true); setContent(rows, 1, 5, formatter.format(recordThree.getEndTime()), false, true, true); // 标准化 - setContent(rows, 0, 7, recordFour.getUserId(), false, true, true); + setContent(rows, 0, 7, recordFourUser, false, true, true); setContent(rows, 1, 7, formatter.format(recordFour.getEndTime()), false, true, true); // 批准 - setContent(rows, 0, 11, recordFive.getUserId(), false, true, true); + setContent(rows, 0, 11, recordFiveUser, false, true, true); setContent(rows, 1, 11, formatter.format(recordFive.getEndTime()), false, true, true); } }