diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/job/OtherDraftUserUploadDeadlineJob.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/job/OtherDraftUserUploadDeadlineJob.java index 54c62109..cbe72eaf 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/job/OtherDraftUserUploadDeadlineJob.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/job/OtherDraftUserUploadDeadlineJob.java @@ -49,13 +49,18 @@ public class OtherDraftUserUploadDeadlineJob implements Job { arWrapper.eq(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.INCOMPLETE.getValue()); for (ProcessEsRevision revision : revisionList) { String prcId = revision.getProcessInstanceId(); + if (StrUtil.isBlank(prcId)) { + continue; + } List otherDraftUserVOS = revision.parseOtherDraftUserVOS(); if (otherDraftUserVOS == null || otherDraftUserVOS.isEmpty()) { continue; } arWrapper.eq(ProcessApprovalRecord::getProcessInstanceId, prcId); List arList = approvalRecordService.list(arWrapper); - Map arMap = arList.stream().collect(Collectors.toMap(ProcessApprovalRecord::getOriginUserId, ar -> ar)); + arWrapper.clear(); + Map> arMap = arList.stream() + .collect(Collectors.groupingBy(ProcessApprovalRecord::getOriginUserId)); Date curDate = new Date(); for (OtherDraftUserVO otherDraftUser : otherDraftUserVOS) { String originUserId = otherDraftUser.getUser(); @@ -66,23 +71,26 @@ public class OtherDraftUserUploadDeadlineJob implements Job { Date deadline = getDeadlineDate(otherDraftUser); // 如果当前日期大于该条数据的截止日期 则自动完成任务 if (curDate.after(deadline)) { - ProcessApprovalRecord ar = arMap.get(originUserId); - if (ar == null) { + List ar = arMap.get(originUserId); + if (ar == null || ar.isEmpty()) { log.error("未找到对应待办"); continue; } - String taskId = ar.getTaskId(); - String taskName = ar.getTaskName(); - if (StrUtil.isBlank(taskId)) { - log.error("任务Id为空"); - continue; + for (ProcessApprovalRecord processApprovalRecord : ar) { + String taskId = processApprovalRecord.getTaskId(); + String taskName = processApprovalRecord.getTaskName(); + if (StrUtil.isBlank(taskId)) { + log.error("任务Id为空"); + continue; + } + if (!taskName.equals("其他起草人上传企标")) { + continue; + } + // + ESRevisionDataVO handleData = revisionService.getHandleData(taskId); + handleData.getCommon().setTaskId(taskId); + revisionService.approval(handleData, true); } - if (!taskName.equals("其他起草人上传企标")) { - continue; - } - ESRevisionDataVO handleData = revisionService.getHandleData(taskId); - handleData.getCommon().setTaskId(taskId); - revisionService.approval(handleData, true); } } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/listener/ProcessESRevisionOtherDraftUserUploadCreateListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/listener/ProcessESRevisionOtherDraftUserUploadCreateListener.java new file mode 100644 index 00000000..1bcca4bd --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/listener/ProcessESRevisionOtherDraftUserUploadCreateListener.java @@ -0,0 +1,77 @@ +package com.jero.modules.activiti.process.esRevision.listener; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.modules.activiti.entity.ProcessApprovalRecord; +import com.jero.modules.activiti.enums.FinishFlagEnum; +import com.jero.modules.activiti.process.esRevision.entity.OperateTypeEnum; +import com.jero.modules.activiti.process.esRevision.entity.ProcessEsRevision; +import com.jero.modules.activiti.process.esRevision.entity.vo.OtherDraftUserVO; +import com.jero.modules.activiti.process.esRevision.service.EsRevisionService; +import com.jero.modules.activiti.service.ProcessApprovalRecordService; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + + +/** + * @author: Mzaxd + * @Date: 2023/12/19 11:59 + */ +@Component("processESRevisionOtherDraftUserUploadCreateListener") +public class ProcessESRevisionOtherDraftUserUploadCreateListener implements TaskListener { + + @Resource + private EsRevisionService esRevisionService; + + @Resource + private ProcessApprovalRecordService approvalRecordService; + + @Override + public void notify(DelegateTask delegateTask) { +// // 获取流程实例Id +// String processInstanceId = delegateTask.getProcessInstanceId(); +// // 获取流程变量otherDraftUser +// String otherDraftUser = (String) delegateTask.getVariable("otherDraftUser"); +// // 获取相关数据 +// LambdaQueryWrapper revisionWrapper = new LambdaQueryWrapper<>(); +// revisionWrapper.eq(ProcessEsRevision::getProcessInstanceId, processInstanceId); +// ProcessEsRevision revision = esRevisionService.getOne(revisionWrapper); +// LambdaQueryWrapper arWrapper = new LambdaQueryWrapper<>(); +// arWrapper.eq(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.INCOMPLETE.getValue()); +// List arList = approvalRecordService.list(arWrapper); +// Map> arMap = arList.stream() +// .collect(Collectors.groupingBy(ProcessApprovalRecord::getOriginUserId)); +// +// // 将task和记录进行绑定 +// List otherDraftUserVOS = revision.parseOtherDraftUserVOS(); +// // 已经分配出去的TaskId +// List alreadyTaskId = new ArrayList<>(); +// otherDraftUserVOS.forEach(u -> { +// if (StrUtil.isNotBlank(u.getTaskId())) { +// alreadyTaskId.add(u.getTaskId()); +// } +// }); +// for (OtherDraftUserVO o : otherDraftUserVOS) { +// if (StrUtil.isNotBlank(o.getTaskId()) || !o.getUser().equals(otherDraftUser)) { +// continue; +// } +// List processApprovalRecords = arMap.get(otherDraftUser); +// List taskIdList = processApprovalRecords.stream() +// .map(ProcessApprovalRecord::getTaskId).collect(Collectors.toList()); +// // 去除已经分配出去的TaskId +// taskIdList.removeAll(alreadyTaskId); +// o.setTaskId(taskIdList.get(0)); +// break; +// } +// revision.setOtherDraftUserVOS(otherDraftUserVOS); +// revision.setOtherDrafterUploadFileJson(otherDraftUserVOS); +// esRevisionService.updateById(revision); + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/impl/EsRevisionServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/impl/EsRevisionServiceImpl.java index d5b1bd27..38600026 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/impl/EsRevisionServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/impl/EsRevisionServiceImpl.java @@ -602,27 +602,35 @@ public class EsRevisionServiceImpl extends ServiceImpl