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法规认证部部长不存在,请配置相关人员");