feat: 年度制修订-标准化发起
This commit is contained in:
+70
@@ -5,7 +5,11 @@ import com.jero.common.aspect.annotation.AutoLog;
|
||||
import com.jero.common.aspect.annotation.Translation;
|
||||
import com.jero.common.constant.enums.YesOrNoEnum;
|
||||
|
||||
import com.jero.modules.activiti.process.esAnnualInit.entity.vo.AnnualInitDataVO;
|
||||
import com.jero.modules.activiti.process.esAnnualInit.service.ProcessEsAnnualInitService;
|
||||
import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange;
|
||||
import com.jero.modules.activiti.process.esInitChange.entity.vo.InitChangeDataVO;
|
||||
import com.jero.modules.laws.common.constant.FieldCommon;
|
||||
import io.swagger.annotations.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.compress.utils.IOUtils;
|
||||
@@ -18,6 +22,7 @@ import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
@@ -34,6 +39,71 @@ public class ESAnnualInitController {
|
||||
@Resource
|
||||
private ProcessEsAnnualInitService annualInitService;
|
||||
|
||||
/**
|
||||
* 新增立项变更申请
|
||||
*
|
||||
* @param annualInitData
|
||||
*/
|
||||
@AutoLog(value = "企标年度制修订标准化发起流程-发起立项变更申请")
|
||||
@ApiOperation(value="企标年度制修订标准化发起流程-发起立项变更申请", notes="企标年度制修订标准化发起流程-发起立项变更申请")
|
||||
@PostMapping("/start")
|
||||
public Result<?> startProcess(@RequestBody AnnualInitDataVO annualInitData) {
|
||||
annualInitService.startProcess(annualInitData);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存到待办
|
||||
* @param annualInitData
|
||||
*/
|
||||
@AutoLog(value = "企标年度制修订标准化发起流程-保存")
|
||||
@ApiOperation(value="企标年度制修订标准化发起流程-保存", notes="企标年度制修订标准化发起流程-保存")
|
||||
@PostMapping("/save")
|
||||
public Result<?> save(@RequestBody AnnualInitDataVO annualInitData) {
|
||||
annualInitService.saveToDraft(annualInitData);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存到待办
|
||||
* @param taskId
|
||||
*/
|
||||
@AutoLog(value = "企标年度制修订标准化发起流程-办理")
|
||||
@ApiOperation(value="企标年度制修订标准化发起流程-办理", notes="企标年度制修订标准化发起流程-办理")
|
||||
@GetMapping("/handle/{taskId}")
|
||||
@Translation
|
||||
public Result<?> handle(@PathVariable("taskId") String taskId) {
|
||||
return Result.OK(annualInitService.getHandleData(taskId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 同意
|
||||
*
|
||||
* @param annualInitData
|
||||
*/
|
||||
@AutoLog(value = "企标年度制修订标准化发起流程-同意")
|
||||
@ApiOperation(value="企标年度制修订标准化发起流程-同意", notes="企标年度制修订标准化发起流程-同意")
|
||||
@PostMapping("/agree")
|
||||
public Result<?> agree(@RequestBody AnnualInitDataVO annualInitData) {
|
||||
annualInitService.approvalInitChange(annualInitData, true);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
/**
|
||||
* 驳回
|
||||
*
|
||||
* @param annualInitData
|
||||
*/
|
||||
@AutoLog(value = "企标年度制修订标准化发起流程-驳回")
|
||||
@ApiOperation(value="企标年度制修订标准化发起流程-驳回", notes="企标年度制修订标准化发起流程-驳回")
|
||||
@PostMapping("/reject")
|
||||
public Result<?> reject(@RequestBody AnnualInitDataVO annualInitData) {
|
||||
annualInitService.approvalInitChange(annualInitData, false);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 导入模板下载
|
||||
*/
|
||||
|
||||
+14
@@ -308,6 +308,20 @@ public class ProcessEsAnnualInit implements Serializable {
|
||||
@ApiModelProperty(value = "联络人")
|
||||
private String contactUser;
|
||||
|
||||
/**
|
||||
* 流程中的主起草人
|
||||
*/
|
||||
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "username")
|
||||
@ApiModelProperty(value = "流程中的主起草人")
|
||||
private String prcMainDraftUser;
|
||||
|
||||
/**
|
||||
* 驳回标识
|
||||
*/
|
||||
@ApiModelProperty(value = "驳回标识")
|
||||
@Dict(dicCode = "YN")
|
||||
private String rejectFlag;
|
||||
|
||||
/**
|
||||
* 审批人
|
||||
*/
|
||||
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.jero.modules.activiti.process.esAnnualInit.entity.constant;
|
||||
|
||||
/**
|
||||
* @author: Mzaxd
|
||||
* @Date: 2023/10/27 7:32
|
||||
*/
|
||||
public class AnnualInitTaskNameConstant {
|
||||
|
||||
public static final String STANDARD_ENGINEER_INIT = "标准化工程师发起,填写新法规";
|
||||
public static final String CONTACT_USER_EDIT = "部所联络人 选取审批人 调整完成时间";
|
||||
public static final String STANDARD_ENGINEER_EDIT = "标准化工程师修改调整";
|
||||
public static final String MAIN_DRAFT_LEADER_APPROVAL = "主起草单位主管审批";
|
||||
public static final String MAIN_DRAFT_WRITE = "主起草人填写信息";
|
||||
public static final String CONTACT_USER_COLLECT = "部所联络人 汇总";
|
||||
public static final String MAIN_DRAFT_LEADER_LEADER_APPROVAL = "主起草单位主管级领导审批";
|
||||
public static final String STANDARD_ENGINEER_COLLECT = "标准化工程师归档";
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
package com.jero.modules.activiti.process.esAnnualInit.entity.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.jero.modules.activiti.process.common.entity.CommonVO;
|
||||
import com.jero.modules.activiti.process.esAnnualInit.entity.ProcessEsAnnualInit;
|
||||
import com.jero.modules.activiti.process.esAnnualReport.entity.ProcessEsAnnualReport;
|
||||
import com.jero.modules.activiti.process.esAnnualReport.entity.vo.AnnualReportFlowUserVO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author: Mzaxd
|
||||
* @Date: 2023/10/26 17:28
|
||||
*/
|
||||
@Data
|
||||
public class AnnualInitDataVO {
|
||||
|
||||
@JsonProperty("common")
|
||||
private CommonVO commonVO;
|
||||
|
||||
@JsonProperty("dataList")
|
||||
private List<ProcessEsAnnualInit> dataList;
|
||||
|
||||
@JsonProperty("flowUser")
|
||||
private AnnualInitFlowUserVO flowUser;
|
||||
|
||||
}
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
package com.jero.modules.activiti.process.esAnnualInit.entity.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.jero.common.aspect.annotation.Dict;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author: Mzaxd
|
||||
* @Date: 2023/10/26 17:29
|
||||
*/
|
||||
@Data
|
||||
public class AnnualInitFlowUserVO {
|
||||
|
||||
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "username")
|
||||
@ApiModelProperty("标准化工程师")
|
||||
private String standardEngineer;
|
||||
|
||||
// 部所联络人
|
||||
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "username")
|
||||
@ApiModelProperty("各部所联络人")
|
||||
private String contactUser;
|
||||
|
||||
// 部所联络人
|
||||
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "username")
|
||||
@ApiModelProperty("各部所联络人集合")
|
||||
@JsonIgnore
|
||||
private List<String> contactUserList;
|
||||
|
||||
// 主起草单位主管
|
||||
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "username")
|
||||
@ApiModelProperty("主起草单位主管")
|
||||
private String approvalUser;
|
||||
|
||||
// 主起草单位主管
|
||||
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "username")
|
||||
@ApiModelProperty("主起草单位主管集合")
|
||||
private List<String> approvalUserList;
|
||||
|
||||
// 主起草人
|
||||
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "username")
|
||||
@ApiModelProperty("主起草人")
|
||||
private String mainDraftUser;
|
||||
|
||||
// 主起草人
|
||||
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "username")
|
||||
@ApiModelProperty("主起草人集合")
|
||||
@JsonIgnore
|
||||
private List<String> mainDraftUserList;
|
||||
|
||||
}
|
||||
+9
@@ -2,6 +2,7 @@ package com.jero.modules.activiti.process.esAnnualInit.service;
|
||||
|
||||
import com.jero.modules.activiti.process.esAnnualInit.entity.ProcessEsAnnualInit;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jero.modules.activiti.process.esAnnualInit.entity.vo.AnnualInitDataVO;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
@@ -20,4 +21,12 @@ public interface ProcessEsAnnualInitService extends IService<ProcessEsAnnualInit
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> importData(MultipartFile file);
|
||||
|
||||
void startProcess(AnnualInitDataVO annualInitData);
|
||||
|
||||
void saveToDraft(AnnualInitDataVO annualInitData);
|
||||
|
||||
AnnualInitDataVO getHandleData(String taskId);
|
||||
|
||||
void approvalInitChange(AnnualInitDataVO annualInitData, boolean b);
|
||||
}
|
||||
|
||||
+265
@@ -5,18 +5,35 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.api.CommonAPI;
|
||||
import com.jero.common.constant.enums.YesOrNoEnum;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.vo.SysDictItemCore;
|
||||
import com.jero.modules.activiti.entity.ProcessAll;
|
||||
import com.jero.modules.activiti.entity.ProcessNode;
|
||||
import com.jero.modules.activiti.process.common.entity.CommonVO;
|
||||
import com.jero.modules.activiti.process.common.enums.ProcessType;
|
||||
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
|
||||
import com.jero.modules.activiti.process.esAnnualInit.entity.ProcessEsAnnualInit;
|
||||
import com.jero.modules.activiti.process.esAnnualInit.entity.vo.AnnualInitDataVO;
|
||||
import com.jero.modules.activiti.process.esAnnualInit.entity.vo.AnnualInitFlowUserVO;
|
||||
import com.jero.modules.activiti.process.esAnnualInit.service.ProcessEsAnnualInitService;
|
||||
import com.jero.modules.activiti.process.esAnnualInit.mapper.ProcessEsAnnualInitMapper;
|
||||
import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectType;
|
||||
import com.jero.modules.activiti.service.ProcessAllService;
|
||||
import com.jero.modules.activiti.service.ProcessNodeLinkService;
|
||||
import com.jero.modules.activiti.service.ProcessNodeService;
|
||||
import com.jero.modules.activiti.util.ExcelUtils;
|
||||
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
|
||||
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
||||
import com.jero.modules.sys.utils.UserUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.activiti.engine.RuntimeService;
|
||||
import org.activiti.engine.TaskService;
|
||||
import org.activiti.engine.runtime.ProcessInstance;
|
||||
import org.activiti.engine.task.Task;
|
||||
import org.jeecgframework.poi.excel.ExcelImportUtil;
|
||||
import org.jeecgframework.poi.excel.entity.ImportParams;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@@ -24,12 +41,15 @@ import java.io.IOException;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.jero.modules.activiti.process.esAnnualInit.entity.constant.AnnualInitTaskNameConstant.*;
|
||||
|
||||
/**
|
||||
* @author ThinkBook
|
||||
* @description 针对表【process_es_annual_init(企标立项变更流程)】的数据库操作Service实现
|
||||
* @createDate 2023-10-18 10:01:44
|
||||
*/
|
||||
@Slf4j
|
||||
@Transactional(rollbackFor = JeroBootException.class)
|
||||
@Service
|
||||
public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualInitMapper, ProcessEsAnnualInit>
|
||||
implements ProcessEsAnnualInitService {
|
||||
@@ -43,6 +63,251 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
@Resource
|
||||
private ILawsEnterpriseStandardService enterpriseStandardService;
|
||||
|
||||
@Resource
|
||||
private ActFlowCommonService actFlowCommonService;
|
||||
|
||||
@Resource
|
||||
private ProcessNodeService processNodeService;
|
||||
|
||||
@Resource
|
||||
private ProcessNodeLinkService processNodeLinkService;
|
||||
|
||||
@Resource
|
||||
private ProcessAllService processAllService;
|
||||
|
||||
@Resource
|
||||
private RuntimeService runtimeService;
|
||||
|
||||
@Resource
|
||||
private TaskService taskService;
|
||||
|
||||
@Override
|
||||
public void startProcess(AnnualInitDataVO annualInitData) {
|
||||
// 执行流程发起前的操作
|
||||
this.startRunTask(annualInitData);
|
||||
// 流程Key
|
||||
String processDefinitionKey = ProcessType.ES_ANNUAL_REPORT.getProcessKey();
|
||||
List<ProcessEsAnnualInit> annualReportList = annualInitData.getDataList();
|
||||
// 当前用户Id
|
||||
String userId = UserUtils.getUserId();
|
||||
// 设置流程变量
|
||||
Map<String, Object> variables = this.setVariables(annualInitData);
|
||||
// 启动流程
|
||||
ProcessInstance processInstance = actFlowCommonService.startProcess(processDefinitionKey, variables);
|
||||
// 获取流程实例ID
|
||||
String processDefinitionId = processInstance.getProcessDefinitionId();
|
||||
String processInstanceId = processInstance.getId();
|
||||
// 手动设置所有流程变量
|
||||
actFlowCommonService.setProcessVariables(processInstanceId, variables);
|
||||
// 自动完成第一个任务
|
||||
actFlowCommonService.autoCompleteFirstTask(userId, processInstanceId, processDefinitionId);
|
||||
// 设置流程实例Id
|
||||
annualReportList.forEach(annualReport -> annualReport.setProcessInstanceId(processInstanceId));
|
||||
// 保存到业务流程表
|
||||
saveBatch(annualReportList);
|
||||
// 保存选人信息
|
||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(variables));
|
||||
// 根据流程实例id更新流程总表
|
||||
String prcName = annualInitData.getCommonVO().getPrcName();
|
||||
String prcMes = annualInitData.getCommonVO().getPrcMes();
|
||||
Date dueTime = annualInitData.getCommonVO().getDueTime();
|
||||
actFlowCommonService.updateProcessAll(processInstanceId, userId, prcName, prcMes, dueTime);
|
||||
|
||||
}
|
||||
|
||||
public void startRunTask(AnnualInitDataVO annualInitData) {
|
||||
// do nothing now
|
||||
}
|
||||
|
||||
public Map<String, Object> setVariables(AnnualInitDataVO annualInitData) {
|
||||
AnnualInitFlowUserVO annualInitFlowUserVO = annualInitData.getFlowUser();
|
||||
List<ProcessEsAnnualInit> dataList = annualInitData.getDataList();
|
||||
List<String> contactUserList = new ArrayList<>();
|
||||
dataList.forEach(item -> contactUserList.add(item.getContactUser()));
|
||||
annualInitFlowUserVO.setContactUserList(contactUserList);
|
||||
// 设置流程中各个节点的人
|
||||
return new HashMap<>(this.setUserVariables(annualInitFlowUserVO));
|
||||
}
|
||||
|
||||
public Map<String, Object> setUserVariables(AnnualInitFlowUserVO userVO) {
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
// 使用一个通用方法来只在不为空时添加键值对
|
||||
actFlowCommonService.putIfNotNull(map, "standardEngineer", userVO.getStandardEngineer());
|
||||
actFlowCommonService.putIfNotNull(map, "contactUserList", userVO.getContactUserList());
|
||||
actFlowCommonService.putIfNotNull(map, "approvalUserList", userVO.getApprovalUserList());
|
||||
actFlowCommonService.putIfNotNull(map, "mainDraftUserList", userVO.getMainDraftUserList());
|
||||
return map;
|
||||
}
|
||||
|
||||
private Map<String, Object> getUserMap(Map<String, Object> variables) {
|
||||
// 转成逗号拼接
|
||||
variables.put("contactUserList", Optional.ofNullable((List<String>) variables.get("contactUserList"))
|
||||
.map(list -> String.join(",", list))
|
||||
.orElse(""));
|
||||
variables.put("approvalUserList", Optional.ofNullable((List<String>) variables.get("approvalUserList"))
|
||||
.map(list -> String.join(",", list))
|
||||
.orElse(""));
|
||||
variables.put("mainDraftUserList", Optional.ofNullable((List<String>) variables.get("mainDraftUserList"))
|
||||
.map(list -> String.join(",", list))
|
||||
.orElse(""));
|
||||
return variables;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveToDraft(AnnualInitDataVO annualInitData) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public AnnualInitDataVO getHandleData(String taskId) {
|
||||
String userId = UserUtils.getUserId();
|
||||
if (!actFlowCommonService.taskExists(taskId)) {
|
||||
throw new JeroBootException("任务不存在");
|
||||
}
|
||||
AnnualInitDataVO annualInitDataVO = new AnnualInitDataVO();
|
||||
// 使用流程引擎根据taskId找到流程实例Id
|
||||
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
|
||||
String processDefinitionId = actFlowCommonService.getProcessDefId(processInstanceId);
|
||||
// 获取流程通用数据
|
||||
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
|
||||
CommonVO commonVO = new CommonVO();
|
||||
commonVO.setPrcName(process.getPrcName());
|
||||
commonVO.setTaskId(process.getTaskId());
|
||||
commonVO.setPrcMes(process.getPrcMes());
|
||||
commonVO.setDueTime(process.getDueTime());
|
||||
annualInitDataVO.setCommonVO(commonVO);
|
||||
// 获取流程实例数据
|
||||
LambdaQueryWrapper<ProcessEsAnnualInit> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(ProcessEsAnnualInit::getProcessInstanceId, processInstanceId);
|
||||
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
||||
String taskName = task.getName();
|
||||
switch (taskName) {
|
||||
case STANDARD_ENGINEER_INIT:
|
||||
// do nothing now
|
||||
break;
|
||||
case CONTACT_USER_EDIT:
|
||||
wrapper.eq(ProcessEsAnnualInit::getContactUser, userId);
|
||||
break;
|
||||
case STANDARD_ENGINEER_EDIT:
|
||||
wrapper.eq(ProcessEsAnnualInit::getRejectFlag, YesOrNoEnum.YES.getValue());
|
||||
break;
|
||||
case MAIN_DRAFT_LEADER_APPROVAL:
|
||||
wrapper.eq(ProcessEsAnnualInit::getApprovalUser, userId);
|
||||
break;
|
||||
case MAIN_DRAFT_WRITE:
|
||||
wrapper.eq(ProcessEsAnnualInit::getPrcMainDraftUser, userId);
|
||||
break;
|
||||
case CONTACT_USER_COLLECT:
|
||||
wrapper.eq(ProcessEsAnnualInit::getContactUser, userId);
|
||||
break;
|
||||
case MAIN_DRAFT_LEADER_LEADER_APPROVAL:
|
||||
wrapper.eq(ProcessEsAnnualInit::getContactUser, userId);
|
||||
break;
|
||||
case STANDARD_ENGINEER_COLLECT:
|
||||
// do nothing now
|
||||
break;
|
||||
}
|
||||
// 选人组件内容填充
|
||||
annualInitDataVO.setFlowUser(this.getProcessUserInfo(processDefinitionId, processInstanceId));
|
||||
return annualInitDataVO;
|
||||
}
|
||||
|
||||
private AnnualInitFlowUserVO getProcessUserInfo(String processDefinitionId, String processInstanceId) {
|
||||
//TODO 每个节点返回的人员信息应该是不同的
|
||||
List<ProcessNode> nodeList = processNodeService.getNodeList(processDefinitionId, processInstanceId);
|
||||
AnnualInitFlowUserVO annualInitFlowUserVO = new AnnualInitFlowUserVO();
|
||||
Map<String, ProcessNode> userMap = nodeList.stream().collect(Collectors.toMap(ProcessNode::getVariableName, node -> node));
|
||||
// annualInitFlowUserVO.setStandardEngineer(userMap.get("standardEngineer").getLinkUserIds());
|
||||
// annualInitFlowUserVO.setContactUserList(userMap.get("contactUserList").getLinkUserIds());
|
||||
// annualInitFlowUserVO.setWorkGroupUserList(userMap.get("workGroupUserList").getLinkUserIds());
|
||||
// annualInitFlowUserVO.setCollectUserLeader(userMap.get("collectUserLeader").getLinkUserIds());
|
||||
// annualInitFlowUserVO.setContactUserLeaderLeader(userMap.get("contactUserLeaderLeader").getLinkUserIds());
|
||||
return annualInitFlowUserVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void approvalInitChange(AnnualInitDataVO annualInitData, boolean pass) {
|
||||
String userId = UserUtils.getUserId();
|
||||
CommonVO commonVO = annualInitData.getCommonVO();
|
||||
AnnualInitFlowUserVO flowUserVO = annualInitData.getFlowUser();
|
||||
List<ProcessEsAnnualInit> dataList = annualInitData.getDataList();
|
||||
String taskId = commonVO.getTaskId();
|
||||
// 获取task
|
||||
if (StrUtil.isBlank(taskId) && !actFlowCommonService.taskExists(taskId)) {
|
||||
throw new JeroBootException("taskId为空或任务不存在");
|
||||
}
|
||||
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
||||
String taskName = task.getName();
|
||||
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
|
||||
String processDefinitionId = actFlowCommonService.getProcessDefId(processInstanceId);
|
||||
switch (taskName) {
|
||||
case CONTACT_USER_EDIT:
|
||||
// 处理驳回
|
||||
if (pass) {
|
||||
dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.NO.getValue()));
|
||||
} else {
|
||||
dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.YES.getValue()));
|
||||
}
|
||||
saveOrUpdateBatch(dataList);
|
||||
// 设置本地变量
|
||||
List<String> approvalUserList = new ArrayList<>();
|
||||
dataList.forEach(d -> approvalUserList.add(d.getApprovalUser()));
|
||||
flowUserVO.setApprovalUserList(approvalUserList);
|
||||
taskService.setVariableLocal(taskId, "approvalUserList", approvalUserList);
|
||||
break;
|
||||
case STANDARD_ENGINEER_EDIT:
|
||||
dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.NO.getValue()));
|
||||
saveOrUpdateBatch(dataList);
|
||||
// 设置流程变量
|
||||
List<String> contactUserList = new ArrayList<>();
|
||||
dataList.forEach(d -> contactUserList.add(d.getContactUser()));
|
||||
flowUserVO.setApprovalUserList(contactUserList);
|
||||
runtimeService.setVariable(processInstanceId, "contactUserList", contactUserList);
|
||||
break;
|
||||
case MAIN_DRAFT_LEADER_APPROVAL:
|
||||
// 如果不驳回
|
||||
if (!pass) {
|
||||
dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.NO.getValue()));
|
||||
saveOrUpdateBatch(dataList);
|
||||
// 设置本地变量
|
||||
List<String> mainDraftUserList = new ArrayList<>();
|
||||
dataList.forEach(d -> mainDraftUserList.add(d.getPrcMainDraftUser()));
|
||||
flowUserVO.setApprovalUserList(mainDraftUserList);
|
||||
taskService.setVariableLocal(taskId, "mainDraftUserList", mainDraftUserList);
|
||||
}
|
||||
break;
|
||||
case MAIN_DRAFT_WRITE:
|
||||
saveOrUpdateBatch(dataList);
|
||||
break;
|
||||
case CONTACT_USER_COLLECT:
|
||||
saveOrUpdateBatch(dataList);
|
||||
break;
|
||||
case MAIN_DRAFT_LEADER_LEADER_APPROVAL:
|
||||
break;
|
||||
case STANDARD_ENGINEER_COLLECT:
|
||||
// 根据流程ID删除所有数据后新增
|
||||
LambdaQueryWrapper<ProcessEsAnnualInit> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(ProcessEsAnnualInit::getProcessInstanceId, processInstanceId);
|
||||
remove(wrapper);
|
||||
saveOrUpdateBatch(dataList);
|
||||
break;
|
||||
}
|
||||
if (pass) {
|
||||
if (flowUserVO != null) {
|
||||
Map<String, Object> userMap = new HashMap<>(this.setUserVariables(flowUserVO));
|
||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userMap);
|
||||
}
|
||||
runtimeService.setVariable(processInstanceId, "pass", true);
|
||||
} else {
|
||||
// 设置流程变量
|
||||
runtimeService.setVariable(processInstanceId, "pass", false);
|
||||
}
|
||||
// 更新审批表为完成,填充数据
|
||||
actFlowCommonService.updateApprovalInfo(commonVO, taskId, pass);
|
||||
// 审批节点
|
||||
actFlowCommonService.completeTask(taskId, userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> importData(MultipartFile file) {
|
||||
List<SysDictItemCore> listDict = commonAPI.getDictItemAll();
|
||||
|
||||
-12
@@ -120,18 +120,6 @@ public class ProcessESInitChangeController {
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
/**
|
||||
* 转办
|
||||
*
|
||||
*/
|
||||
@AutoLog(value = "企标立项变更流程-转办")
|
||||
@ApiOperation(value="企标立项变更流程-转办", notes="企标立项变更流程-转办")
|
||||
@PostMapping(value = "/transfer")
|
||||
public Result<?> transfer(@RequestBody TransferVO transferVO) {
|
||||
initChangeService.transfer(transferVO.getTaskId(), transferVO.getUserId());
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
/**
|
||||
* 选择企标编号带出数据
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user