Merge branch 'dev_20231013_ZC' into 'dev_20230829_change'

Dev 20231013 zc

See merge request laws-foton-slrs/foton-wkflow-rest!64
This commit is contained in:
高嵩
2023-10-31 03:49:37 +00:00
91 changed files with 5615 additions and 4 deletions
@@ -1,9 +1,13 @@
package com.ydw.bat.wkflow.business_activiti.service;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import org.activiti.engine.TaskService;
import org.activiti.engine.task.NativeTaskQuery;
import org.activiti.engine.task.Task;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -81,4 +85,35 @@ public class TaskTodoService {
}
/**
* 根据任务定义key,判断是否还存在该节点的待办任务。(排除当前操作的待办任务)
*
* @param prcId
* @param taskDefinitionKey
* @return
*/
public boolean whetherExistTaskByTaskDefinitionKey(String prcId, String taskDefinitionKey,String taskId) {
boolean result = false;
List<Task> taskList = taskService.createTaskQuery().processInstanceId(prcId).active().list().stream().filter(task-> {
boolean flag = false;
if (StringUtils.isNotEmpty(taskId)) {
if (!StringUtils.equals(task.getId(),taskId)) {
flag = true;
}
} else {
flag = true;
}
return flag;
}).distinct().collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(taskList)) {
for (Task task : taskList) {
if (StringUtils.equals(task.getTaskDefinitionKey(),taskDefinitionKey)) {
result = true;
break;
}
}
}
return result;
}
}
@@ -223,6 +223,8 @@ public class TaskController {
typeData.put("25","起草");//企标制修订计划管控
typeData.put("26","起草");//企标制修订立项计划
typeData.put("23","汇总");//企标复审
typeData.put("29","管理员");//政策征求意见
typeData.put("30","管理员");//重点认证标准/政策合规性项目审查
BusProcessName one = iBusProcessNameService.getOne(queryWrapper);
HistoricTaskInstanceQuery historicTaskInstanceQuery = historyService.createHistoricTaskInstanceQuery()
.processInstanceId(one.getPrcId()).orderByHistoricTaskInstanceEndTime().asc();
@@ -20,15 +20,13 @@ import java.util.Map;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessEntrustService;
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.IOaTaskExecService;
import com.ydw.bat.wkflow.business_main.datas.service.*;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.business_oa.webService.service.WebServiceOAService;
import com.ydw.bat.wkflow.business_oa.webService.service.impl.WebServiceOAServiceImpl;
import com.ydw.bat.wkflow.business_wkflow.form.dto.FormSubmitDto;
import com.ydw.bat.wkflow.business_wkflow.form.service.FormValsService;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import org.activiti.engine.*;
import org.activiti.engine.history.*;
import org.activiti.engine.repository.ProcessDefinition;
@@ -36,6 +34,7 @@ import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.runtime.ProcessInstanceQuery;
import org.activiti.engine.task.NativeTaskQuery;
import org.activiti.engine.task.Task;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -101,6 +100,18 @@ public class TodoTaskController extends BaseAction {
@Autowired
private CreateMQService mqService;
@Autowired
private IFlowUserRelInfoService flowUserRelInfoService;
@Autowired
private IPolicySolicitOpinionEOService policySolicitOpinionEOService;
@Autowired
private IZchgxxmscSybDataEOService zchgxxmscSybDataEOService;
@Autowired
private IZchgxxmscCpghbDataEOService zchgxxmscCpghbDataEOService;
@ApiOperation(value = "我的待办任务列表")
@ApiImplicitParams({@ApiImplicitParam(name = "name", value = "名称"),
@ApiImplicitParam(name = "current", value = "当前页"),
@@ -242,6 +253,7 @@ public class TodoTaskController extends BaseAction {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String data = sdf.format(entry.getValue().get(0).get("createTime"));
res.setAcceptTime(data);
res.setTaskDefinitionKey(entry.getValue().get(0).get("taskDefinitionKey").toString());
// //获取新的流程名称
// QueryWrapper<BusProcessNew> queryWrapper1=new QueryWrapper<>();
// queryWrapper1.eq("P_ID",res.getPrcId());
@@ -329,6 +341,7 @@ public class TodoTaskController extends BaseAction {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String data = sdf.format(entry.getValue().get(0).get("createTime"));
res.setAcceptTime(data);
res.setTaskDefinitionKey(entry.getValue().get(0).get("taskDefinitionKey").toString());
// //获取新的流程名称
// QueryWrapper<BusProcessNew> queryWrapper1=new QueryWrapper<>();
// queryWrapper1.eq("P_ID",res.getPrcId());
@@ -404,6 +417,13 @@ public class TodoTaskController extends BaseAction {
busProcessEntrust.setPrcName(one.getPrcName());
busProcessEntrust.setTaskId(str);
iBusProcessEntrustService.save(busProcessEntrust);
if (StringUtils.equals(one.getPrcType(), FlowTypeEnum.ZCZQYJLC.getValue())) {
this.changeZczqyjFlowAssignee(assignee, userId, pId, str);
} else if (StringUtils.equals(one.getPrcType(), FlowTypeEnum.ZCHGXXMSCLC.getValue())) {
this.changeZchgxxmscFlowAssignee(assignee, userId, pId, str);
}
}
}
@@ -490,7 +510,110 @@ public class TodoTaskController extends BaseAction {
// logger.info("task {} find " + taskId);
return WrapMapper.ok("改派成功");
}
/**
* @Description: 变更流程人员关系
* @author: wangzhijiang
* @date: 2023-10-18
* @Param:
* @return:
*/
private void changeFlowUserRelInfoAssignee(String assignee, String userId, String pId, String str,String flowType,Task task) {
QueryWrapper<FlowUserRelInfo> furQueryWrap = new QueryWrapper<>();
furQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, pId);
furQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType,flowType);
// 责任人任务处理。
if (StringUtils.equals(task.getTaskDefinitionKey(),"PolicySolicitOpinionProcessKey8") || StringUtils.equals(task.getTaskDefinitionKey(),"PolicyComplianceProgramReviewProcessKey8")) {
furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType,"zrdjrfpzrr");
furQueryWrap.lambda().eq(FlowUserRelInfo::getUserId, userId);
List<FlowUserRelInfo> furInfoList = this.flowUserRelInfoService.list(furQueryWrap);
if (CollectionUtils.isNotEmpty(furInfoList)) {
furInfoList.forEach(furInfo -> {furInfo.setUserId(assignee);});
this.flowUserRelInfoService.updateBatchById(furInfoList);
}
}
// 责任对接人汇总
if (StringUtils.equals(task.getTaskDefinitionKey(),"PolicySolicitOpinionProcessKey9") || StringUtils.equals(task.getTaskDefinitionKey(),"PolicyComplianceProgramReviewProcessKey9")) {
furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType,"zrdjrfpzrr");
furQueryWrap.lambda().eq(FlowUserRelInfo::getParentUserId, userId);
List<FlowUserRelInfo> furInfoList = this.flowUserRelInfoService.list(furQueryWrap);
if (CollectionUtils.isNotEmpty(furInfoList)) {
furInfoList.forEach(furInfo -> {furInfo.setParentUserId(assignee);});
this.flowUserRelInfoService.updateBatchById(furInfoList);
}
}
// 责任单位审批
if (StringUtils.equals(task.getTaskDefinitionKey(),"PolicySolicitOpinionProcessKey10") || StringUtils.equals(task.getTaskDefinitionKey(),"PolicyComplianceProgramReviewProcessKey10")) {
furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType,"zrdjrfpzrdw");
furQueryWrap.lambda().eq(FlowUserRelInfo::getUserId, userId);
List<FlowUserRelInfo> furInfoList = this.flowUserRelInfoService.list(furQueryWrap);
if (CollectionUtils.isNotEmpty(furInfoList)) {
furInfoList.forEach(furInfo -> {furInfo.setUserId(assignee);});
this.flowUserRelInfoService.updateBatchById(furInfoList);
}
}
}
public void changeZczqyjFlowAssignee(String assignee, String userId, String pId, String str){
Task task = this.taskService.createTaskQuery().taskId(str).singleResult();
if (StringUtils.equals(task.getTaskDefinitionKey(),"PolicySolicitOpinionProcessKey8")) {
Map<String,Object> params = new HashMap<>();
params.put("taskDefinitionKey",task.getTaskDefinitionKey());
params.put("currentUserId",userId);
params.put("prcId",task.getProcessInstanceId());
List<PolicySolicitOpinionEO> policySolicitOpinionEOList = this.policySolicitOpinionEOService.queryPolicitOpinionEOList(params);
if (CollectionUtils.isNotEmpty(policySolicitOpinionEOList)) {
policySolicitOpinionEOList.forEach(policySolicitOpinionEO -> {policySolicitOpinionEO.setCreateUserId(assignee);});
this.policySolicitOpinionEOService.updateBatchById(policySolicitOpinionEOList);
}
} else if (StringUtils.equals(task.getTaskDefinitionKey(),"PolicySolicitOpinionProcessKey9")) {
Map<String,Object> params = new HashMap<>();
params.put("taskDefinitionKey","PolicySolicitOpinionProcessKey8");
params.put("currentUserId",userId);
params.put("prcId",task.getProcessInstanceId());
List<PolicySolicitOpinionEO> policySolicitOpinionEOList = this.policySolicitOpinionEOService.queryPolicitOpinionEOList(params);
if (CollectionUtils.isNotEmpty(policySolicitOpinionEOList)) {
policySolicitOpinionEOList.forEach(policySolicitOpinionEO -> {policySolicitOpinionEO.setCreateUserId(assignee);});
this.policySolicitOpinionEOService.updateBatchById(policySolicitOpinionEOList);
}
}
this.changeFlowUserRelInfoAssignee(assignee, userId, pId, str, FlowTypeEnum.ZCZQYJLC.getValue(),task);
}
public void changeZchgxxmscFlowAssignee(String assignee, String userId, String pId, String str){
Task task = this.taskService.createTaskQuery().taskId(str).singleResult();
if (StringUtils.equals(task.getTaskDefinitionKey(),"PolicyComplianceProgramReviewProcessKey8")) {
// 如果是责任人任务处理,修改当前责任人被分配的事业部数据
Map<String,Object> params = new HashMap<>();
params.put("taskDefinitionKey",task.getTaskDefinitionKey());
params.put("currentUserId",userId);
params.put("pId",task.getProcessInstanceId());
List<ZchgxxmscSybDataEO> zchgxxmscSybDataEOList = this.zchgxxmscSybDataEOService.queryZchgxxmscSybDataEOList(params);
if (CollectionUtils.isNotEmpty(zchgxxmscSybDataEOList)) {
zchgxxmscSybDataEOList.forEach(sybDataEO -> {sybDataEO.setZrrUserId(assignee);});
this.zchgxxmscSybDataEOService.updateBatchById(zchgxxmscSybDataEOList);
}
List<ZchgxxmscCpghbDataEO> zchgxxmscCpghbDataEOList = this.zchgxxmscCpghbDataEOService.queryZchgxxmscCpghbDataEOList(params);
if (CollectionUtils.isNotEmpty(zchgxxmscCpghbDataEOList)) {
zchgxxmscCpghbDataEOList.forEach(cpghbDataEO -> {cpghbDataEO.setZrrUserId(assignee);});
this.zchgxxmscCpghbDataEOService.updateBatchById(zchgxxmscCpghbDataEOList);
}
} else if (StringUtils.equals(task.getTaskDefinitionKey(),"PolicyComplianceProgramReviewProcessKey9")){
Map<String,Object> params = new HashMap<>();
params.put("taskDefinitionKey","PolicyComplianceProgramReviewProcessKey8");
params.put("currentUserId",userId);
params.put("pId",task.getProcessInstanceId());
List<ZchgxxmscCpghbDataEO> zchgxxmscCpghbDataEOList = this.zchgxxmscCpghbDataEOService.queryZchgxxmscCpghbDataEOList(params);
if (CollectionUtils.isNotEmpty(zchgxxmscCpghbDataEOList)) {
zchgxxmscCpghbDataEOList.forEach(cpghbDataEO -> {cpghbDataEO.setZrrUserId(assignee);});
this.zchgxxmscCpghbDataEOService.updateBatchById(zchgxxmscCpghbDataEOList);
}
}
this.changeFlowUserRelInfoAssignee(assignee, userId, pId, str, FlowTypeEnum.ZCHGXXMSCLC.getValue(),task);
}
@ApiOperation(value = "完成任务", notes = "流程单个节点任务,直接完成任务")
@ApiImplicitParams({@ApiImplicitParam(name = "taskId", value = "任务id"),
@ApiImplicitParam(name = "userId", value = "完成任务用户Id")})
@@ -1870,6 +1993,34 @@ public class TodoTaskController extends BaseAction {
BusProcessNew one = busProcessNewList.get(0);
one.setMesg(object.toString());
iBusProcessNewService.saveOrUpdate(one);
QueryWrapper<BusProcessName> bpnQueryWrap = new QueryWrapper<>();
bpnQueryWrap.lambda().eq(BusProcessName::getPrcId,one.getPId());
BusProcessName busProcessName = this.iBusProcessNameService.getOne(bpnQueryWrap);
if (StringUtils.equals(busProcessName.getPrcType(),FlowTypeEnum.ZCZQYJLC.getValue())) {
object.put("prcId",busProcessName.getPrcId());
this.policySolicitOpinionEOService.batchInsert(object);
} else if (StringUtils.equals(busProcessName.getPrcType(),FlowTypeEnum.ZCHGXXMSCLC.getValue())) {
JSONObject jsonForm = object.getJSONObject("form");
// departmentType字段: value: undertaking 事业部 productPlanning 产品规划部
String departmentType = jsonForm.getString("departmentType");
if (StringUtils.equals(departmentType,"undertaking") && jsonForm.containsKey("sybDataList")) {
JSONArray sybDataListArr = jsonForm.getJSONArray("sybDataList");
List<ZchgxxmscSybDataEO> zchgxxmscSybDataEOList = new ArrayList<>();
ZchgxxmscSybDataEO zchgxxmscSybDataEO = null;
for (Object sybData : sybDataListArr) {
zchgxxmscSybDataEO = JSONObject.parseObject(JSONObject.toJSONString(sybData),ZchgxxmscSybDataEO.class);
zchgxxmscSybDataEO.setModifyTime(new Date());
zchgxxmscSybDataEOList.add(zchgxxmscSybDataEO);
}
this.zchgxxmscSybDataEOService.updateBatchById(zchgxxmscSybDataEOList);
} else if (StringUtils.equals(departmentType,"productPlanning") && jsonForm.containsKey("cpghbDataList")) {
// 保存产品规划部的责任人填写的信息
object.put("currentUserId",one.getUserId());
object.put("prcId",busProcessName.getPrcId());
this.zchgxxmscCpghbDataEOService.batchInsert(object);
}
}
return WrapMapper.ok("保存成功");
}
}
@@ -3109,4 +3260,57 @@ public class TodoTaskController extends BaseAction {
return "1";
}
/**
* 本接口仅提供法规系统调用
*/
@ApiOperation(value = "查询重点认证标准/政策合规性项目审查任务明细")
@GetMapping("/queryZchgxxmscTaskDetail")
public BusProcessNew queryZchgxxmscTaskDetail(@RequestParam Map<String,Object> params) {
String taskIds = (String) params.get("taskIds");
String prcId = (String) params.get("pId");
List<String> taskIdList = new ArrayList<>(Arrays.asList(taskIds.split(",")));
List<BusProcessNew> list = iBusProcessNewService.findNoExecuteBusProcessNewForEnd(taskIdList);
if (list.isEmpty()) {
return null;
}
BusProcessNew processNew = new BusProcessNew();
BeanUtils.copyProperties(list.get(0), processNew);
if(StringUtils.isNotBlank(prcId)){
List<Task> list2 = taskService.createTaskQuery().processInstanceId(prcId).active().list();
if(!list2.isEmpty()){
processNew.setNowTaskInfo(list2.get(0).getName());
}
}
JSONObject object3 = JSONObject.parseObject(list.get(0).getMesg());
List<ZchgxxmscSybDataEO> zchgxxmscSybDataEOList = this.zchgxxmscSybDataEOService.queryZchgxxmscSybDataEOList(params);
if (CollectionUtils.isNotEmpty(zchgxxmscSybDataEOList)) {
JSONObject jsonForm = object3.getJSONObject("form");
jsonForm.put("sybDataList",zchgxxmscSybDataEOList);
}
List<ZchgxxmscCpghbDataEO> zchgxxmscCpghbDataEOList = this.zchgxxmscCpghbDataEOService.queryZchgxxmscCpghbDataEOList(params);
if (CollectionUtils.isNotEmpty(zchgxxmscCpghbDataEOList)) {
JSONObject jsonForm = object3.getJSONObject("form");
jsonForm.put("cpghbDataList",zchgxxmscCpghbDataEOList);
}
processNew.setMesg(object3.toJSONString());
QueryWrapper wrapper = new QueryWrapper();
wrapper.eq("TODO_ID",processNew.getId());
wrapper.eq("EXEC_TYPE",2);
wrapper.eq("EXEC_STATUS",0);
long count = oaTaskExecService.count(wrapper);
processNew.setCommitStatus(count);
// 设置processNew表流程状态为已接收
LambdaUpdateWrapper<BusProcessNew> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.in(BusProcessNew::getTaskId,taskIdList);
updateWrapper.set(BusProcessNew::getReceiveStatus,"已接收");
iBusProcessNewService.update(updateWrapper);
return processNew;
}
}
@@ -0,0 +1,32 @@
package com.ydw.bat.wkflow.business_main.datas.controller;
import com.ydw.bat.wkflow.business_main.datas.entity.PolicySolicitOpinionEO;
import com.ydw.bat.wkflow.business_main.datas.service.IPolicySolicitOpinionEOService;
import com.ydw.bat.wkflow.util.http.ResponseMessage;
import com.ydw.bat.wkflow.util.http.Result;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/datas/policySolicitOpinion")
public class PolicySolicitOpinionEOController {
@Autowired
private IPolicySolicitOpinionEOService policySolicitOpinionEOService;
@ApiOperation(value = "查询政策征求意见列表")
@GetMapping("/queryPolicitOpinionEOList")
public ResponseMessage<List<PolicySolicitOpinionEO>> queryPolicitOpinionEOList(@RequestParam Map<String,Object> params) {
List<PolicySolicitOpinionEO> policySolicitOpinionEOList = this.policySolicitOpinionEOService.queryPolicitOpinionEOList(params);
return Result.success(policySolicitOpinionEOList);
}
}
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
@@ -91,4 +92,9 @@ public class BusProcessName implements Serializable {
@TableField(exist = false)
private String startTaskTime;
@TableField("RESPONSIBLE_UNIT_DEADLINE_DATE")
private Date responsibleUnitDeadlineDate;
@TableField(exist = false)
private String taskDefinitionKey;
}
@@ -0,0 +1,67 @@
package com.ydw.bat.wkflow.business_main.datas.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* 流程用户关系信息表 :流程中,存储用户上下级关系
* 作用:记录流程中,用户分配的上下级关系。
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("T_FLOW_USER_REL_INFO")
@ApiModel(value="FlowUserRelInfo对象", description="")
public class FlowUserRelInfo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
@TableId(value = "id", type = IdType.UUID)
private String id;
@ApiModelProperty(value = "流程类型")
@TableField("flow_type")
private String flowType;
@ApiModelProperty(value = "数据类型")
@TableField("data_type")
private String dataType;
@ApiModelProperty(value = "用户id")
@TableField("user_id")
private String userId;
@ApiModelProperty(value = "上级用户id")
@TableField("parent_user_id")
private String parentUserId;
@ApiModelProperty(value = "标准id")
@TableField("stand_id")
private String standId;
@ApiModelProperty(value = "待办id")
@TableField("task_id")
private String taskId;
@ApiModelProperty(value = "流程实例id")
@TableField("acti_proc_inst_id")
private String actiProcInstId;
@ApiModelProperty(value = "创建时间")
@TableField("create_time")
private Date createTime;
@ApiModelProperty(value = "创建人")
@TableField("create_by")
private String createBy;
}
@@ -0,0 +1,88 @@
package com.ydw.bat.wkflow.business_main.datas.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* @Description: 政策征求意见列表
* @author: wangzhijiang
* @date: 2023-10-18
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("POLICY_SOLICIT_OPINION")
@ApiModel(value="PolicySolicitOpinion对象", description="")
public class PolicySolicitOpinionEO {
private static final long serialVersionUID=1L;
@TableId(value = "ID", type = IdType.UUID)
private String id;
@TableField("PRC_ID")
private String prcId;
@TableField("SAR_LAWS_INFO_ID")
private String sarLawsInfoId;
// 章节编号
@TableField("CHAPTER_NUMBER")
private String chapterNumber;
// 章节条目
@TableField("CHAPTER_ENTRIES")
private String chapterEntries;
// 修改前
@TableField("MODIFY_BEFORE")
private String modifyBefore;
// 修改后
@TableField("MODIFY_AFTER")
private String modifyAfter;
// 修改理由
@TableField("MODIFY_REASON")
private String modifyReason;
// 原因
@TableField("CAUSE")
private String cause;
// 附件id
@TableField("ANNEX_FILE_ID")
private String annexFileId;
// 处理意见
@TableField("HANDLING_OPINIONS")
private String handlingOpinions;
// 处理原因
@TableField("HANDLING_CAUSE")
private String handlingCause;
// 提出人/创建人
@TableField("CREATE_USER_ID")
private String createUserId;
// 创建时间
@TableField("CREATE_TIME")
private Date createTime;
// 更新人
@TableField("MODIFY_USER_ID")
private String modifyUserId;
// 更新时间
@TableField("MODIFY_TIME")
private Date modifyTime;
}
@@ -0,0 +1,43 @@
package com.ydw.bat.wkflow.business_main.datas.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: 重点认证标准/政策合规性项目审查-产品规划部数据明细表
* @author: wangzhijiang
* @date: 2023-10-26
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("ZCHGXXMSC_CPGHB_DATA_DETAIL")
@ApiModel(value="ZchgxxmscCpghbDataDetail对象", description="")
public class ZchgxxmscCpghbDataDetailEO {
private static final long serialVersionUID=1L;
@TableId(value = "ID", type = IdType.UUID)
private String id;
// 流程实例id
@TableField("PRC_ID")
private String prcId;
// 产品规划部数据id
@TableField("ZCHGXXMSC_CPGHB_DATA_ID")
private String zchgxxmscCpghbDataId;
// 标准/政策id
@TableField("LAW_ID")
private String lawId;
// 输入值
@TableField("INPUT_VALUE")
private String inputValue;
}
@@ -0,0 +1,185 @@
package com.ydw.bat.wkflow.business_main.datas.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* @Description: 重点认证标准/政策合规性项目审查-产品规划部数据表
* @author: wangzhijiang
* @date: 2023-10-26
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("ZCHGXXMSC_CPGHB_DATA")
@ApiModel(value="ZchgxxmscCpghbData对象", description="")
public class ZchgxxmscCpghbDataEO {
private static final long serialVersionUID=1L;
@TableId(value = "ID", type = IdType.UUID)
private String id;
// 流程实例id
@TableField("PRC_ID")
private String prcId;
// 责任人用户id
@TableField("ZRR_USER_ID")
private String zrrUserId;
// 业务
@TableField("BUSINESS")
private String business;
// 平台
@TableField("PLATFORM")
private String platform;
// 项目
@TableField("PROJECT")
private String project;
// 项目描述
@TableField("PROJECT_DESCRIPTION")
private String projectDescription;
// 当前节点
@TableField("CURRENT_NODE")
private String currentNode;
// G0
@TableField("G_ZERO_DATE")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date gZeroDate;
// G1
@TableField("G_ONE_DATE")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date gOneDate;
// G2
@TableField("G_TWO_DATE")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date gTwoDate;
// G3
@TableField("G_THREE_DATE")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date gThreeDate;
// G4
@TableField("G_FOUR_DATE")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date gFourDate;
// G5
@TableField("G_FIVE_DATE")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date gFiveDate;
// G6
@TableField("G_SIX_DATE")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date gSixDate;
// G7
@TableField("G_SEVEN_DATE")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date gSevenDate;
// G8
@TableField("G_EIGHT_DATE")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date gEightDate;
// G9
@TableField("G_NINE_DATE")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date gNineDate;
// G10
@TableField("G_TEN_DATE")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date gTenDate;
// G11
@TableField("G_ELEVEN_DATE")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date gElevenDate;
// G12
@TableField("G_TWELVE_DATE")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date gTwelveDate;
// G13
@TableField("G_THIRTEEN_DATE")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date gThirteenDate;
// 提出人/创建人
@TableField("CREATE_USER_ID")
private String createUserId;
// 标准填写信息
@TableField("INFO_TABLE_DATA")
private String infoTableData;
// 概念状态
@TableField("CONCEPTUAL_STATE")
private String conceptualState;
// 概念计划下发时间
@TableField("CONCEPT_PLAN_RELEASE_TIME")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date conceptPlanReleaseTime;
// 概念修订计划
@TableField("CONCEPT_REVISION_PLAN")
private String conceptRevisionPlan;
// 其它说明
@TableField("ADDITIONAL_NOTES")
private String additionalNotes;
// 创建时间
@TableField("CREATE_TIME")
private Date createTime;
// 更新人
@TableField("MODIFY_USER_ID")
private String modifyUserId;
// 更新时间
@TableField("MODIFY_TIME")
private Date modifyTime;
// @TableField(exist = false)
// private List<ZchgxxmscCpghbDataDetailEO> zchgxxmscCpghbDataDetailEOList;
}
@@ -0,0 +1,101 @@
package com.ydw.bat.wkflow.business_main.datas.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* @Description: 重点认证标准/政策合规性项目审查-事业部数据表
* @author: wangzhijiang
* @date: 2023-10-25
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("ZCHGXXMSC_SYB_DATA")
@ApiModel(value="ZchgxxmscSybData对象", description="")
public class ZchgxxmscSybDataEO {
private static final long serialVersionUID=1L;
@TableId(value = "ID", type = IdType.UUID)
private String id;
// 标准/政策id
@TableField("LAW_ID")
private String lawId;
// 流程实例id
@TableField("PRC_ID")
private String prcId;
// 责任人用户id
@TableField("ZRR_USER_ID")
private String zrrUserId;
// 数据来源
@TableField("DATA_SOURCE")
private String dataSource;
// 标准/政策编号
@TableField("LAW_CODE")
private String lawCode;
// 标准/政策名称
@TableField("LAW_NAME")
private String lawName;
// 产品类型
@TableField("PRODUCT_TYPE")
private String productType;
// 实施日期
@TableField("IMPL_TIME")
private String implTime;
// 实施要求
@TableField("IMPL_REQUIRE")
private String implRequire;
// 资源符合情况
@TableField("RESOURCE_ACCORDWITH_CIRCUMSTANCE")
private String resourceAccordwithCircumstance;
// 开发计划
@TableField("DEV_PLAN")
private String devPlan;
// sop时间
@TableField("SOP_DATE")
private String sopDate;
// 完成情况
@TableField("FINISH_CIRCUMSTANCE")
private String finishCircumstance;
// sop时间超过法规时限的空挡期的业务应对方案
@TableField("SOP_DATE_SOLUTIONS")
private String sopDateSolutions;
// 提出人/创建人
@TableField("CREATE_USER_ID")
private String createUserId;
// 创建时间
@TableField("CREATE_TIME")
private Date createTime;
// 更新人
@TableField("MODIFY_USER_ID")
private String modifyUserId;
// 更新时间
@TableField("MODIFY_TIME")
private Date modifyTime;
}
@@ -0,0 +1,11 @@
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.FlowUserRelInfo;
/**
* 流程用户关系信息表 :流程中,存储用户上下级关系
* 作用:记录流程中,用户分配的上下级关系。
*/
public interface FlowUserRelInfoMapper extends BaseMapper<FlowUserRelInfo> {
}
@@ -0,0 +1,7 @@
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.PolicySolicitOpinionEO;
public interface PolicySolicitOpinionEOMapper extends BaseMapper<PolicySolicitOpinionEO> {
}
@@ -0,0 +1,7 @@
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.ZchgxxmscCpghbDataDetailEO;
public interface ZchgxxmscCpghbDataDetailEOMapper extends BaseMapper<ZchgxxmscCpghbDataDetailEO> {
}
@@ -0,0 +1,7 @@
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.ZchgxxmscCpghbDataEO;
public interface ZchgxxmscCpghbDataEOMapper extends BaseMapper<ZchgxxmscCpghbDataEO> {
}
@@ -0,0 +1,7 @@
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.ZchgxxmscSybDataEO;
public interface ZchgxxmscSybDataEOMapper extends BaseMapper<ZchgxxmscSybDataEO> {
}
@@ -0,0 +1,17 @@
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.FlowUserRelInfo;
import java.util.List;
/**
* 流程用户信息:流程中,存储用户上下级关系
*/
public interface IFlowUserRelInfoService extends IService<FlowUserRelInfo> {
/**
* 批量新增流程用户上下级关系
* @param flowUserRelInfoList
*/
void saveBatchFlowUserRelInfo(List<FlowUserRelInfo> flowUserRelInfoList);
}
@@ -0,0 +1,15 @@
package com.ydw.bat.wkflow.business_main.datas.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ydw.bat.wkflow.business_main.datas.entity.PolicySolicitOpinionEO;
import java.util.List;
import java.util.Map;
public interface IPolicySolicitOpinionEOService extends IService<PolicySolicitOpinionEO> {
void batchInsert(JSONObject json);
List<PolicySolicitOpinionEO> queryPolicitOpinionEOList(Map<String,Object> params);
}
@@ -0,0 +1,13 @@
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.ZchgxxmscCpghbDataDetailEO;
import java.util.List;
public interface IZchgxxmscCpghbDataDetailEOService extends IService<ZchgxxmscCpghbDataDetailEO> {
void batchInsert(List<ZchgxxmscCpghbDataDetailEO> zchgxxmscCpghbDataDetailEOList);
List<ZchgxxmscCpghbDataDetailEO> queryZchgxxmscCpghbDataDetailEOList(List<String> zchgxxmscCpghbDataIdList);
}
@@ -0,0 +1,15 @@
package com.ydw.bat.wkflow.business_main.datas.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscCpghbDataEO;
import java.util.List;
import java.util.Map;
public interface IZchgxxmscCpghbDataEOService extends IService<ZchgxxmscCpghbDataEO> {
void batchInsert(JSONObject json);
List<ZchgxxmscCpghbDataEO> queryZchgxxmscCpghbDataEOList(Map<String,Object> params);
}
@@ -0,0 +1,14 @@
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.ZchgxxmscSybDataEO;
import java.util.List;
import java.util.Map;
public interface IZchgxxmscSybDataEOService extends IService<ZchgxxmscSybDataEO> {
void batchInsert(List<ZchgxxmscSybDataEO> zchgxxmscSybDataEOList);
List<ZchgxxmscSybDataEO> queryZchgxxmscSybDataEOList(Map<String,Object> params);
}
@@ -0,0 +1,42 @@
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.FlowUserRelInfo;
import com.ydw.bat.wkflow.business_main.datas.mapper.FlowUserRelInfoMapper;
import com.ydw.bat.wkflow.business_main.datas.service.IFlowUserRelInfoService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* 流程用户信息:流程中,存储用户上下级关系
* 作用:记录流程每一个节点的用户id
*/
@Service
@Transactional(value = "transactionManager", propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class FlowUserRelInfoServiceImpl extends ServiceImpl<FlowUserRelInfoMapper, FlowUserRelInfo> implements IFlowUserRelInfoService {
@Autowired
private FlowUserRelInfoMapper flowUserRelInfoMapper;
@Override
public void saveBatchFlowUserRelInfo(List<FlowUserRelInfo> flowUserRelInfoList) {
if(CollectionUtils.isNotEmpty(flowUserRelInfoList)){
FlowUserRelInfo flowUserRelInfo = flowUserRelInfoList.get(0);
QueryWrapper<FlowUserRelInfo> deleteWrap = new QueryWrapper<>();
deleteWrap.lambda().eq(FlowUserRelInfo::getParentUserId,flowUserRelInfo.getParentUserId());
deleteWrap.lambda().eq(FlowUserRelInfo::getDataType,flowUserRelInfo.getDataType());
deleteWrap.lambda().eq(FlowUserRelInfo::getFlowType,flowUserRelInfo.getFlowType());
deleteWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId,flowUserRelInfo.getActiProcInstId());
this.flowUserRelInfoMapper.delete(deleteWrap);
this.saveBatch(flowUserRelInfoList);
}
}
}
@@ -0,0 +1,130 @@
package com.ydw.bat.wkflow.business_main.datas.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.netflix.discovery.converters.Auto;
import com.ydw.bat.wkflow.business_main.datas.entity.FlowUserRelInfo;
import com.ydw.bat.wkflow.business_main.datas.entity.PolicySolicitOpinionEO;
import com.ydw.bat.wkflow.business_main.datas.mapper.PolicySolicitOpinionEOMapper;
import com.ydw.bat.wkflow.business_main.datas.service.IFlowUserRelInfoService;
import com.ydw.bat.wkflow.business_main.datas.service.IPolicySolicitOpinionEOService;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class PolicySolicitOpinionEOServiceImpl extends ServiceImpl<PolicySolicitOpinionEOMapper, PolicySolicitOpinionEO> implements IPolicySolicitOpinionEOService {
@Autowired
private IFlowUserRelInfoService flowUserRelInfoService;
@Override
public void batchInsert(JSONObject json) {
String currentUserId = json.getString("currentUserId");
String prcId = json.getString("prcId");
String removeIds = json.getString("removeIds");
JSONObject jsonForm = json.getJSONObject("form");
if (StringUtils.isNotEmpty(removeIds)) {
List<String> removeIdList = Arrays.asList(removeIds.split(","));
this.removeByIds(removeIdList);
}
JSONArray policySolicitOpinionEOArr = json.getJSONArray("policySolicitOpinionEOList");
List<PolicySolicitOpinionEO> addPolicySolicitOpinionEOList = new ArrayList<>();
List<PolicySolicitOpinionEO> updatePolicySolicitOpinionEOList = new ArrayList<>();
PolicySolicitOpinionEO policySolicitOpinionEO = null;
for (Object policySolicitOpinion : policySolicitOpinionEOArr) {
policySolicitOpinionEO = JSONObject.parseObject(JSONObject.toJSONString(policySolicitOpinion), PolicySolicitOpinionEO.class);
policySolicitOpinionEO.setPrcId(prcId);
policySolicitOpinionEO.setSarLawsInfoId(jsonForm.getString("lawsId"));
if (StringUtils.isEmpty(policySolicitOpinionEO.getId())) {
policySolicitOpinionEO.setCreateUserId(currentUserId);
policySolicitOpinionEO.setCreateTime(new Date());
addPolicySolicitOpinionEOList.add(policySolicitOpinionEO);
} else {
policySolicitOpinionEO.setModifyUserId(currentUserId);
policySolicitOpinionEO.setModifyTime(new Date());
updatePolicySolicitOpinionEOList.add(policySolicitOpinionEO);
}
}
if (CollectionUtils.isNotEmpty(addPolicySolicitOpinionEOList)) {
this.saveBatch(addPolicySolicitOpinionEOList);
}
if (CollectionUtils.isNotEmpty(updatePolicySolicitOpinionEOList)) {
this.updateBatchById(updatePolicySolicitOpinionEOList);
}
}
@Override
public List<PolicySolicitOpinionEO> queryPolicitOpinionEOList(Map<String, Object> params) {
List<PolicySolicitOpinionEO> result = new ArrayList<>();
String taskDefinitionKey = (String) params.get("taskDefinitionKey");
String currentUserId = (String) params.get("currentUserId");
String prcId = (String) params.get("prcId");
QueryWrapper<PolicySolicitOpinionEO> psoEoQueryWrap = new QueryWrapper<>();
psoEoQueryWrap.lambda().eq(PolicySolicitOpinionEO::getPrcId, prcId);
if (StringUtils.equals(taskDefinitionKey, "PolicySolicitOpinionProcessKey8")) {
// 责任人处理
psoEoQueryWrap.lambda().eq(PolicySolicitOpinionEO::getCreateUserId, currentUserId);
} else if (StringUtils.equals(taskDefinitionKey, "PolicySolicitOpinionProcessKey9")) {
// 责任对接人汇总
// 查询当前责任对接人分配出去的责任人,获取这些责任人填写的征求意见列表
List<String> userIdList = new ArrayList<>();
userIdList.add(currentUserId);
QueryWrapper<FlowUserRelInfo> furQueryWrap = new QueryWrapper<>();
furQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, prcId);
furQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType, FlowTypeEnum.ZCZQYJLC.getValue());
furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType, "zrdjrfpzrr"); // 责任对接人分配责任人
furQueryWrap.lambda().eq(FlowUserRelInfo::getParentUserId, currentUserId);
List<FlowUserRelInfo> zrdjrFlowUserRelInfoList = this.flowUserRelInfoService.list(furQueryWrap);
if (CollectionUtils.isNotEmpty(zrdjrFlowUserRelInfoList)) {
userIdList.addAll(zrdjrFlowUserRelInfoList.stream().map(FlowUserRelInfo::getUserId).distinct().collect(Collectors.toList()));
}
psoEoQueryWrap.lambda().in(PolicySolicitOpinionEO::getCreateUserId, userIdList);
} else if (StringUtils.equals(taskDefinitionKey, "PolicySolicitOpinionProcessKey10")) {
// 责任单位审批
// 查询当前责任单位被分配出去的责任人对接人,根据责任对接人获取分配出去的责任人,获取这些责任人填写的征求意见列表
List<String> userIdList = new ArrayList<>();
QueryWrapper<FlowUserRelInfo> furQueryWrap = new QueryWrapper<>();
furQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, prcId);
furQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType, FlowTypeEnum.ZCZQYJLC.getValue());
furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType, "zrdjrfpzrdw"); // 责任对接人分配责任单位审批
furQueryWrap.lambda().eq(FlowUserRelInfo::getUserId, currentUserId);
List<FlowUserRelInfo> zrdwflowUserRelInfoList = this.flowUserRelInfoService.list(furQueryWrap);
if (CollectionUtils.isNotEmpty(zrdwflowUserRelInfoList)) {
List<String> zrdjrUserIdList = zrdwflowUserRelInfoList.stream().map(FlowUserRelInfo::getParentUserId).distinct().collect(Collectors.toList());
userIdList.addAll(zrdjrUserIdList);
QueryWrapper<FlowUserRelInfo> zrdjrQueryWrap = new QueryWrapper<>();
zrdjrQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, prcId);
zrdjrQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType, FlowTypeEnum.ZCZQYJLC.getValue());
zrdjrQueryWrap.lambda().eq(FlowUserRelInfo::getDataType, "zrdjrfpzrr"); // 责任对接人分配责任人
zrdjrQueryWrap.lambda().in(FlowUserRelInfo::getParentUserId, zrdjrUserIdList);
List<FlowUserRelInfo> zrdjrFlowUserRelInfoList = this.flowUserRelInfoService.list(zrdjrQueryWrap);
if (CollectionUtils.isNotEmpty(zrdjrFlowUserRelInfoList)) {
userIdList.addAll(zrdjrFlowUserRelInfoList.stream().map(FlowUserRelInfo::getUserId).distinct().collect(Collectors.toList()));
}
} else {
userIdList.add("设置一个无法满足的条件");
}
psoEoQueryWrap.lambda().in(PolicySolicitOpinionEO::getCreateUserId, userIdList);
}
psoEoQueryWrap.orderByAsc("create_time");
result = this.list(psoEoQueryWrap);
return result;
}
}
@@ -0,0 +1,36 @@
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.ZchgxxmscCpghbDataDetailEO;
import com.ydw.bat.wkflow.business_main.datas.mapper.ZchgxxmscCpghbDataDetailEOMapper;
import com.ydw.bat.wkflow.business_main.datas.service.IZchgxxmscCpghbDataDetailEOService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class ZchgxxmscCpghbDataDetailEOServiceImpl extends ServiceImpl<ZchgxxmscCpghbDataDetailEOMapper, ZchgxxmscCpghbDataDetailEO> implements IZchgxxmscCpghbDataDetailEOService {
@Override
public void batchInsert(List<ZchgxxmscCpghbDataDetailEO> zchgxxmscCpghbDataDetailEOList) {
if (CollectionUtils.isNotEmpty(zchgxxmscCpghbDataDetailEOList)) {
this.saveBatch(zchgxxmscCpghbDataDetailEOList);
}
}
@Override
public List<ZchgxxmscCpghbDataDetailEO> queryZchgxxmscCpghbDataDetailEOList(List<String> zchgxxmscCpghbDataIdList) {
List<ZchgxxmscCpghbDataDetailEO> result = new ArrayList<>();
if (CollectionUtils.isNotEmpty(zchgxxmscCpghbDataIdList)) {
zchgxxmscCpghbDataIdList = zchgxxmscCpghbDataIdList.stream().distinct().collect(Collectors.toList());
QueryWrapper<ZchgxxmscCpghbDataDetailEO> cpghbDataDetailQueryWrap = new QueryWrapper<>();
cpghbDataDetailQueryWrap.lambda().in(ZchgxxmscCpghbDataDetailEO::getZchgxxmscCpghbDataId,zchgxxmscCpghbDataIdList);
result = this.list(cpghbDataDetailQueryWrap);
}
return result;
}
}
@@ -0,0 +1,134 @@
package com.ydw.bat.wkflow.business_main.datas.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
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.FlowUserRelInfo;
import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscCpghbDataEO;
import com.ydw.bat.wkflow.business_main.datas.mapper.ZchgxxmscCpghbDataEOMapper;
import com.ydw.bat.wkflow.business_main.datas.service.IFlowUserRelInfoService;
import com.ydw.bat.wkflow.business_main.datas.service.IZchgxxmscCpghbDataDetailEOService;
import com.ydw.bat.wkflow.business_main.datas.service.IZchgxxmscCpghbDataEOService;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class ZchgxxmscCpghbDataEOServiceImpl extends ServiceImpl<ZchgxxmscCpghbDataEOMapper, ZchgxxmscCpghbDataEO> implements IZchgxxmscCpghbDataEOService {
@Autowired
private IFlowUserRelInfoService flowUserRelInfoService;
@Autowired
private IZchgxxmscCpghbDataDetailEOService zchgxxmscCpghbDataDetailEOService;
@Override
public void batchInsert(JSONObject json) {
String currentUserId = json.getString("currentUserId");
String prcId = json.getString("prcId");
String removeIds = json.getString("removeIds");
JSONObject jsonForm = json.getJSONObject("form");
if (StringUtils.isNotEmpty(removeIds)) {
List<String> removeIdList = Arrays.asList(removeIds.split(","));
this.removeByIds(removeIdList);
}
JSONArray cpghbDataListArr = jsonForm.getJSONArray("cpghbDataList");
List<ZchgxxmscCpghbDataEO> addZchgxxmscCpghbDataEOList = new ArrayList<>();
List<ZchgxxmscCpghbDataEO> updateZchgxxmscCpghbDataEOList = new ArrayList<>();
ZchgxxmscCpghbDataEO zchgxxmscCpghbDataEO = null;
for (Object cpghbData : cpghbDataListArr) {
zchgxxmscCpghbDataEO = JSONObject.parseObject(JSONObject.toJSONString(cpghbData), ZchgxxmscCpghbDataEO.class);
zchgxxmscCpghbDataEO.setPrcId(prcId);
if (StringUtils.isEmpty(zchgxxmscCpghbDataEO.getId())) {
zchgxxmscCpghbDataEO.setId(UUID.randomUUID().toString());
zchgxxmscCpghbDataEO.setZrrUserId(currentUserId);
zchgxxmscCpghbDataEO.setCreateUserId(currentUserId);
zchgxxmscCpghbDataEO.setCreateTime(new Date());
addZchgxxmscCpghbDataEOList.add(zchgxxmscCpghbDataEO);
} else {
zchgxxmscCpghbDataEO.setModifyUserId(currentUserId);
zchgxxmscCpghbDataEO.setModifyTime(new Date());
updateZchgxxmscCpghbDataEOList.add(zchgxxmscCpghbDataEO);
}
}
if (CollectionUtils.isNotEmpty(addZchgxxmscCpghbDataEOList)) {
this.saveBatch(addZchgxxmscCpghbDataEOList);
}
if (CollectionUtils.isNotEmpty(updateZchgxxmscCpghbDataEOList)) {
this.updateBatchById(updateZchgxxmscCpghbDataEOList);
}
}
@Override
public List<ZchgxxmscCpghbDataEO> queryZchgxxmscCpghbDataEOList(Map<String, Object> params) {
List<ZchgxxmscCpghbDataEO> result = new ArrayList<>();
String taskDefinitionKey = (String) params.get("taskDefinitionKey");
String currentUserId = (String) params.get("currentUserId");
String prcId = (String) params.get("pId");
QueryWrapper<ZchgxxmscCpghbDataEO> cpghbEoQueryWrap = new QueryWrapper<>();
cpghbEoQueryWrap.lambda().eq(ZchgxxmscCpghbDataEO::getPrcId, prcId);
if (StringUtils.equals(taskDefinitionKey, "PolicyComplianceProgramReviewProcessKey8")) {
// 责任人处理
cpghbEoQueryWrap.lambda().eq(ZchgxxmscCpghbDataEO::getZrrUserId, currentUserId);
} else if (StringUtils.equals(taskDefinitionKey, "PolicyComplianceProgramReviewProcessKey9")) {
// 责任对接人汇总
// 查询当前责任对接人分配出去的责任人,获取这些责任人填写的数据列表
List<String> userIdList = new ArrayList<>();
userIdList.add(currentUserId);
QueryWrapper<FlowUserRelInfo> furQueryWrap = new QueryWrapper<>();
furQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, prcId);
furQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType, FlowTypeEnum.ZCHGXXMSCLC.getValue());
furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType, "zrdjrfpzrr"); // 责任对接人分配责任人
furQueryWrap.lambda().eq(FlowUserRelInfo::getParentUserId, currentUserId);
List<FlowUserRelInfo> zrdjrFlowUserRelInfoList = this.flowUserRelInfoService.list(furQueryWrap);
if (CollectionUtils.isNotEmpty(zrdjrFlowUserRelInfoList)) {
userIdList.addAll(zrdjrFlowUserRelInfoList.stream().map(FlowUserRelInfo::getUserId).distinct().collect(Collectors.toList()));
}
cpghbEoQueryWrap.lambda().in(ZchgxxmscCpghbDataEO::getZrrUserId, userIdList);
} else if (StringUtils.equals(taskDefinitionKey, "PolicyComplianceProgramReviewProcessKey10")) {
// 责任单位审批
// 查询当前责任单位被分配出去的责任人对接人,根据责任对接人获取分配出去的责任人,获取这些责任人填写的数据列表
List<String> userIdList = new ArrayList<>();
QueryWrapper<FlowUserRelInfo> furQueryWrap = new QueryWrapper<>();
furQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, prcId);
furQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType, FlowTypeEnum.ZCHGXXMSCLC.getValue());
furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType, "zrdjrfpzrdw"); // 责任对接人分配责任单位审批
furQueryWrap.lambda().eq(FlowUserRelInfo::getUserId, currentUserId);
List<FlowUserRelInfo> zrdwflowUserRelInfoList = this.flowUserRelInfoService.list(furQueryWrap);
if (CollectionUtils.isNotEmpty(zrdwflowUserRelInfoList)) {
List<String> zrdjrUserIdList = zrdwflowUserRelInfoList.stream().map(FlowUserRelInfo::getParentUserId).distinct().collect(Collectors.toList());
userIdList.addAll(zrdjrUserIdList);
QueryWrapper<FlowUserRelInfo> zrdjrQueryWrap = new QueryWrapper<>();
zrdjrQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, prcId);
zrdjrQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType, FlowTypeEnum.ZCHGXXMSCLC.getValue());
zrdjrQueryWrap.lambda().eq(FlowUserRelInfo::getDataType, "zrdjrfpzrr"); // 责任对接人分配责任人
zrdjrQueryWrap.lambda().in(FlowUserRelInfo::getParentUserId, zrdjrUserIdList);
List<FlowUserRelInfo> zrdjrFlowUserRelInfoList = this.flowUserRelInfoService.list(zrdjrQueryWrap);
if (CollectionUtils.isNotEmpty(zrdjrFlowUserRelInfoList)) {
userIdList.addAll(zrdjrFlowUserRelInfoList.stream().map(FlowUserRelInfo::getUserId).distinct().collect(Collectors.toList()));
}
} else {
userIdList.add("设置一个无法满足的条件");
}
cpghbEoQueryWrap.lambda().in(ZchgxxmscCpghbDataEO::getZrrUserId, userIdList);
}
cpghbEoQueryWrap.orderByAsc("create_time");
result = this.list(cpghbEoQueryWrap);
return result;
}
}
@@ -0,0 +1,95 @@
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.FlowUserRelInfo;
import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscSybDataEO;
import com.ydw.bat.wkflow.business_main.datas.mapper.ZchgxxmscSybDataEOMapper;
import com.ydw.bat.wkflow.business_main.datas.service.IFlowUserRelInfoService;
import com.ydw.bat.wkflow.business_main.datas.service.IZchgxxmscSybDataEOService;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class ZchgxxmscSybDataEOServiceImpl extends ServiceImpl<ZchgxxmscSybDataEOMapper, ZchgxxmscSybDataEO> implements IZchgxxmscSybDataEOService {
@Autowired
private IFlowUserRelInfoService flowUserRelInfoService;
@Override
public void batchInsert(List<ZchgxxmscSybDataEO> zchgxxmscSybDataEOList) {
if (CollectionUtils.isNotEmpty(zchgxxmscSybDataEOList)) {
this.saveBatch(zchgxxmscSybDataEOList);
}
}
@Override
public List<ZchgxxmscSybDataEO> queryZchgxxmscSybDataEOList(Map<String, Object> params) {
List<ZchgxxmscSybDataEO> result = new ArrayList<>();
String taskDefinitionKey = (String) params.get("taskDefinitionKey");
String currentUserId = (String) params.get("currentUserId");
String prcId = (String) params.get("pId");
QueryWrapper<ZchgxxmscSybDataEO> sybEoQueryWrap = new QueryWrapper<>();
sybEoQueryWrap.lambda().eq(ZchgxxmscSybDataEO::getPrcId, prcId);
if (StringUtils.equals(taskDefinitionKey, "PolicyComplianceProgramReviewProcessKey8")) {
// 责任人处理
sybEoQueryWrap.lambda().eq(ZchgxxmscSybDataEO::getZrrUserId, currentUserId);
} else if (StringUtils.equals(taskDefinitionKey, "PolicyComplianceProgramReviewProcessKey9")) {
// 责任对接人汇总
// 查询当前责任对接人分配出去的责任人,获取这些责任人填写的数据列表
List<String> userIdList = new ArrayList<>();
userIdList.add(currentUserId);
QueryWrapper<FlowUserRelInfo> furQueryWrap = new QueryWrapper<>();
furQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, prcId);
furQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType, FlowTypeEnum.ZCHGXXMSCLC.getValue());
furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType, "zrdjrfpzrr"); // 责任对接人分配责任人
furQueryWrap.lambda().eq(FlowUserRelInfo::getParentUserId, currentUserId);
List<FlowUserRelInfo> zrdjrFlowUserRelInfoList = this.flowUserRelInfoService.list(furQueryWrap);
if (CollectionUtils.isNotEmpty(zrdjrFlowUserRelInfoList)) {
userIdList.addAll(zrdjrFlowUserRelInfoList.stream().map(FlowUserRelInfo::getUserId).distinct().collect(Collectors.toList()));
}
sybEoQueryWrap.lambda().in(ZchgxxmscSybDataEO::getZrrUserId, userIdList);
} else if (StringUtils.equals(taskDefinitionKey, "PolicyComplianceProgramReviewProcessKey10")) {
// 责任单位审批
// 查询当前责任单位被分配出去的责任人对接人,根据责任对接人获取分配出去的责任人,获取这些责任人填写的数据列表
List<String> userIdList = new ArrayList<>();
QueryWrapper<FlowUserRelInfo> furQueryWrap = new QueryWrapper<>();
furQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, prcId);
furQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType, FlowTypeEnum.ZCHGXXMSCLC.getValue());
furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType, "zrdjrfpzrdw"); // 责任对接人分配责任单位审批
furQueryWrap.lambda().eq(FlowUserRelInfo::getUserId, currentUserId);
List<FlowUserRelInfo> zrdwflowUserRelInfoList = this.flowUserRelInfoService.list(furQueryWrap);
if (CollectionUtils.isNotEmpty(zrdwflowUserRelInfoList)) {
List<String> zrdjrUserIdList = zrdwflowUserRelInfoList.stream().map(FlowUserRelInfo::getParentUserId).distinct().collect(Collectors.toList());
userIdList.addAll(zrdjrUserIdList);
QueryWrapper<FlowUserRelInfo> zrdjrQueryWrap = new QueryWrapper<>();
zrdjrQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, prcId);
zrdjrQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType, FlowTypeEnum.ZCHGXXMSCLC.getValue());
zrdjrQueryWrap.lambda().eq(FlowUserRelInfo::getDataType, "zrdjrfpzrr"); // 责任对接人分配责任人
zrdjrQueryWrap.lambda().in(FlowUserRelInfo::getParentUserId, zrdjrUserIdList);
List<FlowUserRelInfo> zrdjrFlowUserRelInfoList = this.flowUserRelInfoService.list(zrdjrQueryWrap);
if (CollectionUtils.isNotEmpty(zrdjrFlowUserRelInfoList)) {
userIdList.addAll(zrdjrFlowUserRelInfoList.stream().map(FlowUserRelInfo::getUserId).distinct().collect(Collectors.toList()));
}
} else {
userIdList.add("设置一个无法满足的条件");
}
sybEoQueryWrap.lambda().in(ZchgxxmscSybDataEO::getZrrUserId, userIdList);
}
sybEoQueryWrap.orderByAsc("create_time");
result = this.list(sybEoQueryWrap);
return result;
}
}
@@ -59,4 +59,19 @@ public class CreateMQService {
}
}
/**
* @Description: 发送OA待阅
* @author: wangzhijiang
* @date: 2023-10-27
* @Param: @param busProcessNew
* @return:
*/
public void sendToBeReadMq(BusProcessNew busProcessNew) {
if (oaFlag) {
//发送消息队列
this.rabbitTemplate.convertAndSend("sendToBeRead-exchange_MQ_GSAR_RELEASE", "sendToBeRead-key_MQ_GSAR_RELEASE", busProcessNew);
}
}
}
@@ -0,0 +1,171 @@
package com.ydw.bat.wkflow.business_mq.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.rabbitmq.client.Channel;
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.mapper.SendTodoLogMapper;
import com.ydw.bat.wkflow.business_oa.utils.EmailUtils;
import com.ydw.bat.wkflow.business_oa.webService.service.WebServiceOAService;
import com.ydw.bat.wkflow.business_oa.webService.todoResult.NotifyTodoAppResult;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.amqp.support.AmqpHeaders;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.Message;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Component
public class SendToBeReadMQService {
private static final Logger logger = LoggerFactory.getLogger(SendToBeReadMQService.class);
@Autowired
private CreateMQService convertMq;
@Autowired
private EmailUtils emailUtils;
@Autowired
private WebServiceOAService webServiceOAService;
@Autowired
private SendTodoLogMapper sendTodoLogMapper;
@Autowired
private LawsUserInfoService lawsUserInfoService;
@RabbitListener(bindings = @QueueBinding(
value = @Queue(value = "createMQToBeRead_SQ_GSAR_RELEASE", durable = "true"),
exchange = @Exchange(value = "sendToBeRead-exchange_MQ_GSAR_RELEASE", ignoreDeclarationExceptions = "true"),
key = "sendToBeRead-key_MQ_GSAR_RELEASE"))
public void createMQ(BusProcessNew object, Message message, Channel channel) throws Exception {
try {
try {
Thread.sleep(5000);
// 发送OA待阅
insertOrUpdateInfo(object);
} catch (InterruptedException e) {
logger.error(e.toString());
Thread.currentThread().interrupt();
}
} catch (Exception e) {
logger.error("消息队列进入添加数据方法前失败!");
logger.error(e.getMessage(), e);
} finally {
Long tag = (Long) message.getHeaders().get(AmqpHeaders.DELIVERY_TAG);
channel.basicAck(tag, false);
logger.debug("消息确认成功!!!!!!!!!");
}
}
public void insertOrUpdateInfo(BusProcessNew object) throws Exception {
try {
NotifyTodoAppResult todoAppResult = webServiceOAService.sendToBeRead(object);
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
if (todoAppResult.getSIGN().equals("0") || todoAppResult.getMASSAGE().equals("操作成功")) {
QueryWrapper wrapper = new QueryWrapper();
wrapper.eq("TODO_ID", object.getId());
wrapper.eq("MSG_TYPE", "0");
List<SendTodoLog> list = sendTodoLogMapper.selectList(wrapper);
if (!list.isEmpty()) {
SendTodoLog sendTodoLog = list.get(0);
sendTodoLog.setMsgStatus("2");
sendTodoLog.setOperMesg(todoAppResult.getMASSAGE());
sendTodoLog.setCreateTime(sdf.format(new Date()));
sendTodoLog.setUpdateTime(sdf.format(new Date()));
sendTodoLogMapper.updateById(sendTodoLog);
} else {
sendTodoSave(object, sdf, "2", todoAppResult.getMASSAGE());
}
} else {
// 重试发送待办
logger.info("重试发送待办");
this.restartSendMq(object, todoAppResult.getMASSAGE());
}
} catch (Exception e) {
logger.error(e.getMessage(), e);
this.restartSendMq(object, e.getMessage());
}
}
public void restartSendMq(BusProcessNew object, String operMesg) throws Exception {
QueryWrapper wrapper = new QueryWrapper();
wrapper.eq("TODO_ID", object.getId());
wrapper.eq("MSG_TYPE", "0");
List<SendTodoLog> list = sendTodoLogMapper.selectList(wrapper);
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
if (!list.isEmpty()) {
SendTodoLog sendTodoLog = list.get(0);
int againNumNew = Integer.valueOf(sendTodoLog.getErrNum());
if (againNumNew >= 6) {
ResponseMessage<UserVO> byId = lawsUserInfoService.getById("WY8J26MH23");
// 发送待办 或 发送给管理员邮箱
List<String> emailList = new ArrayList<>();
// 占时指定admin用户邮箱
emailList.add(byId == null ? "" : (byId.getData().getEmail() == null ? "" : byId.getData().getEmail()));
String[] arr = emailList.toArray(new String[emailList.size()]);
String title = "OA请求发送失败6次";
String countText = "<div style=\"font-size:16px\" ><div><p>您好:</p></div>" +
"<span style=\"color:blue;\" >" + "OA请求发送失败6次,请线下协调处理" + "</span></div>";
emailUtils.sendMsgFeign(arr, title, countText);
logger.info("发送失败6次,发送给管理员邮箱");
} else {
restSendTodo(object, sdf, sendTodoLog, againNumNew, operMesg);
}
} else {
sendTodoSave(object, sdf, "3", operMesg);
}
}
private void restSendTodo(BusProcessNew object, SimpleDateFormat sdf, SendTodoLog sendTodoLog, int againNumNew, String operMesg) throws Exception {
// 失败次数小于6次,放入失败队列延迟消费
if ((againNumNew < 6)) {
Thread.sleep(3000);
logger.info("发送失败连续持续" + againNumNew + "次,存入延迟重试队列!!!!!!!!!");
} else {
logger.info("发送失败连续持续" + againNumNew + "次!!");
}
sendTodoLog.setErrNum(sendTodoLog.getErrNum() + 1);
sendTodoLog.setUpdateTime(sdf.format(new Date()));
sendTodoLog.setOperMesg(operMesg);
sendTodoLogMapper.updateById(sendTodoLog);
convertMq.sendTodoMq(object);
logger.info("已重新加入延迟队列");
}
private void sendTodoSave(BusProcessNew object, SimpleDateFormat sdf, String s, String operMesg) {
SendTodoLog sendTodoLog = new SendTodoLog();
sendTodoLog.setMsgType("0");
sendTodoLog.setTodoId(object.getId());
sendTodoLog.setUserId(object.getUserId());
JSONObject json = JSONObject.fromObject(object);
sendTodoLog.setMesg(json.toString());
sendTodoLog.setMsgStatus(s);
sendTodoLog.setErrNum(1);
sendTodoLog.setOperMesg(operMesg);
sendTodoLog.setCreateTime(sdf.format(new Date()));
sendTodoLog.setUpdateTime(sdf.format(new Date()));
sendTodoLogMapper.insert(sendTodoLog);
if (s.equals("2")) {
logger.info("发送成功,存入OA日志");
} else {
convertMq.sendToBeReadMq(object);
logger.info("已重新加入延迟队列");
}
}
}
@@ -24,4 +24,6 @@ public interface WebServiceOAService {
NotifyTodoAppDeleteResult setTodoDelete(String object) throws Exception;
NotifyTodoAppResult sendToBeRead(BusProcessNew busProcessNew) throws Exception;
}
@@ -492,5 +492,69 @@ public class WebServiceOAServiceImpl implements WebServiceOAService {
}
}
}
@Override
@Async
public NotifyTodoAppResult sendToBeRead(BusProcessNew busProcessNew) throws Exception {
NotifyTodoAppResult notifyTodoAppResult = new NotifyTodoAppResult();
String result = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
JsonSend jsonSend = new JsonSend();
HEAD head = new HEAD();
head.setACCOUNT("OA");
head.setBIZTRANSACTIONID("SYC_161320210206133219");
head.setCONSUMER("SPRS");
head.setCOUNT("1");
head.setPASSWORD("oa201611241710");
head.setSRVLEVEL("1");
List<Object> list = new ArrayList<>();
NotifyTodoSendContext notifyTodoSendContext = new NotifyTodoSendContext();
// 待办来源的系统
notifyTodoSendContext.setAppName("SPRS");
//创建时间
notifyTodoSendContext.setCreateTime(sdf.format(new Date()));
// 待办在原系统唯一标识
notifyTodoSendContext.setModelId(busProcessNew.getId());
//模块名称
notifyTodoSendContext.setModelName(busProcessNew.getTaskInfo());
//标题
notifyTodoSendContext.setSubject(busProcessNew.getPrcName());
//地址
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("PRC_ID", busProcessNew.getPId());
BusProcessName busProcessName = iBusProcessNameService.getOne(queryWrapper);
String linkParam = "&taskIds=" + busProcessNew.getTaskId() + "&prcId=" + busProcessNew.getPId() + "&prcNum=" + busProcessName.getPrcNum() + "&prcName=" + busProcessName.getPrcName();
notifyTodoSendContext.setLink(webUrl + busProcessNew.getLink() + linkParam);
//待办类型
notifyTodoSendContext.setType("2");
Map<String, Object> map = new HashMap<>();
ResponseMessage<UserVO> byId = lawsUserInfoService.getById(busProcessNew.getUserId());
map.put("LoginName", byId == null ? "" : byId.getData().getAccount());
JSONObject jsonLoginName = new JSONObject(map);
notifyTodoSendContext.setTargets(jsonLoginName.toJSONString());
list.add(notifyTodoSendContext);
jsonSend.setHEAD(head);
jsonSend.setLIST(list);
net.sf.json.JSONObject json = net.sf.json.JSONObject.fromObject(jsonSend);
Map<String, String> mapCtr = new TreeMap<>();
mapCtr.put("Authorization", credentials);
log.info("处理完文件数据,开始请求发送待办接口数据:【" + sdf.format(new Date()) + "");
log.info("sendTodo当前处理的文件数据(josnSend):" + jsonSend.toString());
log.info("sendTodo当前处理的文件数据(notifyTodoSendContext):" + notifyTodoSendContext.toString());
result = okHttpUtil.postForJson("https://fesbnew.foton.com.cn/WP_FOTON_FSOA/APP_DOC_SERVICES/Proxy_Services/TA_OA/DOC_SYC_1019_SendTodo_PS", json.toString(), mapCtr);
log.info("请求发送待办接口完毕,返回响应状态:【" + sdf.format(new Date()) + "");
if (!result.contains("操作成功")) {
log.error("请求发送待办接口出现异常:" + result);
log.info("sendTodo当前处理的文件数据(josnSend):" + jsonSend.toString());
log.info("sendTodo当前处理的文件数据(notifyTodoSendContext):" + notifyTodoSendContext.toString());
notifyTodoAppResult.setSIGN("1");
notifyTodoAppResult.setMASSAGE(result);
} else {
log.info("okHttp请求发送待办接口成功结果:" + result);
notifyTodoAppResult = (NotifyTodoAppResult) net.sf.json.JSONObject.toBean(net.sf.json.JSONObject.fromObject(result), NotifyTodoAppResult.class);
}
return notifyTodoAppResult;
}
}
@@ -0,0 +1,78 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
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.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils;
public class PolicyComplianceProgramReviewProcess10After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
String approvalFlag = jsonForm.getString("approvalFlag");
if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) {
// 责任部门 子流程总数
int zrSubProcessCount = (int) delegateTask.getVariable("zrSubProcessCount");
// 责任部门 子流程完成总数
int zrSubProcessFinishCount = (int) delegateTask.getVariable("zrSubProcessFinishCount");
zrSubProcessFinishCount = zrSubProcessFinishCount + 1;
delegateTask.setVariable("zrSubProcessFinishCount",zrSubProcessFinishCount);
// 如果该流程中的 责任部门子流程都已完成,给管理员节点分配数据。
if (zrSubProcessCount == zrSubProcessFinishCount) {
String glyUserId = jsonForm.getString("glyUserId");
delegateTask.setVariable("glyUserId",glyUserId);
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(glyUserId);
busBean.save(busProcessNewNext);
}
} else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) {
String djrUserId = (String) delegateTask.getVariable("djrUserId");
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(djrUserId);
busBean.save(busProcessNewNext);
}
// 存储当前节点意见
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);
delegateTask.setVariable("approvalFlag",approvalFlag);
}
}
@@ -0,0 +1,38 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicyComplianceProgramReviewProcess10Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,86 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
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.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class PolicyComplianceProgramReviewProcess11After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
String approvalFlag = jsonForm.getString("approvalFlag");
if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) {
String shr2UserIds = jsonForm.getString("shr2UserIds");
List<String> nextUserList = Arrays.asList(shr2UserIds.split(","));
if (CollectionUtils.isNotEmpty(nextUserList)) {
List<BusProcessNew> addBusProcessNewList = new ArrayList<>();
for (String nextUser : nextUserList) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
addBusProcessNewList.add(busProcessNewNext);
}
busBean.saveBatch(addBusProcessNewList);
// 配置多实例
delegateTask.setVariable("shr2UserIdList", nextUserList);
delegateTask.setVariable("shr2UserCount", nextUserList.size());
delegateTask.setVariable("shr2UserPassCount", 0);
delegateTask.setVariable("shr2UserOverruleCount", 0);
}
} else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) {
String pzr1UserId = jsonForm.getString("pzr1UserId");
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(pzr1UserId);
busBean.save(busProcessNewNext);
delegateTask.setVariable("pzr1UserId", pzr1UserId);
}
// 存储当前节点意见
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);
delegateTask.setVariable("approvalFlag", approvalFlag);
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicyComplianceProgramReviewProcess11Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,108 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService;
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.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.business_main.datas.service.IPolicySolicitOpinionEOService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class PolicyComplianceProgramReviewProcess12After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class);
IPolicySolicitOpinionEOService policySolicitOpinionEOService = SpringContextUtil.getBean(IPolicySolicitOpinionEOService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
String approvalFlag = jsonForm.getString("approvalFlag");
if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) {
int shr2UserPassCount = (int) delegateTask.getVariable("shr2UserPassCount");
delegateTask.setVariable("shr2UserPassCount", shr2UserPassCount + 1);
String sdr2UserIds = jsonForm.getString("sdr2UserIds");
List<String> nextUserList = Arrays.asList(sdr2UserIds.split(","));
delegateTask.setVariable("sdr2UserIdList", nextUserList);
boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey(
delegateTask.getProcessInstanceId(),
delegateTask.getTaskDefinitionKey(),
delegateTask.getId()
);
if (!existTaskFlag) {
if (CollectionUtils.isNotEmpty(nextUserList)) {
List<BusProcessNew> addBusProcessNewList = new ArrayList<>();
for (String nextUser : nextUserList) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
addBusProcessNewList.add(busProcessNewNext);
}
busBean.saveBatch(addBusProcessNewList);
// 配置多实例
delegateTask.setVariable("sdr2UserCount", nextUserList.size());
delegateTask.setVariable("sdr2UserPassCount", 0);
delegateTask.setVariable("sdr2UserOverruleCount", 0);
}
}
} else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) {
String pzr1UserId = jsonForm.getString("pzr1UserId");
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(pzr1UserId);
busBean.save(busProcessNewNext);
delegateTask.setVariable("pzr1UserId", pzr1UserId);
delegateTask.setVariable("shr2UserOverruleCount", 1);
}
// 保存责任人填写的征求意见信息
// object.put("currentUserId",delegateTask.getAssignee());
// object.put("prcId",delegateTask.getProcessInstanceId());
// policySolicitOpinionEOService.batchInsert(object);
// 存储当前节点意见
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);
delegateTask.setVariable("approvalFlag", approvalFlag);
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicyComplianceProgramReviewProcess12Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,87 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService;
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.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class PolicyComplianceProgramReviewProcess13After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
String approvalFlag = jsonForm.getString("approvalFlag");
if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) {
int sdr2UserPassCount = (int) delegateTask.getVariable("sdr2UserPassCount");
delegateTask.setVariable("sdr2UserPassCount", sdr2UserPassCount + 1);
boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey(
delegateTask.getProcessInstanceId(),
delegateTask.getTaskDefinitionKey(),
delegateTask.getId()
);
if (!existTaskFlag) {
String pzr2UserId = jsonForm.getString("pzr2UserId");
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(pzr2UserId);
busBean.save(busProcessNewNext);
delegateTask.setVariable("pzr2UserId", pzr2UserId);
}
} else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) {
String pzr1UserId = jsonForm.getString("pzr1UserId");
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(pzr1UserId);
busBean.save(busProcessNewNext);
delegateTask.setVariable("pzr1UserId", pzr1UserId);
delegateTask.setVariable("sdr2UserOverruleCount", 1);
}
// 存储当前节点意见
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);
delegateTask.setVariable("approvalFlag", approvalFlag);
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicyComplianceProgramReviewProcess13Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,85 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService;
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.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class PolicyComplianceProgramReviewProcess14After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
String approvalFlag = jsonForm.getString("approvalFlag");
if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) {
String csrUserIds = jsonForm.getString("csrUserIds");
List<String> nextUserList = Arrays.asList(csrUserIds.split(","));
if (CollectionUtils.isNotEmpty(nextUserList)) {
List<BusProcessNew> addBusProcessNewList = new ArrayList<>();
for (String nextUser : nextUserList) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
addBusProcessNewList.add(busProcessNewNext);
}
busBean.saveBatch(addBusProcessNewList);
// 配置多实例
delegateTask.setVariable("csrUserIdList", nextUserList);
}
} else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) {
String pzr1UserId = jsonForm.getString("pzr1UserId");
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(pzr1UserId);
busBean.save(busProcessNewNext);
delegateTask.setVariable("pzr1UserId", pzr1UserId);
}
// 存储当前节点意见
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);
delegateTask.setVariable("approvalFlag",approvalFlag);
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicyComplianceProgramReviewProcess14Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,95 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService;
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_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
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.Arrays;
import java.util.Date;
import java.util.List;
import java.util.UUID;
public class PolicyComplianceProgramReviewProcess15After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class);
IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
// TODO 等需求确认,提交后需要做什么操作。
JSONObject jsonForm = object.getJSONObject("form");
String csr2UserIds = jsonForm.getString("csr2UserIds");
if (StringUtils.isNotEmpty(csr2UserIds)) {
List<String> csr2UserIdList = Arrays.asList(csr2UserIds.split(","));
for (String csr2UserId : csr2UserIdList) {
// 发送 oa 待阅
BusProcessNew sendToBeReadBpn = new BusProcessNew();
sendToBeReadBpn.setId(UUID.randomUUID().toString().substring(0, 20));
sendToBeReadBpn.setTaskId(delegateTask.getId());
sendToBeReadBpn.setTaskInfo(delegateTask.getName());
sendToBeReadBpn.setLink(
FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" +
FlowTypeEnum.ZCHGXXMSCLC.getValue() +
"&taskDefinitionKey=PolicyComplianceProgramReviewProcessKey11" +
"&operate=view"
);
sendToBeReadBpn.setTaskInfo(delegateTask.getName());
sendToBeReadBpn.setUserId(csr2UserId);
sendToBeReadBpn.setPrcName("重点认证标准/政策合规性项目审查流程");
sendToBeReadBpn.setPId(delegateTask.getProcessInstanceId());
oaService.sendToBeReadMq(sendToBeReadBpn);
}
}
boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey(
delegateTask.getProcessInstanceId(),
delegateTask.getTaskDefinitionKey(),
delegateTask.getId()
);
if (!existTaskFlag) {
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
QueryWrapper bpnQueryWrap = new QueryWrapper();
bpnQueryWrap.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName bpn = busProcessNameService.getOne(bpnQueryWrap);
if (bpn != null) {
bpn.setOverTime(OVERTIME);
busProcessNameService.saveOrUpdate(bpn);
}
}
// 存储当前节点意见
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);
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicyComplianceProgramReviewProcess15Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,97 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
public class PolicyComplianceProgramReviewProcess1After 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<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
delegateTask.setVariable("objectJson", object);
// 审核人1用户ids
String shr1UserIds = jsonForm.getString("shr1UserIds");
List<String> nextUserList = Arrays.asList(shr1UserIds.split(","));
//截止时间 流程描述 创建人
String user = object.getString("prcCreateUser");
String username = object.getString("prcCreateUserName");
String prcName = "重点认证标准/政策合规性项目审查流程";
QueryWrapper bpnQueryWrap = new QueryWrapper();
bpnQueryWrap.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName bpn = busProcessNameService.getOne(bpnQueryWrap);
if (bpn != null) {
bpn.setPrcType(FlowTypeEnum.ZCHGXXMSCLC.getValue());
bpn.setPrcName(prcName);
bpn.setCreatUser(user);
bpn.setCreatUserName(username);
Date approvalUnitDeadline = jsonForm.getDate("approvalUnitDeadline");
bpn.setResponsibleUnitDeadlineDate(approvalUnitDeadline);
busProcessNameService.saveOrUpdate(bpn);
}
// 存储当前节点意见
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);
if (CollectionUtils.isNotEmpty(nextUserList)) {
List<BusProcessNew> addBusProcessNewList = new ArrayList<>();
for (String nextUser : nextUserList) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
addBusProcessNewList.add(busProcessNewNext);
}
busBean.saveBatch(addBusProcessNewList);
// 配置多实例
delegateTask.setVariable("shr1UserIdList", nextUserList);
delegateTask.setVariable("shr1UserCount", nextUserList.size());
delegateTask.setVariable("shr1UserPassCount", 0);
delegateTask.setVariable("shr1UserOverruleCount", 0);
}
delegateTask.setVariable("fqrUserId", delegateTask.getAssignee());
}
}
@@ -0,0 +1,35 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.util.List;
public class PolicyComplianceProgramReviewProcess1Before 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.isNull("TASK_ID");
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,97 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService;
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.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class PolicyComplianceProgramReviewProcess2After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
String approvalFlag = jsonForm.getString("approvalFlag");
if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) {
int shr1UserPassCount = (int) delegateTask.getVariable("shr1UserPassCount");
delegateTask.setVariable("shr1UserPassCount", shr1UserPassCount + 1);
boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey(
delegateTask.getProcessInstanceId(),
delegateTask.getTaskDefinitionKey(),
delegateTask.getId()
);
if (!existTaskFlag) {
// 审定人1用户ids
String sdr1UserIds = jsonForm.getString("sdr1UserIds");
List<String> nextUserList = Arrays.asList(sdr1UserIds.split(","));
if (CollectionUtils.isNotEmpty(nextUserList)) {
List<BusProcessNew> addBusProcessNewList = new ArrayList<>();
for (String nextUser : nextUserList) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
addBusProcessNewList.add(busProcessNewNext);
}
busBean.saveBatch(addBusProcessNewList);
// 配置多实例
delegateTask.setVariable("sdr1UserIdList", nextUserList);
delegateTask.setVariable("sdr1UserCount",nextUserList.size());
delegateTask.setVariable("sdr1UserPassCount",0);
delegateTask.setVariable("sdr1UserOverruleCount",0);
}
}
} else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNewNext);
delegateTask.setVariable("shr1UserOverruleCount", 1);
}
// 存储当前节点意见
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);
delegateTask.setVariable("approvalFlag",approvalFlag);
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicyComplianceProgramReviewProcess2Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,81 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService;
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.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils;
public class PolicyComplianceProgramReviewProcess4After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
String approvalFlag = jsonForm.getString("approvalFlag");
if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) {
int sdr1UserPassCount = (int) delegateTask.getVariable("sdr1UserPassCount");
delegateTask.setVariable("sdr1UserPassCount", sdr1UserPassCount + 1);
boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey(
delegateTask.getProcessInstanceId(),
delegateTask.getTaskDefinitionKey(),
delegateTask.getId()
);
if (!existTaskFlag) {
String pzr1UserId = jsonForm.getString("pzr1UserId");
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(pzr1UserId);
busBean.save(busProcessNewNext);
delegateTask.setVariable("pzr1UserId",pzr1UserId);
}
} else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNewNext);
delegateTask.setVariable("sdr1UserOverruleCount", 1);
}
// 存储当前节点意见
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);
delegateTask.setVariable("approvalFlag",approvalFlag);
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicyComplianceProgramReviewProcess4Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,107 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
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.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
public class PolicyComplianceProgramReviewProcess5After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
String approvalFlag = jsonForm.getString("approvalFlag");
if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) {
Date approvalUnitDeadline = jsonForm.getDate("approvalUnitDeadline");
String endFlag = "";
// 如果当前日期大于审批单位截止日期,则不走责任对接人子流程
if (new Date().after(approvalUnitDeadline)) {
endFlag = "0";
// 管理员用户id
String glyUserId = jsonForm.getString("glyUserId");
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(glyUserId);
busBean.save(busProcessNewNext);
delegateTask.setVariable("glyUserId",glyUserId);
} else {
endFlag = "1";
// 责任对接人用户id
String djrUserIds = jsonForm.getString("djrUserIds");
List<String> nextUserList = Arrays.asList(djrUserIds.split(","));
if (CollectionUtils.isNotEmpty(nextUserList)) {
List<BusProcessNew> addBusProcessNewList = new ArrayList<>();
for (String nextUser : nextUserList) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
addBusProcessNewList.add(busProcessNewNext);
}
busBean.saveBatch(addBusProcessNewList);
// 配置多实例
delegateTask.setVariable("djrUserIdList", nextUserList);
delegateTask.setVariable("zrSubProcessCount",nextUserList.size());
delegateTask.setVariable("zrSubProcessFinishCount",0);
}
}
delegateTask.setVariable("endFlag",endFlag);
} else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNewNext);
}
// 存储当前节点意见
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);
delegateTask.setVariable("approvalFlag",approvalFlag);
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicyComplianceProgramReviewProcess5Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,137 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
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.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.entity.FlowUserRelInfo;
import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscSybDataEO;
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.IFlowUserRelInfoService;
import com.ydw.bat.wkflow.business_main.datas.service.IZchgxxmscSybDataEOService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import java.util.*;
public class PolicyComplianceProgramReviewProcess7After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
IFlowUserRelInfoService flowUserRelInfoService = SpringContextUtil.getBean(IFlowUserRelInfoService.class);
IZchgxxmscSybDataEOService zchgxxmscSybDataEOService = SpringContextUtil.getBean(IZchgxxmscSybDataEOService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
// 提交方式,如果该字段不为空,则是定时器自动提交 定时器自动提交value:timerAutoSubmit
String submitMethod = object.getString("submitMethod");
if (StringUtils.isEmpty(submitMethod)) {
String zrrUserIds = jsonForm.getString("zrrUserIds");
if (StringUtils.isNotEmpty(zrrUserIds)) {
List<String> nextUserList = Arrays.asList(zrrUserIds.split(","));
if (CollectionUtils.isNotEmpty(nextUserList)) {
// departmentType字段: value: undertaking 事业部 productPlanning 产品规划部
String departmentType = jsonForm.getString("departmentType");
if (StringUtils.equals(departmentType,"undertaking")) {
JSONArray sybDataList = jsonForm.getJSONArray("infoTableDatas");
List<ZchgxxmscSybDataEO> zchgxxmscSybDataEOList = new ArrayList<>();
for (String nextUser : nextUserList) {
ZchgxxmscSybDataEO zchgxxmscSybDataEO = null;
for (Object sybData : sybDataList) {
zchgxxmscSybDataEO = JSONObject.parseObject(JSONObject.toJSONString(sybData),ZchgxxmscSybDataEO.class);
zchgxxmscSybDataEO.setId(UUID.randomUUID().toString());
zchgxxmscSybDataEO.setZrrUserId(nextUser);
zchgxxmscSybDataEO.setPrcId(delegateTask.getProcessInstanceId());
zchgxxmscSybDataEO.setCreateTime(new Date());
zchgxxmscSybDataEOList.add(zchgxxmscSybDataEO);
}
}
zchgxxmscSybDataEOService.batchInsert(zchgxxmscSybDataEOList);
}
List<FlowUserRelInfo> flowUserRelInfoList = new ArrayList<>();
List<BusProcessNew> addBusProcessNewList = new ArrayList<>();
for (String nextUser : nextUserList) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
addBusProcessNewList.add(busProcessNewNext);
FlowUserRelInfo flowUserRelInfo = new FlowUserRelInfo();
flowUserRelInfo.setParentUserId(delegateTask.getAssignee());
flowUserRelInfo.setUserId(nextUser);
flowUserRelInfo.setActiProcInstId(delegateTask.getProcessInstanceId());
flowUserRelInfo.setFlowType(FlowTypeEnum.ZCHGXXMSCLC.getValue());
flowUserRelInfo.setDataType("zrdjrfpzrr"); // 责任对接人分配责任人
flowUserRelInfoList.add(flowUserRelInfo);
}
busBean.saveBatch(addBusProcessNewList);
// 配置多实例
delegateTask.setVariable("zrrUserIdList", nextUserList);
flowUserRelInfoService.saveBatchFlowUserRelInfo(flowUserRelInfoList);
}
}
submitMethod = "pageSubmit";
} else {
// 责任部门 子流程总数
int zrSubProcessCount = (int) delegateTask.getVariable("zrSubProcessCount");
int zrSubProcessFinishCount = (int) delegateTask.getVariable("zrSubProcessFinishCount");
zrSubProcessFinishCount = zrSubProcessFinishCount + 1;
delegateTask.setVariable("zrSubProcessFinishCount", zrSubProcessFinishCount);
// 如果该流程中的 责任部门子流程都已完成,给管理员节点分配数据。
if (zrSubProcessCount == zrSubProcessFinishCount) {
String glyUserId = jsonForm.getString("glyUserId");
delegateTask.setVariable("glyUserId", glyUserId);
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(glyUserId);
busBean.save(busProcessNewNext);
}
submitMethod = "timerAutoSubmit";
}
// 存储当前节点意见
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);
delegateTask.setVariable("submitMethod",submitMethod);
}
}
@@ -0,0 +1,38 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicyComplianceProgramReviewProcess7Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,108 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService;
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.ZchgxxmscSybDataEO;
import com.ydw.bat.wkflow.business_main.datas.service.*;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class PolicyComplianceProgramReviewProcess8After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
IZchgxxmscSybDataEOService zchgxxmscSybDataEOService = SpringContextUtil.getBean(IZchgxxmscSybDataEOService.class);
IZchgxxmscCpghbDataEOService zchgxxmscCpghbDataEOService = SpringContextUtil.getBean(IZchgxxmscCpghbDataEOService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
// 提交方式,如果该字段不为空,则是定时器自动提交 定时器自动提交value:timerAutoSubmit
String submitMethod = object.getString("submitMethod");
if (StringUtils.isEmpty(submitMethod)) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId((String) delegateTask.getVariable("djrUserId"));
busBean.save(busProcessNewNext);
// 保存责任人填写的数据信息
// departmentType字段: value: undertaking 事业部 productPlanning 产品规划部
String departmentType = jsonForm.getString("departmentType");
if (StringUtils.equals(departmentType,"undertaking") && jsonForm.containsKey("sybDataList")) {
JSONArray sybDataListArr = jsonForm.getJSONArray("sybDataList");
List<ZchgxxmscSybDataEO> zchgxxmscSybDataEOList = new ArrayList<>();
ZchgxxmscSybDataEO zchgxxmscSybDataEO = null;
for (Object sybData : sybDataListArr) {
zchgxxmscSybDataEO = JSONObject.parseObject(JSONObject.toJSONString(sybData),ZchgxxmscSybDataEO.class);
zchgxxmscSybDataEO.setModifyTime(new Date());
zchgxxmscSybDataEOList.add(zchgxxmscSybDataEO);
}
zchgxxmscSybDataEOService.updateBatchById(zchgxxmscSybDataEOList);
} else if (StringUtils.equals(departmentType,"productPlanning")) {
// 保存产品规划部的责任人填写的信息
object.put("currentUserId",delegateTask.getAssignee());
object.put("prcId",delegateTask.getProcessInstanceId());
zchgxxmscCpghbDataEOService.batchInsert(object);
}
submitMethod = "pageSubmit";
} else {
// 责任部门 子流程总数
int zrSubProcessCount = (int) delegateTask.getVariable("zrSubProcessCount");
int zrSubProcessFinishCount = (int) delegateTask.getVariable("zrSubProcessFinishCount");
zrSubProcessFinishCount = zrSubProcessFinishCount + 1;
delegateTask.setVariable("zrSubProcessFinishCount", zrSubProcessFinishCount);
// 如果该流程中的 责任部门子流程都已完成,给管理员节点分配数据。
if (zrSubProcessCount == zrSubProcessFinishCount) {
String glyUserId = jsonForm.getString("glyUserId");
delegateTask.setVariable("glyUserId", glyUserId);
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(glyUserId);
busBean.save(busProcessNewNext);
}
submitMethod = "timerAutoSubmit";
}
// 存储当前节点意见
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);
delegateTask.setVariable("submitMethod",submitMethod);
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicyComplianceProgramReviewProcess8Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,140 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
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.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.entity.FlowUserRelInfo;
import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscSybDataEO;
import com.ydw.bat.wkflow.business_main.datas.service.*;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class PolicyComplianceProgramReviewProcess9After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
IFlowUserRelInfoService flowUserRelInfoService = SpringContextUtil.getBean(IFlowUserRelInfoService.class);
IZchgxxmscSybDataEOService zchgxxmscSybDataEOService = SpringContextUtil.getBean(IZchgxxmscSybDataEOService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
String approvalFlag = jsonForm.getString("approvalFlag");
// 提交方式,如果该字段不为空,则是定时器自动提交 定时器自动提交value:timerAutoSubmit
String submitMethod = object.getString("submitMethod");
if (StringUtils.isEmpty(submitMethod)) {
if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) {
String zrdwUserId = jsonForm.getString("zrdwUserId");
delegateTask.setVariable("zrdwUserId", zrdwUserId);
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(zrdwUserId);
busBean.save(busProcessNewNext);
List<FlowUserRelInfo> flowUserRelInfoList = new ArrayList<>();
FlowUserRelInfo flowUserRelInfo = new FlowUserRelInfo();
flowUserRelInfo.setParentUserId(delegateTask.getAssignee());
flowUserRelInfo.setUserId(zrdwUserId);
flowUserRelInfo.setActiProcInstId(delegateTask.getProcessInstanceId());
flowUserRelInfo.setFlowType(FlowTypeEnum.ZCHGXXMSCLC.getValue());
flowUserRelInfo.setDataType("zrdjrfpzrdw"); // 责任对接人分配责任单位审批
flowUserRelInfoList.add(flowUserRelInfo);
flowUserRelInfoService.saveBatchFlowUserRelInfo(flowUserRelInfoList);
jsonForm.put("zrdwUserId","");
submitMethod = "pageSubmit";
} else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) {
List<String> zrrUserIdList = (List<String>) delegateTask.getVariable("zrrUserIdList");
List<BusProcessNew> addBusProcessNewList = new ArrayList<>();
for (String nextUser : zrrUserIdList) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
addBusProcessNewList.add(busProcessNewNext);
}
busBean.saveBatch(addBusProcessNewList);
}
} else {
// 责任部门 子流程总数
int zrSubProcessCount = (int) delegateTask.getVariable("zrSubProcessCount");
int zrSubProcessFinishCount = (int) delegateTask.getVariable("zrSubProcessFinishCount");
zrSubProcessFinishCount = zrSubProcessFinishCount + 1;
delegateTask.setVariable("zrSubProcessFinishCount", zrSubProcessFinishCount);
// 如果该流程中的 责任部门子流程都已完成,给管理员节点分配数据。
if (zrSubProcessCount == zrSubProcessFinishCount) {
String glyUserId = jsonForm.getString("glyUserId");
delegateTask.setVariable("glyUserId", glyUserId);
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(glyUserId);
busBean.save(busProcessNewNext);
}
submitMethod = "timerAutoSubmit";
}
// 保存责任人对接人修改的数据信息
// departmentType字段: value: undertaking 事业部 productPlanning 产品规划部
String departmentType = jsonForm.getString("departmentType");
if (StringUtils.equals(departmentType,"undertaking") && jsonForm.containsKey("sybDataList")) {
JSONArray sybDataListArr = jsonForm.getJSONArray("sybDataList");
List<ZchgxxmscSybDataEO> zchgxxmscSybDataEOList = new ArrayList<>();
ZchgxxmscSybDataEO zchgxxmscSybDataEO = null;
for (Object sybData : sybDataListArr) {
zchgxxmscSybDataEO = JSONObject.parseObject(JSONObject.toJSONString(sybData),ZchgxxmscSybDataEO.class);
zchgxxmscSybDataEO.setModifyTime(new Date());
zchgxxmscSybDataEOList.add(zchgxxmscSybDataEO);
}
zchgxxmscSybDataEOService.updateBatchById(zchgxxmscSybDataEOList);
} else if (StringUtils.equals(departmentType,"productPlanning")) {
}
// 存储当前节点意见
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);
delegateTask.setVariable("approvalFlag", approvalFlag);
delegateTask.setVariable("submitMethod", submitMethod);
}
}
@@ -0,0 +1,38 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicyComplianceProgramReviewProcess9Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,143 @@
package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess.timer;
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.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
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_wkflow.form.dto.FormSubmitDto;
import com.ydw.bat.wkflow.business_wkflow.form.service.FormValsService;
import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.TaskService;
import org.activiti.engine.task.Task;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Description: 重点认证标准/政策合规性项目审查流程定时器
* @author: wangzhijiang
* @date: 2023-10-26
*/
@Component
@EnableScheduling
@Slf4j
public class PolicyComplianceProgramReviewProcessTimer {
@Autowired
private IBusProcessNameService busProcessNameService;
@Autowired
private TaskService taskService;
@Autowired
private IBusProcessNewService busProcessNewService;
@Autowired
private FormValsService formValsService;
/**
* @Description: 自动提交待办任务
* @author: wangzhijiang
* @date: 2023-10-23
* @Param:
* @return:
*/
@Scheduled(cron = "10 0 0 * * ? ")//每天凌晨12点10分执行
public void autoSubmitZrbmTask() {
QueryWrapper<BusProcessName> bpnQueryWrap = new QueryWrapper<>();
bpnQueryWrap.lambda().eq(BusProcessName::getPrcType, FlowTypeEnum.ZCHGXXMSCLC.getValue());
bpnQueryWrap.lambda().lt(BusProcessName::getResponsibleUnitDeadlineDate, new Date());
List<BusProcessName> busProcessNameList = this.busProcessNameService.list(bpnQueryWrap);
if (CollectionUtils.isNotEmpty(busProcessNameList)) {
List<String> actiProcInstIdList = busProcessNameList.stream().map(BusProcessName::getPrcId).distinct().collect(Collectors.toList());
this.recursionComplteZrbmTask(actiProcInstIdList);
}
}
/**
* 递归提交待办任务
*
* @param actiProcInstIdList
*/
public void recursionComplteZrbmTask(List<String> actiProcInstIdList) {
for (String actiProcInstId : actiProcInstIdList) {
List<Task> taskList = this.taskService.createTaskQuery().processInstanceId(actiProcInstId).list().stream().filter(task -> {
boolean flag = false;
if (StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey7")
|| StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey8")
|| StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey9")
|| StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey10")) {
flag = true;
}
return flag;
}).distinct().collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(taskList)) {
for (Task task : taskList) {
JSONObject formJson = new JSONObject();
QueryWrapper<BusProcessNew> newQueryWrapper = new QueryWrapper<>();
newQueryWrapper.lambda().eq(BusProcessNew::getTaskId, task.getId());
BusProcessNew busProcessNew = this.busProcessNewService.getOne(newQueryWrapper);
if (ObjectUtils.isNotEmpty(busProcessNew)) {
formJson = JSONObject.parseObject(busProcessNew.getMesg());
JSONObject jsonForm = formJson.getJSONObject("form");
jsonForm.put("approvalFlag",ApprovalFlagEnum.PASS.getValue());
jsonForm.put("internalReviewFlag", "1");
formJson.put("commentText","");
}
formJson.put("submitMethod", "timerAutoSubmit");
formJson.put("approvalFlag", ApprovalFlagEnum.PASS.getValue());
formJson.put("internalReviewFlag", "1");
FormSubmitDto formSubmitDto = new FormSubmitDto();
formSubmitDto.setForm(formJson.toString());
formSubmitDto.setTask_id(task.getId());
this.formValsService.saveFormVals(formSubmitDto, task.getTaskDefinitionKey());
this.taskService.complete(task.getId());
}
}
}
List<String> actiProcInstIds = this.queryZrbmTaskByActiProcInstId(actiProcInstIdList);
if (CollectionUtils.isNotEmpty(actiProcInstIds)) {
this.recursionComplteZrbmTask(actiProcInstIds);
}
}
/**
* 根据流程实例id,查询还有待办任务的流程。
*
* @param actiProcInstIdList
* @return
*/
public List<String> queryZrbmTaskByActiProcInstId(List<String> actiProcInstIdList) {
List<String> result = new ArrayList<>();
for (String actiProcInstId : actiProcInstIdList) {
List<Task> taskList = this.taskService.createTaskQuery().processInstanceId(actiProcInstId).list().stream().filter(task -> {
boolean flag = false;
if (StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey7")
|| StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey8")
|| StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey9")
|| StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey10")) {
flag = true;
}
return flag;
}).distinct().collect(Collectors.toList());
if (taskList.size() != 0) {
result.add(actiProcInstId);
}
}
return result;
}
}
@@ -0,0 +1,79 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
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.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils;
public class PolicySolicitOpinionProcess10After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
String approvalFlag = jsonForm.getString("approvalFlag");
if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) {
// 责任部门 子流程总数
int zrSubProcessCount = (int) delegateTask.getVariable("zrSubProcessCount");
// 责任部门 子流程完成总数
int zrSubProcessFinishCount = (int) delegateTask.getVariable("zrSubProcessFinishCount");
zrSubProcessFinishCount = zrSubProcessFinishCount + 1;
delegateTask.setVariable("zrSubProcessFinishCount",zrSubProcessFinishCount);
// 如果该流程中的 责任部门子流程都已完成,给管理员节点分配数据。
if (zrSubProcessCount == zrSubProcessFinishCount) {
String glyUserId = jsonForm.getString("glyUserId");
delegateTask.setVariable("glyUserId",glyUserId);
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(glyUserId);
busBean.save(busProcessNewNext);
}
} else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) {
String djrUserId = (String) delegateTask.getVariable("djrUserId");
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(djrUserId);
busBean.save(busProcessNewNext);
}
// 存储当前节点意见
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);
delegateTask.setVariable("approvalFlag",approvalFlag);
}
}
@@ -0,0 +1,38 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicySolicitOpinionProcess10Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,87 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
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.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class PolicySolicitOpinionProcess11After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
String approvalFlag = jsonForm.getString("approvalFlag");
if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) {
String shr2UserIds = jsonForm.getString("shr2UserIds");
List<String> nextUserList = Arrays.asList(shr2UserIds.split(","));
if (CollectionUtils.isNotEmpty(nextUserList)) {
List<BusProcessNew> addBusProcessNewList = new ArrayList<>();
for (String nextUser : nextUserList) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
addBusProcessNewList.add(busProcessNewNext);
}
busBean.saveBatch(addBusProcessNewList);
// 配置多实例
delegateTask.setVariable("shr2UserIdList", nextUserList);
delegateTask.setVariable("shr2UserCount", nextUserList.size());
delegateTask.setVariable("shr2UserPassCount", 0);
delegateTask.setVariable("shr2UserOverruleCount", 0);
}
} else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) {
String pzr1UserId = jsonForm.getString("pzr1UserId");
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(pzr1UserId);
busBean.save(busProcessNewNext);
delegateTask.setVariable("pzr1UserId", pzr1UserId);
}
// 存储当前节点意见
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);
delegateTask.setVariable("approvalFlag", approvalFlag);
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicySolicitOpinionProcess11Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,119 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService;
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.IPolicySolicitOpinionEOService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class PolicySolicitOpinionProcess12After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class);
IPolicySolicitOpinionEOService policySolicitOpinionEOService = SpringContextUtil.getBean(IPolicySolicitOpinionEOService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
String approvalFlag = jsonForm.getString("approvalFlag");
if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) {
int shr2UserPassCount = (int) delegateTask.getVariable("shr2UserPassCount");
delegateTask.setVariable("shr2UserPassCount", shr2UserPassCount + 1);
List<String> nextUserList = new ArrayList<>();
String hqrUserIds = jsonForm.getString("hqrUserIds");
if (StringUtils.isNotEmpty(hqrUserIds)) {
nextUserList.addAll(Arrays.asList(hqrUserIds.split(",")));
}
List<String> hqrUserIdList = (List<String>) delegateTask.getVariable("hqrUserIdList");
if (CollectionUtils.isNotEmpty(hqrUserIdList)) {
nextUserList.addAll(hqrUserIdList);
}
nextUserList = nextUserList.stream().distinct().collect(Collectors.toList());
delegateTask.setVariable("hqrUserIdList", nextUserList);
boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey(
delegateTask.getProcessInstanceId(),
delegateTask.getTaskDefinitionKey(),
delegateTask.getId()
);
if (!existTaskFlag) {
if (CollectionUtils.isNotEmpty(nextUserList)) {
List<BusProcessNew> addBusProcessNewList = new ArrayList<>();
for (String nextUser : nextUserList) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
addBusProcessNewList.add(busProcessNewNext);
}
busBean.saveBatch(addBusProcessNewList);
// 配置多实例
delegateTask.setVariable("hqrUserCount", nextUserList.size());
delegateTask.setVariable("hqrUserPassCount", 0);
delegateTask.setVariable("hqrUserOverruleCount", 0);
}
}
} else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) {
String pzr1UserId = jsonForm.getString("pzr1UserId");
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(pzr1UserId);
busBean.save(busProcessNewNext);
delegateTask.setVariable("pzr1UserId", pzr1UserId);
delegateTask.setVariable("hqrUserIdList", new ArrayList<String>());
delegateTask.setVariable("shr2UserOverruleCount", 1);
}
// 保存责任人填写的征求意见信息
object.put("currentUserId",delegateTask.getAssignee());
object.put("prcId",delegateTask.getProcessInstanceId());
policySolicitOpinionEOService.batchInsert(object);
// 存储当前节点意见
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);
delegateTask.setVariable("approvalFlag", approvalFlag);
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicySolicitOpinionProcess12Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,99 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class PolicySolicitOpinionProcess13After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
String approvalFlag = jsonForm.getString("approvalFlag");
if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) {
int hqrUserPassCount = (int) delegateTask.getVariable("hqrUserPassCount");
delegateTask.setVariable("hqrUserPassCount", hqrUserPassCount + 1);
boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey(
delegateTask.getProcessInstanceId(),
delegateTask.getTaskDefinitionKey(),
delegateTask.getId()
);
if (!existTaskFlag) {
String sdr2UserIds = jsonForm.getString("sdr2UserIds");
List<String> nextUserList = Arrays.asList(sdr2UserIds.split(","));
if (CollectionUtils.isNotEmpty(nextUserList)) {
List<BusProcessNew> addBusProcessNewList = new ArrayList<>();
for (String nextUser : nextUserList) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
addBusProcessNewList.add(busProcessNewNext);
}
busBean.saveBatch(addBusProcessNewList);
// 配置多实例
delegateTask.setVariable("sdr2UserIdList", nextUserList);
delegateTask.setVariable("sdr2UserCount", nextUserList.size());
delegateTask.setVariable("sdr2UserPassCount", 0);
delegateTask.setVariable("sdr2UserOverruleCount", 0);
}
}
} else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) {
String pzr1UserId = jsonForm.getString("pzr1UserId");
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(pzr1UserId);
busBean.save(busProcessNewNext);
delegateTask.setVariable("pzr1UserId", pzr1UserId);
delegateTask.setVariable("hqrUserOverruleCount", 1);
}
// 存储当前节点意见
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);
delegateTask.setVariable("approvalFlag", approvalFlag);
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicySolicitOpinionProcess13Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,83 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils;
public class PolicySolicitOpinionProcess14After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
String approvalFlag = jsonForm.getString("approvalFlag");
if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) {
int sdr2UserPassCount = (int) delegateTask.getVariable("sdr2UserPassCount");
delegateTask.setVariable("sdr2UserPassCount", sdr2UserPassCount + 1);
boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey(
delegateTask.getProcessInstanceId(),
delegateTask.getTaskDefinitionKey(),
delegateTask.getId()
);
if (!existTaskFlag) {
String pzr2UserId = jsonForm.getString("pzr2UserId");
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(pzr2UserId);
busBean.save(busProcessNewNext);
delegateTask.setVariable("pzr2UserId", pzr2UserId);
}
} else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) {
String pzr1UserId = jsonForm.getString("pzr1UserId");
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(pzr1UserId);
busBean.save(busProcessNewNext);
delegateTask.setVariable("pzr1UserId", pzr1UserId);
delegateTask.setVariable("sdr2UserOverruleCount", 1);
}
// 存储当前节点意见
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);
delegateTask.setVariable("approvalFlag",approvalFlag);
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicySolicitOpinionProcess14Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,84 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
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.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class PolicySolicitOpinionProcess15After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
String approvalFlag = jsonForm.getString("approvalFlag");
if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) {
String csrUserIds = jsonForm.getString("csrUserIds");
List<String> nextUserList = Arrays.asList(csrUserIds.split(","));
if (CollectionUtils.isNotEmpty(nextUserList)) {
List<BusProcessNew> addBusProcessNewList = new ArrayList<>();
for (String nextUser : nextUserList) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
addBusProcessNewList.add(busProcessNewNext);
}
busBean.saveBatch(addBusProcessNewList);
// 配置多实例
delegateTask.setVariable("csrUserIdList", nextUserList);
}
} else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) {
String pzr1UserId = jsonForm.getString("pzr1UserId");
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(pzr1UserId);
busBean.save(busProcessNewNext);
delegateTask.setVariable("pzr1UserId", pzr1UserId);
}
// 存储当前节点意见
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);
delegateTask.setVariable("approvalFlag", approvalFlag);
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicySolicitOpinionProcess15Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,97 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService;
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_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
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.Arrays;
import java.util.Date;
import java.util.List;
import java.util.UUID;
public class PolicySolicitOpinionProcess16After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class);
IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
// TODO 等需求确认,提交后需要做什么操作。
JSONObject jsonForm = object.getJSONObject("form");
String csr2UserIds = jsonForm.getString("csr2UserIds");
if (StringUtils.isNotEmpty(csr2UserIds)) {
List<String> csr2UserIdList = Arrays.asList(csr2UserIds.split(","));
for (String csr2UserId : csr2UserIdList) {
// 发送 oa 待阅
BusProcessNew sendToBeReadBpn = new BusProcessNew();
sendToBeReadBpn.setId(UUID.randomUUID().toString().substring(0, 20));
sendToBeReadBpn.setTaskId(delegateTask.getId());
sendToBeReadBpn.setTaskInfo(delegateTask.getName());
sendToBeReadBpn.setLink(
FlowTypeEnum.ZCZQYJLC.getRoute() +
"?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() +
"&taskDefinitionKey=PolicySolicitOpinionProcessKey11" +
"&operate=view"
);
sendToBeReadBpn.setTaskInfo(delegateTask.getName());
sendToBeReadBpn.setUserId(csr2UserId);
sendToBeReadBpn.setTaskInfo(delegateTask.getName());
sendToBeReadBpn.setUserId(csr2UserId);
sendToBeReadBpn.setPrcName("政策征求意见流程");
sendToBeReadBpn.setPId(delegateTask.getProcessInstanceId());
oaService.sendToBeReadMq(sendToBeReadBpn);
}
}
boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey(
delegateTask.getProcessInstanceId(),
delegateTask.getTaskDefinitionKey(),
delegateTask.getId()
);
if (!existTaskFlag) {
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
QueryWrapper bpnQueryWrap = new QueryWrapper();
bpnQueryWrap.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName bpn = busProcessNameService.getOne(bpnQueryWrap);
if (bpn != null) {
bpn.setOverTime(OVERTIME);
busProcessNameService.saveOrUpdate(bpn);
}
}
// 存储当前节点意见
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);
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicySolicitOpinionProcess16Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,106 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
public class PolicySolicitOpinionProcess1After 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<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
delegateTask.setVariable("objectJson",object);
// 审核人1用户ids
String shr1UserIds = jsonForm.getString("shr1UserIds");
List<String> nextUserList = Arrays.asList(shr1UserIds.split(","));
//截止时间 流程描述 创建人
String user = object.getString("prcCreateUser");
String username = object.getString("prcCreateUserName");
Object lawsName = jsonForm.get("lawsName");
Object lawsNumber = jsonForm.get("lawsNumber");
String lawsInfoName = "";
if(lawsName != null && lawsNumber != null){
String name = lawsName.toString()+"-";
String number = lawsNumber.toString()+"-";
if(StringUtils.isNotBlank(name) && StringUtils.isNotBlank(number)){
lawsInfoName = number+name;
}
}
String prcName = lawsInfoName+"政策征求意见流程";
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
one1.setPrcType(FlowTypeEnum.ZCZQYJLC.getValue());
one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
Date responsibleUnitDeadlineDate = jsonForm.getDate("responsibleUnitDeadline");
one1.setResponsibleUnitDeadlineDate(responsibleUnitDeadlineDate);
busProcessNameService.saveOrUpdate(one1);
}
// 存储当前节点意见
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);
if(CollectionUtils.isNotEmpty(nextUserList)){
List<BusProcessNew> addBusProcessNewList = new ArrayList<>();
for(String nextUser : nextUserList){
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
addBusProcessNewList.add(busProcessNewNext);
}
busBean.saveBatch(addBusProcessNewList);
// 配置多实例
delegateTask.setVariable("shr1UserIdList",nextUserList);
delegateTask.setVariable("shr1UserCount",nextUserList.size());
delegateTask.setVariable("shr1UserPassCount",0);
delegateTask.setVariable("shr1UserOverruleCount",0);
}
delegateTask.setVariable("fqrUserId",delegateTask.getAssignee());
}
}
@@ -0,0 +1,35 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.util.List;
public class PolicySolicitOpinionProcess1Before 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.isNull("TASK_ID");
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,97 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService;
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.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class PolicySolicitOpinionProcess2After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
String approvalFlag = jsonForm.getString("approvalFlag");
if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) {
int shr1UserPassCount = (int) delegateTask.getVariable("shr1UserPassCount");
delegateTask.setVariable("shr1UserPassCount", shr1UserPassCount + 1);
boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey(
delegateTask.getProcessInstanceId(),
delegateTask.getTaskDefinitionKey(),
delegateTask.getId()
);
if (!existTaskFlag) {
// 审定人1用户ids
String sdr1UserIds = jsonForm.getString("sdr1UserIds");
List<String> nextUserList = Arrays.asList(sdr1UserIds.split(","));
if (CollectionUtils.isNotEmpty(nextUserList)) {
List<BusProcessNew> addBusProcessNewList = new ArrayList<>();
for (String nextUser : nextUserList) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
addBusProcessNewList.add(busProcessNewNext);
}
busBean.saveBatch(addBusProcessNewList);
// 配置多实例
delegateTask.setVariable("sdr1UserIdList", nextUserList);
delegateTask.setVariable("sdr1UserCount",nextUserList.size());
delegateTask.setVariable("sdr1UserPassCount",0);
delegateTask.setVariable("sdr1UserOverruleCount",0);
}
}
} else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNewNext);
delegateTask.setVariable("shr1UserOverruleCount", 1);
}
// 存储当前节点意见
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);
delegateTask.setVariable("approvalFlag",approvalFlag);
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicySolicitOpinionProcess2Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,82 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils;
public class PolicySolicitOpinionProcess4After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
String approvalFlag = jsonForm.getString("approvalFlag");
if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) {
int sdr1UserPassCount = (int) delegateTask.getVariable("sdr1UserPassCount");
delegateTask.setVariable("sdr1UserPassCount", sdr1UserPassCount + 1);
boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey(
delegateTask.getProcessInstanceId(),
delegateTask.getTaskDefinitionKey(),
delegateTask.getId()
);
if (!existTaskFlag) {
String pzr1UserId = jsonForm.getString("pzr1UserId");
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(pzr1UserId);
busBean.save(busProcessNewNext);
delegateTask.setVariable("pzr1UserId",pzr1UserId);
}
} else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNewNext);
delegateTask.setVariable("sdr1UserOverruleCount", 1);
}
// 存储当前节点意见
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);
delegateTask.setVariable("approvalFlag",approvalFlag);
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicySolicitOpinionProcess4Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,107 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
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.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
public class PolicySolicitOpinionProcess5After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
String approvalFlag = jsonForm.getString("approvalFlag");
if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) {
Date responsibleUnitDeadlineDate = jsonForm.getDate("responsibleUnitDeadline");
String endFlag = "";
// 如果当前日期大于责任单位截止日期,则不走责任对接人子流程 RESPONSIBLE_UNIT_DEADLINE_DATE
if (new Date().after(responsibleUnitDeadlineDate)) {
endFlag = "0";
// 管理员用户id
String glyUserId = jsonForm.getString("glyUserId");
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(glyUserId);
busBean.save(busProcessNewNext);
delegateTask.setVariable("glyUserId",glyUserId);
} else {
endFlag = "1";
// 责任对接人用户id
String djrUserIds = jsonForm.getString("djrUserIds");
List<String> nextUserList = Arrays.asList(djrUserIds.split(","));
if (CollectionUtils.isNotEmpty(nextUserList)) {
List<BusProcessNew> addBusProcessNewList = new ArrayList<>();
for (String nextUser : nextUserList) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
addBusProcessNewList.add(busProcessNewNext);
}
busBean.saveBatch(addBusProcessNewList);
// 配置多实例
delegateTask.setVariable("djrUserIdList", nextUserList);
delegateTask.setVariable("zrSubProcessCount",nextUserList.size());
delegateTask.setVariable("zrSubProcessFinishCount",0);
}
}
delegateTask.setVariable("endFlag",endFlag);
} else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNewNext);
}
// 存储当前节点意见
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);
delegateTask.setVariable("approvalFlag",approvalFlag);
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicySolicitOpinionProcess5Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,115 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
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.Datas;
import com.ydw.bat.wkflow.business_main.datas.entity.FlowUserRelInfo;
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.IFlowUserRelInfoService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class PolicySolicitOpinionProcess7After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
IFlowUserRelInfoService flowUserRelInfoService = SpringContextUtil.getBean(IFlowUserRelInfoService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
// 提交方式,如果该字段不为空,则是定时器自动提交 定时器自动提交value:timerAutoSubmit
String submitMethod = object.getString("submitMethod");
if (StringUtils.isEmpty(submitMethod)) {
String zrrUserIds = jsonForm.getString("zrrUserIds");
if (StringUtils.isNotEmpty(zrrUserIds)) {
List<String> nextUserList = Arrays.asList(zrrUserIds.split(","));
if (CollectionUtils.isNotEmpty(nextUserList)) {
List<FlowUserRelInfo> flowUserRelInfoList = new ArrayList<>();
List<BusProcessNew> addBusProcessNewList = new ArrayList<>();
for (String nextUser : nextUserList) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
addBusProcessNewList.add(busProcessNewNext);
FlowUserRelInfo flowUserRelInfo = new FlowUserRelInfo();
flowUserRelInfo.setParentUserId(delegateTask.getAssignee());
flowUserRelInfo.setUserId(nextUser);
flowUserRelInfo.setActiProcInstId(delegateTask.getProcessInstanceId());
flowUserRelInfo.setFlowType(FlowTypeEnum.ZCZQYJLC.getValue());
flowUserRelInfo.setDataType("zrdjrfpzrr"); // 责任对接人分配责任人
flowUserRelInfoList.add(flowUserRelInfo);
}
busBean.saveBatch(addBusProcessNewList);
// 配置多实例
delegateTask.setVariable("zrrUserIdList", nextUserList);
flowUserRelInfoService.saveBatchFlowUserRelInfo(flowUserRelInfoList);
}
}
submitMethod = "pageSubmit";
} else {
// 责任部门 子流程总数
int zrSubProcessCount = (int) delegateTask.getVariable("zrSubProcessCount");
int zrSubProcessFinishCount = (int) delegateTask.getVariable("zrSubProcessFinishCount");
zrSubProcessFinishCount = zrSubProcessFinishCount + 1;
delegateTask.setVariable("zrSubProcessFinishCount", zrSubProcessFinishCount);
// 如果该流程中的 责任部门子流程都已完成,给管理员节点分配数据。
if (zrSubProcessCount == zrSubProcessFinishCount) {
String glyUserId = jsonForm.getString("glyUserId");
delegateTask.setVariable("glyUserId", glyUserId);
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(glyUserId);
busBean.save(busProcessNewNext);
}
submitMethod = "timerAutoSubmit";
}
// 存储当前节点意见
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);
delegateTask.setVariable("submitMethod",submitMethod);
}
}
@@ -0,0 +1,38 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicySolicitOpinionProcess7Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,90 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService;
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.IPolicySolicitOpinionEOService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang3.StringUtils;
public class PolicySolicitOpinionProcess8After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class);
IPolicySolicitOpinionEOService policySolicitOpinionEOService = SpringContextUtil.getBean(IPolicySolicitOpinionEOService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
// 提交方式,如果该字段不为空,则是定时器自动提交 定时器自动提交value:timerAutoSubmit
String submitMethod = object.getString("submitMethod");
if (StringUtils.isEmpty(submitMethod)) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId((String) delegateTask.getVariable("djrUserId"));
busBean.save(busProcessNewNext);
// 保存责任人填写的征求意见信息
object.put("currentUserId",delegateTask.getAssignee());
object.put("prcId",delegateTask.getProcessInstanceId());
policySolicitOpinionEOService.batchInsert(object);
submitMethod = "pageSubmit";
} else {
// 责任部门 子流程总数
int zrSubProcessCount = (int) delegateTask.getVariable("zrSubProcessCount");
int zrSubProcessFinishCount = (int) delegateTask.getVariable("zrSubProcessFinishCount");
zrSubProcessFinishCount = zrSubProcessFinishCount + 1;
delegateTask.setVariable("zrSubProcessFinishCount", zrSubProcessFinishCount);
// 如果该流程中的 责任部门子流程都已完成,给管理员节点分配数据。
if (zrSubProcessCount == zrSubProcessFinishCount) {
String glyUserId = jsonForm.getString("glyUserId");
delegateTask.setVariable("glyUserId", glyUserId);
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(glyUserId);
busBean.save(busProcessNewNext);
}
submitMethod = "timerAutoSubmit";
}
// 存储当前节点意见
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);
delegateTask.setVariable("submitMethod",submitMethod);
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicySolicitOpinionProcess8Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,124 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
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.Datas;
import com.ydw.bat.wkflow.business_main.datas.entity.FlowUserRelInfo;
import com.ydw.bat.wkflow.business_main.datas.service.*;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.List;
public class PolicySolicitOpinionProcess9After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
IFlowUserRelInfoService flowUserRelInfoService = SpringContextUtil.getBean(IFlowUserRelInfoService.class);
IPolicySolicitOpinionEOService policySolicitOpinionEOService = SpringContextUtil.getBean(IPolicySolicitOpinionEOService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject jsonForm = object.getJSONObject("form");
String approvalFlag = jsonForm.getString("approvalFlag");
if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) {
// 内部审查 0 是,1 否
String internalReviewFlag = jsonForm.getString("internalReviewFlag");
if (StringUtils.equals(internalReviewFlag, "0")) {
String zrdwUserId = jsonForm.getString("zrdwUserId");
delegateTask.setVariable("zrdwUserId", zrdwUserId);
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(zrdwUserId);
busBean.save(busProcessNewNext);
List<FlowUserRelInfo> flowUserRelInfoList = new ArrayList<>();
FlowUserRelInfo flowUserRelInfo = new FlowUserRelInfo();
flowUserRelInfo.setParentUserId(delegateTask.getAssignee());
flowUserRelInfo.setUserId(zrdwUserId);
flowUserRelInfo.setActiProcInstId(delegateTask.getProcessInstanceId());
flowUserRelInfo.setFlowType(FlowTypeEnum.ZCZQYJLC.getValue());
flowUserRelInfo.setDataType("zrdjrfpzrdw"); // 责任对接人分配责任单位审批
flowUserRelInfoList.add(flowUserRelInfo);
flowUserRelInfoService.saveBatchFlowUserRelInfo(flowUserRelInfoList);
} else if (StringUtils.equals(internalReviewFlag, "1")) {
// 责任部门 子流程总数
int zrSubProcessCount = (int) delegateTask.getVariable("zrSubProcessCount");
int zrSubProcessFinishCount = (int) delegateTask.getVariable("zrSubProcessFinishCount");
zrSubProcessFinishCount = zrSubProcessFinishCount + 1;
delegateTask.setVariable("zrSubProcessFinishCount", zrSubProcessFinishCount);
// 如果该流程中的 责任部门子流程都已完成,给管理员节点分配数据。
if (zrSubProcessCount == zrSubProcessFinishCount) {
String glyUserId = jsonForm.getString("glyUserId");
delegateTask.setVariable("glyUserId", glyUserId);
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(glyUserId);
busBean.save(busProcessNewNext);
}
}
jsonForm.put("internalReviewFlag","");
jsonForm.put("zrdwUserId","");
delegateTask.setVariable("internalReviewFlag", internalReviewFlag);
} else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) {
List<String> zrrUserIdList = (List<String>) delegateTask.getVariable("zrrUserIdList");
List<BusProcessNew> addBusProcessNewList = new ArrayList<>();
for (String nextUser : zrrUserIdList) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
addBusProcessNewList.add(busProcessNewNext);
}
busBean.saveBatch(addBusProcessNewList);
}
// 保存责任人填写的征求意见信息
object.put("currentUserId",delegateTask.getAssignee());
object.put("prcId",delegateTask.getProcessInstanceId());
policySolicitOpinionEOService.batchInsert(object);
// 存储当前节点意见
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);
delegateTask.setVariable("approvalFlag", approvalFlag);
}
}
@@ -0,0 +1,38 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess;
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.enums.FlowTypeEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
public class PolicySolicitOpinionProcess9Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.isNull("TASK_ID");
queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper);
if(CollectionUtils.isNotEmpty(list)){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey());
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,141 @@
package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess.timer;
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.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
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_wkflow.form.dto.FormSubmitDto;
import com.ydw.bat.wkflow.business_wkflow.form.service.FormValsService;
import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.TaskService;
import org.activiti.engine.task.Task;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.*;
import java.util.stream.Collectors;
/**
* @Description: 政策征求意见流程定时器
* @author: wangzhijiang
* @date: 2023-10-23
*/
@Component
@EnableScheduling
@Slf4j
public class PolicySolicitOpinionProcessTimer {
@Autowired
private IBusProcessNameService busProcessNameService;
@Autowired
private TaskService taskService;
@Autowired
private IBusProcessNewService busProcessNewService;
@Autowired
private FormValsService formValsService;
/**
* @Description: 自动提交待办任务
* @author: wangzhijiang
* @date: 2023-10-23
* @Param:
* @return:
*/
@Scheduled(cron = "5 0 0 * * ? ")//每天凌晨12点05分执行
public void autoSubmitZrbmTask() {
QueryWrapper<BusProcessName> bpnQueryWrap = new QueryWrapper<>();
bpnQueryWrap.lambda().eq(BusProcessName::getPrcType, FlowTypeEnum.ZCZQYJLC.getValue());
bpnQueryWrap.lambda().lt(BusProcessName::getResponsibleUnitDeadlineDate, new Date());
List<BusProcessName> busProcessNameList = this.busProcessNameService.list(bpnQueryWrap);
if (CollectionUtils.isNotEmpty(busProcessNameList)) {
List<String> actiProcInstIdList = busProcessNameList.stream().map(BusProcessName::getPrcId).distinct().collect(Collectors.toList());
this.recursionComplteZrbmTask(actiProcInstIdList);
}
}
/**
* 递归提交待办任务
*
* @param actiProcInstIdList
*/
public void recursionComplteZrbmTask(List<String> actiProcInstIdList) {
for (String actiProcInstId : actiProcInstIdList) {
List<Task> taskList = this.taskService.createTaskQuery().processInstanceId(actiProcInstId).list().stream().filter(task -> {
boolean flag = false;
if (StringUtils.equals(task.getTaskDefinitionKey(), "PolicySolicitOpinionProcessKey7")
|| StringUtils.equals(task.getTaskDefinitionKey(), "PolicySolicitOpinionProcessKey8")
|| StringUtils.equals(task.getTaskDefinitionKey(), "PolicySolicitOpinionProcessKey9")
|| StringUtils.equals(task.getTaskDefinitionKey(), "PolicySolicitOpinionProcessKey10")) {
flag = true;
}
return flag;
}).distinct().collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(taskList)) {
for (Task task : taskList) {
JSONObject formJson = new JSONObject();
QueryWrapper<BusProcessNew> newQueryWrapper = new QueryWrapper<>();
newQueryWrapper.lambda().eq(BusProcessNew::getTaskId, task.getId());
BusProcessNew busProcessNew = this.busProcessNewService.getOne(newQueryWrapper);
if (ObjectUtils.isNotEmpty(busProcessNew)) {
formJson = JSONObject.parseObject(busProcessNew.getMesg());
JSONObject jsonForm = formJson.getJSONObject("form");
jsonForm.put("approvalFlag",ApprovalFlagEnum.PASS.getValue());
jsonForm.put("internalReviewFlag", "1");
formJson.put("commentText","");
}
formJson.put("submitMethod", "timerAutoSubmit");
formJson.put("approvalFlag", ApprovalFlagEnum.PASS.getValue());
formJson.put("internalReviewFlag", "1");
FormSubmitDto formSubmitDto = new FormSubmitDto();
formSubmitDto.setForm(formJson.toString());
formSubmitDto.setTask_id(task.getId());
this.formValsService.saveFormVals(formSubmitDto, task.getTaskDefinitionKey());
this.taskService.complete(task.getId());
}
}
}
List<String> actiProcInstIds = this.queryZrbmTaskByActiProcInstId(actiProcInstIdList);
if (CollectionUtils.isNotEmpty(actiProcInstIds)) {
this.recursionComplteZrbmTask(actiProcInstIds);
}
}
/**
* 根据流程实例id,查询还有待办任务的流程。
*
* @param actiProcInstIdList
* @return
*/
public List<String> queryZrbmTaskByActiProcInstId(List<String> actiProcInstIdList) {
List<String> result = new ArrayList<>();
for (String actiProcInstId : actiProcInstIdList) {
List<Task> taskList = this.taskService.createTaskQuery().processInstanceId(actiProcInstId).list().stream().filter(task -> {
boolean flag = false;
if (StringUtils.equals(task.getTaskDefinitionKey(), "PolicySolicitOpinionProcessKey7")
|| StringUtils.equals(task.getTaskDefinitionKey(), "PolicySolicitOpinionProcessKey8")
|| StringUtils.equals(task.getTaskDefinitionKey(), "PolicySolicitOpinionProcessKey9")
|| StringUtils.equals(task.getTaskDefinitionKey(), "PolicySolicitOpinionProcessKey10")) {
flag = true;
}
return flag;
}).distinct().collect(Collectors.toList());
if (taskList.size() != 0) {
result.add(actiProcInstId);
}
}
return result;
}
}
@@ -0,0 +1,36 @@
package com.ydw.bat.wkflow.util.enums;
/**
* 审批标志枚举类
*/
public enum ApprovalFlagEnum {
PASS("通过","0"),
OVERRULE("驳回","1"),
;
ApprovalFlagEnum(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;
}
}
@@ -0,0 +1,30 @@
package com.ydw.bat.wkflow.util.enums;
/**
* 流程类型枚举类
*/
public enum FlowTypeEnum {
ZCZQYJLC("29","政策征求意见流程","policyConsultation"),
ZCHGXXMSCLC("30","重点认证标准/政策合规性项目审查流程","policyComplianceReview"),
;
private String value;
private String lable;
private String route;
private FlowTypeEnum(String value, String lable,String route) {
this.value = value;
this.lable = lable;
this.route = route;
}
public String getValue() {
return value;
}
public String getLable() {
return lable;
}
public String getRoute() {
return route;
}
}
@@ -0,0 +1,5 @@
<?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.PolicySolicitOpinionEOMapper">
</mapper>
@@ -0,0 +1,5 @@
<?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.ZchgxxmscCpghbDataDetailEOMapper">
</mapper>
@@ -0,0 +1,5 @@
<?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.ZchgxxmscCpghbDataEOMapper">
</mapper>
@@ -0,0 +1,5 @@
<?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.ZchgxxmscSybDataEOMapper">
</mapper>