From 97287ee79f67a623da39650ad9718131e8130cb5 Mon Sep 17 00:00:00 2001 From: XiaoRuby <3114200645@qq.com> Date: 星期一, 07 八月 2023 16:46:52 +0800 Subject: [PATCH] LIMS管理系统框架-开发8-7 bug修改 --- framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MySqlInjector.java | 11 +- sys/src/main/java/com/yuanchu/limslaboratory/CodeGenerator.java | 132 ++++++++++---------------------- inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionMaterialController.java | 15 --- framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MyBatisPlusConfig.java | 20 +---- inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java | 8 -- inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionProductController.java | 5 - pom.xml | 2 7 files changed, 54 insertions(+), 139 deletions(-) diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MyBatisPlusConfig.java b/framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MyBatisPlusConfig.java index e99a25e..f944f17 100644 --- a/framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MyBatisPlusConfig.java +++ b/framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MyBatisPlusConfig.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; -import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -11,21 +11,6 @@ @Configuration public class MyBatisPlusConfig { -// 涔愯閿佹彃浠� - @Bean - public OptimisticLockerInterceptor optimisticLockerInterceptor() { - return new OptimisticLockerInterceptor(); - } - - /** - * 寮�鍚壒閲忔坊鍔� - * @return - */ - @Bean - public MySqlInjector sqlInjector() { - return new MySqlInjector(); - } - /** * 闇�瑕侀厤缃嫤鎴櫒锛屼笉鐒跺湪AddDevice涓殑total鏃犳硶鑾峰彇鍒� * @return @@ -33,6 +18,9 @@ @Bean public MybatisPlusInterceptor mybatisPlusInterceptor(){ MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); + // 涔愯閿� + interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); + // 鍒嗛〉閰嶇疆 interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; } diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MySqlInjector.java b/framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MySqlInjector.java index 5833a2e..aec9276 100644 --- a/framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MySqlInjector.java +++ b/framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MySqlInjector.java @@ -1,23 +1,24 @@ package com.yuanchu.limslaboratory.mybatis_config; -import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.core.injector.AbstractMethod; import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector; +import com.baomidou.mybatisplus.core.metadata.TableInfo; import com.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn; +import org.springframework.stereotype.Component; import java.util.List; /** * 鎵归噺娣诲姞 */ +@Component public class MySqlInjector extends DefaultSqlInjector { @Override - public List<AbstractMethod> getMethodList(Class<?> mapperClass) { - List<AbstractMethod> methodList = super.getMethodList(mapperClass); + public List<AbstractMethod> getMethodList(Class<?> mapperClass, TableInfo tableInfo) { + List<AbstractMethod> methodList = super.getMethodList(mapperClass, tableInfo); //澧炲姞鑷畾涔夋柟娉曪紝瀛楁娉ㄨВ涓婁笉绛変簬FieldFill.DEFAULT鐨勫瓧娈垫墠浼氭彃鍏� - methodList.add(new InsertBatchSomeColumn(i -> i.getFieldFill() != FieldFill.DEFAULT)); + methodList.add(new InsertBatchSomeColumn(t->!t.isLogicDelete())); return methodList; } - } diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionMaterialController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionMaterialController.java index 7388de8..63ace1b 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionMaterialController.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionMaterialController.java @@ -1,24 +1,9 @@ package com.yuanchu.limslaboratory.controller; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.api.ApiController; - -import java.util.List; - import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.PageImpl; -import org.springframework.data.domain.PageRequest; -import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.limslaboratory.service.InspectionMaterialService; - -import javax.annotation.Resource; -import java.io.Serializable; -import java.util.List; /** * (鏍峰搧)妫�楠屽崟閲岄潰鐨勭墿鏂�(InspectionMaterial)琛ㄦ帶鍒跺眰 diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionProductController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionProductController.java index 1ceff0c..8203159 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionProductController.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionProductController.java @@ -1,11 +1,6 @@ package com.yuanchu.limslaboratory.controller; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.api.ApiController; - -import java.util.List; - import com.yuanchu.limslaboratory.pojo.InspectionProduct; import com.yuanchu.limslaboratory.pojo.vo.InsProductVo; import com.yuanchu.limslaboratory.service.InstrumentService; diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java index 472e939..e62f2a8 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java @@ -33,38 +33,30 @@ @TableId(value = "id", type = IdType.AUTO) private Integer id; - @TableField(fill = FieldFill.INSERT) @ApiModelProperty(value = "鏍峰搧缂栧彿", required = true, example = "YPBH123456789") private String sampleNumber; - @TableField(fill = FieldFill.INSERT) @ApiModelProperty(value = "鏍峰搧鍚嶇О", required = true, example = "鍙戝姩鏈�") private String sampleName; - @TableField(fill = FieldFill.INSERT) @ApiModelProperty(value = "瑙勬牸鍨嬪彿", required = true, example = "GGXH-AAAAA") private String specificationsModels; - @TableField(fill = FieldFill.INSERT) @NotBlank(message = "璇峰~鍐欏崟浣嶏紒") @ApiModelProperty(value = "鍗曚綅", required = true, example = "鐧惧害") private String unit; - @TableField(fill = FieldFill.INSERT) @NotNull(message = "璇峰~鍐欐牱鍝佹暟閲忥紒") @ApiModelProperty(value = "鏍峰搧鏁伴噺", required = true, example = "20") private Integer samplesNumber; - @TableField(fill = FieldFill.INSERT) @NotBlank(message = "璇曢獙涓嶈兘涓虹┖锛�") @ApiModelProperty(value = "璇曢獙", required = true, example = "鍋氭ⅵ") private String experiment; - @TableField(fill = FieldFill.INSERT) @ApiModelProperty(value = "澶囨敞", example = "閫氳繃浜�") private String remarks; - @TableField(fill = FieldFill.INSERT) @ApiModelProperty(value = "LinkBasicInformation瀵硅薄Id", hidden = true) private Integer linkBasicId; diff --git a/pom.xml b/pom.xml index 0bfe39d..b6025a8 100644 --- a/pom.xml +++ b/pom.xml @@ -32,7 +32,7 @@ <swagger.version>3.0.0</swagger.version> <knife4j-spring-ui.version>3.0.3</knife4j-spring-ui.version> <druid.version>1.2.18</druid.version> - <mybatis-plus.version>3.4.0</mybatis-plus.version> + <mybatis-plus.version>3.5.3.1</mybatis-plus.version> <openfeign.version>3.1.3</openfeign.version> <feign-okhttp.version>11.0</feign-okhttp.version> <shiro.version>1.5.3</shiro.version> diff --git a/sys/src/main/java/com/yuanchu/limslaboratory/CodeGenerator.java b/sys/src/main/java/com/yuanchu/limslaboratory/CodeGenerator.java index 62440cc..0807851 100644 --- a/sys/src/main/java/com/yuanchu/limslaboratory/CodeGenerator.java +++ b/sys/src/main/java/com/yuanchu/limslaboratory/CodeGenerator.java @@ -1,110 +1,64 @@ package com.yuanchu.limslaboratory; import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException; -import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.core.toolkit.StringUtils; -import com.baomidou.mybatisplus.generator.AutoGenerator; -import com.baomidou.mybatisplus.generator.InjectionConfig; +import com.baomidou.mybatisplus.generator.FastAutoGenerator; import com.baomidou.mybatisplus.generator.config.*; -import com.baomidou.mybatisplus.generator.config.po.TableInfo; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; -import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; -import java.util.ArrayList; -import java.util.List; +import java.util.Collections; import java.util.Scanner; // 婕旂ず渚嬪瓙锛屾墽琛� main 鏂规硶鎺у埗鍙拌緭鍏ユā鍧楄〃鍚嶅洖杞﹁嚜鍔ㄧ敓鎴愬搴旈」鐩洰褰曚腑 public class CodeGenerator { - public static String database_url = "jdbc:mysql://localhost:3306/lims_laboratory?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai"; - public static String database_driver_name = "com.mysql.cj.jdbc.Driver"; + public static String database_url = "jdbc:mysql://localhost:3306/mom_ocean?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai"; public static String database_username = "root"; public static String database_password= "123456"; public static String author = "姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃"; - public static String model_name = "/inspection-server"; // 濡傛灉涓哄垎甯冨紡濉瓙妯″潡鍚嶇О锛屽鏋滀笉鏄垎甯冨紡涓虹┖鍗冲彲 - public static String setParent = "com.yuanchu.limslaboratory"; // 鍖呰矾寰� - public static Boolean Override = false; // 鏄惁瑕嗙洊鍘熸潵鐨勬枃浠讹紵 - + public static String model_name = "/inspect-server"; // 濡傛灉涓哄垎甯冨紡濉瓙妯″潡鍚嶇О锛屽鏋滀笉鏄垎甯冨紡涓虹┖鍗冲彲 + public static String setParent = "com.yuanchu.mom"; // 鍖呰矾寰� public static void main(String[] args) { - // 浠g爜鐢熸垚鍣� - AutoGenerator mpg = new AutoGenerator(); - String projectPath = System.getProperty("user.dir"); System.out.println(projectPath+"==================="); - - GlobalConfig gc = new GlobalConfig() // 鍏ㄥ眬閰嶇疆 - .setOutputDir(projectPath + model_name + "/src/main/java") // 杈撳嚭璺緞 - .setAuthor(author) // 浣滆�呮敞閲� - .setOpen(false) // 鏄惁鎵撳紑 - .setSwagger2(true) //瀹炰綋灞炴�� Swagger2 娉ㄨВ - .setServiceName("%sService") // 璁剧疆serviceName鐨勫悕绉板幓澶у啓I - .setFileOverride(Override);// 鏄惁瑕嗙洊宸茬敓鎴愭枃浠� - mpg.setGlobalConfig(gc); - - // 鏁版嵁婧愰厤缃� 鏁版嵁搴撳悕 璐﹀彿瀵嗙爜 - DataSourceConfig dsc = new DataSourceConfig() - .setUrl(database_url) - .setDriverName(database_driver_name) - .setUsername(database_username) - .setPassword(database_password); - mpg.setDataSource(dsc); - - - // 鍖呴厤缃� - PackageConfig pc = new PackageConfig() - .setModuleName(null) - .setParent(setParent) - .setEntity("pojo");// 鍖呰矾寰� - mpg.setPackageInfo(pc); - - // 鑷畾涔夐厤缃� - InjectionConfig cfg = new InjectionConfig() { - @Override - public void initMap() { - // to do nothing - } - }; - - // 濡傛灉妯℃澘寮曟搸鏄� freemarker - String templatePath = "/templates/mapper.xml.ftl"; - // 濡傛灉妯℃澘寮曟搸鏄� velocity - // String templatePath = "/templates/mapper.xml.vm"; - - // 鑷畾涔夎緭鍑洪厤缃� - List<FileOutConfig> focList = new ArrayList<>(); - // 鑷畾涔夐厤缃細琚紭鍏堣緭鍑� - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - // 鑷畾涔夎緭鍑烘枃浠跺悕 锛� 濡傛灉浣� Entity 璁剧疆浜嗗墠鍚庣紑銆佹澶勬敞鎰� xml 鐨勫悕绉颁細璺熺潃鍙戠敓鍙樺寲锛� - return projectPath + model_name + "/src/main/resources/mapper/" - + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML; - } - }); - - cfg.setFileOutConfigList(focList); - mpg.setCfg(cfg); - - // 閰嶇疆妯℃澘 - TemplateConfig templateConfig = new TemplateConfig() - .setXml(null); - - mpg.setTemplate(templateConfig); - - // 绛栫暐閰嶇疆 - StrategyConfig strategy = new StrategyConfig() - .setNaming(NamingStrategy.underline_to_camel) - .setColumnNaming(NamingStrategy.underline_to_camel) - .setEntityLombokModel(true) - .setRestControllerStyle(true) - .setInclude(scanner("琛ㄥ悕锛屽涓亾鍙峰垎鍓�").split(",")) - .setControllerMappingHyphenStyle(true) - .setTablePrefix("m_"); - mpg.setStrategy(strategy); - mpg.setTemplateEngine(new FreemarkerTemplateEngine()); - //濡傛灉涓嶈皟鐢ㄨ鏂规硶銆佸氨浼氫娇鐢∕yBatis-Plus榛樿鐨勬枃浠剁敓鎴愯矾寰勫拰鍖呰矾寰勭敓鎴愭枃浠躲�佷絾鍙互浣跨敤涓婇潰鐨凱ackageConfig鍋氫竴浜涚畝鍗曠殑閰嶇疆 - mpg.execute(); + FastAutoGenerator.create(database_url, database_username, database_password) + // 鍏ㄥ眬閰嶇疆 + .globalConfig(builder -> { + builder.author(author) // 璁剧疆浣滆�� + .commentDate("yyyy-MM-dd hh:mm:ss") //娉ㄩ噴鏃ユ湡 + .outputDir(projectPath + model_name + "/src/main/java") // 鎸囧畾杈撳嚭鐩綍 + .disableOpenDir() //绂佹鎵撳紑杈撳嚭鐩綍锛岄粯璁ゆ墦寮� + ; + }) + // 鍖呴厤缃� + .packageConfig(builder -> { + builder.entity("pojo"); + builder.parent(setParent) // 璁剧疆鐖跺寘鍚� + .pathInfo(Collections.singletonMap(OutputFile.xml, projectPath + model_name + "/src/main/resources/mapper")); // 璁剧疆mapperXml鐢熸垚璺緞 + }) + // 绛栫暐閰嶇疆 + .strategyConfig(builder -> { + builder.addInclude(scanner("琛ㄥ悕锛屽涓┖鏍煎垎鍓�").split(" ")) // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕 + .addTablePrefix("sys_") // 璁剧疆杩囨护琛ㄥ墠缂� + // Entity 绛栫暐閰嶇疆 + .entityBuilder() + .enableLombok() //寮�鍚� Lombok + .naming(NamingStrategy.underline_to_camel) //鏁版嵁搴撹〃鏄犲皠鍒板疄浣撶殑鍛藉悕绛栫暐锛氫笅鍒掔嚎杞┘宄板懡 + .columnNaming(NamingStrategy.underline_to_camel) //鏁版嵁搴撹〃瀛楁鏄犲皠鍒板疄浣撶殑鍛藉悕绛栫暐锛氫笅鍒掔嚎杞┘宄板懡 + // Mapper 绛栫暐閰嶇疆 + .mapperBuilder() + .enableFileOverride() // 瑕嗙洊宸茬敓鎴愭枃浠� + // Service 绛栫暐閰嶇疆 + .serviceBuilder() + .enableFileOverride() // 瑕嗙洊宸茬敓鎴愭枃浠� + .formatServiceFileName("%sService") //鏍煎紡鍖� service 鎺ュ彛鏂囦欢鍚嶇О锛�%s杩涜鍖归厤琛ㄥ悕锛屽 UserService + .formatServiceImplFileName("%sServiceImpl") //鏍煎紡鍖� service 瀹炵幇绫绘枃浠跺悕绉帮紝%s杩涜鍖归厤琛ㄥ悕锛屽 UserServiceImpl + // Controller 绛栫暐閰嶇疆 + .controllerBuilder() + .enableFileOverride() // 瑕嗙洊宸茬敓鎴愭枃浠� + ; + }) + .execute(); } /** -- Gitblit v1.9.3