From 4b42ab680041bfa0bb22d59fe382e737a1ad2e6d Mon Sep 17 00:00:00 2001 From: wxyclub Date: Fri, 15 Dec 2023 16:01:19 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=94=BF=E7=AD=96=E8=AF=BE=E9=A2=98?= =?UTF-8?q?=E5=85=A5=E4=BC=9A=E5=8F=82=E4=BC=9A=E9=A9=B3=E5=9B=9E=E5=90=8E?= =?UTF-8?q?=E5=88=A0=E9=99=A4OA=E4=BB=A3=E5=8A=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InspectorApprovalAfter.java | 33 +++++++++++++++++ .../MinisterApprovalAfter.java | 33 +++++++++++++++++ .../PRGAMStartAfter.java | 5 +++ .../RevisionInformationAfter.java | 5 +++ .../PRGEInspectorApprovalAfter.java | 33 +++++++++++++++++ .../PRGEMinisterConfirmAfter.java | 37 +++++++++++++++++-- .../PRGEStartAfter.java | 6 ++- .../RevisionInformationAfter.java | 4 ++ 8 files changed, 151 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/InspectorApprovalAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/InspectorApprovalAfter.java index 9c11ae5c..31c9c2d3 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/InspectorApprovalAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/InspectorApprovalAfter.java @@ -1,6 +1,7 @@ package com.ydw.bat.wkflow.listener.policyResearchGroupAttendMeeting; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; @@ -8,6 +9,7 @@ import com.ydw.bat.wkflow.business_main.datas.entity.Datas; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_main.datas.service.IDatasService; +import com.ydw.bat.wkflow.business_oa.webService.service.WebServiceOAService; import com.ydw.bat.wkflow.util.SpringContextUtil; import org.activiti.engine.ActivitiException; import org.activiti.engine.delegate.DelegateTask; @@ -29,6 +31,9 @@ public class InspectorApprovalAfter implements TaskListener { //流程信息 IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class); + // OA接口 + WebServiceOAService webServiceOAService = SpringContextUtil.getBean(WebServiceOAService.class); + //根据流程id找到流程信息 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); @@ -50,6 +55,13 @@ public class InspectorApprovalAfter implements TaskListener { if (StringUtils.isNotBlank(object.getString("presidentId"))) { delegateTask.setVariable("presidentId", object.getString("presidentId")); nextUserList.add(object.getString("presidentId")); + List completedInspectorIdList = new ArrayList<>(); + List completedInspectorIdList1 = delegateTask.getVariable("completedInspectorIdList", List.class); + if (completedInspectorIdList1 != null && !completedInspectorIdList1.isEmpty()) { + completedInspectorIdList.addAll(completedInspectorIdList1); + } + completedInspectorIdList.add(delegateTask.getAssignee()); + delegateTask.setVariable("completedInspectorIdList",completedInspectorIdList); taskInfo = "批准"; } else { throw new ActivitiException("1#2公司副总不存在,请配置相关人员"); @@ -64,6 +76,27 @@ public class InspectorApprovalAfter implements TaskListener { } else { throw new ActivitiException("1#2起草人不存在,请配置相关人员"); } + // 驳回后,把其他审批人的代办转为已办 + List inspectorIdList = new ArrayList(delegateTask.getVariable("inspectorIdList", List.class)); + if (!inspectorIdList.isEmpty()) { + List completedInspectorIdList = delegateTask.getVariable("completedInspectorIdList", List.class); + if (completedInspectorIdList != null && !completedInspectorIdList.isEmpty()) { + inspectorIdList.removeAll(completedInspectorIdList); + } + inspectorIdList.remove(delegateTask.getAssignee()); + } + if (!inspectorIdList.isEmpty()) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(BusProcessNew::getPId, delegateTask.getProcessInstanceId()); + wrapper.eq(BusProcessNew::getTaskInfo, delegateTask.getName()); + wrapper.in(BusProcessNew::getUserId, inspectorIdList); + List list = busBean.list(wrapper); + if (list != null && !list.isEmpty()) { + for (BusProcessNew busProcessNew : list) { + webServiceOAService.deleteOAByMandatory(busProcessNew.getId(), busProcessNew.getUserId()); + } + } + } } // 存储当前节点意见 diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/MinisterApprovalAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/MinisterApprovalAfter.java index 9a5b879f..540d7034 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/MinisterApprovalAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/MinisterApprovalAfter.java @@ -1,6 +1,7 @@ package com.ydw.bat.wkflow.listener.policyResearchGroupAttendMeeting; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; @@ -8,6 +9,7 @@ import com.ydw.bat.wkflow.business_main.datas.entity.Datas; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_main.datas.service.IDatasService; +import com.ydw.bat.wkflow.business_oa.webService.service.WebServiceOAService; import com.ydw.bat.wkflow.util.SpringContextUtil; import org.activiti.engine.ActivitiException; import org.activiti.engine.delegate.DelegateTask; @@ -31,6 +33,9 @@ public class MinisterApprovalAfter implements TaskListener { // 流程信息 IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class); + //OA接口 + WebServiceOAService webServiceOAService = SpringContextUtil.getBean(WebServiceOAService.class); + // 根据流程id找到流程信息 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); @@ -52,6 +57,13 @@ public class MinisterApprovalAfter implements TaskListener { List inspectorIdList = Arrays.asList(object.getString("inspectorId").split(",")); delegateTask.setVariable("inspectorIdList", inspectorIdList); nextUserList.addAll(inspectorIdList); + List completedMinisterIdList = new ArrayList<>(); + List completedMinisterIdList1 = delegateTask.getVariable("completedMinisterIdList", List.class); + if (completedMinisterIdList1 != null && !completedMinisterIdList1.isEmpty()) { + completedMinisterIdList.addAll(completedMinisterIdList1); + } + completedMinisterIdList.add(delegateTask.getAssignee()); + delegateTask.setVariable("completedMinisterIdList",completedMinisterIdList); } else { throw new ActivitiException("1#2法规认证部副总监不存在,请配置相关人员"); } @@ -64,6 +76,27 @@ public class MinisterApprovalAfter implements TaskListener { } else { throw new ActivitiException("1#2起草人不存在,请配置相关人员"); } + // 驳回后,把其他审批人的代办转为已办 + List ministerIdList = new ArrayList<>(delegateTask.getVariable("ministerIdList", List.class)); + if (!ministerIdList.isEmpty()) { + List completedMinisterIdList = delegateTask.getVariable("completedMinisterIdList", List.class); + if (completedMinisterIdList != null && !completedMinisterIdList.isEmpty()) { + ministerIdList.removeAll(completedMinisterIdList); + } + ministerIdList.remove(delegateTask.getAssignee()); + } + if (!ministerIdList.isEmpty()) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(BusProcessNew::getPId, delegateTask.getProcessInstanceId()); + wrapper.eq(BusProcessNew::getTaskInfo, delegateTask.getName()); + wrapper.in(BusProcessNew::getUserId, ministerIdList); + List list = busBean.list(wrapper); + if (list != null && !list.isEmpty()) { + for (BusProcessNew busProcessNew : list) { + webServiceOAService.deleteOAByMandatory(busProcessNew.getId(), busProcessNew.getUserId()); + } + } + } } // 存储当前节点意见 diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/PRGAMStartAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/PRGAMStartAfter.java index e62a5ee3..59fc7801 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/PRGAMStartAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/PRGAMStartAfter.java @@ -41,7 +41,12 @@ public class PRGAMStartAfter implements TaskListener { List nextUserList = new ArrayList<>(); if(StringUtils.isNotBlank(object.getString("ministerId"))){ List ministerIdList = Arrays.asList(object.getString("ministerId").split(",")); + // 配置审核人员 delegateTask.setVariable("ministerIdList",ministerIdList); + // 初始化已审核人员 + delegateTask.setVariable("completedMinisterIdList",new ArrayList()); + // 初始化已审定人员 + delegateTask.setVariable("completedInspectorIdList",new ArrayList()); nextUserList.addAll(ministerIdList); } else { throw new ActivitiException("1#2法规认证部部长不存在,请配置相关人员"); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/RevisionInformationAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/RevisionInformationAfter.java index f5519a10..472fa434 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/RevisionInformationAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/RevisionInformationAfter.java @@ -43,7 +43,12 @@ public class RevisionInformationAfter implements TaskListener { if (StringUtils.isNotBlank(object.getString("ministerId"))) { List ministerIdList = Arrays.asList(object.getString("ministerId").split(",")); + // 配置审核人员 delegateTask.setVariable("ministerIdList",ministerIdList); + // 初始化已审核人员 + delegateTask.setVariable("completedMinisterIdList",new ArrayList()); + // 初始化已审定人员 + delegateTask.setVariable("completedInspectorIdList",new ArrayList()); nextUserList.addAll(ministerIdList); } else { throw new ActivitiException("1#2法规认证部部长不存在,请配置相关人员"); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEInspectorApprovalAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEInspectorApprovalAfter.java index f4e9b943..88a96f53 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEInspectorApprovalAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEInspectorApprovalAfter.java @@ -1,6 +1,7 @@ package com.ydw.bat.wkflow.listener.policyResearchGroupEnrollment; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; @@ -8,6 +9,7 @@ import com.ydw.bat.wkflow.business_main.datas.entity.Datas; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_main.datas.service.IDatasService; +import com.ydw.bat.wkflow.business_oa.webService.service.WebServiceOAService; import com.ydw.bat.wkflow.util.SpringContextUtil; import org.activiti.engine.ActivitiException; import org.activiti.engine.delegate.DelegateTask; @@ -29,6 +31,9 @@ public class PRGEInspectorApprovalAfter implements TaskListener { //流程信息 IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class); + // OA接口 + WebServiceOAService webServiceOAService = SpringContextUtil.getBean(WebServiceOAService.class); + //根据流程id找到流程信息 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); @@ -49,6 +54,13 @@ public class PRGEInspectorApprovalAfter implements TaskListener { if (StringUtils.isNotBlank(object.getString("presidentId"))) { delegateTask.setVariable("presidentId", object.getString("presidentId")); nextUserList.add(object.getString("presidentId")); + List completedInspectorIdList1 = delegateTask.getVariable("completedInspectorIdList", List.class); + List completedInspectorIdList = new ArrayList<>(); + if (completedInspectorIdList1 != null && !completedInspectorIdList1.isEmpty()) { + completedInspectorIdList.addAll(completedInspectorIdList1); + } + completedInspectorIdList.add(delegateTask.getAssignee()); + delegateTask.setVariable("completedInspectorIdList",completedInspectorIdList); } else { throw new ActivitiException("1#2公司副总不存在,请配置相关人员"); } @@ -61,6 +73,27 @@ public class PRGEInspectorApprovalAfter implements TaskListener { } else { throw new ActivitiException("1#2起草人不存在,请配置相关人员"); } + // 驳回后,把其他审批人的代办转为已办 + List inspectorIdList = new ArrayList(delegateTask.getVariable("inspectorIdList", List.class)); + if (!inspectorIdList.isEmpty()) { + List completedInspectorIdList = delegateTask.getVariable("completedInspectorIdList", List.class); + if (completedInspectorIdList != null && !completedInspectorIdList.isEmpty()) { + inspectorIdList.removeAll(completedInspectorIdList); + } + inspectorIdList.remove(delegateTask.getAssignee()); + } + if (!inspectorIdList.isEmpty()) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(BusProcessNew::getPId, delegateTask.getProcessInstanceId()); + wrapper.eq(BusProcessNew::getTaskInfo, delegateTask.getName()); + wrapper.in(BusProcessNew::getUserId, inspectorIdList); + List list = busBean.list(wrapper); + if (list != null && !list.isEmpty()) { + for (BusProcessNew busProcessNew : list) { + webServiceOAService.deleteOAByMandatory(busProcessNew.getId(), busProcessNew.getUserId()); + } + } + } } // 存储当前节点意见 diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEMinisterConfirmAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEMinisterConfirmAfter.java index bde9dd59..666fa8b2 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEMinisterConfirmAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEMinisterConfirmAfter.java @@ -9,15 +9,14 @@ import com.ydw.bat.wkflow.business_main.datas.entity.Datas; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_main.datas.service.IDatasService; +import com.ydw.bat.wkflow.business_oa.webService.service.WebServiceOAService; import com.ydw.bat.wkflow.util.SpringContextUtil; import org.activiti.engine.ActivitiException; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; import org.apache.commons.lang.StringUtils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; /** * 政策课题入会审核后 @@ -32,6 +31,9 @@ public class PRGEMinisterConfirmAfter implements TaskListener { //流程信息 IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class); + //OA接口 + WebServiceOAService webServiceOAService = SpringContextUtil.getBean(WebServiceOAService.class); + //根据流程id找到流程信息 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); @@ -55,6 +57,13 @@ public class PRGEMinisterConfirmAfter implements TaskListener { List inspectorIdList = Arrays.asList(object.getString("inspectorId").split(",")); delegateTask.setVariable("inspectorIdList",inspectorIdList); nextUserList.addAll(inspectorIdList); + List completedMinisterIdList1 = delegateTask.getVariable("completedMinisterIdList", List.class); + List completedMinisterIdList = new ArrayList<>(); + if (completedMinisterIdList1 != null && !completedMinisterIdList1.isEmpty()) { + completedMinisterIdList.addAll(completedMinisterIdList1); + } + completedMinisterIdList.add(delegateTask.getAssignee()); + delegateTask.setVariable("completedMinisterIdList",completedMinisterIdList); taskInfo = "审定"; } else { throw new ActivitiException("1#2法规认证部副总监不存在,请配置相关人员"); @@ -69,7 +78,27 @@ public class PRGEMinisterConfirmAfter implements TaskListener { } else { throw new ActivitiException("1#2起草人不存在,请配置相关人员"); } - + // 驳回后,把其他审批人的代办转为已办 + List ministerIdList = new ArrayList<>(delegateTask.getVariable("ministerIdList", List.class)); + if (!ministerIdList.isEmpty()) { + List completedMinisterIdList = delegateTask.getVariable("completedMinisterIdList", List.class); + if (completedMinisterIdList != null && !completedMinisterIdList.isEmpty()) { + ministerIdList.removeAll(completedMinisterIdList); + } + ministerIdList.remove(delegateTask.getAssignee()); + } + if (!ministerIdList.isEmpty()) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(BusProcessNew::getPId, delegateTask.getProcessInstanceId()); + wrapper.eq(BusProcessNew::getTaskInfo, delegateTask.getName()); + wrapper.in(BusProcessNew::getUserId, ministerIdList); + List list = busBean.list(wrapper); + if (list != null && !list.isEmpty()) { + for (BusProcessNew busProcessNew : list) { + webServiceOAService.deleteOAByMandatory(busProcessNew.getId(), busProcessNew.getUserId()); + } + } + } } // 存储当前节点意见 diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEStartAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEStartAfter.java index 522f1676..b85e2e04 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEStartAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEStartAfter.java @@ -1,7 +1,6 @@ package com.ydw.bat.wkflow.listener.policyResearchGroupEnrollment; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; @@ -43,7 +42,12 @@ public class PRGEStartAfter implements TaskListener { List nextUserList = new ArrayList<>(); if(StringUtils.isNotBlank(object.getString("ministerId"))){ List ministerIdList = Arrays.asList(object.getString("ministerId").split(",")); + // 配置审核人员 delegateTask.setVariable("ministerIdList",ministerIdList); + // 初始化已审核人员 + delegateTask.setVariable("completedMinisterIdList",new ArrayList()); + // 初始化已审定人员 + delegateTask.setVariable("completedInspectorIdList",new ArrayList()); nextUserList.addAll(ministerIdList); } else { throw new ActivitiException("1#2法规认证部部长不存在,请配置相关人员"); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/RevisionInformationAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/RevisionInformationAfter.java index 41502ab7..febef871 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/RevisionInformationAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/RevisionInformationAfter.java @@ -44,6 +44,10 @@ public class RevisionInformationAfter implements TaskListener { delegateTask.setVariable("approvalOpinion", 0); List ministerIdList = Arrays.asList(object.getString("ministerId").split(",")); delegateTask.setVariable("ministerIdList",ministerIdList); + // 初始化已审核人员 + delegateTask.setVariable("completedMinisterIdList",new ArrayList()); + // 初始化已审定人员 + delegateTask.setVariable("completedInspectorIdList",new ArrayList()); nextUserList.addAll(ministerIdList); } else { throw new ActivitiException("1#2法规认证部部长不存在,请配置相关人员");