集成CID仿真评审流

This commit is contained in:
daiqy88
2025-11-05 14:48:31 +08:00
parent 1ec3950d52
commit e8e2459471
16 changed files with 237 additions and 57 deletions

View File

@@ -20,13 +20,12 @@ public class SimuluationTaskPoolController {
@ResponseBody
SdmResponse createSimulationTaskPool(@RequestBody JSONObject jsonObject )
{
return service.createTaskPool(jsonObject);
}
@GetMapping(value = "/getTaskPool")
@ResponseBody
SdmResponse createSimulationTaskPool(@RequestParam String poolName,@RequestParam String version )
SdmResponse getSimulationTaskPool(@RequestParam String poolName,@RequestParam String version )
{
return service.getPoolTreeByVersion(poolName,version);
}
@@ -86,5 +85,7 @@ public class SimuluationTaskPoolController {
{
return service.getSimulationPoolTasks(poolName,version);
}
}

View File

@@ -8,6 +8,9 @@ import java.util.List;
public class TaskPoolTree extends BaseBean {
public TaskPoolBrief poolBrief;
public List<TaskPoolNode> nodes = new ArrayList<>();
public boolean bApprove = false;
public String approveTemplateId;
public String approveTemplateName;
public void addTopNodeOrder(TaskPoolNode node)
{

View File

@@ -6,7 +6,7 @@ import com.sdm.common.entity.bo.BaseBean;
import java.util.ArrayList;
import java.util.List;
public class TaskPoolUpdateBean {
public class TaskPoolUpdateBean extends BaseBean{
public static class TaskPoolNodeAdd extends BaseBean
{

View File

@@ -4,6 +4,7 @@ package com.sdm.task.service;
import com.alibaba.fastjson2.JSONObject;
import com.sdm.common.common.SdmResponse;
import com.sdm.common.entity.req.system.LaunchApproveReq;
import com.sdm.task.model.entity.TaskPoolUpdateBean;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;
@@ -30,4 +31,6 @@ public interface ISimulationTaskPoolService {
SdmResponse importTaskPool(MultipartFile multipartFile,String dicts,String poolName);
SdmResponse exportTaskPool(HttpServletResponse httpServletResponse,JSONObject jsonObject);
SdmResponse handleApproveNotice(LaunchApproveReq req, int status);
}

View File

@@ -1,11 +1,14 @@
package com.sdm.task.service.impl;
import cn.hutool.poi.excel.cell.CellSetter;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.json.JsonMapper;
import com.sdm.common.common.ResultCode;
import com.sdm.common.common.SdmResponse;
import com.sdm.common.common.ThreadLocalContext;
import com.sdm.common.entity.req.system.LaunchApproveReq;
import com.sdm.common.feign.inter.system.IApproveFeignClient;
import com.sdm.common.service.BaseService;
import com.sdm.common.utils.SystemOperate;
import com.sdm.task.dao.SimulationPoolMapper;
@@ -14,14 +17,10 @@ import com.sdm.task.model.entity.*;
import com.sdm.task.service.ISimulationTaskPoolService;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.net.URLEncoder;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -35,6 +34,9 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
@Autowired
private TaskPoolOperate poolOperate;
@Autowired
private IApproveFeignClient approveFeignClient;
/**
* 添加仿真分析库节点以及分析项
* @param poolTree
@@ -371,6 +373,30 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
return response;
}
/**
* 发起仿真库评审
* @param templateId
* @param templateName
* @param approveContents
* @param approveAction
* @return
*/
private boolean launchTaskPoolApprove(String templateId, String templateName,String approveContents,int approveAction)
{
LaunchApproveReq req = new LaunchApproveReq();
req.templateId = templateId;
req.templateName = templateName;
req.approveContents = approveContents;
req.approveAction = approveAction;
req.approveType = 1;
req.approveTitle = "仿真地图评审";
req.tenantId = ThreadLocalContext.getTenantId();
req.userId = ThreadLocalContext.getUserId();
req.creator = ThreadLocalContext.getUserName();
SdmResponse response = approveFeignClient.launchApproval(req);
return response.isSuccess();
}
/**
* 创建仿真分析项库
* @param poolTreeObj
@@ -379,6 +405,20 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
public SdmResponse createTaskPool(JSONObject poolTreeObj)
{
TaskPoolTree poolTree = paraseTaskPoolTree(poolTreeObj);
if(poolTree.bApprove)
{
String approveContents = poolTreeObj.toJSONString();
int approveAction = 1;
//发起评审
if(launchTaskPoolApprove(poolTree.approveTemplateId,poolTree.approveTemplateName,approveContents,approveAction))
{
return SdmResponse.success();
}
else
{
return SdmResponse.failed("发起评审失败");
}
}
SdmResponse response = SdmResponse.success();
TaskPoolBrief poolBrief = poolTree.poolBrief;
poolBrief.currentVersion = "V1.0"; //新建时初始版本号
@@ -977,6 +1017,21 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
@Override
public SdmResponse updateTaskPoolTree(TaskPoolUpdateBean updateBean)
{
//评审处理
if(updateBean.bApprove)
{
String approveContents = updateBean.toString();
int approveAction = 2;
//发起评审
if(launchTaskPoolApprove(updateBean.approveTemplateId,updateBean.approveTemplateName,approveContents,approveAction))
{
return SdmResponse.success();
}
else
{
return SdmResponse.failed("发起评审失败");
}
}
SdmResponse response = SdmResponse.success();
if(!preProcessTaskUpdateBean(updateBean))
{
@@ -1238,7 +1293,8 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
{
poolBriefObj.put("poolName",poolName);
}
response = createTaskPool(poolTreeObj);
//response = createTaskPool(poolTreeObj);
response.setData(poolBriefObj);
}
return response;
}
@@ -1420,12 +1476,71 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
SystemOperate.outputHttpFileStream(httpServletResponse, taskPoolFileName, taskPoolSaveName);
file.delete();
}
}
return response;
}
/**
* 评审处理
* @param approveReq
* @param status
* @return
*/
@Override
public SdmResponse handleApproveNotice(LaunchApproveReq approveReq,int status)
{
SdmResponse response = SdmResponse.success();
String contents = approveReq.approveContents;
int approveAction = approveReq.approveAction;
if(status == 2 && contents != null) //评审成功
{
switch(approveAction)
{
case 1:
createTaskPoolApprovePostHandle(contents);
break;
case 2:
updateTaskPoolApprovePostHandle(contents);
break;
default:
break;
}
}
return response;
}
/**
* 创建仿真地图评审后处理
* @param approveContents
*/
private void createTaskPoolApprovePostHandle(String approveContents)
{
JSONObject poolTreeObj = JSONObject.from(approveContents);
poolTreeObj.put("bApprove",false); //清除上次评审标记
createTaskPool(poolTreeObj);
}
/**
* 更新仿真地图评审后处理
* @param approveContents
*/
private void updateTaskPoolApprovePostHandle(String approveContents)
{
ObjectMapper objectMapper = new ObjectMapper();
try {
TaskPoolUpdateBean updateBean = objectMapper.readValue(approveContents, TaskPoolUpdateBean.class);
if(updateBean != null)
{
updateBean.bApprove = false;//清除上次评审标记
updateTaskPoolTree(updateBean);
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}