From 180cecae8f7f945f223bbce9a5263c63264c389f Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Wed, 13 Oct 2021 17:55:34 +0800 Subject: [PATCH 1/2] feat: There is no way the oa add endTime --- .../task/TodoTaskController.java | 2 +- .../datas/service/IOaTaskExecService.java | 1 + .../service/impl/OaTaskExecServiceImpl.java | 29 +++++++++++++++++++ .../ydw/bat/wkflow/config/ScheduledJob.java | 4 +-- .../UploadCommentBefore.java | 20 +++++++++++++ .../PCAComplianceAssessmentBefore.java | 9 ++++++ .../UploadResearchResultBefore.java | 6 ++++ .../confirmBefore.java | 9 ++++++ .../PEPtaskEstimateBefore.java | 9 ++++++ .../listener/standardRead/ExpainBefore.java | 9 ++++++ .../java/com/ydw/bat/wkflow/util/Utils.java | 13 +++++++++ 11 files changed, 108 insertions(+), 3 deletions(-) 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 2f4a495d..05ee0bb8 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 @@ -177,7 +177,7 @@ public class TodoTaskController extends BaseAction { queryWrapper1.eq("P_ID",res.getPrcId()); queryWrapper1.eq("TASK_ID",res.getTaskIds()); BusProcessNew busProcessNew=iBusProcessNewService.getOne(queryWrapper1); - res.setPrcName(busProcessNew.getPrcName()); + res.setPrcName(busProcessNew != null ? (StringUtils.isNotBlank(busProcessNew.getPrcName()) ? busProcessNew.getPrcName() : "") : "" ); todoList.add(res); } } diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IOaTaskExecService.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IOaTaskExecService.java index 1e22b933..394d3f6c 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IOaTaskExecService.java +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IOaTaskExecService.java @@ -17,4 +17,5 @@ public interface IOaTaskExecService extends IService { Map execTask(String todoId); + String endTime(String pId); } diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/OaTaskExecServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/OaTaskExecServiceImpl.java index 2c2515f1..1b846b51 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/OaTaskExecServiceImpl.java +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/OaTaskExecServiceImpl.java @@ -1,7 +1,11 @@ package com.ydw.bat.wkflow.business_main.datas.service.impl; import com.alibaba.fastjson.JSONObject; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import org.activiti.engine.HistoryService; import org.activiti.engine.TaskService; +import org.activiti.engine.history.HistoricTaskInstance; +import org.activiti.engine.history.HistoricTaskInstanceQuery; import org.activiti.engine.impl.persistence.entity.TaskEntity; import org.activiti.engine.task.Task; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -43,6 +47,31 @@ public class OaTaskExecServiceImpl extends ServiceImpl list = historicTaskInstanceQuery.list(); + if(!list.isEmpty()){ + QueryWrapper queryWrapper1 = new QueryWrapper(); + queryWrapper1.eq("TASK_ID",list.get(0).getId()); + queryWrapper1.eq("P_ID",pId); + List processNews = iBusProcessNewService.list(queryWrapper1); + if(!processNews.isEmpty()){ + JSONObject object = JSONObject.parseObject(processNews.get(0).getMesg()); + endTime = object.getString("endTime"); + } + } + return endTime; + } + @Override public Map execTask(String todoId){ Map map = new TreeMap<>(); diff --git a/src/main/java/com/ydw/bat/wkflow/config/ScheduledJob.java b/src/main/java/com/ydw/bat/wkflow/config/ScheduledJob.java index e5c12e3e..f1985c18 100644 --- a/src/main/java/com/ydw/bat/wkflow/config/ScheduledJob.java +++ b/src/main/java/com/ydw/bat/wkflow/config/ScheduledJob.java @@ -41,8 +41,8 @@ public class ScheduledJob { @Value("${isNotScheduled}") private boolean isNotScheduled; //是否开启定时器 - @Scheduled(cron = "0 0 0 * * ?") //每天的凌晨0点执行 -// @Scheduled(cron="*/5 * * * * ?") +// @Scheduled(cron = "0 0 0 * * ?") //每天的凌晨0点执行 + @Scheduled(cron="*/5 * * * * ?") @Async public void SchedulingTask() { if(isNotScheduled){ diff --git a/src/main/java/com/ydw/bat/wkflow/listener/NonConformanceRectification/UploadCommentBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/NonConformanceRectification/UploadCommentBefore.java index 123b5cc0..568c6525 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/NonConformanceRectification/UploadCommentBefore.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/NonConformanceRectification/UploadCommentBefore.java @@ -1,15 +1,20 @@ package com.ydw.bat.wkflow.listener.NonConformanceRectification; 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; 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 com.ydw.bat.wkflow.util.Utils; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.lang3.StringUtils; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; public class UploadCommentBefore implements TaskListener { @@ -34,6 +39,21 @@ public class UploadCommentBefore implements TaskListener { // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 one1.setLink("wfhxzgStep4?prcType=8"); one1.setTaskInfo(delegateTask.getName()); + + // 干活节点流程 + one1.setTaskStatus(2); + JSONObject object = JSONObject.parseObject(one1.getMesg()); + JSONArray array = object.getJSONArray("responUserList"); + String endTime = ""; + if(array != null && !array.isEmpty()){ + endTime = array.getJSONObject(0).getString("planCloseTime"); + } + // 如果整改时间没有,默认流程发起日期+30天 + if(StringUtils.isNotBlank(endTime)){ + one1.setEndTime(Utils.interceptTime(endTime)); + }else { + one1.setEndTime(Utils.interceptTime(Utils.addDay(30))); + } oaService.sendTodoMq(one1); } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/ProjectComplianceAssessment/PCAComplianceAssessmentBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/ProjectComplianceAssessment/PCAComplianceAssessmentBefore.java index 2e642281..d4c6eac7 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/ProjectComplianceAssessment/PCAComplianceAssessmentBefore.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/ProjectComplianceAssessment/PCAComplianceAssessmentBefore.java @@ -1,10 +1,13 @@ package com.ydw.bat.wkflow.listener.ProjectComplianceAssessment; +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.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_main.datas.service.IOaTaskExecService; import com.ydw.bat.wkflow.business_mq.service.CreateMQService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.Utils; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; @@ -15,6 +18,7 @@ public class PCAComplianceAssessmentBefore implements TaskListener { @Override public void notify(DelegateTask delegateTask) { IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + IOaTaskExecService execService = SpringContextUtil.getBean(IOaTaskExecService.class); QueryWrapper queryWrapper1 = new QueryWrapper(); queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId()); queryWrapper1.eq("USER_ID",delegateTask.getAssignee()); @@ -29,6 +33,11 @@ public class PCAComplianceAssessmentBefore implements TaskListener { // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 one1.setLink("xmpg2Step6?prcType=6"); one1.setTaskInfo(delegateTask.getName()); + + // 干活节点流程 + one1.setTaskStatus(2); + JSONObject object = JSONObject.parseObject(one1.getMesg()); + one1.setEndTime(Utils.interceptTime(execService.endTime(delegateTask.getProcessInstanceId()))); oaService.sendTodoMq(one1); } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/UploadResearchResultBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/UploadResearchResultBefore.java index bdad4e0c..ce7d7152 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/UploadResearchResultBefore.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardSurvey/UploadResearchResultBefore.java @@ -1,10 +1,12 @@ package com.ydw.bat.wkflow.listener.StandardSurvey; +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.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_mq.service.CreateMQService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.Utils; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; @@ -28,8 +30,12 @@ public class UploadResearchResultBefore implements TaskListener { busBean.saveOrUpdate(one1); // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + JSONObject object = JSONObject.parseObject(one1.getMesg()); one1.setLink("bzdyStep3?prcType=2"); one1.setTaskInfo(delegateTask.getName()); + // 干活节点流程 + one1.setTaskStatus(2); + one1.setEndTime(Utils.interceptTime(object.getString("date"))); oaService.sendTodoMq(one1); } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/confirmBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/confirmBefore.java index 3e18d53e..e9f7ae47 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/confirmBefore.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/confirmBefore.java @@ -1,10 +1,13 @@ package com.ydw.bat.wkflow.listener.itemlistvalidationprocess; +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.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_main.datas.service.IOaTaskExecService; import com.ydw.bat.wkflow.business_mq.service.CreateMQService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.Utils; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; @@ -14,6 +17,7 @@ public class confirmBefore implements TaskListener { @Override public void notify(DelegateTask delegateTask) { IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + IOaTaskExecService execService = SpringContextUtil.getBean(IOaTaskExecService.class); QueryWrapper queryWrapper1 = new QueryWrapper(); queryWrapper1.isNull("TASK_ID"); queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId()); @@ -28,6 +32,11 @@ public class confirmBefore implements TaskListener { // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 one1.setLink("xmqdqrStep2?prcType=10"); one1.setTaskInfo(delegateTask.getName()); + + // 干活节点流程 + one1.setTaskStatus(2); + JSONObject object = JSONObject.parseObject(one1.getMesg()); + one1.setEndTime(Utils.interceptTime(execService.endTime(delegateTask.getProcessInstanceId()))); oaService.sendTodoMq(one1); } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/projectEvaluationProcess/PEPtaskEstimateBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/projectEvaluationProcess/PEPtaskEstimateBefore.java index ff7ee0a1..9469aee3 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/projectEvaluationProcess/PEPtaskEstimateBefore.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/projectEvaluationProcess/PEPtaskEstimateBefore.java @@ -1,10 +1,13 @@ package com.ydw.bat.wkflow.listener.projectEvaluationProcess; +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.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_main.datas.service.IOaTaskExecService; import com.ydw.bat.wkflow.business_mq.service.CreateMQService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.Utils; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; @@ -15,6 +18,7 @@ public class PEPtaskEstimateBefore implements TaskListener { @Override public void notify(DelegateTask delegateTask) { IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + IOaTaskExecService execService = SpringContextUtil.getBean(IOaTaskExecService.class); CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); QueryWrapper queryWrapper1 = new QueryWrapper(); @@ -30,6 +34,11 @@ public class PEPtaskEstimateBefore implements TaskListener { // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 one1.setLink("xmpgStep4?prcType=5"); one1.setTaskInfo(delegateTask.getName()); + + // 干活节点流程 + one1.setTaskStatus(2); + JSONObject object = JSONObject.parseObject(one1.getMesg()); + one1.setEndTime(Utils.interceptTime(execService.endTime(delegateTask.getProcessInstanceId()))); oaService.sendTodoMq(one1); } } 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 42f401cb..426d6058 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 @@ -1,10 +1,13 @@ 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.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_main.datas.service.IOaTaskExecService; import com.ydw.bat.wkflow.business_mq.service.CreateMQService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.Utils; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; import java.util.List; @@ -16,6 +19,7 @@ public class ExpainBefore implements TaskListener{ @Override public void notify(DelegateTask delegateTask) { IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + IOaTaskExecService execService = SpringContextUtil.getBean(IOaTaskExecService.class); CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); QueryWrapper queryWrapper1 = new QueryWrapper(); @@ -31,6 +35,11 @@ public class ExpainBefore implements TaskListener{ // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 one1.setLink("bzjdStep3?prcType=9"); one1.setTaskInfo(delegateTask.getName()); + + // 干活节点流程 + one1.setTaskStatus(2); + + one1.setEndTime(Utils.interceptTime(execService.endTime(delegateTask.getProcessInstanceId()))); oaService.sendTodoMq(one1); } } diff --git a/src/main/java/com/ydw/bat/wkflow/util/Utils.java b/src/main/java/com/ydw/bat/wkflow/util/Utils.java index 468cd557..9907c2dd 100644 --- a/src/main/java/com/ydw/bat/wkflow/util/Utils.java +++ b/src/main/java/com/ydw/bat/wkflow/util/Utils.java @@ -31,6 +31,19 @@ public class Utils { return days; } + public static String addDay(Integer dayInt) { + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date today = new Date(); + Calendar theCa = Calendar.getInstance(); + theCa.setTime(today); + theCa.add(theCa.DATE, +dayInt);//最后一个数字30可改,30天的意思 + Date start = theCa.getTime(); + String startDate = sdf.format(start);//三十天之前日期 + + return startDate; + } + public static String interceptTime(String timeStr) { if (StringUtils.isNotBlank(timeStr)) { System.out.println(timeStr.length()); From 75f0a6156ec64497ff60ccf93c98c1f304e4b659 Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Wed, 13 Oct 2021 17:56:39 +0800 Subject: [PATCH 2/2] feat: There is no way the --- .../PCAComplianceAssessmentBefore.java | 1 - .../wkflow/listener/itemlistvalidationprocess/confirmBefore.java | 1 - .../listener/projectEvaluationProcess/PEPtaskEstimateBefore.java | 1 - 3 files changed, 3 deletions(-) diff --git a/src/main/java/com/ydw/bat/wkflow/listener/ProjectComplianceAssessment/PCAComplianceAssessmentBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/ProjectComplianceAssessment/PCAComplianceAssessmentBefore.java index d4c6eac7..0d30f148 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/ProjectComplianceAssessment/PCAComplianceAssessmentBefore.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/ProjectComplianceAssessment/PCAComplianceAssessmentBefore.java @@ -36,7 +36,6 @@ public class PCAComplianceAssessmentBefore implements TaskListener { // 干活节点流程 one1.setTaskStatus(2); - JSONObject object = JSONObject.parseObject(one1.getMesg()); one1.setEndTime(Utils.interceptTime(execService.endTime(delegateTask.getProcessInstanceId()))); oaService.sendTodoMq(one1); } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/confirmBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/confirmBefore.java index e9f7ae47..d4b785a2 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/confirmBefore.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/confirmBefore.java @@ -35,7 +35,6 @@ public class confirmBefore implements TaskListener { // 干活节点流程 one1.setTaskStatus(2); - JSONObject object = JSONObject.parseObject(one1.getMesg()); one1.setEndTime(Utils.interceptTime(execService.endTime(delegateTask.getProcessInstanceId()))); oaService.sendTodoMq(one1); } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/projectEvaluationProcess/PEPtaskEstimateBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/projectEvaluationProcess/PEPtaskEstimateBefore.java index 9469aee3..46c55fd6 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/projectEvaluationProcess/PEPtaskEstimateBefore.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/projectEvaluationProcess/PEPtaskEstimateBefore.java @@ -37,7 +37,6 @@ public class PEPtaskEstimateBefore implements TaskListener { // 干活节点流程 one1.setTaskStatus(2); - JSONObject object = JSONObject.parseObject(one1.getMesg()); one1.setEndTime(Utils.interceptTime(execService.endTime(delegateTask.getProcessInstanceId()))); oaService.sendTodoMq(one1); }