diff --git a/src/main/java/com/ydw/bat/wkflow/business_activiti/service/TaskTodoService.java b/src/main/java/com/ydw/bat/wkflow/business_activiti/service/TaskTodoService.java index 2f2b2ed2..3c9114c8 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_activiti/service/TaskTodoService.java +++ b/src/main/java/com/ydw/bat/wkflow/business_activiti/service/TaskTodoService.java @@ -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 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; + } + } diff --git a/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TaskController.java b/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TaskController.java index aec00b87..c988c160 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TaskController.java +++ b/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TaskController.java @@ -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(); diff --git a/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java b/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java index e3b6f4af..2b6d4ae0 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java +++ b/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java @@ -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 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 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 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 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 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 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 params = new HashMap<>(); + params.put("taskDefinitionKey",task.getTaskDefinitionKey()); + params.put("currentUserId",userId); + params.put("prcId",task.getProcessInstanceId()); + List 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 params = new HashMap<>(); + params.put("taskDefinitionKey","PolicySolicitOpinionProcessKey8"); + params.put("currentUserId",userId); + params.put("prcId",task.getProcessInstanceId()); + List 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 params = new HashMap<>(); + params.put("taskDefinitionKey",task.getTaskDefinitionKey()); + params.put("currentUserId",userId); + params.put("pId",task.getProcessInstanceId()); + List zchgxxmscSybDataEOList = this.zchgxxmscSybDataEOService.queryZchgxxmscSybDataEOList(params); + if (CollectionUtils.isNotEmpty(zchgxxmscSybDataEOList)) { + zchgxxmscSybDataEOList.forEach(sybDataEO -> {sybDataEO.setZrrUserId(assignee);}); + this.zchgxxmscSybDataEOService.updateBatchById(zchgxxmscSybDataEOList); + } + + List 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 params = new HashMap<>(); + params.put("taskDefinitionKey","PolicyComplianceProgramReviewProcessKey8"); + params.put("currentUserId",userId); + params.put("pId",task.getProcessInstanceId()); + + List 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 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 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 params) { + String taskIds = (String) params.get("taskIds"); + String prcId = (String) params.get("pId"); + List taskIdList = new ArrayList<>(Arrays.asList(taskIds.split(","))); + + List list = iBusProcessNewService.findNoExecuteBusProcessNewForEnd(taskIdList); + if (list.isEmpty()) { + return null; + } + BusProcessNew processNew = new BusProcessNew(); + BeanUtils.copyProperties(list.get(0), processNew); + + if(StringUtils.isNotBlank(prcId)){ + List 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 zchgxxmscSybDataEOList = this.zchgxxmscSybDataEOService.queryZchgxxmscSybDataEOList(params); + if (CollectionUtils.isNotEmpty(zchgxxmscSybDataEOList)) { + JSONObject jsonForm = object3.getJSONObject("form"); + jsonForm.put("sybDataList",zchgxxmscSybDataEOList); + } + + List 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 updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.in(BusProcessNew::getTaskId,taskIdList); + updateWrapper.set(BusProcessNew::getReceiveStatus,"已接收"); + iBusProcessNewService.update(updateWrapper); + return processNew; + + } } diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/PolicySolicitOpinionEOController.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/PolicySolicitOpinionEOController.java new file mode 100644 index 00000000..d79b035b --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/PolicySolicitOpinionEOController.java @@ -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> queryPolicitOpinionEOList(@RequestParam Map params) { + List policySolicitOpinionEOList = this.policySolicitOpinionEOService.queryPolicitOpinionEOList(params); + return Result.success(policySolicitOpinionEOList); + } +} + diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/BusProcessName.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/BusProcessName.java index 0d30fc4b..8e4b0582 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/BusProcessName.java +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/BusProcessName.java @@ -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; } diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/FlowUserRelInfo.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/FlowUserRelInfo.java new file mode 100644 index 00000000..d9590b64 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/FlowUserRelInfo.java @@ -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; + +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/PolicySolicitOpinionEO.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/PolicySolicitOpinionEO.java new file mode 100644 index 00000000..6aa39efa --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/PolicySolicitOpinionEO.java @@ -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; + +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscCpghbDataDetailEO.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscCpghbDataDetailEO.java new file mode 100644 index 00000000..87e8bf34 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscCpghbDataDetailEO.java @@ -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; +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscCpghbDataEO.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscCpghbDataEO.java new file mode 100644 index 00000000..8ea4d6d8 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscCpghbDataEO.java @@ -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 zchgxxmscCpghbDataDetailEOList; +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscSybDataEO.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscSybDataEO.java new file mode 100644 index 00000000..16e8cfaa --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscSybDataEO.java @@ -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; +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/FlowUserRelInfoMapper.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/FlowUserRelInfoMapper.java new file mode 100644 index 00000000..48069ae3 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/FlowUserRelInfoMapper.java @@ -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 { +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/PolicySolicitOpinionEOMapper.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/PolicySolicitOpinionEOMapper.java new file mode 100644 index 00000000..5358ec28 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/PolicySolicitOpinionEOMapper.java @@ -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 { +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscCpghbDataDetailEOMapper.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscCpghbDataDetailEOMapper.java new file mode 100644 index 00000000..134a5f06 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscCpghbDataDetailEOMapper.java @@ -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 { +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscCpghbDataEOMapper.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscCpghbDataEOMapper.java new file mode 100644 index 00000000..d94c057a --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscCpghbDataEOMapper.java @@ -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 { +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscSybDataEOMapper.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscSybDataEOMapper.java new file mode 100644 index 00000000..8ae27163 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscSybDataEOMapper.java @@ -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 { +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IFlowUserRelInfoService.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IFlowUserRelInfoService.java new file mode 100644 index 00000000..2b379943 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IFlowUserRelInfoService.java @@ -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 { + /** + * 批量新增流程用户上下级关系 + * @param flowUserRelInfoList + */ + void saveBatchFlowUserRelInfo(List flowUserRelInfoList); +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IPolicySolicitOpinionEOService.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IPolicySolicitOpinionEOService.java new file mode 100644 index 00000000..186f32c4 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IPolicySolicitOpinionEOService.java @@ -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 { + + void batchInsert(JSONObject json); + + List queryPolicitOpinionEOList(Map params); +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscCpghbDataDetailEOService.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscCpghbDataDetailEOService.java new file mode 100644 index 00000000..1293ad1b --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscCpghbDataDetailEOService.java @@ -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 { + + void batchInsert(List zchgxxmscCpghbDataDetailEOList); + + List queryZchgxxmscCpghbDataDetailEOList(List zchgxxmscCpghbDataIdList); +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscCpghbDataEOService.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscCpghbDataEOService.java new file mode 100644 index 00000000..1bc4987c --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscCpghbDataEOService.java @@ -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 { + + void batchInsert(JSONObject json); + + List queryZchgxxmscCpghbDataEOList(Map params); +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscSybDataEOService.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscSybDataEOService.java new file mode 100644 index 00000000..8bca45a3 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscSybDataEOService.java @@ -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 { + + void batchInsert(List zchgxxmscSybDataEOList); + + List queryZchgxxmscSybDataEOList(Map params); +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/FlowUserRelInfoServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/FlowUserRelInfoServiceImpl.java new file mode 100644 index 00000000..c2cd6701 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/FlowUserRelInfoServiceImpl.java @@ -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 implements IFlowUserRelInfoService { + + @Autowired + private FlowUserRelInfoMapper flowUserRelInfoMapper; + + @Override + public void saveBatchFlowUserRelInfo(List flowUserRelInfoList) { + if(CollectionUtils.isNotEmpty(flowUserRelInfoList)){ + FlowUserRelInfo flowUserRelInfo = flowUserRelInfoList.get(0); + + QueryWrapper 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/PolicySolicitOpinionEOServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/PolicySolicitOpinionEOServiceImpl.java new file mode 100644 index 00000000..584acd9a --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/PolicySolicitOpinionEOServiceImpl.java @@ -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 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 removeIdList = Arrays.asList(removeIds.split(",")); + this.removeByIds(removeIdList); + } + JSONArray policySolicitOpinionEOArr = json.getJSONArray("policySolicitOpinionEOList"); + List addPolicySolicitOpinionEOList = new ArrayList<>(); + List 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 queryPolicitOpinionEOList(Map params) { + + List result = new ArrayList<>(); + String taskDefinitionKey = (String) params.get("taskDefinitionKey"); + String currentUserId = (String) params.get("currentUserId"); + String prcId = (String) params.get("prcId"); + + QueryWrapper 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 userIdList = new ArrayList<>(); + userIdList.add(currentUserId); + + QueryWrapper 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 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 userIdList = new ArrayList<>(); + + QueryWrapper 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 zrdwflowUserRelInfoList = this.flowUserRelInfoService.list(furQueryWrap); + if (CollectionUtils.isNotEmpty(zrdwflowUserRelInfoList)) { + List zrdjrUserIdList = zrdwflowUserRelInfoList.stream().map(FlowUserRelInfo::getParentUserId).distinct().collect(Collectors.toList()); + userIdList.addAll(zrdjrUserIdList); + + QueryWrapper 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 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; + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscCpghbDataDetailEOServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscCpghbDataDetailEOServiceImpl.java new file mode 100644 index 00000000..863fe409 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscCpghbDataDetailEOServiceImpl.java @@ -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 implements IZchgxxmscCpghbDataDetailEOService { + + @Override + public void batchInsert(List zchgxxmscCpghbDataDetailEOList) { + if (CollectionUtils.isNotEmpty(zchgxxmscCpghbDataDetailEOList)) { + this.saveBatch(zchgxxmscCpghbDataDetailEOList); + } + } + + @Override + public List queryZchgxxmscCpghbDataDetailEOList(List zchgxxmscCpghbDataIdList) { + List result = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(zchgxxmscCpghbDataIdList)) { + zchgxxmscCpghbDataIdList = zchgxxmscCpghbDataIdList.stream().distinct().collect(Collectors.toList()); + QueryWrapper cpghbDataDetailQueryWrap = new QueryWrapper<>(); + cpghbDataDetailQueryWrap.lambda().in(ZchgxxmscCpghbDataDetailEO::getZchgxxmscCpghbDataId,zchgxxmscCpghbDataIdList); + result = this.list(cpghbDataDetailQueryWrap); + } + return result; + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscCpghbDataEOServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscCpghbDataEOServiceImpl.java new file mode 100644 index 00000000..83471ebb --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscCpghbDataEOServiceImpl.java @@ -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 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 removeIdList = Arrays.asList(removeIds.split(",")); + this.removeByIds(removeIdList); + } + JSONArray cpghbDataListArr = jsonForm.getJSONArray("cpghbDataList"); + List addZchgxxmscCpghbDataEOList = new ArrayList<>(); + List 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 queryZchgxxmscCpghbDataEOList(Map params) { + + List result = new ArrayList<>(); + String taskDefinitionKey = (String) params.get("taskDefinitionKey"); + String currentUserId = (String) params.get("currentUserId"); + String prcId = (String) params.get("pId"); + + QueryWrapper 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 userIdList = new ArrayList<>(); + userIdList.add(currentUserId); + + QueryWrapper 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 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 userIdList = new ArrayList<>(); + + QueryWrapper 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 zrdwflowUserRelInfoList = this.flowUserRelInfoService.list(furQueryWrap); + if (CollectionUtils.isNotEmpty(zrdwflowUserRelInfoList)) { + List zrdjrUserIdList = zrdwflowUserRelInfoList.stream().map(FlowUserRelInfo::getParentUserId).distinct().collect(Collectors.toList()); + userIdList.addAll(zrdjrUserIdList); + + QueryWrapper 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 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; + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscSybDataEOServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscSybDataEOServiceImpl.java new file mode 100644 index 00000000..11ed024c --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscSybDataEOServiceImpl.java @@ -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 implements IZchgxxmscSybDataEOService { + + @Autowired + private IFlowUserRelInfoService flowUserRelInfoService; + + @Override + public void batchInsert(List zchgxxmscSybDataEOList) { + if (CollectionUtils.isNotEmpty(zchgxxmscSybDataEOList)) { + this.saveBatch(zchgxxmscSybDataEOList); + } + } + + @Override + public List queryZchgxxmscSybDataEOList(Map params) { + + List result = new ArrayList<>(); + String taskDefinitionKey = (String) params.get("taskDefinitionKey"); + String currentUserId = (String) params.get("currentUserId"); + String prcId = (String) params.get("pId"); + + QueryWrapper 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 userIdList = new ArrayList<>(); + userIdList.add(currentUserId); + + QueryWrapper 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 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 userIdList = new ArrayList<>(); + + QueryWrapper 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 zrdwflowUserRelInfoList = this.flowUserRelInfoService.list(furQueryWrap); + if (CollectionUtils.isNotEmpty(zrdwflowUserRelInfoList)) { + List zrdjrUserIdList = zrdwflowUserRelInfoList.stream().map(FlowUserRelInfo::getParentUserId).distinct().collect(Collectors.toList()); + userIdList.addAll(zrdjrUserIdList); + + QueryWrapper 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 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; + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_mq/service/CreateMQService.java b/src/main/java/com/ydw/bat/wkflow/business_mq/service/CreateMQService.java index b1f8ea9e..bf4580d5 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_mq/service/CreateMQService.java +++ b/src/main/java/com/ydw/bat/wkflow/business_mq/service/CreateMQService.java @@ -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); + } + } + } diff --git a/src/main/java/com/ydw/bat/wkflow/business_mq/service/SendToBeReadMQService.java b/src/main/java/com/ydw/bat/wkflow/business_mq/service/SendToBeReadMQService.java new file mode 100644 index 00000000..439b7652 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_mq/service/SendToBeReadMQService.java @@ -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 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 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 byId = lawsUserInfoService.getById("WY8J26MH23"); + // 发送待办 或 发送给管理员邮箱 + List 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 = "

您好:

" + + "" + "OA请求发送失败6次,请线下协调处理" + "
"; + 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("已重新加入延迟队列"); + } + } + +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/WebServiceOAService.java b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/WebServiceOAService.java index 97c4410b..cbf6e246 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/WebServiceOAService.java +++ b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/WebServiceOAService.java @@ -24,4 +24,6 @@ public interface WebServiceOAService { NotifyTodoAppDeleteResult setTodoDelete(String object) throws Exception; + NotifyTodoAppResult sendToBeRead(BusProcessNew busProcessNew) throws Exception; + } diff --git a/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/impl/WebServiceOAServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/impl/WebServiceOAServiceImpl.java index 5586d2bf..cbf4e8c1 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/impl/WebServiceOAServiceImpl.java +++ b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/impl/WebServiceOAServiceImpl.java @@ -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 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 map = new HashMap<>(); + ResponseMessage 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 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; + } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess10After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess10After.java new file mode 100644 index 00000000..220c04c0 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess10After.java @@ -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 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess10Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess10Before.java new file mode 100644 index 00000000..cb2c9dd7 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess10Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess11After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess11After.java new file mode 100644 index 00000000..0d50758d --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess11After.java @@ -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 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 nextUserList = Arrays.asList(shr2UserIds.split(",")); + if (CollectionUtils.isNotEmpty(nextUserList)) { + List 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess11Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess11Before.java new file mode 100644 index 00000000..2740391a --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess11Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess12After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess12After.java new file mode 100644 index 00000000..2ef78d28 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess12After.java @@ -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 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 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 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess12Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess12Before.java new file mode 100644 index 00000000..8664fbdd --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess12Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess13After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess13After.java new file mode 100644 index 00000000..03a129a7 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess13After.java @@ -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 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess13Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess13Before.java new file mode 100644 index 00000000..7130649e --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess13Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess14After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess14After.java new file mode 100644 index 00000000..43a1a32d --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess14After.java @@ -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 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 nextUserList = Arrays.asList(csrUserIds.split(",")); + if (CollectionUtils.isNotEmpty(nextUserList)) { + List 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess14Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess14Before.java new file mode 100644 index 00000000..1f0b6dde --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess14Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess15After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess15After.java new file mode 100644 index 00000000..6fdd7be9 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess15After.java @@ -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 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 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess15Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess15Before.java new file mode 100644 index 00000000..e2912989 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess15Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess1After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess1After.java new file mode 100644 index 00000000..5455b731 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess1After.java @@ -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 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 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 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()); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess1Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess1Before.java new file mode 100644 index 00000000..331192b0 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess1Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess2After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess2After.java new file mode 100644 index 00000000..82f28ad0 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess2After.java @@ -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 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 nextUserList = Arrays.asList(sdr1UserIds.split(",")); + if (CollectionUtils.isNotEmpty(nextUserList)) { + List 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess2Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess2Before.java new file mode 100644 index 00000000..ad1ea188 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess2Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess4After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess4After.java new file mode 100644 index 00000000..410664a1 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess4After.java @@ -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 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess4Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess4Before.java new file mode 100644 index 00000000..08fb8762 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess4Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess5After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess5After.java new file mode 100644 index 00000000..d6a96ff7 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess5After.java @@ -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 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 nextUserList = Arrays.asList(djrUserIds.split(",")); + if (CollectionUtils.isNotEmpty(nextUserList)) { + List 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess5Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess5Before.java new file mode 100644 index 00000000..f57c71a3 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess5Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess7After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess7After.java new file mode 100644 index 00000000..3b445680 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess7After.java @@ -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 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 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 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 flowUserRelInfoList = new ArrayList<>(); + + List 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess7Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess7Before.java new file mode 100644 index 00000000..e855e39c --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess7Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8After.java new file mode 100644 index 00000000..19fa8ae0 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8After.java @@ -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 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 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8Before.java new file mode 100644 index 00000000..50fadcb1 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess9After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess9After.java new file mode 100644 index 00000000..8a07a344 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess9After.java @@ -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 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 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 zrrUserIdList = (List) delegateTask.getVariable("zrrUserIdList"); + List 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 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess9Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess9Before.java new file mode 100644 index 00000000..dc85adb4 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess9Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/timer/PolicyComplianceProgramReviewProcessTimer.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/timer/PolicyComplianceProgramReviewProcessTimer.java new file mode 100644 index 00000000..f62b207c --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/timer/PolicyComplianceProgramReviewProcessTimer.java @@ -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 bpnQueryWrap = new QueryWrapper<>(); + bpnQueryWrap.lambda().eq(BusProcessName::getPrcType, FlowTypeEnum.ZCHGXXMSCLC.getValue()); + bpnQueryWrap.lambda().lt(BusProcessName::getResponsibleUnitDeadlineDate, new Date()); + List busProcessNameList = this.busProcessNameService.list(bpnQueryWrap); + + if (CollectionUtils.isNotEmpty(busProcessNameList)) { + List actiProcInstIdList = busProcessNameList.stream().map(BusProcessName::getPrcId).distinct().collect(Collectors.toList()); + this.recursionComplteZrbmTask(actiProcInstIdList); + } + } + + /** + * 递归提交待办任务 + * + * @param actiProcInstIdList + */ + public void recursionComplteZrbmTask(List actiProcInstIdList) { + for (String actiProcInstId : actiProcInstIdList) { + List 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 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 actiProcInstIds = this.queryZrbmTaskByActiProcInstId(actiProcInstIdList); + if (CollectionUtils.isNotEmpty(actiProcInstIds)) { + this.recursionComplteZrbmTask(actiProcInstIds); + } + } + + /** + * 根据流程实例id,查询还有待办任务的流程。 + * + * @param actiProcInstIdList + * @return + */ + public List queryZrbmTaskByActiProcInstId(List actiProcInstIdList) { + List result = new ArrayList<>(); + for (String actiProcInstId : actiProcInstIdList) { + List 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; + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess10After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess10After.java new file mode 100644 index 00000000..78e10c8d --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess10After.java @@ -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 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess10Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess10Before.java new file mode 100644 index 00000000..73873861 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess10Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess11After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess11After.java new file mode 100644 index 00000000..4f8e9749 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess11After.java @@ -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 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 nextUserList = Arrays.asList(shr2UserIds.split(",")); + if (CollectionUtils.isNotEmpty(nextUserList)) { + List 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess11Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess11Before.java new file mode 100644 index 00000000..d70becf4 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess11Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12After.java new file mode 100644 index 00000000..9faa0407 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12After.java @@ -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 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 nextUserList = new ArrayList<>(); + String hqrUserIds = jsonForm.getString("hqrUserIds"); + if (StringUtils.isNotEmpty(hqrUserIds)) { + nextUserList.addAll(Arrays.asList(hqrUserIds.split(","))); + } + + List hqrUserIdList = (List) 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 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()); + 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12Before.java new file mode 100644 index 00000000..c6edb7bc --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13After.java new file mode 100644 index 00000000..ae6be652 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13After.java @@ -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 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 nextUserList = Arrays.asList(sdr2UserIds.split(",")); + if (CollectionUtils.isNotEmpty(nextUserList)) { + List 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13Before.java new file mode 100644 index 00000000..9b9222cd --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14After.java new file mode 100644 index 00000000..789af733 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14After.java @@ -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 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14Before.java new file mode 100644 index 00000000..70aeb1b2 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess15After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess15After.java new file mode 100644 index 00000000..2494f284 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess15After.java @@ -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 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 nextUserList = Arrays.asList(csrUserIds.split(",")); + if (CollectionUtils.isNotEmpty(nextUserList)) { + List 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess15Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess15Before.java new file mode 100644 index 00000000..f4cac9be --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess15Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16After.java new file mode 100644 index 00000000..3509f247 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16After.java @@ -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 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 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16Before.java new file mode 100644 index 00000000..39c68415 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess1After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess1After.java new file mode 100644 index 00000000..4b3fb251 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess1After.java @@ -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 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 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 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()); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess1Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess1Before.java new file mode 100644 index 00000000..004e40bc --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess1Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2After.java new file mode 100644 index 00000000..2b859f16 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2After.java @@ -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 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 nextUserList = Arrays.asList(sdr1UserIds.split(",")); + if (CollectionUtils.isNotEmpty(nextUserList)) { + List 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2Before.java new file mode 100644 index 00000000..38eb9b56 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4After.java new file mode 100644 index 00000000..7d0e63a8 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4After.java @@ -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 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4Before.java new file mode 100644 index 00000000..d237b510 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess5After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess5After.java new file mode 100644 index 00000000..27ed588a --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess5After.java @@ -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 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 nextUserList = Arrays.asList(djrUserIds.split(",")); + if (CollectionUtils.isNotEmpty(nextUserList)) { + List 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess5Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess5Before.java new file mode 100644 index 00000000..34dd815e --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess5Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess7After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess7After.java new file mode 100644 index 00000000..e3f0503e --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess7After.java @@ -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 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 nextUserList = Arrays.asList(zrrUserIds.split(",")); + if (CollectionUtils.isNotEmpty(nextUserList)) { + List flowUserRelInfoList = new ArrayList<>(); + + List 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess7Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess7Before.java new file mode 100644 index 00000000..3e4ddf8a --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess7Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess8After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess8After.java new file mode 100644 index 00000000..964912c0 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess8After.java @@ -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 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess8Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess8Before.java new file mode 100644 index 00000000..a20364be --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess8Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess9After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess9After.java new file mode 100644 index 00000000..d1ee1e53 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess9After.java @@ -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 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 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 zrrUserIdList = (List) delegateTask.getVariable("zrrUserIdList"); + List 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); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess9Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess9Before.java new file mode 100644 index 00000000..382fab15 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess9Before.java @@ -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 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/timer/PolicySolicitOpinionProcessTimer.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/timer/PolicySolicitOpinionProcessTimer.java new file mode 100644 index 00000000..3491dd79 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/timer/PolicySolicitOpinionProcessTimer.java @@ -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 bpnQueryWrap = new QueryWrapper<>(); + bpnQueryWrap.lambda().eq(BusProcessName::getPrcType, FlowTypeEnum.ZCZQYJLC.getValue()); + bpnQueryWrap.lambda().lt(BusProcessName::getResponsibleUnitDeadlineDate, new Date()); + List busProcessNameList = this.busProcessNameService.list(bpnQueryWrap); + + if (CollectionUtils.isNotEmpty(busProcessNameList)) { + List actiProcInstIdList = busProcessNameList.stream().map(BusProcessName::getPrcId).distinct().collect(Collectors.toList()); + this.recursionComplteZrbmTask(actiProcInstIdList); + } + } + + /** + * 递归提交待办任务 + * + * @param actiProcInstIdList + */ + public void recursionComplteZrbmTask(List actiProcInstIdList) { + for (String actiProcInstId : actiProcInstIdList) { + List 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 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 actiProcInstIds = this.queryZrbmTaskByActiProcInstId(actiProcInstIdList); + if (CollectionUtils.isNotEmpty(actiProcInstIds)) { + this.recursionComplteZrbmTask(actiProcInstIds); + } + } + + /** + * 根据流程实例id,查询还有待办任务的流程。 + * + * @param actiProcInstIdList + * @return + */ + public List queryZrbmTaskByActiProcInstId(List actiProcInstIdList) { + List result = new ArrayList<>(); + for (String actiProcInstId : actiProcInstIdList) { + List 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; + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/util/enums/ApprovalFlagEnum.java b/src/main/java/com/ydw/bat/wkflow/util/enums/ApprovalFlagEnum.java new file mode 100644 index 00000000..a3180eaa --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/util/enums/ApprovalFlagEnum.java @@ -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; + } + +} diff --git a/src/main/java/com/ydw/bat/wkflow/util/enums/FlowTypeEnum.java b/src/main/java/com/ydw/bat/wkflow/util/enums/FlowTypeEnum.java new file mode 100644 index 00000000..cf84eb87 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/util/enums/FlowTypeEnum.java @@ -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; + } +} diff --git a/src/main/resources/mapper/datas/PolicySolicitOpinionEOMapper.xml b/src/main/resources/mapper/datas/PolicySolicitOpinionEOMapper.xml new file mode 100644 index 00000000..93f439b8 --- /dev/null +++ b/src/main/resources/mapper/datas/PolicySolicitOpinionEOMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/main/resources/mapper/datas/ZchgxxmscCpghbDataDetailEOMapper.xml b/src/main/resources/mapper/datas/ZchgxxmscCpghbDataDetailEOMapper.xml new file mode 100644 index 00000000..6cd2a1bd --- /dev/null +++ b/src/main/resources/mapper/datas/ZchgxxmscCpghbDataDetailEOMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/main/resources/mapper/datas/ZchgxxmscCpghbDataEOMapper.xml b/src/main/resources/mapper/datas/ZchgxxmscCpghbDataEOMapper.xml new file mode 100644 index 00000000..3c5441e0 --- /dev/null +++ b/src/main/resources/mapper/datas/ZchgxxmscCpghbDataEOMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/main/resources/mapper/datas/ZchgxxmscSybDataEOMapper.xml b/src/main/resources/mapper/datas/ZchgxxmscSybDataEOMapper.xml new file mode 100644 index 00000000..e0a899f9 --- /dev/null +++ b/src/main/resources/mapper/datas/ZchgxxmscSybDataEOMapper.xml @@ -0,0 +1,5 @@ + + + + +