From d0b4ada9f458b648478b4082ac9335804de3b1d1 Mon Sep 17 00:00:00 2001 From: CD <1103614279@qq.com> Date: Fri, 25 Nov 2022 17:48:25 +0800 Subject: [PATCH] =?UTF-8?q?bug273=E3=80=81bug274?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20221124_企标计划和技术标准流程关联表.sql | 8 +++ .../controller/EsTechRelationController.java | 48 +++++++++++++ .../datas/entity/EsTechRelation.java | 34 +++++++++ .../datas/mapper/EsTechRelationMapper.java | 9 +++ .../datas/service/IEsTechRelationService.java | 8 +++ .../impl/EsTechRelationServiceImpl.java | 12 ++++ .../wkflow/listener/bussFs/BussFs3After.java | 70 ++++++++++++------- .../wkflow/listener/bussFs/BussFs5After.java | 43 ++++++++++++ .../wkflow/listener/bussFs/BussFs5Before.java | 48 +++++++++++++ .../listener/bussFs/BussFsSub1After.java | 15 +++- .../bussLibrary/BLApplicantAfter.java | 24 +++++-- .../bussLibrary/BussLibrary13After.java | 17 +++++ .../bussLibrary/Utils/FlowFinishEnum.java | 33 +++++++++ .../ProcessStep4After.java | 63 +++++++++++++++-- .../esTechRelation/EsTechRelationMapper.xml | 13 ++++ 15 files changed, 411 insertions(+), 34 deletions(-) create mode 100644 doc/sql/20221124_企标计划和技术标准流程关联表.sql create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/EsTechRelationController.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/EsTechRelation.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/EsTechRelationMapper.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IEsTechRelationService.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/EsTechRelationServiceImpl.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs5After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs5Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/Utils/FlowFinishEnum.java create mode 100644 src/main/resources/mapper/esTechRelation/EsTechRelationMapper.xml diff --git a/doc/sql/20221124_企标计划和技术标准流程关联表.sql b/doc/sql/20221124_企标计划和技术标准流程关联表.sql new file mode 100644 index 00000000..45791b48 --- /dev/null +++ b/doc/sql/20221124_企标计划和技术标准流程关联表.sql @@ -0,0 +1,8 @@ +CREATE TABLE `es_tech_relation` ( + `id` varchar(32) NOT NULL, + `es_id` varchar(32) DEFAULT NULL COMMENT '企标计划ID', + `prc_id` varchar(33) DEFAULT NULL COMMENT '复审流程实例ID', + `finish` varchar(10) DEFAULT NULL COMMENT '流程是否结束', + `prc_tech_id` varchar(33) DEFAULT NULL COMMENT '企标制修订技术标准流程实例ID', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/EsTechRelationController.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/EsTechRelationController.java new file mode 100644 index 00000000..0af7b7d0 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/EsTechRelationController.java @@ -0,0 +1,48 @@ +package com.ydw.bat.wkflow.business_main.datas.controller; + +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.entity.EsTechRelation; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_main.datas.service.IEsTechRelationService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/esTechRelation") +public class EsTechRelationController { + private static final Logger logger = LoggerFactory.getLogger(EsPrcRelationController.class); + + @Autowired + private IEsTechRelationService esTechRelationService; + + + @PostMapping("/setRelation") + public void setRelation(String esPlanId, String prcId, String finish) { + EsTechRelation esTechRelation = new EsTechRelation(); + esTechRelation.setEsId(esPlanId); + esTechRelation.setPrcId(prcId); + esTechRelation.setFinish(finish); + esTechRelationService.save(esTechRelation); + } + + @GetMapping("/getEsByWk") + public String getEsByWk(String prcId) { + QueryWrapper esTechRelationQueryWrapper = new QueryWrapper<>(); + esTechRelationQueryWrapper.eq("prc_id", prcId); + List list = esTechRelationService.list(esTechRelationQueryWrapper); + if (list!=null&&list.size()>0) { + return list.get(0).getEsId(); + } + return null; + } + + +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/EsTechRelation.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/EsTechRelation.java new file mode 100644 index 00000000..49778985 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/EsTechRelation.java @@ -0,0 +1,34 @@ +package com.ydw.bat.wkflow.business_main.datas.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + + +@Data +@Accessors(chain = true) +@ApiModel(value="EsTechRelation对象", description="企标计划和技术标准流程关联表") +public class EsTechRelation { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "ID") + @TableId(value = "ID", type = IdType.UUID) + private String id; + + @ApiModelProperty(value = "企标计划ID") + private String esId; + + @ApiModelProperty(value = "复审流程实例ID") + private String prcId; + + @ApiModelProperty(value = "流程是否结束") + private String finish; + + @ApiModelProperty(value = "企标制修订技术标准流程实例ID") + private String prcTechId; + +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/EsTechRelationMapper.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/EsTechRelationMapper.java new file mode 100644 index 00000000..2f395eea --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/EsTechRelationMapper.java @@ -0,0 +1,9 @@ +package com.ydw.bat.wkflow.business_main.datas.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ydw.bat.wkflow.business_main.datas.entity.EsTechRelation; +import org.springframework.stereotype.Repository; + +@Repository +public interface EsTechRelationMapper extends BaseMapper { +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IEsTechRelationService.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IEsTechRelationService.java new file mode 100644 index 00000000..552a01ea --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IEsTechRelationService.java @@ -0,0 +1,8 @@ +package com.ydw.bat.wkflow.business_main.datas.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ydw.bat.wkflow.business_main.datas.entity.EsTechRelation; + +public interface IEsTechRelationService extends IService { + +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/EsTechRelationServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/EsTechRelationServiceImpl.java new file mode 100644 index 00000000..799e0405 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/EsTechRelationServiceImpl.java @@ -0,0 +1,12 @@ +package com.ydw.bat.wkflow.business_main.datas.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ydw.bat.wkflow.business_main.datas.entity.EsTechRelation; +import com.ydw.bat.wkflow.business_main.datas.mapper.EsTechRelationMapper; +import com.ydw.bat.wkflow.business_main.datas.service.IEsTechRelationService; +import org.springframework.stereotype.Service; + +@Service +public class EsTechRelationServiceImpl extends ServiceImpl implements IEsTechRelationService { + +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs3After.java b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs3After.java index 74ffe210..f6ccfa9e 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs3After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs3After.java @@ -77,35 +77,57 @@ public class BussFs3After implements TaskListener{ busProcessNameService.saveOrUpdate(one1); } - if(StringUtils.isNotBlank(approvalOpinion)){ + String reviewResults = object.getString("reviewResults"); + if (StringUtils.isNotBlank(approvalOpinion) && StringUtils.isNotBlank(reviewResults)) { if ("0".equalsIgnoreCase(approvalOpinion)) { // 提交时 - if("Q/QCBFC".equals(standSort)) { - if(StringUtils.isNotBlank(object.getString("QCRBUSSID"))){ - delegateTask.setVariable("QCRBUSSID",object.getString("QCRBUSSID")); - nextUserList.add(object.getString("QCRBUSSID")); - }else { - throw new ActivitiException("1#2主起草人不存在,请配置相关人员"); + if ("1".equals(object.getString("reviewResults"))) { + if ("Q/QCBFC".equals(standSort)) { + if (StringUtils.isNotBlank(object.getString("QCRBUSSID"))) { + delegateTask.setVariable("QCRBUSSID", object.getString("QCRBUSSID")); + nextUserList.add(object.getString("QCRBUSSID")); + } else { + throw new ActivitiException("1#2主起草人不存在,请配置相关人员"); + } + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + } else { + //BussUtils.endFunAll(delegateTask, prcName,busBean, object, "0", busProcessNameService,"buss3"); + if (StringUtils.isNotBlank(object.getString("QCRBUSSID"))) { + delegateTask.setVariable("QCRBUSSID", object.getString("QCRBUSSID")); + nextUserList.add(object.getString("QCRBUSSID")); + } else { + throw new ActivitiException("1#2主起草人不存在,请配置相关人员"); + } + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); } - // 存储当前节点意见 - BusProcessNew busProcessNew = new BusProcessNew(); - busProcessNew.setMsgType("clause"); - busProcessNew.setPId(delegateTask.getProcessInstanceId()); - busProcessNew.setMesg(object.toJSONString()); - busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); - busProcessNew.setTaskId(delegateTask.getId()); - busProcessNew.setCommitText(object.getString("commentText")); - busProcessNew.setFinishFlag("0"); - busProcessNew.setTaskInfo(delegateTask.getName()); - busBean.save(busProcessNew); } else { BussUtils.endFunAll(delegateTask, prcName,busBean, object, "0", busProcessNameService,"buss3"); } - delegateTask.setVariable("bussFs3Flag", 0); + delegateTask.setVariable("reviewResults", object.getString("reviewResults")); } else { // 驳回时 - if(StringUtils.isNotBlank(object.getString("bussFsUserC2"))) { + if (StringUtils.isNotBlank(object.getString("bussFsUserC2"))) { BusProcessNew busProcessNew = new BusProcessNew(); busProcessNew.setMsgType("clause"); busProcessNew.setPId(delegateTask.getProcessInstanceId()); @@ -117,14 +139,14 @@ public class BussFs3After implements TaskListener{ busProcessNew.setPrcName("企标复审流程-重新发起人汇总结果"); busBean.save(busProcessNew); - BussUtils.approvalFunc1(delegateTask, busBean, object, prcName,"1"); - delegateTask.setVariable("bussFsUserC2",object.getString("bussFsUserC2")); + BussUtils.approvalFunc1(delegateTask, busBean, object, prcName, "1"); + delegateTask.setVariable("bussFsUserC2", object.getString("bussFsUserC2")); delegateTask.setVariable("bussFs3Flag", 1); - }else { + } else { throw new ActivitiException("1#2修订用户不存在,请配置相关人员"); } } - }else { + } else { throw new ActivitiException("1#2 提交OR驳回参数不存在"); } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs5After.java b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs5After.java new file mode 100644 index 00000000..27591214 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs5After.java @@ -0,0 +1,43 @@ +package com.ydw.bat.wkflow.listener.bussFs; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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.listener.bussLibrary.BussUtils; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.lang.StringUtils; + +public class BussFs5After 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); + + + //截止时间 流程描述 创建人 + String prcName = ""; + if(StringUtils.isNotBlank(object.getString("standName")) && StringUtils.isNotBlank(object.getString("standCode"))){ + prcName = object.getString("standCode")+"-"+object.getString("standName") + "-企标复审"; + }else { + prcName = "企标复审"; + } + + // 提交时,结束流程,保存当前节点信息 + BussUtils.endFunAll(delegateTask, prcName, busBean, object, "0", busProcessNameService, "buss3"); + + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs5Before.java b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs5Before.java new file mode 100644 index 00000000..d154f367 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs5Before.java @@ -0,0 +1,48 @@ +package com.ydw.bat.wkflow.listener.bussFs; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.entity.EsTechRelation; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_main.datas.service.IEsTechRelationService; +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 org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +/** + * 主起草人提交 技术标准起草节点 前 + */ +public class BussFs5Before implements TaskListener { + + + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + QueryWrapper queryWrapper1 = new QueryWrapper(); + queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper1.eq("USER_ID",delegateTask.getAssignee()); + queryWrapper1.isNull("TASK_ID"); + queryWrapper1.orderByDesc("CREATE_TIME"); + + List list = busBean.list(queryWrapper1); + if(!list.isEmpty()){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + busBean.saveOrUpdate(one1); + + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("bussFs7?prcType=buss3"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } + +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFsSub1After.java b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFsSub1After.java index 110ac6f6..e6158bed 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFsSub1After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFsSub1After.java @@ -16,6 +16,7 @@ import org.apache.commons.lang.StringUtils; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; import java.util.List; @@ -39,8 +40,18 @@ public class BussFsSub1After implements TaskListener{ List nextUserList = new ArrayList(); if(StringUtils.isNotBlank(object.getString("bussFsSubUser2"))){ - delegateTask.setVariable("bussFsSubUser2",object.getString("bussFsSubUser2")); - nextUserList.add(object.getString("bussFsSubUser2")); + + if(object.getString("bussFsSubUser2").contains(",")){ + nextUserList = Arrays.asList(object.getString("bussFsSubUser2").split(",")); + }else { + nextUserList.add(object.getString("bussFsSubUser2")); + } + //配置多实例 + delegateTask.setVariable("bussFsSubUser2List",nextUserList); + delegateTask.addCandidateUsers(nextUserList); + + //delegateTask.setVariable("bussFsSubUser2",object.getString("bussFsSubUser2")); + //nextUserList.add(object.getString("bussFsSubUser2")); }else { throw new ActivitiException("1#2复审人不存在,请配置相关人员"); } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BLApplicantAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BLApplicantAfter.java index 5fed6d7b..f43da16c 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BLApplicantAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BLApplicantAfter.java @@ -2,11 +2,11 @@ package com.ydw.bat.wkflow.listener.bussLibrary; 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.entity.EsPrcRelation; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.ydw.bat.wkflow.business_main.datas.entity.*; +import com.ydw.bat.wkflow.business_main.datas.mapper.EsTechRelationMapper; import com.ydw.bat.wkflow.business_main.datas.service.*; +import com.ydw.bat.wkflow.listener.bussLibrary.Utils.FlowFinishEnum; import com.ydw.bat.wkflow.util.SpringContextUtil; import org.activiti.engine.ActivitiException; import org.activiti.engine.RuntimeService; @@ -198,6 +198,22 @@ public class BLApplicantAfter implements TaskListener{ // 修改 计划和流程关联关系 esPrcRelationService.modifyEsPrcRelation(object.getString("nowEsId"), delegateTask.getProcessInstanceId(), null, null); } + + //绑定esId和prc_tech_id + String prcFsId=object.getString("prcFsId"); + if (StringUtils.isNotBlank(prcFsId)) { + IEsTechRelationService esTechRelationService = SpringContextUtil.getBean(IEsTechRelationService.class); + QueryWrapper esTechRelationQueryWrapper = new QueryWrapper<>(); + esTechRelationQueryWrapper.eq("prc_id",prcFsId); + List list = esTechRelationService.list(esTechRelationQueryWrapper); + if (ObjectUtils.isNotEmpty(list)) { + EsTechRelation esTechRelation = list.get(0); + esTechRelation.setPrcTechId(delegateTask.getProcessInstanceId()); + esTechRelation.setFinish(FlowFinishEnum.FSLC_JSBZQC_FINISH.getValue()); + esTechRelationService.saveOrUpdate(esTechRelation); + } + } + } private String verifyObj(String str){ diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary13After.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary13After.java index 51eb220d..097732bc 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary13After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary13After.java @@ -2,14 +2,18 @@ package com.ydw.bat.wkflow.listener.bussLibrary; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; import com.ydw.bat.wkflow.business_main.datas.dto.WG.NewsFeed; 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.entity.EsTechRelation; 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.business_main.datas.service.IEsTechRelationService; +import com.ydw.bat.wkflow.listener.bussLibrary.Utils.FlowFinishEnum; import com.ydw.bat.wkflow.util.SpringContextUtil; import org.activiti.engine.ActivitiException; import org.activiti.engine.delegate.DelegateTask; @@ -46,6 +50,19 @@ public class BussLibrary13After implements TaskListener{ }else { prcName = "企标制修订"; } + + //判断是否是从复审流程来的 + IEsTechRelationService esTechRelationService = SpringContextUtil.getBean(IEsTechRelationService.class); + QueryWrapper esTechRelationQueryWrapper = new QueryWrapper<>(); + esTechRelationQueryWrapper.eq("prc_tech_id",delegateTask.getProcessInstanceId()); + List list = esTechRelationService.list(esTechRelationQueryWrapper); + if (ObjectUtils.isNotEmpty(list)) { + //修改中间表的流程状态 + EsTechRelation esTechRelation = list.get(0); + esTechRelation.setFinish(FlowFinishEnum.JSBZLC_FINISH.getValue()); + esTechRelationService.saveOrUpdate(esTechRelation); + } + // NewsFeed newsFeed = new NewsFeed(); // newsFeed.setId(String.valueOf(UUID.randomUUID())); // newsFeed.setRenewTime(new Date()); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/Utils/FlowFinishEnum.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/Utils/FlowFinishEnum.java new file mode 100644 index 00000000..350c55ab --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/Utils/FlowFinishEnum.java @@ -0,0 +1,33 @@ +package com.ydw.bat.wkflow.listener.bussLibrary.Utils; + +public enum FlowFinishEnum { + + FSLC_JSBZQC_START("正处于技术标准起草节点","0"), + FSLC_JSBZQC_FINISH("技术标准起草节点已结束","1"), + JSBZLC_FINISH("技术标准流程已结束","2"); + + FlowFinishEnum(String label, String value) { + this.label = label; + this.value = value; + } + + String label; + String value; + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/enterpriseStandardSystemRevisionPlan/ProcessStep4After.java b/src/main/java/com/ydw/bat/wkflow/listener/enterpriseStandardSystemRevisionPlan/ProcessStep4After.java index 088df37c..f8794f85 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/enterpriseStandardSystemRevisionPlan/ProcessStep4After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/enterpriseStandardSystemRevisionPlan/ProcessStep4After.java @@ -2,18 +2,20 @@ package com.ydw.bat.wkflow.listener.enterpriseStandardSystemRevisionPlan; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; import com.ydw.bat.wkflow.business_main.datas.entity.*; -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.business_main.datas.service.IEsPrcRelationService; +import com.ydw.bat.wkflow.business_main.datas.service.*; +import com.ydw.bat.wkflow.listener.bussLibrary.Utils.FlowFinishEnum; import com.ydw.bat.wkflow.util.SpringContextUtil; import net.sf.json.JSONArray; import net.sf.json.util.JSONTokener; import org.activiti.engine.ActivitiException; +import org.activiti.engine.RuntimeService; +import org.activiti.engine.TaskService; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; +import org.activiti.engine.task.Task; import org.apache.commons.lang.StringUtils; import java.text.SimpleDateFormat; @@ -68,6 +70,59 @@ public class ProcessStep4After implements TaskListener { revise_status.put("制定","1"); revise_status.put("修订","2"); + String type = object.getString("type"); + IEsTechRelationService esTechRelationService = SpringContextUtil.getBean(IEsTechRelationService.class); + QueryWrapper esTechRelationQueryWrapper = new QueryWrapper<>(); + //查询关联表是否有正在进行中的相关计划的技术标准流程 + if ("1".equals(type)) { + //合并 + List planIdList = new ArrayList<>(); + planIdList.add(object.getString("esId1")); + planIdList.add(object.getString("esId2")); + esTechRelationQueryWrapper.in("es_id", planIdList); + } else if ("2".equals(type) || "3".equals(type) || "4".equals(type)) { + //延期 取消 更名 + esTechRelationQueryWrapper.eq("es_id", object.getString("esId")); + } + List esTechRelations = esTechRelationService.list(esTechRelationQueryWrapper); + if (ObjectUtils.isNotEmpty(esTechRelations)) { + TaskService taskService = SpringContextUtil.getBean(TaskService.class); + RuntimeService runtimeService = SpringContextUtil.getBean(RuntimeService.class); + List delList = new ArrayList<>(); + for (EsTechRelation esTechRelation : esTechRelations) { + if (FlowFinishEnum.FSLC_JSBZQC_START.getValue().equals(esTechRelation.getFinish())) { + List list = taskService.createTaskQuery().processInstanceId(esTechRelation.getPrcId()).active().list(); + if (list != null && !list.isEmpty()) { + // 删除正在运行中的流程根据流程实例ID + runtimeService.deleteProcessInstance(esTechRelation.getPrcId(), ""); + //删除关联表 + delList.add(esTechRelation.getId()); + } + QueryWrapper queryWrapper2 = new QueryWrapper(); + queryWrapper2.eq("PRC_ID", esTechRelation.getPrcId()); + BusProcessName one2 = busProcessNameService.getOne(queryWrapper2); + String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + if (one2 != null) { + one2.setOverTime(OVERTIME); + busProcessNameService.saveOrUpdate(one2); + } + + } else if (FlowFinishEnum.FSLC_JSBZQC_FINISH.getValue().equals(esTechRelation.getFinish())) { + List list = taskService.createTaskQuery().processInstanceId(esTechRelation.getPrcTechId()).active().list(); + if (list != null && !list.isEmpty()) { + // 删除正在运行中的流程根据流程实例ID + runtimeService.deleteProcessInstance(esTechRelation.getPrcTechId(), ""); + //删除关联表 + delList.add(esTechRelation.getId()); + } + } + } + if (delList.size()>0) { + QueryWrapper delWrapper = new QueryWrapper<>(); + delWrapper.in("id", delList); + esTechRelationService.remove(delWrapper); + } + } //1合并 2延期 3取消 4更名 5立项 diff --git a/src/main/resources/mapper/esTechRelation/EsTechRelationMapper.xml b/src/main/resources/mapper/esTechRelation/EsTechRelationMapper.xml new file mode 100644 index 00000000..6dc59a5f --- /dev/null +++ b/src/main/resources/mapper/esTechRelation/EsTechRelationMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + +