From 30716da96c3179dc9912ee9358377cd0eed16f85 Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Mon, 21 Jun 2021 14:10:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=A0=87=E5=87=86=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task/TodoTaskController.java | 45 ------- .../standardLibrary/ApplyApplicantAfter.java | 71 +++++++++++ .../standardLibrary/ApplyApplicantBefore.java | 38 ++++++ .../ManagerApplicantAfter.java | 66 +++++++++++ .../ManagerApplicantBefore.java | 27 +++++ .../standardLibrary/SLApplicantAfter.java | 112 ++++++++++++------ .../standardLibrary/SLApplicantBefore.java | 14 +-- 7 files changed, 282 insertions(+), 91 deletions(-) create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/ApplyApplicantAfter.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/ApplyApplicantBefore.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/ManagerApplicantAfter.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/ManagerApplicantBefore.java diff --git a/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java b/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java index 33090bb4..bfba52a9 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java +++ b/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java @@ -488,51 +488,6 @@ public class TodoTaskController extends BaseAction { JSONArray arr2 = new JSONArray(); object3.put("taskBreak", arr2); processNew.setMesg(object3.toJSONString()); - for (BusProcessNew busProcessNew : list) { - JSONObject object = JSONObject.parseObject(busProcessNew.getMesg()); - JSONArray array = object.getJSONArray("taskBreak"); - JSONArray itemsList = ((JSONObject) array.get(0)).getJSONArray("itemsList"); - if (itemsList != null && itemsList.size() > 0) { - - itemsList.getJSONObject(0).put("taskId", busProcessNew.getTaskId()); - JSONObject objectOld = JSONObject.parseObject(processNew.getMesg()); - for (Object obj : objectOld.getJSONArray("taskBreak")) { - if (((Map) obj).get("id").toString().equals(((JSONObject) array.get(0)).getString("id"))) { - JSONArray itemsList1 = ((JSONObject) obj).getJSONArray("itemsList"); - itemsList1.add(itemsList.get(0)); - } - } - - if (objectOld.getJSONArray("taskBreak").size() == 0) { - object.put("itemsList", array); - JSONObject object2 = JSONObject.parseObject(processNew.getMesg()); - JSONArray arr = object2.getJSONArray("taskBreak"); - arr.add(array.get(0)); - processNew.setMesg(object2.toJSONString()); - } else { - processNew.setMesg(objectOld.toJSONString()); - } - } else { - JSONArray array1 = object.getJSONArray("taskBreak"); - ((JSONObject) array1.get(0)).put("taskId", busProcessNew.getTaskId()); - JSONObject object2 = JSONObject.parseObject(processNew.getMesg()); - JSONArray arr = object2.getJSONArray("taskBreak"); - Task task = taskService.createTaskQuery().taskId(busProcessNew.getTaskId()).singleResult(); - if(task!=null){ - if(task.getName().equals("再次下发")){ -// if(arr.size()==0){ - arr.add(array1.get(0)); -// } - }else{ - arr.add(array1.get(0)); - } - }else{ - arr.add(array1.get(0)); - } - processNew.setMesg(object2.toJSONString()); - } - - } return processNew; } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/ApplyApplicantAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/ApplyApplicantAfter.java new file mode 100644 index 00000000..4646675c --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/ApplyApplicantAfter.java @@ -0,0 +1,71 @@ +package com.ydw.bat.wkflow.listener.standardLibrary; + +import com.alibaba.fastjson.JSONObject; +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.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.util.Date; + +/** + * 标准入库申请人修订后manager + */ +public class ApplyApplicantAfter 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()); + + JSONObject array = object.getJSONObject("hqsqForm"); + boolean flag = true; + if(array.getString("opinion").equals("1")){ + flag=false; + } + +// if(!flag){ + delegateTask.setVariable("jlspFlag",1); + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setUserId(delegateTask.getVariable("fqr").toString()); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setMsgType("10"); + array.put("opinionTime",new Date()); + busProcessNew.setMesg(object.toJSONString()); + busBean.save(busProcessNew); +// +// QueryWrapper queryWrapper1 = new QueryWrapper(); +// queryWrapper1.eq("TASK_ID",delegateTask.getId()); +// BusProcessNew one1 = busBean.getOne(queryWrapper1); +// if(one1!=null){ +// one1.setCommitFlag("1"); +//// one1.setCommitText(array.getString("opinionContent")); +// busBean.saveOrUpdate(one1); +// } +// }else{ +// delegateTask.setVariable("jlspFlag",0); +// +// QueryWrapper queryWrapper1 = new QueryWrapper(); +// queryWrapper1.eq("TASK_ID",delegateTask.getId()); +// BusProcessNew one1 = busBean.getOne(queryWrapper1); +// if(one1!=null){ +// one1.setCommitFlag("0"); +//// one1.setCommitText(array.getString("opinionContent")); +// busBean.saveOrUpdate(one1); +// } +// } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/ApplyApplicantBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/ApplyApplicantBefore.java new file mode 100644 index 00000000..2c5a1487 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/ApplyApplicantBefore.java @@ -0,0 +1,38 @@ +package com.ydw.bat.wkflow.listener.standardLibrary; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +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.util.List; + +/** + * 标准入库申请人修订前 + */ +public class ApplyApplicantBefore implements TaskListener{ + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + IBusProcessNameService busProcessNameServiceBean = SpringContextUtil.getBean(IBusProcessNameService.class); + LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class); + + QueryWrapper queryWrapper1 = new QueryWrapper(); + queryWrapper1.eq("USER_ID", delegateTask.getAssignee()); + queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper1.isNull("TASK_ID"); + List list = busBean.list(queryWrapper1); +// BusProcessNew one1 = busBean.getOne(queryWrapper1); +// one1.setTaskId(delegateTask.getId()); +// busBean.saveOrUpdate(one1); +//// +// +// WkFlowSendEmail.sendEmailTodo(delegateTask,"会前申请流程"); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/ManagerApplicantAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/ManagerApplicantAfter.java new file mode 100644 index 00000000..2b367e7c --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/ManagerApplicantAfter.java @@ -0,0 +1,66 @@ +package com.ydw.bat.wkflow.listener.standardLibrary; + +import com.alibaba.fastjson.JSONObject; +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.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.listener.common.WorkflowUtil; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; + +import java.util.Arrays; +import java.util.Date; + +/** + * 经理人审批后 + */ +public class ManagerApplicantAfter 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()); + + 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")); + busBean.save(busProcessNew); + + func1(delegateTask, busBean, object,"1"); + delegateTask.setVariable("jlFlag",1); + }else { + delegateTask.setVariable("jlFlag",0); + func1(delegateTask, busBean, object,"0"); + } + } + + 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); + busBean.saveOrUpdate(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/ManagerApplicantBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/ManagerApplicantBefore.java new file mode 100644 index 00000000..10158f2a --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/ManagerApplicantBefore.java @@ -0,0 +1,27 @@ +package com.ydw.bat.wkflow.listener.standardLibrary; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +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.util.List; + +/** + * 经理人审批前 + */ +public class ManagerApplicantBefore implements TaskListener{ + @Override + public void notify(DelegateTask delegateTask) { +// IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); +// IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); +// IBusProcessNameService busProcessNameServiceBean = SpringContextUtil.getBean(IBusProcessNameService.class); +// LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class); + + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/SLApplicantAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/SLApplicantAfter.java index 5666df57..56e1ebf0 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/SLApplicantAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/SLApplicantAfter.java @@ -2,21 +2,29 @@ package com.ydw.bat.wkflow.listener.standardLibrary; import com.alibaba.fastjson.JSONObject; 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; 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; /** * 标准入库申请人发起后 */ public class SLApplicantAfter implements TaskListener{ + @Override public void notify(DelegateTask delegateTask) { IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); @@ -28,44 +36,76 @@ public class SLApplicantAfter implements TaskListener{ Datas datas = datasService.getOne(queryWrapper); JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + delegateTask.setVariable("objectJson",object); - JSONObject array = object.getJSONObject("hqsqForm"); - boolean flag = true; - if(array.getString("opinion").equals("1")){ - flag=false; + List nextUserList = new ArrayList(); + + // 逻辑判断是否会签 signFlag +// JSONObject array = object.getJSONObject("hqsqForm"); + + if(object.getString("signFlag").equals("2")){ + delegateTask.setVariable("hqFlag",2); + + if(StringUtils.isNotBlank(object.getString("zrUserId"))){ + + if(object.getString("zrUserId").contains(",")){ + nextUserList = Arrays.asList(object.getString("zrUserId").split(",")); + }else { + nextUserList.add(object.getString("zrUserId")); + } + // 配置多实例 + delegateTask.setVariable("hqUserList",nextUserList); + }else { + throw new ActivitiException("1#2会签状态不存在,请配置相关状态"); + } + }else { + delegateTask.setVariable("hqFlag",1); + if(StringUtils.isNotBlank(object.getString("jlUserId"))){ + delegateTask.setVariable("managerUserId",object.getString("jlUserId")); + nextUserList.add(object.getString("jlUserId")); + }else { + throw new ActivitiException("1#2经理人不存在,请配置相关人员"); + } } -// if(!flag){ -// delegateTask.setVariable("jlspFlag",1); -// BusProcessNew busProcessNew = new BusProcessNew(); -// busProcessNew.setUserId(delegateTask.getVariable("fqr").toString()); -// busProcessNew.setPId(delegateTask.getProcessInstanceId()); -// busProcessNew.setFinishFlag("0"); -// busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); -// busProcessNew.setMsgType("10"); -// array.put("opinionTime",new Date()); -// busProcessNew.setMesg(object.toJSONString()); -// busBean.save(busProcessNew); -// -// QueryWrapper queryWrapper1 = new QueryWrapper(); -// queryWrapper1.eq("TASK_ID",delegateTask.getId()); -// BusProcessNew one1 = busBean.getOne(queryWrapper1); -// if(one1!=null){ -// one1.setCommitFlag("1"); -//// one1.setCommitText(array.getString("opinionContent")); -// busBean.saveOrUpdate(one1); -// } -// }else{ -// delegateTask.setVariable("jlspFlag",0); -// -// QueryWrapper queryWrapper1 = new QueryWrapper(); -// queryWrapper1.eq("TASK_ID",delegateTask.getId()); -// BusProcessNew one1 = busBean.getOne(queryWrapper1); -// if(one1!=null){ -// one1.setCommitFlag("0"); -//// one1.setCommitText(array.getString("opinionContent")); -// busBean.saveOrUpdate(one1); -// } -// } + + + //截止时间 流程描述 创建人 + String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + String user = object.getString("prcCreateUser"); + String username = object.getString("prcCreateUserName"); +// object.getString("standName") + String standName = ""; + if(object.getString("standInData").equals("0")){ + standName = "国内"; + }else { + standName = "国外"; + } + String prcName = standName+"-标准入库"; + QueryWrapper queryWrapper2 = new QueryWrapper(); + queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId()); + BusProcessName one1 = busProcessNameService.getOne(queryWrapper2); + if(one1!=null){ + one1.setOverTime(OVERTIME); + one1.setPrcType("1"); + one1.setPrcName(prcName); + one1.setCreatUser(user); + one1.setCreatUserName(username); + busProcessNameService.saveOrUpdate(one1); + } + + if(nextUserList != null && !nextUserList.isEmpty()){ + 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); + busBean.save(busProcessNew); + } + } } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/SLApplicantBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/SLApplicantBefore.java index 4bd54eaa..6175fe31 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/SLApplicantBefore.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/standardLibrary/SLApplicantBefore.java @@ -19,16 +19,10 @@ import java.util.List; public class SLApplicantBefore implements TaskListener{ @Override public void notify(DelegateTask delegateTask) { - IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); - IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); - IBusProcessNameService busProcessNameServiceBean = SpringContextUtil.getBean(IBusProcessNameService.class); - LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class); - - QueryWrapper queryWrapper1 = new QueryWrapper(); - queryWrapper1.eq("USER_ID", delegateTask.getAssignee()); - queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId()); - queryWrapper1.isNull("TASK_ID"); - List list = busBean.list(queryWrapper1); +// + +// queryWrapper1.isNull("TASK_ID"); +// List list = busBean.list(queryWrapper1); // BusProcessNew one1 = busBean.getOne(queryWrapper1); // one1.setTaskId(delegateTask.getId()); // busBean.saveOrUpdate(one1);