From 58a8665d312f6ec547ede1c6e8833bea25ef79a3 Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Wed, 31 Jan 2024 14:16:59 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=BE=81=E6=B1=82=E6=84=8F=E8=A7=81?= =?UTF-8?q?=E6=B5=81=E7=A8=8B):=20=E4=B8=B4=E6=97=B6=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fb/job/DepartLeaderStartOverDueJob.java | 11 +++ ...Job.java => DesignEngineerOverDueJob.java} | 12 +-- .../fb/job/ModuleOwnerStartOverDueJob.java | 93 +++++++++++++++++++ .../ProcessFbStandardConsultationMapper.java | 10 ++ .../ProcessFbStandardConsultationMapper.xml | 15 +++ ...IProcessFbStandardConsultationService.java | 10 +- ...cessFbStandardConsultationServiceImpl.java | 9 ++ .../activiti/process/fb/vo/NodeDispose.java | 29 ++++++ 8 files changed, 180 insertions(+), 9 deletions(-) create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/fb/job/DepartLeaderStartOverDueJob.java rename laws-modules/src/main/java/com/jero/modules/activiti/process/fb/job/{OverDueJob.java => DesignEngineerOverDueJob.java} (94%) create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/fb/job/ModuleOwnerStartOverDueJob.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/NodeDispose.java diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/job/DepartLeaderStartOverDueJob.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/job/DepartLeaderStartOverDueJob.java new file mode 100644 index 00000000..f881d243 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/job/DepartLeaderStartOverDueJob.java @@ -0,0 +1,11 @@ +package com.jero.modules.activiti.process.fb.job; + +/** + * @ClassName: DesignEngineerOverDueJob3 + * @Description: + * @Author: yjz + * @Date: 2024-01-31 10:59 + * @Version: 1.0 + **/ +public class DepartLeaderStartOverDueJob { +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/job/OverDueJob.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/job/DesignEngineerOverDueJob.java similarity index 94% rename from laws-modules/src/main/java/com/jero/modules/activiti/process/fb/job/OverDueJob.java rename to laws-modules/src/main/java/com/jero/modules/activiti/process/fb/job/DesignEngineerOverDueJob.java index 1830b9c7..1f66e2cb 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/job/OverDueJob.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/job/DesignEngineerOverDueJob.java @@ -35,7 +35,7 @@ import java.util.stream.Collectors; **/ @Slf4j @Transactional(rollbackFor = RuntimeException.class) -public class OverDueJob implements Job { +public class DesignEngineerOverDueJob implements Job { @Resource private IProcessFbStandardConsultationService processFbStandardConsultationService; @Resource @@ -48,17 +48,13 @@ public class OverDueJob implements Job { private TaskService taskService; /** - * 征求意见流程-超过征求意见结束日期,存在设计师未提交意见时,应该汇总生成一条待办给下一节点 + * 征求意见流程-超过征求意见结束日期,存在设计师未提交意见时,直接流转到下一节点任务 * @param jobExecutionContext * @throws JobExecutionException */ @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - - - - - log.info("征求意见流程-超过征求意见结束日期,存在设计师未提交意见时,应该汇总生成一条待办给下一节点定时任务开始"); + log.info("征求意见流程-超过征求意见结束日期,存在设计师未提交意见时,直接流转到下一节点任务开始"); // 查询所有未完成的 设计工程师填写征求意见 节点 List designEngineerNodeList = Arrays.asList(ConsultationTaskKey.DESIGN_ENGINEER_1, ConsultationTaskKey.DESIGN_ENGINEER_2); @@ -112,6 +108,6 @@ public class OverDueJob implements Job { } } } - log.info("征求意见流程-超过征求意见结束日期,存在设计师未提交意见时,应该汇总生成一条待办给下一节点定时任务结束"); + log.info("征求意见流程-超过征求意见结束日期,存在设计师未提交意见时,直接流转到下一节点任务开始"); } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/job/ModuleOwnerStartOverDueJob.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/job/ModuleOwnerStartOverDueJob.java new file mode 100644 index 00000000..d64fcf6e --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/job/ModuleOwnerStartOverDueJob.java @@ -0,0 +1,93 @@ +package com.jero.modules.activiti.process.fb.job; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.modules.activiti.entity.ProcessApprovalRecord; +import com.jero.modules.activiti.process.fb.common.ConsultationTaskKey; +import com.jero.modules.activiti.process.fb.common.FbCommon; +import com.jero.modules.activiti.process.fb.service.IProcessFbConsultationListService; +import com.jero.modules.activiti.process.fb.service.IProcessFbConsultationUserLinkService; +import com.jero.modules.activiti.process.fb.service.IProcessFbStandardConsultationService; +import com.jero.modules.activiti.process.fb.vo.NodeDispose; +import com.jero.modules.activiti.service.ProcessApprovalRecordService; +import lombok.extern.slf4j.Slf4j; +import org.activiti.engine.RuntimeService; +import org.activiti.engine.TaskService; +import org.apache.commons.collections4.CollectionUtils; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @ClassName: DesignEngineerOverDueJob2 + * @Description: + * @Author: yjz + * @Date: 2024-01-31 10:59 + * @Version: 1.0 + **/ +@Slf4j +@Transactional(rollbackFor = RuntimeException.class) +public class ModuleOwnerStartOverDueJob implements Job { + @Resource + private IProcessFbStandardConsultationService processFbStandardConsultationService; + @Resource + private IProcessFbConsultationUserLinkService processFbConsultationUserLinkService; + @Resource + private IProcessFbConsultationListService processFbConsultationListService; + @Resource + private ProcessApprovalRecordService processApprovalRecordService; + @Resource + private TaskService taskService; + @Resource + private RuntimeService runtimeService; + + /** + * 征求意见流程-超过征求意见结束日期,模块负责人部分未分发时 + * @param jobExecutionContext + * @throws JobExecutionException + */ + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + log.info("征求意见流程-超过征求意见结束日期,模块负责人 部分/全部 未分发时任务开始"); + // 查询超过征求意见结束日期的模块负责人分发节点情况 + List nodeDisposeCount = + processFbStandardConsultationService.findNodeDisposeCount(ConsultationTaskKey.MODULE_OWNER_START); + if (CollectionUtils.isNotEmpty(nodeDisposeCount)){ + // 部分未完成 + List sectorUnFinishedList = nodeDisposeCount.stream() + .filter(v -> !v.getUnFinished().equals(v.getCount())) + .collect(Collectors.toList()); + + // 全部未完成 + List allUnFinishedList = nodeDisposeCount.stream() + .filter(v -> v.getUnFinished().equals(v.getCount())) + .collect(Collectors.toList()); + + List processInstanceIdList = sectorUnFinishedList.stream() + .map(NodeDispose::getProcessInstanceId) + .collect(Collectors.toList()); + + // 部分未完成审批数据 + List processApprovalRecordList = processApprovalRecordService.list( + new LambdaQueryWrapper() + .in(ProcessApprovalRecord::getProcessInstanceId, processInstanceIdList) + .isNull(ProcessApprovalRecord::getEndTime)); + + for (ProcessApprovalRecord processApprovalRecord : processApprovalRecordList) { + // 设置网关条件 + Map map = new HashMap<>(); + map.put(FbCommon.VARIABLE_PASS_FIRST, "overDue"); + runtimeService.setVariablesLocal(processApprovalRecord.getProcessInstanceId(), map); + // 完成任务 + taskService.complete(processApprovalRecord.getTaskId()); + } + } + log.info("征求意见流程-超过征求意见结束日期,模块负责人 部分/全部 未分发时任务结束"); + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/mapper/ProcessFbStandardConsultationMapper.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/mapper/ProcessFbStandardConsultationMapper.java index f3fa2093..e5d9e1a5 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/mapper/ProcessFbStandardConsultationMapper.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/mapper/ProcessFbStandardConsultationMapper.java @@ -2,6 +2,10 @@ package com.jero.modules.activiti.process.fb.mapper; import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardConsultation; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jero.modules.activiti.process.fb.vo.NodeDispose; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @Description: 标准征求意见流程表 @@ -11,4 +15,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface ProcessFbStandardConsultationMapper extends BaseMapper { + /** + * 已超期节点任务处理数量查询 + * @param nodeId + * @return + */ + List findNodeDisposeCount(@Param("nodeId") String nodeId); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/mapper/xml/ProcessFbStandardConsultationMapper.xml b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/mapper/xml/ProcessFbStandardConsultationMapper.xml index aa1372ab..dee9a345 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/mapper/xml/ProcessFbStandardConsultationMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/mapper/xml/ProcessFbStandardConsultationMapper.xml @@ -15,4 +15,19 @@ + + \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessFbStandardConsultationService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessFbStandardConsultationService.java index e1748482..7708c0f1 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessFbStandardConsultationService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessFbStandardConsultationService.java @@ -1,8 +1,9 @@ package com.jero.modules.activiti.process.fb.service; +import com.baomidou.mybatisplus.extension.service.IService; import com.jero.modules.activiti.process.fb.entity.ProcessFbConsultationUserLink; import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardConsultation; -import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.modules.activiti.process.fb.vo.NodeDispose; import com.jero.modules.activiti.process.fb.vo.ProcessFbStandardConsultationVO; import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; @@ -64,4 +65,11 @@ public interface IProcessFbStandardConsultationService extends IService listByTaskIdAndBusinessId(String taskId, String businessId); + + /** + * 已超期节点任务处理数量查询 + * @param nodeId + * @return + */ + List findNodeDisposeCount(String nodeId); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java index 6cb6d97a..e6c35ee9 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java @@ -28,6 +28,7 @@ import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardConsultation import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardPurchase; import com.jero.modules.activiti.process.fb.mapper.ProcessFbStandardConsultationMapper; import com.jero.modules.activiti.process.fb.service.*; +import com.jero.modules.activiti.process.fb.vo.NodeDispose; import com.jero.modules.activiti.process.fb.vo.ProcessFbStandardConsultationVO; import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; import com.jero.modules.activiti.service.ProcessApprovalRecordService; @@ -90,6 +91,9 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl findNodeDisposeCount(String nodeId) { + return processFbStandardConsultationMapper.findNodeDisposeCount(nodeId); + } + /** * @Author: liao * @Date: 2023/11/13 16:00 diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/NodeDispose.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/NodeDispose.java new file mode 100644 index 00000000..dead11db --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/NodeDispose.java @@ -0,0 +1,29 @@ +package com.jero.modules.activiti.process.fb.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * @ClassName: NodeDispose + * @Description: + * @Author: yjz + * @Date: 2024-01-31 11:06 + * @Version: 1.0 + **/ +@Data +public class NodeDispose implements Serializable { + /**总数*/ + @ApiModelProperty(value = "总数") + private Long count; + /**未完成数量*/ + @ApiModelProperty(value = "未完成数量") + private Long unFinished; + /**已完成数量*/ + @ApiModelProperty(value = "已完成数量") + private Long finished; + /**流程实例id*/ + @ApiModelProperty(value = "流程实例id") + private String processInstanceId; +}