From e8e245947124968937df121c7b4dd75c1f16be9d Mon Sep 17 00:00:00 2001 From: daiqy88 Date: Wed, 5 Nov 2025 14:48:31 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=9B=86=E6=88=90CID=E4=BB=BF=E7=9C=9F?= =?UTF-8?q?=E8=AF=84=E5=AE=A1=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sdm/common/common/ThreadLocalContext.java | 21 +++ .../com/sdm/common/entity/bo/BaseBean.java | 4 + .../entity/req/system/LaunchApproveReq.java | 39 ++++++ .../inter/system/IApproveFeignClient.java | 15 ++ .../inter/system/ISysUserFeignClient.java | 2 + .../controller/SystemApproveController.java | 2 +- .../system/dao/SimulationApproveMapper.java | 2 +- .../com/sdm/system/filter/AuthFilter.java | 21 +-- .../system/model/entity/ApproveFlowBean.java | 7 +- .../service/ISimulatinoApprovalService.java | 2 +- .../impl/SimulationApproveServiceImpl.java | 35 ++--- .../SimuluationTaskPoolController.java | 5 +- .../sdm/task/model/entity/TaskPoolTree.java | 3 + .../task/model/entity/TaskPoolUpdateBean.java | 2 +- .../service/ISimulationTaskPoolService.java | 3 + .../impl/SimulationTaskPoolServiceImpl.java | 131 ++++++++++++++++-- 16 files changed, 237 insertions(+), 57 deletions(-) create mode 100644 common/src/main/java/com/sdm/common/entity/req/system/LaunchApproveReq.java create mode 100644 common/src/main/java/com/sdm/common/feign/inter/system/IApproveFeignClient.java diff --git a/common/src/main/java/com/sdm/common/common/ThreadLocalContext.java b/common/src/main/java/com/sdm/common/common/ThreadLocalContext.java index f33133a3..fbe050c3 100644 --- a/common/src/main/java/com/sdm/common/common/ThreadLocalContext.java +++ b/common/src/main/java/com/sdm/common/common/ThreadLocalContext.java @@ -1,6 +1,10 @@ package com.sdm.common.common; +import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; + +import java.net.http.HttpRequest; /** * son thread get message from father thread @@ -35,6 +39,23 @@ public class ThreadLocalContext { } + public static boolean verifyRequest(HttpServletRequest request) + { + String jobNumber = StringUtils.isEmpty(request.getHeader("jobNumber")) ? "" : request.getHeader("jobNumber"); + Long usrId = StringUtils.isEmpty(request.getHeader("userId")) ? null : Long.valueOf(request.getHeader("userId")); + Long tenantId = StringUtils.isEmpty(request.getHeader("tenantId")) ? null : Long.valueOf(request.getHeader("tenantId")); + String userName = StringUtils.isEmpty(request.getHeader("userName")) ? null : request.getHeader("userName"); + if(usrId==null || tenantId==null || userName==null) + return false; + setJobNumber(jobNumber); + setCompany(request.getHeader("company")); + setSessionId(request.getHeader("sessionId")); + setUserId(usrId); + setTenantId(tenantId); + setUserName(userName); + return true; + } + public static void setUserContext(UserContext userContext) { current.get().setUserContext(userContext); } diff --git a/common/src/main/java/com/sdm/common/entity/bo/BaseBean.java b/common/src/main/java/com/sdm/common/entity/bo/BaseBean.java index d90d3ea8..54b906e2 100644 --- a/common/src/main/java/com/sdm/common/entity/bo/BaseBean.java +++ b/common/src/main/java/com/sdm/common/entity/bo/BaseBean.java @@ -3,6 +3,10 @@ package com.sdm.common.entity.bo; import java.lang.reflect.Field; public class BaseBean { + + public boolean bApprove = false; + public String approveTemplateId; + public String approveTemplateName; protected void init() { Class cls = this.getClass(); diff --git a/common/src/main/java/com/sdm/common/entity/req/system/LaunchApproveReq.java b/common/src/main/java/com/sdm/common/entity/req/system/LaunchApproveReq.java new file mode 100644 index 00000000..d11639eb --- /dev/null +++ b/common/src/main/java/com/sdm/common/entity/req/system/LaunchApproveReq.java @@ -0,0 +1,39 @@ +package com.sdm.common.entity.req.system; + +public class LaunchApproveReq { + + + + public int id; + + + public String cidFlowId; //CID生成的流程ID + + public int approveType; //审批类型 1:仿真地图审批 2:知识库审批 + + public int approveAction; //评审动作 1:新增 2:修改 3:删除 + + public String approveContents = ""; //审批内容 + + public String approveTitle; //审批主题 + + public int approveStatus = 1; //审批状态 1: 审批中 2:审批通过 3:审批不通过 + + public String comment = ""; //审批描述 + + public long tenantId = 0; //租户ID + + public String replyUrl; //审批回复URL + + public String templateName; //模版名称 + + public String templateId; //评审流程模版ID + + public int replyStatus = 0; //审批回复状态 0:未回复 1:已回复 + + public long userId = 0; //用户ID + + public String creator; //审批创建者 + + public String createTime; //审批创建时间 +} diff --git a/common/src/main/java/com/sdm/common/feign/inter/system/IApproveFeignClient.java b/common/src/main/java/com/sdm/common/feign/inter/system/IApproveFeignClient.java new file mode 100644 index 00000000..76df3759 --- /dev/null +++ b/common/src/main/java/com/sdm/common/feign/inter/system/IApproveFeignClient.java @@ -0,0 +1,15 @@ +package com.sdm.common.feign.inter.system; + +import com.sdm.common.common.SdmResponse; +import com.sdm.common.entity.req.system.LaunchApproveReq; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@FeignClient(name = "system") +public interface IApproveFeignClient { + + @PostMapping("/systemApprove/launchApprove") + public SdmResponse launchApproval(@RequestBody LaunchApproveReq approveReq); + +} diff --git a/common/src/main/java/com/sdm/common/feign/inter/system/ISysUserFeignClient.java b/common/src/main/java/com/sdm/common/feign/inter/system/ISysUserFeignClient.java index 0fad4467..4c09f345 100644 --- a/common/src/main/java/com/sdm/common/feign/inter/system/ISysUserFeignClient.java +++ b/common/src/main/java/com/sdm/common/feign/inter/system/ISysUserFeignClient.java @@ -23,4 +23,6 @@ public interface ISysUserFeignClient { @PostMapping("/user/listUser") SdmResponse>> listUser(@RequestBody UserListReq req); + + } diff --git a/system/src/main/java/com/sdm/system/controller/SystemApproveController.java b/system/src/main/java/com/sdm/system/controller/SystemApproveController.java index c37cb83f..3046a2ad 100644 --- a/system/src/main/java/com/sdm/system/controller/SystemApproveController.java +++ b/system/src/main/java/com/sdm/system/controller/SystemApproveController.java @@ -25,7 +25,7 @@ public class SystemApproveController { @PostMapping("/launchApprove") public SdmResponse launchApproval(@RequestBody ApproveFlowBean flowBean){ - return approveServer.launchApproval(flowBean.approveTitle,flowBean.templateName,flowBean.templateId,flowBean.approveType,flowBean.innerFlowId,flowBean.comment,flowBean.replyUrl); + return approveServer.launchApproval(flowBean); } /** diff --git a/system/src/main/java/com/sdm/system/dao/SimulationApproveMapper.java b/system/src/main/java/com/sdm/system/dao/SimulationApproveMapper.java index 78cca9a9..e5f8c613 100644 --- a/system/src/main/java/com/sdm/system/dao/SimulationApproveMapper.java +++ b/system/src/main/java/com/sdm/system/dao/SimulationApproveMapper.java @@ -13,7 +13,7 @@ import java.util.List; public interface SimulationApproveMapper { - @Insert("INSERT INTO simulation_approve_flow(innerFlowId,cidFlowId,templateName,templateId,approveTitle,approveStatus,approveType,comment,tenantId,userId,replyUrl,creator) VALUES (#{flowBean.innerFlowId},#{flowBean.cidFlowId},#{flowBean.templateName},#{flowBean.templateId},#{flowBean.approveTitle},#{flowBean.approveStatus},#{flowBean.approveType},#{flowBean.comment},#{flowBean.tenantId},#{flowBean.userId},#{flowBean.replyUrl},#{flowBean.creator})") + @Insert("INSERT INTO simulation_approve_flow(cidFlowId,templateName,templateId,approveTitle,approveStatus,approveType,approveAction,approveContents,comment,tenantId,userId,replyUrl,creator) VALUES (#{flowBean.cidFlowId},#{flowBean.templateName},#{flowBean.templateId},#{flowBean.approveTitle},#{flowBean.approveStatus},#{flowBean.approveType},#{flowBean.approveAction},#{flowBean.approveContents},#{flowBean.comment},#{flowBean.tenantId},#{flowBean.userId},#{flowBean.replyUrl},#{flowBean.creator})") int addSimulationApproveFlow(@Param("flowBean") ApproveFlowBean flowBean); @Update("UPDATE simulation_approve_flow SET approveStatus=#{status} WHERE cidFlowId=#{cidFlowId}") diff --git a/system/src/main/java/com/sdm/system/filter/AuthFilter.java b/system/src/main/java/com/sdm/system/filter/AuthFilter.java index 35be5e51..d4bb046f 100644 --- a/system/src/main/java/com/sdm/system/filter/AuthFilter.java +++ b/system/src/main/java/com/sdm/system/filter/AuthFilter.java @@ -23,21 +23,12 @@ public class AuthFilter implements Filter { public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { if (servletRequest instanceof HttpServletRequest) { HttpServletRequest req = (HttpServletRequest) servletRequest; - String jobNumber = StringUtils.isEmpty(req.getHeader("jobNumber")) ? "" : req.getHeader("jobNumber"); - Long usrId = StringUtils.isEmpty(req.getHeader("userId")) ? null : Long.valueOf(req.getHeader("userId")); - Long tenantId = StringUtils.isEmpty(req.getHeader("tenantId")) ? null : Long.valueOf(req.getHeader("tenantId")); - String userName = StringUtils.isEmpty(req.getHeader("userName")) ? null : req.getHeader("userName"); - ThreadLocalContext.setJobNumber(jobNumber); - ThreadLocalContext.setCompany(req.getHeader("company")); - ThreadLocalContext.setSessionId(req.getHeader("sessionId")); - ThreadLocalContext.setUserId(usrId); - ThreadLocalContext.setTenantId(tenantId); - ThreadLocalContext.setUserName(userName); - -// User user = userService.getUserByIdCode(idCode); -// if (user != null) { -// ThreadLocalContext.setUserContext(new UserContext(user)); -// } + if(!ThreadLocalContext.verifyRequest(req)) + { + servletResponse.setCharacterEncoding("UTF-8"); + servletResponse.getWriter().println("请求信息验证错误"); + return; + } } filterChain.doFilter(servletRequest, servletResponse); } diff --git a/system/src/main/java/com/sdm/system/model/entity/ApproveFlowBean.java b/system/src/main/java/com/sdm/system/model/entity/ApproveFlowBean.java index 4cafde30..3a596209 100644 --- a/system/src/main/java/com/sdm/system/model/entity/ApproveFlowBean.java +++ b/system/src/main/java/com/sdm/system/model/entity/ApproveFlowBean.java @@ -9,11 +9,14 @@ public class ApproveFlowBean extends BaseBean { } public int id; - public int innerFlowId; //SPDM系统内部流程ID public String cidFlowId; //CID生成的流程ID - public int approveType; //审批类型 + public int approveType; //审批类型 1:仿真地图审批 2:知识库审批 + + public int approveAction; //评审动作 1:新增 2:修改 3:删除 + + public String approveContents; //审批内容 public String approveTitle; //审批主题 diff --git a/system/src/main/java/com/sdm/system/service/ISimulatinoApprovalService.java b/system/src/main/java/com/sdm/system/service/ISimulatinoApprovalService.java index 6c93fd6b..54db1f71 100644 --- a/system/src/main/java/com/sdm/system/service/ISimulatinoApprovalService.java +++ b/system/src/main/java/com/sdm/system/service/ISimulatinoApprovalService.java @@ -19,7 +19,7 @@ public interface ISimulatinoApprovalService { SdmResponse stopCidApprovalFlow(String flowId); - SdmResponse launchApproval(String approveTitle,String templateName,String templateId,int approveType,int innerFlowId,String comment,String replayUrl); + SdmResponse launchApproval(ApproveFlowBean flowBean); SdmResponse receiveApprovalResult(String cidFlowId,int status); diff --git a/system/src/main/java/com/sdm/system/service/impl/SimulationApproveServiceImpl.java b/system/src/main/java/com/sdm/system/service/impl/SimulationApproveServiceImpl.java index 4a3a6ba0..fbed365a 100644 --- a/system/src/main/java/com/sdm/system/service/impl/SimulationApproveServiceImpl.java +++ b/system/src/main/java/com/sdm/system/service/impl/SimulationApproveServiceImpl.java @@ -14,6 +14,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; import java.io.IOException; import java.util.ArrayList; @@ -182,42 +183,25 @@ public class SimulationApproveServiceImpl implements ISimulatinoApprovalService /** * 发起审批流 - * @param approveTitle - * @param approveType - * @param approveId - * @param comment + * @param flowBean * @return */ @Override - public SdmResponse launchApproval(String approveTitle,String templateName,String templateId, int approveType, int approveId,String comment,String replayUrl) { + public SdmResponse launchApproval(ApproveFlowBean flowBean) { SdmResponse sdmResponse = SdmResponse.success(); - long userId = ThreadLocalContext.getUserId(); - long tenantId = ThreadLocalContext.getTenantId(); - String userName = ThreadLocalContext.getUserName(); + String url = cidUrl+launchApprovePath; - String cidFlowId = launchCidApprovalFlow(templateId, userId,tenantId,url); + String cidFlowId = launchCidApprovalFlow(flowBean.templateId, flowBean.userId,flowBean.tenantId,url); if (cidFlowId.isEmpty()) { sdmResponse = SdmResponse.failed("发起Cid审批流程失败"); } else { - ApproveFlowBean approveFlowBean = new ApproveFlowBean(); - approveFlowBean.approveTitle = approveTitle; - approveFlowBean.cidFlowId = cidFlowId; - approveFlowBean.approveType = approveType; - approveFlowBean.comment = comment; - approveFlowBean.innerFlowId = approveId; - approveFlowBean.creator = userName; - approveFlowBean.tenantId = tenantId; - approveFlowBean.replyUrl = replayUrl; - approveFlowBean.userId = userId; - approveFlowBean.creator = userName; - approveFlowBean.templateId = templateId; - approveFlowBean.templateName = templateName; - if (approveMapper.addSimulationApproveFlow(approveFlowBean) <= 0) { + flowBean.cidFlowId = cidFlowId; + if (approveMapper.addSimulationApproveFlow(flowBean) <= 0) { sdmResponse = SdmResponse.failed("保存审批流程失败"); - if(!stopCidApprovalFlow(cidFlowId,userId)) + if(!stopCidApprovalFlow(cidFlowId,flowBean.userId)) { log.error("删除CID审批流["+cidFlowId+"]失败"); } @@ -300,8 +284,7 @@ public class SimulationApproveServiceImpl implements ISimulatinoApprovalService public SdmResponse approvalResultNotice(ApproveFlowBean flowBean) { SdmResponse sdmResponse = SdmResponse.success(); JSONObject param = new JSONObject(); - param.put("flowId", flowBean.innerFlowId); - param.put("approveType", flowBean.approveType); + param.put("approve", flowBean); try { String result = httpClientUtil.doPostJson(flowBean.replyUrl, param.toJSONString()); if(result == null) { diff --git a/task/src/main/java/com/sdm/task/controller/SimuluationTaskPoolController.java b/task/src/main/java/com/sdm/task/controller/SimuluationTaskPoolController.java index 78180bba..ff7643d4 100644 --- a/task/src/main/java/com/sdm/task/controller/SimuluationTaskPoolController.java +++ b/task/src/main/java/com/sdm/task/controller/SimuluationTaskPoolController.java @@ -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); } + + } diff --git a/task/src/main/java/com/sdm/task/model/entity/TaskPoolTree.java b/task/src/main/java/com/sdm/task/model/entity/TaskPoolTree.java index a125032d..41413498 100644 --- a/task/src/main/java/com/sdm/task/model/entity/TaskPoolTree.java +++ b/task/src/main/java/com/sdm/task/model/entity/TaskPoolTree.java @@ -8,6 +8,9 @@ import java.util.List; public class TaskPoolTree extends BaseBean { public TaskPoolBrief poolBrief; public List nodes = new ArrayList<>(); + public boolean bApprove = false; + public String approveTemplateId; + public String approveTemplateName; public void addTopNodeOrder(TaskPoolNode node) { diff --git a/task/src/main/java/com/sdm/task/model/entity/TaskPoolUpdateBean.java b/task/src/main/java/com/sdm/task/model/entity/TaskPoolUpdateBean.java index 3cc5685d..e18d648e 100644 --- a/task/src/main/java/com/sdm/task/model/entity/TaskPoolUpdateBean.java +++ b/task/src/main/java/com/sdm/task/model/entity/TaskPoolUpdateBean.java @@ -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 { diff --git a/task/src/main/java/com/sdm/task/service/ISimulationTaskPoolService.java b/task/src/main/java/com/sdm/task/service/ISimulationTaskPoolService.java index f2538890..51b3ecee 100644 --- a/task/src/main/java/com/sdm/task/service/ISimulationTaskPoolService.java +++ b/task/src/main/java/com/sdm/task/service/ISimulationTaskPoolService.java @@ -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); } diff --git a/task/src/main/java/com/sdm/task/service/impl/SimulationTaskPoolServiceImpl.java b/task/src/main/java/com/sdm/task/service/impl/SimulationTaskPoolServiceImpl.java index dea60040..a3fe5783 100644 --- a/task/src/main/java/com/sdm/task/service/impl/SimulationTaskPoolServiceImpl.java +++ b/task/src/main/java/com/sdm/task/service/impl/SimulationTaskPoolServiceImpl.java @@ -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(); + } + } + } From 480110e86ba83807473e6537178f72be8003bc2b Mon Sep 17 00:00:00 2001 From: daiqy88 Date: Wed, 5 Nov 2025 15:37:03 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E9=9B=86=E6=88=90CID=E4=BB=BF=E7=9C=9F?= =?UTF-8?q?=E8=AF=84=E5=AE=A1=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/system/SysUserFeignClientImpl.java | 7 +++++++ .../inter/system/IApproveFeignClient.java | 15 --------------- .../inter/system/ISysUserFeignClient.java | 6 +++++- .../impl/SimulationApproveServiceImpl.java | 19 ++++++++++++++++--- .../impl/SimulationTaskPoolServiceImpl.java | 11 ++++++++--- 5 files changed, 36 insertions(+), 22 deletions(-) delete mode 100644 common/src/main/java/com/sdm/common/feign/inter/system/IApproveFeignClient.java diff --git a/common/src/main/java/com/sdm/common/feign/impl/system/SysUserFeignClientImpl.java b/common/src/main/java/com/sdm/common/feign/impl/system/SysUserFeignClientImpl.java index dc629460..5bf43ce4 100644 --- a/common/src/main/java/com/sdm/common/feign/impl/system/SysUserFeignClientImpl.java +++ b/common/src/main/java/com/sdm/common/feign/impl/system/SysUserFeignClientImpl.java @@ -2,6 +2,7 @@ package com.sdm.common.feign.impl.system; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.sdm.common.common.SdmResponse; +import com.sdm.common.entity.req.system.LaunchApproveReq; import com.sdm.common.entity.req.system.UserListReq; import com.sdm.common.entity.req.system.UserQueryReq; import com.sdm.common.entity.resp.PageDataResp; @@ -12,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.List; +import java.util.Map; @Slf4j @Component @@ -62,4 +64,9 @@ public class SysUserFeignClientImpl implements ISysUserFeignClient { return SdmResponse.failed("人员信息未查到"); } } + + @Override + public SdmResponse launchApproval(Map hashHeader, LaunchApproveReq approveReq) { + return null; + } } diff --git a/common/src/main/java/com/sdm/common/feign/inter/system/IApproveFeignClient.java b/common/src/main/java/com/sdm/common/feign/inter/system/IApproveFeignClient.java deleted file mode 100644 index 76df3759..00000000 --- a/common/src/main/java/com/sdm/common/feign/inter/system/IApproveFeignClient.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.sdm.common.feign.inter.system; - -import com.sdm.common.common.SdmResponse; -import com.sdm.common.entity.req.system.LaunchApproveReq; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; - -@FeignClient(name = "system") -public interface IApproveFeignClient { - - @PostMapping("/systemApprove/launchApprove") - public SdmResponse launchApproval(@RequestBody LaunchApproveReq approveReq); - -} diff --git a/common/src/main/java/com/sdm/common/feign/inter/system/ISysUserFeignClient.java b/common/src/main/java/com/sdm/common/feign/inter/system/ISysUserFeignClient.java index 4c09f345..e28ff053 100644 --- a/common/src/main/java/com/sdm/common/feign/inter/system/ISysUserFeignClient.java +++ b/common/src/main/java/com/sdm/common/feign/inter/system/ISysUserFeignClient.java @@ -1,6 +1,7 @@ package com.sdm.common.feign.inter.system; import com.sdm.common.common.SdmResponse; +import com.sdm.common.entity.req.system.LaunchApproveReq; import com.sdm.common.entity.req.system.UserListReq; import com.sdm.common.entity.req.system.UserQueryReq; import com.sdm.common.entity.resp.system.CIDUserResp; @@ -10,8 +11,10 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestHeader; import java.util.List; +import java.util.Map; @FeignClient(name = "system") public interface ISysUserFeignClient { @@ -24,5 +27,6 @@ public interface ISysUserFeignClient { @PostMapping("/user/listUser") SdmResponse>> listUser(@RequestBody UserListReq req); - + @PostMapping("/systemApprove/launchApprove") + public SdmResponse launchApproval(@RequestHeader Map hashHeader, @RequestBody LaunchApproveReq approveReq); } diff --git a/system/src/main/java/com/sdm/system/service/impl/SimulationApproveServiceImpl.java b/system/src/main/java/com/sdm/system/service/impl/SimulationApproveServiceImpl.java index fbed365a..f030bd9a 100644 --- a/system/src/main/java/com/sdm/system/service/impl/SimulationApproveServiceImpl.java +++ b/system/src/main/java/com/sdm/system/service/impl/SimulationApproveServiceImpl.java @@ -4,9 +4,10 @@ import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; 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.ISysUserFeignClient; import com.sdm.common.utils.HttpClientUtil; import com.sdm.system.dao.SimulationApproveMapper; -import com.sdm.system.model.entity.ApproveConfigBean; import com.sdm.system.model.entity.ApproveFlowBean; import com.sdm.system.model.entity.ApproveTemplateBean; import com.sdm.system.service.ISimulatinoApprovalService; @@ -14,11 +15,11 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import org.springframework.web.client.RestTemplate; -import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; @Slf4j @@ -303,6 +304,8 @@ public class SimulationApproveServiceImpl implements ISimulatinoApprovalService } return sdmResponse; } + @Autowired + private ISysUserFeignClient feignClient; /** * 查询评审流程模版 @@ -344,6 +347,16 @@ public class SimulationApproveServiceImpl implements ISimulatinoApprovalService catch (Exception e) { e.printStackTrace(); } + LaunchApproveReq req = new LaunchApproveReq(); + req.templateId = "P202511041416483446SFON"; + req.templateName = "djkfk"; + req.userId = ThreadLocalContext.getUserId(); + req.tenantId = ThreadLocalContext.getTenantId(); + Map hashHeader = new HashMap<>(); + hashHeader.put("userId","1999"); + hashHeader.put("tenantId","1999"); + hashHeader.put("userName","daiqy"); + SdmResponse launchReq = feignClient.launchApproval(hashHeader,req); return sdmResponse; } } diff --git a/task/src/main/java/com/sdm/task/service/impl/SimulationTaskPoolServiceImpl.java b/task/src/main/java/com/sdm/task/service/impl/SimulationTaskPoolServiceImpl.java index a3fe5783..559c5c40 100644 --- a/task/src/main/java/com/sdm/task/service/impl/SimulationTaskPoolServiceImpl.java +++ b/task/src/main/java/com/sdm/task/service/impl/SimulationTaskPoolServiceImpl.java @@ -8,7 +8,7 @@ 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.feign.inter.system.ISysUserFeignClient; import com.sdm.common.service.BaseService; import com.sdm.common.utils.SystemOperate; import com.sdm.task.dao.SimulationPoolMapper; @@ -35,7 +35,7 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul private TaskPoolOperate poolOperate; @Autowired - private IApproveFeignClient approveFeignClient; + private ISysUserFeignClient approveFeignClient; /** * 添加仿真分析库节点以及分析项 @@ -393,7 +393,12 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul req.tenantId = ThreadLocalContext.getTenantId(); req.userId = ThreadLocalContext.getUserId(); req.creator = ThreadLocalContext.getUserName(); - SdmResponse response = approveFeignClient.launchApproval(req); + Map header = new HashMap<>(); + header.put("Content-Type","application/json"); + header.put("tenantId",String.valueOf(req.tenantId)); + header.put("userId", String.valueOf(req.userId)); + header.put("userName",req.creator); + SdmResponse response = approveFeignClient.launchApproval(header,req); return response.isSuccess(); }