优化分析项库绑定流程模版和知识库

This commit is contained in:
daiqy88
2025-12-10 09:27:47 +08:00
parent 306dee6d66
commit 2a49a1e1a5
21 changed files with 982 additions and 14 deletions

View File

@@ -0,0 +1,19 @@
package com.sdm.capability.model.entity;
import com.sdm.common.entity.pojo.task.TaskBaseInfo;
import java.util.ArrayList;
import java.util.List;
public class SimulationFlowTaskBindInfo {
public String simulationPoolId;
public String simulationPoolName;
public String simulationPoolVersion;
public List<String> simulationPoolTaskIds = new ArrayList<>();
public List<TaskBaseInfo> taskBaseInfoList = new ArrayList();
}

View File

@@ -5,6 +5,9 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Data
public class SimulationFlowTemplate extends BaseEntity {
@@ -60,4 +63,6 @@ public class SimulationFlowTemplate extends BaseEntity {
@Schema(description = "评审流程模版Id")
public String approveFlowTemplateId;
public List<SimulationFlowTaskBindInfo> simulationPoolInfoList = new ArrayList();
}

View File

@@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.sdm.capability.dao.FlowMapper;
import com.sdm.capability.model.entity.SimulationFlowTaskBindInfo;
import com.sdm.capability.model.entity.SimulationFlowTemplate;
import com.sdm.capability.model.entity.SimulationFlowTemplateBrief;
import com.sdm.capability.service.IFlowService;
@@ -12,11 +13,17 @@ import com.sdm.common.common.ThreadLocalContext;
import com.sdm.common.entity.bo.DataPageInfo;
import com.sdm.common.entity.constants.NumberConstants;
import com.sdm.common.entity.flowable.dto.ProcessDefinitionDTO;
import com.sdm.common.entity.pojo.task.FlowBindTaskPoolItem;
import com.sdm.common.entity.pojo.task.TaskBaseInfo;
import com.sdm.common.entity.req.system.LaunchApproveReq;
import com.sdm.common.entity.req.task.BindTaskAndFlowTemplateReq;
import com.sdm.common.entity.resp.capability.FlowTemplateResp;
import com.sdm.common.entity.resp.flowable.DeployFlowableResp;
import com.sdm.common.feign.impl.capability.SimulationFlowFeignClientImpl;
import com.sdm.common.feign.impl.flowable.FlowableClientFeignClientImpl;
import com.sdm.common.feign.impl.system.ApproveFeignClientImpl;
import com.sdm.common.feign.impl.task.SimuluationTaskPoolFeignClientImpl;
import com.sdm.common.feign.inter.capability.ISimulationFlowFeignClient;
import com.sdm.common.service.BaseService;
import com.sdm.common.utils.Tools;
import lombok.extern.slf4j.Slf4j;
@@ -45,6 +52,9 @@ public class FlowServiceImpl extends BaseService implements IFlowService {
@Autowired
private ObjectMapper objectMapper;
@Autowired
private SimuluationTaskPoolFeignClientImpl simuluationTaskPoolFeignClient;
@Override
public SdmResponse createFlowTemplateDraft(SimulationFlowTemplate flowTemplate)
{
@@ -74,11 +84,44 @@ public class FlowServiceImpl extends BaseService implements IFlowService {
else
{
response.setData(flowTemplate);
bindFLowTemplateAndTask(flowTemplate.templateCode,flowTemplate.simulationPoolInfoList);
}
}
return response;
}
/**
* 绑定流程模版与分析库中的分析项
* @param flowCode
* @param simulationPoolInfoList
*/
private void bindFLowTemplateAndTask(String flowCode, List<SimulationFlowTaskBindInfo> simulationPoolInfoList)
{
if(simulationPoolInfoList == null || simulationPoolInfoList.isEmpty())
return;
BindTaskAndFlowTemplateReq req = new BindTaskAndFlowTemplateReq();
req.flowCode = flowCode;
req.bindTaskkPoolItem = new ArrayList<>();
for(SimulationFlowTaskBindInfo bindInfo : simulationPoolInfoList)
{
FlowBindTaskPoolItem bindTaskPoolItem = new FlowBindTaskPoolItem();
bindTaskPoolItem.flowCode = flowCode;
bindTaskPoolItem.poolName = bindInfo.simulationPoolName;
bindTaskPoolItem.version = bindInfo.simulationPoolVersion;
for(String taskId : bindInfo.simulationPoolTaskIds)
{
TaskBaseInfo taskBaseInfo = new TaskBaseInfo();
taskBaseInfo.poolName = bindInfo.simulationPoolName;
taskBaseInfo.version = bindInfo.simulationPoolVersion;
taskBaseInfo.uuid = taskId;
bindTaskPoolItem.taskList.add(taskBaseInfo);
}
req.bindTaskkPoolItem.add(bindTaskPoolItem);
}
simuluationTaskPoolFeignClient.updateTaskAndFlowTemplate(req);
}
@Override
public SdmResponse upgradeFlowTemplateDraft(SimulationFlowTemplate flowTemplate) {
@@ -141,6 +184,10 @@ public class FlowServiceImpl extends BaseService implements IFlowService {
{
response = SdmResponse.failed("更新路程模版草稿失败");
}
else
{
bindFLowTemplateAndTask(flowTemplate.templateCode,flowTemplate.simulationPoolInfoList);
}
return response;
}
@@ -273,13 +320,30 @@ public class FlowServiceImpl extends BaseService implements IFlowService {
{
if(latestVersions.size() > endPos)
{
queryTemplate = latestVersions.subList(beginPos,endPos+1);
queryTemplate = latestVersions.subList(beginPos,endPos);
}
else
{
queryTemplate = latestVersions.subList(beginPos,latestVersions.size());
}
}
for(SimulationFlowTemplate flowTemplate : queryTemplate)
{
SdmResponse bindResponse = simuluationTaskPoolFeignClient.getFlowTemplateBindTaskRelate(flowTemplate.templateCode);
if(bindResponse.isSuccess())
{
List<FlowBindTaskPoolItem> flowBindTaskPoolItems = (List<FlowBindTaskPoolItem>)bindResponse.getData();
for(FlowBindTaskPoolItem flowBindTaskPoolItem : flowBindTaskPoolItems)
{
SimulationFlowTaskBindInfo flowTaskBindInfo = new SimulationFlowTaskBindInfo();
flowTaskBindInfo.simulationPoolName = flowBindTaskPoolItem.poolName;
flowTaskBindInfo.simulationPoolVersion = flowBindTaskPoolItem.version;
flowTaskBindInfo.taskBaseInfoList = flowBindTaskPoolItem.taskList;
flowTemplate.simulationPoolInfoList.add(flowTaskBindInfo);
}
}
}
DataPageInfo<List<SimulationFlowTemplate>> pageInfo = new DataPageInfo<>();
pageInfo.data = queryTemplate;
pageInfo.total = total;