Merge branch 'develop' into FOTON

This commit is contained in:
liyawei
2022-11-22 20:19:30 +08:00
16 changed files with 695 additions and 21 deletions
@@ -0,0 +1,10 @@
CREATE TABLE `es_prc_relation` (
`id` varchar(32) NOT NULL,
`es_id` varchar(32) DEFAULT NULL COMMENT '企标计划ID',
`prc_id` varchar(33) DEFAULT NULL COMMENT '企标制修订技术标准流程实例ID',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`oa_flag` varchar(2) DEFAULT NULL COMMENT 'OA待办标识 0-已办,1-待办',
`prc_id_gk` varchar(33) DEFAULT NULL COMMENT '企标计划管控流程的实例ID',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='企标计划和企标制修订流程关联表';
@@ -211,5 +211,6 @@ public interface LawsUserInfoService {
@PostMapping(value = "/lawss/NewsFeed/insertNewsFeed")
public ResponseMessage<Object> insertNewsFeed(NewsFeed newsFeed);
@GetMapping("/esRevisePlan/es-revise-plan/getAllPlansByWk")
public List<EsRevisePlanDTO> getAllPlansByWk(@RequestParam("esName") String esName);
}
@@ -0,0 +1,119 @@
package com.ydw.bat.wkflow.business_main.datas.controller;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.entity.EsPrcRelation;
import com.ydw.bat.wkflow.business_main.datas.entity.EsRevisePlanDTO;
import com.ydw.bat.wkflow.business_main.datas.service.IEsPrcRelationService;
import com.ydw.bat.wkflow.business_oa.webService.service.WebServiceOAService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.activiti.engine.TaskService;
import org.activiti.engine.task.Task;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;
import java.util.stream.Collectors;
@Api(description = "管控流程接受任务")
@RestController
@RequestMapping("/esPrcRelation")
public class EsPrcRelationController {
private static final Logger logger = LoggerFactory.getLogger(EsPrcRelationController.class);
@Value("${oa.flag}")
private Boolean OAFlag;
@Autowired
private TaskService taskService;
@Autowired
private IEsPrcRelationService esPrcRelationService;
@Autowired
private WebServiceOAService webServiceOAService;
@ApiOperation(value = "接受任务")
@GetMapping("/acceptTask")
public Integer acceptTack(String nowEsId, String oaFlag, String taskId) {
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
if(task!=null) {
//发送OA已办
try {
if (OAFlag) {
//发送OA已办
webServiceOAService.completeOA(task);
}
} catch (Exception e) {
logger.error(e.toString());
}
}
return esPrcRelationService.modifyEsPrcRelation(nowEsId, null, oaFlag, null);
}
@ApiOperation(value = "判断是否已经接受任务")
@GetMapping("/judgeAcceptTask")
public Boolean judgeAcceptTask(String nowEsId, String oaFlag, String prcIdGk) {
EsPrcRelation esPrcRelation = new EsPrcRelation();
esPrcRelation.setEsId(nowEsId);
esPrcRelation.setOaFlag(oaFlag);
esPrcRelation.setPrcIdGk(prcIdGk);
return esPrcRelationService.listJudge(esPrcRelation);
}
@ApiOperation(value = "定时任务调试")
@GetMapping("/testAcceptTack")
public String testAcceptTack() {
LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class);
IEsPrcRelationService esPrcRelationService = SpringContextUtil.getBean(IEsPrcRelationService.class);
TaskService taskService = SpringContextUtil.getBean(TaskService.class);
List<EsRevisePlanDTO> esRevisePlanDTOList = lawsUserInfoService.getAllPlansByWk(null); // 查询 制定中,修订中的企标计划
// 计划标准初稿时间前一个月的企标计划
SimpleDateFormat sdfQuery = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, -1);
String endDate = sdfQuery.format(calendar.getTime());
List<EsRevisePlanDTO> esRevisePlanDTOList2 = esRevisePlanDTOList.stream()
.filter(e -> !ObjectUtils.isEmpty(e.getDraftTime()) && endDate.equals(sdfQuery.format(e.getDraftTime())))
.collect(Collectors.toList());
if (!esRevisePlanDTOList2.isEmpty()) {
for (EsRevisePlanDTO esRevisePlanDTO : esRevisePlanDTOList2) {
List<EsPrcRelation> esPrcRelationList = esPrcRelationService.list(esRevisePlanDTO.getId());
if (esPrcRelationList.isEmpty()) {
continue;
}
String esId = esPrcRelationList.get(0).getEsId();
String prcIdGk = esPrcRelationList.get(0).getPrcIdGk();
String oaFlag = esPrcRelationList.get(0).getOaFlag();
// 判断对应 管控流程是否还在 技术标准起草节点, 且之前点过接受任务
if (StringUtils.isNotBlank(prcIdGk)) {
List<Task> list2 = taskService.createTaskQuery().processInstanceId(prcIdGk).active().list();
if (!list2.isEmpty()) {
String nowTaskInfo = list2.get(0).getName();
if ("技术标准起草".equals(nowTaskInfo) && "0".equals(oaFlag)) {
// 再次发送待办
logger.info("============再次发送待办,企标计划" + esRevisePlanDTO.getEsName() +"===========");
// sendOATodo(list2.get(0));
// 更新 状态为待办
esPrcRelationService.modifyEsPrcRelation(esId, null, "1", null);
}
}
}
}
}
return "定时任务完成";
}
}
@@ -0,0 +1,47 @@
package com.ydw.bat.wkflow.business_main.datas.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
@Accessors(chain = true)
@ApiModel(value="EsPrcRelation对象", description="企标计划和技术标准流程关联表")
public class EsPrcRelation implements Serializable {
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 = "创建时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@ApiModelProperty(value = "修改时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
@ApiModelProperty(value = "OA待办标识")
private String oaFlag; // 0-已办 1-待办
@ApiModelProperty(value = "企标计划管控流程的实例ID")
private String prcIdGk;
}
@@ -0,0 +1,18 @@
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.EsPrcRelation;
import org.springframework.stereotype.Repository;
/**
* <p>
* 企标计划和技术标准流程关联表 Mapper 接口
* </p>
*
* @author iyawei
* @since 2022-11-18
*/
@Repository
public interface EsPrcRelationMapper extends BaseMapper<EsPrcRelation> {
}
@@ -0,0 +1,45 @@
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.EsPrcRelation;
import java.util.List;
public interface IEsPrcRelationService extends IService<EsPrcRelation> {
/**
*
* @param esId
* @return
*/
List<EsPrcRelation> list(String esId);
/**
*
* @return
*/
Boolean listJudge(EsPrcRelation esPrcRelation);
/**
*
* @param esId
* @param prcId
* @return
*/
int addEsPrcRelation(String esId, String prcId, String prcIdGk);
/**
*
* @param esId
* @param prcId
* @param oaFlag
* @return
*/
int modifyEsPrcRelation(String esId, String prcId, String oaFlag, String prcIdGk);
/**
*
* @param esId
* @return
*/
int delEsPrcRelation(String esId);
}
@@ -0,0 +1,86 @@
package com.ydw.bat.wkflow.business_main.datas.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ydw.bat.wkflow.business_main.datas.entity.EsPrcRelation;
import com.ydw.bat.wkflow.business_main.datas.mapper.EsPrcRelationMapper;
import com.ydw.bat.wkflow.business_main.datas.service.IEsPrcRelationService;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
@Service
public class EsPrcRelationServiceImpl extends ServiceImpl<EsPrcRelationMapper, EsPrcRelation> implements IEsPrcRelationService {
@Override
public List<EsPrcRelation> list(String esId) {
QueryWrapper<EsPrcRelation> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(EsPrcRelation::getEsId, esId);
return this.baseMapper.selectList(queryWrapper);
}
@Override
public Boolean listJudge(EsPrcRelation esPrcRelation) {
QueryWrapper<EsPrcRelation> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(EsPrcRelation::getEsId, esPrcRelation.getEsId());
queryWrapper.lambda().eq(EsPrcRelation::getOaFlag, esPrcRelation.getOaFlag());
queryWrapper.lambda().eq(EsPrcRelation::getPrcIdGk, esPrcRelation.getPrcIdGk());
List<EsPrcRelation> list = this.baseMapper.selectList(queryWrapper);
if (list != null && !list.isEmpty()) {
return true;
} else {
return false;
}
}
@Override
public int addEsPrcRelation(String esId, String prcId, String prcIdGk) {
EsPrcRelation esPrcRelation = new EsPrcRelation();
esPrcRelation.setEsId(esId);
esPrcRelation.setOaFlag("1"); // 待办
Date date = new Date();
esPrcRelation.setCreateTime(date);
esPrcRelation.setUpdateTime(date);
if (StringUtils.isNotBlank(prcId)) {
esPrcRelation.setPrcId(prcId);
}
if (StringUtils.isNotBlank(prcIdGk)) {
esPrcRelation.setPrcIdGk(prcIdGk);
}
return this.baseMapper.insert(esPrcRelation);
}
@Override
public int modifyEsPrcRelation(String esId, String prcId, String oaFlag, String prcIdGk) {
EsPrcRelation esPrcRelation = new EsPrcRelation();
esPrcRelation.setEsId(esId);
Date date = new Date();
esPrcRelation.setUpdateTime(date);
if (StringUtils.isNotBlank(oaFlag)) {
esPrcRelation.setOaFlag(oaFlag);
}
if (StringUtils.isNotBlank(prcId)) {
esPrcRelation.setPrcId(prcId);
}
if (StringUtils.isNotBlank(prcIdGk)) {
esPrcRelation.setPrcIdGk(prcIdGk);
}
QueryWrapper<EsPrcRelation> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(EsPrcRelation::getEsId, esPrcRelation.getEsId());
return this.baseMapper.update(esPrcRelation, queryWrapper);
}
@Override
public int delEsPrcRelation(String esId) {
QueryWrapper<EsPrcRelation> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(EsPrcRelation::getEsId, esId);
return this.baseMapper.delete(queryWrapper);
}
}
@@ -0,0 +1,100 @@
package com.ydw.bat.wkflow.config;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.EsPrcRelation;
import com.ydw.bat.wkflow.business_main.datas.entity.EsRevisePlanDTO;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IEsPrcRelationService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.TaskService;
import org.activiti.engine.task.Task;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;
import java.util.stream.Collectors;
public class ScheduledJobEsPlan {
Logger logger = LoggerFactory.getLogger(ScheduledJobEsPlan.class);
@Value("${isNotScheduled}")
private boolean isNotScheduled; //是否开启定时器
@Scheduled(cron = "0 0 2 * * ?") //每天的凌晨2点执行
@Async
public void SchedulingTask() {
if(isNotScheduled) {
logger.info("============企标计划定时任务开始===========");
LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class);
IEsPrcRelationService esPrcRelationService = SpringContextUtil.getBean(IEsPrcRelationService.class);
TaskService taskService = SpringContextUtil.getBean(TaskService.class);
List<EsRevisePlanDTO> esRevisePlanDTOList = lawsUserInfoService.getAllPlansByWk(null); // 查询 制定中,修订中的企标计划
// 计划标准初稿时间前一个月的企标计划
SimpleDateFormat sdfQuery = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, -1);
String endDate = sdfQuery.format(calendar.getTime());
List<EsRevisePlanDTO> esRevisePlanDTOList2 = esRevisePlanDTOList.stream()
.filter(e -> endDate.equals(sdfQuery.format(e.getDraftTime())))
.collect(Collectors.toList());
if (!esRevisePlanDTOList2.isEmpty()) {
for (EsRevisePlanDTO esRevisePlanDTO : esRevisePlanDTOList2) {
List<EsPrcRelation> esPrcRelationList = esPrcRelationService.list(esRevisePlanDTO.getId());
if (esPrcRelationList.isEmpty()) {
continue;
}
String esId = esPrcRelationList.get(0).getEsId();
String prcIdGk = esPrcRelationList.get(0).getPrcIdGk();
String oaFlag = esPrcRelationList.get(0).getOaFlag();
// 判断对应 管控流程是否还在 技术标准起草节点, 且之前点过接受任务
if (StringUtils.isNotBlank(prcIdGk)) {
List<Task> list2 = taskService.createTaskQuery().processInstanceId(prcIdGk).active().list();
if (!list2.isEmpty()) {
String nowTaskInfo = list2.get(0).getName();
if ("技术标准起草".equals(nowTaskInfo) && "0".equals(oaFlag)) {
// 再次发送待办
logger.info("============再次发送待办的企标计划" + esRevisePlanDTO.getEsName() +"===========");
sendOATodo(list2.get(0));
// 更新 状态为待办
esPrcRelationService.modifyEsPrcRelation(esId, null, "1", null);
}
}
}
}
}
logger.info("============企标计划定时任务结束===========");
}
}
public void sendOATodo(Task delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
queryWrapper1.isNull("TASK_ID");
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()) {
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("qbzxdjhgkStep6?prcType=25");
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -40,7 +40,7 @@ public class BussFs4Before implements TaskListener {
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussFs3?prcType=buss3");
one1.setLink("bussFs6?prcType=buss3");
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
@@ -5,14 +5,15 @@ 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.IBusProcessModelHisService;
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.entity.EsPrcRelation;
import com.ydw.bat.wkflow.business_main.datas.service.*;
import com.ydw.bat.wkflow.util.SpringContextUtil;
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 org.apache.tomcat.util.digester.ArrayStack;
@@ -26,6 +27,12 @@ import java.util.List;
*/
public class BLApplicantAfter implements TaskListener{
TaskService taskService = SpringContextUtil.getBean(TaskService.class);
IEsPrcRelationService esPrcRelationService = SpringContextUtil.getBean(IEsPrcRelationService.class);
RuntimeService runtimeService = SpringContextUtil.getBean(RuntimeService.class);
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
@@ -137,6 +144,56 @@ public class BLApplicantAfter implements TaskListener{
// 生成 模板
// busProcessModelHisService.saveBussTemplateFile(object,delegateTask.getProcessInstanceId());
// 给企标计划绑定 技术标准流程
//1合并 2延期 3取消 4更名 5立项
String type=object.getString("type");
if (StringUtils.isNotBlank(type)) {
// 删除 进行中的 旧流程
if ("1".equals(type)) {
String esId1 = object.getString("esId1");
String esId2 = object.getString("esId2");
List<EsPrcRelation> esPrcRelationList1 = esPrcRelationService.list(esId1);
if (esPrcRelationList1 != null && !esPrcRelationList1.isEmpty()) {
String prcId1 = esPrcRelationList1.get(0).getPrcId();
List<Task> list1 = taskService.createTaskQuery().processInstanceId(prcId1).active().list();
if (list1 != null && !list1.isEmpty()) {
// 删除正在运行中的流程根据流程实例ID
runtimeService.deleteProcessInstance(prcId1, "");
}
}
List<EsPrcRelation> esPrcRelationList2 = esPrcRelationService.list(esId2);
if (esPrcRelationList2 != null && !esPrcRelationList2.isEmpty()) {
String prcId2 = esPrcRelationList2.get(0).getPrcId();
List<Task> list2 = taskService.createTaskQuery().processInstanceId(prcId2).active().list();
if (list2 != null && !list2.isEmpty()) {
// 删除正在运行中的流程根据流程实例ID
runtimeService.deleteProcessInstance(prcId2, "");
}
}
// 删除旧的 计划和流程关联关系, 因为 一条计划只对应一条企标制修订流程
esPrcRelationService.delEsPrcRelation(esId1);
esPrcRelationService.delEsPrcRelation(esId2);
} else if ("2".equals(type) || "3".equals(type) || "4".equals(type)) {
String esId = object.getString("esId");
List<EsPrcRelation> esPrcRelationList = esPrcRelationService.list(esId);
if (esPrcRelationList != null && !esPrcRelationList.isEmpty()) {
String prcId = esPrcRelationList.get(0).getPrcId();
List<Task> list = taskService.createTaskQuery().processInstanceId(esPrcRelationList.get(0).getPrcId()).active().list();
if (list != null && !list.isEmpty()) {
// 删除正在运行中的流程根据流程实例ID
runtimeService.deleteProcessInstance(prcId, "");
}
}
}
// 修改 计划和流程关联关系
esPrcRelationService.modifyEsPrcRelation(object.getString("nowEsId"), delegateTask.getProcessInstanceId(), null, null);
}
}
private String verifyObj(String str){
@@ -3,13 +3,11 @@ package com.ydw.bat.wkflow.listener.enterpriseStandardSystemRevisionPlan;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.entity.EsRevisePlanDTO;
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.util.SpringContextUtil;
import net.sf.json.JSONArray;
import net.sf.json.util.JSONTokener;
@@ -38,6 +36,8 @@ public class ProcessStep4After implements TaskListener {
LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class);
IEsPrcRelationService esPrcRelationService = SpringContextUtil.getBean(IEsPrcRelationService.class);
//根据流程id找到流程信息
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
@@ -47,10 +47,13 @@ public class ProcessStep4After implements TaskListener {
//标准法规部业务经理Id
List<String> nextUserList = new ArrayList();
String prcName = "";
String nowEsId = "";
//根据意见选择 企标状态并对企标信息进行修改 bzfgId
if ("0".equals(object.getString("bzfgbzFlag"))){
prcName = "企标制修订计划-流程结束";
delegateTask.setVariable("bzfgbzFlag",0);
nextUserList.add(delegateTask.getVariable("prcCreateUser",String.class));
delegateTask.setVariable("createUser",delegateTask.getVariable("prcCreateUser",String.class));
// 建立对应字符串
Map<String,String> plan_status=new HashMap<>();
plan_status.put("未开始","0");
@@ -96,7 +99,12 @@ public class ProcessStep4After implements TaskListener {
esRevisePlanDTO.setRqbJson(object.getString("rqbJson"));
esRevisePlanDTO.setTechnologic(object.getString("technologic"));
esRevisePlanDTO.setBussSort(object.getString("bussSort"));
lawsUserInfoService.addPlan(esRevisePlanDTO);
List<EsRevisePlanDTO> esRevisePlanDTOS = lawsUserInfoService.getAllPlansByWk(object.getString("esName"));
if (esRevisePlanDTOS != null && !esRevisePlanDTOS.isEmpty()) {
nowEsId = esRevisePlanDTOS.get(0).getId();
}
}else if ("2".equals(object.getString("type"))){
EsRevisePlanDTO esRevisePlanDTO=new EsRevisePlanDTO();
esRevisePlanDTO.setId(object.getString("esId"));
@@ -140,6 +148,10 @@ public class ProcessStep4After implements TaskListener {
lawsUserInfoService.modStatePlan(esRevisePlanDTO);
}else {
lawsUserInfoService.addPlan(esRevisePlanDTO);
List<EsRevisePlanDTO> esRevisePlanDTOS = lawsUserInfoService.getAllPlansByWk(object.getString("esName"));
if (esRevisePlanDTOS != null && !esRevisePlanDTOS.isEmpty()) {
nowEsId = esRevisePlanDTOS.get(0).getId();
}
}
}
}else {
@@ -172,16 +184,12 @@ public class ProcessStep4After implements TaskListener {
}
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = delegateTask.getVariable("prcCreateUser",String.class);
String username = delegateTask.getVariable("prcCreateUserName", String.class);
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if (one1 != null) {
if ("0".equals(object.getString("bzfgbzFlag"))){
one1.setOverTime(OVERTIME);
}
one1.setPrcType("25");
// one1.setPrcName(prcName);
one1.setCreatUser(user);
@@ -203,11 +211,17 @@ public class ProcessStep4After implements TaskListener {
busBean.saveOrUpdate(busProcessNews);
}
}
if (nextUserList != null && !nextUserList.isEmpty()) {
for (String nextUser : nextUserList) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
if ("5".equals(type) || "1".equals(type)) {
object.put("nowEsId", nowEsId);
} else {
object.put("nowEsId", object.getString("esId"));
}
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
@@ -220,6 +234,11 @@ public class ProcessStep4After implements TaskListener {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
if ("5".equals(type) || "1".equals(type)) {
object.put("nowEsId", nowEsId);
} else {
object.put("nowEsId", object.getString("esId"));
}
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
@@ -228,5 +247,25 @@ public class ProcessStep4After implements TaskListener {
busBean.save(busProcessNewNext);
}
// throw new ActivitiException("fa");
// 处理 oaFlag 为待办
//1合并 2延期 3取消 4更名 5立项
if ("5".equals(type) || "1".equals(type)){
// 新增新的 计划和流程关联关系
esPrcRelationService.addEsPrcRelation(nowEsId, null, delegateTask.getProcessInstanceId());
} else {
List<EsPrcRelation> esPrcRelationList = esPrcRelationService.list(object.getString("esId"));
if (esPrcRelationList != null && !esPrcRelationList.isEmpty()) {
// 修改 计划和流程关联关系
esPrcRelationService.modifyEsPrcRelation(object.getString("esId"), null , "0", delegateTask.getProcessInstanceId());
} else {
// 新增新的 计划和流程关联关系
esPrcRelationService.addEsPrcRelation(object.getString("esId"), null, delegateTask.getProcessInstanceId());
}
}
}
}
@@ -0,0 +1,79 @@
package com.ydw.bat.wkflow.listener.enterpriseStandardSystemRevisionPlan;
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.business_main.datas.service.IEsPrcRelationService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.TaskService;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 企标制修订计划管控-技术标准起草
*/
public class ProcessStep6After 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);
IEsPrcRelationService esPrcRelationService = SpringContextUtil.getBean(IEsPrcRelationService.class);
//根据流程id找到流程信息
QueryWrapper<Datas> 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 OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = delegateTask.getVariable("prcCreateUser",String.class);
String username = delegateTask.getVariable("prcCreateUserName", String.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper1);
if (one1 != null) {
one1.setOverTime(OVERTIME);
one1.setPrcType("25");
// one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
busProcessNameService.saveOrUpdate(one1);
}
//存储当前节点意见
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("TASK_ID", delegateTask.getId());
BusProcessNew one2 = busBean.getOne(queryWrapper2);
if (one2 != null) {
one2.setMsgType("clause");
one2.setPId(delegateTask.getProcessInstanceId());
one2.setMesg(object.toJSONString());
one2.setFinishFlag("0");
one2.setTaskInfo(delegateTask.getName());
one2.setCommitFlag("0");
one2.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(one2);
}
// 处理 oaFlag 为已办
// 修改 计划和流程关联关系
esPrcRelationService.modifyEsPrcRelation(object.getString("nowEsId"), null , "0", delegateTask.getProcessInstanceId());
}
}
@@ -0,0 +1,39 @@
package com.ydw.bat.wkflow.listener.enterpriseStandardSystemRevisionPlan;
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 ProcessStep6Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
queryWrapper1.isNull("TASK_ID");
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()) {
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("qbzxdjhgkStep6?prcType=25");
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -8,6 +8,7 @@ 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.business_main.datas.service.IEsPrcRelationService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
@@ -32,6 +33,8 @@ public class ProcessstartAfter implements TaskListener {
//流程信息
IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class);
IEsPrcRelationService esPrcRelationService = SpringContextUtil.getBean(IEsPrcRelationService.class);
//根据流程id找到流程信息
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
@@ -40,13 +43,26 @@ public class ProcessstartAfter implements TaskListener {
delegateTask.setVariable("objectJson", object);
//标准法规部业务经理Id deptCenterId
List<String> nextUserList = new ArrayList();
nextUserList.add(object.getString("dockUser"));
delegateTask.setVariable("topmanagerId",object.getString("dockUser"));
if ("0".equals(object.getString("addFlag"))) {
nextUserList.add(object.getString("dockUser"));
delegateTask.setVariable("topmanagerId", object.getString("dockUser"));
delegateTask.setVariable("addFlag", object.getString("addFlag"));
//存储后续需要的人员
delegateTask.setVariable("Step1", object.getString("countersigner")); // 会签人员
delegateTask.setVariable("Step2", object.getString("examine")); // 审定人员
delegateTask.setVariable("Step3", object.getString("approver")); // 批准人员
} else {
nextUserList.add(object.getString("prcCreateUser"));
delegateTask.setVariable("createUser",object.getString("prcCreateUser")); // 技术标准起草人员
delegateTask.setVariable("addFlag", object.getString("addFlag"));
// 处理 oaFlag 为待办
// 新增新的 计划和流程关联关系
esPrcRelationService.addEsPrcRelation(object.getString("nowEsId"), null, delegateTask.getProcessInstanceId());
}
//存储后续需要的人员
delegateTask.setVariable("Step1",object.getString("countersigner"));
delegateTask.setVariable("Step2",object.getString("examine"));
delegateTask.setVariable("Step3",object.getString("approver"));
//截止时间 流程描述 创建人
String user = object.getString("prcCreateUser");
@@ -18,6 +18,9 @@ import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
* 项目合规评估流程-项目
*/
public class Step1After implements TaskListener {
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ydw.bat.wkflow.business_main.datas.mapper.EsPrcRelationMapper">
<resultMap id="BaseInfoMap" type="com.ydw.bat.wkflow.business_main.datas.entity.EsPrcRelation">
<id column="id" property="id" />
<id column="es_id" property="esId" />
<id column="prc_id" property="prcId" />
<id column="create_time" property="createTime" />
<id column="update_time" property="updateTime" />
<id column="oa_flag" property="oaFlag" />
<id column="prc_id_gk" property="prcIdGk" />
</resultMap>
</mapper>