zhangherong
5 天以前 426b962ef0c40ae856e06360a26c3fb121d0ff60
art: 集成Swagger2
已添加14个文件
已修改4个文件
649 ■■■■■ 文件已修改
pom.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/CodeGenerate.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/LxznSystemCollectApplication.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/common/CommonConstant.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/common/Result.java 176 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/config/Swagger2Config.java 183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/assembly2/controller/AssemblyCollectionJobController.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/assembly2/entity/T020Boltcheck.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/assembly2/entity/TcOpstate.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/assembly2/mapper/T020BoltcheckMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/assembly2/mapper/TcOpstateMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/assembly2/mapper/xml/T020BoltcheckMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/assembly2/mapper/xml/TcOpstateMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/assembly2/service/IT020BoltcheckService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/assembly2/service/ITcOpstateService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/assembly2/service/impl/T020BoltcheckServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/assembly2/service/impl/TcOpstateServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-dev.yml 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml
@@ -23,6 +23,9 @@
        <mybatis-plus.version>3.5.6</mybatis-plus.version>
        <dynamic-datasource-spring-boot-starter.version>3.2.0</dynamic-datasource-spring-boot-starter.version>
        <druid.version>1.1.22</druid.version>
        <knife4j-spring-boot-starter.version>3.0.3</knife4j-spring-boot-starter.version>
        <knife4j-spring-ui.version>2.0.9</knife4j-spring-ui.version>
    </properties>
    <dependencies>
@@ -73,6 +76,13 @@
            <scope>runtime</scope>
        </dependency>
        <!-- knife4j -->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
            <version>${knife4j-spring-boot-starter.version}</version>
        </dependency>
        <!-- Lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
src/main/java/com/lxzn/CodeGenerate.java
@@ -3,8 +3,6 @@
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.nio.file.Paths;
public class CodeGenerate {
    public static void main(String[] args) {
        FastAutoGenerator.create("jdbc:sqlserver://127.0.0.1:1433;databaseName=XHJ-HUB3Line", "sa", "sa123")
@@ -22,7 +20,7 @@
                        .xml("mapper.xml")
                )
                .strategyConfig(builder -> builder
                        .addInclude("T020_BoltCheck")
                        .addInclude("TC_OPState")
                        .entityBuilder()
                        .enableLombok()
                )
src/main/java/com/lxzn/LxznSystemCollectApplication.java
@@ -1,8 +1,10 @@
package com.lxzn;
import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.ConfigurableApplicationContext;
@@ -16,7 +18,8 @@
* æŠ¥é”™æé†’: æœªé›†æˆmongo报错,可以打开启动类上面的注释 exclude={MongoAutoConfiguration.class}
*/
@Slf4j
@SpringBootApplication
@SpringBootApplication(scanBasePackages = "com.lxzn", exclude = { DataSourceAutoConfiguration.class })
@MapperScan(value={"com.lxzn.modules.**.mapper*"})
public class LxznSystemCollectApplication extends SpringBootServletInitializer {
    @Override
@@ -33,6 +36,7 @@
        log.info("\n----------------------------------------------------------\n\t" +
                "Application Lxzn System Collect Server is running! Access URLs:\n\t" +
                "Local: \t\thttp://localhost:" + port + path + "/\n\t" +
                "Swagger文档: \thttp://" + ip + ":" + port + path + "/doc.html\n" +
                "----------------------------------------------------------");
    }
src/main/java/com/lxzn/common/CommonConstant.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.lxzn.common;
/**
 * @Description: é€šç”¨å¸¸é‡
 * @author: jeecg-boot
 */
public interface CommonConstant {
    /**
     * {@code 500 Server Error} (HTTP/1.0 - RFC 1945)
     */
    Integer SC_INTERNAL_SERVER_ERROR_500 = 500;
    /**
     * {@code 200 OK} (HTTP/1.0 - RFC 1945)
     */
    Integer SC_OK_200 = 200;
    /**
     * è®¿é—®æƒé™è®¤è¯æœªé€šè¿‡ 510
     */
    Integer SC_JEECG_NO_AUTHZ = 510;
    /**===============================================================================================*/
    /**
     * ::非常重要::
     * æ³¨æ„ï¼šè¿™å››ä¸ªå¸¸é‡å€¼å¦‚果修改,需要与 jeecg-boot-starter/jeecg-boot-common/org.jeecg.config.FeignConfig ç±»ä¸­çš„值保持一致。
     */
    String X_ACCESS_TOKEN = "X-Access-Token";
}
src/main/java/com/lxzn/common/Result.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,176 @@
package com.lxzn.common;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
 *   æŽ¥å£è¿”回数据格式
 * @author scott
 * @email jeecgos@163.com
 * @date 2019å¹´1月19日
 */
@Data
@ApiModel(value = "接口返回对象", description = "接口返回对象")
public class Result<T> implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * æˆåŠŸæ ‡å¿—
     */
    @ApiModelProperty(value = "成功标志")
    private boolean success = true;
    /**
     * è¿”回处理消息
     */
    @ApiModelProperty(value = "返回处理消息")
    private String message = "";
    /**
     * è¿”回代码
     */
    @ApiModelProperty(value = "返回代码")
    private Integer code = 0;
    /**
     * è¿”回数据对象 data
     */
    @ApiModelProperty(value = "返回数据对象")
    private T result;
    /**
     * æ—¶é—´æˆ³
     */
    @ApiModelProperty(value = "时间戳")
    private long timestamp = System.currentTimeMillis();
    public Result() {
    }
    /**
     * å…¼å®¹VUE3版token失效不跳转登录页面
     * @param code
     * @param message
     */
    public Result(Integer code, String message) {
        this.code = code;
        this.message = message;
    }
    public Result<T> success(String message) {
        this.message = message;
        this.code = CommonConstant.SC_OK_200;
        this.success = true;
        return this;
    }
    public static <T> Result<T> ok() {
        Result<T> r = new Result<T>();
        r.setSuccess(true);
        r.setCode(CommonConstant.SC_OK_200);
        return r;
    }
    public static <T> Result<T> ok(String msg) {
        Result<T> r = new Result<T>();
        r.setSuccess(true);
        r.setCode(CommonConstant.SC_OK_200);
        //Result OK(String msg)方法会造成兼容性问题 issues/I4IP3D
        r.setResult((T) msg);
        r.setMessage(msg);
        return r;
    }
    public static <T> Result<T> ok(T data) {
        Result<T> r = new Result<T>();
        r.setSuccess(true);
        r.setCode(CommonConstant.SC_OK_200);
        r.setResult(data);
        return r;
    }
    public static <T> Result<T> OK() {
        Result<T> r = new Result<T>();
        r.setSuccess(true);
        r.setCode(CommonConstant.SC_OK_200);
        return r;
    }
    /**
     * æ­¤æ–¹æ³•是为了兼容升级所创建
     *
     * @param msg
     * @param <T>
     * @return
     */
    public static <T> Result<T> OK(String msg) {
        Result<T> r = new Result<T>();
        r.setSuccess(true);
        r.setCode(CommonConstant.SC_OK_200);
        r.setMessage(msg);
        //Result OK(String msg)方法会造成兼容性问题 issues/I4IP3D
        r.setResult((T) msg);
        return r;
    }
    public static <T> Result<T> OK(T data) {
        Result<T> r = new Result<T>();
        r.setSuccess(true);
        r.setCode(CommonConstant.SC_OK_200);
        r.setResult(data);
        return r;
    }
    public static <T> Result<T> OK(String msg, T data) {
        Result<T> r = new Result<T>();
        r.setSuccess(true);
        r.setCode(CommonConstant.SC_OK_200);
        r.setMessage(msg);
        r.setResult(data);
        return r;
    }
    public static <T> Result<T> error(String msg, T data) {
        Result<T> r = new Result<T>();
        r.setSuccess(false);
        r.setCode(CommonConstant.SC_INTERNAL_SERVER_ERROR_500);
        r.setMessage(msg);
        r.setResult(data);
        return r;
    }
    public static <T> Result<T> error(String msg) {
        return error(CommonConstant.SC_INTERNAL_SERVER_ERROR_500, msg);
    }
    public static <T> Result<T> error(int code, String msg) {
        Result<T> r = new Result<T>();
        r.setCode(code);
        r.setMessage(msg);
        r.setSuccess(false);
        return r;
    }
    public Result<T> error500(String message) {
        this.message = message;
        this.code = CommonConstant.SC_INTERNAL_SERVER_ERROR_500;
        this.success = false;
        return this;
    }
    /**
     * æ— æƒé™è®¿é—®è¿”回结果
     */
    public static <T> Result<T> noauth(String msg) {
        return error(CommonConstant.SC_JEECG_NO_AUTHZ, msg);
    }
    @JsonIgnore
    private String onlTable;
}
src/main/java/com/lxzn/config/Swagger2Config.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,183 @@
package com.lxzn.config;
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import com.lxzn.common.CommonConstant;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.util.ReflectionUtils;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping;
import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.*;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.service.contexts.SecurityContext;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider;
import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
/**
 * @Author scott
 */
@Configuration
@EnableSwagger2    //开启 Swagger2
@EnableKnife4j     //开启 knife4j,可以不写
@Import(BeanValidatorPluginsConfiguration.class)
public class Swagger2Config implements WebMvcConfigurer {
    /**
     *
     * æ˜¾ç¤ºswagger-ui.html文档展示页,还必须注入swagger资源:
     *
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
    /**
     * swagger2的配置文件,这里可以配置swagger2的一些基本的内容,比如扫描的包等等
     *
     * @return Docket
     */
    @Bean(value = "defaultApi")
    public Docket defaultApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                //此包路径下的类,才生成接口文档
                .apis(RequestHandlerSelectors.basePackage("com.lxzn"))
                //加了ApiOperation注解的类,才生成接口文档
                .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                .paths(PathSelectors.any())
                .build()
                .securitySchemes(Collections.singletonList(securityScheme()))
                .securityContexts(securityContexts())
                .globalOperationParameters(setHeaderToken())
                .groupName("default");
    }
    /***
     * oauth2配置
     * éœ€è¦å¢žåŠ swagger授权回调地址
     * http://localhost:8888/webjars/springfox-swagger-ui/o2c.html
     * @return
     */
    @Bean
    SecurityScheme securityScheme() {
        return new ApiKey(CommonConstant.X_ACCESS_TOKEN, CommonConstant.X_ACCESS_TOKEN, "header");
    }
    /**
     * JWT token
     * @return
     */
    private List<Parameter> setHeaderToken() {
        ParameterBuilder tokenPar = new ParameterBuilder();
        List<Parameter> pars = new ArrayList<>();
        tokenPar.name(CommonConstant.X_ACCESS_TOKEN).description("token").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
        pars.add(tokenPar.build());
        return pars;
    }
    /**
     * api文档的详细信息函数,注意这里的注解引用的是哪个
     *
     * @return
     */
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                // //大标题
                .title("LXZN System Collect åŽå°æœåŠ¡API接口文档")
                // ç‰ˆæœ¬å·
                .version("1.0")
//                .termsOfServiceUrl("NO terms of service")
                // æè¿°
                .description("后台API接口")
                // ä½œè€…
                .contact(new Contact("西安灵秀机电智能系统技术有限公司", "www.xalxzn.com", "zhangherong@xalxzn.com"))
                .license("The Apache License, Version 2.0")
                .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0.html")
                .build();
    }
    /**
     * æ–°å¢ž securityContexts ä¿æŒç™»å½•状态
     */
    private List<SecurityContext> securityContexts() {
        return new ArrayList(
                Collections.singleton(SecurityContext.builder()
                        .securityReferences(defaultAuth())
                        .forPaths(PathSelectors.regex("^(?!auth).*$"))
                        .build())
        );
    }
    private List<SecurityReference> defaultAuth() {
        AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
        AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
        authorizationScopes[0] = authorizationScope;
        return new ArrayList(
                Collections.singleton(new SecurityReference(CommonConstant.X_ACCESS_TOKEN, authorizationScopes)));
    }
    /**
     * è§£å†³springboot2.6 å’Œspringfox不兼容问题
     * @return
     */
    @Bean
    public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() {
        return new BeanPostProcessor() {
            @Override
            public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
                if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) {
                    customizeSpringfoxHandlerMappings(getHandlerMappings(bean));
                }
                return bean;
            }
            private <T extends RequestMappingInfoHandlerMapping> void customizeSpringfoxHandlerMappings(List<T> mappings) {
                List<T> copy = mappings.stream()
                        .filter(mapping -> mapping.getPatternParser() == null)
                        .collect(Collectors.toList());
                mappings.clear();
                mappings.addAll(copy);
            }
            @SuppressWarnings("unchecked")
            private List<RequestMappingInfoHandlerMapping> getHandlerMappings(Object bean) {
                try {
                    Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings");
                    field.setAccessible(true);
                    return (List<RequestMappingInfoHandlerMapping>) field.get(bean);
                } catch (IllegalArgumentException | IllegalAccessException e) {
                    throw new IllegalStateException(e);
                }
            }
        };
    }
}
src/main/java/com/lxzn/modules/assembly2/controller/AssemblyCollectionJobController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.lxzn.modules.assembly2.controller;
import com.lxzn.common.Result;
import com.lxzn.modules.assembly2.entity.TcOpstate;
import com.lxzn.modules.assembly2.service.ITcOpstateService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Api(tags = "2#装配线采集")
@RestController
@RequestMapping("/assembly2/job")
public class AssemblyCollectionJobController {
    @Autowired
    private ITcOpstateService tcOpstateService;
    @ApiOperation(value = "2号装配线采集-设备状态", notes = "2号装配线采集-设备状态")
    @GetMapping("/opstate")
    public Result<?> testOpStateList(){
        List<TcOpstate> list = tcOpstateService.list();
        return Result.ok(list);
    }
}
src/main/java/com/lxzn/modules/assembly2/entity/T020Boltcheck.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
package com.lxzn.modules.assembly2.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
/**
 * <p>
 *
 * </p>
 *
 * @author baomidou
 * @since 2025-09-02
 */
@Getter
@Setter
@TableName("T020_BoltCheck")
public class T020Boltcheck implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "RecordID", type = IdType.AUTO)
    private Integer recordID;
    private LocalDateTime recordTime;
    private Integer modelID;
    private Double length;
    private Double lengthUL;
    private Double lengthLL;
    private Double pitchMAX;
    private Double pitchMIN;
    private Double pitchUL;
    private Double pitchLL;
    private String result;
}
src/main/java/com/lxzn/modules/assembly2/entity/TcOpstate.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
package com.lxzn.modules.assembly2.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
/**
 * <p>
 *
 * </p>
 *
 * @author baomidou
 * @since 2025-09-03
 */
@Getter
@Setter
@TableName("TC_OPState")
public class TcOpstate implements Serializable {
    private static final long serialVersionUID = 1L;
    private LocalDateTime recordTime;
    @TableId(value = "OPName", type = IdType.AUTO)
    private String oPName;
    private String state;
}
src/main/java/com/lxzn/modules/assembly2/mapper/T020BoltcheckMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.lxzn.modules.assembly2.mapper;
import com.lxzn.modules.assembly2.entity.T020Boltcheck;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * <p>
 *  Mapper æŽ¥å£
 * </p>
 *
 * @author baomidou
 * @since 2025-09-02
 */
public interface T020BoltcheckMapper extends BaseMapper<T020Boltcheck> {
}
src/main/java/com/lxzn/modules/assembly2/mapper/TcOpstateMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.lxzn.modules.assembly2.mapper;
import com.lxzn.modules.assembly2.entity.TcOpstate;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * <p>
 *  Mapper æŽ¥å£
 * </p>
 *
 * @author baomidou
 * @since 2025-09-03
 */
public interface TcOpstateMapper extends BaseMapper<TcOpstate> {
}
src/main/java/com/lxzn/modules/assembly2/mapper/xml/T020BoltcheckMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lxzn.modules.assembly2.mapper.T020BoltcheckMapper">
</mapper>
src/main/java/com/lxzn/modules/assembly2/mapper/xml/TcOpstateMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lxzn.modules.assembly2.mapper.TcOpstateMapper">
</mapper>
src/main/java/com/lxzn/modules/assembly2/service/IT020BoltcheckService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.lxzn.modules.assembly2.service;
import com.lxzn.modules.assembly2.entity.T020Boltcheck;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 *  æœåŠ¡ç±»
 * </p>
 *
 * @author baomidou
 * @since 2025-09-02
 */
public interface IT020BoltcheckService extends IService<T020Boltcheck> {
}
src/main/java/com/lxzn/modules/assembly2/service/ITcOpstateService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.lxzn.modules.assembly2.service;
import com.lxzn.modules.assembly2.entity.TcOpstate;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 *  æœåŠ¡ç±»
 * </p>
 *
 * @author baomidou
 * @since 2025-09-03
 */
public interface ITcOpstateService extends IService<TcOpstate> {
}
src/main/java/com/lxzn/modules/assembly2/service/impl/T020BoltcheckServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.lxzn.modules.assembly2.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.lxzn.modules.assembly2.entity.T020Boltcheck;
import com.lxzn.modules.assembly2.mapper.T020BoltcheckMapper;
import com.lxzn.modules.assembly2.service.IT020BoltcheckService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
 * <p>
 *  æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author baomidou
 * @since 2025-09-02
 */
@Service
@DS("assembly2")
public class T020BoltcheckServiceImpl extends ServiceImpl<T020BoltcheckMapper, T020Boltcheck> implements IT020BoltcheckService {
}
src/main/java/com/lxzn/modules/assembly2/service/impl/TcOpstateServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.lxzn.modules.assembly2.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.lxzn.modules.assembly2.entity.TcOpstate;
import com.lxzn.modules.assembly2.mapper.TcOpstateMapper;
import com.lxzn.modules.assembly2.service.ITcOpstateService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
 * <p>
 *  æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author baomidou
 * @since 2025-09-03
 */
@Service
@DS("assembly2")
public class TcOpstateServiceImpl extends ServiceImpl<TcOpstateMapper, TcOpstate> implements ITcOpstateService {
}
src/main/resources/application-dev.yml
@@ -42,14 +42,14 @@
          username: sa
          password: sa123
          driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
        slave_1:
        assembly2:
          url: jdbc:sqlserver://127.0.0.1:1433;databasename=XHJ-HUB3Line;nullCatalogMeansCurrent=true
          username: sa
          password: sa123
          driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
#mybatis plus è®¾ç½®
mybatis-plus:
  mapper-locations: classpath*:org/jeecg/modules/**/xml/*Mapper.xml
  mapper-locations: classpath*:com/lxzn/modules/**/xml/*Mapper.xml
  global-config:
    # å…³é—­MP3.0自带的banner
    banner: false
@@ -62,4 +62,14 @@
    # è¿™ä¸ªé…ç½®ä¼šå°†æ‰§è¡Œçš„sql打印出来,在开发或测试的时候可以用
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    # è¿”回类型为Map,显示null对应的字段
    call-setters-on-nulls: true
    call-setters-on-nulls: true
#swagger
knife4j:
  #开启增强配置
  enable: true
  #开启生产环境屏蔽
  production: false
  basic:
    enable: false
    username: jeecg
    password: jeecg1314