From 26572e18c6671ed7752b5b1cc19d0034bd104794 Mon Sep 17 00:00:00 2001 From: duanwenbin <12345678> Date: Mon, 19 Jul 2021 09:26:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=A0=87=E5=87=86=E5=88=86?= =?UTF-8?q?=E8=A7=A3=E5=8D=95=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../listener/standardRead/ChooseZrAfter.java | 8 +- .../listener/standardRead/ChooseZrBefore.java | 2 + .../standardRead/DeptApplayAfter.java | 94 +++++++++------ .../standardRead/DeptApplayBefore.java | 2 + .../listener/standardRead/DeptZrAfter.java | 57 +++++---- .../listener/standardRead/DeptZrBefore.java | 2 + .../standardRead/EngineerApplayAfter.java | 113 +++++++++++------- .../standardRead/EngineerApplayBefore.java | 2 + .../listener/standardRead/ExpainAfter.java | 48 +++----- .../listener/standardRead/ExpainBefore.java | 2 + .../listener/standardRead/ResolveAfter.java | 44 ++++--- .../listener/standardRead/ZrApplayAfter.java | 102 ++++++++++------ .../listener/standardRead/ZrApplayBefore.java | 2 + .../listener/standardRead/vo/JSONArrayVo.java | 99 +++++++++++++++ .../listener/standardRead/vo/ParamVo.java | 23 ++++ 15 files changed, 405 insertions(+), 195 deletions(-) create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/standardRead/vo/JSONArrayVo.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/standardRead/vo/ParamVo.java diff --git a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ChooseZrAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ChooseZrAfter.java index e49ea9f9..7e94f0fe 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ChooseZrAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ChooseZrAfter.java @@ -43,8 +43,8 @@ public class ChooseZrAfter implements TaskListener{ } //截止时间 流程描述 创建人 String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); - String user = object.getString("prcCreateUser"); - String username = object.getString("prcCreateUserName"); + String user = object.getString("applyUserId"); + String username = object.getString("applyUserIdName"); String standName = ""; if(object.getString("standInData").equals("0")){ standName = "国内"; @@ -57,7 +57,7 @@ public class ChooseZrAfter implements TaskListener{ BusProcessName one1 = busProcessNameService.getOne(queryWrapper2); if(one1!=null){ one1.setOverTime(OVERTIME); - one1.setPrcType("1"); + one1.setPrcType("9"); one1.setPrcName(prcName); one1.setCreatUser(user); one1.setCreatUserName(username); @@ -77,7 +77,7 @@ public class ChooseZrAfter implements TaskListener{ if(nextUserList != null && !nextUserList.isEmpty()){ for(String nextUser : nextUserList){ BusProcessNew busProcessNewNext = new BusProcessNew(); - busProcessNewNext.setMsgType("2"); + busProcessNewNext.setMsgType("clause"); busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); busProcessNewNext.setMesg(object.toJSONString()); busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ChooseZrBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ChooseZrBefore.java index 473116e1..4d2415ce 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ChooseZrBefore.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ChooseZrBefore.java @@ -17,6 +17,8 @@ public class ChooseZrBefore implements TaskListener{ IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); QueryWrapper queryWrapper1 = new QueryWrapper(); queryWrapper1.isNull("TASK_ID"); + queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper1.eq("USER_ID",delegateTask.getAssignee()); List list = busBean.list(queryWrapper1); if(!list.isEmpty()){ BusProcessNew one1 = list.get(0); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/DeptApplayAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/DeptApplayAfter.java index 079950f4..194ea7a2 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/DeptApplayAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/DeptApplayAfter.java @@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.standardRead; 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; @@ -11,7 +12,10 @@ import com.ydw.bat.wkflow.util.SpringContextUtil; 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; /** @@ -28,50 +32,62 @@ public class DeptApplayAfter implements TaskListener{ queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); Datas datas = datasService.getOne(queryWrapper); - JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); - delegateTask.setVariable("objectJson",object); + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + delegateTask.setVariable("objectJson", object); List nextUserList = new ArrayList(); //部长进行审批(1:通过) - if(object.getString("bzApplyFlag").equals("1")){ - delegateTask.setVariable("bzFlag",1); - func1(delegateTask, busBean, object,"0"); - }else { - if(StringUtils.isNotBlank(object.getString("zxUserId"))){ - if(StringUtils.isNotBlank(object.getString("zxUserId"))){ - delegateTask.setVariable("zxUserId",object.getString("zxUserId")); - nextUserList.add(object.getString("zxUserId")); - } - } - BusProcessNew busProcessNew = new BusProcessNew(); - busProcessNew.setMsgType("2"); - busProcessNew.setPId(delegateTask.getProcessInstanceId()); - busProcessNew.setMesg(object.toJSONString()); - busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); - busProcessNew.setFinishFlag("0"); - busProcessNew.setTaskInfo(delegateTask.getName()); - busProcessNew.setUserId(object.getString("zxUserId")); - busBean.save(busProcessNew); - func1(delegateTask, busBean, object,"1"); - delegateTask.setVariable("bzFlag",2); + if (object.getString("gcApplyFlag").equals("1")) { + delegateTask.setVariable("bzFlag", 1); + } else { + delegateTask.setVariable("bzFlag", 2); } - } - - /** - * 审批意见 - * @param delegateTask - * @param busBean - * @param object - * @param commitFlag - */ - 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); + //截止时间 流程描述 创建人 + String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + String user = object.getString("applyUserId"); + String username = object.getString("applyUserIdName"); + String standName = ""; + if(object.getString("standInData").equals("INLAND")){ + 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.setCommitFlag(commitFlag); - one1.setCommitText(object.getString("commentText")); - busBean.saveOrUpdate(one1); + one1.setOverTime(OVERTIME); + one1.setPrcType("9"); + 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()); + + QueryWrapper updataWapper = new QueryWrapper(); + updataWapper.eq("TASK_ID",delegateTask.getId()); + updataWapper.eq("P_ID",delegateTask.getProcessInstanceId()); + busBean.update(busProcessNew,updataWapper); + if (delegateTask.getVariable("bzFlag").equals("2")) { + QueryWrapper queryWrapper1 = new QueryWrapper(); + queryWrapper1.eq("TASK_ID",delegateTask.getId()); + BusProcessNew one2 = busBean.getOne(queryWrapper1); + if(one2!=null){ + one2.setCommitFlag("0"); + one2.setCommitText(object.getString("commentText")); + busBean.saveOrUpdate(one2); + } } } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/DeptApplayBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/DeptApplayBefore.java index 7feb083d..b108f4b4 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/DeptApplayBefore.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/DeptApplayBefore.java @@ -17,6 +17,8 @@ public class DeptApplayBefore implements TaskListener{ IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); QueryWrapper queryWrapper1 = new QueryWrapper(); queryWrapper1.isNull("TASK_ID"); + queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper1.eq("USER_ID",delegateTask.getAssignee()); List list = busBean.list(queryWrapper1); if(!list.isEmpty()){ BusProcessNew one1 = list.get(0); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/DeptZrAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/DeptZrAfter.java index 2d198b20..9d23ca09 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/DeptZrAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/DeptZrAfter.java @@ -1,5 +1,7 @@ package com.ydw.bat.wkflow.listener.standardRead; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; @@ -8,15 +10,13 @@ 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.standardRead.vo.JSONArrayVo; import com.ydw.bat.wkflow.util.SpringContextUtil; 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.*; +import java.util.stream.Collectors; /** * 下发至部门责任人发起后 @@ -34,24 +34,31 @@ public class DeptZrAfter implements TaskListener{ JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); delegateTask.setVariable("objectJson",object); - + //获取全局变量里的数据 + JSONArray responUserList = (delegateTask.getVariable("zxUserList", JSONArray.class)); + if (responUserList == null) + responUserList = new JSONArray(); + //数组去重 + JSONArray responUserList1 = object.getJSONArray("itemList"); + List list = responUserList1.toJavaList(JSONArrayVo.class); + Map> userGroupMap = list.stream().collect(Collectors.groupingBy(JSONArrayVo::getZxUserId)); + Set set = userGroupMap.keySet(); List nextUserList = new ArrayList(); - if(StringUtils.isNotBlank(object.getString("zxUserId"))){ - if(object.getString("zxUserId").contains(",")){ - nextUserList = Arrays.asList(object.getString("zxUserId").split(",")); - }else { - nextUserList.add(object.getString("zxUserId")); - } - // 配置多实例 - delegateTask.setVariable("zxUserList",nextUserList); + for (String str : set) { + nextUserList.add(str); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("id",str); + jsonObject.put("applyUserId",delegateTask.getAssignee()); + responUserList.add(jsonObject); } + delegateTask.setVariable("zxUserList",responUserList); //截止时间 流程描述 创建人 String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); - String user = object.getString("prcCreateUser"); - String username = object.getString("prcCreateUserName"); + String user = object.getString("applyUserId"); + String username = object.getString("applyUserIdName"); String standName = ""; - if(object.getString("standInData").equals("0")){ + if(object.getString("standInData").equals("INLAND")){ standName = "国内"; }else { standName = "国外"; @@ -62,7 +69,7 @@ public class DeptZrAfter implements TaskListener{ BusProcessName one1 = busProcessNameService.getOne(queryWrapper2); if(one1!=null){ one1.setOverTime(OVERTIME); - one1.setPrcType("1"); + one1.setPrcType("9"); one1.setPrcName(prcName); one1.setCreatUser(user); one1.setCreatUserName(username); @@ -70,7 +77,7 @@ public class DeptZrAfter implements TaskListener{ } // 存储当前节点意见 BusProcessNew busProcessNew = new BusProcessNew(); - busProcessNew.setMsgType("2"); + busProcessNew.setMsgType("clause"); busProcessNew.setPId(delegateTask.getProcessInstanceId()); busProcessNew.setMesg(object.toJSONString()); busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); @@ -78,11 +85,17 @@ public class DeptZrAfter implements TaskListener{ busProcessNew.setCommitText(object.getString("commentText")); busProcessNew.setFinishFlag("0"); busProcessNew.setTaskInfo(delegateTask.getName()); - busBean.save(busProcessNew); + + QueryWrapper updataWapper = new QueryWrapper(); + updataWapper.eq("TASK_ID",delegateTask.getId()); + updataWapper.eq("P_ID",delegateTask.getProcessInstanceId()); + busBean.update(busProcessNew,updataWapper); if(nextUserList != null && !nextUserList.isEmpty()){ - for(String nextUser : nextUserList){ + for(String nextUser : nextUserList){ //2次 + List listRes = userGroupMap.get(nextUser); + object.put("itemList", JSON.toJSONString(listRes)); BusProcessNew busProcessNewNext = new BusProcessNew(); - busProcessNewNext.setMsgType("2"); + busProcessNewNext.setMsgType("clause"); busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); busProcessNewNext.setMesg(object.toJSONString()); busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/DeptZrBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/DeptZrBefore.java index aa32f53f..3b23b0bf 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/DeptZrBefore.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/DeptZrBefore.java @@ -17,6 +17,8 @@ public class DeptZrBefore implements TaskListener{ IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); QueryWrapper queryWrapper1 = new QueryWrapper(); queryWrapper1.isNull("TASK_ID"); + queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper1.eq("USER_ID",delegateTask.getAssignee()); List list = busBean.list(queryWrapper1); if(!list.isEmpty()){ BusProcessNew one1 = list.get(0); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/EngineerApplayAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/EngineerApplayAfter.java index 6116862e..f009f8a5 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/EngineerApplayAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/EngineerApplayAfter.java @@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.standardRead; 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; @@ -11,7 +12,10 @@ import com.ydw.bat.wkflow.util.SpringContextUtil; 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; /** @@ -28,55 +32,78 @@ public class EngineerApplayAfter implements TaskListener{ queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); Datas datas = datasService.getOne(queryWrapper); - JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); - delegateTask.setVariable("objectJson",object); + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + delegateTask.setVariable("objectJson", object); List nextUserList = new ArrayList(); //工程师是否要进行审核 - if(object.getString("gcApplyFlag").equals("1")){ - delegateTask.setVariable("gcFlag",1); - if(StringUtils.isNotBlank(object.getString("deptUserId"))){ - if(StringUtils.isNotBlank(object.getString("deptUserId"))){ - delegateTask.setVariable("deptUserId",object.getString("deptUserId")); - } + if (object.getString("zrApplyFlag").equals("1")) { + delegateTask.setVariable("gcFlag", 1); + if (StringUtils.isNotBlank(object.getString("deptUserId"))) { + delegateTask.setVariable("deptUserId", object.getString("deptUserId")); + nextUserList.add(object.getString("deptUserId")); } - func1(delegateTask, busBean, object,"0"); - }else { - if(StringUtils.isNotBlank(object.getString("zxUserId"))){ - if(StringUtils.isNotBlank(object.getString("zxUserId"))){ - delegateTask.setVariable("zxUserId",object.getString("zxUserId")); - nextUserList.add(object.getString("zxUserId")); - } - } - BusProcessNew busProcessNew = new BusProcessNew(); - busProcessNew.setMsgType("2"); - busProcessNew.setPId(delegateTask.getProcessInstanceId()); - busProcessNew.setMesg(object.toJSONString()); - busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); - busProcessNew.setFinishFlag("0"); - busProcessNew.setTaskInfo(delegateTask.getName()); - busProcessNew.setUserId(object.getString("zxUserId")); - busBean.save(busProcessNew); - func1(delegateTask, busBean, object,"1"); - delegateTask.setVariable("gcFlag",2); + } else { + delegateTask.setVariable("gcFlag", 2); } - } + //截止时间 流程描述 创建人 + String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + String user = object.getString("applyUserId"); + String username = object.getString("applyUserIdName"); + String standName = ""; + if (object.getString("standInData").equals("INLAND")) { + 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("9"); + 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()); - /** - * 审批意见 - * @param delegateTask - * @param busBean - * @param object - * @param commitFlag - */ - 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); + QueryWrapper updataWapper = new QueryWrapper(); + updataWapper.eq("TASK_ID", delegateTask.getId()); + updataWapper.eq("P_ID", delegateTask.getProcessInstanceId()); + busBean.update(busProcessNew, updataWapper); + 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); + busBean.save(busProcessNewNext); + } + } else { + QueryWrapper queryWrapper1 = new QueryWrapper(); + queryWrapper1.eq("TASK_ID",delegateTask.getId()); + BusProcessNew one2 = busBean.getOne(queryWrapper1); + if(one2!=null){ + one2.setCommitFlag("0"); + one2.setCommitText(object.getString("commentText")); + busBean.saveOrUpdate(one2); + } } } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/EngineerApplayBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/EngineerApplayBefore.java index ba256a0b..4a1c5d62 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/EngineerApplayBefore.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/EngineerApplayBefore.java @@ -17,6 +17,8 @@ public class EngineerApplayBefore implements TaskListener{ IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); QueryWrapper queryWrapper1 = new QueryWrapper(); queryWrapper1.isNull("TASK_ID"); + queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper1.eq("USER_ID",delegateTask.getAssignee()); List list = busBean.list(queryWrapper1); if(!list.isEmpty()){ BusProcessNew one1 = list.get(0); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ExpainAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ExpainAfter.java index 264f6913..d58fc030 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ExpainAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ExpainAfter.java @@ -1,5 +1,6 @@ package com.ydw.bat.wkflow.listener.standardRead; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; @@ -11,11 +12,8 @@ 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 org.apache.commons.lang.StringUtils; import java.text.SimpleDateFormat; -import java.util.ArrayList; import java.util.Date; -import java.util.List; /** * 下发执行人发起后 @@ -34,32 +32,17 @@ public class ExpainAfter implements TaskListener{ JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); delegateTask.setVariable("objectJson",object); - List nextUserList = new ArrayList(); + JSONArray responUserList = new JSONArray(); //是否要进行审核 - if(object.getString("resolveFlag").equals("1")){ - delegateTask.setVariable("jdFlag",1); - if(StringUtils.isNotBlank(object.getString("applyUserId"))){ - if(StringUtils.isNotBlank(object.getString("applyUserId"))){ - delegateTask.setVariable("applyUserId",object.getString("applyUserId")); - nextUserList.add(object.getString("applyUserId")); - } - } - }else { - delegateTask.setVariable("jdFlag",2); - if(StringUtils.isNotBlank(object.getString("xzUserId"))){ - if(StringUtils.isNotBlank(object.getString("xzUserId"))){ - delegateTask.setVariable("xzUserId",object.getString("xzUserId")); - nextUserList.add(object.getString("xzUserId")); - } - } - } + delegateTask.setVariable("jdFlag",1); + responUserList = (delegateTask.getVariable("zxUserList", JSONArray.class)); //截止时间 流程描述 创建人 String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); - String user = object.getString("prcCreateUser"); - String username = object.getString("prcCreateUserName"); + String user = object.getString("applyUserId"); + String username = object.getString("applyUserIdName"); String standName = ""; - if(object.getString("standInData").equals("0")){ + if(object.getString("standInData").equals("INLAND")){ standName = "国内"; }else { standName = "国外"; @@ -70,7 +53,7 @@ public class ExpainAfter implements TaskListener{ BusProcessName one1 = busProcessNameService.getOne(queryWrapper2); if(one1!=null){ one1.setOverTime(OVERTIME); - one1.setPrcType("1"); + one1.setPrcType("9"); one1.setPrcName(prcName); one1.setCreatUser(user); one1.setCreatUserName(username); @@ -78,7 +61,7 @@ public class ExpainAfter implements TaskListener{ } // 存储当前节点意见 BusProcessNew busProcessNew = new BusProcessNew(); - busProcessNew.setMsgType("2"); + busProcessNew.setMsgType("clause"); busProcessNew.setPId(delegateTask.getProcessInstanceId()); busProcessNew.setMesg(object.toJSONString()); busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); @@ -86,9 +69,14 @@ public class ExpainAfter implements TaskListener{ busProcessNew.setCommitText(object.getString("commentText")); busProcessNew.setFinishFlag("0"); busProcessNew.setTaskInfo(delegateTask.getName()); - busBean.save(busProcessNew); - if(nextUserList != null && !nextUserList.isEmpty()){ - for(String nextUser : nextUserList){ + + QueryWrapper updataWapper = new QueryWrapper(); + updataWapper.eq("TASK_ID",delegateTask.getId()); + updataWapper.eq("P_ID",delegateTask.getProcessInstanceId()); + busBean.update(busProcessNew,updataWapper); + if(responUserList != null){ + for (Object obj:responUserList) { + JSONObject object1 = (JSONObject)obj; BusProcessNew busProcessNewNext = new BusProcessNew(); busProcessNewNext.setMsgType("clause"); busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); @@ -96,7 +84,7 @@ public class ExpainAfter implements TaskListener{ busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); busProcessNewNext.setFinishFlag("0"); busProcessNewNext.setTaskInfo(delegateTask.getName()); - busProcessNewNext.setUserId(nextUser); + busProcessNewNext.setUserId(object1.getString("applyUserId")); busBean.save(busProcessNewNext); } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ExpainBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ExpainBefore.java index e54d3484..c7949076 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ExpainBefore.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ExpainBefore.java @@ -17,6 +17,8 @@ public class ExpainBefore implements TaskListener{ IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); QueryWrapper queryWrapper1 = new QueryWrapper(); queryWrapper1.isNull("TASK_ID"); + queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper1.eq("USER_ID",delegateTask.getAssignee()); List list = busBean.list(queryWrapper1); if(!list.isEmpty()){ BusProcessNew one1 = list.get(0); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ResolveAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ResolveAfter.java index 21ba4603..24d10c6e 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ResolveAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ResolveAfter.java @@ -1,5 +1,7 @@ package com.ydw.bat.wkflow.listener.standardRead; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; @@ -8,15 +10,13 @@ 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.standardRead.vo.JSONArrayVo; import com.ydw.bat.wkflow.util.SpringContextUtil; 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.*; +import java.util.stream.Collectors; /** * 标准解读发起后 @@ -37,22 +37,22 @@ public class ResolveAfter implements TaskListener{ delegateTask.setVariable("objectJson",object); List nextUserList = new ArrayList(); - 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("zrUserList",nextUserList); + JSONArray responUserList = object.getJSONArray("itemList"); + List list = responUserList.toJavaList(JSONArrayVo.class); + Map> userGroupMap = list.stream().collect(Collectors.groupingBy(JSONArrayVo::getZrUserId)); + Set set = userGroupMap.keySet(); + for (String str : set) { + nextUserList.add(str); } + // 配置多实例 + delegateTask.setVariable("zrUserList", nextUserList); //截止时间 流程描述 创建人 String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); - String user = object.getString("prcCreateUser"); - String username = object.getString("prcCreateUserName"); + String user = object.getString("applyUserId"); + String username = object.getString("applyUserIdName"); String standName = ""; - if(object.getString("standInData").equals("0")){ + if(object.getString("standInData").equals("INLAND")){ standName = "国内"; }else { standName = "国外"; @@ -63,7 +63,7 @@ public class ResolveAfter implements TaskListener{ BusProcessName one1 = busProcessNameService.getOne(queryWrapper2); if(one1!=null){ one1.setOverTime(OVERTIME); - one1.setPrcType("1"); + one1.setPrcType("9"); one1.setPrcName(prcName); one1.setCreatUser(user); one1.setCreatUserName(username); @@ -81,10 +81,14 @@ public class ResolveAfter implements TaskListener{ busProcessNew.setTaskInfo(delegateTask.getName()); busBean.save(busProcessNew); if(nextUserList != null && !nextUserList.isEmpty()){ - for(String nextUser : nextUserList){ + for(String nextUser : nextUserList){ //2次 + List listRes = userGroupMap.get(nextUser); + object.put("itemList", JSON.toJSONString(listRes)); + BusProcessNew busProcessNewNext = new BusProcessNew(); - busProcessNewNext.setMsgType("2"); + busProcessNewNext.setMsgType("clause"); busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + //busProcessNewNext.setMesg(StringEscapeUtils.unescapeJavaScript(object.toJSONString()));//返转义函数 busProcessNewNext.setMesg(object.toJSONString()); busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); busProcessNewNext.setFinishFlag("0"); @@ -94,4 +98,6 @@ public class ResolveAfter implements TaskListener{ } } } + + } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ZrApplayAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ZrApplayAfter.java index 6992c72a..4182b5c5 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ZrApplayAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ZrApplayAfter.java @@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.standardRead; 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; @@ -11,7 +12,9 @@ import com.ydw.bat.wkflow.util.SpringContextUtil; 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; /** @@ -33,50 +36,73 @@ public class ZrApplayAfter implements TaskListener{ List nextUserList = new ArrayList(); //责任人是否要进行审核 - if(object.getString("zrApplyFlag").equals("1")){ + if(object.getString("resolveFlag").equals("1")){ delegateTask.setVariable("zrFlag",1); - if(StringUtils.isNotBlank(object.getString("engineerUserId"))){ - if(StringUtils.isNotBlank(object.getString("engineerUserId"))){ - delegateTask.setVariable("engineerUserId",object.getString("engineerUserId")); - } + if(StringUtils.isNotBlank(object.getString("applyUserId"))){ + delegateTask.setVariable("engineerUserId",object.getString("applyUserId")); + nextUserList.add(object.getString("applyUserId")); } - func1(delegateTask, busBean, object,"0"); }else { - if(StringUtils.isNotBlank(object.getString("zxUserId"))){ - if(StringUtils.isNotBlank(object.getString("zxUserId"))){ - delegateTask.setVariable("zxUserId",object.getString("zxUserId")); - nextUserList.add(object.getString("zxUserId")); - } - } - BusProcessNew busProcessNew = new BusProcessNew(); - busProcessNew.setMsgType("2"); - busProcessNew.setPId(delegateTask.getProcessInstanceId()); - busProcessNew.setMesg(object.toJSONString()); - busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); - busProcessNew.setFinishFlag("0"); - busProcessNew.setTaskInfo(delegateTask.getName()); - busProcessNew.setUserId(object.getString("zxUserId")); - busBean.save(busProcessNew); - func1(delegateTask, busBean, object,"1"); delegateTask.setVariable("zrFlag",2); } - } - - /** - * 审批意见 - * @param delegateTask - * @param busBean - * @param object - * @param commitFlag - */ - 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); + //截止时间 流程描述 创建人 + String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + String user = object.getString("applyUserId"); + String username = object.getString("applyUserIdName"); + String standName = ""; + if(object.getString("standInData").equals("INLAND")){ + 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.setCommitFlag(commitFlag); - one1.setCommitText(object.getString("commentText")); - busBean.saveOrUpdate(one1); + one1.setOverTime(OVERTIME); + one1.setPrcType("9"); + 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()); + + QueryWrapper updataWapper = new QueryWrapper(); + updataWapper.eq("TASK_ID",delegateTask.getId()); + updataWapper.eq("P_ID",delegateTask.getProcessInstanceId()); + busBean.update(busProcessNew,updataWapper); + 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); + busBean.save(busProcessNewNext); + } + } else { + QueryWrapper queryWrapper1 = new QueryWrapper(); + queryWrapper1.eq("TASK_ID",delegateTask.getId()); + BusProcessNew one2 = busBean.getOne(queryWrapper1); + if(one2!=null){ + one2.setCommitFlag("0"); + one2.setCommitText(object.getString("commentText")); + busBean.saveOrUpdate(one2); + } } } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ZrApplayBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ZrApplayBefore.java index f881b2ae..5eea3a73 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ZrApplayBefore.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/ZrApplayBefore.java @@ -17,6 +17,8 @@ public class ZrApplayBefore implements TaskListener{ IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); QueryWrapper queryWrapper1 = new QueryWrapper(); queryWrapper1.isNull("TASK_ID"); + queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper1.eq("USER_ID",delegateTask.getAssignee()); List list = busBean.list(queryWrapper1); if(!list.isEmpty()){ BusProcessNew one1 = list.get(0); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/vo/JSONArrayVo.java b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/vo/JSONArrayVo.java new file mode 100644 index 00000000..5d652bea --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/vo/JSONArrayVo.java @@ -0,0 +1,99 @@ +package com.ydw.bat.wkflow.listener.standardRead.vo; + +import lombok.Data; + +import java.util.List; + +@Data +public class JSONArrayVo { + private String id; + + private String infoId; + + private String itemsNum; + + private String itemsName; + + private String itermsConditions; + + private String newcarPutTime; + + private String productPutTime; + + private String menuId; + + private String svpps; + + private String applyArctic; + + private String referenceStand; + + private String specialRequest; + + private String relevanceFile; + + private String remarks; + + private String validFlag; + + private String creationUser; + + private String creationTime; + + private String modifyTime; + + private String modifyUser; + + private String infoIdList; + + private String idList; + + private String itemValEOList; + + private String delItemIds; + + private String sMenuId; + + private String relevanceFileAttid; + + private String fo; + + private String dutyEngineer; + + private String claimType; + + private String busStandCover; + + private String fileType; + + private String foShow; + + private String dutyEngineerShow; + + private String svppsShow; + + private String claimTypeShow; + + private String busStandCoverShow; + + private String fileTypeShow; + + private String responsibleUnit; + + private String responsibleUnitShow; + + private String itemsCondi; + //部门责任人 + private String zrUserId; + //选择执行人 + private String zxUserId; + + private String zxUserIdName; + + private String zrUserIdName; + + private List paramsList; + + + +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/standardRead/vo/ParamVo.java b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/vo/ParamVo.java new file mode 100644 index 00000000..9f799fc7 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/standardRead/vo/ParamVo.java @@ -0,0 +1,23 @@ +package com.ydw.bat.wkflow.listener.standardRead.vo; + +import lombok.Data; + +@Data +public class ParamVo { + + private String id; + + private String itemId; + + private String description; + + private String figure; + + private String validFlag; + + private String creationTime; + + private String modifyTime; + + private String infoId; +}