From 3c586badee7b16d86416c227c25f8b8a6ec773d0 Mon Sep 17 00:00:00 2001 From: liao <2948196353@qq.com> Date: Mon, 25 Oct 2021 09:55:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=8E=E5=A5=A5=20=E5=A4=96=E9=83=A8?= =?UTF-8?q?=E9=83=A8=E7=BD=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business_auth/LawsUserInfoService.java | 2 +- .../RecommendedApproval/RAApproveAfter.java | 132 ++++++++++++++++++ .../RecommendedApproval/RAApproveBefore.java | 34 +++++ .../RecommendedApproval/RAAuditAfter.java | 114 +++++++++++++++ .../RecommendedApproval/RAAuditBefore.java | 34 +++++ .../RAModifyInformationAfter.java | 87 ++++++++++++ .../RAModifyInformationBefore.java | 34 +++++ .../RecommendedApproval/RASignAfter.java | 114 +++++++++++++++ .../RecommendedApproval/RASignBefore.java | 34 +++++ .../RAValidationAfter.java | 115 +++++++++++++++ .../RAValidationBefore.java | 35 +++++ .../RecommendedApproval/RAstartAfter.java | 89 ++++++++++++ .../RecommendedApproval/RAstartBefore.java | 21 +++ src/main/resources/application.yml | 2 +- 14 files changed, 845 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAApproveAfter.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAApproveBefore.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAAuditAfter.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAAuditBefore.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAModifyInformationAfter.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAModifyInformationBefore.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RASignAfter.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RASignBefore.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAValidationAfter.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAValidationBefore.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAstartAfter.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAstartBefore.java diff --git a/src/main/java/com/ydw/bat/wkflow/business_auth/LawsUserInfoService.java b/src/main/java/com/ydw/bat/wkflow/business_auth/LawsUserInfoService.java index 07a67b75..4223c428 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_auth/LawsUserInfoService.java +++ b/src/main/java/com/ydw/bat/wkflow/business_auth/LawsUserInfoService.java @@ -18,7 +18,7 @@ import java.util.Map; import java.util.Set; @Component -@FeignClient(value = "FotonLAWSSystem",path="/api",url="") +@FeignClient(value = "FotonLAWSSystemLeo",path="/api",url="") @RequestMapping("/") public interface LawsUserInfoService { diff --git a/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAApproveAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAApproveAfter.java new file mode 100644 index 00000000..cadc3e26 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAApproveAfter.java @@ -0,0 +1,132 @@ +package com.ydw.bat.wkflow.listener.RecommendedApproval; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; + import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; + import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; + import com.ydw.bat.wkflow.business_main.datas.dto.DetailedUpDto; + import com.ydw.bat.wkflow.business_main.datas.dto.SarLawsDetailedList; + 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.Arrays; + import java.util.Date; + import java.util.List; + import java.util.regex.Matcher; + import java.util.regex.Pattern; + +public class RAApproveAfter implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class); + IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", 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("yzFlag",1); + 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")); + busProcessNew.setPrcName(delegateTask.getVariable("listName",String.class)+"-外部署名推荐批准-修改信息"); + busBean.save(busProcessNew); + + func1(delegateTask, busBean, object,"1"); + }else { + SarLawsDetailedList lawsDetailedList=lawsUserInfoService.getStandById(object.getString("standId")); + if (null!=lawsDetailedList){ + DetailedUpDto detailed=new DetailedUpDto(); + detailed.setId(object.getString("standId")); + detailed.setApplicationScope(object.getString("applyRegion")); + detailed.setFileIds(object.getString("fileId")); + detailed.setRemark(object.getString("descriptionList")); +// detailed.setInforlist(object.getString("inforlist")); + JSONArray jsonArray = JSONArray.parseArray(object.getString("dataList")); + String info=""; + String putTime=""; + String zccTime=""; + String xcxTime=""; +// for (Object o: jsonArray) { +// JSONObject object1=JSONObject.parseObject(o.toString()); +// info=info+object1.getString("id")+","; +// putTime=putTime+object1.getString("issueTime")+","; +// zccTime=zccTime+object1.getString("ZCCSSRQ")+","; +// xcxTime=xcxTime+object1.getString("XCXSSRQ")+","; +// } +// detailed.setInforlist(info.substring(0,info.length()-1)); +// detailed.setInforlist1(putTime.substring(0,putTime.length()-1)); +// detailed.setInforlist2(zccTime.substring(0,zccTime.length()-1)); +// detailed.setInforlist3(xcxTime.substring(0,xcxTime.length()-1)); +// detailed.setDetailedListState("1"); +// Date date=new Date(); +// SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); +// detailed.setDetailedListVision(simpleDateFormat.format(date)); +// lawsUserInfoService.updateLaws(detailed); + }else { + throw new ActivitiException("清单信息不存在,若多次出现此信息请联系管理员!!!"); + } + delegateTask.setVariable("yzFlag",2); + func2(delegateTask, busBean, object,"0",busProcessNameService); + + } + + } + private void func1(DelegateTask delegateTask, IBusProcessNewService busBean, JSONObject object,String commitFlag) { + QueryWrapper queryWrapper1 = new QueryWrapper(); + queryWrapper1.eq("TASK_ID",delegateTask.getId()); + BusProcessNew one1 = busBean.getOne(queryWrapper1); + if(one1!=null){ + one1.setCommitFlag(commitFlag); + one1.setCommitText(object.getString("commentText")); + busBean.saveOrUpdate(one1); + } + } + + private void func2(DelegateTask delegateTask, IBusProcessNewService busBean, JSONObject object,String commitFlag ,IBusProcessNameService busProcessNameService) { + + QueryWrapper queryWrapper2 = new QueryWrapper(); + queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId()); + BusProcessName one2 = busProcessNameService.getOne(queryWrapper2); + String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + if(one2!=null){ + one2.setOverTime(OVERTIME); + one2.setPrcType("16"); + busProcessNameService.saveOrUpdate(one2); + } + + QueryWrapper queryWrapper1 = new QueryWrapper(); + queryWrapper1.eq("TASK_ID",delegateTask.getId()); + BusProcessNew one1 = busBean.getOne(queryWrapper1); + if(one1!=null){ + one1.setCommitFlag(commitFlag); + one1.setCommitText(object.getString("commentText")); + busBean.saveOrUpdate(one1); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAApproveBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAApproveBefore.java new file mode 100644 index 00000000..7d69c72f --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAApproveBefore.java @@ -0,0 +1,34 @@ +package com.ydw.bat.wkflow.listener.RecommendedApproval; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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; + +public class RAApproveBefore implements TaskListener{ + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + QueryWrapper queryWrapper1 = new QueryWrapper(); + queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper1.eq("USER_ID",delegateTask.getAssignee()); + queryWrapper1.isNull("TASK_ID"); + List list = busBean.list(queryWrapper1); + if(!list.isEmpty()){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + busBean.saveOrUpdate(one1); + + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("bzqdfbStep5?prcType=16"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAAuditAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAAuditAfter.java new file mode 100644 index 00000000..ce7e8048 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAAuditAfter.java @@ -0,0 +1,114 @@ +package com.ydw.bat.wkflow.listener.RecommendedApproval; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; +import com.ydw.bat.wkflow.business_main.datas.dto.DetailedUpDto; +import com.ydw.bat.wkflow.business_main.datas.dto.SarLawsDetailedList; +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.Arrays; +import java.util.Date; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class RAAuditAfter 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); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + delegateTask.setVariable("objectJson", object); + + List nextUserList = new ArrayList(); +// 赋值 + delegateTask.setVariable("director", object.getString("directUser")); + nextUserList.add(object.getString("directUser")); + delegateTask.setVariable("statuteengineer2", object.getString("directorUser")); + nextUserList.add(object.getString("directorUser")); + +// 逻辑判断是否会签 signFlag + + if(object.getString("signFlag").equals("1")) { + delegateTask.setVariable("bzFlag", 1); + if (StringUtils.isNotBlank(object.getString("directUser"))) { + + if (object.getString("directUser").contains(",")) { + nextUserList = Arrays.asList(object.getString("directUser").split(",")); + } else { + nextUserList.add(object.getString("directUser")); + } + } + } else { + delegateTask.setVariable("bzFlag", 2); + if (StringUtils.isNotBlank(object.getString("directorUser"))) { + delegateTask.setVariable("statuteengineer2", object.getString("directorUser")); + nextUserList.add(object.getString("directorUser")); + } + } + + //截止时间 流程描述 创建人 + String user = object.getString("prcCreateUser"); + String username = object.getString("prcCreateUserName"); + delegateTask.setVariable("prcCreateUser", user); + delegateTask.setVariable("prcCreateUserName", username); + String standName = object.getString("listName"); + delegateTask.setVariable("listName",standName); + String prcName=""; + if(object.getString("signFlag").equals("1")) { + prcName = standName + "-外部署名推荐批准-审核"; + }else { + prcName = standName + "-外部署名推荐批准-修改信息"; + } + + + QueryWrapper queryWrapper2 = new QueryWrapper(); + queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId()); + BusProcessName one1 = busProcessNameService.getOne(queryWrapper2); + + if(one1!=null){ + one1.setPrcType("16"); + one1.setPrcName(prcName); + one1.setCreatUser(user); + one1.setCreatUserName(username); + busProcessNameService.saveOrUpdate(one1); + } + + if (nextUserList != null && !nextUserList.isEmpty()) { + 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); + } + } + } +} \ No newline at end of file diff --git a/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAAuditBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAAuditBefore.java new file mode 100644 index 00000000..045d2707 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAAuditBefore.java @@ -0,0 +1,34 @@ +package com.ydw.bat.wkflow.listener.RecommendedApproval; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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; + +public class RAAuditBefore implements TaskListener{ + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + QueryWrapper queryWrapper1 = new QueryWrapper(); + queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper1.eq("USER_ID",delegateTask.getAssignee()); + queryWrapper1.isNull("TASK_ID"); + List list = busBean.list(queryWrapper1); + if(!list.isEmpty()){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + busBean.saveOrUpdate(one1); + + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("bzqdfbStep3?prcType=16"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAModifyInformationAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAModifyInformationAfter.java new file mode 100644 index 00000000..e5ac6093 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAModifyInformationAfter.java @@ -0,0 +1,87 @@ +package com.ydw.bat.wkflow.listener.RecommendedApproval; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; +import com.ydw.bat.wkflow.business_main.datas.dto.DetailedUpDto; +import com.ydw.bat.wkflow.business_main.datas.dto.SarLawsDetailedList; +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.Arrays; +import java.util.Date; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class RAModifyInformationAfter 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); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + delegateTask.setVariable("objectJson", object); + + List nextUserList = new ArrayList(); +// 赋值署名领导 + delegateTask.setVariable("leadership", object.getString("creatUser")); + nextUserList.add(object.getString("creatUser")); + + + + + //截止时间 流程描述 创建人 + String user = object.getString("prcCreateUser"); + String username = object.getString("prcCreateUserName"); + delegateTask.setVariable("prcCreateUser", user); + delegateTask.setVariable("prcCreateUserName", username); + + String prcName = delegateTask.getVariable("listName", String.class) + "-外部署名推荐批准-署名领导会签"; + QueryWrapper queryWrapper2 = new QueryWrapper(); + queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId()); + BusProcessName one1 = busProcessNameService.getOne(queryWrapper2); + + if(one1!=null){ + one1.setPrcType("16"); + one1.setPrcName(prcName); + one1.setCreatUser(user); + one1.setCreatUserName(username); + busProcessNameService.saveOrUpdate(one1); + } + + if (nextUserList != null && !nextUserList.isEmpty()) { + 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); + } + } + } +} \ No newline at end of file diff --git a/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAModifyInformationBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAModifyInformationBefore.java new file mode 100644 index 00000000..038b799a --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAModifyInformationBefore.java @@ -0,0 +1,34 @@ +package com.ydw.bat.wkflow.listener.RecommendedApproval; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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; + +public class RAModifyInformationBefore implements TaskListener{ + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + QueryWrapper queryWrapper1 = new QueryWrapper(); + queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper1.eq("USER_ID",delegateTask.getAssignee()); + queryWrapper1.isNull("TASK_ID"); + List list = busBean.list(queryWrapper1); + if(!list.isEmpty()){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + busBean.saveOrUpdate(one1); + + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("bzqdfbStep6?prcType=16"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RASignAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RASignAfter.java new file mode 100644 index 00000000..1683321c --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RASignAfter.java @@ -0,0 +1,114 @@ +package com.ydw.bat.wkflow.listener.RecommendedApproval; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; +import com.ydw.bat.wkflow.business_main.datas.dto.DetailedUpDto; +import com.ydw.bat.wkflow.business_main.datas.dto.SarLawsDetailedList; +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.Arrays; +import java.util.Date; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class RASignAfter 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); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + delegateTask.setVariable("objectJson", object); + + List nextUserList = new ArrayList(); +// 赋值 + delegateTask.setVariable("statuteminister", object.getString("dockUser")); + nextUserList.add(object.getString("dockUser")); + delegateTask.setVariable("statuteengineer2", object.getString("directorUser")); + nextUserList.add(object.getString("directorUser")); + +// 逻辑判断是否会签 signFlag + + if(object.getString("signFlag").equals("1")) { + delegateTask.setVariable("ldFlag", 1); + if (StringUtils.isNotBlank(object.getString("dockUser"))) { + + if (object.getString("dockUser").contains(",")) { + nextUserList = Arrays.asList(object.getString("dockUser").split(",")); + } else { + nextUserList.add(object.getString("dockUser")); + } + } + } else { + delegateTask.setVariable("ldFlag", 2); + if (StringUtils.isNotBlank(object.getString("directorUser"))) { + delegateTask.setVariable("statuteengineer2", object.getString("directorUser")); + nextUserList.add(object.getString("directorUser")); + } + } + + //截止时间 流程描述 创建人 + String user = object.getString("prcCreateUser"); + String username = object.getString("prcCreateUserName"); + delegateTask.setVariable("prcCreateUser", user); + delegateTask.setVariable("prcCreateUserName", username); + String standName = object.getString("listName"); + delegateTask.setVariable("listName",standName); + String prcName=""; + if(object.getString("signFlag").equals("1")) { + prcName = standName + "-外部署名推荐批准-审核"; + }else { + prcName = standName + "-外部署名推荐批准-修改信息"; + } + + + QueryWrapper queryWrapper2 = new QueryWrapper(); + queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId()); + BusProcessName one1 = busProcessNameService.getOne(queryWrapper2); + + if(one1!=null){ + one1.setPrcType("16"); + one1.setPrcName(prcName); + one1.setCreatUser(user); + one1.setCreatUserName(username); + busProcessNameService.saveOrUpdate(one1); + } + + if (nextUserList != null && !nextUserList.isEmpty()) { + 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); + } + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RASignBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RASignBefore.java new file mode 100644 index 00000000..6daf73b4 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RASignBefore.java @@ -0,0 +1,34 @@ +package com.ydw.bat.wkflow.listener.RecommendedApproval; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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; + +public class RASignBefore implements TaskListener{ + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + QueryWrapper queryWrapper1 = new QueryWrapper(); + queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper1.eq("USER_ID",delegateTask.getAssignee()); + queryWrapper1.isNull("TASK_ID"); + List list = busBean.list(queryWrapper1); + if(!list.isEmpty()){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + busBean.saveOrUpdate(one1); + + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("bzqdfbStep2?prcType=16"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAValidationAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAValidationAfter.java new file mode 100644 index 00000000..4760c412 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAValidationAfter.java @@ -0,0 +1,115 @@ +package com.ydw.bat.wkflow.listener.RecommendedApproval; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; +import com.ydw.bat.wkflow.business_main.datas.dto.DetailedUpDto; +import com.ydw.bat.wkflow.business_main.datas.dto.SarLawsDetailedList; +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.Arrays; +import java.util.Date; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class RAValidationAfter 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); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + delegateTask.setVariable("objectJson", object); + + List nextUserList = new ArrayList(); +// 赋值 + delegateTask.setVariable("dean", object.getString("deanUser")); + nextUserList.add(object.getString("deanUser")); + delegateTask.setVariable("statuteengineer2", object.getString("directorUser")); + nextUserList.add(object.getString("directorUser")); + +// 逻辑判断是否审核 signFlag + + if(object.getString("signFlag").equals("1")) { + delegateTask.setVariable("zrFlag", 1); + + if (StringUtils.isNotBlank(object.getString("deanUser"))) { + + if (object.getString("deanUser").contains(",")) { + nextUserList = Arrays.asList(object.getString("deanUser").split(",")); + } else { + nextUserList.add(object.getString("deanUser")); + } + } + } else { + delegateTask.setVariable("zrFlag", 2); + if (StringUtils.isNotBlank(object.getString("directorUser"))) { + delegateTask.setVariable("statuteengineer2", object.getString("directorUser")); + nextUserList.add(object.getString("directorUser")); + } + } + + //截止时间 流程描述 创建人 + String user = object.getString("prcCreateUser"); + String username = object.getString("prcCreateUserName"); + delegateTask.setVariable("prcCreateUser", user); + delegateTask.setVariable("prcCreateUserName", username); + String standName = object.getString("listName"); + delegateTask.setVariable("listName",standName); + String prcName=""; + if(object.getString("signFlag").equals("1")) { + prcName = standName + "-外部署名推荐批准-批准"; + }else { + prcName = standName + "-外部署名推荐批准-修改信息"; + } + + QueryWrapper queryWrapper2 = new QueryWrapper(); + queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId()); + BusProcessName one1 = busProcessNameService.getOne(queryWrapper2); + + if(one1!=null){ + one1.setPrcType("16"); + one1.setPrcName(prcName); + one1.setCreatUser(user); + one1.setCreatUserName(username); + busProcessNameService.saveOrUpdate(one1); + } + + if (nextUserList != null && !nextUserList.isEmpty()) { + 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); + } + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAValidationBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAValidationBefore.java new file mode 100644 index 00000000..45a75c36 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAValidationBefore.java @@ -0,0 +1,35 @@ +package com.ydw.bat.wkflow.listener.RecommendedApproval; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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; + +public class RAValidationBefore implements TaskListener{ + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + QueryWrapper queryWrapper1 = new QueryWrapper(); + queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper1.eq("USER_ID",delegateTask.getAssignee()); + queryWrapper1.isNull("TASK_ID"); + List list = busBean.list(queryWrapper1); + if(!list.isEmpty()){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + busBean.saveOrUpdate(one1); + + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("bzqdfbStep4?prcType=16"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} + diff --git a/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAstartAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAstartAfter.java new file mode 100644 index 00000000..44a23a4b --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAstartAfter.java @@ -0,0 +1,89 @@ +package com.ydw.bat.wkflow.listener.RecommendedApproval; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; +import com.ydw.bat.wkflow.business_main.datas.dto.DetailedUpDto; +import com.ydw.bat.wkflow.business_main.datas.dto.SarLawsDetailedList; +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.Arrays; +import java.util.Date; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class RAstartAfter 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); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + delegateTask.setVariable("objectJson", object); + + List nextUserList = new ArrayList(); + // 配置多实例 + delegateTask.setVariable("leadershiplist",nextUserList); + +// 赋值署名领导 + delegateTask.setVariable("leadership", object.getString("creatUser")); + nextUserList.add(object.getString("creatUser")); + + + //截止时间 流程描述 创建人 + String user = object.getString("prcCreateUser"); + String username = object.getString("prcCreateUserName"); + delegateTask.setVariable("prcCreateUser", user); + delegateTask.setVariable("prcCreateUserName", username); +// delegateTask.setVariable("stId",object.getString("projectNumber")); + + String prcName = delegateTask.getVariable("listName", String.class) + "-外部署名推荐批准-署名领导会签"; + QueryWrapper queryWrapper2 = new QueryWrapper(); + queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId()); + BusProcessName one1 = busProcessNameService.getOne(queryWrapper2); + + if(one1!=null){ + one1.setPrcType("16"); + one1.setPrcName(prcName); + one1.setCreatUser(user); + one1.setCreatUserName(username); + busProcessNameService.saveOrUpdate(one1); + } + + if (nextUserList != null && !nextUserList.isEmpty()) { + 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); + } + } + } +} \ No newline at end of file diff --git a/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAstartBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAstartBefore.java new file mode 100644 index 00000000..f2afedf7 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/RecommendedApproval/RAstartBefore.java @@ -0,0 +1,21 @@ +package com.ydw.bat.wkflow.listener.RecommendedApproval; + +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; + +public class RAstartBefore implements TaskListener{ + @Override + public void notify(DelegateTask delegateTask) { +// IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); +// QueryWrapper queryWrapper1 = new QueryWrapper(); +// queryWrapper1.isNull("TASK_ID"); +// List list = busBean.list(queryWrapper1); +// if(!list.isEmpty()){ +// BusProcessNew one1 = list.get(0); +// one1.setTaskId(delegateTask.getId()); +// busBean.saveOrUpdate(one1); +// } + } + +} + diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index e0d2bdf9..59aa9518 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -18,7 +18,7 @@ eureka: defaultZone: http://62.234.136.153:8761/eureka/ spring: application: - name: bat-wkflow + name: bat-wkflow-leo http: encoding: charset: UTF-8