fix: 79961 企标更改流程--流程完成后没有生成修改单

This commit is contained in:
2024-01-23 10:10:55 +08:00
parent 587fd2aff1
commit 863b1dfb1b
@@ -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<SysDictItemCore> listDict = commonAPI.getDictItemAll();
// 找到所有节点审批记录
LambdaQueryWrapper<ProcessApprovalRecord> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ProcessApprovalRecord::getProcessInstanceId, change.getProcessInstanceId());
queryWrapper.eq(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.COMPLETE.getValue());
queryWrapper.orderByAsc(ProcessApprovalRecord::getCreateTime);
List<ProcessApprovalRecord> records = approvalRecordService.list(queryWrapper);
Map<String, ProcessApprovalRecord> 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<String, List<ProcessApprovalRecord>> userMap = records.stream()
.collect(Collectors.groupingBy(ProcessApprovalRecord::getTaskName));
// 获取表格的行列表
List<XWPFTableRow> 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<ProcessApprovalRecord> recordListOne = userMap.get(EsChangeTaskNameConstant.MAIN_DRAFTER_INIT);
List<ProcessApprovalRecord> recordListTwo = userMap.get(EsChangeTaskNameConstant.RELATED_USER_CHECK);
List<ProcessApprovalRecord> recordListThree = userMap.get(EsChangeTaskNameConstant.MAIN_DRAFTER_LEADER_APPROVAL);
List<ProcessApprovalRecord> recordListFour = userMap.get(EsChangeTaskNameConstant.STANDARDIZATION_APPROVAL);
List<ProcessApprovalRecord> 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);
}
}