diff --git a/visa/visa-server/pom.xml b/visa/visa-server/pom.xml index 83ddc68f..47e16e9b 100644 --- a/visa/visa-server/pom.xml +++ b/visa/visa-server/pom.xml @@ -114,5 +114,13 @@ karma-api 2.0.0-SNAPSHOT + + + cn.axzo.platform + axzo-log-api + 1.0.0-SNAPSHOT + + + diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/rpc/LogApiGateway.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/rpc/LogApiGateway.java new file mode 100644 index 00000000..3352f965 --- /dev/null +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/rpc/LogApiGateway.java @@ -0,0 +1,50 @@ +package cn.axzo.nanopart.visa.server.rpc; + +/** + * @author xudawei@axzo.cn + * @date 2025/2/12 + * @description 日志RPC + */ + +import cn.axzo.log.platform.client.feign.LogApi; +import cn.axzo.log.platform.client.model.req.LogAddReq; +import cn.azxo.framework.common.model.CommonResponse; +import cn.hutool.json.JSONUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 日志RPC + * @author xudawei@axzo.cn + * @since 2025-02-05 15:08 + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class LogApiGateway { + + private final LogApi logApi; + + public void addLog(LogAddReq req) { + try { + log.info("LogApiGateway-addLog, req: {}", JSONUtil.toJsonStr(req)); + CommonResponse stringCommonResponse = logApi.addLog(req); + log.info("LogApiGateway-addLog, result: {}", JSONUtil.toJsonStr(stringCommonResponse)); + } catch (Exception e) { + log.warn("LogApiGateway-addLog Exception", e); + } + } + + public void addLog(String scene, String level, List tags, String msg) { + logApi.addLog(LogAddReq.builder() + .scene(scene) + .level(level) + .tags(tags) + .message(msg) + .build()); + } + +} diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/VisaHelper.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/VisaHelper.java index 33011562..9ab05daf 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/VisaHelper.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/VisaHelper.java @@ -12,9 +12,13 @@ import cn.axzo.nanopart.visa.server.dto.VisaConfirmDto; import cn.axzo.nanopart.visa.server.dto.VisaLogParam; import cn.axzo.nanopart.visa.server.rpc.ApolloConstructionAreaGateway; import cn.axzo.nanopart.visa.server.rpc.DrawingMajorGateway; +import cn.axzo.nanopart.visa.server.rpc.LogApiGateway; import cn.axzo.nanopart.visa.server.utils.Constants; import cn.axzo.thor.client.model.DrawingMajorResp; +import cn.hutool.core.lang.Pair; +import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONArray; +import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; import lombok.extern.slf4j.Slf4j; @@ -57,6 +61,9 @@ public class VisaHelper { @Resource private ChangeRecordConfirmService changeRecordConfirmService; + @Resource + private LogApiGateway logApiGateway; + /** * 状态更新与添加日志,此时新增记录时状态没有维护 */ @@ -74,6 +81,16 @@ public class VisaHelper { //编辑时 if (Objects.nonNull(oldContext) && Objects.nonNull(newContext)) { + + // 由[决策中|执行中] -> [审批中] 执行变更签证属性变更 + if (Objects.nonNull(oldContext.getStatus()) && Objects.nonNull(newContext.getStatus()) + && VisaStatusEnum.isEditForm(oldContext.getStatus()) + && newContext.getStatus().equals(VisaStatusEnum.APPROVING)) { + logApiGateway.addLog(Constants.VISA_LOG_SNAPSHOT_SCENE + , Constants.VISA_LOG_SNAPSHOT_LEVEL + , Lists.newArrayList(Constants.VISA_LOG_SNAPSHOT_TAG_SNAPSHOT) + , JSONUtil.toJsonStr(Pair.of(oldContext, newContext))); + } changeRecordService.changeStatus(ChangeStatusRequest.builder() .visaId(newContext.getChangeRecord().getId()) .updateStatus(newContext.getStatus()) diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/utils/Constants.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/utils/Constants.java index a77727a6..eebc1edb 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/utils/Constants.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/utils/Constants.java @@ -50,4 +50,19 @@ public class Constants { * 工程签证数据权限的code */ public static final String SPLIT_TREE_NODE_CHAT = "-"; + + /** + * 变更签证日志 + */ + public static final String VISA_LOG_SNAPSHOT_SCENE = "visa_log"; + + /** + * 变更签证日志-快照 + */ + public static final String VISA_LOG_SNAPSHOT_TAG_SNAPSHOT = "visa_log_snapshot"; + + /** + * 变更签证日志-快照 + */ + public static final String VISA_LOG_SNAPSHOT_LEVEL = "INFO"; }