From bd72f99d20870983eaea4c71eda7ef4808c535ee Mon Sep 17 00:00:00 2001 From: yinglong zhang <1679309912@qq.com> Date: Wed, 14 Jul 2021 16:01:30 +0800 Subject: [PATCH] =?UTF-8?q?fixed=20=E6=A0=87=E5=87=86=E8=B0=83=E7=A0=94?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StandardSurvey/ResponUserSignAfter.java | 3 +- .../SelectResponsibleUserAfter.java | 57 ++++++++++-------- .../StandardSurvey/StartSurveyAfter.java | 20 +++++-- .../StandardSurvey/SummarySurveyAfter.java | 12 ++-- .../StandardSurvey/SummarySurveyBefore.java | 5 +- .../UploadResearchResultAfter.java | 60 +++++++++---------- 6 files changed, 90 insertions(+), 67 deletions(-) diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/ResponUserSignAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/ResponUserSignAfter.java index 895a5bc2..46e7fa83 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/ResponUserSignAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/ResponUserSignAfter.java @@ -1,5 +1,6 @@ package com.ydw.bat.wkflow.listener.StandardSurvey; +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; @@ -84,7 +85,7 @@ public class ResponUserSignAfter implements TaskListener { busBean.update(busProcessNew,updataWapper); Integer count=delegateTask.getVariable("task2OKCount",Integer.class); - List responUserList=delegateTask.getVariable("responUserList",List.class); + JSONArray responUserList=delegateTask.getVariable("responUserList", JSONArray.class); if(count==null)count=0; diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/SelectResponsibleUserAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/SelectResponsibleUserAfter.java index 727381d6..df18afb3 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/SelectResponsibleUserAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/SelectResponsibleUserAfter.java @@ -37,26 +37,23 @@ public class SelectResponsibleUserAfter implements TaskListener { String userListString=object.getString("responUserList"); String userListStringName=object.getString("responUserListName"); - List userList = Arrays.asList(userListString.split(",")); - for (int i = 0; i < userList.size(); i++) { - nextUserList.add(userList.get(i).trim()); - } - List userListName=Arrays.asList(userListStringName.split(",")); - List newUserListName = new ArrayList(); - userListName.forEach((String name)->{ - newUserListName.add(name.trim()); - }); - JSONObject userListJson=new JSONObject(); + JSONArray responUserList=delegateTask.getVariable("responUserList",JSONArray.class); + if (responUserList==null) responUserList=new JSONArray(); + + List userListName=Arrays.asList(userListStringName.split(",")); + + List userList = Arrays.asList(userListString.split(",")); + for (int i = 0; i < userList.size(); i++) { JSONObject json=new JSONObject(); json.put("id",userList.get(i)); - json.put("name",newUserListName.get(i)); - userListJson.put(userList.get(i),json); + json.put("name",userListName.get(i)); + json.put("dockUser",delegateTask.getAssignee()); + responUserList.add(json); } - delegateTask.setVariable("responUserListMap",userListJson.toJSONString()); - delegateTask.setVariable("responUserList",nextUserList); + delegateTask.setVariable("responUserList",responUserList); @@ -95,18 +92,28 @@ public class SelectResponsibleUserAfter implements TaskListener { 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); + Integer count=delegateTask.getVariable("selectResponCount",Integer.class); + if(count==null)count=0; + count++; + delegateTask.setVariable("selectResponCount",count); + + if(count>=delegateTask.getVariable("dockUserList",List.class).size()){ + if(!responUserList.isEmpty()){ + for (int i = 0; i < responUserList.size(); i++) { + JSONObject jsonObject = responUserList.getJSONObject(i); + 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(jsonObject.getString("id")); + busBean.save(busProcessNewNext); + } } } + + } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/StartSurveyAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/StartSurveyAfter.java index 46d05c2d..47e49de9 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/StartSurveyAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/StartSurveyAfter.java @@ -35,18 +35,30 @@ public class StartSurveyAfter implements TaskListener { delegateTask.setVariable("objectJson",object); List nextUserList = new ArrayList(); - List userList=new ArrayList<>(); delegateTask.setVariable("startUser",object.getString("startUser")); - delegateTask.setVariable("dockUser",object.getString("dockUser")); delegateTask.setVariable("ministerUser",object.getString("ministerUser")); + + delegateTask.setVariable("directorUser",object.getString("directorUser")); delegateTask.setVariable("presidentUser",object.getString("presidentUser")); + List dockUserList=new ArrayList<>(); + for (String dockUser : object.getString("dockUserList").split(",")) { + dockUserList.add(dockUser.trim()); + } + + + nextUserList=dockUserList; + delegateTask.setVariable("dockUserList",dockUserList); + + List userList = new ArrayList<>(dockUserList); userList.add(object.getString("dockUser")); userList.add(object.getString("ministerUser")); - delegateTask.setVariable("userList",userList); + + delegateTask.setVariable("selectResponCount",0); + delegateTask.setVariable("actionFlag",0); @@ -85,7 +97,7 @@ public class StartSurveyAfter implements TaskListener { busBean.save(busProcessNew); - if(nextUserList != null && !nextUserList.isEmpty()){ + if(!nextUserList.isEmpty()){ for(String nextUser : nextUserList){ BusProcessNew busProcessNewNext = new BusProcessNew(); busProcessNewNext.setMsgType("clause"); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/SummarySurveyAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/SummarySurveyAfter.java index c2b39aab..4b66269b 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/SummarySurveyAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/SummarySurveyAfter.java @@ -1,5 +1,6 @@ package com.ydw.bat.wkflow.listener.StandardSurvey; +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; @@ -31,9 +32,9 @@ public class SummarySurveyAfter implements TaskListener { JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); delegateTask.setVariable("objectJson",object); - List nextUserList; + JSONArray nextUserList; - List responUserList=delegateTask.getVariable("responUserList",List.class); + JSONArray responUserList=delegateTask.getVariable("responUserList", JSONArray.class); for (int i=1;i<10;i++){ delegateTask.setVariable("task"+ i +"Count",0); @@ -81,7 +82,10 @@ public class SummarySurveyAfter implements TaskListener { busBean.update(busProcessNew,updataWapper); if(nextUserList != null && !nextUserList.isEmpty()){ - for(String nextUser : nextUserList){ + for(Object nextUser1 : nextUserList){ + JSONObject nextUser=(JSONObject) nextUser1; + + BusProcessNew busProcessNewNext = new BusProcessNew(); busProcessNewNext.setMsgType("clause"); busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); @@ -89,7 +93,7 @@ public class SummarySurveyAfter implements TaskListener { busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); busProcessNewNext.setFinishFlag("0"); busProcessNewNext.setTaskInfo(delegateTask.getName()); - busProcessNewNext.setUserId(nextUser); + busProcessNewNext.setUserId(nextUser.getString("id")); busBean.save(busProcessNewNext); } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/SummarySurveyBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/SummarySurveyBefore.java index 847cc696..0a037972 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/SummarySurveyBefore.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/SummarySurveyBefore.java @@ -1,6 +1,7 @@ package com.ydw.bat.wkflow.listener.StandardSurvey; 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.BusProcessNew; @@ -22,8 +23,8 @@ public class SummarySurveyBefore implements TaskListener { if(!list.isEmpty()){ BusProcessNew one1 = list.get(0); JSONObject obj= JSON.parseObject(one1.getMesg()); - JSONObject map = JSON.parseObject(delegateTask.getVariable("responUserListMap", String.class)); - obj.put("responUserListMap",map.values()); + JSONArray responUserList = delegateTask.getVariable("responUserList", JSONArray.class); + obj.put("responUserList",responUserList); one1.setMesg(obj.toJSONString()); one1.setTaskId(delegateTask.getId()); one1.setTaskInfo(delegateTask.getName()); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/UploadResearchResultAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/UploadResearchResultAfter.java index e0d0fa11..66dafc9f 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/UploadResearchResultAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/UploadResearchResultAfter.java @@ -1,6 +1,7 @@ package com.ydw.bat.wkflow.listener.StandardSurvey; 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; @@ -36,19 +37,30 @@ public class UploadResearchResultAfter implements TaskListener { JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); - JSONObject map = JSON.parseObject(delegateTask.getVariable("responUserListMap", String.class)); - JSONObject jsonObject = map.getJSONObject(delegateTask.getAssignee()); - jsonObject.put("fileId",object.getString("fileId")); - jsonObject.put("fileName",object.getString("fileName")); - map.put(delegateTask.getAssignee(),jsonObject); - delegateTask.setVariable("responUserListMap",map.toJSONString()); + JSONArray responUserList = delegateTask.getVariable("responUserList", JSONArray.class); + JSONObject responUser = delegateTask.getVariable("responUser", JSONObject.class); - List nextUserList = new ArrayList(); + for (int i = 0; i < responUserList.size(); i++) { + JSONObject obj=responUserList.getJSONObject(i); + if(obj.getString("id").equals(responUser.getString("id")) + &&obj.getString("dockUser").equals(responUser.getString("dockUser")) + ){ + + object.put("responUser",obj.getString("id")); + object.put("responUserName",obj.getString("name")); + + obj.put("fileId",object.getString("fileId")); + obj.put("fileName",object.getString("fileName")); + + responUserList.set(i,obj); + + break; + } + } + delegateTask.setVariable("responUserList",responUserList); - object.put("responUser",jsonObject.getString("id")); - object.put("responUserName",jsonObject.getString("name")); delegateTask.setVariable("objectJson",object); @@ -88,27 +100,13 @@ public class UploadResearchResultAfter implements TaskListener { 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{ - BusProcessNew busProcessNewNext = new BusProcessNew(); - busProcessNewNext.setMsgType("clause"); - busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); - busProcessNewNext.setMesg(object.toJSONString()); - busProcessNewNext.setFinishFlag("0"); - busProcessNewNext.setTaskInfo("责任对接人审批"); - busProcessNewNext.setUserId(delegateTask.getVariable("dockUser",String.class)); - busBean.save(busProcessNewNext); - } + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo("责任对接人审批"); + busProcessNewNext.setUserId(delegateTask.getVariable("responUser",JSONObject.class).getString("dockUser")); + busBean.save(busProcessNewNext); } }