feat: 企标封存流程
This commit is contained in:
+5
-1
@@ -15,7 +15,11 @@ public enum ProcessType {
|
||||
ES_ANNUAL_REPORT("年度制修订-各部门主动上报", "2", "es-annual-report", "processEsAnnualReportServiceImpl"),
|
||||
ES_ANNUAL_INIT("年度制修订-标准化部门主动发起", "3", "es-annual-init", "processEsAnnualInitServiceImpl"),
|
||||
FB_ENTRY_CHANGE("标准法规入库/变更流程", "4", "fb-entry-change", "ProcessFbEntryChangeServiceImpl"),
|
||||
ES_ABOLISH("标准法规入库/变更流程", "5", "es-abolish", "ProcessEsAbolishServiceImpl"),
|
||||
ES_ABOLISH("企标废止流程", "5", "es-abolish", "ProcessEsAbolishServiceImpl"),
|
||||
ES_ARCHIVE("企标封存流程", "6", "es-archive", "ProcessEsArchiveServiceImpl"),
|
||||
ES_CHANGE("企标变更流程", "7", "es-change", "ProcessEsChangeServiceImpl"),
|
||||
ES_RECHECK("企标复审流程", "8", "es-recheck", "ProcessEsRecheckServiceImpl"),
|
||||
ES_ENABLE("已封存企标启用流程", "9", "es-enable", "ProcessEsEnableServiceImpl"),
|
||||
;
|
||||
|
||||
private final String name;
|
||||
|
||||
+16
-16
@@ -21,7 +21,7 @@ import javax.annotation.Resource;
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@Api(tags = "企标封存发起流程")
|
||||
@Api(tags = "企标封存流程")
|
||||
@RequestMapping("/process/es/archive")
|
||||
public class ESArchiveController {
|
||||
|
||||
@@ -32,12 +32,12 @@ public class ESArchiveController {
|
||||
private ActFlowCommonService actFlowCommonService;
|
||||
|
||||
/**
|
||||
* 新增立项变更申请
|
||||
* 新增企标封存申请
|
||||
*
|
||||
* @param archiveData
|
||||
*/
|
||||
@AutoLog(value = "企标封存发起流程-发起流程")
|
||||
@ApiOperation(value="企标封存发起流程-发起流程", notes="企标封存发起流程-发起流程")
|
||||
@AutoLog(value = "企标封存流程-发起流程")
|
||||
@ApiOperation(value="企标封存流程-发起流程", notes="企标封存流程-发起流程")
|
||||
@PostMapping("/start")
|
||||
public Result<?> startProcess(@RequestBody ESArchiveDataVO archiveData) {
|
||||
archiveService.startProcess(archiveData);
|
||||
@@ -48,8 +48,8 @@ public class ESArchiveController {
|
||||
* 保存到待办
|
||||
* @param archiveData
|
||||
*/
|
||||
@AutoLog(value = "企标封存发起流程-保存")
|
||||
@ApiOperation(value="企标封存发起流程-保存", notes="企标封存发起流程-保存")
|
||||
@AutoLog(value = "企标封存流程-保存")
|
||||
@ApiOperation(value="企标封存流程-保存", notes="企标封存流程-保存")
|
||||
@PostMapping("/save")
|
||||
public Result<?> save(@RequestBody ESArchiveDataVO archiveData) {
|
||||
archiveService.saveToDraft(archiveData);
|
||||
@@ -60,8 +60,8 @@ public class ESArchiveController {
|
||||
* 保存到待办
|
||||
* @param taskId
|
||||
*/
|
||||
@AutoLog(value = "企标封存发起流程-办理")
|
||||
@ApiOperation(value="企标封存发起流程-办理", notes="企标封存发起流程-办理")
|
||||
@AutoLog(value = "企标封存流程-办理")
|
||||
@ApiOperation(value="企标封存流程-办理", notes="企标封存流程-办理")
|
||||
@GetMapping("/handle/{taskId}")
|
||||
@Translation
|
||||
public Result<?> handle(@PathVariable("taskId") String taskId) {
|
||||
@@ -73,11 +73,11 @@ public class ESArchiveController {
|
||||
*
|
||||
* @param archiveData
|
||||
*/
|
||||
@AutoLog(value = "企标封存发起流程-同意")
|
||||
@ApiOperation(value="企标封存发起流程-同意", notes="企标封存发起流程-同意")
|
||||
@AutoLog(value = "企标封存流程-同意")
|
||||
@ApiOperation(value="企标封存流程-同意", notes="企标封存流程-同意")
|
||||
@PostMapping("/agree")
|
||||
public Result<?> agree(@RequestBody ESArchiveDataVO archiveData) {
|
||||
archiveService.approvalInitChange(archiveData, true);
|
||||
archiveService.approval(archiveData, true);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@@ -86,11 +86,11 @@ public class ESArchiveController {
|
||||
*
|
||||
* @param archiveData
|
||||
*/
|
||||
@AutoLog(value = "企标封存发起流程-驳回")
|
||||
@ApiOperation(value="企标封存发起流程-驳回", notes="企标封存发起流程-驳回")
|
||||
@AutoLog(value = "企标封存流程-驳回")
|
||||
@ApiOperation(value="企标封存流程-驳回", notes="企标封存流程-驳回")
|
||||
@PostMapping("/reject")
|
||||
public Result<?> reject(@RequestBody ESArchiveDataVO archiveData) {
|
||||
archiveService.approvalInitChange(archiveData, false);
|
||||
archiveService.approval(archiveData, false);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@@ -98,8 +98,8 @@ public class ESArchiveController {
|
||||
* 转办
|
||||
*
|
||||
*/
|
||||
@AutoLog(value = "企标封存发起流程-转办")
|
||||
@ApiOperation(value="企标封存发起流程-转办", notes="企标封存发起流程-转办")
|
||||
@AutoLog(value = "企标封存流程-转办")
|
||||
@ApiOperation(value="企标封存流程-转办", notes="企标封存流程-转办")
|
||||
@PostMapping(value = "/transfer")
|
||||
public Result<?> transfer(@RequestBody TransferVO transferVO) {
|
||||
actFlowCommonService.transfer(transferVO.getTaskId(), transferVO.getUserId());
|
||||
|
||||
+4
-3
@@ -7,6 +7,7 @@ import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author: Mzaxd
|
||||
@@ -16,11 +17,11 @@ import java.util.List;
|
||||
public class ESArchiveDataVO {
|
||||
|
||||
@JsonProperty("common")
|
||||
CommonVO common;
|
||||
private CommonVO common;
|
||||
|
||||
@JsonProperty("data")
|
||||
ProcessEsArchive data;
|
||||
private ProcessEsArchive data;
|
||||
|
||||
@JsonProperty("flowUser")
|
||||
ESArchiveFlowUserVO flowUser;
|
||||
private Map<String, Object> flowUser;
|
||||
}
|
||||
|
||||
+1
-1
@@ -17,5 +17,5 @@ public interface ProcessEsArchiveService extends IService<ProcessEsArchive> {
|
||||
|
||||
ESArchiveDataVO getHandleData(String taskId);
|
||||
|
||||
void approvalInitChange(ESArchiveDataVO archiveData, boolean pass);
|
||||
void approval(ESArchiveDataVO archiveData, boolean pass);
|
||||
}
|
||||
|
||||
+30
-55
@@ -14,6 +14,7 @@ import com.jero.modules.activiti.process.common.entity.ProcessDraft;
|
||||
import com.jero.modules.activiti.process.common.enums.ProcessType;
|
||||
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
|
||||
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
|
||||
import com.jero.modules.activiti.process.esAbolish.entity.vo.ESAbolishDataVO;
|
||||
import com.jero.modules.activiti.process.esArchive.entity.ProcessEsArchive;
|
||||
import com.jero.modules.activiti.process.esArchive.entity.vo.ESArchiveDataVO;
|
||||
import com.jero.modules.activiti.process.esArchive.entity.vo.ESArchiveFlowUserVO;
|
||||
@@ -67,7 +68,7 @@ public class ProcessEsArchiveServiceImpl extends ServiceImpl<ProcessEsArchiveMap
|
||||
// 执行流程发起前的操作
|
||||
this.startRunTask(archiveData);
|
||||
// 流程Key
|
||||
String processDefinitionKey = ProcessType.ES_INIT_CHANGE.getProcessKey();
|
||||
String processDefinitionKey = ProcessType.ES_ARCHIVE.getProcessKey();
|
||||
// 当前用户Id
|
||||
String userId = UserUtils.getUserId();
|
||||
// 业务数据
|
||||
@@ -75,16 +76,16 @@ public class ProcessEsArchiveServiceImpl extends ServiceImpl<ProcessEsArchiveMap
|
||||
// 通用数据
|
||||
CommonVO common = archiveData.getCommon();
|
||||
// 人员数据
|
||||
ESArchiveFlowUserVO flowUser = archiveData.getFlowUser();
|
||||
Map<String, Object> variables = archiveData.getFlowUser();
|
||||
// 设置流程变量
|
||||
Map<String, Object> variables = this.setVariables(flowUser);
|
||||
Map<String, Object> actVariables = this.setVariables(variables);
|
||||
// 启动流程
|
||||
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, common);
|
||||
// 设置流程实例Id
|
||||
@@ -101,30 +102,29 @@ public class ProcessEsArchiveServiceImpl extends ServiceImpl<ProcessEsArchiveMap
|
||||
actFlowCommonService.updateProcessAll(processInstanceId, userId, prcName, prcMes, prcType, dueTime);
|
||||
}
|
||||
|
||||
public Map<String, Object> setVariables(ESArchiveFlowUserVO flowUser) {
|
||||
boolean counterSign = StrUtil.isNotBlank(flowUser.getRelatedUser());
|
||||
HashMap<String, Object> map = new HashMap<>(this.setUserVariables(flowUser));
|
||||
actFlowCommonService.putIfNotNull(map, "counterSign", counterSign);
|
||||
return map;
|
||||
}
|
||||
|
||||
public Map<String, Object> setUserVariables(ESArchiveFlowUserVO flowUser) {
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
// 使用一个通用方法来只在不为空时添加键值对
|
||||
actFlowCommonService.putIfNotNull(map, "createUser", flowUser.getCreateUser());
|
||||
actFlowCommonService.putIfNotNull(map, "leader", flowUser.getLeader());
|
||||
actFlowCommonService.putIfNotNull(map, "standardizationApprovalUser", flowUser.getStandardizationUser());
|
||||
actFlowCommonService.putIfNotNull(map, "relatedUserList", Optional.ofNullable(flowUser.getRelatedUser()).map(s -> Arrays.asList(s.split(","))).orElse(null));
|
||||
return map;
|
||||
public Map<String, Object> setVariables(Map<String, Object> flowUser) {
|
||||
HashMap<String, Object> actVariables = new HashMap<>();
|
||||
if (flowUser.get("relatedUserList") == null || StrUtil.isBlank((String)flowUser.get("relatedUserList"))) {
|
||||
actFlowCommonService.putIfNotNull(actVariables, "countersign", false);
|
||||
} else {
|
||||
actFlowCommonService.putIfNotNull(actVariables, "countersign", true);
|
||||
String relatedUsers = (String) flowUser.get("relatedUserList");
|
||||
// 将relatedUserList从逗号拼接转为List
|
||||
List<String> relatedUserList = StrUtil.split(relatedUsers, ',');
|
||||
actFlowCommonService.putIfNotNull(actVariables, "relatedUserList", relatedUserList);
|
||||
}
|
||||
for (Map.Entry<String, Object> entry : flowUser.entrySet()) {
|
||||
String key = entry.getKey();
|
||||
if (!key.equals("relatedUserList")) {
|
||||
actVariables.put(key, entry.getValue());
|
||||
}
|
||||
}
|
||||
return actVariables;
|
||||
}
|
||||
|
||||
private Map<String, Object> getUserMap(Map<String, Object> variables) {
|
||||
variables.remove("pass");
|
||||
variables.remove("counterSign");
|
||||
// 转成逗号拼接
|
||||
variables.put("relatedUserList", Optional.ofNullable((List<String>) variables.get("relatedUserList"))
|
||||
.map(list -> String.join(",", list))
|
||||
.orElse(""));
|
||||
variables.remove("countersign");
|
||||
return variables;
|
||||
}
|
||||
|
||||
@@ -189,49 +189,24 @@ public class ProcessEsArchiveServiceImpl extends ServiceImpl<ProcessEsArchiveMap
|
||||
lambdaQueryWrapper.eq(ProcessEsArchive::getDelFlag, YesOrNoEnum.NO.getValue());
|
||||
ProcessEsArchive data = getOne(lambdaQueryWrapper);
|
||||
archiveData.setData(data);
|
||||
// 选人组件内容填充
|
||||
archiveData.setFlowUser(this.getProcessUserInfo(processDefinitionId, processInstanceId));
|
||||
return archiveData;
|
||||
}
|
||||
|
||||
private ESArchiveFlowUserVO getProcessUserInfo(String processDefinitionId, String processInstanceId) {
|
||||
List<ProcessNode> nodeList = processNodeService.getNodeList(processDefinitionId, processInstanceId);
|
||||
ESArchiveFlowUserVO flowUser = new ESArchiveFlowUserVO();
|
||||
Map<String, ProcessNode> userMap = nodeList.stream().collect(Collectors.toMap(ProcessNode::getVariableName, node -> node));
|
||||
Optional.ofNullable(userMap.get("createUser")).ifPresent(node -> flowUser.setCreateUser(node.getLinkUserIds()));
|
||||
Optional.ofNullable(userMap.get("leader")).ifPresent(node -> flowUser.setLeader(node.getLinkUserIds()));
|
||||
Optional.ofNullable(userMap.get("standardizationUser")).ifPresent(node -> flowUser.setStandardizationUser(node.getLinkUserIds()));
|
||||
Optional.ofNullable(userMap.get("relatedUserList")).ifPresent(node -> flowUser.setRelatedUser(node.getLinkUserIds()));
|
||||
return flowUser;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void approvalInitChange(ESArchiveDataVO archiveData, boolean pass) {
|
||||
public void approval(ESArchiveDataVO abolishData, boolean pass) {
|
||||
String userId = UserUtils.getUserId();
|
||||
CommonVO commonVO = archiveData.getCommon();
|
||||
ProcessEsArchive data = archiveData.getData();
|
||||
CommonVO commonVO = abolishData.getCommon();
|
||||
String taskId = commonVO.getTaskId();
|
||||
if (StrUtil.isBlank(taskId) && !actFlowCommonService.taskExists(taskId)) {
|
||||
throw new JeroBootException("taskId为空或任务不存在");
|
||||
}
|
||||
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
|
||||
String processDefinitionId = actFlowCommonService.getProcessDefId(processInstanceId);
|
||||
if (pass) {
|
||||
if (data != null) {
|
||||
saveOrUpdate(data);
|
||||
ESArchiveFlowUserVO flowUserInfoVO = archiveData.getFlowUser();
|
||||
Map<String, Object> variables = this.setVariables(flowUserInfoVO);
|
||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(variables));
|
||||
actFlowCommonService.setProcessVariables(processInstanceId, variables);
|
||||
}
|
||||
runtimeService.setVariable(processInstanceId, "pass", true);
|
||||
} else {
|
||||
// 设置流程变量
|
||||
runtimeService.setVariable(processInstanceId, "pass", false);
|
||||
}
|
||||
// 设置流程变量
|
||||
runtimeService.setVariable(processInstanceId, "pass", pass);
|
||||
// 更新审批表为完成,填充数据
|
||||
actFlowCommonService.updateApprovalInfo(commonVO, taskId, pass);
|
||||
//审批节点
|
||||
// 审批节点
|
||||
actFlowCommonService.completeTask(taskId, userId);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user