增加mybatisplus代码生成工具
修复日志打印缺少操作内容的问题
修复app任务空指针问题
优化海康sdk日志打印
已添加1个文件
已修改5个文件
252 ■■■■ 文件已修改
ard-work/pom.xml 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java 78 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/utils/generator/CodeGeneration.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessType.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/pom.xml
@@ -31,10 +31,6 @@
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-common</artifactId>
        </dependency>
        <!--        <dependency>-->
        <!--            <groupId>org.projectlombok</groupId>-->
        <!--            <artifactId>lombok</artifactId>-->
        <!--        </dependency>-->
        <!--海康录像机二次开发依赖jar包-->
        <dependency>
@@ -165,7 +161,7 @@
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.2.0</version>
            <version>3.5.1</version>
        </dependency>
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
@@ -173,6 +169,30 @@
            <version>3.0.3</version>
            <scope>compile</scope>
        </dependency>
        <!--MP代码生成器依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.3.1</version>
        </dependency>
        <!--velocity模板引擎-->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.0</version>
        </dependency>
        <!--postgresql数据库依赖-->
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <scope>runtime</scope>
        </dependency>
<!--        &lt;!&ndash;mybatis-plus依赖&ndash;&gt;-->
<!--        <dependency>-->
<!--            <groupId>com.baomidou</groupId>-->
<!--            <artifactId>mybatis-plus-boot-starter</artifactId>-->
<!--            <version>3.5.1</version>-->
<!--        </dependency>-->
    </dependencies>
ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java
@@ -55,7 +55,10 @@
    @Override
    public ArdAppTask selectArdAppTaskById(String id) {
        ArdAppTask ardAppTask = ardAppTaskMapper.selectArdAppTaskById(id);
        if(StringUtils.isNull(ardAppTask))
        {
            return null;
        }
        List<ArdAppTaskDetail> ardAppTaskDetailList = ardAppTask.getArdAppTaskDetailList();
        if(ardAppTaskDetailList.size()>0)
        {
ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
@@ -179,7 +179,7 @@
        int i = hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo);
        if (i < 0) {
            int errorCode = hCNetSDK.NET_DVR_GetLastError();
            log.info("登录异常:" + errorCode);
            log.error("登录异常:" + errorCode);
        }
    }
@@ -328,7 +328,7 @@
        boolean bool = hCNetSDK.NET_DVR_PTZControlWithSpeed_Other(userId, channelNum, dwPTZCommand, dwStop, speed);
        if (!bool) {
            int errorCode = hCNetSDK.NET_DVR_GetLastError();
            log.info("控制失败,请稍后重试" + errorCode);
            log.error("控制失败,请稍后重试" + errorCode);
        }
        return bool;
    }
@@ -356,7 +356,7 @@
        boolean bool = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_FOCUSMODECFG, channelNum, point, focusmodeCfg.size(), ibrBytesReturned);
        if (!bool) {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("设置聚焦值失败,请稍后重试" + code);
            log.error("设置聚焦值失败,请稍后重试" + code);
        }
        return bool;
    }
@@ -389,7 +389,7 @@
            return map;
        } else {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("获取聚焦值失败,请稍后重试" + code);
            log.debug("获取聚焦值失败,请稍后重试" + code);
            return new HashMap<>();
        }
    }
@@ -412,7 +412,7 @@
        boolean bool = hCNetSDK.NET_DVR_PTZPreset_Other(userId, channelNum, SET_PRESET, PresetIndex);
        if (!bool) {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("预置点设置失败,请稍后重试" + code);
            log.error("预置点设置失败,请稍后重试" + code);
        }
        return bool;
    }
@@ -435,7 +435,7 @@
        boolean bool = hCNetSDK.NET_DVR_PTZPreset_Other(userId, channelNum, GOTO_PRESET, PresetIndex);
        if (!bool) {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("预置点设置失败,请稍后重试" + code);
            log.error("预置点设置失败,请稍后重试" + code);
        }
        return bool;
    }
@@ -537,7 +537,7 @@
                }
            } else {
                int code = hCNetSDK.NET_DVR_GetLastError();
                System.out.println("控制失败,请稍后重试" + code);
                log.error("控制失败,请稍后重试" + code);
            }
        } catch (Exception ex) {
            log.error(ex.getMessage());
@@ -589,7 +589,7 @@
            return ptzMap;
        } else {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("控制失败,请稍后重试" + code);
            log.error("控制失败,请稍后重试" + code);
            return new HashMap<>();
        }
@@ -627,7 +627,7 @@
            boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_PTZPOS, channelNum, point, m_ptzPosCurrent.size());
            if (!bool) {
                int code = hCNetSDK.NET_DVR_GetLastError();
                log.info("设置ptz失败,请稍后重试" + code);
                log.error("设置ptz失败,请稍后重试" + code);
            }
            return bool;
        } catch (Exception ex) {
@@ -663,7 +663,7 @@
            boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_PTZPOS, channelNum, point, m_ptzPosCurrent.size());
            if (!bool) {
                int code = hCNetSDK.NET_DVR_GetLastError();
                log.info("设置ptz失败,请稍后重试" + code);
                log.error("设置ptz失败,请稍后重试" + code);
            }
            return bool;
        } catch (Exception ex) {
@@ -739,7 +739,7 @@
        boolean bool = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_PTZLOCKCFG, channelNum, point, netDvrPtzLockcfg.size(), ibrBytesReturned);
        if (!bool) {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("获取ptz锁定信息失败,请稍后重试" + code);
            log.error("获取ptz锁定信息失败,请稍后重试" + code);
            return -1;
        } else {
            netDvrPtzLockcfg.read();
@@ -803,7 +803,7 @@
        boolean bool = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_PTZSCOPE, channelNum, point, m_ptzPosCurrent.size(), ibrBytesReturned);
        if (!bool) {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("设置ptz失败,请稍后重试" + code);
            log.error("设置ptz失败,请稍后重试" + code);
            return new HashMap<>();
        } else {
            m_ptzPosCurrent.read();
@@ -853,7 +853,7 @@
            log.error("获取前端参数失败,错误码:" + hCNetSDK.NET_DVR_GetLastError());
        }
        struCameraParam.read();
        log.info("是否开启透雾:" + struCameraParam.struDefogCfg.byMode);
        log.debug("是否开启透雾:" + struCameraParam.struDefogCfg.byMode);
        NET_DVR_DEFOGCFG defogcfg = new NET_DVR_DEFOGCFG();
        if (enable) {
@@ -867,9 +867,9 @@
        boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_CCDPARAMCFG_EX, channelNum, point, struCameraParam.size());
        if (!bool) {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("设置透雾失败,请稍后重试" + code);
            log.error("设置透雾失败,请稍后重试" + code);
        }
        log.info("设置透雾成功");
        log.debug("设置透雾成功");
        return bool;
    }
@@ -899,7 +899,7 @@
            log.error("获取前端参数失败,错误码:" + hCNetSDK.NET_DVR_GetLastError());
        }
        struDayNigh.read();
        log.info("是否开启夜视:" + struDayNigh.struDayNight.byDayNightFilterType);
        log.debug("是否开启夜视:" + struDayNigh.struDayNight.byDayNightFilterType);
        NET_DVR_DAYNIGHT daynight = new NET_DVR_DAYNIGHT();
        if (enable) {
@@ -915,9 +915,9 @@
        boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_CCDPARAMCFG_EX, channelNum, point, struDayNigh.size());
        if (!bool) {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("设置夜视失败,请稍后重试" + code);
            log.error("设置夜视失败,请稍后重试" + code);
        }
        log.info("设置夜视成功");
        log.debug("设置夜视成功");
        return bool;
    }
@@ -944,10 +944,10 @@
        IntByReference ibrBytesReturned = new IntByReference(0);
        boolean b_GetCameraParam = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_FOCUSMODECFG, channelNum, point, struFocusMode.size(), ibrBytesReturned);
        if (!b_GetCameraParam) {
            System.out.println("获取前端参数失败,错误码:" + hCNetSDK.NET_DVR_GetLastError());
            log.error("获取前端参数失败,错误码:" + hCNetSDK.NET_DVR_GetLastError());
        }
        struFocusMode.read();
        log.info("当前聚焦模式:" + struFocusMode.byFocusMode);
        log.debug("当前聚焦模式:" + struFocusMode.byFocusMode);
        if (enable) {
            struFocusMode.byFocusMode = 1;//手动聚焦
@@ -961,9 +961,9 @@
        boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_FOCUSMODECFG, channelNum, point, struFocusMode.size());
        if (!bool) {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("设置聚焦模式失败,请稍后重试" + code);
            log.error("设置聚焦模式失败,请稍后重试" + code);
        }
        log.info("设置聚焦模式成功");
        log.debug("设置聚焦模式成功");
        return bool;
    }
@@ -979,10 +979,10 @@
        IntByReference ibrBytesReturned = new IntByReference(0);
        boolean b_GetCameraParam = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_FOCUSMODECFG, channelNum, point, struFocusMode.size(), ibrBytesReturned);
        if (!b_GetCameraParam) {
            System.out.println("获取前端参数失败,错误码:" + hCNetSDK.NET_DVR_GetLastError());
            log.error("获取前端参数失败,错误码:" + hCNetSDK.NET_DVR_GetLastError());
        }
        struFocusMode.read();
        log.info("当前聚焦模式:" + struFocusMode.byFocusMode);
        log.debug("当前聚焦模式:" + struFocusMode.byFocusMode);
        return String.valueOf(struFocusMode.byFocusMode);
    }
@@ -1013,9 +1013,9 @@
        boolean bool = hCNetSDK.NET_DVR_PTZControl_Other(userId, channelNum, HEATER_PWRON, dwStop);
        if (!bool) {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("设置云台加热失败,请稍后重试" + code);
            log.error("设置云台加热失败,请稍后重试" + code);
        }
        log.info("设置云台加热成功");
        log.debug("设置云台加热成功");
        return bool;
    }
@@ -1045,7 +1045,7 @@
            log.error("获取前端参数失败,错误码:" + hCNetSDK.NET_DVR_GetLastError());
        }
        struDeicing.read();
        log.info("是否开启除冰:" + struDeicing.byEnableDeicing);
        log.debug("是否开启除冰:" + struDeicing.byEnableDeicing);
        if (enable) {
            struDeicing.byEnableDeicing = 1;//开启
@@ -1056,9 +1056,9 @@
        boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_DEVSERVER_CFG, channelNum, point, struDeicing.size());
        if (!bool) {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("设置镜头除冰失败,请稍后重试" + code);
            log.error("设置镜头除冰失败,请稍后重试" + code);
        }
        log.info("设置镜头除冰成功");
        log.debug("设置镜头除冰成功");
        return bool;
    }
@@ -1090,13 +1090,13 @@
        ByteBuffer jpegBuffer = ByteBuffer.allocate(1024 * 1024);
        // æŠ“图到内存,单帧数据捕获并保存成JPEG存放在指定的内存空间中
        boolean is = hCNetSDK.NET_DVR_CaptureJPEGPicture_NEW(userId, channelNum, jpeg, jpegBuffer, 1024 * 1024, a);
        log.info("-----------这里开始图片存入内存----------" + is);
        log.debug("-----------这里开始图片存入内存----------" + is);
        Base64.Encoder decoder = Base64.getEncoder();
      //  BASE64Encoder encoder = new BASE64Encoder();
        String png_base64 = decoder.encodeToString(jpegBuffer.array());//转换成base64串
        png_base64 = png_base64.replaceAll("\n", "").replaceAll("\r", "");//删除 \r\n
        log.info("-----------处理完成截图数据----------");
        log.debug("-----------处理完成截图数据----------");
        return png_base64;
    }
@@ -1134,11 +1134,11 @@
        //设置图片大小
        ByteBuffer jpegBuffer = ByteBuffer.allocate(1024 * 1024);
        // æŠ“图到内存,单帧数据捕获并保存成JPEG存放在指定的内存空间中
        log.info("-----------这里开始封装 NET_DVR_CaptureJPEGPicture_NEW---------");
        log.debug("-----------这里开始封装 NET_DVR_CaptureJPEGPicture_NEW---------");
        boolean is = hCNetSDK.NET_DVR_CaptureJPEGPicture_NEW(userId, channelNum, jpeg, jpegBuffer, 1024 * 1024, a);
        log.info("-----------这里开始图片存入内存----------" + is);
        log.debug("-----------这里开始图片存入内存----------" + is);
        if (is) {
            log.info("hksdk(抓图)-结果状态值(0表示成功):" + hCNetSDK.NET_DVR_GetLastError());
            log.debug("hksdk(抓图)-结果状态值(0表示成功):" + hCNetSDK.NET_DVR_GetLastError());
            byte[] array = jpegBuffer.array();
            //存储到minio
            String BucketName = "pic";
@@ -1152,7 +1152,7 @@
                boolean b = MinioUtils.uploadObject(BucketName, ObjectName, input, input.available(), ContentType);
                if (b) {
                    url = MinioUtils.getBucketObjectUrl(BucketName, ObjectName);
                    log.info("上传文件成功!" + url);
                    log.debug("上传文件成功!" + url);
                }
            } catch (IOException ex) {
                log.error("上传文件异常:" + ex.getMessage());
@@ -1160,7 +1160,7 @@
            return url;
        } else {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("抓图失败,请稍后重试" + code);
            log.error("抓图失败,请稍后重试" + code);
            return "";
        }
    }
@@ -1212,21 +1212,21 @@
                        log.error("取流失败" + hCNetSDK.NET_DVR_GetLastError());
                        return "";
                    }
                    log.info("取流成功");
                    log.debug("取流成功");
                    GlobalVariable.previewMap.put(cameraId, lRealHandle);
                }
                if (!hCNetSDK.NET_DVR_SaveRealData_V30(GlobalVariable.previewMap.get(cameraId), 2, path)) {
                    log.error("保存视频文件到临时文件夹失败 é”™è¯¯ç ä¸º:  " + hCNetSDK.NET_DVR_GetLastError());
                    return "";
                }
                log.info("录像开始");
                log.debug("录像开始");
            } else {
                if (GlobalVariable.previewMap.containsKey(cameraId)) {
                    Integer lRealHandle = GlobalVariable.previewMap.get(cameraId);
                    hCNetSDK.NET_DVR_StopRealPlay(lRealHandle);
                    GlobalVariable.previewMap.remove(cameraId);
                }
                log.info("录像停止");
                log.debug("录像停止");
            }
            return url;
        } catch (Exception ex) {
ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java
@@ -1,8 +1,6 @@
package com.ruoyi.inspect.service.impl;
import java.text.SimpleDateFormat;
import java.util.*;
import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell;
import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper;
import com.ruoyi.common.utils.DateUtils;
@@ -10,7 +8,6 @@
import com.ruoyi.device.camera.domain.ArdCameras;
import com.ruoyi.device.camera.domain.CameraCmd;
import com.ruoyi.device.camera.mapper.ArdCamerasMapper;
import com.ruoyi.device.hiksdk.config.MinioClientSingleton;
import com.ruoyi.device.hiksdk.service.IHikClientService;
import com.ruoyi.inspect.domain.ArdVideoInspectRecord;
import com.ruoyi.inspect.mapper.ArdVideoInspectRecordMapper;
@@ -24,7 +21,6 @@
import com.ruoyi.inspect.mapper.ArdVideoInspectTaskMapper;
import com.ruoyi.inspect.domain.ArdVideoInspectTask;
import com.ruoyi.inspect.service.IArdVideoInspectTaskService;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
@@ -417,7 +413,7 @@
        try {
            String currentStepId = ardVideoInspectTask.getCurrentStepId();
            if (StringUtils.isNull(currentStepId)) {
                log.info("当前开始巡检步骤id为空");
                log.debug("当前开始巡检步骤id为空");
                return;
            }
            log.debug("巡检步骤:" + currentStepId + "尝试开始");
@@ -442,6 +438,11 @@
                    targetPositon[2] = ardAlarmpointsWell.getAltitude();
                    /*获取相机坐标*/
                    ArdCameras cameras = ardCamerasMapper.selectArdCamerasById(cameraId);
                    if(StringUtils.isNull(cameras))
                    {
                        log.debug("找不到相机:"+cameraId);
                        return;
                    }
                    double[] cameraPositon = new double[3];
                    cameraPositon[0] = cameras.getLongitude();
                    cameraPositon[1] = cameras.getLatitude();
@@ -474,7 +475,7 @@
        try {
            String currentStepId = ardVideoInspectTask.getCurrentStepId();
            if (StringUtils.isNull(currentStepId)) {
                log.info("当前开始巡检步骤id为空");
                log.debug("当前开始巡检步骤id为空");
                return;
            }
            log.debug("巡检正常,尝试引导:" + currentStepId);
@@ -495,6 +496,11 @@
                    targetPositon[2] = ardAlarmpointsWell.getAltitude();
                    /*获取相机坐标*/
                    ArdCameras cameras = ardCamerasMapper.selectArdCamerasById(cameraId);
                    if(StringUtils.isNull(cameras))
                    {
                        log.debug("找不到相机:"+cameraId);
                        return;
                    }
                    double[] cameraPositon = new double[3];
                    cameraPositon[0] = cameras.getLongitude();
                    cameraPositon[1] = cameras.getLatitude();
ard-work/src/main/java/com/ruoyi/utils/generator/CodeGeneration.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,118 @@
package com.ruoyi.utils.generator;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.querys.PostgreSqlQuery;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import java.util.Collections;
/**
 * @ClassName: CodeGeneration
 * @Description: mybatisPlus ä»£ç ç”Ÿæˆå·¥å…·
 * @Author: Administrator
 * @Date: 2023å¹´03月25日 14:49
 * @Version: 1.0
 **/
public class CodeGeneration {
    public static void main(String[] args) {
        /**
         * å…ˆé…ç½®æ•°æ®æº
         */
        PostgreSqlQuery postgreSqlQuery = new PostgreSqlQuery() {
            @Override
            public String[] fieldCustom() {
                return new String[]{"Default"};
            }
        };
        DataSourceConfig dsc = new DataSourceConfig.Builder("jdbc:postgresql://192.168.1.15:5432/ry-vue?stringtype=unspecified","postgres","postgres")
                .dbQuery(postgreSqlQuery).build();
        //通过datasourceConfig创建AutoGenerator
        AutoGenerator generator = new AutoGenerator(dsc);
        /**
         * å…¨å±€é…ç½®
         */
        String projectPath = System.getProperty("user.dir"); //获取项目路径
        String filePath = projectPath + "/ard-work/src/main/java";  //java下的文件路径
        GlobalConfig global = new GlobalConfig.Builder()
                .outputDir(filePath)//生成的输出路径
                .author("刘苏义")//生成的作者名字
                //.enableSwagger()开启swagger,需要添加swagger依赖并配置
                .dateType(DateType.TIME_PACK)//时间策略
                .commentDate("yyyyå¹´MM月dd日")//格式化时间格式
                .disableOpenDir()//禁止打开输出目录,默认false
                .fileOverride()//覆盖生成文件
                .build();
        /**
         * åŒ…配置
         */
        PackageConfig packages = new PackageConfig.Builder()
                .entity("domian")//实体类包名
                .parent("com.ruoyi.test")//父包名。如果为空,将下面子包名必须写全部, å¦åˆ™å°±åªéœ€å†™å­åŒ…名
                .controller("controller")//控制层包名
                .mapper("mapper")//mapper层包名
                .xml("mapper.xml")//数据访问层xml包名
                .service("service")//service层包名
                .serviceImpl("service.impl")//service实现类包名
                .pathInfo(Collections.singletonMap(OutputFile.xml, projectPath + "/ard-work/src/main/resources/mapper"))
                .build();
        /**
         * ç­–略配置开始
         */
        StrategyConfig strategyConfig = new StrategyConfig.Builder()
                .enableCapitalMode()//开启全局大写命名
                //.likeTable()模糊表匹配
                .addInclude("school")//添加表匹配,指定要生成的数据表名,不写默认选定数据库所有表
                //.disableSqlFilter()禁用sql过滤:默认(不使用该方法)true
                //.enableSchema()启用schema:默认false
                .entityBuilder() //实体策略配置
                //.disableSerialVersionUID()禁用生成SerialVersionUID:默认true
                .enableChainModel()//开启链式模型
                .enableLombok()//开启lombok
                .enableRemoveIsPrefix()//开启 Boolean ç±»åž‹å­—段移除 is å‰ç¼€
                .enableTableFieldAnnotation()//开启生成实体时生成字段注解
                //.addTableFills()添加表字段填充
                .naming(NamingStrategy.underline_to_camel)//数据表映射实体命名策略:默认下划线转驼峰underline_to_camel
                .columnNaming(NamingStrategy.underline_to_camel)//表字段映射实体属性命名规则:默认null,不指定按照naming执行
                .idType(IdType.AUTO)//添加全局主键类型
                .formatFileName("%s")//格式化实体名称,%s取消首字母I
                .build()
                .mapperBuilder()//mapper文件策略
                .enableMapperAnnotation()//开启mapper注解
                .enableBaseResultMap()//启用xml文件中的BaseResultMap ç”Ÿæˆ
                .enableBaseColumnList()//启用xml文件中的BaseColumnList
                //.cache(缓存类.class)设置缓存实现类
                .formatMapperFileName("%sMapper")//格式化Dao类名称
                .formatXmlFileName("%sMapper")//格式化xml文件名称
                .build()
                .serviceBuilder()//service文件策略
                .formatServiceFileName("%sService")//格式化 service æŽ¥å£æ–‡ä»¶åç§°
                .formatServiceImplFileName("%sServiceImpl")//格式化 service æŽ¥å£æ–‡ä»¶åç§°
                .build()
                .controllerBuilder()//控制层策略
                //.enableHyphenStyle()开启驼峰转连字符,默认:false
                .enableRestStyle()//开启生成@RestController
                .formatFileName("%sController")//格式化文件名称
                .build();
        /*至此,策略配置才算基本完成!*/
        /**
         * å°†æ‰€æœ‰é…ç½®é¡¹æ•´åˆåˆ°AutoGenerator中进行执行
         */
        generator.global(global)
                .packageInfo(packages)
                .strategy(strategyConfig)
                .execute();
    }
}
ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessType.java
@@ -61,8 +61,9 @@
     * æµ‹è¯•
     */
    TEST,
    /**
     * æŽ§åˆ¶
     */
    CONTROL,
    CONTROL
}