feat: 企标制修订流程-自动发起API

This commit is contained in:
2023-12-21 10:45:43 +08:00
parent a56601eeb2
commit 4dbd25b232
@@ -12,6 +12,8 @@ import com.jero.modules.activiti.enums.ProcessTypeEnum;
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.esInitChange.entity.ProcessEsInitChange;
import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPRevisionType;
import com.jero.modules.activiti.process.esRevision.entity.vo.InspectContentVO;
import com.jero.modules.activiti.process.esRevision.entity.vo.OtherDraftUserVO;
import com.jero.modules.activiti.process.esRevision.entity.ProcessEsRevision;
@@ -24,6 +26,9 @@ import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessNodeLinkService;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.sys.utils.UserUtils;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.RuntimeService;
@@ -68,6 +73,8 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
@Resource
private TaskService taskService;
@Resource
private EnterpriseStandardPlanService espService;
@Override
public void startProcess(ESRevisionDataVO revisionData) {
@@ -139,7 +146,41 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
@Override
public void autoStartProcess(ESRevisionDataVO revisionData) {
// 自动发起制修订流程 需要定义制定还是修订 并且存储对应的企标计划id 所有数据由第一个节点之后再保存
// 1. 根据企标编号找到对应企标的主起草人
String espId = revisionData.getData().getEspId();
EnterpriseStandardPlan esp = espService.getById(espId);
String mainDraftUser = esp.getMainDraftingUser();
if (StrUtil.isBlank(mainDraftUser)) {
log.info("新企标编号为{}的企标计划的主起草人为空,无法自动发起制修订流程", esp.getNewEnStandardNo());
return;
}
// 流程Key
String processDefinitionKey = ProcessType.ES_REVISION.getProcessKey();
// 设置流程变量
Map<String, Object> variables = new HashMap<>();
variables.put("mainDraftUser", mainDraftUser);
// 启动流程
ProcessInstance processInstance = actFlowCommonService.startProcess(processDefinitionKey, variables);
ProcessEsRevision revision = new ProcessEsRevision();
// 获取流程实例ID
String processDefinitionId = processInstance.getProcessDefinitionId();
String processInstanceId = processInstance.getId();
// 设置流程实例Id
revision.setProcessInstanceId(processInstanceId);
revision.setEspId(espId);
// 保存到业务流程表
save(revision);
// 保存选人信息
// 人员
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, variables);
// 根据流程实例id更新流程总表
String newStandardNo = esp.getNewEnStandardNo();
String newStandardName = esp.getNewEnStandardName();
String revisionType = esp.getApplicationCategory().equals(ESPRevisionType.ENACT.getValue()) ? "制定" : "修订";
String prcName = newStandardNo + "-" + newStandardName + "-" + revisionType;
Integer prcType = ProcessTypeEnum.ES_REVISION.getValue();
actFlowCommonService.updateProcessAll(processInstanceId, mainDraftUser, prcName, null, prcType, null);
}
@Override