|
@@ -0,0 +1,159 @@
|
|
|
|
|
+package com.supplychain;
|
|
|
|
|
+
|
|
|
|
|
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|
|
|
|
+import com.baomidou.mybatisplus.generator.AutoGenerator;
|
|
|
|
|
+import com.baomidou.mybatisplus.generator.config.*;
|
|
|
|
|
+import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
|
|
|
|
|
+import com.baomidou.mybatisplus.generator.config.rules.DateType;
|
|
|
|
|
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
|
|
|
|
|
+
|
|
|
|
|
+import java.util.Collections;
|
|
|
|
|
+import java.util.List;
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * 代码生成工具类
|
|
|
|
|
+ */
|
|
|
|
|
+public class CodeGenerator {
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 数据库链接地址
|
|
|
|
|
+ */
|
|
|
|
|
+ private static final String URL = "jdbc:mysql://47.109.193.147:3306/basic_library?socketTimeout=60000&connectTimeout=30000&serverTimeZone=UTC&useUnicode=true&characterEncoding=UTF-8";
|
|
|
|
|
+ // private static final String URL = "jdbc:mysql://47.109.64.210:3306/intelligence?socketTimeout=60000&connectTimeout=30000&serverTimeZone=UTC&useUnicode=true&characterEncoding=UTF-8";
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 用户名
|
|
|
|
|
+ */
|
|
|
|
|
+ private static final String USERNAME = "dms_root";
|
|
|
|
|
+ //private static final String USERNAME = "root";
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 密码
|
|
|
|
|
+ */
|
|
|
|
|
+ private static final String PASSWORD = "CsYr&Test159";
|
|
|
|
|
+ // private static final String PASSWORD = "yr159";
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 作者
|
|
|
|
|
+ */
|
|
|
|
|
+ private static final String AUTHOR = "";
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 表名的前缀,从表生成代码时会去掉前缀
|
|
|
|
|
+ */
|
|
|
|
|
+ private static final String TABLE_PREFIX = "yr";
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 模块名
|
|
|
|
|
+ */
|
|
|
|
|
+ //private static final String MODULE_NAME = "";
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 需要生成的表名,必填
|
|
|
|
|
+ */
|
|
|
|
|
+ private static final List<String> TABLES = List.of("yr_picking_order_info", "yr_picking_order_detail", "yr_replenish_order_info", "yr_replenish_order_detail",
|
|
|
|
|
+ "yr_aggregation_pick_info", "yr_aggregation_pick_link", "yr_aggregation_pick_detail"
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ public static void main(String[] args) {
|
|
|
|
|
+ if (TABLES.isEmpty()) {
|
|
|
|
|
+ System.out.println("请输入需要生成的表名!");
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ String projectPath = System.getProperty("user.dir");
|
|
|
|
|
+
|
|
|
|
|
+ //全局配置
|
|
|
|
|
+ GlobalConfig config = new GlobalConfig.Builder()
|
|
|
|
|
+ .author(AUTHOR) //作者
|
|
|
|
|
+ .outputDir(projectPath + "/warehouse-admin-data/src/main/java/") //生成文件输出路径(写到java目录)
|
|
|
|
|
+ //.enableSwagger() //开启swagger
|
|
|
|
|
+ .commentDate("yyyy-MM-dd HH:mm:ss") //注释日期格式
|
|
|
|
|
+ .dateType(DateType.TIME_PACK) //设置时间对应类型
|
|
|
|
|
+ .disableOpenDir() //生成后不要打开目录
|
|
|
|
|
+ .build();
|
|
|
|
|
+
|
|
|
|
|
+ //包名配置
|
|
|
|
|
+ PackageConfig packageConfig = new PackageConfig.Builder()
|
|
|
|
|
+ .parent("com.yr.warehouse.admin.replenish.data") //父包名
|
|
|
|
|
+ //.moduleName(moduleName) //模块名
|
|
|
|
|
+ //.controller("controller") //controller包名
|
|
|
|
|
+ //.service("service.sys") //service接口包名
|
|
|
|
|
+ .service("service")
|
|
|
|
|
+ .serviceImpl("service.impl") //service实现类包名
|
|
|
|
|
+ .entity("entity") //实体类包名
|
|
|
|
|
+ .mapper("mapper") //mapper包名
|
|
|
|
|
+ .xml("mapper") //mapper对应的xml包名
|
|
|
|
|
+ .pathInfo(Collections.singletonMap(OutputFile.mapper.xml, projectPath + "/warehouse-admin-data/src/main/resources/mapper/replenish")) //mapper对应的xml路径
|
|
|
|
|
+ .build();
|
|
|
|
|
+
|
|
|
|
|
+ //策略配置
|
|
|
|
|
+ StrategyConfig strategyConfig = new StrategyConfig.Builder()
|
|
|
|
|
+ .addTablePrefix(TABLE_PREFIX) //需要抵消的表前缀
|
|
|
|
|
+ .addInclude(TABLES) //设置生成需要映射的表名
|
|
|
|
|
+ //.enableCapitalMode() //策略开启⼤写命名
|
|
|
|
|
+
|
|
|
|
|
+ .serviceBuilder() //构建Service层
|
|
|
|
|
+ .formatServiceFileName("%sService")
|
|
|
|
|
+ .enableFileOverride() //覆盖文件(需谨慎使用)
|
|
|
|
|
+ .formatServiceImplFileName("%sServiceImpl") //业务层接口实现类命名
|
|
|
|
|
+ // .superServiceImplClass(BaseService.class) //service公共父类
|
|
|
|
|
+
|
|
|
|
|
+ .entityBuilder() //构建实体类
|
|
|
|
|
+ .enableFileOverride() //覆盖文件(需谨慎使用)
|
|
|
|
|
+ .formatFileName("%s")
|
|
|
|
|
+ // .superClass(BaseEntity.class) //entity公共父类
|
|
|
|
|
+ .columnNaming(NamingStrategy.underline_to_camel) //字段名驼峰命名
|
|
|
|
|
+ .naming(NamingStrategy.underline_to_camel) //表名驼峰命名
|
|
|
|
|
+
|
|
|
|
|
+ .enableLombok() //添加lombock的getter、setter注解
|
|
|
|
|
+ //.enableChainModel() //启动链式写法@Accessors(chain = true)
|
|
|
|
|
+ //.enableColumnConstant() //启动属性转常量功能@FieldNameConstants
|
|
|
|
|
+ //.logicDeleteColumnName("deleted") //逻辑删除字段,标记@TableLogic
|
|
|
|
|
+ .enableTableFieldAnnotation() //启动字段注解
|
|
|
|
|
+ //.addTableFills(tableFillList) //属性值填充策略
|
|
|
|
|
+
|
|
|
|
|
+ //.controllerBuilder() //构建Controller类
|
|
|
|
|
+ //.enableFileOverride() //覆盖文件(需谨慎使用)
|
|
|
|
|
+ //.enableHyphenStyle() //映射路径使用连字符格式,而不是驼峰
|
|
|
|
|
+ //.formatFileName("%sController") //Controller类命名
|
|
|
|
|
+ // .superClass(BaseController.class) //Controller 类继承 BaseController
|
|
|
|
|
+ //.enableRestStyle() //标记@RestController注解
|
|
|
|
|
+
|
|
|
|
|
+ .mapperBuilder() //构建mapper接口类
|
|
|
|
|
+ //.enableFileOverride() //覆盖文件(需谨慎使用)
|
|
|
|
|
+ .enableBaseResultMap() //生成基本的resultMap
|
|
|
|
|
+ .formatMapperFileName("%sMapper") //Mapper接口类明名
|
|
|
|
|
+ .superClass(BaseMapper.class) //Mapper接口类集成 BaseMapper
|
|
|
|
|
+ //.enableMapperAnnotation() //标记@Mapper注解
|
|
|
|
|
+ .formatXmlFileName("%sMapper") //Mapper.xml命名
|
|
|
|
|
+ .enableBaseColumnList() //生成基本的SQL片段
|
|
|
|
|
+
|
|
|
|
|
+ .build();
|
|
|
|
|
+
|
|
|
|
|
+ //数据源配置
|
|
|
|
|
+ DataSourceConfig.Builder dataSourceConfigBuilder = new DataSourceConfig.Builder(URL, USERNAME, PASSWORD);
|
|
|
|
|
+ //数据库类型转换器
|
|
|
|
|
+ dataSourceConfigBuilder.typeConvert(new MySqlTypeConvert() {
|
|
|
|
|
+ /*@Override
|
|
|
|
|
+ public IColumnType processTypeConvert(GlobalConfig globalConfig, String tableField) {
|
|
|
|
|
+ if (tableField.toLowerCase().contains("date") || tableField.toLowerCase().contains("timestamp") || tableField.toLowerCase().contains("datetime")) {
|
|
|
|
|
+ return DbColumnType.STRING;
|
|
|
|
|
+ }
|
|
|
|
|
+ return super.processTypeConvert(globalConfig, tableField);
|
|
|
|
|
+ }*/
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ //创建代码生成器对象,加载配置
|
|
|
|
|
+ AutoGenerator autoGenerator = new AutoGenerator(dataSourceConfigBuilder.build());
|
|
|
|
|
+ autoGenerator.global(config);
|
|
|
|
|
+ autoGenerator.packageInfo(packageConfig);
|
|
|
|
|
+ autoGenerator.strategy(strategyConfig);
|
|
|
|
|
+
|
|
|
|
|
+ //执行
|
|
|
|
|
+ autoGenerator.execute();
|
|
|
|
|
+ System.out.println("======================================== 相关代码生成完毕 =====================================");
|
|
|
|
|
+ }
|
|
|
|
|
+}
|