From a303cd042ed27bdf2b8daaf3d3bc23f1ef9956af Mon Sep 17 00:00:00 2001 From: Fixiaobai <fixiaobai@163.com> Date: 星期二, 15 八月 2023 17:59:23 +0800 Subject: [PATCH] 设备台账 --- cnas-server/src/main/java/com/yuanchu/limslaboratory/service/impl/CnasSatisfactionSurveyServiceImpl.java | 2 framework/pom.xml | 7 + laboratory-server/src/main/resources/mapper/ClassifyMapper.xml | 17 ++++ laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/ClassifyMapper.java | 2 framework/src/main/java/com/yuanchu/limslaboratory/utils/Threads.java | 96 ++++++++++++++++++++++++ pom.xml | 2 laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/ClassifyController.java | 6 laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ClassifyServiceImpl.java | 12 +- framework/src/main/java/com/yuanchu/limslaboratory/utils/ThreadPoolConfig.java | 62 +++++++++++++++ 9 files changed, 195 insertions(+), 11 deletions(-) diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/impl/CnasSatisfactionSurveyServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/impl/CnasSatisfactionSurveyServiceImpl.java index 57fb932..55da2b0 100644 --- a/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/impl/CnasSatisfactionSurveyServiceImpl.java +++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/impl/CnasSatisfactionSurveyServiceImpl.java @@ -50,7 +50,7 @@ } /** - * + * 鑾峰彇鐢ㄦ埛淇℃伅 * @param token * @return */ diff --git a/framework/pom.xml b/framework/pom.xml index 2aad47d..cfae3f2 100644 --- a/framework/pom.xml +++ b/framework/pom.xml @@ -19,7 +19,12 @@ <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> </dependency> - + <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> + <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-lang3</artifactId> + <version>${commons.lang3}</version> + </dependency> <!-- mysql椹卞姩 --> <dependency> <groupId>mysql</groupId> diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/utils/ThreadPoolConfig.java b/framework/src/main/java/com/yuanchu/limslaboratory/utils/ThreadPoolConfig.java new file mode 100644 index 0000000..2927710 --- /dev/null +++ b/framework/src/main/java/com/yuanchu/limslaboratory/utils/ThreadPoolConfig.java @@ -0,0 +1,62 @@ +package com.yuanchu.limslaboratory.utils; + +import org.apache.commons.lang3.concurrent.BasicThreadFactory; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.ThreadPoolExecutor; + +/** + * 绾跨▼姹犻厤缃� + * + * @author 寮犲 + **/ +@Configuration +public class ThreadPoolConfig +{ + // 鏍稿績绾跨▼姹犲ぇ灏� + private int corePoolSize = 50; + + // 鏈�澶у彲鍒涘缓鐨勭嚎绋嬫暟 + private int maxPoolSize = 200; + + // 闃熷垪鏈�澶ч暱搴� + private int queueCapacity = 1000; + + // 绾跨▼姹犵淮鎶ょ嚎绋嬫墍鍏佽鐨勭┖闂叉椂闂� + private int keepAliveSeconds = 300; + + @Bean(name = "threadPoolTaskExecutor") + public ThreadPoolTaskExecutor threadPoolTaskExecutor() + { + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); + executor.setMaxPoolSize(maxPoolSize); + executor.setCorePoolSize(corePoolSize); + executor.setQueueCapacity(queueCapacity); + executor.setKeepAliveSeconds(keepAliveSeconds); + // 绾跨▼姹犲鎷掔粷浠诲姟(鏃犵嚎绋嬪彲鐢�)鐨勫鐞嗙瓥鐣� + executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); + return executor; + } + + /** + * 鎵ц鍛ㄦ湡鎬ф垨瀹氭椂浠诲姟 + */ + @Bean(name = "scheduledExecutorService") + protected ScheduledExecutorService scheduledExecutorService() + { + return new ScheduledThreadPoolExecutor(corePoolSize, + new BasicThreadFactory.Builder().namingPattern("schedule-pool-%d").daemon(true).build()) + { + @Override + protected void afterExecute(Runnable r, Throwable t) + { + super.afterExecute(r, t); + Threads.printException(r, t); + } + }; + } +} diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/utils/Threads.java b/framework/src/main/java/com/yuanchu/limslaboratory/utils/Threads.java new file mode 100644 index 0000000..6ec69b3 --- /dev/null +++ b/framework/src/main/java/com/yuanchu/limslaboratory/utils/Threads.java @@ -0,0 +1,96 @@ +package com.yuanchu.limslaboratory.utils; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.concurrent.*; + +/** + * 绾跨▼鐩稿叧宸ュ叿绫�. + * + * @author 寮犲 + */ +public class Threads +{ + private static final Logger logger = LoggerFactory.getLogger(Threads.class); + + /** + * sleep绛夊緟,鍗曚綅涓烘绉� + */ + public static void sleep(long milliseconds) + { + try + { + Thread.sleep(milliseconds); + } + catch (InterruptedException e) + { + return; + } + } + + /** + * 鍋滄绾跨▼姹� + * 鍏堜娇鐢╯hutdown, 鍋滄鎺ユ敹鏂颁换鍔″苟灏濊瘯瀹屾垚鎵�鏈夊凡瀛樺湪浠诲姟. + * 濡傛灉瓒呮椂, 鍒欒皟鐢╯hutdownNow, 鍙栨秷鍦╳orkQueue涓璓ending鐨勪换鍔�,骞朵腑鏂墍鏈夐樆濉炲嚱鏁�. + * 濡傛灉浠嶄汉瓒呮檪锛屽墖寮峰埗閫�鍑�. + * 鍙﹀鍦╯hutdown鏃剁嚎绋嬫湰韬璋冪敤涓柇鍋氫簡澶勭悊. + */ + public static void shutdownAndAwaitTermination(ExecutorService pool) + { + if (pool != null && !pool.isShutdown()) + { + pool.shutdown(); + try + { + if (!pool.awaitTermination(120, TimeUnit.SECONDS)) + { + pool.shutdownNow(); + if (!pool.awaitTermination(120, TimeUnit.SECONDS)) + { + logger.info("Pool did not terminate"); + } + } + } + catch (InterruptedException ie) + { + pool.shutdownNow(); + Thread.currentThread().interrupt(); + } + } + } + + /** + * 鎵撳嵃绾跨▼寮傚父淇℃伅 + */ + public static void printException(Runnable r, Throwable t) + { + if (t == null && r instanceof Future<?>) + { + try + { + Future<?> future = (Future<?>) r; + if (future.isDone()) + { + future.get(); + } + } + catch (CancellationException ce) + { + t = ce; + } + catch (ExecutionException ee) + { + t = ee.getCause(); + } + catch (InterruptedException ie) + { + Thread.currentThread().interrupt(); + } + } + if (t != null) + { + logger.error(t.getMessage(), t); + } + } +} diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/ClassifyController.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/ClassifyController.java index 614814b..b5ae047 100644 --- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/ClassifyController.java +++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/ClassifyController.java @@ -36,11 +36,11 @@ public Result<?> addClassifyInformation(@RequestBody Classify classify) { Integer isAddClassifySuccess = classifyService.addClassifyInformation(classify); if (isAddClassifySuccess == 1) { - return Result.success("娣诲姞鍒嗙被銆�"+ classify.getSonName() +"銆戞垚鍔燂紒"); + return Result.success("1-$娣诲姞鍒嗙被銆�"+ classify.getSonName() +"銆戞垚鍔燂紒"); } else if (isAddClassifySuccess == 2) { - return Result.fail("鎶辨瓑閲嶅娣诲姞鍒嗙被鍚嶇О銆�"+ classify.getSonName() +"銆戯紝娣诲姞澶辫触锛�"); + return Result.success("2-$鎶辨瓑閲嶅娣诲姞鍒嗙被鍚嶇О銆�"+ classify.getSonName() +"銆戯紝娣诲姞澶辫触锛�"); } - return Result.fail("娣诲姞鍒嗙被銆�"+ classify.getSonName() +"銆戝け璐ワ紒"); + return Result.success("0-$娣诲姞鍒嗙被銆�"+ classify.getSonName() +"銆戝け璐ワ紒"); } @ApiOperation("鍒嗙被渚ц竟鏍忓垪琛細濡傛灉sonName涓虹┖锛屽垯甯︾潃father_name鐨処d杩涜鐐瑰嚮鎿嶄綔") diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/ClassifyMapper.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/ClassifyMapper.java index 4d2856c..7d216c5 100644 --- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/ClassifyMapper.java +++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/ClassifyMapper.java @@ -13,4 +13,6 @@ */ public interface ClassifyMapper extends BaseMapper<Classify> { + Classify selectOneByName(Classify classify); + } diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ClassifyServiceImpl.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ClassifyServiceImpl.java index 66d8c86..45f2bfb 100644 --- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ClassifyServiceImpl.java +++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ClassifyServiceImpl.java @@ -1,5 +1,6 @@ package com.yuanchu.limslaboratory.service.impl; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.yuanchu.limslaboratory.pojo.Classify; @@ -29,12 +30,13 @@ @Override public Integer addClassifyInformation(Classify classify) { - LambdaQueryWrapper<Classify> wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(Classify::getFatherName, classify.getFatherName()); - wrapper.eq(Classify::getSonName, classify.getSonName()); - wrapper.eq(Classify::getState, 1); - Classify classify1 = classifyMapper.selectOne(wrapper); + //LambdaQueryWrapper<Classify> wrapper = new LambdaQueryWrapper<>(); + //wrapper.eq(Classify::getFatherName, classify.getFatherName()); + //wrapper.eq(Classify::getSonName, classify.getSonName()); + //wrapper.eq(Classify::getState, 1); + Classify classify1 = classifyMapper.selectOneByName(classify); if (ObjectUtils.isEmpty(classify1)){ + classify.setCreateTime(DateUtil.date()); return classifyMapper.insert(classify); } else { return 2; diff --git a/laboratory-server/src/main/resources/mapper/ClassifyMapper.xml b/laboratory-server/src/main/resources/mapper/ClassifyMapper.xml index f6e5f1c..41552bc 100644 --- a/laboratory-server/src/main/resources/mapper/ClassifyMapper.xml +++ b/laboratory-server/src/main/resources/mapper/ClassifyMapper.xml @@ -2,4 +2,21 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.yuanchu.limslaboratory.mapper.ClassifyMapper"> + <select id="selectOneByName" resultType="com.yuanchu.limslaboratory.pojo.Classify"> + SELECT id, + father_name, + son_name, + state, + create_time, + update_time, + version + FROM classify + WHERE state = 1 + <if test="fatherName!=null and fatherName!=''"> + AND father_name = #{fatherName} + </if> + <if test="sonName!=null and sonName!=''"> + and son_name =#{sonName} + </if> + </select> </mapper> diff --git a/pom.xml b/pom.xml index c9ca960..bc21e3d 100644 --- a/pom.xml +++ b/pom.xml @@ -37,7 +37,7 @@ <openfeign.version>3.1.3</openfeign.version> <feign-okhttp.version>11.0</feign-okhttp.version> <shiro.version>1.5.3</shiro.version> - + <commons.lang3>3.12.0</commons.lang3> <!-- 鎵撳寘鍚庡鍑虹殑璺緞 --> <package.path>${project.build.directory}/LIMS</package.path> </properties> -- Gitblit v1.9.3