From d10465546845d7c5f16be784d824344128c4b9fd Mon Sep 17 00:00:00 2001 From: yuezhihang Date: Thu, 3 Mar 2022 15:24:20 +0800 Subject: [PATCH] =?UTF-8?q?bug=20=E4=BF=AE=E5=A4=8D=20=E4=BB=A5=E5=8F=8A?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=AF=84=E4=BC=B0=20=E5=85=A5=E5=BA=93=20bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SelectDockUserAfter.java | 66 ++++++----- .../StartSurveyAfter.java | 3 +- .../StartSurveyAgainAfter.java | 107 ++++++++++++++++++ .../StartSurveyAgainBefore.java | 35 ++++++ .../wkflow/listener/xmhgpgXM/Step5After.java | 2 +- 5 files changed, 184 insertions(+), 29 deletions(-) create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/NonConformanceRectification/StartSurveyAgainAfter.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/NonConformanceRectification/StartSurveyAgainBefore.java diff --git a/src/main/java/com/ydw/bat/wkflow/listener/NonConformanceRectification/SelectDockUserAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/NonConformanceRectification/SelectDockUserAfter.java index 4005139a..0c455ee6 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/NonConformanceRectification/SelectDockUserAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/NonConformanceRectification/SelectDockUserAfter.java @@ -39,34 +39,41 @@ public class SelectDockUserAfter implements TaskListener { JSONArray dockUserList=delegateTask.getVariable("dockUserList", JSONArray.class); if(dockUserList==null)dockUserList=new JSONArray(); - JSONArray preDockUserListOrg=object.getJSONArray("dockUserList"); - JSONArray preDockUserList=new JSONArray(); - for (Object o : preDockUserListOrg) { - boolean ok=true; - JSONObject preDockUserOrg=(JSONObject)o; - for (Object o1 : dockUserList) { - JSONObject dockUser=(JSONObject)o1; - if(dockUser.getString("id").equals(preDockUserOrg.getString("id")) && - object.getString("passInfo").equals("0")){ - ok=false;break; + if("1".equals(object.getString("passFlag"))){ + delegateTask.setVariable("passFlag","1"); + delegateTask.setVariable("createUser",delegateTask.getVariable("creatUser",String.class)); + nextUserList.add(delegateTask.getVariable("creatUser",String.class)); + }else { + delegateTask.setVariable("passFlag","0"); + JSONArray preDockUserListOrg = object.getJSONArray("dockUserList"); + JSONArray preDockUserList = new JSONArray(); + + for (Object o : preDockUserListOrg) { + boolean ok = true; + JSONObject preDockUserOrg = (JSONObject) o; + for (Object o1 : dockUserList) { + JSONObject dockUser = (JSONObject) o1; + if (dockUser.getString("id").equals(preDockUserOrg.getString("id")) && + object.getString("passInfo").equals("0")) { + ok = false; + break; + } + } + if (ok) { + preDockUserList.add(preDockUserOrg); + nextUserList.add(preDockUserOrg.getString("id")); } } - if(ok){ - preDockUserList.add(preDockUserOrg); - nextUserList.add(preDockUserOrg.getString("id")); - } + delegateTask.setVariable("preDockUserList", preDockUserList); } - delegateTask.setVariable("preDockUserList",preDockUserList); delegateTask.setVariable("objectJson",object); //截止时间 流程描述 创建人 - 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 = delegateTask.getVariable("number",String.class); String prcName = standName+"-未符合项整改"; QueryWrapper queryWrapper2 = new QueryWrapper(); @@ -100,7 +107,7 @@ public class SelectDockUserAfter implements TaskListener { updataWapper.eq("P_ID",delegateTask.getProcessInstanceId()); busBean.update(busProcessNew,updataWapper); - if(!nextUserList.isEmpty()){ + if(!"1".equals(object.getString("passFlag")) && !nextUserList.isEmpty()){ List busProcessNews=new ArrayList<>(); for(String nextUser : nextUserList){ BusProcessNew busProcessNewNext = new BusProcessNew(); @@ -116,15 +123,20 @@ public class SelectDockUserAfter implements TaskListener { } busBean.saveBatch(busProcessNews); }else{ - BusProcessNew busProcessNewNext = new BusProcessNew(); - busProcessNewNext.setMsgType("clause"); - busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); - busProcessNewNext.setMesg(object.toJSONString()); - busProcessNewNext.setFinishFlag("0"); - busProcessNewNext.setTaskInfo("下发至标准法规工程师"); - busProcessNewNext.setPrcName(prcName); - busProcessNewNext.setUserId(delegateTask.getVariable("engineer",String.class)); - busBean.save(busProcessNewNext); + if (null!= nextUserList && !nextUserList.isEmpty()) { + for (String nextUser : nextUserList) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo("重新起草"); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(nextUser); + busProcessNewNext.setPrcName(prcName); + busBean.saveOrUpdate(busProcessNewNext); + } + } } } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/NonConformanceRectification/StartSurveyAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/NonConformanceRectification/StartSurveyAfter.java index a5616948..97ec93cc 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/NonConformanceRectification/StartSurveyAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/NonConformanceRectification/StartSurveyAfter.java @@ -44,7 +44,8 @@ public class StartSurveyAfter 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"); -// object.getString("standName") + delegateTask.setVariable("creatUser",user); + delegateTask.setVariable("creatUserName",username); JSONArray jsonArray=JSONArray.parseArray(object.getString("standardInfoList")); JSONObject object1=JSONObject.parseObject(String.valueOf(jsonArray.get(0))); String standName= object1.getString("standId"); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/NonConformanceRectification/StartSurveyAgainAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/NonConformanceRectification/StartSurveyAgainAfter.java new file mode 100644 index 00000000..a58ac8c1 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/NonConformanceRectification/StartSurveyAgainAfter.java @@ -0,0 +1,107 @@ +package com.ydw.bat.wkflow.listener.NonConformanceRectification; + +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; +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.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class StartSurveyAgainAfter 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("startUser",object.get("startUser")); + delegateTask.setVariable("engineer",object.get("engineer")); + + + + + //截止时间 流程描述 创建人 + String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + String user = object.getString("prcCreateUser"); + String username = object.getString("prcCreateUserName"); + delegateTask.setVariable("creatUser",user); + delegateTask.setVariable("creatUserName",username); + JSONArray jsonArray=JSONArray.parseArray(object.getString("standardInfoList")); + JSONObject object1=JSONObject.parseObject(String.valueOf(jsonArray.get(0))); + String standName= object1.getString("standId"); + + delegateTask.setVariable("number",standName); + String prcName = standName+"-"+object1.getString("standName")+"-未符合项整改"; + QueryWrapper queryWrapper2 = new QueryWrapper(); + queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId()); + BusProcessName one1 = busProcessNameService.getOne(queryWrapper2); + if(one1!=null){ + one1.setPrcType("8"); + 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.setUserId(delegateTask.getAssignee()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + + busBean.save(busProcessNew); + + 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); + } + }else{ + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo("下发至标准法规工程师"); + busProcessNewNext.setPrcName(prcName); + busProcessNewNext.setUserId(delegateTask.getVariable("engineer",String.class)); + busBean.save(busProcessNewNext); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/NonConformanceRectification/StartSurveyAgainBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/NonConformanceRectification/StartSurveyAgainBefore.java new file mode 100644 index 00000000..dc509920 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/NonConformanceRectification/StartSurveyAgainBefore.java @@ -0,0 +1,35 @@ +package com.ydw.bat.wkflow.listener.NonConformanceRectification; + +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 StartSurveyAgainBefore implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + QueryWrapper queryWrapper1 = new QueryWrapper(); + queryWrapper1.isNull("TASK_ID"); + queryWrapper1.eq("USER_ID",delegateTask.getAssignee()); + queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId()); + List list = busBean.list(queryWrapper1); + if(!list.isEmpty()){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("wfhxzgStep2?prcType=8"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/xmhgpgXM/Step5After.java b/src/main/java/com/ydw/bat/wkflow/listener/xmhgpgXM/Step5After.java index 8697e026..eaafddc9 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/xmhgpgXM/Step5After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/xmhgpgXM/Step5After.java @@ -62,7 +62,7 @@ public class Step5After implements TaskListener { for (Object o : jsonArray) { JSONObject jsonObject = JSON.parseObject(o.toString()); - if (null != jsonObject.getString("noCompliance")) { + if (null != jsonObject.getString("noCompliance") && !"".equals(jsonObject.getString("noCompliance"))) { SarStandUnqualified sarStandUnqualified = new SarStandUnqualified(); //少一个standId 不合格原因 在研在产! if (null!=map.get(jsonObject.getString("standId"))){