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 b1fc0282..58b51664 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 @@ -181,7 +181,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/dto/DataList.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/dto/DataList.java index 0c5945cc..f64ca260 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_main/datas/dto/DataList.java +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/dto/DataList.java @@ -51,6 +51,8 @@ public class DataList { private String zcCountermeasures; private String responsibleEngineer; private String zcComplianceReasons; + private String technicalRequir; + private String changePoint; private List sarStandProjectLibraries; public void setUname(String uname) { 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..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 @@ -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,10 @@ public class PCAComplianceAssessmentBefore implements TaskListener { // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 one1.setLink("xmpg2Step6?prcType=6"); 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/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..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 @@ -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,10 @@ public class confirmBefore implements TaskListener { // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 one1.setLink("xmqdqrStep2?prcType=10"); 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/listener/projectEvaluationProcess/PEPDepartLeaderAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/projectEvaluationProcess/PEPDepartLeaderAfter.java index e8233efe..f51ae55d 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/projectEvaluationProcess/PEPDepartLeaderAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/projectEvaluationProcess/PEPDepartLeaderAfter.java @@ -129,8 +129,12 @@ public class PEPDepartLeaderAfter implements TaskListener { sarStandard.setResearchNonCompliance(object1.getString("noCompliance")); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { - sarStandard.setResearchImplementationTime(simpleDateFormat.parse(String.valueOf(delegateTask.getVariable("XCXSSRQ")))); - sarStandard.setProductionImplementationTime(simpleDateFormat.parse(String.valueOf(delegateTask.getVariable("ZCCSSRQ")))); + if (null!=delegateTask.getVariable("XCXSSRQ")) { + sarStandard.setResearchImplementationTime(simpleDateFormat.parse(String.valueOf(delegateTask.getVariable("XCXSSRQ")))); + } + if (null!=delegateTask.getVariable("ZCCSSRQ")) { + sarStandard.setProductionImplementationTime(simpleDateFormat.parse(String.valueOf(delegateTask.getVariable("ZCCSSRQ")))); + } } catch (ParseException e) { e.printStackTrace(); } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/projectEvaluationProcess/PEPffresPersonAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/projectEvaluationProcess/PEPffresPersonAfter.java index f1de19b5..55f10b37 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/projectEvaluationProcess/PEPffresPersonAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/projectEvaluationProcess/PEPffresPersonAfter.java @@ -144,6 +144,7 @@ public class PEPffresPersonAfter implements TaskListener { PEPDTO re = new PEPDTO(); BeanUtils.copyProperties(res, re); List mis = new ArrayList<>(); + mis.add(JSONObject.parseObject(String.valueOf(j), Step3DTO.class)); re.setStep3DTOS(mis); List dataLists = new ArrayList<>(); DataList list = JSONObject.parseObject(String.valueOf(dataList.get(i)), DataList.class); @@ -175,5 +176,4 @@ public class PEPffresPersonAfter implements TaskListener { delegateTask.getVariable("CPXpeoples", List.class).addAll(CPX); } } - } \ No newline at end of file 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..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 @@ -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,10 @@ public class PEPtaskEstimateBefore implements TaskListener { // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 one1.setLink("xmpgStep4?prcType=5"); 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/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());