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