From 11b7631d879307ac0e5c56d44f44356d6f2c1b22 Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Wed, 15 Dec 2021 21:44:39 +0800 Subject: [PATCH 1/4] feat: There is no way the,buss --- .../impl/BusProcessModelHisServiceImpl.java | 16 ++++++++-------- .../listener/bussLibrary/BLApplicantAfter.java | 15 ++++++--------- .../listener/bussLibrary/BussLibrary2Before.java | 1 + .../listener/bussLibrary/Utils/PoiWord.java | 2 +- 4 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/BusProcessModelHisServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/BusProcessModelHisServiceImpl.java index 76e0b18f..ec92e801 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/BusProcessModelHisServiceImpl.java +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/BusProcessModelHisServiceImpl.java @@ -47,7 +47,7 @@ public class BusProcessModelHisServiceImpl extends ServiceImpl nextUserList = new ArrayList(); + List finalNextUserList = new ArrayList(); List busProcessModelHisList = new ArrayList<>(); if(StringUtils.isNotBlank(object.getString("modelData"))){ List valueArr = JSONArray.parseArray(object.getString("modelData"),JSONObject.class); Map> listMap = valueArr.stream().collect( - Collectors.groupingBy(a -> Utils.format("{0}", a.getString("userId")))); - List finalNextUserList = nextUserList; + Collectors.groupingBy(a -> Utils.format("{0}", a.getString("zrUserId")))); listMap.forEach((s, jsonObjects) -> { String json = JSONArray.toJSONString(jsonObjects); SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss"); BusProcessModelHis modelHis = new BusProcessModelHis(); modelHis.setPId(delegateTask.getProcessInstanceId()); modelHis.setMesg(json); - modelHis.setTaskInfo(delegateTask.getName()); modelHis.setUserId(s); modelHis.setPrcName(prcName); modelHis.setEditType("node"); @@ -73,15 +71,14 @@ public class BLApplicantAfter implements TaskListener{ busProcessModelHisList.add(modelHis); finalNextUserList.add(s); }); - nextUserList.addAll(finalNextUserList); // if(object.getString("qcUserId").contains(",")){ // nextUserList = Arrays.asList(object.getString("qcUserId").split(",")); // }else { // nextUserList.add(object.getString("qcUserId")); // } // 配置多实例 - delegateTask.setVariable("qcUserList",nextUserList); - delegateTask.addCandidateUsers(nextUserList); + delegateTask.setVariable("qcUserList",finalNextUserList); + delegateTask.addCandidateUsers(finalNextUserList); }else { throw new ActivitiException("1#2其他起草人参数不存在,请配置相关用户"); } @@ -110,8 +107,8 @@ public class BLApplicantAfter implements TaskListener{ busProcessNew.setTaskInfo(delegateTask.getName()); busBean.save(busProcessNew); - if(nextUserList != null && !nextUserList.isEmpty()){ - for(String nextUser : nextUserList){ + if(finalNextUserList != null && !finalNextUserList.isEmpty()){ + for(String nextUser : finalNextUserList){ BusProcessNew busProcessNewNext = new BusProcessNew(); busProcessNewNext.setMsgType("clause"); busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary2Before.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary2Before.java index 360d76c6..b3970050 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary2Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary2Before.java @@ -50,6 +50,7 @@ public class BussLibrary2Before implements TaskListener{ SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss"); BusProcessModelHis modelHis = hisList.get(0); modelHis.setTaskId(delegateTask.getId()); + modelHis.setTaskInfo(delegateTask.getName()); String filePath = hisService.saveBussModelFile(delegateTask.getProcessInstanceId(),delegateTask.getId()); modelHis.setEditFilePath(filePath); modelHis.setUpdateTime(sdf.format(new Date())); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/Utils/PoiWord.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/Utils/PoiWord.java index a599ed85..a4d2b681 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/Utils/PoiWord.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/Utils/PoiWord.java @@ -601,7 +601,7 @@ public class PoiWord { public static void main(String[] args) throws Exception { - wordRedDocument("E:\\Software\\rtpro\\Foton\\File\\doc\\create_toc-1.docx",null,"E:\\Software\\rtpro\\Foton\\File\\doc\\create_toc3.docx","E:\\Software\\rtpro\\Foton\\File\\doc\\create_toc-2.docx"); + wordRedDocument("E:\\Software\\rtpro\\Foton\\File\\doc\\create_toc-2.docx",null,"E:\\Software\\rtpro\\Foton\\File\\doc\\create_toc3.docx","E:\\Software\\rtpro\\Foton\\File\\doc\\create_toc-1.docx"); // writeWordBanch(); // writeToDocx(); // writeTOC(); From e82ad2e9675be0d3adf46e7949702acd84448abf Mon Sep 17 00:00:00 2001 From: yuezhihang Date: Thu, 16 Dec 2021 09:46:06 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=BE=81=E6=B1=82=E6=84=8F=E8=A7=81?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E6=B1=87=E6=80=BBbug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StartSurveyAfter.java | 4 ++++ .../StandardCommentNewProcess/Step1After.java | 16 +++++----------- .../StandardCommentNewProcess/Step2After.java | 14 +++++++------- 3 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/StartSurveyAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/StartSurveyAfter.java index 96fcaa7f..2737d688 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/StartSurveyAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/StartSurveyAfter.java @@ -15,6 +15,7 @@ import com.ydw.bat.wkflow.util.http.ResponseMessage; 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.*; @@ -91,7 +92,9 @@ public class StartSurveyAfter implements TaskListener { busBean.save(busProcessNew); if(nextUserList != null && !nextUserList.isEmpty()){ + int i=0; for(String nextUser : nextUserList){ + object.put("onlyKey", i); BusProcessNew busProcessNewNext = new BusProcessNew(); busProcessNewNext.setMsgType("clause"); busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); @@ -102,6 +105,7 @@ public class StartSurveyAfter implements TaskListener { busProcessNewNext.setUserId(nextUser); busProcessNewNext.setPrcName(prcName); busBean.save(busProcessNewNext); + i++; } }else{ BusProcessNew busProcessNewNext = new BusProcessNew(); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step1After.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step1After.java index 61277caa..424d9eff 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step1After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step1After.java @@ -44,18 +44,12 @@ public class Step1After implements TaskListener { nextUserList.add(object.getString("responUserList")); } delegateTask.setVariable("zrIdList",nextUserList); - if (null==delegateTask.getVariable("zrList")){ - delegateTask.setVariable("zrList",nextUserList); + if (null==delegateTask.getVariable("zrList"+object.getString("onlyKey"))){ + delegateTask.setVariable("zrList"+object.getString("onlyKey"),nextUserList); }else { - List strings=delegateTask.getVariable("zrList",List.class); - List middle=new ArrayList<>(); - nextUserList.forEach(s -> { - if (!strings.contains(s)){ - middle.add(s); - } - }); - strings.addAll(middle); - delegateTask.setVariable("zrList",strings); + List strings=delegateTask.getVariable("zrList"+object.getString("onlyKey"),List.class); + strings.addAll(nextUserList); + delegateTask.setVariable("zrList"+object.getString("onlyKey"),strings); } //截止时间 流程描述 创建人 String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step2After.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step2After.java index 86a1e123..8f6dbd5c 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step2After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step2After.java @@ -37,16 +37,16 @@ public class Step2After implements TaskListener { List nextUserList = new ArrayList(); //整备数据 - if (null==delegateTask.getVariable("count")){ - delegateTask.setVariable("count",1); + if (null==delegateTask.getVariable("count"+object.getString("onlyKey"))){ + delegateTask.setVariable("count"+object.getString("onlyKey"),1); }else { - delegateTask.setVariable("count",delegateTask.getVariable("count",Integer.class)+1); + delegateTask.setVariable("count"+object.getString("onlyKey"),delegateTask.getVariable("count"+object.getString("onlyKey"),Integer.class)+1); } - if (delegateTask.getVariable("count",Integer.class) == delegateTask.getVariable("zrIdList",List.class).size()){ + if (delegateTask.getVariable("count"+object.getString("onlyKey"),Integer.class) == delegateTask.getVariable("zrList"+object.getString("onlyKey"),List.class).size()){ //对数据进行合并归属 QueryWrapper wrapper=new QueryWrapper<>(); - wrapper.eq("TASK_ID","SCN"); + wrapper.eq("TASK_ID",object.getString("onlyKey")); wrapper.eq("P_ID",delegateTask.getProcessInstanceId()); List busProcessNews= busBean.list(wrapper); @@ -101,8 +101,8 @@ public class Step2After implements TaskListener { busProcessNewNext.setMesg(object.toJSONString()); busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); busProcessNewNext.setFinishFlag("0"); - if (delegateTask.getVariable("count",Integer.class) < delegateTask.getVariable("zrIdList",List.class).size()){ - busProcessNewNext.setTaskId("SCN"); + if (delegateTask.getVariable("count"+object.getString("onlyKey"),Integer.class) < delegateTask.getVariable("zrList"+object.getString("onlyKey"),List.class).size()){ + busProcessNewNext.setTaskId(object.getString("onlyKey")); } busProcessNewNext.setTaskInfo(delegateTask.getName()); busProcessNewNext.setUserId(nextUser); From fa01b36d34f1144bb19cdfa1ef965d2de0f75268 Mon Sep 17 00:00:00 2001 From: yuezhihang Date: Thu, 16 Dec 2021 09:51:57 +0800 Subject: [PATCH 3/4] =?UTF-8?q?.=E9=83=A8=E9=97=A8=E5=86=85=E9=83=A8?= =?UTF-8?q?=E6=B1=87=E6=80=BB=E5=90=8E=E5=AE=A1=E6=89=B9=E4=BA=BA=EF=BC=8C?= =?UTF-8?q?=E5=88=86=E7=BA=BF=E5=AE=A1=E6=A0=B8=E4=BA=BA=E4=B8=8D=E9=80=89?= =?UTF-8?q?=E9=83=BD=E5=8F=AF=E4=BB=A5=E7=9B=B4=E6=8E=A5=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=EF=BC=8C=E8=80=8C=E4=B8=94=E9=BB=98=E8=AE=A4=E6=88=90=E4=BA=86?= =?UTF-8?q?=E5=8F=91=E8=B5=B7=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wkflow/listener/StandardCommentNewProcess/Step4After.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step4After.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step4After.java index e187d473..271ec0c8 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step4After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step4After.java @@ -40,8 +40,8 @@ public class Step4After implements TaskListener { String prcName = ""; //整备数据 if ("0".equals(object.getString("spFlag"))) { - nextUserList.add(delegateTask.getVariable("user",String.class)); - delegateTask.setVariable("bzfgId", delegateTask.getVariable("user",String.class)); + nextUserList.add(object.getString("bzfgId")); + delegateTask.setVariable("bzfgId", object.getString("bzfgId")); prcName = delegateTask.getVariable("cid")+"-标准征求意见流程-标准法规工程师分线审核"; delegateTask.setVariable("spFlag","0"); }else { From 3b453bdf758692e02bce3ffddd40174d45b60606 Mon Sep 17 00:00:00 2001 From: yuezhihang Date: Thu, 16 Dec 2021 11:04:02 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=96=B0=E6=B5=81=E7=A8=8B=E5=8F=91?= =?UTF-8?q?=E8=B5=B7=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../define/ActivitDefineController.java | 52 +++++++++++++++++++ .../dto/ProcessRollBackEO.java | 17 ++++++ 2 files changed, 69 insertions(+) create mode 100644 src/main/java/com/ydw/bat/wkflow/business_activiti/dto/ProcessRollBackEO.java diff --git a/src/main/java/com/ydw/bat/wkflow/business_activiti/define/ActivitDefineController.java b/src/main/java/com/ydw/bat/wkflow/business_activiti/define/ActivitDefineController.java index 0ed8123c..7a367451 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_activiti/define/ActivitDefineController.java +++ b/src/main/java/com/ydw/bat/wkflow/business_activiti/define/ActivitDefineController.java @@ -9,6 +9,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_activiti.dto.ProcessRollBackEO; import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; import com.ydw.bat.wkflow.business_main.datas.entity.ResponseMessage; @@ -25,6 +26,8 @@ import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import com.tmsps.fk.common.base.action.BaseAction; @@ -195,6 +198,55 @@ public class ActivitDefineController extends BaseAction { return WrapMapper.ok(task.getId()); } + @ApiOperation(value = "启动流程-以流程定义id") + @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "流程定义Id"), + @ApiImplicitParam(name = "userId", value = "流程发起人Id") }) + @PostMapping("/activiti_define_start_user_rollBack") + public Wrapper activiti_define_start_user_rollBack(@RequestBody ProcessRollBackEO processRollBackEO) { + // 创建查询对象 + ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery(); + // 使用流程定义的名称模糊查询 + processDefinitionQuery.processDefinitionCategory("e05707228fa5ed7b549198208ab19d97"); + long total = processDefinitionQuery.count(); + List list = processDefinitionQuery.orderByProcessDefinitionKey().asc().list(); + List> definitions = ActivitiTools.turnProcessDefinitions(list); + String pid = ""; + for(Map map:definitions){ + if(map.get("key").toString().equals(processRollBackEO.getId())){ + pid = map.get("id").toString(); + } + } + + ProcessDefinition pd = repositoryService.createProcessDefinitionQuery().processDefinitionId(pid).singleResult(); + + ProcessInstance pi = runtimeService.startProcessInstanceById(pid); + Task task = taskService.createTaskQuery().processInstanceId(pi.getId()).singleResult(); + task.setAssignee(processRollBackEO.getUserId()); + taskService.saveTask(task); + + if(processRollBackEO.getBpnId() == null) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + BusProcessName busProcessName = new BusProcessName(); + busProcessName.setPrcId(pi.getId()); + busProcessName.setCreatTime(sdf.format(new Date())); + busProcessName.setCreatUser(processRollBackEO.getUserId()); + ResponseMessage byId = lawsUserInfoService.getById(processRollBackEO.getUserId()); + busProcessName.setCreatUserName(byId.getData().getUname()); + busProcessName.setPrcNum(new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date())); + busProcessName.setMes(processRollBackEO.getJson()); + ibusprocessnameService.save(busProcessName); + }else { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ID", processRollBackEO.getBpnId()); + BusProcessName one = ibusprocessnameService.getOne(queryWrapper); + one.setPrcNum(new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date())); + one.setPrcId(pi.getId()); + ibusprocessnameService.saveOrUpdate(one); + } + logger.info("启动流程实例,获取id-->{},实例名称-->{}", pi.getId(), pd.getName()); + return WrapMapper.ok(task.getId()); + } + /** * 企标复审流程专用 * @param id diff --git a/src/main/java/com/ydw/bat/wkflow/business_activiti/dto/ProcessRollBackEO.java b/src/main/java/com/ydw/bat/wkflow/business_activiti/dto/ProcessRollBackEO.java new file mode 100644 index 00000000..970a20b2 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_activiti/dto/ProcessRollBackEO.java @@ -0,0 +1,17 @@ +package com.ydw.bat.wkflow.business_activiti.dto; + +import lombok.Data; + +@Data +public class ProcessRollBackEO { + + private String json; + + private String type; + + private String id; + + private String userId; + + private String bpnId; +}