feat: 年度制修订-标准化发起 前两个节点
This commit is contained in:
+11
-4
@@ -1,14 +1,18 @@
|
||||
package com.jero.modules.activiti.process.esAnnualInit.controller;
|
||||
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.api.vo.ResultCommon;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
import com.jero.common.aspect.annotation.Translation;
|
||||
import com.jero.common.constant.enums.YesOrNoEnum;
|
||||
|
||||
import com.jero.common.util.MessageUtils;
|
||||
import com.jero.modules.activiti.process.common.entity.TransferVO;
|
||||
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.service.ProcessEsAnnualInitService;
|
||||
import com.jero.modules.activiti.process.esAnnualReport.entity.ProcessEsAnnualReport;
|
||||
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
|
||||
import io.swagger.annotations.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -22,6 +26,7 @@ import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
@@ -87,7 +92,7 @@ public class ESAnnualInitController {
|
||||
@ApiOperation(value="企标年度制修订标准化发起流程-同意", notes="企标年度制修订标准化发起流程-同意")
|
||||
@PostMapping("/agree")
|
||||
public Result<?> agree(@RequestBody AnnualInitDataVO annualInitData) {
|
||||
annualInitService.approvalInitChange(annualInitData, true);
|
||||
annualInitService.approvalProcess(annualInitData, true);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@@ -100,7 +105,7 @@ public class ESAnnualInitController {
|
||||
@ApiOperation(value="企标年度制修订标准化发起流程-驳回", notes="企标年度制修订标准化发起流程-驳回")
|
||||
@PostMapping("/reject")
|
||||
public Result<?> reject(@RequestBody AnnualInitDataVO annualInitData) {
|
||||
annualInitService.approvalInitChange(annualInitData, false);
|
||||
annualInitService.approvalProcess(annualInitData, false);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@@ -142,9 +147,11 @@ public class ESAnnualInitController {
|
||||
Map<String, Object> resultMap = annualInitService.importData(file);
|
||||
Object flag = resultMap.get("flag");
|
||||
if (flag == YesOrNoEnum.YES.getValue()) {
|
||||
return Result.OK(resultMap.get("dataList"));
|
||||
List<ProcessEsAnnualInit> dataList = (List<ProcessEsAnnualInit>) resultMap.get("dataList");
|
||||
return Result.OK(dataList);
|
||||
} else {
|
||||
return Result.error("导入失败", resultMap.get("msg"));
|
||||
List<String> msg = (List<String>) resultMap.get("msg");
|
||||
return Result.error(MessageUtils.getMessage(ResultCommon.IMPORT_ERROR), msg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -7,9 +7,10 @@ package com.jero.modules.activiti.process.esAnnualInit.entity;
|
||||
public class AnnualInitTaskNameConstant {
|
||||
|
||||
public static final String STANDARD_ENGINEER_INIT = "标准化工程师发起";
|
||||
public static final String CONTACT_USER_EDIT = "部所联络人选取审批人";
|
||||
public static final String CONTACT_USER_SELECT = "部所联络人选取审批人";
|
||||
public static final String STANDARD_ENGINEER_EDIT = "标准化工程师修改调整";
|
||||
public static final String MAIN_DRAFT_LEADER_APPROVAL = "主起草单位主管级领导审批下发";
|
||||
public static final String CONTACT_USER_EDIT = "部所联络人修改调整";
|
||||
public static final String MAIN_DRAFT_WRITE = "主起草人填写信息";
|
||||
public static final String CONTACT_USER_COLLECT = "部所联络人汇总";
|
||||
public static final String MAIN_DRAFT_LEADER_LEADER_APPROVAL = "主起草单位主管级领导审批";
|
||||
|
||||
+11
@@ -252,6 +252,9 @@ public class ProcessEsAnnualInit implements Serializable {
|
||||
@ApiModelProperty(value = "主起草单位责任人")
|
||||
private String mainDraftingUnitResponsiblePerson;
|
||||
|
||||
/**
|
||||
* 标准推进人
|
||||
*/
|
||||
@Excel(name = "*标准推进人", width = 15, orderNum = "16")
|
||||
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
|
||||
@ApiModelProperty(value = "标准推进人")
|
||||
@@ -304,6 +307,7 @@ public class ProcessEsAnnualInit implements Serializable {
|
||||
/**
|
||||
* 联络人
|
||||
*/
|
||||
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
|
||||
@Excel(name = "*联络人", width = 15, orderNum = "15")
|
||||
@ApiModelProperty(value = "联络人")
|
||||
private String contactUser;
|
||||
@@ -322,9 +326,16 @@ public class ProcessEsAnnualInit implements Serializable {
|
||||
@Dict(dicCode = "YN")
|
||||
private String rejectFlag;
|
||||
|
||||
/**
|
||||
* 执行id
|
||||
*/
|
||||
@ApiModelProperty(value = "执行id")
|
||||
private String executionId;
|
||||
|
||||
/**
|
||||
* 审批人
|
||||
*/
|
||||
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
|
||||
@ApiModelProperty(value = "审批人")
|
||||
private String approvalUser;
|
||||
|
||||
|
||||
+2
-1
@@ -6,6 +6,7 @@ import com.jero.modules.activiti.process.esAnnualInit.entity.ProcessEsAnnualInit
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author: Mzaxd
|
||||
@@ -21,6 +22,6 @@ public class AnnualInitDataVO {
|
||||
private List<ProcessEsAnnualInit> dataList;
|
||||
|
||||
@JsonProperty("flowUser")
|
||||
private AnnualInitFlowUserVO flowUser;
|
||||
private Map<String, Object> flowUser;
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -28,5 +28,5 @@ public interface ProcessEsAnnualInitService extends IService<ProcessEsAnnualInit
|
||||
|
||||
AnnualInitDataVO getHandleData(String taskId);
|
||||
|
||||
void approvalInitChange(AnnualInitDataVO annualInitData, boolean b);
|
||||
void approvalProcess(AnnualInitDataVO annualInitData, boolean b);
|
||||
}
|
||||
|
||||
+44
-51
@@ -18,6 +18,7 @@ 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.esAnnualReport.entity.ProcessEsAnnualReport;
|
||||
import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectType;
|
||||
import com.jero.modules.activiti.service.ProcessAllService;
|
||||
import com.jero.modules.activiti.service.ProcessNodeLinkService;
|
||||
@@ -87,37 +88,39 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
// 执行流程发起前的操作
|
||||
this.startRunTask(annualInitData);
|
||||
// 流程Key
|
||||
String processDefinitionKey = ProcessType.ES_ANNUAL_REPORT.getProcessKey();
|
||||
// 业务数据
|
||||
List<ProcessEsAnnualInit> annualReportList = annualInitData.getDataList();
|
||||
String processDefinitionKey = ProcessType.ES_ANNUAL_INIT.getProcessKey();
|
||||
// 通用数据
|
||||
CommonVO commonVO = annualInitData.getCommonVO();
|
||||
// 当前用户Id
|
||||
String userId = UserUtils.getUserId();
|
||||
// 人员数据
|
||||
Map<String, Object> variables = annualInitData.getFlowUser();
|
||||
// 业务数据
|
||||
List<ProcessEsAnnualInit> dataList = annualInitData.getDataList();
|
||||
// 设置流程变量
|
||||
Map<String, Object> variables = this.setVariables(annualInitData);
|
||||
Map<String, Object> actVariables = this.setVariables(annualInitData);
|
||||
// 删除草稿
|
||||
actFlowCommonService.getExistDraftAndRemove(commonVO, ProcessTypeEnum.ES_ANNUAL_INIT);
|
||||
// 启动流程
|
||||
ProcessInstance processInstance = actFlowCommonService.startProcess(processDefinitionKey, variables);
|
||||
ProcessInstance processInstance = actFlowCommonService.startProcess(processDefinitionKey, actVariables);
|
||||
// 获取流程实例ID
|
||||
String processDefinitionId = processInstance.getProcessDefinitionId();
|
||||
String processInstanceId = processInstance.getId();
|
||||
// 手动设置所有流程变量
|
||||
actFlowCommonService.setProcessVariables(processInstanceId, variables);
|
||||
actFlowCommonService.setProcessVariables(processInstanceId, actVariables);
|
||||
// 自动完成第一个任务
|
||||
actFlowCommonService.autoCompleteFirstTask(userId, processInstanceId, processDefinitionId, commonVO);
|
||||
// 设置流程实例Id
|
||||
annualReportList.forEach(annualReport -> annualReport.setProcessInstanceId(processInstanceId));
|
||||
// 保存到业务流程表
|
||||
saveBatch(annualReportList);
|
||||
// 保存选人信息
|
||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(variables));
|
||||
// 保存数据
|
||||
dataList.forEach(data -> data.setProcessInstanceId(processInstanceId));
|
||||
saveBatch(dataList);
|
||||
// 根据流程实例id更新流程总表
|
||||
String prcName = commonVO.getPrcName();
|
||||
String prcMes = commonVO.getPrcMes();
|
||||
Date dueTime = commonVO.getDueTime();
|
||||
Integer prcType = ProcessTypeEnum.ES_ANNUAL_INIT.getValue();
|
||||
actFlowCommonService.updateProcessAll(processInstanceId, userId, prcName, prcMes, prcType, dueTime);
|
||||
|
||||
}
|
||||
|
||||
public void startRunTask(AnnualInitDataVO annualInitData) {
|
||||
@@ -125,13 +128,13 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
}
|
||||
|
||||
public Map<String, Object> setVariables(AnnualInitDataVO annualInitData) {
|
||||
AnnualInitFlowUserVO annualInitFlowUserVO = annualInitData.getFlowUser();
|
||||
Map<String, Object> actVariables = new HashMap<>();
|
||||
Map<String, Object> flowUser = 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));
|
||||
List<String> contactUserList = dataList.stream().map(ProcessEsAnnualInit::getContactUser).collect(Collectors.toList());
|
||||
actVariables.put("contactUserList", contactUserList);
|
||||
actVariables.put("standardEngineer", flowUser.get("standardEngineer"));
|
||||
return actVariables;
|
||||
}
|
||||
|
||||
public Map<String, Object> setUserVariables(AnnualInitFlowUserVO userVO) {
|
||||
@@ -169,10 +172,13 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
if (!actFlowCommonService.taskExists(taskId)) {
|
||||
throw new JeroBootException("任务不存在");
|
||||
}
|
||||
String executionId = taskService.createTaskQuery().taskId(taskId).singleResult().getExecutionId();
|
||||
// 根据当前执行Id获取所有子执行Id
|
||||
List<String> executionIdList = actFlowCommonService.getAllChildExecutionIds(executionId);
|
||||
executionIdList.add(executionId);
|
||||
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();
|
||||
@@ -188,18 +194,17 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
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:
|
||||
case CONTACT_USER_SELECT:
|
||||
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 CONTACT_USER_EDIT:
|
||||
wrapper.eq(ProcessEsAnnualInit::getApprovalUser, userId);
|
||||
break;
|
||||
case MAIN_DRAFT_WRITE:
|
||||
wrapper.eq(ProcessEsAnnualInit::getPrcMainDraftUser, userId);
|
||||
break;
|
||||
@@ -213,29 +218,18 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
// do nothing now
|
||||
break;
|
||||
}
|
||||
// 选人组件内容填充
|
||||
annualInitDataVO.setFlowUser(this.getProcessUserInfo(processDefinitionId, processInstanceId));
|
||||
wrapper.eq(ProcessEsAnnualInit::getProcessInstanceId, processInstanceId);
|
||||
wrapper.eq(ProcessEsAnnualInit::getDelFlag, YesOrNoEnum.NO.getInteger());
|
||||
annualInitDataVO.setDataList(list(wrapper));
|
||||
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) {
|
||||
public void approvalProcess(AnnualInitDataVO annualInitData, boolean pass) {
|
||||
String userId = UserUtils.getUserId();
|
||||
CommonVO commonVO = annualInitData.getCommonVO();
|
||||
AnnualInitFlowUserVO flowUserVO = annualInitData.getFlowUser();
|
||||
Map<String, Object> flowUserVO = annualInitData.getFlowUser();
|
||||
List<ProcessEsAnnualInit> dataList = annualInitData.getDataList();
|
||||
String taskId = commonVO.getTaskId();
|
||||
// 获取task
|
||||
@@ -245,9 +239,8 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
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:
|
||||
case CONTACT_USER_SELECT:
|
||||
// 处理驳回
|
||||
if (pass) {
|
||||
dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.NO.getValue()));
|
||||
@@ -258,7 +251,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
// 设置本地变量
|
||||
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:
|
||||
@@ -267,7 +260,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
// 设置流程变量
|
||||
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:
|
||||
@@ -278,7 +271,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
// 设置本地变量
|
||||
List<String> mainDraftUserList = new ArrayList<>();
|
||||
dataList.forEach(d -> mainDraftUserList.add(d.getPrcMainDraftUser()));
|
||||
flowUserVO.setApprovalUserList(mainDraftUserList);
|
||||
|
||||
taskService.setVariableLocal(taskId, "mainDraftUserList", mainDraftUserList);
|
||||
}
|
||||
break;
|
||||
@@ -300,8 +293,8 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
}
|
||||
if (pass) {
|
||||
if (flowUserVO != null) {
|
||||
Map<String, Object> userMap = new HashMap<>(this.setUserVariables(flowUserVO));
|
||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userMap);
|
||||
// Map<String, Object> userMap = new HashMap<>(this.setUserVariables(flowUserVO));
|
||||
// processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userMap);
|
||||
}
|
||||
runtimeService.setVariable(processInstanceId, "pass", true);
|
||||
} else {
|
||||
@@ -416,11 +409,11 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
item.setAuthDept(excelUtils.translateDictValue("depart_name", "id", "sys_depart", item.getAuthDept(), listDict));
|
||||
item.setEnStandardCode(excelUtils.translateDictValue("enterprise_standard_code", item.getEnStandardCode(), listDict));
|
||||
item.setCooperationUnit(excelUtils.translateDictValue("depart_name", "id", "sys_depart", item.getCooperationUnit(), listDict));
|
||||
item.setMainDraftingUser(excelUtils.translateDictValue("realname", "id", "sys_user", item.getMainDraftingUser(), listDict));
|
||||
item.setMainDraftingUser(excelUtils.translateDictValue("CONCAT(realname, '(', username, ')')", "id", "sys_user", item.getMainDraftingUser(), listDict));
|
||||
item.setMainDraftingUnit(excelUtils.translateDictValue("depart_name", "id", "sys_depart", item.getMainDraftingUnit(), listDict));
|
||||
item.setMainDraftingUnitResponsiblePerson(excelUtils.translateDictValue("realname", "id", "sys_user", item.getMainDraftingUnitResponsiblePerson(), listDict));
|
||||
item.setStandardPromoter(excelUtils.translateDictValue("realname", "id", "sys_user", item.getStandardPromoter(), listDict));
|
||||
item.setContactUser(excelUtils.translateDictValue("realname", "id", "sys_user", item.getContactUser(), listDict));
|
||||
item.setStandardPromoter(excelUtils.translateDictValue("CONCAT(realname, '(', username, ')')", "id", "sys_user", item.getStandardPromoter(), listDict));
|
||||
item.setContactUser(excelUtils.translateDictValue("CONCAT(realname, '(', username, ')')", "id", "sys_user", item.getContactUser(), listDict));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -440,10 +433,10 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
continue;
|
||||
}
|
||||
plan.setSort(String.valueOf(i++));
|
||||
String authDept = plan.getProjectType();
|
||||
String authDept = plan.getAuthDept();
|
||||
String cooperationUnit = plan.getCooperationUnit();
|
||||
String mainDraftingUnit = plan.getMainDraftingUnit();
|
||||
String mainDraftingUser = plan.getProjectType();
|
||||
String mainDraftingUser = plan.getMainDraftingUser();
|
||||
String mainDraftingUnitResponsiblePerson = plan.getMainDraftingUnitResponsiblePerson();
|
||||
String standardPromoter = plan.getStandardPromoter();
|
||||
String contactUser = plan.getContactUser();
|
||||
|
||||
Reference in New Issue
Block a user