From d09816ec4fce6787185902a9cc731fdb1de65898 Mon Sep 17 00:00:00 2001 From: wxyclub Date: Wed, 18 Oct 2023 16:44:29 +0800 Subject: [PATCH] =?UTF-8?q?add:=20=E6=94=BF=E7=AD=96=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E7=9A=84=E5=8F=91=E9=80=81OA=E9=93=BE?= =?UTF-8?q?=E6=8E=A5=E4=BF=AE=E6=94=B9=E3=80=82=E5=86=85=E5=A4=96=E9=83=A8?= =?UTF-8?q?=E4=BC=9A=E8=AE=AE=E6=B5=81=E7=A8=8B=E7=9B=91=E5=90=AC=E5=99=A8?= =?UTF-8?q?=E7=BC=96=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MeetingApplicationAfter.java | 103 ++++++++++++++++++ .../MeetingApplicationBefore.java | 17 +++ .../MeetingManagerApproveAfter.java | 89 +++++++++++++++ .../MeetingManagerApproveBefore.java | 42 +++++++ .../MeetingReissueApplicationAfter.java | 92 ++++++++++++++++ .../MeetingReissueApplicationBefore.java | 40 +++++++ .../lawsLibrary/LCLApplicantBefore.java | 2 +- .../lawsLibrary/LawsManagerApproveBefore.java | 2 +- 8 files changed, 385 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingApplicationAfter.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingApplicationBefore.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingManagerApproveAfter.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingManagerApproveBefore.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingReissueApplicationAfter.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingReissueApplicationBefore.java diff --git a/src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingApplicationAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingApplicationAfter.java new file mode 100644 index 00000000..5b862c97 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingApplicationAfter.java @@ -0,0 +1,103 @@ +package com.ydw.bat.wkflow.listener.insideOutsideMeetingLibrary; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +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.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.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @author tjzdw + * @description 内外部会议入库申请发起后 + * @date 2023/10/16 + */ +public class MeetingApplicationAfter implements TaskListener { + + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class); + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Datas::getActiTaskId, delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + // 添加关联流程编号 + String processInstanceId = delegateTask.getProcessInstanceId(); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(BusProcessName::getPrcId,processInstanceId); + BusProcessName processName = busProcessNameService.getOne(wrapper); + object.put("prcNum",processName.getPrcNum()); + delegateTask.setVariable("objectJson",object); + + List nextUserList = new ArrayList<>(); + + if(StringUtils.isNotBlank(object.getString("jlUserId"))){ + delegateTask.setVariable("managerUserId",object.getString("jlUserId")); + nextUserList.add(object.getString("jlUserId")); + }else { + throw new ActivitiException("1#2经理人不存在,请配置相关人员"); + } + + //截止时间 流程描述 创建人 + String overTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + String user = object.getString("prcCreateUser"); + String username = object.getString("prcCreateUserName"); + Object meetingName = object.get("meetingName"); + String prcName = meetingName + "-政策入库流程"; + LambdaQueryWrapper queryWrapper2 = new LambdaQueryWrapper<>(); + queryWrapper2.eq(BusProcessName::getPrcId,delegateTask.getProcessInstanceId()); + BusProcessName one1 = busProcessNameService.getOne(queryWrapper2); + if(one1!=null){ + one1.setPrcType("meeting1"); + one1.setPrcName(prcName); + one1.setCreatUser(user); + one1.setCreatUserName(username); + busProcessNameService.saveOrUpdate(one1); + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + for(String nextUser : nextUserList){ + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(nextUser); + busProcessNewNext.setPrcName(prcName); + busBean.save(busProcessNewNext); + } + } + + private String verifyObj(String str){ + return (str == null || str.equals("")) ? "" : str; + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingApplicationBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingApplicationBefore.java new file mode 100644 index 00000000..a09a622e --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingApplicationBefore.java @@ -0,0 +1,17 @@ +package com.ydw.bat.wkflow.listener.insideOutsideMeetingLibrary; + +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; + +/** + * @author tjzdw + * @description 内外部会议入库申请发起前 + * @date 2023/10/16 + */ +public class MeetingApplicationBefore implements TaskListener { + + @Override + public void notify(DelegateTask delegateTask) { + + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingManagerApproveAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingManagerApproveAfter.java new file mode 100644 index 00000000..29966d42 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingManagerApproveAfter.java @@ -0,0 +1,89 @@ +package com.ydw.bat.wkflow.listener.insideOutsideMeetingLibrary; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +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.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; + +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * @author tjzdw + * @description 经理人审批后 + * @date 2023/10/16 + */ +public class MeetingManagerApproveAfter implements TaskListener { + + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Datas::getActiTaskId, delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + + String approvalOpinion = object.get("approvalOpinion") == null ? "" : object.get("approvalOpinion").toString(); + + // 驳回任务 + if ("1".equalsIgnoreCase(approvalOpinion)) { + delegateTask.setVariable("applyUserId", object.getString("applyUpdUserId")); + + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busProcessNew.setUserId(object.getString("applyUpdUserId")); + + String meetingName = object.getString("meetingName"); + String prcName = meetingName + "-入库"; + busProcessNew.setPrcName(prcName); + busBean.save(busProcessNew); + + LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>(); + queryWrapper1.eq(BusProcessNew::getTaskId, delegateTask.getId()); + BusProcessNew one1 = busBean.getOne(queryWrapper1); + if (one1 != null) { + one1.setCommitFlag("1"); + one1.setCommitText(object.getString("commentText")); + busBean.saveOrUpdate(one1); + } + delegateTask.setVariable("jlFlag", 1); + } else { + // 同意 + delegateTask.setVariable("jlFlag", 0); + LambdaQueryWrapper queryWrapper2 = new LambdaQueryWrapper<>(); + queryWrapper2.eq(BusProcessName::getPrcId, delegateTask.getProcessInstanceId()); + BusProcessName one2 = busProcessNameService.getOne(queryWrapper2); + String overTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + if (one2 != null) { + //one2.setPrcName("入库流程结束"); + one2.setOverTime(overTime); + one2.setPrcType("1"); + busProcessNameService.saveOrUpdate(one2); + } + + LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>(); + queryWrapper1.eq(BusProcessNew::getTaskId, delegateTask.getId()); + BusProcessNew one1 = busBean.getOne(queryWrapper1); + if (one1 != null) { + one1.setCommitFlag("0"); + one1.setCommitText(object.getString("commentText")); + busBean.saveOrUpdate(one1); + } + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingManagerApproveBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingManagerApproveBefore.java new file mode 100644 index 00000000..8573352b --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingManagerApproveBefore.java @@ -0,0 +1,42 @@ +package com.ydw.bat.wkflow.listener.insideOutsideMeetingLibrary; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; + +import java.util.List; + +/** + * @author tjzdw + * @description 经理人审批前 + * @date 2023/10/16 + */ +public class MeetingManagerApproveBefore implements TaskListener { + + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>(); + queryWrapper1.eq(BusProcessNew::getPId,delegateTask.getProcessInstanceId()); + queryWrapper1.eq(BusProcessNew::getUserId,delegateTask.getAssignee()); + queryWrapper1.isNull(BusProcessNew::getTaskId); + List list = busBean.list(queryWrapper1); + + if(!list.isEmpty()){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("policyMeetings2?prcType=29"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingReissueApplicationAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingReissueApplicationAfter.java new file mode 100644 index 00000000..539c0a2f --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingReissueApplicationAfter.java @@ -0,0 +1,92 @@ +package com.ydw.bat.wkflow.listener.insideOutsideMeetingLibrary; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +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.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.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @author tjzdw + * @description 重新发起内外部会议入库申请发起后 + * @date 2023/10/16 + */ +public class MeetingReissueApplicationAfter implements TaskListener { + + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class); + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Datas::getActiTaskId, delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + delegateTask.setVariable("objectJson",object); + + List nextUserList = new ArrayList<>(); + + if(StringUtils.isNotBlank(object.getString("jlUserId"))){ + delegateTask.setVariable("managerUserId",object.getString("jlUserId")); + nextUserList.add(object.getString("jlUserId")); + }else { + throw new ActivitiException("1#2经理人不存在,请配置相关人员"); + } + + //截止时间 流程描述 创建人 + String overTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + String user = object.getString("prcCreateUser"); + String username = object.getString("prcCreateUserName"); + String meetingName = object.getString("meetingName"); + String prcName = meetingName + "-入库"; + LambdaQueryWrapper queryWrapper2 = new LambdaQueryWrapper<>(); + queryWrapper2.eq(BusProcessName::getPrcId,delegateTask.getProcessInstanceId()); + BusProcessName one1 = busProcessNameService.getOne(queryWrapper2); + if(one1!=null){ + one1.setPrcType("1"); + one1.setPrcName(prcName); + one1.setCreatUser(user); + one1.setCreatUserName(username); + busProcessNameService.saveOrUpdate(one1); + } + + LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>(); + queryWrapper1.eq(BusProcessNew::getTaskId,delegateTask.getId()); + List list = busBean.list(queryWrapper1); + if(!list.isEmpty()){ + BusProcessNew busProcessNew = list.get(0); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setTaskInfo(delegateTask.getName()); + busProcessNew.setCommitText(object.getString("commentText")); + busBean.saveOrUpdate(busProcessNew); + } + + for(String nextUser : nextUserList){ + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busProcessNew.setUserId(nextUser); + busProcessNew.setPrcName(prcName); + busBean.save(busProcessNew); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingReissueApplicationBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingReissueApplicationBefore.java new file mode 100644 index 00000000..43cdac7d --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/insideOutsideMeetingLibrary/MeetingReissueApplicationBefore.java @@ -0,0 +1,40 @@ +package com.ydw.bat.wkflow.listener.insideOutsideMeetingLibrary; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; + +import java.util.List; + +/** + * @author tjzdw + * @description 重新发起内外部会议入库申请发起前 + * @date 2023/10/16 + */ +public class MeetingReissueApplicationBefore implements TaskListener { + + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>(); + queryWrapper1.eq(BusProcessNew::getPId,delegateTask.getProcessInstanceId()); + queryWrapper1.eq(BusProcessNew::getUserId,delegateTask.getAssignee()); + queryWrapper1.isNull(BusProcessNew::getTaskId); + List list = busBean.list(queryWrapper1); + if(!list.isEmpty()){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + busBean.saveOrUpdate(one1); + + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("policyMeetings1?prcType=29"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/lawsLibrary/LCLApplicantBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/lawsLibrary/LCLApplicantBefore.java index f553014d..e8e77a8d 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/lawsLibrary/LCLApplicantBefore.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/lawsLibrary/LCLApplicantBefore.java @@ -33,7 +33,7 @@ public class LCLApplicantBefore implements TaskListener{ one1.setTaskInfo(delegateTask.getName()); busBean.saveOrUpdate(one1); // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 - one1.setLink("zcrkStep3?prcType=laws1"); + one1.setLink("policyWarehousing1?prcType=laws1"); one1.setTaskInfo(delegateTask.getName()); oaService.sendTodoMq(one1); } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/lawsLibrary/LawsManagerApproveBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/lawsLibrary/LawsManagerApproveBefore.java index a0146583..429dff5c 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/lawsLibrary/LawsManagerApproveBefore.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/lawsLibrary/LawsManagerApproveBefore.java @@ -31,7 +31,7 @@ public class LawsManagerApproveBefore implements TaskListener{ one1.setTaskInfo(delegateTask.getName()); busBean.saveOrUpdate(one1); // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 - one1.setLink("zcrkStep2?prcType=laws1"); + one1.setLink("policyWarehousing2?prcType=laws1"); one1.setTaskInfo(delegateTask.getName()); oaService.sendTodoMq(one1); }