依赖升级(未全部完成)
This commit is contained in:
parent
80c65b936e
commit
1145963ea4
71
pom.xml
71
pom.xml
|
|
@ -14,7 +14,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-parent</artifactId>
|
<artifactId>spring-boot-starter-parent</artifactId>
|
||||||
<version>2.7.18</version>
|
<version>3.4.5</version>
|
||||||
<relativePath/> <!-- lookup parent from repository -->
|
<relativePath/> <!-- lookup parent from repository -->
|
||||||
</parent>
|
</parent>
|
||||||
<properties>
|
<properties>
|
||||||
|
|
@ -30,7 +30,6 @@
|
||||||
<lombok.version>1.18.34</lombok.version>
|
<lombok.version>1.18.34</lombok.version>
|
||||||
<mybatis.version>3.5.16</mybatis.version>
|
<mybatis.version>3.5.16</mybatis.version>
|
||||||
<druid.version>1.2.23</druid.version>
|
<druid.version>1.2.23</druid.version>
|
||||||
<mybatis-plus.version>3.5.7</mybatis-plus.version>
|
|
||||||
<!-- SpringDoc OpenAPI for Swagger替换SpringFox -->
|
<!-- SpringDoc OpenAPI for Swagger替换SpringFox -->
|
||||||
<springdoc.version>1.8.0</springdoc.version>
|
<springdoc.version>1.8.0</springdoc.version>
|
||||||
<!-- Spring AI for LLM Integration (compatible with Spring Boot 2.7.x) -->
|
<!-- Spring AI for LLM Integration (compatible with Spring Boot 2.7.x) -->
|
||||||
|
|
@ -44,19 +43,6 @@
|
||||||
<h2.version>2.2.224</h2.version>
|
<h2.version>2.2.224</h2.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<!-- Spring AI BOM for dependency management -->
|
|
||||||
<dependencyManagement>
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework.ai</groupId>
|
|
||||||
<artifactId>spring-ai-bom</artifactId>
|
|
||||||
<version>${spring-ai.version}</version>
|
|
||||||
<type>pom</type>
|
|
||||||
<scope>import</scope>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
</dependencyManagement>
|
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<!--Spring Boot Web Starter-->
|
<!--Spring Boot Web Starter-->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
@ -131,46 +117,10 @@
|
||||||
<!--基础框架youfool-framework-boot-->
|
<!--基础框架youfool-framework-boot-->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.chinaweal.youfool</groupId>
|
<groupId>com.chinaweal.youfool</groupId>
|
||||||
<artifactId>youfool-framework-springboot</artifactId>
|
<artifactId>youfool-framework-springboot3</artifactId>
|
||||||
<version>1.1.1-SNAPSHOT</version>
|
<version>1.0.1</version>
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.apache.logging.log4j</groupId>
|
|
||||||
<artifactId>log4j-api</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.apache.logging.log4j</groupId>
|
|
||||||
<artifactId>log4j-to-slf4j</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.apache.shiro</groupId>
|
|
||||||
<artifactId>shiro-spring</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<!-- 排除SpringFox相关依赖,使用SpringDoc OpenAPI替代 -->
|
|
||||||
<exclusion>
|
|
||||||
<groupId>com.github.xiaoymin</groupId>
|
|
||||||
<artifactId>knife4j-spring-boot-starter</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>io.springfox</groupId>
|
|
||||||
<artifactId>springfox-swagger2</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>io.springfox</groupId>
|
|
||||||
<artifactId>springfox-swagger-ui</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>io.springfox</groupId>
|
|
||||||
<artifactId>springfox-boot-starter</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
<!--druid-->
|
<!--druid-->
|
||||||
<dependency>
|
|
||||||
<groupId>com.alibaba</groupId>
|
|
||||||
<artifactId>druid-spring-boot-starter</artifactId>
|
|
||||||
<version>${druid.version}</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.projectlombok</groupId>
|
<groupId>org.projectlombok</groupId>
|
||||||
|
|
@ -316,12 +266,6 @@
|
||||||
<artifactId>logback-classic</artifactId>
|
<artifactId>logback-classic</artifactId>
|
||||||
<version>${logback.version}</version>
|
<version>${logback.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- mybatis -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.mybatis</groupId>
|
|
||||||
<artifactId>mybatis</artifactId>
|
|
||||||
<version>${mybatis.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<!-- shiro -->
|
<!-- shiro -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.shiro</groupId>
|
<groupId>org.apache.shiro</groupId>
|
||||||
|
|
@ -352,12 +296,11 @@
|
||||||
<version>2.9.2</version>
|
<version>2.9.2</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- 临时依赖:Knife4j注解兼容 -->
|
<!--AI框架接入-->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.xiaoymin</groupId>
|
<groupId>com.chinaweal.youfool.ai</groupId>
|
||||||
<artifactId>knife4j-annotations</artifactId>
|
<artifactId>youfool-ai-framework</artifactId>
|
||||||
<version>2.0.9</version>
|
<version>1.0.0-SNAPSHOT</version>
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package com.chinaweal.youfool.devops;
|
||||||
// Temporarily commented out for Spring AI compatibility
|
// Temporarily commented out for Spring AI compatibility
|
||||||
// import com.chinaweal.youfool.devops.ai.config.AIRepairIntegrationConfig;
|
// import com.chinaweal.youfool.devops.ai.config.AIRepairIntegrationConfig;
|
||||||
import com.chinaweal.youfool.devops.config.ErrorLogProperties;
|
import com.chinaweal.youfool.devops.config.ErrorLogProperties;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry;
|
import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package com.chinaweal.youfool.devops.ai.aspect;
|
||||||
import com.chinaweal.youfool.devops.ai.aspect.dto.WorkflowTraceSession;
|
import com.chinaweal.youfool.devops.ai.aspect.dto.WorkflowTraceSession;
|
||||||
import com.chinaweal.youfool.devops.ai.aspect.dto.WorkflowTraceStep;
|
import com.chinaweal.youfool.devops.ai.aspect.dto.WorkflowTraceStep;
|
||||||
import com.chinaweal.youfool.devops.ai.aspect.service.WorkflowTracingService;
|
import com.chinaweal.youfool.devops.ai.aspect.service.WorkflowTracingService;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.aspectj.lang.ProceedingJoinPoint;
|
import org.aspectj.lang.ProceedingJoinPoint;
|
||||||
|
|
@ -12,7 +12,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
import org.springframework.core.annotation.Order;
|
import org.springframework.core.annotation.Order;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package com.chinaweal.youfool.devops.ai.aspect;
|
||||||
import com.chinaweal.youfool.devops.ai.aspect.dto.WorkflowTraceSession;
|
import com.chinaweal.youfool.devops.ai.aspect.dto.WorkflowTraceSession;
|
||||||
import com.chinaweal.youfool.devops.ai.aspect.dto.WorkflowTraceStep;
|
import com.chinaweal.youfool.devops.ai.aspect.dto.WorkflowTraceStep;
|
||||||
import com.chinaweal.youfool.devops.ai.aspect.service.WorkflowTracingService;
|
import com.chinaweal.youfool.devops.ai.aspect.service.WorkflowTracingService;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.aspectj.lang.ProceedingJoinPoint;
|
import org.aspectj.lang.ProceedingJoinPoint;
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package com.chinaweal.youfool.devops.ai.aspect;
|
||||||
import com.chinaweal.youfool.devops.ai.aspect.dto.WorkflowTraceSession;
|
import com.chinaweal.youfool.devops.ai.aspect.dto.WorkflowTraceSession;
|
||||||
import com.chinaweal.youfool.devops.ai.aspect.dto.WorkflowTraceStep;
|
import com.chinaweal.youfool.devops.ai.aspect.dto.WorkflowTraceStep;
|
||||||
import com.chinaweal.youfool.devops.ai.aspect.service.WorkflowTracingService;
|
import com.chinaweal.youfool.devops.ai.aspect.service.WorkflowTracingService;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.aspectj.lang.ProceedingJoinPoint;
|
import org.aspectj.lang.ProceedingJoinPoint;
|
||||||
|
|
@ -12,7 +12,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
import org.springframework.core.annotation.Order;
|
import org.springframework.core.annotation.Order;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import com.chinaweal.youfool.devops.ai.aspect.dto.MCPToolCallTrace;
|
||||||
import com.chinaweal.youfool.devops.ai.aspect.dto.WorkflowTraceSession;
|
import com.chinaweal.youfool.devops.ai.aspect.dto.WorkflowTraceSession;
|
||||||
import com.chinaweal.youfool.devops.ai.aspect.dto.WorkflowTraceStep;
|
import com.chinaweal.youfool.devops.ai.aspect.dto.WorkflowTraceStep;
|
||||||
import com.chinaweal.youfool.devops.ai.aspect.service.WorkflowTracingService;
|
import com.chinaweal.youfool.devops.ai.aspect.service.WorkflowTracingService;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import io.github.resilience4j.circuitbreaker.annotation.CircuitBreaker;
|
import io.github.resilience4j.circuitbreaker.annotation.CircuitBreaker;
|
||||||
import io.github.resilience4j.ratelimiter.annotation.RateLimiter;
|
import io.github.resilience4j.ratelimiter.annotation.RateLimiter;
|
||||||
import io.github.resilience4j.retry.annotation.Retry;
|
import io.github.resilience4j.retry.annotation.Retry;
|
||||||
|
|
@ -17,7 +17,6 @@ import org.springframework.core.annotation.Order;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import com.chinaweal.youfool.devops.ai.dto.llm.FunctionTool;
|
||||||
import com.chinaweal.youfool.devops.ai.dto.llm.ToolCall;
|
import com.chinaweal.youfool.devops.ai.dto.llm.ToolCall;
|
||||||
import com.chinaweal.youfool.devops.ai.dto.llm.ToolCallResult;
|
import com.chinaweal.youfool.devops.ai.dto.llm.ToolCallResult;
|
||||||
import com.chinaweal.youfool.devops.ai.mcp.MCPTool;
|
import com.chinaweal.youfool.devops.ai.mcp.MCPTool;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
|
|
@ -17,7 +17,7 @@ import org.springframework.stereotype.Component;
|
||||||
import org.springframework.web.client.RestClientException;
|
import org.springframework.web.client.RestClientException;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import jakarta.annotation.PostConstruct;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import com.chinaweal.youfool.devops.ai.dto.answer.AIAnswerRequest;
|
||||||
import com.chinaweal.youfool.devops.ai.dto.answer.AIAnswerResponse;
|
import com.chinaweal.youfool.devops.ai.dto.answer.AIAnswerResponse;
|
||||||
import com.chinaweal.youfool.devops.ai.service.AIAnswerService;
|
import com.chinaweal.youfool.devops.ai.service.AIAnswerService;
|
||||||
import com.chinaweal.youfool.devops.ai.service.QwenChatService;
|
import com.chinaweal.youfool.devops.ai.service.QwenChatService;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
|
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
|
||||||
import com.chinaweal.youfool.framework.springboot.rest.ResultCode;
|
import com.chinaweal.youfool.framework.springboot.rest.ResultCode;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
|
@ -19,9 +19,9 @@ import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
|
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import javax.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
|
@ -295,7 +295,7 @@ public class AIAnswerController {
|
||||||
* 批量回答请求
|
* 批量回答请求
|
||||||
*/
|
*/
|
||||||
public static class BatchAnswerRequest {
|
public static class BatchAnswerRequest {
|
||||||
@javax.validation.constraints.NotEmpty(message = "工单ID列表不能为空")
|
@jakarta.validation.constraints.NotEmpty(message = "工单ID列表不能为空")
|
||||||
private java.util.List<@NotBlank String> repairIds;
|
private java.util.List<@NotBlank String> repairIds;
|
||||||
|
|
||||||
private Boolean includeHistory = true;
|
private Boolean includeHistory = true;
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
|
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import javax.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,8 @@ import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.ui.Model;
|
import org.springframework.ui.Model;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpSession;
|
import jakarta.servlet.http.HttpSession;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import com.chinaweal.youfool.devops.ai.dto.llm.ChatRequest;
|
||||||
import com.chinaweal.youfool.devops.ai.dto.llm.ChatResponse;
|
import com.chinaweal.youfool.devops.ai.dto.llm.ChatResponse;
|
||||||
import com.chinaweal.youfool.devops.ai.service.QwenChatService;
|
import com.chinaweal.youfool.devops.ai.service.QwenChatService;
|
||||||
import com.chinaweal.youfool.devops.ai.service.StreamingSessionManager;
|
import com.chinaweal.youfool.devops.ai.service.StreamingSessionManager;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
|
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
|
||||||
import com.chinaweal.youfool.framework.springboot.rest.ResultCode;
|
import com.chinaweal.youfool.framework.springboot.rest.ResultCode;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
|
@ -20,9 +20,9 @@ import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
|
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import javax.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ package com.chinaweal.youfool.devops.ai.controller;
|
||||||
|
|
||||||
import com.chinaweal.youfool.devops.ai.service.EmbeddingCacheService;
|
import com.chinaweal.youfool.devops.ai.service.EmbeddingCacheService;
|
||||||
import com.chinaweal.youfool.devops.ai.service.QwenEmbeddingService;
|
import com.chinaweal.youfool.devops.ai.service.QwenEmbeddingService;
|
||||||
import com.chinaweal.youfool.devops.util.TextSimilarityUtils;
|
import com.chinaweal.youfool.devops.common.utils.TextSimilarityUtils;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ package com.chinaweal.youfool.devops.ai.controller;
|
||||||
|
|
||||||
import com.chinaweal.youfool.devops.ai.service.LLMStreamingMonitorService;
|
import com.chinaweal.youfool.devops.ai.service.LLMStreamingMonitorService;
|
||||||
import com.chinaweal.youfool.devops.ai.service.StreamingSessionManager;
|
import com.chinaweal.youfool.devops.ai.service.StreamingSessionManager;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
|
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
|
||||||
import com.chinaweal.youfool.framework.springboot.rest.ResultCode;
|
import com.chinaweal.youfool.framework.springboot.rest.ResultCode;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import com.chinaweal.youfool.devops.ai.provider.LLMProvider;
|
||||||
import com.chinaweal.youfool.devops.ai.provider.ProviderManager;
|
import com.chinaweal.youfool.devops.ai.provider.ProviderManager;
|
||||||
import com.chinaweal.youfool.devops.ai.service.AIAnswerServiceMCP;
|
import com.chinaweal.youfool.devops.ai.service.AIAnswerServiceMCP;
|
||||||
import com.chinaweal.youfool.devops.ai.service.QwenChatService;
|
import com.chinaweal.youfool.devops.ai.service.QwenChatService;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
|
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
|
||||||
import com.chinaweal.youfool.framework.springboot.rest.ResultCode;
|
import com.chinaweal.youfool.framework.springboot.rest.ResultCode;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
|
@ -26,7 +26,7 @@ import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
|
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package com.chinaweal.youfool.devops.ai.coordinator;
|
||||||
import com.chinaweal.youfool.devops.ai.client.MCPClient;
|
import com.chinaweal.youfool.devops.ai.client.MCPClient;
|
||||||
import com.chinaweal.youfool.devops.ai.dto.llm.*;
|
import com.chinaweal.youfool.devops.ai.dto.llm.*;
|
||||||
import com.chinaweal.youfool.devops.ai.handler.FunctionCallHandler;
|
import com.chinaweal.youfool.devops.ai.handler.FunctionCallHandler;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,8 @@ import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AI回答生成请求
|
* AI回答生成请求
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,8 @@ import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,9 @@ import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import javax.validation.constraints.Max;
|
import jakarta.validation.constraints.Max;
|
||||||
import javax.validation.constraints.Min;
|
import jakarta.validation.constraints.Min;
|
||||||
import javax.validation.constraints.NotEmpty;
|
import jakarta.validation.constraints.NotEmpty;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,8 @@ import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* LLM函数调用详情
|
* LLM函数调用详情
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,8 @@ import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* LLM函数定义
|
* LLM函数定义
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@ import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import javax.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* LLM函数工具定义
|
* LLM函数工具定义
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@ import lombok.NoArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import javax.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* LLM工具调用
|
* LLM工具调用
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,10 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
import javax.validation.constraints.Max;
|
import jakarta.validation.constraints.Max;
|
||||||
import javax.validation.constraints.Min;
|
import jakarta.validation.constraints.Min;
|
||||||
import javax.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.Size;
|
import jakarta.validation.constraints.Size;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
package com.chinaweal.youfool.devops.ai.example;
|
package com.chinaweal.youfool.devops.ai.example;
|
||||||
|
|
||||||
import com.chinaweal.youfool.devops.ai.service.EmbeddingCacheService;
|
import com.chinaweal.youfool.devops.ai.service.EmbeddingCacheService;
|
||||||
import com.chinaweal.youfool.devops.util.TextSimilarityUtils;
|
import com.chinaweal.youfool.devops.common.utils.TextSimilarityUtils;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import jakarta.annotation.PostConstruct;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ package com.chinaweal.youfool.devops.ai.handler;
|
||||||
|
|
||||||
import com.chinaweal.youfool.devops.ai.client.MCPClient;
|
import com.chinaweal.youfool.devops.ai.client.MCPClient;
|
||||||
import com.chinaweal.youfool.devops.ai.dto.llm.*;
|
import com.chinaweal.youfool.devops.ai.dto.llm.*;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package com.chinaweal.youfool.devops.ai.manager;
|
||||||
import com.chinaweal.youfool.devops.ai.coordinator.ToolCallCoordinator;
|
import com.chinaweal.youfool.devops.ai.coordinator.ToolCallCoordinator;
|
||||||
import com.chinaweal.youfool.devops.ai.dto.llm.*;
|
import com.chinaweal.youfool.devops.ai.dto.llm.*;
|
||||||
import com.chinaweal.youfool.devops.ai.service.EnhancedQwenChatService;
|
import com.chinaweal.youfool.devops.ai.service.EnhancedQwenChatService;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@ import lombok.Builder;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* MCP JSON-RPC 请求对象
|
* MCP JSON-RPC 请求对象
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import com.chinaweal.youfool.devops.ai.service.QwenEmbeddingService;
|
||||||
import com.chinaweal.youfool.devops.ai.service.QwenBatchEmbeddingService;
|
import com.chinaweal.youfool.devops.ai.service.QwenBatchEmbeddingService;
|
||||||
import com.chinaweal.youfool.devops.repair.entity.Repair;
|
import com.chinaweal.youfool.devops.repair.entity.Repair;
|
||||||
import com.chinaweal.youfool.devops.repair.mapper.RepairMapper;
|
import com.chinaweal.youfool.devops.repair.mapper.RepairMapper;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import io.github.resilience4j.circuitbreaker.annotation.CircuitBreaker;
|
import io.github.resilience4j.circuitbreaker.annotation.CircuitBreaker;
|
||||||
import io.github.resilience4j.retry.annotation.Retry;
|
import io.github.resilience4j.retry.annotation.Retry;
|
||||||
|
|
@ -17,8 +17,8 @@ import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import jakarta.annotation.PostConstruct;
|
||||||
import javax.annotation.PreDestroy;
|
import jakarta.annotation.PreDestroy;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
import org.springframework.jdbc.core.JdbcTemplate;
|
import org.springframework.jdbc.core.JdbcTemplate;
|
||||||
import org.springframework.scheduling.annotation.Async;
|
import org.springframework.scheduling.annotation.Async;
|
||||||
|
|
@ -26,7 +26,6 @@ import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.*;
|
import java.util.concurrent.*;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
@ -135,7 +134,7 @@ public class RepairVectorizationService {
|
||||||
log.info("开始全量向量化迁移,任务ID: {}", taskId);
|
log.info("开始全量向量化迁移,任务ID: {}", taskId);
|
||||||
|
|
||||||
// 统计总数量
|
// 统计总数量
|
||||||
Integer totalCount = countRepairsForVectorization(null);
|
long totalCount = countRepairsForVectorization(null);
|
||||||
progress.setTotalCount(totalCount);
|
progress.setTotalCount(totalCount);
|
||||||
progress.setStatus("processing");
|
progress.setStatus("processing");
|
||||||
|
|
||||||
|
|
@ -160,7 +159,7 @@ public class RepairVectorizationService {
|
||||||
processBatchVectorization(repairs.getRecords(), progress);
|
processBatchVectorization(repairs.getRecords(), progress);
|
||||||
|
|
||||||
// 更新进度
|
// 更新进度
|
||||||
progress.setProcessedCount(Math.min(page * pageSize, totalCount.intValue()));
|
progress.setProcessedCount(Math.min(page * pageSize, totalCount));
|
||||||
progress.updateProgress();
|
progress.updateProgress();
|
||||||
|
|
||||||
log.info("全量向量化进度: {}/{} ({}%)",
|
log.info("全量向量化进度: {}/{} ({}%)",
|
||||||
|
|
@ -215,7 +214,7 @@ public class RepairVectorizationService {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 注意:COUNT查询不能包含ORDER BY,需要先进行计数查询
|
// 注意:COUNT查询不能包含ORDER BY,需要先进行计数查询
|
||||||
Integer totalCount = repairMapper.selectCount(wrapper);
|
Long totalCount = repairMapper.selectCount(wrapper);
|
||||||
progress.setTotalCount(totalCount);
|
progress.setTotalCount(totalCount);
|
||||||
progress.setStatus("processing");
|
progress.setStatus("processing");
|
||||||
|
|
||||||
|
|
@ -241,7 +240,7 @@ public class RepairVectorizationService {
|
||||||
// 处理增量数据
|
// 处理增量数据
|
||||||
processIncrementalVectorization(repairs.getRecords(), progress);
|
processIncrementalVectorization(repairs.getRecords(), progress);
|
||||||
|
|
||||||
progress.setProcessedCount(Math.min(page * pageSize, totalCount.intValue()));
|
progress.setProcessedCount(Math.min(page * pageSize, totalCount));
|
||||||
progress.updateProgress();
|
progress.updateProgress();
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
@ -925,7 +924,7 @@ public class RepairVectorizationService {
|
||||||
/**
|
/**
|
||||||
* 统计需要向量化的工单数量
|
* 统计需要向量化的工单数量
|
||||||
*/
|
*/
|
||||||
private Integer countRepairsForVectorization(LocalDateTime since) {
|
private long countRepairsForVectorization(LocalDateTime since) {
|
||||||
LambdaQueryWrapper<Repair> wrapper = new LambdaQueryWrapper<Repair>()
|
LambdaQueryWrapper<Repair> wrapper = new LambdaQueryWrapper<Repair>()
|
||||||
.isNotNull(Repair::getFaultDescription)
|
.isNotNull(Repair::getFaultDescription)
|
||||||
.ne(Repair::getFaultDescription, "");
|
.ne(Repair::getFaultDescription, "");
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package com.chinaweal.youfool.devops.ai.migration;
|
package com.chinaweal.youfool.devops.ai.migration;
|
||||||
|
|
||||||
import com.chinaweal.youfool.devops.ai.migration.dto.VectorizationProgress;
|
import com.chinaweal.youfool.devops.ai.migration.dto.VectorizationProgress;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
|
|
||||||
|
|
@ -27,10 +27,10 @@ public class VectorizationProgress {
|
||||||
private String status = "pending";
|
private String status = "pending";
|
||||||
|
|
||||||
@Schema(description = "总数量")
|
@Schema(description = "总数量")
|
||||||
private Integer totalCount = 0;
|
private Long totalCount = 0L;
|
||||||
|
|
||||||
@Schema(description = "已处理数量")
|
@Schema(description = "已处理数量")
|
||||||
private Integer processedCount = 0;
|
private Long processedCount = 0L;
|
||||||
|
|
||||||
@Schema(description = "成功数量")
|
@Schema(description = "成功数量")
|
||||||
private Integer successCount = 0;
|
private Integer successCount = 0;
|
||||||
|
|
@ -126,7 +126,7 @@ public class VectorizationProgress {
|
||||||
this.processingSpeed = (double) (successCount + failureCount) / elapsedMs * 1000;
|
this.processingSpeed = (double) (successCount + failureCount) / elapsedMs * 1000;
|
||||||
|
|
||||||
// 预估剩余时间
|
// 预估剩余时间
|
||||||
int remaining = totalCount - (successCount + failureCount);
|
long remaining = totalCount - (successCount + failureCount);
|
||||||
if (processingSpeed > 0) {
|
if (processingSpeed > 0) {
|
||||||
this.estimatedRemainingSeconds = (long) (remaining / processingSpeed);
|
this.estimatedRemainingSeconds = (long) (remaining / processingSpeed);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
package com.chinaweal.youfool.devops.ai.provider;
|
package com.chinaweal.youfool.devops.ai.provider;
|
||||||
|
|
||||||
import com.chinaweal.youfool.devops.ai.dto.llm.ChatRequest;
|
import com.chinaweal.youfool.devops.ai.dto.llm.ChatRequest;
|
||||||
import com.chinaweal.youfool.devops.ai.dto.llm.FunctionTool;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
@ -11,7 +10,6 @@ import org.springframework.http.MediaType;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import com.chinaweal.youfool.devops.ai.handler.FunctionCallHandler;
|
||||||
import com.chinaweal.youfool.devops.ai.mcp.MCPFunctionBridge;
|
import com.chinaweal.youfool.devops.ai.mcp.MCPFunctionBridge;
|
||||||
import com.chinaweal.youfool.devops.ai.mcp.dto.MCPToolDefinition;
|
import com.chinaweal.youfool.devops.ai.mcp.dto.MCPToolDefinition;
|
||||||
import com.chinaweal.youfool.devops.ai.client.MCPClient;
|
import com.chinaweal.youfool.devops.ai.client.MCPClient;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import com.chinaweal.youfool.devops.ai.handler.FunctionCallHandler;
|
||||||
import com.chinaweal.youfool.devops.ai.mcp.MCPFunctionBridge;
|
import com.chinaweal.youfool.devops.ai.mcp.MCPFunctionBridge;
|
||||||
import com.chinaweal.youfool.devops.ai.mcp.dto.MCPToolDefinition;
|
import com.chinaweal.youfool.devops.ai.mcp.dto.MCPToolDefinition;
|
||||||
import com.chinaweal.youfool.devops.ai.client.MCPClient;
|
import com.chinaweal.youfool.devops.ai.client.MCPClient;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,12 @@ package com.chinaweal.youfool.devops.ai.provider;
|
||||||
|
|
||||||
import com.chinaweal.youfool.devops.ai.config.MCPMigrationProperties;
|
import com.chinaweal.youfool.devops.ai.config.MCPMigrationProperties;
|
||||||
import com.chinaweal.youfool.devops.ai.dto.llm.ChatRequest;
|
import com.chinaweal.youfool.devops.ai.dto.llm.ChatRequest;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import jakarta.annotation.PostConstruct;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import com.chinaweal.youfool.devops.ai.handler.FunctionCallHandler;
|
||||||
import com.chinaweal.youfool.devops.ai.mcp.MCPFunctionBridge;
|
import com.chinaweal.youfool.devops.ai.mcp.MCPFunctionBridge;
|
||||||
import com.chinaweal.youfool.devops.ai.mcp.dto.MCPToolDefinition;
|
import com.chinaweal.youfool.devops.ai.mcp.dto.MCPToolDefinition;
|
||||||
import com.chinaweal.youfool.devops.ai.client.MCPClient;
|
import com.chinaweal.youfool.devops.ai.client.MCPClient;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,13 @@
|
||||||
package com.chinaweal.youfool.devops.ai.resilience;
|
package com.chinaweal.youfool.devops.ai.resilience;
|
||||||
|
|
||||||
import com.chinaweal.youfool.devops.ai.dto.llm.*;
|
import com.chinaweal.youfool.devops.ai.dto.llm.*;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,7 @@ import com.chinaweal.youfool.devops.repair.entity.RepairHandle;
|
||||||
import com.chinaweal.youfool.devops.repair.mapper.RepairHandleMapper;
|
import com.chinaweal.youfool.devops.repair.mapper.RepairHandleMapper;
|
||||||
import com.chinaweal.youfool.devops.repair.service.IRepairService;
|
import com.chinaweal.youfool.devops.repair.service.IRepairService;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import com.chinaweal.youfool.devops.util.TextSimilarityUtils;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
|
|
@ -24,7 +23,6 @@ import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AI回答服务
|
* AI回答服务
|
||||||
|
|
|
||||||
|
|
@ -11,11 +11,10 @@ import com.chinaweal.youfool.devops.ai.dto.llm.ChatResponse;
|
||||||
import com.chinaweal.youfool.devops.ai.dto.llm.FunctionTool;
|
import com.chinaweal.youfool.devops.ai.dto.llm.FunctionTool;
|
||||||
import com.chinaweal.youfool.devops.ai.mcp.MCPServer;
|
import com.chinaweal.youfool.devops.ai.mcp.MCPServer;
|
||||||
import com.chinaweal.youfool.devops.ai.mcp.MCPTool;
|
import com.chinaweal.youfool.devops.ai.mcp.MCPTool;
|
||||||
import com.chinaweal.youfool.devops.ai.mcp.MCPResponse;
|
|
||||||
import com.chinaweal.youfool.devops.ai.mcp.dto.MCPToolDefinition;
|
import com.chinaweal.youfool.devops.ai.mcp.dto.MCPToolDefinition;
|
||||||
import com.chinaweal.youfool.devops.ai.provider.LLMProvider;
|
import com.chinaweal.youfool.devops.ai.provider.LLMProvider;
|
||||||
import com.chinaweal.youfool.devops.ai.provider.ProviderManager;
|
import com.chinaweal.youfool.devops.ai.provider.ProviderManager;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
package com.chinaweal.youfool.devops.ai.service;
|
package com.chinaweal.youfool.devops.ai.service;
|
||||||
|
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import com.chinaweal.youfool.devops.ai.coordinator.ToolCallCoordinator;
|
||||||
import com.chinaweal.youfool.devops.ai.dto.llm.*;
|
import com.chinaweal.youfool.devops.ai.dto.llm.*;
|
||||||
import com.chinaweal.youfool.devops.ai.handler.FunctionCallHandler;
|
import com.chinaweal.youfool.devops.ai.handler.FunctionCallHandler;
|
||||||
import com.chinaweal.youfool.devops.ai.provider.QwenProvider;
|
import com.chinaweal.youfool.devops.ai.provider.QwenProvider;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import io.github.resilience4j.circuitbreaker.annotation.CircuitBreaker;
|
import io.github.resilience4j.circuitbreaker.annotation.CircuitBreaker;
|
||||||
import io.github.resilience4j.ratelimiter.annotation.RateLimiter;
|
import io.github.resilience4j.ratelimiter.annotation.RateLimiter;
|
||||||
import io.github.resilience4j.retry.annotation.Retry;
|
import io.github.resilience4j.retry.annotation.Retry;
|
||||||
|
|
@ -17,7 +17,6 @@ import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
package com.chinaweal.youfool.devops.ai.service;
|
package com.chinaweal.youfool.devops.ai.service;
|
||||||
|
|
||||||
import com.chinaweal.youfool.devops.ai.config.LLMStreamingProperties;
|
import com.chinaweal.youfool.devops.ai.config.LLMStreamingProperties;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import jakarta.annotation.PostConstruct;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package com.chinaweal.youfool.devops.ai.service;
|
package com.chinaweal.youfool.devops.ai.service;
|
||||||
|
|
||||||
import com.chinaweal.youfool.devops.ai.config.EmbeddingProperties;
|
import com.chinaweal.youfool.devops.ai.config.EmbeddingProperties;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
@ -12,7 +12,6 @@ import okhttp3.*;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import com.chinaweal.youfool.devops.ai.mcp.MCPResponse;
|
||||||
import com.chinaweal.youfool.devops.ai.mcp.MCPTool;
|
import com.chinaweal.youfool.devops.ai.mcp.MCPTool;
|
||||||
import com.chinaweal.youfool.devops.ai.mcp.dto.MCPToolDefinition;
|
import com.chinaweal.youfool.devops.ai.mcp.dto.MCPToolDefinition;
|
||||||
import com.chinaweal.youfool.devops.ai.provider.QwenProvider;
|
import com.chinaweal.youfool.devops.ai.provider.QwenProvider;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
@ -23,10 +23,9 @@ import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
|
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import jakarta.annotation.PostConstruct;
|
||||||
import java.io.BufferedReader;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.StringReader;
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package com.chinaweal.youfool.devops.ai.service;
|
||||||
import com.chinaweal.youfool.devops.ai.config.EmbeddingProperties;
|
import com.chinaweal.youfool.devops.ai.config.EmbeddingProperties;
|
||||||
import com.chinaweal.youfool.devops.ai.dto.EmbeddingRequest;
|
import com.chinaweal.youfool.devops.ai.dto.EmbeddingRequest;
|
||||||
import com.chinaweal.youfool.devops.ai.dto.EmbeddingResponse;
|
import com.chinaweal.youfool.devops.ai.dto.EmbeddingResponse;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import io.github.resilience4j.circuitbreaker.annotation.CircuitBreaker;
|
import io.github.resilience4j.circuitbreaker.annotation.CircuitBreaker;
|
||||||
import io.github.resilience4j.ratelimiter.annotation.RateLimiter;
|
import io.github.resilience4j.ratelimiter.annotation.RateLimiter;
|
||||||
|
|
@ -15,7 +15,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.time.Duration;
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,14 @@
|
||||||
package com.chinaweal.youfool.devops.ai.service;
|
package com.chinaweal.youfool.devops.ai.service;
|
||||||
|
|
||||||
import com.chinaweal.youfool.devops.ai.config.LLMStreamingProperties;
|
import com.chinaweal.youfool.devops.ai.config.LLMStreamingProperties;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
|
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import jakarta.annotation.PostConstruct;
|
||||||
import javax.annotation.PreDestroy;
|
import jakarta.annotation.PreDestroy;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
|
||||||
|
|
@ -4,12 +4,11 @@ package com.chinaweal.youfool.devops.base.controller;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.chinaweal.youfool.devops.base.entity.Dict;
|
import com.chinaweal.youfool.devops.base.entity.Dict;
|
||||||
import com.chinaweal.youfool.devops.base.service.IDictService;
|
import com.chinaweal.youfool.devops.base.service.IDictService;
|
||||||
import com.chinaweal.youfool.framework.springboot.base.query.BaseQuery;
|
|
||||||
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
|
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
|
||||||
|
import com.chinaweal.youfool.framework.springboot.rest.query.BaseQuery;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
|
@ -18,7 +17,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package com.chinaweal.youfool.devops.base.controller;
|
package com.chinaweal.youfool.devops.base.controller;
|
||||||
|
|
||||||
import com.chinaweal.youfool.devops.config.ErrorLogProperties;
|
import com.chinaweal.youfool.devops.config.ErrorLogProperties;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
@ -20,7 +20,6 @@ import java.nio.file.Path;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 错误日志查看控制器
|
* 错误日志查看控制器
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,8 @@ import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,9 @@
|
||||||
package com.chinaweal.youfool.devops.base.controller;
|
package com.chinaweal.youfool.devops.base.controller;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
||||||
import com.chinaweal.youfool.devops.base.entity.TaskList;
|
|
||||||
import com.chinaweal.youfool.devops.base.service.ITaskListService;
|
|
||||||
import com.chinaweal.youfool.framework.springboot.base.query.BaseQuery;
|
|
||||||
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 待办表 控制器
|
* 待办表 控制器
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,10 @@
|
||||||
package com.chinaweal.youfool.devops.base.entity;
|
package com.chinaweal.youfool.devops.base.entity;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
|
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
|
||||||
import com.chinaweal.youfool.framework.springboot.json.LocalDateTimeStringSerializer;
|
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
|
||||||
|
|
@ -4,15 +4,14 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.chinaweal.youfool.framework.springboot.json.LocalDateTimeStringSerializer;
|
import com.chinaweal.youfool.framework.springboot.common.util.DateUtil;
|
||||||
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
|
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -93,7 +92,7 @@ public class TaskFile extends SuperEntity {
|
||||||
*/
|
*/
|
||||||
@Schema(description = "上传时间")
|
@Schema(description = "上传时间")
|
||||||
@TableField("UPLOAD_TIME")
|
@TableField("UPLOAD_TIME")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime uploadTime;
|
private LocalDateTime uploadTime;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,9 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.chinaweal.youfool.framework.springboot.json.LocalDateTimeStringSerializer;
|
import com.chinaweal.youfool.framework.springboot.common.util.DateUtil;
|
||||||
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
|
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
@ -91,7 +91,7 @@ public class TaskHandle extends SuperEntity {
|
||||||
*/
|
*/
|
||||||
@Schema(description = "生成时间")
|
@Schema(description = "生成时间")
|
||||||
@TableField("HAPPEN_TIME")
|
@TableField("HAPPEN_TIME")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime happenTime;
|
private LocalDateTime happenTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
package com.chinaweal.youfool.devops.base.entity;
|
package com.chinaweal.youfool.devops.base.entity;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
import com.chinaweal.youfool.framework.springboot.json.LocalDateTimeStringSerializer;
|
import com.chinaweal.youfool.devops.common.constants.CommonConstant;
|
||||||
|
import com.chinaweal.youfool.framework.springboot.common.util.DateUtil;
|
||||||
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
|
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
|
||||||
import com.chinaweal.youfool.framework.springboot.util.ConstantsUtil;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
@ -160,7 +160,7 @@ public class TaskList extends SuperEntity {
|
||||||
*/
|
*/
|
||||||
@Schema(description = "是否删除;0:有效;1:删除")
|
@Schema(description = "是否删除;0:有效;1:删除")
|
||||||
@TableField("DELETED")
|
@TableField("DELETED")
|
||||||
@TableLogic(value = ConstantsUtil.NOT_DELETED, delval = ConstantsUtil.DELETED)
|
@TableLogic(value = CommonConstant.FALSE_0_STR, delval = CommonConstant.TRUE_1_STR)
|
||||||
private String deleted;
|
private String deleted;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -168,7 +168,7 @@ public class TaskList extends SuperEntity {
|
||||||
*/
|
*/
|
||||||
@Schema(description = "报送时间")
|
@Schema(description = "报送时间")
|
||||||
@TableField("LAUNCH_TIME")
|
@TableField("LAUNCH_TIME")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime launchTime;
|
private LocalDateTime launchTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -176,7 +176,7 @@ public class TaskList extends SuperEntity {
|
||||||
*/
|
*/
|
||||||
@Schema(description = "到期时间")
|
@Schema(description = "到期时间")
|
||||||
@TableField("SOLVE_LIMIT_TIME")
|
@TableField("SOLVE_LIMIT_TIME")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime solveLimitTime;
|
private LocalDateTime solveLimitTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -184,7 +184,7 @@ public class TaskList extends SuperEntity {
|
||||||
*/
|
*/
|
||||||
@Schema(description = "处理更新时间")
|
@Schema(description = "处理更新时间")
|
||||||
@TableField("HANDLE_TIME")
|
@TableField("HANDLE_TIME")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime handleTime;
|
private LocalDateTime handleTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package com.chinaweal.youfool.devops.base.service;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.chinaweal.youfool.devops.base.entity.Dict;
|
import com.chinaweal.youfool.devops.base.entity.Dict;
|
||||||
import com.chinaweal.youfool.framework.springboot.base.query.BaseQuery;
|
import com.chinaweal.youfool.framework.springboot.rest.query.BaseQuery;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
@ -31,5 +31,5 @@ public interface IDictService extends IService<Dict> {
|
||||||
|
|
||||||
IPage<Dict> list(BaseQuery<Dict> query);
|
IPage<Dict> list(BaseQuery<Dict> query);
|
||||||
|
|
||||||
void addDict(String type,String name);
|
void addDict(String type, String name);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,10 +3,10 @@ package com.chinaweal.youfool.devops.base.service;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.chinaweal.youfool.devops.base.entity.TaskFile;
|
import com.chinaweal.youfool.devops.base.entity.TaskFile;
|
||||||
import com.chinaweal.youfool.framework.springboot.base.query.BaseQuery;
|
import com.chinaweal.youfool.framework.springboot.rest.query.BaseQuery;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package com.chinaweal.youfool.devops.base.service;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.chinaweal.youfool.devops.base.entity.TaskHandle;
|
import com.chinaweal.youfool.devops.base.entity.TaskHandle;
|
||||||
import com.chinaweal.youfool.framework.springboot.base.query.BaseQuery;
|
import com.chinaweal.youfool.framework.springboot.rest.query.BaseQuery;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.chinaweal.youfool.devops.base.entity.TaskHandle;
|
import com.chinaweal.youfool.devops.base.entity.TaskHandle;
|
||||||
import com.chinaweal.youfool.devops.base.entity.TaskList;
|
import com.chinaweal.youfool.devops.base.entity.TaskList;
|
||||||
import com.chinaweal.youfool.framework.springboot.base.query.BaseQuery;
|
import com.chinaweal.youfool.framework.springboot.rest.query.BaseQuery;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.chinaweal.youfool.devops.base.entity.Dict;
|
import com.chinaweal.youfool.devops.base.entity.Dict;
|
||||||
import com.chinaweal.youfool.devops.base.mapper.DictMapper;
|
import com.chinaweal.youfool.devops.base.mapper.DictMapper;
|
||||||
import com.chinaweal.youfool.devops.base.service.IDictService;
|
import com.chinaweal.youfool.devops.base.service.IDictService;
|
||||||
import com.chinaweal.youfool.framework.springboot.base.query.BaseQuery;
|
import com.chinaweal.youfool.framework.springboot.rest.query.BaseQuery;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
|
@ -66,7 +66,7 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements ID
|
||||||
lqw.eq(Dict::getType, entity.getType());
|
lqw.eq(Dict::getType, entity.getType());
|
||||||
lqw.like(StringUtils.isNotBlank(entity.getName()), Dict::getName, entity.getName());
|
lqw.like(StringUtils.isNotBlank(entity.getName()), Dict::getName, entity.getName());
|
||||||
|
|
||||||
if (page.getOrders().isEmpty()) {
|
if (page.orders().isEmpty()) {
|
||||||
page.addOrder(OrderItem.desc("update_time"));
|
page.addOrder(OrderItem.desc("update_time"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ package com.chinaweal.youfool.devops.base.service.impl;
|
||||||
|
|
||||||
import com.chinaweal.youfool.devops.base.service.IMonitorService;
|
import com.chinaweal.youfool.devops.base.service.IMonitorService;
|
||||||
import com.chinaweal.youfool.devops.repair.api.RobotApi;
|
import com.chinaweal.youfool.devops.repair.api.RobotApi;
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.commons.lang3.time.DateFormatUtils;
|
import org.apache.commons.lang3.time.DateFormatUtils;
|
||||||
|
|
@ -11,7 +11,7 @@ import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.Driver;
|
import java.sql.Driver;
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.chinaweal.youfool.devops.base.entity.TaskFile;
|
import com.chinaweal.youfool.devops.base.entity.TaskFile;
|
||||||
import com.chinaweal.youfool.devops.base.mapper.TaskFileMapper;
|
import com.chinaweal.youfool.devops.base.mapper.TaskFileMapper;
|
||||||
import com.chinaweal.youfool.devops.base.service.ITaskFileService;
|
import com.chinaweal.youfool.devops.base.service.ITaskFileService;
|
||||||
import com.chinaweal.youfool.framework.springboot.base.query.BaseQuery;
|
import com.chinaweal.youfool.framework.springboot.rest.query.BaseQuery;
|
||||||
import com.chinaweal.youfool.framework.springboot.util.DateTimeUtils;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.coobird.thumbnailator.Thumbnails;
|
import net.coobird.thumbnailator.Thumbnails;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
@ -20,11 +20,11 @@ import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
@ -101,7 +101,7 @@ public class TaskFileServiceImpl extends ServiceImpl<TaskFileMapper, TaskFile> i
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String filePath(String type) {
|
public String filePath(String type) {
|
||||||
return type + File.separator + LocalDate.now().format(DateTimeUtils.SHORT_DATE_FORMATTER);
|
return type + File.separator + LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -11,11 +11,11 @@ import com.chinaweal.youfool.devops.base.entity.TaskList;
|
||||||
import com.chinaweal.youfool.devops.base.mapper.TaskHandleMapper;
|
import com.chinaweal.youfool.devops.base.mapper.TaskHandleMapper;
|
||||||
import com.chinaweal.youfool.devops.base.service.ITaskHandleService;
|
import com.chinaweal.youfool.devops.base.service.ITaskHandleService;
|
||||||
import com.chinaweal.youfool.devops.base.service.ITaskListService;
|
import com.chinaweal.youfool.devops.base.service.ITaskListService;
|
||||||
import com.chinaweal.youfool.framework.springboot.base.query.BaseQuery;
|
import com.chinaweal.youfool.framework.springboot.rest.query.BaseQuery;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,12 +10,12 @@ import com.chinaweal.youfool.devops.base.entity.TaskList;
|
||||||
import com.chinaweal.youfool.devops.base.mapper.TaskListMapper;
|
import com.chinaweal.youfool.devops.base.mapper.TaskListMapper;
|
||||||
import com.chinaweal.youfool.devops.base.service.ITaskHandleService;
|
import com.chinaweal.youfool.devops.base.service.ITaskHandleService;
|
||||||
import com.chinaweal.youfool.devops.base.service.ITaskListService;
|
import com.chinaweal.youfool.devops.base.service.ITaskListService;
|
||||||
import com.chinaweal.youfool.framework.springboot.base.query.BaseQuery;
|
import com.chinaweal.youfool.devops.common.constants.CommonConstant;
|
||||||
import com.chinaweal.youfool.framework.springboot.util.ConstantsUtil;
|
import com.chinaweal.youfool.framework.springboot.rest.query.BaseQuery;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
|
|
@ -45,7 +45,7 @@ public class TaskListServiceImpl extends ServiceImpl<TaskListMapper, TaskList> i
|
||||||
@Override
|
@Override
|
||||||
public TaskHandle createTask(TaskList task, String result) {
|
public TaskHandle createTask(TaskList task, String result) {
|
||||||
task.setStep(ITaskHandleService.STRART);
|
task.setStep(ITaskHandleService.STRART);
|
||||||
task.setDeleted(ConstantsUtil.NOT_DELETED);
|
task.setDeleted(CommonConstant.FALSE_0_STR);
|
||||||
save(task);
|
save(task);
|
||||||
|
|
||||||
//插入流程表,启动流程
|
//插入流程表,启动流程
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
package com.chinaweal.youfool.devops.common.constants;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通用常量
|
||||||
|
*
|
||||||
|
* @author lroyia
|
||||||
|
* @since 2025/8/18 17:00
|
||||||
|
**/
|
||||||
|
public interface CommonConstant {
|
||||||
|
|
||||||
|
String TRUE_1_STR = "1";
|
||||||
|
String FALSE_0_STR = "0";
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.chinaweal.youfool.devops.util;
|
package com.chinaweal.youfool.devops.common.utils;
|
||||||
|
|
||||||
import com.chinaweal.youfool.devops.config.ErrorLogProperties;
|
import com.chinaweal.youfool.devops.config.ErrorLogProperties;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
package com.chinaweal.youfool.devops.common.utils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字串工具类
|
||||||
|
*
|
||||||
|
* @author lroyia
|
||||||
|
* @since 2025/8/18 17:19
|
||||||
|
**/
|
||||||
|
public abstract class StringUtils extends com.chinaweal.youfool.framework.springboot.common.util.StringUtils {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 对象转字符串,并去空格
|
||||||
|
*
|
||||||
|
* @param str 转换对象
|
||||||
|
* @return 转换结果
|
||||||
|
*/
|
||||||
|
public static String trimObj(Object str) {
|
||||||
|
if (str == null) {
|
||||||
|
return StringUtils.EMPTY;
|
||||||
|
}
|
||||||
|
return trimToEmpty(str.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.chinaweal.youfool.devops.util;
|
package com.chinaweal.youfool.devops.common.utils;
|
||||||
|
|
||||||
import com.chinaweal.youfool.devops.ai.service.QwenEmbeddingService;
|
import com.chinaweal.youfool.devops.ai.service.QwenEmbeddingService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
package com.chinaweal.youfool.devops.util;
|
package com.chinaweal.youfool.devops.common.utils;
|
||||||
|
|
||||||
/*对图片进行处理的类和方法*/
|
/*对图片进行处理的类和方法*/
|
||||||
|
|
||||||
import javax.imageio.ImageIO;
|
import javax.imageio.ImageIO;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
package com.chinaweal.youfool.devops.common.utils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web相关工具类
|
||||||
|
*
|
||||||
|
* @author lroyia
|
||||||
|
* @since 2025/8/18 17:12
|
||||||
|
**/
|
||||||
|
public abstract class WebUtil extends com.chinaweal.youfool.framework.springboot.common.util.WebUtil {
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
package com.chinaweal.youfool.devops.config;
|
package com.chinaweal.youfool.devops.config;
|
||||||
|
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,16 @@
|
||||||
package com.chinaweal.youfool.devops.config;
|
package com.chinaweal.youfool.devops.config;
|
||||||
|
|
||||||
import com.alibaba.druid.pool.DruidDataSource;
|
|
||||||
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
|
|
||||||
import com.baomidou.mybatisplus.core.config.GlobalConfig;
|
import com.baomidou.mybatisplus.core.config.GlobalConfig;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
|
|
||||||
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
|
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
|
||||||
import com.chinaweal.youfool.framework.springboot.mybatis.plus.CommonMetaObjectHandler;
|
import com.chinaweal.youfool.framework.springboot.mybatis.plus.CommonMetaObjectHandler;
|
||||||
import org.apache.ibatis.session.SqlSessionFactory;
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
import org.mybatis.spring.SqlSessionTemplate;
|
|
||||||
import org.mybatis.spring.annotation.MapperScan;
|
import org.mybatis.spring.annotation.MapperScan;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.context.annotation.Primary;
|
|
||||||
import org.springframework.core.io.ClassPathResource;
|
import org.springframework.core.io.ClassPathResource;
|
||||||
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
||||||
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
|
||||||
|
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
|
|
||||||
|
|
@ -30,41 +24,21 @@ import javax.sql.DataSource;
|
||||||
@MapperScan(basePackages = {"com.chinaweal.youfool.devops.repair.**.mapper", "com.chinaweal.youfool.devops.base.**.mapper", "com.chinaweal.youfool.devops.leaderassign.**.mapper", "com.chinaweal.youfool.devops.org.mapper", "com.chinaweal.youfool.devops.ai.**.mapper"}, sqlSessionTemplateRef = "devopsSqlSessionTemplate")
|
@MapperScan(basePackages = {"com.chinaweal.youfool.devops.repair.**.mapper", "com.chinaweal.youfool.devops.base.**.mapper", "com.chinaweal.youfool.devops.leaderassign.**.mapper", "com.chinaweal.youfool.devops.org.mapper", "com.chinaweal.youfool.devops.ai.**.mapper"}, sqlSessionTemplateRef = "devopsSqlSessionTemplate")
|
||||||
public class DevopsDataSource {
|
public class DevopsDataSource {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
@Bean(name = "devopsDS", initMethod = "init", destroyMethod = "close")
|
private CommonMetaObjectHandler commonMetaObjectHandler;
|
||||||
@ConfigurationProperties(prefix = "spring.datasource.devops")
|
|
||||||
@Primary
|
|
||||||
public DruidDataSource dataSource() {
|
|
||||||
return DruidDataSourceBuilder.create().build();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(name = "devopsSqlSessionFactory")
|
@Bean(name = "devopsSqlSessionFactory")
|
||||||
public MybatisSqlSessionFactoryBean sqlSessionFactory(@Qualifier("devopsDS") DataSource dataSource) throws Exception {
|
public MybatisSqlSessionFactoryBean sqlSessionFactory(@Qualifier("devopsDS") DataSource dataSource) throws Exception {
|
||||||
MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
|
MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
|
||||||
bean.setDataSource(dataSource);
|
bean.setDataSource(dataSource);
|
||||||
GlobalConfig globalConfig = new GlobalConfig();
|
GlobalConfig globalConfig = new GlobalConfig();
|
||||||
globalConfig.setMetaObjectHandler(new CommonMetaObjectHandler());
|
globalConfig.setMetaObjectHandler(commonMetaObjectHandler);
|
||||||
bean.setGlobalConfig(globalConfig);
|
bean.setGlobalConfig(globalConfig);
|
||||||
bean.setConfigLocation(new ClassPathResource("mybatis/mybatis-config.xml"));
|
bean.setConfigLocation(new ClassPathResource("mybatis/mybatis-config.xml"));
|
||||||
bean.setPlugins(paginationInterceptor());// 分页插件
|
org.springframework.core.io.Resource[] prjResources = new PathMatchingResourcePatternResolver().getResources("classpath*:mybatis/mapper/**/*.xml");
|
||||||
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mybatis/mapper/**/*.xml"));
|
org.springframework.core.io.Resource[] cmsResources = new PathMatchingResourcePatternResolver().getResources("classpath*:cms/mybatis/mapper/**/*.xml");
|
||||||
|
org.springframework.core.io.Resource[] resources = ArrayUtils.addAll(prjResources, cmsResources);
|
||||||
|
bean.setMapperLocations(resources);
|
||||||
return bean;
|
return bean;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean(name = "devopsTransactionManager")
|
|
||||||
public DataSourceTransactionManager transactionManager(@Qualifier("devopsDS") DataSource dataSource) {
|
|
||||||
return new DataSourceTransactionManager(dataSource);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(name = "devopsSqlSessionTemplate")
|
|
||||||
public SqlSessionTemplate sqlSessionTemplate(@Qualifier("devopsSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
|
|
||||||
return new SqlSessionTemplate(sqlSessionFactory);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PaginationInterceptor paginationInterceptor() {
|
|
||||||
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
|
|
||||||
// 设置最大单页限制数量,默认 500 条,-1 不受限制
|
|
||||||
paginationInterceptor.setLimit(-1);
|
|
||||||
return paginationInterceptor;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package com.chinaweal.youfool.devops.config;
|
package com.chinaweal.youfool.devops.config;
|
||||||
|
|
||||||
import com.chinaweal.youfool.framework.springboot.filter.RepeatlyReadFilter;
|
import com.chinaweal.youfool.framework.springboot.filter.RepeatlyReadFilter;
|
||||||
import com.chinaweal.youfool.framework.springboot.log.filter.RestLogFilter;
|
import com.chinaweal.youfool.framework.springboot.filter.RestLogFilter;
|
||||||
import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
package com.chinaweal.youfool.devops.config;
|
package com.chinaweal.youfool.devops.config;
|
||||||
|
|
||||||
import com.chinaweal.youfool.devops.util.ErrorLogUtils;
|
import com.chinaweal.youfool.devops.common.utils.ErrorLogUtils;
|
||||||
// Temporarily commented out for Spring AI compatibility
|
// Temporarily commented out for Spring AI compatibility
|
||||||
// import com.chinaweal.youfool.devops.ai.exception.*;
|
// import com.chinaweal.youfool.devops.ai.exception.*;
|
||||||
// import com.chinaweal.youfool.devops.ai.circuitbreaker.CircuitBreakerOpenException;
|
// import com.chinaweal.youfool.devops.ai.circuitbreaker.CircuitBreakerOpenException;
|
||||||
|
|
@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.ControllerAdvice;
|
||||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import org.springframework.web.servlet.config.annotation.InterceptorRegistration
|
||||||
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,59 +1,59 @@
|
||||||
package com.chinaweal.youfool.devops.config;
|
//package com.chinaweal.youfool.devops.config;
|
||||||
|
//
|
||||||
import com.alibaba.druid.pool.DruidDataSource;
|
//import com.alibaba.druid.pool.DruidDataSource;
|
||||||
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
|
//import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
|
||||||
import com.baomidou.mybatisplus.core.config.GlobalConfig;
|
//import com.baomidou.mybatisplus.core.config.GlobalConfig;
|
||||||
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
|
//import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
|
||||||
import com.chinaweal.youfool.framework.springboot.mybatis.plus.CommonMetaObjectHandler;
|
//import com.chinaweal.youfool.framework.springboot.mybatis.plus.CommonMetaObjectHandler;
|
||||||
import org.apache.ibatis.session.SqlSessionFactory;
|
//import org.apache.ibatis.session.SqlSessionFactory;
|
||||||
import org.mybatis.spring.SqlSessionTemplate;
|
//import org.mybatis.spring.SqlSessionTemplate;
|
||||||
import org.mybatis.spring.annotation.MapperScan;
|
//import org.mybatis.spring.annotation.MapperScan;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
//import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
//import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
import org.springframework.context.annotation.Bean;
|
//import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
//import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.core.io.ClassPathResource;
|
//import org.springframework.core.io.ClassPathResource;
|
||||||
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
//import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
||||||
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
//import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
||||||
|
//
|
||||||
import javax.sql.DataSource;
|
//import javax.sql.DataSource;
|
||||||
|
//
|
||||||
/**
|
///**
|
||||||
* youfool基础的数据源
|
// * youfool基础的数据源
|
||||||
*
|
// *
|
||||||
* @author itluck
|
// * @author itluck
|
||||||
*/
|
// */
|
||||||
|
//
|
||||||
@Configuration
|
//@Configuration
|
||||||
@MapperScan(basePackages = "com.chinaweal.youfool.framework.springboot.**.mapper", sqlSessionTemplateRef = "youfoolSqlSessionTemplate")
|
//@MapperScan(basePackages = "com.chinaweal.youfool.framework.springboot.**.mapper", sqlSessionTemplateRef = "youfoolSqlSessionTemplate")
|
||||||
public class YoufoolDataSource {
|
//public class YoufoolDataSource {
|
||||||
|
//
|
||||||
|
//
|
||||||
@Bean(name = "youfoolDS", initMethod = "init", destroyMethod = "close")
|
// @Bean(name = "youfoolDS", initMethod = "init", destroyMethod = "close")
|
||||||
@ConfigurationProperties(prefix = "spring.datasource.youfool")
|
// @ConfigurationProperties(prefix = "spring.datasource.youfool")
|
||||||
public DruidDataSource dataSource() {
|
// public DruidDataSource dataSource() {
|
||||||
return DruidDataSourceBuilder.create().build();
|
// return DruidDataSourceBuilder.create().build();
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Bean(name = "youfoolSqlSessionFactory")
|
// @Bean(name = "youfoolSqlSessionFactory")
|
||||||
public MybatisSqlSessionFactoryBean sqlSessionFactory(@Qualifier("youfoolDS") DataSource dataSource) throws Exception {
|
// public MybatisSqlSessionFactoryBean sqlSessionFactory(@Qualifier("youfoolDS") DataSource dataSource) throws Exception {
|
||||||
MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
|
// MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
|
||||||
bean.setDataSource(dataSource);
|
// bean.setDataSource(dataSource);
|
||||||
GlobalConfig globalConfig = new GlobalConfig();
|
// GlobalConfig globalConfig = new GlobalConfig();
|
||||||
globalConfig.setMetaObjectHandler(new CommonMetaObjectHandler());
|
// globalConfig.setMetaObjectHandler(new CommonMetaObjectHandler());
|
||||||
bean.setGlobalConfig(globalConfig);
|
// bean.setGlobalConfig(globalConfig);
|
||||||
bean.setConfigLocation(new ClassPathResource("youfool/mybatis/mybatis-config.xml"));
|
// bean.setConfigLocation(new ClassPathResource("youfool/mybatis/mybatis-config.xml"));
|
||||||
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:youfool/mybatis/mapper/**/*.xml"));
|
// bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:youfool/mybatis/mapper/**/*.xml"));
|
||||||
return bean;
|
// return bean;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Bean(name = "youfoolTransactionManager")
|
// @Bean(name = "youfoolTransactionManager")
|
||||||
public DataSourceTransactionManager transactionManager(@Qualifier("youfoolDS") DataSource dataSource) {
|
// public DataSourceTransactionManager transactionManager(@Qualifier("youfoolDS") DataSource dataSource) {
|
||||||
return new DataSourceTransactionManager(dataSource);
|
// return new DataSourceTransactionManager(dataSource);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Bean(name = "youfoolSqlSessionTemplate")
|
// @Bean(name = "youfoolSqlSessionTemplate")
|
||||||
public SqlSessionTemplate sqlSessionTemplate(@Qualifier("youfoolSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
|
// public SqlSessionTemplate sqlSessionTemplate(@Qualifier("youfoolSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
|
||||||
return new SqlSessionTemplate(sqlSessionFactory);
|
// return new SqlSessionTemplate(sqlSessionFactory);
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
package com.chinaweal.youfool.devops.dev;
|
package com.chinaweal.youfool.devops.dev;
|
||||||
|
|
||||||
|
|
||||||
import com.chinaweal.youfool.framework.springboot.mybatis.plus.CodeGenerator;
|
import com.chinaweal.youfool.framework.springboot.mybatis.plus.FastCodeGenerator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 代码生成器
|
* 代码生成器
|
||||||
*/
|
*/
|
||||||
public class MybatisPlusCodeGenerator {
|
public class MybatisPlusCodeGenerator {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
CodeGenerator codeGenerator = new CodeGenerator("properties/codeCenerator");
|
FastCodeGenerator fastCodeGenerator = new FastCodeGenerator("properties/codeGenerator");
|
||||||
codeGenerator.generateCode();
|
fastCodeGenerator.generate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@ import com.chinaweal.youfool.devops.leaderassign.controller.dto.TaskAssignVo;
|
||||||
import com.chinaweal.youfool.devops.leaderassign.controller.dto.TaskListQuery;
|
import com.chinaweal.youfool.devops.leaderassign.controller.dto.TaskListQuery;
|
||||||
import com.chinaweal.youfool.devops.leaderassign.entity.Assign;
|
import com.chinaweal.youfool.devops.leaderassign.entity.Assign;
|
||||||
import com.chinaweal.youfool.devops.leaderassign.service.IAssignService;
|
import com.chinaweal.youfool.devops.leaderassign.service.IAssignService;
|
||||||
|
import com.chinaweal.youfool.framework.springboot.common.util.AssertUtils;
|
||||||
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
|
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
|
||||||
import com.chinaweal.youfool.framework.springboot.util.AssertUtils;
|
|
||||||
import com.github.xiaoymin.knife4j.annotations.ApiSort;
|
import com.github.xiaoymin.knife4j.annotations.ApiSort;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
|
|
@ -20,7 +20,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -43,7 +43,7 @@ public class AssignController {
|
||||||
@Operation(summary = "1.新增领导交办详情")
|
@Operation(summary = "1.新增领导交办详情")
|
||||||
@PostMapping("/save")
|
@PostMapping("/save")
|
||||||
public RestResult<Assign> saveAssign(@RequestBody @Valid Assign assign, BindingResult bindingResult) {
|
public RestResult<Assign> saveAssign(@RequestBody @Valid Assign assign, BindingResult bindingResult) {
|
||||||
AssertUtils.isBndingValidit(bindingResult);
|
AssertUtils.isBindingValid(bindingResult);
|
||||||
assign = iAssignService.saveAssign(assign);
|
assign = iAssignService.saveAssign(assign);
|
||||||
return RestResult.ok(assign);
|
return RestResult.ok(assign);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
package com.chinaweal.youfool.devops.leaderassign.controller.dto;
|
package com.chinaweal.youfool.devops.leaderassign.controller.dto;
|
||||||
|
|
||||||
import com.chinaweal.youfool.devops.base.entity.TaskHandle;
|
import com.chinaweal.youfool.devops.base.entity.TaskHandle;
|
||||||
import com.chinaweal.youfool.framework.springboot.json.LocalDateTimeStringSerializer;
|
import com.chinaweal.youfool.framework.springboot.common.util.DateUtil;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
@ -34,14 +34,14 @@ public class AssignHandleQuery extends TaskHandle {
|
||||||
* 计划完成时间
|
* 计划完成时间
|
||||||
*/
|
*/
|
||||||
@Schema(description = "计划完成时间")
|
@Schema(description = "计划完成时间")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime plannedTime;
|
private LocalDateTime plannedTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 实际完成时间
|
* 实际完成时间
|
||||||
*/
|
*/
|
||||||
@Schema(description = "实际完成时间")
|
@Schema(description = "实际完成时间")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime realityTime;
|
private LocalDateTime realityTime;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package com.chinaweal.youfool.devops.leaderassign.controller.dto;
|
package com.chinaweal.youfool.devops.leaderassign.controller.dto;
|
||||||
|
|
||||||
import com.chinaweal.youfool.framework.springboot.json.LocalDateTimeStringSerializer;
|
import com.chinaweal.youfool.framework.springboot.common.util.DateUtil;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
|
@ -127,21 +127,21 @@ public class TaskAssignVo implements Serializable {
|
||||||
* 报送时间
|
* 报送时间
|
||||||
*/
|
*/
|
||||||
@Schema(description = "报送时间")
|
@Schema(description = "报送时间")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime launchTime;
|
private LocalDateTime launchTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 到期时间
|
* 到期时间
|
||||||
*/
|
*/
|
||||||
@Schema(description = "到期时间")
|
@Schema(description = "到期时间")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime solveLimitTime;
|
private LocalDateTime solveLimitTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理更新时间
|
* 处理更新时间
|
||||||
*/
|
*/
|
||||||
@Schema(description = "处理更新时间")
|
@Schema(description = "处理更新时间")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime handleTime;
|
private LocalDateTime handleTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -160,13 +160,13 @@ public class TaskAssignVo implements Serializable {
|
||||||
* 交办时间
|
* 交办时间
|
||||||
*/
|
*/
|
||||||
@Schema(description = "交办时间")
|
@Schema(description = "交办时间")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime assignTime;
|
private LocalDateTime assignTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计划完成时间
|
* 计划完成时间
|
||||||
*/
|
*/
|
||||||
@Schema(description = "计划完成时间")
|
@Schema(description = "计划完成时间")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime plannedTime;
|
private LocalDateTime plannedTime;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,16 +7,16 @@ import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.chinaweal.youfool.devops.base.entity.TaskFile;
|
import com.chinaweal.youfool.devops.base.entity.TaskFile;
|
||||||
import com.chinaweal.youfool.devops.base.entity.TaskHandle;
|
import com.chinaweal.youfool.devops.base.entity.TaskHandle;
|
||||||
import com.chinaweal.youfool.devops.base.entity.TaskList;
|
import com.chinaweal.youfool.devops.base.entity.TaskList;
|
||||||
import com.chinaweal.youfool.framework.springboot.json.LocalDateTimeStringSerializer;
|
import com.chinaweal.youfool.devops.common.constants.CommonConstant;
|
||||||
|
import com.chinaweal.youfool.framework.springboot.common.util.DateUtil;
|
||||||
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
|
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
|
||||||
import com.chinaweal.youfool.framework.springboot.util.ConstantsUtil;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -181,7 +181,7 @@ public class Assign extends SuperEntity {
|
||||||
*/
|
*/
|
||||||
@Schema(description = "交办时间")
|
@Schema(description = "交办时间")
|
||||||
@TableField("ASSIGN_TIME")
|
@TableField("ASSIGN_TIME")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime assignTime;
|
private LocalDateTime assignTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -189,7 +189,7 @@ public class Assign extends SuperEntity {
|
||||||
*/
|
*/
|
||||||
@Schema(description = "报送时间")
|
@Schema(description = "报送时间")
|
||||||
@TableField("LAUNCH_TIME")
|
@TableField("LAUNCH_TIME")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime launchTime;
|
private LocalDateTime launchTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -197,7 +197,7 @@ public class Assign extends SuperEntity {
|
||||||
*/
|
*/
|
||||||
@Schema(description = "解决期限时间")
|
@Schema(description = "解决期限时间")
|
||||||
@TableField("SOLVE_LIMIT_TIME")
|
@TableField("SOLVE_LIMIT_TIME")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime solveLimitTime;
|
private LocalDateTime solveLimitTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -205,7 +205,7 @@ public class Assign extends SuperEntity {
|
||||||
*/
|
*/
|
||||||
@Schema(description = "计划完成时间")
|
@Schema(description = "计划完成时间")
|
||||||
@TableField("PLANNED_TIME")
|
@TableField("PLANNED_TIME")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime plannedTime;
|
private LocalDateTime plannedTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -213,7 +213,7 @@ public class Assign extends SuperEntity {
|
||||||
*/
|
*/
|
||||||
@Schema(description = "实际完成时间")
|
@Schema(description = "实际完成时间")
|
||||||
@TableField("REALITY_TIME")
|
@TableField("REALITY_TIME")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime realityTime;
|
private LocalDateTime realityTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -221,7 +221,7 @@ public class Assign extends SuperEntity {
|
||||||
*/
|
*/
|
||||||
@Schema(description = "是否删除;0:有效;1:删除")
|
@Schema(description = "是否删除;0:有效;1:删除")
|
||||||
@TableField("DELETED")
|
@TableField("DELETED")
|
||||||
@TableLogic(value = ConstantsUtil.NOT_DELETED, delval = ConstantsUtil.DELETED)
|
@TableLogic(value = CommonConstant.FALSE_0_STR, delval = CommonConstant.TRUE_1_STR)
|
||||||
private String deleted;
|
private String deleted;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ import com.chinaweal.youfool.devops.base.service.IDictService;
|
||||||
import com.chinaweal.youfool.devops.base.service.ITaskFileService;
|
import com.chinaweal.youfool.devops.base.service.ITaskFileService;
|
||||||
import com.chinaweal.youfool.devops.base.service.ITaskHandleService;
|
import com.chinaweal.youfool.devops.base.service.ITaskHandleService;
|
||||||
import com.chinaweal.youfool.devops.base.service.ITaskListService;
|
import com.chinaweal.youfool.devops.base.service.ITaskListService;
|
||||||
|
import com.chinaweal.youfool.devops.common.constants.CommonConstant;
|
||||||
import com.chinaweal.youfool.devops.leaderassign.controller.dto.AssignHandleQuery;
|
import com.chinaweal.youfool.devops.leaderassign.controller.dto.AssignHandleQuery;
|
||||||
import com.chinaweal.youfool.devops.leaderassign.controller.dto.TaskAssignVo;
|
import com.chinaweal.youfool.devops.leaderassign.controller.dto.TaskAssignVo;
|
||||||
import com.chinaweal.youfool.devops.leaderassign.controller.dto.TaskListQuery;
|
import com.chinaweal.youfool.devops.leaderassign.controller.dto.TaskListQuery;
|
||||||
|
|
@ -25,13 +26,12 @@ import com.chinaweal.youfool.devops.org.entity.Engineer;
|
||||||
import com.chinaweal.youfool.devops.org.service.IEngineerService;
|
import com.chinaweal.youfool.devops.org.service.IEngineerService;
|
||||||
import com.chinaweal.youfool.framework.springboot.exception.custom.BusinessException;
|
import com.chinaweal.youfool.framework.springboot.exception.custom.BusinessException;
|
||||||
import com.chinaweal.youfool.framework.springboot.rest.ResultCode;
|
import com.chinaweal.youfool.framework.springboot.rest.ResultCode;
|
||||||
import com.chinaweal.youfool.framework.springboot.util.ConstantsUtil;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
|
|
@ -91,7 +91,7 @@ public class AssignServiceImpl extends ServiceImpl<AssignMapper, Assign> impleme
|
||||||
assign.setTaskId(taskId); //设置单号
|
assign.setTaskId(taskId); //设置单号
|
||||||
assign.setBizId(generateAssignId()); //设置单号
|
assign.setBizId(generateAssignId()); //设置单号
|
||||||
assign.setLaunchTime(LocalDateTime.now());
|
assign.setLaunchTime(LocalDateTime.now());
|
||||||
assign.setDeleted(ConstantsUtil.NOT_DELETED);
|
assign.setDeleted(CommonConstant.FALSE_0_STR);
|
||||||
save(assign);
|
save(assign);
|
||||||
|
|
||||||
//生成待办
|
//生成待办
|
||||||
|
|
@ -272,7 +272,7 @@ public class AssignServiceImpl extends ServiceImpl<AssignMapper, Assign> impleme
|
||||||
LambdaQueryWrapper<Assign> qw = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Assign> qw = new LambdaQueryWrapper<>();
|
||||||
qw.ge(Assign::getLaunchTime, LocalDate.now().atStartOfDay())
|
qw.ge(Assign::getLaunchTime, LocalDate.now().atStartOfDay())
|
||||||
.lt(Assign::getLaunchTime, LocalDate.now().atStartOfDay().plusDays(1));
|
.lt(Assign::getLaunchTime, LocalDate.now().atStartOfDay().plusDays(1));
|
||||||
int count = count(qw) + 1;
|
long count = count(qw) + 1;
|
||||||
//补齐零
|
//补齐零
|
||||||
String no = String.format("%04d", count);
|
String no = String.format("%04d", count);
|
||||||
String bizId = prefix + no;
|
String bizId = prefix + no;
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,23 @@
|
||||||
package com.chinaweal.youfool.devops.org.business.service.impl;
|
package com.chinaweal.youfool.devops.org.business.service.impl;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.session.SaSession;
|
||||||
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
|
import com.chinaweal.youfool.devops.common.utils.StringUtils;
|
||||||
import com.chinaweal.youfool.devops.org.business.entity.BusinessUser;
|
import com.chinaweal.youfool.devops.org.business.entity.BusinessUser;
|
||||||
import com.chinaweal.youfool.devops.org.business.service.BusinessUserService;
|
import com.chinaweal.youfool.devops.org.business.service.BusinessUserService;
|
||||||
|
import com.chinaweal.youfool.devops.org.entity.UserBaseExtend;
|
||||||
|
import com.chinaweal.youfool.framework.springboot.common.util.ExpiryMap;
|
||||||
import com.chinaweal.youfool.framework.springboot.exception.custom.BusinessException;
|
import com.chinaweal.youfool.framework.springboot.exception.custom.BusinessException;
|
||||||
import com.chinaweal.youfool.framework.springboot.rest.ResultCode;
|
import com.chinaweal.youfool.framework.springboot.rest.ResultCode;
|
||||||
import com.chinaweal.youfool.framework.springboot.user.shiro.JWTToken;
|
|
||||||
import com.chinaweal.youfool.framework.springboot.util.ExpiryMap;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.http.*;
|
import org.springframework.http.*;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
||||||
import java.util.*;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
|
|
@ -25,8 +29,6 @@ import java.util.*;
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class BusinessUserServiceImpl implements BusinessUserService {
|
public class BusinessUserServiceImpl implements BusinessUserService {
|
||||||
@Resource
|
|
||||||
private JWTToken jwtToken;
|
|
||||||
@Value("${business.fsLoginUrl}")
|
@Value("${business.fsLoginUrl}")
|
||||||
private String fsLoginUrl;
|
private String fsLoginUrl;
|
||||||
@Value("${business.sdLoginUrl}")
|
@Value("${business.sdLoginUrl}")
|
||||||
|
|
@ -75,13 +77,18 @@ public class BusinessUserServiceImpl implements BusinessUserService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Map data = (Map) body.get("data");
|
Map data = (Map) body.get("data");
|
||||||
Map<String, Object> claims = new LinkedHashMap<>();
|
userId = StringUtils.trimObj(data.get("primaryKey"));
|
||||||
claims.put("regionId", data.get("regionID"));
|
StpUtil.login(userId);
|
||||||
claims.put("orgId", data.get("orgID"));
|
SaSession session = StpUtil.getSession();
|
||||||
claims.put("userId", data.get("primaryKey"));
|
UserBaseExtend user = new UserBaseExtend();
|
||||||
claims.put("unitId", data.get("unitID"));
|
user.setUserId(userId);
|
||||||
claims.put("roleType", "business");
|
user.setUsername(StringUtils.trimObj(data.get("ename")));
|
||||||
return jwtToken.createJWT(String.valueOf(data.get("ename")), claims);
|
user.setOrgId(StringUtils.trimObj(data.get("orgID")));
|
||||||
|
user.setUnitId(StringUtils.trimObj(data.get("unitID")));
|
||||||
|
user.setRegionId(StringUtils.trimObj(data.get("regionID")));
|
||||||
|
user.setRoleType("business");
|
||||||
|
session.set(SaSession.USER, user);
|
||||||
|
return StpUtil.getTokenValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,15 @@
|
||||||
package com.chinaweal.youfool.devops.org.controller;
|
package com.chinaweal.youfool.devops.org.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.chinaweal.youfool.devops.org.entity.Engineer;
|
import com.chinaweal.youfool.devops.org.entity.Engineer;
|
||||||
import com.chinaweal.youfool.devops.org.service.IEngineerService;
|
import com.chinaweal.youfool.devops.org.service.IEngineerService;
|
||||||
import com.chinaweal.youfool.framework.springboot.base.query.BaseQuery;
|
import com.chinaweal.youfool.framework.springboot.common.util.AssertUtils;
|
||||||
|
import com.chinaweal.youfool.framework.springboot.common.util.RSAUtil;
|
||||||
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
|
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
|
||||||
|
import com.chinaweal.youfool.framework.springboot.rest.query.BaseQuery;
|
||||||
import com.chinaweal.youfool.framework.springboot.user.entity.UserBase;
|
import com.chinaweal.youfool.framework.springboot.user.entity.UserBase;
|
||||||
import com.chinaweal.youfool.framework.springboot.util.AssertUtils;
|
|
||||||
import com.chinaweal.youfool.framework.springboot.util.RSAUtil;
|
|
||||||
import com.github.xiaoymin.knife4j.annotations.ApiSort;
|
import com.github.xiaoymin.knife4j.annotations.ApiSort;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
@ -22,7 +23,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
@ -48,7 +49,7 @@ public class EngineerController {
|
||||||
@Operation(summary = "1.新增工程师")
|
@Operation(summary = "1.新增工程师")
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public RestResult<Object> saveEngineer(@RequestBody @Valid Engineer engineer, BindingResult bindingResult) {
|
public RestResult<Object> saveEngineer(@RequestBody @Valid Engineer engineer, BindingResult bindingResult) {
|
||||||
AssertUtils.isBndingValidit(bindingResult);
|
AssertUtils.isBindingValid(bindingResult);
|
||||||
|
|
||||||
RestResult<Object> result = iEngineerService.saveEngineer(engineer);
|
RestResult<Object> result = iEngineerService.saveEngineer(engineer);
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -64,7 +65,7 @@ public class EngineerController {
|
||||||
@Operation(summary = "3.修改工程师")
|
@Operation(summary = "3.修改工程师")
|
||||||
@PostMapping("/update")
|
@PostMapping("/update")
|
||||||
public RestResult<Object> updateEngineer(@RequestBody @Valid Engineer engineer, BindingResult bindingResult) {
|
public RestResult<Object> updateEngineer(@RequestBody @Valid Engineer engineer, BindingResult bindingResult) {
|
||||||
AssertUtils.isBndingValidit(bindingResult);
|
AssertUtils.isBindingValid(bindingResult);
|
||||||
RestResult<Object> result = iEngineerService.updateEngineer(engineer);
|
RestResult<Object> result = iEngineerService.updateEngineer(engineer);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
@ -88,7 +89,7 @@ public class EngineerController {
|
||||||
public RestResult<String> updatePassword(@RequestParam String oldPassword, @RequestParam String newPassword) throws Exception {
|
public RestResult<String> updatePassword(@RequestParam String oldPassword, @RequestParam String newPassword) throws Exception {
|
||||||
oldPassword = RSAUtil.decrypt(oldPassword, privateKey);
|
oldPassword = RSAUtil.decrypt(oldPassword, privateKey);
|
||||||
newPassword = RSAUtil.decrypt(newPassword, privateKey);
|
newPassword = RSAUtil.decrypt(newPassword, privateKey);
|
||||||
return iEngineerService.updatePassword(UserBase.currentUserId(), oldPassword, newPassword);
|
return iEngineerService.updatePassword(StpUtil.getLoginIdAsString(), oldPassword, newPassword);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "7.查询工程师列表")
|
@Operation(summary = "7.查询工程师列表")
|
||||||
|
|
|
||||||
|
|
@ -1,38 +1,30 @@
|
||||||
package com.chinaweal.youfool.devops.org.controller;
|
package com.chinaweal.youfool.devops.org.controller;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.session.SaSession;
|
||||||
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
|
import com.chinaweal.youfool.devops.common.utils.VerifyCode;
|
||||||
import com.chinaweal.youfool.devops.org.business.entity.BusinessUser;
|
import com.chinaweal.youfool.devops.org.business.entity.BusinessUser;
|
||||||
import com.chinaweal.youfool.devops.org.business.service.BusinessUserService;
|
import com.chinaweal.youfool.devops.org.business.service.BusinessUserService;
|
||||||
import com.chinaweal.youfool.devops.org.entity.Engineer;
|
import com.chinaweal.youfool.devops.org.entity.Engineer;
|
||||||
|
import com.chinaweal.youfool.devops.org.entity.UserBaseExtend;
|
||||||
import com.chinaweal.youfool.devops.org.service.IEngineerService;
|
import com.chinaweal.youfool.devops.org.service.IEngineerService;
|
||||||
import com.chinaweal.youfool.devops.util.VerifyCode;
|
import com.chinaweal.youfool.framework.springboot.common.util.RSAUtil;
|
||||||
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
|
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
|
||||||
import com.chinaweal.youfool.framework.springboot.rest.ResultCode;
|
import com.chinaweal.youfool.framework.springboot.rest.ResultCode;
|
||||||
import com.chinaweal.youfool.framework.springboot.user.entity.UserBase;
|
|
||||||
import com.chinaweal.youfool.framework.springboot.user.shiro.JWTToken;
|
|
||||||
import com.chinaweal.youfool.framework.springboot.util.RSAUtil;
|
|
||||||
import com.chinaweal.youfool.framework.springboot.util.WebUtil;
|
|
||||||
import com.github.xiaoymin.knife4j.annotations.ApiSort;
|
import com.github.xiaoymin.knife4j.annotations.ApiSort;
|
||||||
import io.jsonwebtoken.Claims;
|
|
||||||
import io.jsonwebtoken.Jws;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.media.Content;
|
import io.swagger.v3.oas.annotations.media.Content;
|
||||||
import io.swagger.v3.oas.annotations.media.ExampleObject;
|
import io.swagger.v3.oas.annotations.media.ExampleObject;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@Tag(name = "1.用户操作")
|
@Tag(name = "1.用户操作")
|
||||||
|
|
@ -44,8 +36,6 @@ public class UserController {
|
||||||
@Resource
|
@Resource
|
||||||
private IEngineerService iEngineerService;
|
private IEngineerService iEngineerService;
|
||||||
@Resource
|
@Resource
|
||||||
private JWTToken jwtToken;
|
|
||||||
@Resource
|
|
||||||
private BusinessUserService businessUserService;
|
private BusinessUserService businessUserService;
|
||||||
@Value("${rsa.privateKey}")
|
@Value("${rsa.privateKey}")
|
||||||
private String privateKey;
|
private String privateKey;
|
||||||
|
|
@ -106,7 +96,7 @@ public class UserController {
|
||||||
@GetMapping("/info")
|
@GetMapping("/info")
|
||||||
@Operation(summary = "3.查询用户信息")
|
@Operation(summary = "3.查询用户信息")
|
||||||
public RestResult<Object> getInfo(@Parameter(description = "系统角色标识 business:业务人员;engineer:运维工程师", required = true) @RequestParam String roleType) {
|
public RestResult<Object> getInfo(@Parameter(description = "系统角色标识 business:业务人员;engineer:运维工程师", required = true) @RequestParam String roleType) {
|
||||||
String userId = UserBase.currentUserId();
|
String userId = StpUtil.getLoginIdAsString();
|
||||||
if (StringUtils.isBlank(userId)) {
|
if (StringUtils.isBlank(userId)) {
|
||||||
return RestResult.error(ResultCode.PARAM_IS_BLANK);
|
return RestResult.error(ResultCode.PARAM_IS_BLANK);
|
||||||
}
|
}
|
||||||
|
|
@ -119,9 +109,8 @@ public class UserController {
|
||||||
return RestResult.ok(businessUser);
|
return RestResult.ok(businessUser);
|
||||||
} else if ("outer".equals(roleType)) {
|
} else if ("outer".equals(roleType)) {
|
||||||
//网办直接解析权限jwt参数
|
//网办直接解析权限jwt参数
|
||||||
String token = WebUtil.getToken();
|
SaSession session = StpUtil.getSession();
|
||||||
Jws<Claims> claimsJws = jwtToken.parseJWT(token);
|
return RestResult.ok(session.get(SaSession.USER, new UserBaseExtend()));
|
||||||
return RestResult.ok(claimsJws.getBody());
|
|
||||||
} else {
|
} else {
|
||||||
return RestResult.error(ResultCode.PARAM_TYPE_BIND_ERROR);
|
return RestResult.error(ResultCode.PARAM_TYPE_BIND_ERROR);
|
||||||
}
|
}
|
||||||
|
|
@ -143,7 +132,7 @@ public class UserController {
|
||||||
|
|
||||||
@Operation(summary = "6.网办外部登录接口")
|
@Operation(summary = "6.网办外部登录接口")
|
||||||
@PostMapping("/loginOuter")
|
@PostMapping("/loginOuter")
|
||||||
public RestResult<String> loginOuter(@RequestBody Map<String, String> data, HttpServletRequest request) throws Exception {
|
public RestResult<?> loginOuter(@RequestBody Map<String, String> data, HttpServletRequest request) throws Exception {
|
||||||
String userId = data.get("userId");
|
String userId = data.get("userId");
|
||||||
String name = data.get("name");
|
String name = data.get("name");
|
||||||
String username = data.get("username");
|
String username = data.get("username");
|
||||||
|
|
@ -154,14 +143,14 @@ public class UserController {
|
||||||
return RestResult.error(ResultCode.PARAM_IS_BLANK);
|
return RestResult.error(ResultCode.PARAM_IS_BLANK);
|
||||||
}
|
}
|
||||||
//只要不为空,就默认登陆通过
|
//只要不为空,就默认登陆通过
|
||||||
Map<String, Object> claims = new LinkedHashMap<>();
|
StpUtil.login(userId);
|
||||||
claims.put("nickname", name);
|
UserBaseExtend userBase = new UserBaseExtend();
|
||||||
claims.put("phone", phone);
|
userBase.setNickname(name);
|
||||||
claims.put("source", source);
|
userBase.setUsername(phone);
|
||||||
claims.put("roleType", "outer");
|
userBase.setSource(source);
|
||||||
claims.put("roles", "commonOuter");
|
userBase.setRoleType("outer");
|
||||||
String token = jwtToken.createJWT(userId, username, claims);
|
userBase.setRoles("commonOuter");
|
||||||
return RestResult.ok(token);
|
return RestResult.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,16 +3,15 @@ package com.chinaweal.youfool.devops.org.entity;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import com.chinaweal.youfool.devops.common.constants.CommonConstant;
|
||||||
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
|
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
|
||||||
import com.chinaweal.youfool.framework.springboot.json.LocalDateTimeStringSerializer;
|
|
||||||
import com.chinaweal.youfool.framework.springboot.util.ConstantsUtil;
|
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
|
|
@ -124,7 +123,7 @@ public class Engineer extends SuperEntity {
|
||||||
* 是否删除 0:未删除、1:已删除
|
* 是否删除 0:未删除、1:已删除
|
||||||
*/
|
*/
|
||||||
@Schema(description = "是否删除 0:未删除、1:已删除")
|
@Schema(description = "是否删除 0:未删除、1:已删除")
|
||||||
@TableLogic(value = ConstantsUtil.NOT_DELETED, delval = ConstantsUtil.DELETED)
|
@TableLogic(value = CommonConstant.FALSE_0_STR, delval = CommonConstant.TRUE_1_STR)
|
||||||
@TableField("is_deleted")
|
@TableField("is_deleted")
|
||||||
private String isDeleted;
|
private String isDeleted;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
package com.chinaweal.youfool.devops.org.entity;
|
||||||
|
|
||||||
|
import com.chinaweal.youfool.framework.springboot.user.entity.UserBase;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* 用户扩展信息
|
||||||
|
*
|
||||||
|
* @author lroyia
|
||||||
|
* @since 2025/8/18 17:15
|
||||||
|
**/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
public class UserBaseExtend extends UserBase {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 系统来源
|
||||||
|
*/
|
||||||
|
private String source;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 角色类型
|
||||||
|
*/
|
||||||
|
private String roleType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 角色
|
||||||
|
*/
|
||||||
|
private String roles;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 地区id
|
||||||
|
*/
|
||||||
|
private String regionId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单位 id
|
||||||
|
*/
|
||||||
|
private String orgId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 部门id
|
||||||
|
*/
|
||||||
|
private String unitId;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,16 +1,17 @@
|
||||||
package com.chinaweal.youfool.devops.org.interceptor;
|
package com.chinaweal.youfool.devops.org.interceptor;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
|
import com.chinaweal.youfool.framework.springboot.common.util.WebUtil;
|
||||||
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
|
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
|
||||||
import com.chinaweal.youfool.framework.springboot.rest.ResultCode;
|
import com.chinaweal.youfool.framework.springboot.rest.ResultCode;
|
||||||
import com.chinaweal.youfool.framework.springboot.user.entity.UserBase;
|
import com.chinaweal.youfool.framework.springboot.user.entity.UserBase;
|
||||||
import com.chinaweal.youfool.framework.springboot.util.WebUtil;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.web.servlet.HandlerInterceptor;
|
import org.springframework.web.servlet.HandlerInterceptor;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 登陆拦截
|
* 登陆拦截
|
||||||
|
|
@ -24,7 +25,7 @@ public class LoginInterceptor implements HandlerInterceptor {
|
||||||
@Override
|
@Override
|
||||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
|
||||||
//判断token是否有效
|
//判断token是否有效
|
||||||
String userId = UserBase.currentUserId();
|
String userId = StpUtil.getLoginIdAsString();
|
||||||
if (StringUtils.isNotBlank((userId))) {
|
if (StringUtils.isNotBlank((userId))) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
package com.chinaweal.youfool.devops.org.service;
|
package com.chinaweal.youfool.devops.org.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.chinaweal.youfool.devops.org.entity.Engineer;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.chinaweal.youfool.framework.springboot.base.query.BaseQuery;
|
import com.chinaweal.youfool.devops.org.entity.Engineer;
|
||||||
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
|
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
|
||||||
|
import com.chinaweal.youfool.framework.springboot.rest.query.BaseQuery;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,32 +1,31 @@
|
||||||
package com.chinaweal.youfool.devops.org.service.impl;
|
package com.chinaweal.youfool.devops.org.service.impl;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.session.SaSession;
|
||||||
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.chinaweal.youfool.devops.common.constants.CommonConstant;
|
||||||
import com.chinaweal.youfool.devops.org.entity.Engineer;
|
import com.chinaweal.youfool.devops.org.entity.Engineer;
|
||||||
|
import com.chinaweal.youfool.devops.org.entity.UserBaseExtend;
|
||||||
import com.chinaweal.youfool.devops.org.mapper.EngineerMapper;
|
import com.chinaweal.youfool.devops.org.mapper.EngineerMapper;
|
||||||
import com.chinaweal.youfool.devops.org.service.IEngineerService;
|
import com.chinaweal.youfool.devops.org.service.IEngineerService;
|
||||||
import com.chinaweal.youfool.framework.springboot.base.query.BaseQuery;
|
import com.chinaweal.youfool.framework.springboot.common.util.ExpiryMap;
|
||||||
|
import com.chinaweal.youfool.framework.springboot.common.util.SM3Util;
|
||||||
import com.chinaweal.youfool.framework.springboot.exception.custom.BusinessException;
|
import com.chinaweal.youfool.framework.springboot.exception.custom.BusinessException;
|
||||||
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
|
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
|
||||||
import com.chinaweal.youfool.framework.springboot.rest.ResultCode;
|
import com.chinaweal.youfool.framework.springboot.rest.ResultCode;
|
||||||
|
import com.chinaweal.youfool.framework.springboot.rest.query.BaseQuery;
|
||||||
import com.chinaweal.youfool.framework.springboot.user.entity.UserBase;
|
import com.chinaweal.youfool.framework.springboot.user.entity.UserBase;
|
||||||
import com.chinaweal.youfool.framework.springboot.user.service.UserBaseService;
|
import com.chinaweal.youfool.framework.springboot.user.service.UserBaseService;
|
||||||
import com.chinaweal.youfool.framework.springboot.user.shiro.JWTToken;
|
|
||||||
import com.chinaweal.youfool.framework.springboot.util.ConstantsUtil;
|
|
||||||
import com.chinaweal.youfool.framework.springboot.util.ExpiryMap;
|
|
||||||
import com.chinaweal.youfool.framework.springboot.util.SM3Util;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
|
|
@ -41,8 +40,6 @@ public class EngineerServiceImpl extends ServiceImpl<EngineerMapper, Engineer> i
|
||||||
|
|
||||||
@Value("${sm3.secret}")
|
@Value("${sm3.secret}")
|
||||||
private String sm3Secret;
|
private String sm3Secret;
|
||||||
@Resource
|
|
||||||
private JWTToken jwtToken;
|
|
||||||
|
|
||||||
private static final ExpiryMap<String, Integer> LOGIN_FREQ_NUM = new ExpiryMap<>(1800);
|
private static final ExpiryMap<String, Integer> LOGIN_FREQ_NUM = new ExpiryMap<>(1800);
|
||||||
|
|
||||||
|
|
@ -74,13 +71,16 @@ public class EngineerServiceImpl extends ServiceImpl<EngineerMapper, Engineer> i
|
||||||
return RestResult.error(ResultCode.USER_ACCOUNT_FORBIDDEN);
|
return RestResult.error(ResultCode.USER_ACCOUNT_FORBIDDEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<String, Object> claims = new LinkedHashMap<>();
|
UserBaseExtend user = new UserBaseExtend();
|
||||||
claims.put("userId", engineer.getUserId());
|
user.setUserId(engineer.getUserId());
|
||||||
claims.put("roleType", "engineer");
|
user.setSource(engineer.getSource());
|
||||||
claims.put("source", engineer.getSource());
|
user.setUsername(engineer.getUsername());
|
||||||
String token = jwtToken.createJWT(username, claims);
|
user.setNickname(engineer.getNickname());
|
||||||
|
user.setRoleType("engineer");
|
||||||
|
StpUtil.login(engineer.getUserId());
|
||||||
|
StpUtil.getSession().set(SaSession.USER, user);
|
||||||
|
|
||||||
return RestResult.ok(token);
|
return RestResult.ok(StpUtil.getTokenValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -116,7 +116,7 @@ public class EngineerServiceImpl extends ServiceImpl<EngineerMapper, Engineer> i
|
||||||
if (dbEngineer != null) {
|
if (dbEngineer != null) {
|
||||||
return RestResult.error(ResultCode.USER_HAS_EXISTED);
|
return RestResult.error(ResultCode.USER_HAS_EXISTED);
|
||||||
}
|
}
|
||||||
engineer.setIsDeleted(ConstantsUtil.NOT_DELETED);
|
engineer.setIsDeleted(CommonConstant.FALSE_0_STR);
|
||||||
//加密密码
|
//加密密码
|
||||||
engineer.setPassword(SM3Util.encrypt(sm3Secret, engineer.getPassword()));
|
engineer.setPassword(SM3Util.encrypt(sm3Secret, engineer.getPassword()));
|
||||||
|
|
||||||
|
|
@ -191,14 +191,17 @@ public class EngineerServiceImpl extends ServiceImpl<EngineerMapper, Engineer> i
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UserBase getUserBaseByUsername(String username) {
|
public RestResult<UserBase> login(String userName, String password, boolean frameworkLogin) {
|
||||||
UserBase userBase = new UserBase();
|
return null;
|
||||||
userBase.setUsername(username);
|
|
||||||
return userBase;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isValidToken(String token) {
|
public UserBase getCurrentUser() {
|
||||||
return false;
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<UserBase> getUserInfoByLoginId(List<String> loginIdList) {
|
||||||
|
return List.of();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
|
||||||
|
|
@ -32,8 +32,8 @@ import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Tag(name = "4.运维单待办")
|
@Tag(name = "4.运维单待办")
|
||||||
|
|
|
||||||
|
|
@ -20,8 +20,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,9 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.chinaweal.youfool.framework.springboot.json.LocalDateTimeStringSerializer;
|
import com.chinaweal.youfool.framework.springboot.common.util.DateUtil;
|
||||||
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
|
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
@ -44,7 +44,7 @@ public class Notification extends SuperEntity {
|
||||||
*/
|
*/
|
||||||
@Schema(description = "统计月份")
|
@Schema(description = "统计月份")
|
||||||
@TableField("MONTH_DATE")
|
@TableField("MONTH_DATE")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDate monthDate;
|
private LocalDate monthDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,9 @@ package com.chinaweal.youfool.devops.repair.entity;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.chinaweal.youfool.framework.springboot.json.LocalDateTimeStringSerializer;
|
import com.chinaweal.youfool.framework.springboot.common.util.DateUtil;
|
||||||
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
|
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
@ -141,7 +141,7 @@ public class Repair extends SuperEntity {
|
||||||
*/
|
*/
|
||||||
@Schema(description = "报送时间")
|
@Schema(description = "报送时间")
|
||||||
@TableField("LAUNCH_TIME")
|
@TableField("LAUNCH_TIME")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime launchTime;
|
private LocalDateTime launchTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -149,7 +149,7 @@ public class Repair extends SuperEntity {
|
||||||
*/
|
*/
|
||||||
@Schema(description = "解决期限时间")
|
@Schema(description = "解决期限时间")
|
||||||
@TableField("SOLVE_LIMIT_TIME")
|
@TableField("SOLVE_LIMIT_TIME")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime solveLimitTime;
|
private LocalDateTime solveLimitTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -206,7 +206,7 @@ public class Repair extends SuperEntity {
|
||||||
*/
|
*/
|
||||||
@Schema(description = "业务要求办理时效")
|
@Schema(description = "业务要求办理时效")
|
||||||
@TableField("BUS_HANDLE_TIME")
|
@TableField("BUS_HANDLE_TIME")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime busHandleTime;
|
private LocalDateTime busHandleTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -214,7 +214,7 @@ public class Repair extends SuperEntity {
|
||||||
*/
|
*/
|
||||||
@Schema(description = "计划完成时间")
|
@Schema(description = "计划完成时间")
|
||||||
@TableField("PLANNED_TIME")
|
@TableField("PLANNED_TIME")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime plannedTime;
|
private LocalDateTime plannedTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -222,7 +222,7 @@ public class Repair extends SuperEntity {
|
||||||
*/
|
*/
|
||||||
@Schema(description = "实际完成时间")
|
@Schema(description = "实际完成时间")
|
||||||
@TableField("REALITY_TIME")
|
@TableField("REALITY_TIME")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime realityTime;
|
private LocalDateTime realityTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
package com.chinaweal.youfool.devops.repair.entity;
|
package com.chinaweal.youfool.devops.repair.entity;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
import com.chinaweal.youfool.framework.springboot.json.LocalDateTimeStringSerializer;
|
import com.chinaweal.youfool.framework.springboot.common.util.DateUtil;
|
||||||
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
|
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
@ -90,7 +91,7 @@ public class RepairFile extends SuperEntity {
|
||||||
*/
|
*/
|
||||||
@Schema(description = "上传时间")
|
@Schema(description = "上传时间")
|
||||||
@TableField(value = "UPLOAD_TIME")
|
@TableField(value = "UPLOAD_TIME")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime uploadTime;
|
private LocalDateTime uploadTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,9 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.chinaweal.youfool.framework.springboot.json.LocalDateTimeStringSerializer;
|
import com.chinaweal.youfool.framework.springboot.common.util.DateUtil;
|
||||||
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
|
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
@ -81,7 +82,7 @@ public class RepairHandle extends SuperEntity {
|
||||||
*/
|
*/
|
||||||
@Schema(description = "生成时间")
|
@Schema(description = "生成时间")
|
||||||
@TableField("HAPPEN_TIME")
|
@TableField("HAPPEN_TIME")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime happenTime;
|
private LocalDateTime happenTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -139,7 +140,7 @@ public class RepairHandle extends SuperEntity {
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
@Schema(description = "计划完成时间")
|
@Schema(description = "计划完成时间")
|
||||||
@JsonSerialize(using = LocalDateTimeStringSerializer.class)
|
@JsonFormat(pattern = DateUtil.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
|
||||||
private LocalDateTime plannedTime;
|
private LocalDateTime plannedTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,10 @@
|
||||||
package com.chinaweal.youfool.devops.repair.entity;
|
package com.chinaweal.youfool.devops.repair.entity;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
|
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
|
||||||
import com.chinaweal.youfool.framework.springboot.json.LocalDateTimeStringSerializer;
|
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue