Parcourir la source

增加组卷定位轨迹日志

huangtf il y a 1 an
Parent
commit
15d3519091

+ 27 - 0
blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/entity/TraceLog.java

@@ -0,0 +1,27 @@
+package org.springblade.archive.entity;
+
+
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+@Data
+@TableName("u_trace_log")
+@EqualsAndHashCode(callSuper = true)
+public class TraceLog extends BaseEntity {
+
+    //项目ID
+    private Long projectId;
+
+    //模块名
+    private String module;
+
+    //轨迹ID
+    private Long traceId;
+
+    //日志内容
+    private String content;
+
+}

+ 9 - 1
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchivesAutoController.java

@@ -37,6 +37,7 @@ import org.springblade.archive.dto.SaveApplyDTO;
 import org.springblade.archive.entity.ArchiveConclusion;
 import org.springblade.archive.entity.ExpertInspection;
 import org.springblade.archive.service.IArchiveAutoPdfService;
+import org.springblade.archive.service.ITraceLogService;
 import org.springblade.archive.utils.CallBgrsjk;
 import org.springblade.archive.utils.FileUtils;
 import org.springblade.archive.vo.*;
@@ -44,6 +45,7 @@ import org.springblade.business.entity.ArchiveFile;
 import org.springblade.business.entity.InformationQuery;
 import org.springblade.common.constant.CommonConstant;
 import org.springblade.common.utils.CommonUtil;
+import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.BladeUser;
@@ -99,6 +101,8 @@ public class ArchivesAutoController extends BladeController {
 
 	@Autowired
 	private ExecutorService executorService;
+	@Autowired
+	private ITraceLogService iTraceLogService;
 	/**
 	 * 详情
 	 */
@@ -441,10 +445,14 @@ public class ArchivesAutoController extends BladeController {
 				return R.fail("当前合同段已经在自动组卷中,请耐心等待");
 			}
 			log.info("开始自动组卷....");
+
+			Long traceId = SnowFlakeUtil.getId();
+			iTraceLogService.save(traceId,"开始自动组卷");
+
 			//设置自动组卷中
 			contractClient.updateIsArchivesAutoById(contractId,1);
 
-			archivesAutoService.archiveAutoMethodThread(projectId,contractId,nodeId);
+			archivesAutoService.archiveAutoMethodThread(projectId,contractId,nodeId,traceId);
 			return R.data("开始自动组卷中,请耐心等待");
 		}catch (Exception e){
 			e.printStackTrace();

+ 8 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/TraceLogMapper.java

@@ -0,0 +1,8 @@
+package org.springblade.archive.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.archive.entity.TraceLog;
+
+public interface TraceLogMapper extends BaseMapper<TraceLog> {
+    // Define methods for querying the database that are specific to the TraceLog entity
+}

+ 7 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/TraceLogMapper.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.archive.mapper.TraceLogMapper">
+
+    <!-- Additional MyBatis SQL mapping definitions for TraceLog can be specified here -->
+
+</mapper>

+ 1 - 1
blade-service/blade-archive/src/main/java/org/springblade/archive/service/IArchivesAutoService.java

@@ -90,7 +90,7 @@ public interface IArchivesAutoService extends BaseService<ArchivesAuto> {
 
     List<DictBiz> getCarrierTypeByDict();
 
-	void archiveAutoMethodThread(Long projectId, Long contractId, Long nodeId);
+	void archiveAutoMethodThread(Long projectId, Long contractId, Long nodeId, Long traceId);
 
 	void refreshFileNumberThread(Long projectId, Long contractId, Long nodeId);
 

+ 10 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/service/ITraceLogService.java

@@ -0,0 +1,10 @@
+package org.springblade.archive.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.archive.entity.TraceLog;
+
+public interface ITraceLogService extends BaseService<TraceLog> {
+    // Define methods specific to the TraceLog entity here
+
+    void save(Long traceId, String format, Object... args);
+}

+ 7 - 7
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java

@@ -2330,11 +2330,11 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 	}
 
 	@Override
-	public void archiveAutoMethodThread(Long projectId, Long contractId, Long nodeId) {
+	public void archiveAutoMethodThread(Long projectId, Long contractId, Long nodeId, Long traceId) {
 		executorService.execute(()->{
 			try{
 				//将项目未锁定案卷拆卷
-				log.info("[自动组卷]{}","开始对未锁定案卷拆卷。projectId:"+projectId+"-contractId:"+contractId+"-nodeId:"+nodeId);
+				log.info("[自动组卷]{}","开始对未锁定案卷拆卷。projectId:"+projectId+"-contractId:"+contractId+"-nodeId:"+nodeId+"-traceId:"+traceId);
 
 				//todo 有项目上传几百G文件,点组卷会产生大量费用,等改完文件下载走内网再打开此开关。
 //				if (true) {
@@ -2346,27 +2346,27 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 				contractClient.updateIsArchivesAutoById(contractId,10);
 
 				//项目自动组卷入口
-				log.info("[自动组卷]{}","开始自动组卷。projectId:"+projectId+"-contractId:"+contractId+"-nodeId:"+nodeId);
+				log.info("[自动组卷]{}","开始自动组卷。projectId:"+projectId+"-contractId:"+contractId+"-nodeId:"+nodeId+"-traceId:"+traceId);
 				archiveAutoMethod(projectId,contractId,nodeId);
 				//设置完成度80%
 				contractClient.updateIsArchivesAutoById(contractId,80);
 
 				//刷新项目档号
-				log.info("[自动组卷]{}","开始刷新组卷档号。projectId:"+projectId+"-contractId:"+contractId+"-nodeId:"+nodeId);
+				log.info("[自动组卷]{}","开始刷新组卷档号。projectId:"+projectId+"-contractId:"+contractId+"-nodeId:"+nodeId+"-traceId:"+traceId);
 				refreshFileNumberNoSlipt(projectId,contractId,nodeId,true);
 
 
 				//设置自动组卷结束
 				contractClient.updateIsArchivesAutoById(contractId,0);
-				log.info("[自动组卷]{}","自动组卷完成。projectId:"+projectId+"-contractId:"+contractId+"-nodeId:"+nodeId);
+				log.info("[自动组卷]{}","自动组卷完成。projectId:"+projectId+"-contractId:"+contractId+"-nodeId:"+nodeId+"-traceId:"+traceId);
 			}catch (Exception e){
 				e.printStackTrace();
-				log.error("[自动组卷] 报错。"+e.getMessage()+"--projectId:"+projectId+"-contractId:"+contractId+"-nodeId:"+nodeId);
+				log.error("[自动组卷] 报错。"+e.getMessage()+"--projectId:"+projectId+"-contractId:"+contractId+"-nodeId:"+nodeId+"-traceId:"+traceId);
 				//设置自动组卷结束
 				contractClient.updateIsArchivesAutoById(contractId, 0);
 			}finally {
 				contractClient.updateIsArchivesAutoById(contractId, 0);
-				log.error("[自动组卷] 流程结束--projectId:"+projectId+"-contractId:"+contractId+"-nodeId:"+nodeId);
+				log.error("[自动组卷] 流程结束--projectId:"+projectId+"-contractId:"+contractId+"-nodeId:"+nodeId+"-traceId:"+traceId);
 			}
 		});
 	}

+ 43 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/TraceLogServiceImpl.java

@@ -0,0 +1,43 @@
+package org.springblade.archive.service.impl;
+
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.archive.entity.TraceLog;
+import org.springblade.archive.mapper.TraceLogMapper;
+import org.springblade.archive.service.ITraceLogService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class TraceLogServiceImpl extends BaseServiceImpl<TraceLogMapper, TraceLog> implements ITraceLogService {
+    // Implementations of methods defined in ITraceLogService
+
+    /**
+     * 保存日志信息
+     *
+     * @param traceId 追踪ID
+     * @param format 格式化字符串
+     * @param args 格式化参数
+     */
+    @Override
+    public void save(Long traceId, String format, Object... args) {
+        try {
+            // 使用String.format来格式化字符串
+            String content = String.format(format, args);
+
+            // 截取content,确保长度不超过400字符
+            if (content.length() > 400) {
+                content = content.substring(0, 400);
+            }
+
+            // 创建TraceLog对象
+            TraceLog traceLog = new TraceLog();
+            traceLog.setTraceId(traceId);
+            traceLog.setContent(content);
+            save(traceLog);
+
+        } catch (Exception e) {
+            // 异常处理逻辑,比如打印日志
+            System.err.println("Error saving trace log: " + e.getMessage());
+        }
+    }
+
+}