From d0a6fc23f31f924cb1744397478dc4c7c57c04e1 Mon Sep 17 00:00:00 2001
From: XiaoRuby <3114200645@qq.com>
Date: 星期六, 19 八月 2023 09:58:40 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
cnas-server/src/main/java/com/yuanchu/limslaboratory/service/impl/CnasAnnualPlanServiceImpl.java | 92 +
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/NonConformingFeedbackServiceImpl.java | 34
cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/CnasAnnualPlanVo.java | 20
cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/CnasAnnualPlan.java | 86 +
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/PlanService.java | 23
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/NonConformanceReviewServiceImpl.java | 42
sys/src/test/java/com/yuanchu/limslaboratory/SysApplicationTests.java | 168 +++
laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/ClassifyMapper.java | 4
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/ReportMapper.java | 4
laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MeteringPlanServiceImpl.java | 55
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportAuditingServiceImpl.java | 37
cnas-server/src/main/java/com/yuanchu/limslaboratory/controller/CnasSatisfactionSurveyController.java | 63 +
sys/src/main/java/com/yuanchu/limslaboratory/CodeGenerator.java | 16
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/NonConformanceReviewService.java | 20
laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MeteringPlanController.java | 33
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/NonConformingFeedbackService.java | 19
cnas-server/src/main/java/com/yuanchu/limslaboratory/controller/CnasAnnualPlanController.java | 99 +
cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/CnasSatisfactionSurvey.java | 143 ++
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/NonConformanceReviewDto.java | 37
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/NonConformingFeedbackDto.java | 35
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/NonConformanceReviewMapper.java | 20
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/NonConformanceReviewVo.java | 30
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/ReportAuditingService.java | 6
cnas-server/src/main/resources/mapper/CnasAnnualPlanMapper.xml | 29
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/LimitPage.java | 20
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java | 20
user-server/src/main/resources/mapper/UserMapper.xml | 2
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/NonConformanceReviewController.java | 35
laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/MeteringPlanMapper.java | 26
cnas-server/src/main/java/com/yuanchu/limslaboratory/service/impl/CnasSatisfactionSurveyServiceImpl.java | 206 +++
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportController.java | 3
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/PlanController.java | 47
inspection-server/src/main/resources/mapper/NonConformingFeedbackMapper.xml | 35
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MeteringPlanAndInfo.java | 52
laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ClassifyServiceImpl.java | 14
framework/src/main/java/com/yuanchu/limslaboratory/utils/MultipartFileToFileUtil.java | 70 +
cnas-server/src/main/resources/mapper/CnasSatisfactionSurveyMapper.xml | 38
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInfoAndIns.java | 48
inspection-server/src/main/resources/mapper/ReportMapper.xml | 57 +
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInformation.java | 3
user-server/src/main/java/com/yuanchu/limslaboratory/vo/PagePersonnelVo.java | 2
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/NonConformingFeedbackMapper.java | 24
inspection-server/src/main/resources/mapper/PlanMapper.xml | 40
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportAuditingVo.java | 6
standard-server/src/main/resources/mapper/MaterialMapper.xml | 26
pom.xml | 3
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportAuditingController.java | 18
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/PlanVo.java | 54 +
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java | 2
cnas-server/src/main/java/com/yuanchu/limslaboratory/service/CnasAnnualPlanService.java | 38
cnas-server/src/main/java/com/yuanchu/limslaboratory/mapper/CnasSatisfactionSurveyMapper.java | 17
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/NonConformingFeedbackController.java | 35
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/NonConformanceReview.java | 102 +
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/NonConformingFeedbackVo.java | 32
framework/src/main/java/com/yuanchu/limslaboratory/utils/ThreadPoolConfig.java | 62 +
framework/pom.xml | 13
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetPlanMeasureInstrumentDto.java | 25
laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml | 183 +++
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MeteringPlanAndInfoAndIns.java | 22
cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/CnasSatisfactionSurveyPageDto.java | 35
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportVo.java | 4
cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/CnasSatisfactionSurveyVo.java | 29
laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MetricalInformationServiceImpl.java | 1
user-server/src/main/java/com/yuanchu/limslaboratory/pojo/User.java | 2
laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MeteringPlanService.java | 14
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java | 13
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/PlanMapper.java | 14
sys/src/main/resources/application-dev.yml | 14
framework/src/main/java/com/yuanchu/limslaboratory/utils/Threads.java | 96 +
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/SelectMeteringPlanDto.java | 25
framework/src/main/java/com/yuanchu/limslaboratory/utils/MyUtil.java | 6
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/SelectMeasurementLedgerDto.java | 28
/dev/null | 37
laboratory-server/src/main/resources/mapper/MetricalInformationMapper.xml | 1
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java | 61 +
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Report.java | 8
user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java | 5
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportServiceImpl.java | 4
cnas-server/src/main/java/com/yuanchu/limslaboratory/mapper/CnasAnnualPlanMapper.java | 26
laboratory-server/src/main/resources/mapper/ClassifyMapper.xml | 8
sys/pom.xml | 14
cnas-server/src/main/java/com/yuanchu/limslaboratory/service/CnasSatisfactionSurveyService.java | 42
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/NonConformingFeedback.java | 53 +
cnas-server/pom.xml | 81 +
laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/ClassifyController.java | 6
85 files changed, 2,971 insertions(+), 151 deletions(-)
diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index 35410ca..0000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-# 榛樿蹇界暐鐨勬枃浠�
-/shelf/
-/workspace.xml
-# 鍩轰簬缂栬緫鍣ㄧ殑 HTTP 瀹㈡埛绔姹�
-/httpRequests/
-# Datasource local storage ignored files
-/dataSources/
-/dataSources.local.xml
diff --git a/.idea/aws.xml b/.idea/aws.xml
deleted file mode 100644
index b63b642..0000000
--- a/.idea/aws.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="accountSettings">
- <option name="activeRegion" value="us-east-1" />
- <option name="recentlyUsedRegions">
- <list>
- <option value="us-east-1" />
- </list>
- </option>
- </component>
-</project>
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
deleted file mode 100644
index 87180da..0000000
--- a/.idea/compiler.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="CompilerConfiguration">
- <annotationProcessing>
- <profile default="true" name="Default" enabled="true" />
- <profile name="Maven default annotation processors profile" enabled="true">
- <sourceOutputDir name="target/generated-sources/annotations" />
- <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
- <outputRelativeToContentRoot value="true" />
- <module name="inspection-server" />
- <module name="framework" />
- <module name="sys" />
- <module name="standard-server" />
- <module name="laboratory-server" />
- <module name="user-server" />
- </profile>
- </annotationProcessing>
- </component>
- <component name="JavacSettings">
- <option name="ADDITIONAL_OPTIONS_OVERRIDE">
- <module name="framework" options="-parameters" />
- <module name="inspection-server" options="-parameters" />
- <module name="laboratory-server" options="-parameters" />
- <module name="standard-server" options="-parameters" />
- <module name="sys" options="-parameters" />
- <module name="user-server" options="-parameters" />
- </option>
- </component>
-</project>
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
deleted file mode 100644
index 343cd9b..0000000
--- a/.idea/encodings.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="Encoding" defaultCharsetForPropertiesFiles="UTF-8">
- <file url="file://$PROJECT_DIR$/framework/src/main/java" charset="UTF-8" />
- <file url="file://$PROJECT_DIR$/inspection-server/src/main/java" charset="UTF-8" />
- <file url="file://$PROJECT_DIR$/laboratory-server/src/main/java" charset="UTF-8" />
- <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
- <file url="file://$PROJECT_DIR$/standard-server/src/main/java" charset="UTF-8" />
- <file url="file://$PROJECT_DIR$/sys/src/main/java" charset="UTF-8" />
- <file url="file://$PROJECT_DIR$/user-server/src/main/java" charset="UTF-8" />
- <file url="PROJECT" charset="UTF-8" />
- </component>
-</project>
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
deleted file mode 100644
index 980588c..0000000
--- a/.idea/jarRepositories.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="RemoteRepositoriesConfiguration">
- <remote-repository>
- <option name="id" value="central" />
- <option name="name" value="Maven Central repository" />
- <option name="url" value="https://repo1.maven.org/maven2" />
- </remote-repository>
- <remote-repository>
- <option name="id" value="jboss.community" />
- <option name="name" value="JBoss Community repository" />
- <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
- </remote-repository>
- <remote-repository>
- <option name="id" value="central" />
- <option name="name" value="Central Repository" />
- <option name="url" value="http://maven.aliyun.com/nexus/content/groups/public" />
- </remote-repository>
- </component>
-</project>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index 132404b..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="ExternalStorageConfigurationManager" enabled="true" />
- <component name="MavenProjectsManager">
- <option name="originalFiles">
- <list>
- <option value="$PROJECT_DIR$/pom.xml" />
- </list>
- </option>
- </component>
- <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
- <output url="file://$PROJECT_DIR$/out" />
- </component>
-</project>
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 35eb1dd..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="VcsDirectoryMappings">
- <mapping directory="" vcs="Git" />
- </component>
-</project>
\ No newline at end of file
diff --git a/cnas-server/pom.xml b/cnas-server/pom.xml
new file mode 100644
index 0000000..7931358
--- /dev/null
+++ b/cnas-server/pom.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>lims-laboratory</artifactId>
+ <groupId>com.yuanchu</groupId>
+ <version>0.0.1-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>com.yuanchu.limslaboratory</groupId>
+ <artifactId>cnas-server</artifactId>
+ <packaging>jar</packaging>
+
+ <properties>
+ <maven.compiler.source>8</maven.compiler.source>
+ <maven.compiler.target>8</maven.compiler.target>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>com.yunchu.limslaboratory</groupId>
+ <artifactId>framework</artifactId>
+ <version>${project.parent.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>cn.hutool</groupId>
+ <artifactId>hutool-all</artifactId>
+ <version>5.8.12</version>
+ </dependency>
+ <!--搴曚笅鍥涗釜閮芥槸poi渚濊禆-->
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi</artifactId>
+ <version>4.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi-ooxml</artifactId>
+ <version>4.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi-ooxml-schemas</artifactId>
+ <version>4.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi-scratchpad</artifactId>
+ <version>4.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>com.yunchu.limslaboratory</groupId>
+ <artifactId>user-server</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi</artifactId>
+ <version>4.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi-ooxml</artifactId>
+ <version>4.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi-ooxml-schemas</artifactId>
+ <version>4.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi-scratchpad</artifactId>
+ <version>4.1.2</version>
+ </dependency>
+ </dependencies>
+
+
+</project>
\ No newline at end of file
diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/controller/CnasAnnualPlanController.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/controller/CnasAnnualPlanController.java
new file mode 100644
index 0000000..4b410c5
--- /dev/null
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/controller/CnasAnnualPlanController.java
@@ -0,0 +1,99 @@
+package com.yuanchu.limslaboratory.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.limslaboratory.pojo.CnasAnnualPlan;
+import com.yuanchu.limslaboratory.pojo.vo.CnasAnnualPlanVo;
+import com.yuanchu.limslaboratory.service.CnasAnnualPlanService;
+import com.yuanchu.limslaboratory.utils.JackSonUtil;
+import com.yuanchu.limslaboratory.utils.RedisUtil;
+import com.yuanchu.limslaboratory.vo.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * <p>
+ * 瀹℃牳骞村害璁″垝琛� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-10 11:50:11
+ */
+@Api(tags = "CNAS绠$悊-->瀹℃牳骞村害璁″垝")
+@RestController
+@RequestMapping("/cnasAnnualPlan")
+public class CnasAnnualPlanController {
+
+ @Resource
+ private CnasAnnualPlanService cnasAnnualPlanService;
+
+ @ApiOperation(value = "鏌ヨ瀹℃煡璁″垝")
+ @ApiImplicitParams(value = {
+ @ApiImplicitParam(name = "page", value = "鍒濆椤�", dataTypeClass = Integer.class, required = true),
+ @ApiImplicitParam(name = "pageSize", value = "姣忎竴椤垫暟閲�", dataTypeClass = Integer.class, required = true),
+ @ApiImplicitParam(name = "planTime", value = "妫�楠屽紑濮嬫椂闂�", dataTypeClass = Date.class),
+ })
+ @GetMapping("/selectAllList")
+ public Result selectAllList(Integer page, Integer pageSize, @DateTimeFormat(pattern = "yyyy-MM") Date planTime) {
+ IPage<CnasAnnualPlanVo> reportPage = cnasAnnualPlanService.selectAllList(new Page(page, pageSize), planTime);
+ Map<String, Object> map = new HashMap<>();
+ map.put("total", reportPage.getTotal());
+ map.put("row", reportPage.getRecords());
+ return Result.success(map);
+ }
+
+ @ApiOperation(value = "鏂板瀹℃煡璁″垝")
+ @PostMapping("/addCnasAnnualPlan")
+ @ApiImplicitParams(value = {
+ @ApiImplicitParam(name = "CnasAnnualPlan", value = "瀹℃煡瀵硅薄", dataTypeClass = Integer.class, required = true)
+ })
+ public Result addCnasAnnualPlan(@RequestHeader("X-Token") String token, @RequestBody CnasAnnualPlan cnasAnnualPlan) throws Exception {
+ Object object = RedisUtil.get(token);
+ Map<String, Object> unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class);
+ String name = (String) unmarshal.get("name");
+ cnasAnnualPlan.setKeyboarder(name);
+ //todo:鑾峰彇name鏈夐棶棰�
+ cnasAnnualPlanService.save(cnasAnnualPlan);
+ return Result.success();
+ }
+
+
+ @ApiOperation(value = "涓婁紶闄勪欢")
+ @PostMapping("/addAccessory")
+ @ApiImplicitParams(value = {
+ @ApiImplicitParam(name = "auditTime", value = "瀹℃牳鏃ユ湡", dataTypeClass = Date.class, required = true),
+ @ApiImplicitParam(name = "file", value = "闄勪欢鏂囦欢", dataTypeClass = MultipartFile.class, required = true)
+ })
+ public Result addAccessory(@RequestHeader("X-Token") String token, Date auditTime, MultipartFile file) throws Exception {
+ //瑙f瀽褰撳墠鐧诲綍鐢ㄦ埛
+ Object object = RedisUtil.get(token);
+ Map<String, Object> unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class);
+ String name = (String) unmarshal.get("name");
+ cnasAnnualPlanService.addAccessory(name, auditTime, file);
+ return Result.success();
+ }
+
+ @ApiOperation(value = "鍒犻櫎骞村害璁″垝")
+ @GetMapping("/deleteCnasAnnualPlan")
+ @ApiImplicitParams(value = {
+ @ApiImplicitParam(name = "planId", value = "瀹℃牳鏃ユ湡", dataTypeClass = Integer.class, required = true)
+ })
+ public Result deleteCnasAnnualPlan(Integer planId) {
+ Integer isDeleteSuccess = cnasAnnualPlanService.deleteCnasAnnualPlan(planId);
+ if (isDeleteSuccess == 1){
+ return Result.success("鍒犻櫎鎴愬姛");
+ } else {
+ return Result.fail("鍒犻櫎澶辫触");
+ }
+ }
+}
diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/controller/CnasSatisfactionSurveyController.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/controller/CnasSatisfactionSurveyController.java
new file mode 100644
index 0000000..47b9854
--- /dev/null
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/controller/CnasSatisfactionSurveyController.java
@@ -0,0 +1,63 @@
+package com.yuanchu.limslaboratory.controller;
+
+import com.yuanchu.limslaboratory.pojo.CnasSatisfactionSurvey;
+import com.yuanchu.limslaboratory.pojo.Dto.CnasSatisfactionSurveyPageDto;
+import com.yuanchu.limslaboratory.pojo.vo.CnasSatisfactionSurveyVo;
+import com.yuanchu.limslaboratory.service.CnasSatisfactionSurveyService;
+import com.yuanchu.limslaboratory.vo.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.util.Map;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/10
+ */
+@RestController
+@RequestMapping("/cnasSatisfactionSurvey")
+@Api(tags = "CNAS-->婊℃剰搴﹁皟鏌�")
+public class CnasSatisfactionSurveyController {
+
+ @Resource
+ private CnasSatisfactionSurveyService service;
+
+ /**
+ * 鑾峰彇婊℃剰搴﹁皟鏌ヤ俊鎭�
+ * @return
+ */
+ @ApiOperation(value = "鑾峰彇婊℃剰搴﹁皟鏌�")
+ @GetMapping("/getCnasSatisfactionSurvey")
+ public Result<CnasSatisfactionSurveyVo>getCnasSatisfactionSurvey(CnasSatisfactionSurveyPageDto cnasSatisfactionSurveyPageDto){
+ return Result.success(service.getCnasSatisfactionSurvey(cnasSatisfactionSurveyPageDto));
+ }
+
+ @GetMapping("/getFillNameAndId")
+ @ApiOperation(value = "鑾峰彇褰撳墠褰曞彇浜�")
+ public Result<Map>getFillNameAndId(@RequestHeader("X-Token")String token){
+ return Result.success(service.getFillNameAndTd(token));
+ }
+
+ /**
+ * 闄勪欢涓婁紶
+ * @param file
+ * @return
+ */
+ @ApiOperation(value = "闄勪欢涓婁紶")
+ @PostMapping(value = "/uploadFile",consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = {MediaType.APPLICATION_JSON_VALUE})
+ public Result<Map>wordParse(MultipartFile file){
+ return Result.success(service.wordParse(file));
+ }
+
+ @ApiOperation(value = "婊℃剰搴﹁皟鏌ユ柊澧�")
+ @PostMapping("/addSurvey")
+ public Result<Boolean>addSurvey(@RequestBody CnasSatisfactionSurvey cnasSatisfactionSurvey){
+ System.out.println(cnasSatisfactionSurvey+"=============");
+ return Result.success(service.addSurvey(cnasSatisfactionSurvey));
+ }
+
+}
diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/mapper/CnasAnnualPlanMapper.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/mapper/CnasAnnualPlanMapper.java
new file mode 100644
index 0000000..c34d271
--- /dev/null
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/mapper/CnasAnnualPlanMapper.java
@@ -0,0 +1,26 @@
+package com.yuanchu.limslaboratory.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.limslaboratory.pojo.CnasAnnualPlan;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yuanchu.limslaboratory.pojo.vo.CnasAnnualPlanVo;
+
+import java.util.Date;
+
+/**
+ * <p>
+ * 瀹℃牳骞村害璁″垝琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-10 11:50:11
+ */
+public interface CnasAnnualPlanMapper extends BaseMapper<CnasAnnualPlan> {
+
+ /**
+ * 鏌ヨ瀹℃牳璁″垝
+ * @return
+ */
+ IPage<CnasAnnualPlanVo> selectAllList(Page<Object> objectPage, Integer year, Integer month);
+}
diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/mapper/CnasSatisfactionSurveyMapper.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/mapper/CnasSatisfactionSurveyMapper.java
new file mode 100644
index 0000000..585272b
--- /dev/null
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/mapper/CnasSatisfactionSurveyMapper.java
@@ -0,0 +1,17 @@
+package com.yuanchu.limslaboratory.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.limslaboratory.pojo.CnasSatisfactionSurvey;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/10
+ */
+@Repository
+public interface CnasSatisfactionSurveyMapper extends BaseMapper<CnasSatisfactionSurvey> {
+
+ IPage<CnasSatisfactionSurvey>selectCnasSatisfactionSurvey(Page<CnasSatisfactionSurvey>page, String surveyDate,String entryDate);
+}
diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/CnasAnnualPlan.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/CnasAnnualPlan.java
new file mode 100644
index 0000000..b89903d
--- /dev/null
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/CnasAnnualPlan.java
@@ -0,0 +1,86 @@
+package com.yuanchu.limslaboratory.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 瀹℃牳骞村害璁″垝琛�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-10 11:50:11
+ */
+@Data
+@TableName("cnas_annual_plan")
+@ApiModel(value="CnasAnnualPlan瀵硅薄", description="")
+public class CnasAnnualPlan implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ @ApiModelProperty(value = "涓婚敭id")
+ private Integer id;
+
+ @ApiModelProperty(value = "鎬ц川,0:鍐呭,1:绠$悊璇勫")
+ private Integer auditType;
+
+ @ApiModelProperty(value = "閮ㄩ棬")
+ private String department;
+
+ @ApiModelProperty(value = "瀹℃牳鐩殑")
+ private String auditPurpose;
+
+ @ApiModelProperty(value = "瀹℃牳缁勯暱")
+ private String auditLeader;
+
+ @ApiModelProperty(value = "瀹℃牳缁勫憳")
+ private String auditEmp;
+
+ @ApiModelProperty(value = "瀹℃牳渚濇嵁")
+ private String auditPursuant;
+
+ @ApiModelProperty(value = "瀹℃牳鑼冨洿")
+ private String auditScope;
+
+ @ApiModelProperty(value = "缂栧埗浜哄憳")
+ private String writeUser;
+
+ @ApiModelProperty(value = "褰曞叆浜哄憳")
+ private String keyboarder;
+
+ @ApiModelProperty(value = "璁″垝鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ private Date planTime;
+
+ @ApiModelProperty(value = "涓嶅悎鏍奸」鐩暟")
+ private Integer count;
+
+ @TableLogic(value = "1", delval = "0")
+ @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
+ private Integer state;
+
+ @ApiModelProperty(value = "瀹℃牳鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ private Date auditTime;
+
+ @TableField(fill = FieldFill.INSERT)
+ @ApiModelProperty(value = "缂栧埗鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ private Date createTime;
+
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Date updateTime;
+}
diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/CnasSatisfactionSurvey.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/CnasSatisfactionSurvey.java
new file mode 100644
index 0000000..e9e930a
--- /dev/null
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/CnasSatisfactionSurvey.java
@@ -0,0 +1,143 @@
+package com.yuanchu.limslaboratory.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.time.LocalDateTime;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/10
+ */
+@Data
+@TableName("cnas_satisfaction_survey")
+public class CnasSatisfactionSurvey implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 涓婚敭id
+ */
+ @TableId(value = "id", type = IdType.ASSIGN_ID)
+ private Long id;
+
+ /**
+ * 椤圭洰鍚嶇О
+ */
+ private String projectName;
+
+ /**
+ * 璋冩煡鏃ユ湡
+ */
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ private Date surveyDate;
+
+ /**
+ * 瀹㈡埛鍗曚綅鍚嶇О
+ */
+ private String userUnit;
+
+ ///**
+ // * 鏃ユ湡
+ // */
+ //@DateTimeFormat(pattern = "yyyy-MM-dd")
+ //@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ //private Date dateInfo;
+
+ /**
+ * 濉啓浜哄鍚�
+ */
+ private String fillName;
+
+ /**
+ * 鑱屼綅
+ */
+ private String post;
+
+ /**
+ * 鑱旂郴鐢佃瘽
+ */
+ private String telephone;
+
+ /**
+ * 褰曞叆鏃ユ湡
+ */
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ private Date entryDate;
+
+ /**
+ * 褰曞叆浜篿d
+ */
+ private Long userId;
+
+ /**
+ * 褰曞叆浜哄悕绉�
+ */
+ private String userName;
+
+ /**
+ * 闄勪欢鍦板潃
+ */
+ private String fileUrl;
+
+ /**
+ * 鏈嶅姟鎬佸害
+ */
+ private String serviceAttitude;
+
+ /**
+ * 鎶�鏈兘鍔�
+ */
+ private String technicalPower;
+
+ /**
+ * 妫�娴嬪伐浣�
+ */
+ private String testJob;
+
+ /**
+ * 鏀硅繘瑕佹眰
+ */
+ private String improvementRequirements;
+
+ /**
+ * 鍏朵粬琛ュ厖
+ */
+ private String otherSupplements;
+
+ @TableLogic(value = "1")
+ private Integer state;
+
+
+ @DateTimeFormat(
+ pattern = "yyyy-MM-dd HH:mm:ss"
+ )
+ @JsonFormat(
+ pattern = "yyyy-MM-dd HH:mm:ss"
+ )
+ private LocalDateTime createdTime;
+
+
+ @DateTimeFormat(
+ pattern = "yyyy-MM-dd HH:mm:ss"
+ )
+ @JsonFormat(
+ pattern = "yyyy-MM-dd HH:mm:ss"
+ )
+ private LocalDateTime updatedTime;
+
+ /**
+ * 鏀惰垂鍚堢悊鎬�
+ */
+ private String reasonableCharge;
+}
+
diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/CnasSatisfactionSurveyPageDto.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/CnasSatisfactionSurveyPageDto.java
new file mode 100644
index 0000000..3667b4f
--- /dev/null
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/CnasSatisfactionSurveyPageDto.java
@@ -0,0 +1,35 @@
+package com.yuanchu.limslaboratory.pojo.Dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.sql.Date;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/10
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="CnasSatisfactionSurveyDto", description="")
+public class CnasSatisfactionSurveyPageDto implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "褰撳墠椤�", example = "1", required = true)
+ private Long currentPage;
+
+ @ApiModelProperty(value = "鍒嗛〉澶氬皯鏉�", example = "10", required = true)
+ private Long pageNum;
+
+ @ApiModelProperty(value = "璋冩煡鏃ユ湡", example = "2020-01-02")
+ private Date surveyDate;
+
+ @ApiModelProperty(value = "褰曞叆鏃ユ湡", example = "2025-06-08")
+ private Date entryDate;
+
+}
diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/CnasAnnualPlanVo.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/CnasAnnualPlanVo.java
new file mode 100644
index 0000000..7eb4638
--- /dev/null
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/CnasAnnualPlanVo.java
@@ -0,0 +1,20 @@
+package com.yuanchu.limslaboratory.pojo.vo;
+
+import com.yuanchu.limslaboratory.pojo.CnasAnnualPlan;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class CnasAnnualPlanVo extends CnasAnnualPlan implements Serializable {
+ private static final long serialVersionUID = 1L;
+ @ApiModelProperty(value = "骞翠唤")
+ private Integer year;
+
+ @ApiModelProperty(value = "鏈堜唤")
+ private Integer month;
+
+ @ApiModelProperty(value = "瀹℃牳鐘舵��,0:鍗冲皢寮�濮�,1:瀹屾垚,2:閫炬湡")
+ private Integer auditState;
+}
diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/CnasSatisfactionSurveyVo.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/CnasSatisfactionSurveyVo.java
new file mode 100644
index 0000000..3c6a92a
--- /dev/null
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/CnasSatisfactionSurveyVo.java
@@ -0,0 +1,29 @@
+package com.yuanchu.limslaboratory.pojo.vo;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.yuanchu.limslaboratory.pojo.CnasSatisfactionSurvey;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/10
+ */
+@Data
+public class CnasSatisfactionSurveyVo implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @JsonSerialize
+ private List<CnasSatisfactionSurvey> cnasSatisfactionSurveyList;
+
+ @JsonSerialize
+ private Long total;
+
+ public CnasSatisfactionSurveyVo(List<CnasSatisfactionSurvey> cnasSatisfactionSurveyList, Long total) {
+ this.cnasSatisfactionSurveyList = cnasSatisfactionSurveyList;
+ this.total = total;
+ }
+}
diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/CnasAnnualPlanService.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/CnasAnnualPlanService.java
new file mode 100644
index 0000000..cdb11f9
--- /dev/null
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/CnasAnnualPlanService.java
@@ -0,0 +1,38 @@
+package com.yuanchu.limslaboratory.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.limslaboratory.pojo.CnasAnnualPlan;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yuanchu.limslaboratory.pojo.vo.CnasAnnualPlanVo;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.Date;
+
+/**
+ * <p>
+ * 瀹℃牳骞村害璁″垝琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-10 11:50:11
+ */
+public interface CnasAnnualPlanService extends IService<CnasAnnualPlan> {
+
+ /**
+ * 鏌ヨ瀹℃牳璁″垝
+ * @return
+ */
+ IPage<CnasAnnualPlanVo> selectAllList(Page<Object> objectPage, Date planTime);
+
+ /**
+ * 涓婁紶闄勪欢
+ */
+ void addAccessory(String name, Date auditTime, MultipartFile file);
+
+ /**
+ * 鍒犻櫎骞村害璁″垝
+ * @return
+ */
+ Integer deleteCnasAnnualPlan(Integer planId);
+}
diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/CnasSatisfactionSurveyService.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/CnasSatisfactionSurveyService.java
new file mode 100644
index 0000000..673c12d
--- /dev/null
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/CnasSatisfactionSurveyService.java
@@ -0,0 +1,42 @@
+package com.yuanchu.limslaboratory.service;
+
+import com.yuanchu.limslaboratory.pojo.CnasSatisfactionSurvey;
+import com.yuanchu.limslaboratory.pojo.Dto.CnasSatisfactionSurveyPageDto;
+import com.yuanchu.limslaboratory.pojo.vo.CnasSatisfactionSurveyVo;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.Map;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/10
+ */
+public interface CnasSatisfactionSurveyService{
+
+ /**
+ * 鑾峰彇婊℃剰搴﹁皟鏌ヤ俊鎭�
+ * @param cnasSatisfactionSurveyPageDto
+ * @return
+ */
+ CnasSatisfactionSurveyVo getCnasSatisfactionSurvey(CnasSatisfactionSurveyPageDto cnasSatisfactionSurveyPageDto);
+
+ /**
+ * 鑾峰彇褰撳墠褰曞叆浜�
+ * @return
+ */
+ Map<String, Object> getFillNameAndTd(String token);
+
+ /**
+ * 瑙f瀽word
+ * @param file
+ * @return
+ */
+ Map<String, String> wordParse(MultipartFile file);
+
+ /**
+ * 鏂板婊℃剰搴﹁皟鏌�
+ * @param cnasSatisfactionSurvey
+ * @return
+ */
+ Boolean addSurvey(CnasSatisfactionSurvey cnasSatisfactionSurvey);
+}
diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/impl/CnasAnnualPlanServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/impl/CnasAnnualPlanServiceImpl.java
new file mode 100644
index 0000000..397621f
--- /dev/null
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/impl/CnasAnnualPlanServiceImpl.java
@@ -0,0 +1,92 @@
+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.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.limslaboratory.pojo.CnasAnnualPlan;
+import com.yuanchu.limslaboratory.mapper.CnasAnnualPlanMapper;
+import com.yuanchu.limslaboratory.pojo.vo.CnasAnnualPlanVo;
+import com.yuanchu.limslaboratory.service.CnasAnnualPlanService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * <p>
+ * 瀹℃牳骞村害璁″垝琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-10 11:50:11
+ */
+@Service
+public class CnasAnnualPlanServiceImpl extends ServiceImpl<CnasAnnualPlanMapper, CnasAnnualPlan> implements CnasAnnualPlanService {
+
+ @Resource
+ private CnasAnnualPlanMapper cnasAnnualPlanMapper;
+
+ /**
+ * 鏌ヨ瀹℃牳璁″垝
+ *
+ * @return
+ */
+ @Override
+ public IPage<CnasAnnualPlanVo> selectAllList(Page<Object> objectPage, Date planTime) {
+ //鍒ゆ柇鏄惁鏈夋棩鏈�
+ Integer yearTime = null;
+ Integer monthTime = null;
+ if (planTime != null) {
+ yearTime = DateUtil.year(planTime);
+ monthTime = DateUtil.month(planTime) + 2;
+ }
+ IPage<CnasAnnualPlanVo> page = cnasAnnualPlanMapper.selectAllList(objectPage, yearTime, monthTime);
+ page.getRecords().forEach(cnasAnnualPlanVo -> {
+ //鑾峰彇璁″垝鏃堕棿
+ Date time = cnasAnnualPlanVo.getPlanTime();
+ //娣诲姞骞存湀
+ cnasAnnualPlanVo.setYear(DateUtil.year(time));
+ cnasAnnualPlanVo.setMonth(DateUtil.month(time) + 1);
+ //鍒ゆ柇瀹℃牳鐘舵��
+ //鑾峰彇褰撳墠鏃堕棿
+ Date nowDate = new Date();
+ //鑾峰彇褰撳墠鐨勫勾鏈�
+ int year = DateUtil.year(nowDate);
+ int month = DateUtil.month(nowDate) + 1;
+ if (cnasAnnualPlanVo.getAuditTime() == null && month > cnasAnnualPlanVo.getMonth() || year > cnasAnnualPlanVo.getYear()) {
+ cnasAnnualPlanVo.setAuditState(2);
+ } else if (cnasAnnualPlanVo.getAuditTime() != null) {
+ cnasAnnualPlanVo.setAuditState(1);
+ } else {
+ cnasAnnualPlanVo.setAuditState(0);
+ }
+ });
+ return page;
+ }
+
+ /**
+ * 涓婁紶闄勪欢
+ */
+ @Override
+ public void addAccessory(String name, Date auditTime, MultipartFile file) {
+ //todo: 涓婁紶闄勪欢鏈畬鎴�
+ }
+
+ /**
+ * 鍒犻櫎骞村害璁″垝
+ *
+ * @return
+ */
+ @Override
+ public Integer deleteCnasAnnualPlan(Integer planId) {
+ LambdaUpdateWrapper<CnasAnnualPlan> updateWrapper = new LambdaUpdateWrapper<>();
+ updateWrapper.eq(CnasAnnualPlan::getId, planId);
+ updateWrapper.set(CnasAnnualPlan::getState, 0);
+ return cnasAnnualPlanMapper.update(new CnasAnnualPlan(), updateWrapper);
+ }
+}
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
new file mode 100644
index 0000000..55da2b0
--- /dev/null
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/impl/CnasSatisfactionSurveyServiceImpl.java
@@ -0,0 +1,206 @@
+package com.yuanchu.limslaboratory.service.impl;
+
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.limslaboratory.mapper.CnasSatisfactionSurveyMapper;
+import com.yuanchu.limslaboratory.pojo.CnasSatisfactionSurvey;
+import com.yuanchu.limslaboratory.pojo.Dto.CnasSatisfactionSurveyPageDto;
+import com.yuanchu.limslaboratory.pojo.vo.CnasSatisfactionSurveyVo;
+import com.yuanchu.limslaboratory.service.CnasSatisfactionSurveyService;
+import com.yuanchu.limslaboratory.service.UserService;
+import com.yuanchu.limslaboratory.utils.MultipartFileToFileUtil;
+import org.apache.poi.hwpf.HWPFDocument;
+import org.apache.poi.hwpf.extractor.WordExtractor;
+import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/10
+ */
+@Service
+public class CnasSatisfactionSurveyServiceImpl implements CnasSatisfactionSurveyService {
+
+ private static final List<String> SELECT_LIST = Arrays.asList( "鈽戞弧鎰�=0", "鈽戜竴鑸�=1", "鈽戜笉婊℃剰=2");
+
+
+ @Resource
+ private CnasSatisfactionSurveyMapper mapper;
+
+ @Resource
+ private UserService userService;
+
+ @Override
+ public CnasSatisfactionSurveyVo getCnasSatisfactionSurvey(CnasSatisfactionSurveyPageDto cnasSatisfactionSurveyPageDto) {
+ Page<CnasSatisfactionSurvey>page=new Page<>(cnasSatisfactionSurveyPageDto.getCurrentPage(), cnasSatisfactionSurveyPageDto.getPageNum(),true);
+ String surveyDate=DateUtil.format(cnasSatisfactionSurveyPageDto.getSurveyDate(), "yyyyMMdd");
+ String entryDate=DateUtil.format(cnasSatisfactionSurveyPageDto.getEntryDate(), "yyyyMMdd");;
+ IPage<CnasSatisfactionSurvey> cnasSatisfactionSurveyIPage = mapper.selectCnasSatisfactionSurvey(page,surveyDate,entryDate);
+ return new CnasSatisfactionSurveyVo(cnasSatisfactionSurveyIPage.getRecords(),cnasSatisfactionSurveyIPage.getTotal());
+ }
+
+ /**
+ * 鑾峰彇鐢ㄦ埛淇℃伅
+ * @param token
+ * @return
+ */
+ @Override
+ public Map<String, Object> getFillNameAndTd(String token) {
+ Map<String, Object> userInfo = userService.getUserInfo(token);
+ return userInfo;
+ }
+
+ @Override
+ public Map<String, String> wordParse(MultipartFile file) {
+ Map<String, String>result=null;
+ File multipartFileToFile = null;
+ try {
+ multipartFileToFile=MultipartFileToFileUtil.multipartFileToFile(file);
+ result=parseWord(multipartFileToFile);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }finally {
+ MultipartFileToFileUtil.delteTempFile(multipartFileToFile);
+ }
+ return result;
+ }
+
+ @Override
+ public Boolean addSurvey(CnasSatisfactionSurvey cnasSatisfactionSurvey) {
+ cnasSatisfactionSurvey.setCreatedTime(DateUtil.toLocalDateTime(DateUtil.date()));
+ return mapper.insert(cnasSatisfactionSurvey)>1;
+ }
+
+ /**
+ * 瑙f瀽word
+ * @param file
+ * @return
+ */
+ public static Map<String,String> parseWord(File file){
+ String info = "";
+ try {
+ FileInputStream fis = new FileInputStream(file);
+ String[] split = file.getName().split("\\.");
+ if ("doc".equals(split[split.length-1])) {
+ // 璇诲彇doc鏂囦欢
+ HWPFDocument doc = new HWPFDocument(fis);
+ WordExtractor docExtractor = new WordExtractor(doc);
+ String text = docExtractor.getText();
+ info = text.trim();
+ docExtractor.close();
+ } else if ("docx".equals(split[split.length-1])) {
+ // 璇诲彇docx鏂囦欢
+ XWPFDocument docx = new XWPFDocument(fis);
+ XWPFWordExtractor docxExtractor = new XWPFWordExtractor(docx);
+ String text = docxExtractor.getText();
+ System.out.println("docx:");
+ info = text.trim();
+ docxExtractor.close();
+ } else {
+ System.out.println("涓嶆槸word鏂囦欢");
+ }
+ fis.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ List<String> infoList = new ArrayList<String>();
+ String[] split = info.split("\n");
+ for (int i = 0; i < split.length; i++) {
+ if (i > 2) {
+ infoList.add(split[i]
+ .replaceAll("\r","")
+ .replaceAll(" ","")
+ .replaceAll("\t","")
+ .replaceAll("\\s","").replaceAll(" +",""));
+ }
+ }
+ Map<String, String> result = new HashMap<>();
+ //绗竴琛�
+ String unitName="鍗曚綅鍚嶇ОUnitname";
+ String projectName="椤圭洰鍚嶇ОProjectname";
+ String[] one = infoList.get(0).replace(unitName, "").split(projectName);
+ result.put("unitName",one[0]);
+ result.put("projectName",one[1]);
+ String fillName="濉〃浜哄鍚嶏紡鏃ユ湡Name/dateofthepersonfillingintheform";
+ String post="鑱屼綅Posts";
+ String telephone="鑱旂郴鐢佃瘽Contactnumber";
+ String email="閭紪Zip";
+ String[] split1 = infoList.get(1).replace(fillName, "").split(post);
+ result.put("fillName",split1[0]);
+ String[] split2 = split1[1].split(telephone);
+ result.put("post",split2[0]);
+ String[] split3 = split2[1].split(email);
+ result.put("telephone",split3[0]);
+ result.put("email",split3[1]);
+ //绗簩琛�
+ String serviceAttitude="鏈嶅姟鎬佸害Serviceattitude";
+ //鏈嶅姟鎬佸害鍜屽缓璁�
+ String two = getSelectAndAdvise(infoList.get(2), serviceAttitude);
+ result.put("serviceAttitude",two);
+ //绗笁琛�
+ String technicalPower="鎶�鏈兘鍔汿echnicalcompetence";
+ String three = getSelectAndAdvise(infoList.get(3), technicalPower);
+ result.put("technicalPower",three);
+ //绗洓琛�
+ String testJob="妫�娴嬪伐浣淚nspectionwork";
+ String four = getSelectAndAdvise(infoList.get(4), testJob);
+ result.put("testJob",four);
+ //绗簲琛�
+ String reasonableCharge="鏀惰垂鍚堢悊鎬easonablefees";
+ String five = getSelectAndAdvise(infoList.get(5), reasonableCharge);
+ result.put("reasonableCharge",five);
+ //绗叚琛�
+ String improvementRequirements="鏀硅繘鐨勮姹傦細";
+ String requirementsForImprovement="Requirementsforimprovement:";
+ String six = infoList.get(6).replace(improvementRequirements, "").replace(requirementsForImprovement, "");
+ result.put("improvementRequirements",six);
+ //绗竷琛�
+ String otherSupplements="鎮ㄥ鎴戜滑鐨勫笇鏈涳細";
+ String otherEnglish="Whatyouwantfromus:";
+ String seven = infoList.get(7).replace(otherSupplements, "").replace(otherEnglish, "");
+ result.put("otherSupplements",seven);
+ return result;
+ }
+
+
+ /**
+ * 鑾峰彇閫夋嫨浠ュ強寤鸿
+ * @param str
+ * @param type
+ * @return
+ */
+ public static String getSelectAndAdvise(String str,String type){
+ String adviseInfo="寤鸿锛�";
+ String suggestion="Suggestion:";
+ String satisfied="Satisfied";
+ String general="General";
+ String dissatisfied="Dissatisfied";
+ String[] split4 = str.replace(type, "").replace(suggestion, "").split(adviseInfo);
+ List<String>select=new ArrayList<>();
+ String advise=split4[1];
+ String[] split5 = split4[0].split(satisfied);
+ select.add(split5[0]);
+ String[] split6 = split5[1].split(general);
+ select.add(split6[0]);
+ select.add(split6[1].replace(dissatisfied,""));
+ String selected = getSelected(select);
+ return selected+"/$"+advise;
+ }
+
+ public static String getSelected(List<String> select){
+ String collect = SELECT_LIST.stream().filter(item -> select.stream()
+ .map(e -> e).collect(Collectors.toList())
+ .contains(item.split("=")[0])).collect(Collectors.joining());
+ return collect.split("=")[1];
+ }
+}
diff --git a/cnas-server/src/main/resources/mapper/CnasAnnualPlanMapper.xml b/cnas-server/src/main/resources/mapper/CnasAnnualPlanMapper.xml
new file mode 100644
index 0000000..8f53657
--- /dev/null
+++ b/cnas-server/src/main/resources/mapper/CnasAnnualPlanMapper.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yuanchu.limslaboratory.mapper.CnasAnnualPlanMapper">
+ <!--鏌ヨ瀹℃牳璁″垝-->
+ <select id="selectAllList" resultType="com.yuanchu.limslaboratory.pojo.vo.CnasAnnualPlanVo">
+ select id,
+ audit_type,
+ department,
+ audit_purpose,
+ audit_leader,
+ audit_emp,
+ audit_pursuant,
+ audit_scope,
+ write_user,
+ keyboarder,
+ plan_time,
+ count,
+ state,
+ audit_time,
+ update_time
+ from cnas_annual_plan
+ where state = 1
+ <if test="year != null and month != null">
+ and year(plan_time) = #{year}
+ and month(plan_time) = #{month}
+ </if>
+ order by id desc
+ </select>
+</mapper>
diff --git a/cnas-server/src/main/resources/mapper/CnasSatisfactionSurveyMapper.xml b/cnas-server/src/main/resources/mapper/CnasSatisfactionSurveyMapper.xml
new file mode 100644
index 0000000..3302613
--- /dev/null
+++ b/cnas-server/src/main/resources/mapper/CnasSatisfactionSurveyMapper.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.yuanchu.limslaboratory.mapper.CnasSatisfactionSurveyMapper">
+
+ <select id="selectCnasSatisfactionSurvey"
+ resultType="CnasSatisfactionSurvey">
+ SELECT
+ css.id id,
+ css.project_name projectName,
+ css.survey_date surveyDate,
+ css.user_unit userUnit,
+ css.`fill_name` fillName,
+ css.post post,
+ css.telephone telephone,
+ css.entry_date entryDate,
+ u.`name` userName,
+ css.service_attitude serviceAttitude,
+ css.technical_power technicalPower,
+ css.test_job testJob,
+ css.reasonable_charge reasonableCharge,
+ css.improvement_requirements improvementRequirements,
+ css.other_supplements otherSupplements
+ FROM
+ cnas_satisfaction_survey css,
+ `user` u
+ WHERE
+ 1 = 1
+ AND css.user_id = u.id
+ and css.state=1
+ <if test="surveyDate!=null">
+ and date_format(css.survey_date,'%Y%m%d') = ${surveyDate}
+ </if>
+ <if test="entryDate!=null">
+ and date_format(css.entry_date,'%Y%m%d') = ${entryDate}
+ </if>
+ order by css.id Desc
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/framework/pom.xml b/framework/pom.xml
index 9a79668..cfae3f2 100644
--- a/framework/pom.xml
+++ b/framework/pom.xml
@@ -12,7 +12,6 @@
<version>0.0.1-SNAPSHOT</version>
<name>framework</name>
<description>framework</description>
-
<packaging>jar</packaging>
<dependencies>
<!--鏁版嵁搴撹繛鎺ユ睜-->
@@ -20,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>
@@ -38,6 +42,11 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
+ <dependency>
+ <groupId>cn.hutool</groupId>
+ <artifactId>hutool-all</artifactId>
+ <version>5.8.18</version>
+ </dependency>
</dependencies>
</project>
diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/utils/MultipartFileToFileUtil.java b/framework/src/main/java/com/yuanchu/limslaboratory/utils/MultipartFileToFileUtil.java
new file mode 100644
index 0000000..a867564
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/limslaboratory/utils/MultipartFileToFileUtil.java
@@ -0,0 +1,70 @@
+package com.yuanchu.limslaboratory.utils;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+/**
+ * @Author 寮犲
+ * @Date 2022/8/5
+ */
+@Slf4j
+public class MultipartFileToFileUtil {
+ /**
+ * MultipartFile 杞� File
+ *
+ * @param file
+ * @throws Exception
+ */
+ public static File multipartFileToFile(MultipartFile file) throws Exception {
+
+ File toFile = null;
+ if (file.equals("") || file.getSize() <= 0) {
+ file = null;
+ } else {
+ InputStream ins = null;
+ ins = file.getInputStream();
+ toFile = new File(file.getOriginalFilename());
+ inputStreamToFile(ins, toFile);
+ ins.close();
+ }
+ return toFile;
+ }
+
+ //鑾峰彇娴佹枃浠�
+ private static void inputStreamToFile(InputStream ins, File file) {
+ try {
+ OutputStream os = new FileOutputStream(file);
+ int bytesRead = 0;
+ byte[] buffer = new byte[8192];
+ while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
+ os.write(buffer, 0, bytesRead);
+ }
+ os.close();
+ ins.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 鍒犻櫎鏈湴涓存椂鏂囦欢
+ * @param file
+ */
+ public static void delteTempFile(File file) {
+ if (file != null) {
+ String name = file.getName();
+ File del = new File(file.toURI());
+ if (del.delete()){
+ log.info("鍒犻櫎涓存椂鏂囦欢"+name+"鎴愬姛!");
+ }else {
+ log.error("鍒犻櫎涓存椂鏂囦欢"+name+"澶辫触!");
+ }
+ }
+ }
+
+}
diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/utils/MyUtil.java b/framework/src/main/java/com/yuanchu/limslaboratory/utils/MyUtil.java
index a9e8ade..2dc3810 100644
--- a/framework/src/main/java/com/yuanchu/limslaboratory/utils/MyUtil.java
+++ b/framework/src/main/java/com/yuanchu/limslaboratory/utils/MyUtil.java
@@ -63,13 +63,13 @@
return sb.toString();
}
- public static String getTimeSixNumberCode(String prefix){
+ public static String getTimeSixNumberCode(String prefix,String name){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String format = simpleDateFormat.format(new Date());
String timeStr = format.replace("-", "");
- long incrNum = RedisUtil.incr("num", 1);
+ long incrNum = RedisUtil.incr(name, 1);
if(incrNum == 1){
- RedisUtil.expire("num", 60 * 60 * 24);
+ RedisUtil.expire(name, 60 * 60 * 24);
}
String sixIncr = String.format("%06d", incrNum);
return prefix + timeStr + sixIncr;
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/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java
index dd191cd..027e223 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java
@@ -7,6 +7,7 @@
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.yuanchu.limslaboratory.pojo.Inspection;
+import com.yuanchu.limslaboratory.pojo.Report;
import com.yuanchu.limslaboratory.pojo.vo.InspectionVo;
import com.yuanchu.limslaboratory.service.LinkBasicInformationService;
import com.yuanchu.limslaboratory.service.RawMaterialService;
@@ -21,6 +22,7 @@
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.limslaboratory.service.InspectionService;
+
import javax.annotation.Resource;
/**
@@ -66,13 +68,13 @@
@GetMapping("/selectAll")
public Result selectAll(Integer type) {
switch (type) {
- case 0 :
+ case 0:
//鍘熸潗鏂�
return Result.success(rawMaterialService.selectRawmaAll());
- case 1 :
+ case 1:
//濮旀墭鍗�
return Result.success(linkBasicInformationService.selectLinkAll());
- case 2 :
+ case 2:
//鎴愬搧妫�楠�
return Result.success("璇疯緭鍏ユ楠屼俊鎭�!");
}
@@ -88,7 +90,7 @@
})
@GetMapping("/selectRawmaById")
public Result selectRawmaById(Integer id, String startTime, String endTime) throws ParseException {
- return Result.success(rawMaterialService.selectRawmaById(id,startTime,endTime));
+ return Result.success(rawMaterialService.selectRawmaById(id, startTime, endTime));
}
@@ -97,6 +99,8 @@
@ApiImplicitParam(name = "bid", value = "濮旀墭鎶ユ鍗昳d", dataTypeClass = Integer.class, required = true),
@ApiImplicitParam(name = "did", value = "濮旀墭鎶ユ鏍峰搧id", dataTypeClass = Integer.class, required = true)
})
+
+
@GetMapping("/selectLinkByid")
public Result selectLinkByid(Integer bid, Integer did) {
return Result.success(linkBasicInformationService.selectLinkByid(bid, did));
@@ -133,7 +137,6 @@
}
return Result.success(inspectionService.updateInspectsById(id));
}
-
}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/NonConformanceReviewController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/NonConformanceReviewController.java
new file mode 100644
index 0000000..4f05322
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/NonConformanceReviewController.java
@@ -0,0 +1,35 @@
+package com.yuanchu.limslaboratory.controller;
+
+import com.yuanchu.limslaboratory.pojo.Dto.NonConformingFeedbackDto;
+import com.yuanchu.limslaboratory.pojo.NonConformanceReview;
+import com.yuanchu.limslaboratory.pojo.vo.NonConformanceReviewVo;
+import com.yuanchu.limslaboratory.service.NonConformanceReviewService;
+import com.yuanchu.limslaboratory.vo.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/9
+ */
+@Api(tags = "璇曢獙绠$悊-->涓嶅悎鏍煎搧璇勫")
+@RestController
+@RequestMapping("/nonConformanceReview")
+public class NonConformanceReviewController {
+
+ @Resource
+ private NonConformanceReviewService service;
+
+
+ @GetMapping("/getNonConformanceReview")
+ @ApiOperation("涓嶅悎鏍煎搧鍙嶉-->鑾峰彇涓嶅悎鏍煎搧璇勫淇℃伅")
+ public Result<NonConformanceReviewVo> getNonConformanceReview(NonConformingFeedbackDto nonConformingFeedbackDto){
+
+ return Result.success(service.getNonConformanceReviewVo(nonConformingFeedbackDto));
+ }
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/NonConformingFeedbackController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/NonConformingFeedbackController.java
new file mode 100644
index 0000000..2b4c81a
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/NonConformingFeedbackController.java
@@ -0,0 +1,35 @@
+package com.yuanchu.limslaboratory.controller;
+
+import com.yuanchu.limslaboratory.pojo.Dto.NonConformingFeedbackDto;
+import com.yuanchu.limslaboratory.pojo.NonConformingFeedback;
+import com.yuanchu.limslaboratory.pojo.vo.NonConformingFeedbackVo;
+import com.yuanchu.limslaboratory.service.NonConformingFeedbackService;
+import com.yuanchu.limslaboratory.vo.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/9
+ */
+@Api(tags = "璇曢獙绠$悊-->涓嶅悎鏍煎搧鍙嶉")
+@RestController
+@RequestMapping("/non-conforming-feedback")
+public class NonConformingFeedbackController {
+
+ @Resource
+ private NonConformingFeedbackService service;
+
+ @GetMapping("/getNonConformingFeedback")
+ @ApiOperation("涓嶅悎鏍煎搧鍙嶉-->鑾峰彇涓嶅悎鏍煎搧淇℃伅")
+ public Result<NonConformingFeedbackVo> getNonConformingFeedback(NonConformingFeedbackDto nonConformingFeedbackDto){
+ return Result.success(service.getNonConformingFeedback(nonConformingFeedbackDto));
+ }
+
+
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/PlanController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/PlanController.java
new file mode 100644
index 0000000..79bace6
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/PlanController.java
@@ -0,0 +1,47 @@
+package com.yuanchu.limslaboratory.controller;
+
+import com.yuanchu.limslaboratory.pojo.vo.PlanVo;
+import com.yuanchu.limslaboratory.service.PlanService;
+import com.yuanchu.limslaboratory.vo.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-09
+ */
+@Api(tags = "妫�楠屾ā鍧�-->妫�楠岃鍒�")
+@RestController
+@RequestMapping("/plan")
+public class PlanController {
+
+ @Resource
+ private PlanService planService;
+
+
+ @ApiOperation("鏌ヨ妫�楠岃鍒�")
+ @ApiImplicitParams(value = {
+ @ApiImplicitParam(name = "device", value = "璁惧鍚嶇ОId", dataTypeClass = String.class),
+ @ApiImplicitParam(name = "beginTime", value = "妫�楠屽紑濮嬫椂闂�", dataTypeClass = Date.class),
+ @ApiImplicitParam(name = "endTime", value = "妫�楠岀粨鏉熸椂闂�", dataTypeClass = Date.class),
+ @ApiImplicitParam(name = "user", value = "妫�楠屼汉", dataTypeClass = String.class)
+ })
+ @GetMapping("/selectAllPlan")
+ public Result selectAllPlan(String device, @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime, @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime, String user) {
+ List<PlanVo> planVoList = planService.selectAllPlan(device, beginTime, endTime, user);
+ return Result.success(planVoList);
+ }
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportCheckController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportAuditingController.java
similarity index 77%
rename from inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportCheckController.java
rename to inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportAuditingController.java
index 920a1a2..f8b6e42 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportCheckController.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportAuditingController.java
@@ -3,18 +3,18 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.yuanchu.limslaboratory.pojo.vo.ReportCheckVo;
-import com.yuanchu.limslaboratory.service.ReportCheckService;
+import com.yuanchu.limslaboratory.pojo.vo.ReportAuditingVo;
+import com.yuanchu.limslaboratory.service.ReportAuditingService;
import com.yuanchu.limslaboratory.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
@@ -29,13 +29,13 @@
*/
@Api(tags = "妫�楠屾ā鍧�-->鎶ュ憡瀹℃牳")
@RestController
-@RequestMapping("/reportCheck")
-public class ReportCheckController {
+@RequestMapping("/reportAuditing")
+public class ReportAuditingController {
/**
* 鏈嶅姟瀵硅薄
*/
- @Autowired
- private ReportCheckService reportCheckService;
+ @Resource
+ private ReportAuditingService reportAuditingService;
@ApiOperation("鏌ヨ鎶ュ憡瀹℃牳鍐呭")
@ApiImplicitParams(value = {
@@ -44,9 +44,9 @@
@ApiImplicitParam(name = "status", value = "鐘舵��(涓虹┖=鍏ㄩ儴)", dataTypeClass = Integer.class),
@ApiImplicitParam(name = "name", value = "鎼滅储淇℃伅", dataTypeClass = String.class)
})
- @GetMapping("/selectAllReportCheck")
+ @GetMapping("/selectAllReportAuditing")
public Result selectAllReportCheck(Integer page, Integer pageSize, Integer status, String name) {
- IPage<ReportCheckVo> reportPage = reportCheckService.selectAllReportCheck(new Page<Object>(page, pageSize), status, name);
+ IPage<ReportAuditingVo> reportPage = reportAuditingService.selectAllReportAuditing(new Page<Object>(page, pageSize), status, name);
Map<String, Object> map = new HashMap<>();
map.put("total", reportPage.getTotal());
map.put("row", reportPage.getRecords());
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportController.java
index 50b9302..5a3ece9 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportController.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportController.java
@@ -15,6 +15,7 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
@@ -34,7 +35,7 @@
/**
* 鏈嶅姟瀵硅薄
*/
- @Autowired
+ @Resource
private ReportService reportService;
@ApiOperation("鏌ヨ妫�楠屾姤鍛�")
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/NonConformanceReviewMapper.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/NonConformanceReviewMapper.java
new file mode 100644
index 0000000..a64d101
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/NonConformanceReviewMapper.java
@@ -0,0 +1,20 @@
+package com.yuanchu.limslaboratory.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.limslaboratory.pojo.Dto.NonConformanceReviewDto;
+import com.yuanchu.limslaboratory.pojo.Dto.NonConformingFeedbackDto;
+import com.yuanchu.limslaboratory.pojo.NonConformanceReview;
+import com.yuanchu.limslaboratory.pojo.NonConformingFeedback;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/9
+ */
+@Repository
+public interface NonConformanceReviewMapper extends BaseMapper<NonConformanceReview> {
+
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/NonConformingFeedbackMapper.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/NonConformingFeedbackMapper.java
new file mode 100644
index 0000000..3080ae6
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/NonConformingFeedbackMapper.java
@@ -0,0 +1,24 @@
+package com.yuanchu.limslaboratory.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.limslaboratory.mybatis_config.MyBaseMapper;
+import com.yuanchu.limslaboratory.pojo.Dto.NonConformingFeedbackDto;
+import com.yuanchu.limslaboratory.pojo.LinkDetection;
+import com.yuanchu.limslaboratory.pojo.NonConformingFeedback;
+import com.yuanchu.limslaboratory.pojo.RawMaterial;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.Objects;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/9
+ */
+@Repository
+public interface NonConformingFeedbackMapper extends BaseMapper<NonConformingFeedback> {
+
+ IPage<NonConformingFeedback> selectNonConformingFeedback(@Param("nonConformingFeedbackDto") NonConformingFeedbackDto nonConformingFeedbackDto, Page page);
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/PlanMapper.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/PlanMapper.java
new file mode 100644
index 0000000..b725119
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/PlanMapper.java
@@ -0,0 +1,14 @@
+package com.yuanchu.limslaboratory.mapper;
+
+import com.yuanchu.limslaboratory.pojo.vo.PlanVo;
+
+import java.util.Date;
+import java.util.List;
+
+public interface PlanMapper {
+ /**
+ * 鏌ヨ妫�楠岃鍒�
+ * @return
+ */
+ List<PlanVo> selectAllPlan(String device, Date beginTime, Date endTime, String user);
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/ReportMapper.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/ReportMapper.java
index 3f9d8d4..c5f3504 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/ReportMapper.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/ReportMapper.java
@@ -4,7 +4,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.limslaboratory.pojo.Report;
-import com.yuanchu.limslaboratory.pojo.vo.ReportCheckVo;
+import com.yuanchu.limslaboratory.pojo.vo.ReportAuditingVo;
import com.yuanchu.limslaboratory.pojo.vo.ReportVo;
/**
@@ -28,6 +28,6 @@
* 鏌ヨ鎶ュ憡瀹℃牳
* @return
*/
- IPage<ReportCheckVo> selectAllReportCheck(Page<Object> page, Integer status, String name);
+ IPage<ReportAuditingVo> selectAllReportAuditing(Page<Object> page, Integer status, String name);
}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/NonConformanceReviewDto.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/NonConformanceReviewDto.java
new file mode 100644
index 0000000..9abeff1
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/NonConformanceReviewDto.java
@@ -0,0 +1,37 @@
+package com.yuanchu.limslaboratory.pojo.Dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/9
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="NonConformanceReviewDto瀵硅薄", description="")
+public class NonConformanceReviewDto implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "褰撳墠椤�", example = "1", required = true)
+ private Long currentPage;
+
+ @ApiModelProperty(value = "鍒嗛〉澶氬皯鏉�", example = "10", required = true)
+ private Long pageNum;
+
+ @ApiModelProperty(value = "鏍峰搧缂栧彿", example = "1680929494813868034", required = true)
+ private String materialCode;
+
+ @ApiModelProperty(value = "鏍峰搧鍚嶇О", example = "鐢电嚎鐢电紗", required = true)
+ private String materialName;
+
+ @ApiModelProperty(value = "鐢宠鍗曞彿", example = "XG-UGYUGH", required = true)
+ private String inspectionCode;
+
+
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/NonConformingFeedbackDto.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/NonConformingFeedbackDto.java
new file mode 100644
index 0000000..5ed3e80
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/NonConformingFeedbackDto.java
@@ -0,0 +1,35 @@
+package com.yuanchu.limslaboratory.pojo.Dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/9
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="NonConformingFeedbackDto瀵硅薄", description="")
+public class NonConformingFeedbackDto implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "褰撳墠椤�", example = "1", required = true)
+ private Long currentPage;
+
+ @ApiModelProperty(value = "鍒嗛〉澶氬皯鏉�", example = "10", required = true)
+ private Long pageNum;
+
+ @ApiModelProperty(value = "鏍峰搧缂栧彿", example = "1680929494813868034", required = true)
+ private String materialCode;
+
+ @ApiModelProperty(value = "鏍峰搧鍚嶇О", example = "鐢电嚎鐢电紗", required = true)
+ private String materialName;
+
+ @ApiModelProperty(value = "鐢宠鍗曞彿", example = "XG-UGYUGH", required = true)
+ private String inspectionCode;
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/NonConformanceReview.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/NonConformanceReview.java
new file mode 100644
index 0000000..71b1e6c
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/NonConformanceReview.java
@@ -0,0 +1,102 @@
+package com.yuanchu.limslaboratory.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.sql.Date;
+import java.time.LocalDateTime;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/9
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="涓嶇鍚堝搧璇勫瀵硅薄", description="")
+@TableName("tb_non_conformance_review")
+public class NonConformanceReview implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.ASSIGN_ID)
+ private Long id;
+
+ /**
+ * 鏍峰搧缂栧彿
+ */
+ private String materialCode;
+
+ /**
+ * 鏍峰搧鍚嶇О
+ */
+ private String materialName;
+
+ /**
+ * 鐢宠鍗曞彿
+ */
+ private String inspectionCode;
+
+ /**
+ * 鐧昏鏃ユ湡
+ */
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ private Date createTime;
+
+ /**
+ * 瀹為獙璐熻矗浜�
+ */
+ private String testManager;
+
+ /**
+ * 瑙勬牸鍨嬪彿
+ */
+ private String specifications;
+
+ /**
+ * 鍒涘缓浜�
+ */
+ private String createdUser;
+
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ @DateTimeFormat(
+ pattern = "yyyy-MM-dd HH:mm:ss"
+ )
+ @JsonFormat(
+ pattern = "yyyy-MM-dd HH:mm:ss"
+ )
+ private LocalDateTime createdTime;
+
+ /**
+ * 淇敼浜�
+ */
+ private String updatedUser;
+
+
+ /**
+ * 淇敼鏃堕棿
+ */
+ @DateTimeFormat(
+ pattern = "yyyy-MM-dd HH:mm:ss"
+ )
+ @JsonFormat(
+ pattern = "yyyy-MM-dd HH:mm:ss"
+ )
+ private LocalDateTime updatedTime;
+
+ /**
+ * 閫昏緫鍒犻櫎
+ */
+ @TableLogic(value = "1")
+ private Integer state;
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/NonConformingFeedback.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/NonConformingFeedback.java
new file mode 100644
index 0000000..845460b
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/NonConformingFeedback.java
@@ -0,0 +1,53 @@
+package com.yuanchu.limslaboratory.pojo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.sql.Date;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/9
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class NonConformingFeedback implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 鏍峰搧缂栧彿
+ */
+ private String materialCode;
+
+ /**
+ * 鏍峰搧鍚嶇О
+ */
+ private String materialName;
+
+ /**
+ * 鐢宠鍗曞彿
+ */
+ private String inspectionCode;
+
+ /**
+ * 鐧昏鏃ユ湡
+ */
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ private Date createTime;
+
+ /**
+ * 瀹為獙璐熻矗浜�
+ */
+ private String testManager;
+
+ /**
+ * 瑙勬牸鍨嬪彿
+ */
+ private String specifications;
+
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Report.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Report.java
index d1ab3bb..0ecf6b6 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Report.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Report.java
@@ -20,8 +20,8 @@
*/
@Data
@EqualsAndHashCode(callSuper = false)
-@ApiModel(value="InspectionReport瀵硅薄", description="")
-@TableName("inspection_report")
+@ApiModel(value="Report瀵硅薄", description="")
+@TableName("report")
public class Report implements Serializable {
private static final long serialVersionUID = 1L;
@@ -38,8 +38,8 @@
@ApiModelProperty(value = "瀹℃牳缁撹")
private String conclusion;
- @ApiModelProperty(value = "瀹℃牳浜篿d")
- private Integer userId;
+ @ApiModelProperty(value = "瀹℃牳浜�")
+ private String approver;
@ApiModelProperty(value = "鍏宠仈 鐢宠琛╥d")
private Integer inspectionId;
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/NonConformanceReviewVo.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/NonConformanceReviewVo.java
new file mode 100644
index 0000000..a7c8646
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/NonConformanceReviewVo.java
@@ -0,0 +1,30 @@
+package com.yuanchu.limslaboratory.pojo.vo;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.yuanchu.limslaboratory.pojo.NonConformanceReview;
+import com.yuanchu.limslaboratory.pojo.NonConformingFeedback;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/9
+ */
+@Data
+public class NonConformanceReviewVo implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @JsonSerialize
+ private List<NonConformanceReview> nonConformanceReviewList;
+
+ @JsonSerialize
+ private Long total;
+
+ public NonConformanceReviewVo(List<NonConformanceReview> nonConformanceReviewList, Long total) {
+ this.nonConformanceReviewList = nonConformanceReviewList;
+ this.total = total;
+ }
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/NonConformingFeedbackVo.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/NonConformingFeedbackVo.java
new file mode 100644
index 0000000..f4d337d
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/NonConformingFeedbackVo.java
@@ -0,0 +1,32 @@
+package com.yuanchu.limslaboratory.pojo.vo;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.yuanchu.limslaboratory.pojo.Inspection;
+import com.yuanchu.limslaboratory.pojo.InspectionMaterial;
+import com.yuanchu.limslaboratory.pojo.NonConformingFeedback;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/9
+ */
+@Data
+public class NonConformingFeedbackVo implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @JsonSerialize
+ private List<NonConformingFeedback> nonConformingFeedbackList;
+
+ @JsonSerialize
+ private Long total;
+
+ public NonConformingFeedbackVo(List<NonConformingFeedback> nonConformingFeedbackList, Long total) {
+ this.nonConformingFeedbackList = nonConformingFeedbackList;
+ this.total = total;
+ }
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/PlanVo.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/PlanVo.java
new file mode 100644
index 0000000..a2a6253
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/PlanVo.java
@@ -0,0 +1,54 @@
+package com.yuanchu.limslaboratory.pojo.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 妫�楠岃鍒扸O
+ */
+@Data
+public class PlanVo {
+ @ApiModelProperty(value = "璁惧鍚嶇О")
+ @JsonSerialize
+ private String device;
+ @ApiModelProperty(value = "鏍峰搧鍚嶇О")
+ @JsonSerialize
+ private String samplename;
+ @ApiModelProperty(value = "鏍峰搧缂栧彿")
+ @JsonSerialize
+ private String sampleid;
+ @ApiModelProperty(value = "瑙勬牸鍨嬪彿")
+ @JsonSerialize
+ private String modelandspecification;
+ @ApiModelProperty(value = "鍗曚綅")
+ @JsonSerialize
+ private String unit;
+ @ApiModelProperty(value = "鏁伴噺")
+ @JsonSerialize
+ private Integer amount;
+ @ApiModelProperty(value = "妫�楠岄」鐩�")
+ @JsonSerialize
+ private String checkproject;
+ @ApiModelProperty(value = "妫�楠屼汉")
+ @JsonSerialize
+ private String checker;
+ @ApiModelProperty(value = "璁″垝宸ユ湡")
+ @JsonSerialize
+ private Integer duration;
+ @ApiModelProperty(value = "妫�楠岃繘搴�0:鏈垎閰�, 50:妫�楠屼腑, 100:宸插畬鎴�")
+ @JsonSerialize
+ private Integer progress;
+ @ApiModelProperty(value = "璁″垝寮�濮嬫椂闂�")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+ private Date starttime;
+ @ApiModelProperty(value = "璁″垝缁撴潫鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+ private Date finishtime;
+
+ //鍒ゆ柇椤圭洰鐘舵��
+ private Integer state;
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportCheckVo.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportAuditingVo.java
similarity index 84%
rename from inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportCheckVo.java
rename to inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportAuditingVo.java
index 60bb95e..7e7ffd1 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportCheckVo.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportAuditingVo.java
@@ -11,7 +11,7 @@
* 鎶ュ憡瀹℃牳
*/
@Data
-public class ReportCheckVo {
+public class ReportAuditingVo {
@ApiModelProperty(value = "鏍峰搧缂栧彿")
@JsonSerialize
private String materialCode;
@@ -28,9 +28,9 @@
@JsonSerialize
private Integer approver;
@ApiModelProperty(value = "鎻愪氦鏃ユ湡")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date submitTime;
@ApiModelProperty(value = "瀹℃牳鏃ユ湡")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date checkTime;
}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportVo.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportVo.java
index 0bb084b..9c7849e 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportVo.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportVo.java
@@ -21,7 +21,7 @@
@ApiModelProperty(value = "瀹℃壒浜�")
@JsonSerialize
private Integer approver;
- @ApiModelProperty(value = "瀹℃壒鐘舵�� 0锛氬緟鎻愪氦 1锛氬緟瀹℃牳锛�2锛氬緟绛惧瓧锛�3锛氬凡瀹屾垚")
+ @ApiModelProperty(value = "瀹℃壒鐘舵�� 0锛氬緟鎻愪氦 1锛氬緟瀹℃牳锛�2锛氬凡瀹℃牳")
@JsonSerialize
private Integer status;
@ApiModelProperty(value = "妫�楠岀粨璁�")
@@ -29,5 +29,5 @@
private String conclusion;
@ApiModelProperty(value = "缂栧埗浜�")
@JsonSerialize
- private Integer userId;
+ private String name;
}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/NonConformanceReviewService.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/NonConformanceReviewService.java
new file mode 100644
index 0000000..20fd16b
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/NonConformanceReviewService.java
@@ -0,0 +1,20 @@
+package com.yuanchu.limslaboratory.service;
+
+import com.yuanchu.limslaboratory.pojo.Dto.NonConformingFeedbackDto;
+import com.yuanchu.limslaboratory.pojo.vo.NonConformanceReviewVo;
+import com.yuanchu.limslaboratory.pojo.vo.NonConformingFeedbackVo;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/9
+ */
+public interface NonConformanceReviewService {
+
+ /**
+ * 寰楀埌涓嶅悎鏍煎搧鎻愪氦淇℃伅
+ * @param nonConformingFeedbackDto
+ * @return
+ */
+ NonConformanceReviewVo getNonConformanceReviewVo(NonConformingFeedbackDto nonConformingFeedbackDto);
+
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/NonConformingFeedbackService.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/NonConformingFeedbackService.java
new file mode 100644
index 0000000..761b0f5
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/NonConformingFeedbackService.java
@@ -0,0 +1,19 @@
+package com.yuanchu.limslaboratory.service;
+
+import com.yuanchu.limslaboratory.pojo.Dto.NonConformingFeedbackDto;
+import com.yuanchu.limslaboratory.pojo.vo.NonConformingFeedbackVo;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/9
+ */
+public interface NonConformingFeedbackService {
+
+ /**
+ * 寰楀埌涓嶅悎鏍煎搧鍙嶉淇℃伅
+ * @param nonConformingFeedbackDto
+ * @return
+ */
+ NonConformingFeedbackVo getNonConformingFeedback(NonConformingFeedbackDto nonConformingFeedbackDto);
+
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/PlanService.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/PlanService.java
new file mode 100644
index 0000000..474e8ff
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/PlanService.java
@@ -0,0 +1,23 @@
+package com.yuanchu.limslaboratory.service;
+
+import com.yuanchu.limslaboratory.pojo.vo.PlanVo;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-09
+ */
+public interface PlanService {
+ /**
+ * 鏌ヨ妫�楠岃鍒�
+ * @return
+ */
+ List<PlanVo> selectAllPlan(String device, Date beginTime, Date endTime, String user);
+
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/ReportCheckService.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/ReportAuditingService.java
similarity index 66%
rename from inspection-server/src/main/java/com/yuanchu/limslaboratory/service/ReportCheckService.java
rename to inspection-server/src/main/java/com/yuanchu/limslaboratory/service/ReportAuditingService.java
index fb1af30..362ee97 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/ReportCheckService.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/ReportAuditingService.java
@@ -4,7 +4,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.limslaboratory.pojo.Report;
-import com.yuanchu.limslaboratory.pojo.vo.ReportCheckVo;
+import com.yuanchu.limslaboratory.pojo.vo.ReportAuditingVo;
/**
* <p>
@@ -14,12 +14,12 @@
* @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
* @since 2023-08-07
*/
-public interface ReportCheckService extends IService<Report> {
+public interface ReportAuditingService extends IService<Report> {
/**
* 椤圭洰瀹℃牳琛ㄦ煡璇�
* @return
*/
- IPage<ReportCheckVo> selectAllReportCheck(Page<Object> page, Integer status, String name);
+ IPage<ReportAuditingVo> selectAllReportAuditing(Page<Object> page, Integer status, String name);
}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java
index 444d70c..c285546 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java
@@ -13,6 +13,7 @@
import com.yuanchu.limslaboratory.pojo.vo.InspectDetailVo;
import com.yuanchu.limslaboratory.pojo.vo.InspectionVo;
import com.yuanchu.limslaboratory.service.*;
+import com.yuanchu.limslaboratory.utils.MyUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@@ -58,6 +59,9 @@
@Resource
UserMapper userMapper;
+
+ @Resource
+ ReportMapper reportMapper;
/**
* 鏌ヨ妫�楠岀敵璇峰崟鍒楄〃
@@ -192,6 +196,22 @@
.build();
inspectionMapper.updateById(inspection);
//鐢熸垚鎶ュ憡鍗�
+ Report report = new Report();
+ //鐢熸垚鎶ュ憡鍗曞彿
+ String code = MyUtil.getTimeSixNumberCode("BG","BG");
+ //鑾峰彇妫�楠岀粨璁�
+ String conclusion = "";
+ Inspection inspection1 = inspectionMapper.selectById(id);
+ if (inspection1.getInspectionStatus().equals(1)) {
+ conclusion = "鍚堟牸";
+ }else {
+ conclusion = "涓嶅悎鏍�";
+ }
+ report.setCode(code);
+ report.setStatus(0);
+ report.setConclusion(conclusion);
+ report.setInspectionId(id);
+ reportMapper.insert(report);
return true;
}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java
index 59be02e..5090428 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java
@@ -35,7 +35,7 @@
@Override
public String addLinkBasicInformation(LinkBasicInformation linkBasicInformation) {
- String code = MyUtil.getTimeSixNumberCode("SL");
+ String code = MyUtil.getTimeSixNumberCode("SL","SL");
linkBasicInformation.setEntrustCoding(code);
int insert = linkBasicInformationMapper.insert(linkBasicInformation);
if (insert == 1) {
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/NonConformanceReviewServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/NonConformanceReviewServiceImpl.java
new file mode 100644
index 0000000..8fc347c
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/NonConformanceReviewServiceImpl.java
@@ -0,0 +1,42 @@
+package com.yuanchu.limslaboratory.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.limslaboratory.mapper.NonConformanceReviewMapper;
+import com.yuanchu.limslaboratory.pojo.Dto.NonConformingFeedbackDto;
+import com.yuanchu.limslaboratory.pojo.NonConformanceReview;
+import com.yuanchu.limslaboratory.pojo.vo.NonConformanceReviewVo;
+import com.yuanchu.limslaboratory.service.NonConformanceReviewService;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import javax.annotation.Resource;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/9
+ */
+@Service
+public class NonConformanceReviewServiceImpl implements NonConformanceReviewService {
+
+ @Resource
+ private NonConformanceReviewMapper mapper;
+
+ @Override
+ public NonConformanceReviewVo getNonConformanceReviewVo(NonConformingFeedbackDto nonConformingFeedbackDto) {
+ QueryWrapper<NonConformanceReview>queryWrapper= new QueryWrapper<>();
+ if (StringUtils.hasText(nonConformingFeedbackDto.getMaterialCode())){
+ queryWrapper.lambda().and(a->a.eq(NonConformanceReview::getMaterialCode,nonConformingFeedbackDto.getMaterialCode()));
+ }
+ if (StringUtils.hasText(nonConformingFeedbackDto.getMaterialName())){
+ queryWrapper.lambda().and(a->a.eq(NonConformanceReview::getMaterialName,nonConformingFeedbackDto.getMaterialName()));
+ }
+ if (StringUtils.hasText(nonConformingFeedbackDto.getInspectionCode())){
+ queryWrapper.lambda().and(a->a.eq(NonConformanceReview::getInspectionCode,nonConformingFeedbackDto.getInspectionCode()));
+ }
+ Page<NonConformanceReview> page = new Page<>(nonConformingFeedbackDto.getCurrentPage(), nonConformingFeedbackDto.getPageNum(), true);
+ IPage<NonConformanceReview> iPage = mapper.selectPage(page, queryWrapper);
+ return new NonConformanceReviewVo(iPage.getRecords(),iPage.getTotal());
+ }
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/NonConformingFeedbackServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/NonConformingFeedbackServiceImpl.java
new file mode 100644
index 0000000..7d6fc23
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/NonConformingFeedbackServiceImpl.java
@@ -0,0 +1,34 @@
+package com.yuanchu.limslaboratory.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.limslaboratory.mapper.NonConformingFeedbackMapper;
+import com.yuanchu.limslaboratory.pojo.Dto.NonConformingFeedbackDto;
+import com.yuanchu.limslaboratory.pojo.NonConformingFeedback;
+import com.yuanchu.limslaboratory.pojo.vo.NonConformingFeedbackVo;
+import com.yuanchu.limslaboratory.service.NonConformingFeedbackService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/9
+ */
+@Service
+public class NonConformingFeedbackServiceImpl implements NonConformingFeedbackService {
+
+ @Resource
+ private NonConformingFeedbackMapper mapper;
+
+ @Override
+ public NonConformingFeedbackVo getNonConformingFeedback(NonConformingFeedbackDto nonConformingFeedbackDto) {
+ Page<Object> page = new Page<>(nonConformingFeedbackDto.getCurrentPage(), nonConformingFeedbackDto.getPageNum(), true);
+ IPage<NonConformingFeedback> iPage = mapper.selectNonConformingFeedback(nonConformingFeedbackDto, page);
+ return new NonConformingFeedbackVo(iPage.getRecords(),iPage.getTotal());
+ }
+
+
+
+
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java
new file mode 100644
index 0000000..5819ccd
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java
@@ -0,0 +1,61 @@
+package com.yuanchu.limslaboratory.service.impl;
+
+import com.yuanchu.limslaboratory.mapper.PlanMapper;
+import com.yuanchu.limslaboratory.pojo.vo.PlanVo;
+import com.yuanchu.limslaboratory.service.PlanService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-09
+ */
+@Service
+public class PlanServiceImpl implements PlanService {
+
+ @Resource
+ private PlanMapper planMapper;
+
+ /**
+ * 鏌ヨ妫�楠岃鍒�
+ *
+ * @return
+ */
+ @Override
+ public List<PlanVo> selectAllPlan(String device, Date beginTime, Date endTime, String user) {
+ //鑾峰彇鏁版嵁搴撴暟鎹�
+ List<PlanVo> planVos = planMapper.selectAllPlan(device, beginTime, endTime, user);
+ //娣诲姞璁″垝宸ユ湡鍜屾楠岃繘搴�
+ planVos.forEach(planVo -> {
+ //娣诲姞妫�楠岃繘搴�
+ //鍒ゆ柇鏄惁鏄凡瀹屾垚
+ if (planVo.getState() != null) {
+ planVo.setProgress(100);
+ }
+ //鍒ゆ柇鏄惁鏄湭鍒嗛厤
+ if (planVo.getCheckproject() == null) {
+ planVo.setProgress(0);
+ }
+ //鍒ゆ柇鏄惁鏄繘琛屼腑
+ if (planVo.getState() == null && planVo.getCheckproject() != null) {
+ planVo.setProgress(50);
+ }
+ //娣诲姞璁″垝宸ユ湡
+ if (planVo.getFinishtime() != null && planVo.getStarttime() != null) {
+ long startTimeInMillis = planVo.getStarttime().getTime();
+ long endTimeInMillis = planVo.getFinishtime().getTime();
+ long durationInMillis = endTimeInMillis - startTimeInMillis;
+ long duration = durationInMillis / (1000 * 60 * 60);
+ planVo.setDuration(Integer.valueOf((int) duration));
+ }
+ });
+ return planVos;
+ }
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportAuditingServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportAuditingServiceImpl.java
new file mode 100644
index 0000000..df8e8e4
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportAuditingServiceImpl.java
@@ -0,0 +1,37 @@
+package com.yuanchu.limslaboratory.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yuanchu.limslaboratory.mapper.ReportMapper;
+import com.yuanchu.limslaboratory.pojo.Report;
+import com.yuanchu.limslaboratory.pojo.vo.ReportAuditingVo;
+import com.yuanchu.limslaboratory.service.ReportAuditingService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-07
+ */
+@Service
+public class ReportAuditingServiceImpl extends ServiceImpl<ReportMapper, Report> implements ReportAuditingService {
+
+ @Resource
+ private ReportMapper reportMapper;
+
+ /**
+ * 椤圭洰瀹℃牳琛ㄦ煡璇�
+ * @return
+ */
+ @Override
+ public IPage<ReportAuditingVo> selectAllReportAuditing(Page<Object> page, Integer status, String name) {
+ return reportMapper.selectAllReportAuditing(page, status, name);
+ }
+}
+
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportCheckServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportCheckServiceImpl.java
deleted file mode 100644
index 4162cd6..0000000
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportCheckServiceImpl.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.yuanchu.limslaboratory.service.impl;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.yuanchu.limslaboratory.mapper.ReportMapper;
-import com.yuanchu.limslaboratory.pojo.Report;
-import com.yuanchu.limslaboratory.pojo.vo.ReportCheckVo;
-import com.yuanchu.limslaboratory.service.ReportCheckService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- * 鏈嶅姟瀹炵幇绫�
- * </p>
- *
- * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
- * @since 2023-08-07
- */
-@Service
-public class ReportCheckServiceImpl extends ServiceImpl<ReportMapper, Report> implements ReportCheckService {
-
- @Autowired
- private ReportMapper inspectionReportMapper;
-
-
- /**
- * 椤圭洰瀹℃牳琛ㄦ煡璇�
- * @return
- */
- @Override
- public IPage<ReportCheckVo> selectAllReportCheck(Page<Object> page, Integer status, String name) {
- return inspectionReportMapper.selectAllReportCheck(page, status, name);
- }
-}
-
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportServiceImpl.java
index 2673b2c..702f2ae 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportServiceImpl.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportServiceImpl.java
@@ -10,6 +10,8 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+
/**
* <p>
* 鏈嶅姟瀹炵幇绫�
@@ -21,7 +23,7 @@
@Service
public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> implements ReportService {
- @Autowired
+ @Resource
private ReportMapper reportMapper;
/**
diff --git a/inspection-server/src/main/resources/mapper/NonConformingFeedbackMapper.xml b/inspection-server/src/main/resources/mapper/NonConformingFeedbackMapper.xml
new file mode 100644
index 0000000..2fb25ac
--- /dev/null
+++ b/inspection-server/src/main/resources/mapper/NonConformingFeedbackMapper.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.yuanchu.limslaboratory.mapper.NonConformingFeedbackMapper">
+
+ <select id="selectNonConformingFeedback" resultType="nonConformingFeedback" parameterType="com.yuanchu.limslaboratory.pojo.Dto.NonConformingFeedbackDto">
+ SELECT
+ im.`code` materialCode,
+ im.`name` materialName,
+ i.`code` inspectionCode,
+ i.create_time createTime,
+ u.`name` testManager,
+ im.specifications specifications
+ FROM
+ inspection i,
+ inspection_material im,
+ `user` u
+ WHERE
+ 1 = 1
+ AND i.id = im.inspection_id
+ AND i.user_id = u.id
+ <if test="nonConformingFeedbackDto.materialCode!=null and nonConformingFeedbackDto.materialCode!=''">
+ and im.`code` like concat("%",#{nonConformingFeedbackDto.materialCode},"%")
+ </if>
+ <if test="nonConformingFeedbackDto.materialName!=null and nonConformingFeedbackDto.materialName!=''">
+ and im.`name` like concat("%",#{nonConformingFeedbackDto.materialName},"%")
+ </if>
+ <if test="nonConformingFeedbackDto.inspectionCode!=null and nonConformingFeedbackDto.inspectionCode!=''">
+ and im.specifications like concat("%",#{nonConformingFeedbackDto.inspectionCode},"%")
+ </if>
+ and i.state=1
+ and im.state=1
+ and i.inspection_status =0
+ </select>
+
+</mapper>
\ No newline at end of file
diff --git a/inspection-server/src/main/resources/mapper/PlanMapper.xml b/inspection-server/src/main/resources/mapper/PlanMapper.xml
new file mode 100644
index 0000000..ed990c0
--- /dev/null
+++ b/inspection-server/src/main/resources/mapper/PlanMapper.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yuanchu.limslaboratory.mapper.PlanMapper">
+
+ <!--鏌ヨ妫�楠岃鍒�-->
+ <select id="selectAllPlan" resultType="com.yuanchu.limslaboratory.pojo.vo.PlanVo">
+ select i.equipment_name device,
+ im.name samplename,
+ im.code sampleid,
+ im.specifications modelandspecification,
+ im.unit unit,
+ im.num amount,
+ ip.name checkproject,
+ u.name checker,
+ ip.start_time starttime,
+ ip.end_time finishtime,
+ ip.test_state state
+ from instrument i
+ left join (select ip.*
+ from inspection_product ip
+ right join (select instrument_id, max(ip.end_time) t
+ from inspection_product ip
+ group by instrument_id) it
+ on ip.instrument_id = it.instrument_id and ip.end_time = it.t) ip
+ on i.id = ip.instrument_id
+ left join inspection_material im on im.id = ip.inspection_material_id
+ left join user u on u.id = ip.user_id
+ <where>
+ <if test="device != null and device != null">
+ and i.equipment_name = #{device}
+ </if>
+ <if test="user != null and user != null">
+ and u.name = #{user}
+ </if>
+ <if test="beginTime != null and endTime != null">
+ and ip.start_time between #{beginTime} and #{endTime}
+ </if>
+ </where>
+ </select>
+</mapper>
diff --git a/inspection-server/src/main/resources/mapper/ReportMapper.xml b/inspection-server/src/main/resources/mapper/ReportMapper.xml
new file mode 100644
index 0000000..7983e64
--- /dev/null
+++ b/inspection-server/src/main/resources/mapper/ReportMapper.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yuanchu.limslaboratory.mapper.ReportMapper">
+
+ <!--鏌ヨ妫�楠屾姤鍛�-->
+ <select id="selectAllReport" resultType="com.yuanchu.limslaboratory.pojo.vo.ReportVo">select im.code materialCode,
+ r.code reportCode,
+ i.code inspectionCode,
+ r.approver approver,
+ r.status status,
+ r.conclusion conclusion,
+ u.name name
+ from report r
+ join inspection i on r.inspection_id = i.id
+ join user u on i.user_id = u.id
+ join inspection_material im on i.id = im.inspection_id
+ <where>
+ r.state = 1
+ <if test="status != null">
+ and r.status = #{status}
+ </if>
+ <if test="name != null and name != ''">
+ and im.code like concat('%', #{name}, '%')
+ or i.code like concat('%', #{name}, '%')
+ or r.code like concat('%', #{name}, '%')
+ </if>
+ </where>
+ </select>
+
+ <!--鏌ヨ鎶ュ憡瀹℃牳-->
+ <select id="selectAllReportAuditing" resultType="com.yuanchu.limslaboratory.pojo.vo.ReportAuditingVo">
+ select im.code materialCode,
+ r.code reportCode,
+ im.name materialName,
+ r.status status,
+ r.approver approver,
+ DATE_FORMAT(r.`create_time`, '%Y-%m-%d') submitTime,
+ DATE_FORMAT(r.`check_time`, '%Y-%m-%d') checkTime
+ from report r
+ join inspection i on r.inspection_id = i.id
+ join inspection_material im on i.id = im.inspection_id
+ <where>
+ r.state = 1
+ <if test="status == null">
+ and r.status in (0, 1)
+ </if>
+ <if test="status != null">
+ and r.status = #{status}
+ </if>
+ <if test="name != null and name != ''">
+ and im.code like concat('%', #{name}, '%')
+ or i.code like concat('%', #{name}, '%')
+ or im.name like concat('%', #{name}, '%')
+ </if>
+ </where>
+ </select>
+</mapper>
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/controller/MeteringPlanController.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MeteringPlanController.java
index bc6ea21..44b2456 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MeteringPlanController.java
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MeteringPlanController.java
@@ -5,6 +5,9 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.limslaboratory.pojo.Instrument;
import com.yuanchu.limslaboratory.pojo.MeteringPlan;
+import com.yuanchu.limslaboratory.pojo.dto.GetPlanMeasureInstrumentDto;
+import com.yuanchu.limslaboratory.pojo.dto.SelectMeasurementLedgerDto;
+import com.yuanchu.limslaboratory.pojo.dto.SelectMeteringPlanDto;
import com.yuanchu.limslaboratory.service.MeteringPlanService;
import com.yuanchu.limslaboratory.utils.JackSonUtil;
import com.yuanchu.limslaboratory.utils.RedisUtil;
@@ -46,25 +49,27 @@
}
@ApiOperation("璁¢噺璁″垝鍒嗛〉鏌ヨ")
- @ApiImplicitParams(value = {
- @ApiImplicitParam(name = "pageNo", value = "璧峰椤�", dataTypeClass = Integer.class, required = true),
- @ApiImplicitParam(name = "pageSize", value = "姣忎竴椤垫暟閲�", dataTypeClass = Integer.class, required = true),
- @ApiImplicitParam(name = "measureCodeOrNameOrUnit", value = "姣忎竴椤垫暟閲�", dataTypeClass = Integer.class, required = true)
- })
@GetMapping("/plan_page_list")
- public Result<?> pagingQueryOfMeteringPlan(Integer pageNo, Integer pageSize, String measureCodeOrNameOrUnit) {
- IPage<Map<String, Object>> page = meteringPlanService.pagingQueryOfMeteringPlan(measureCodeOrNameOrUnit, new Page<Objects>(pageNo, pageSize));
- return Result.success(page);
+ public Result<?> pagingQueryOfMeteringPlan(SelectMeteringPlanDto dto) {
+ return Result.success(meteringPlanService.pagingQueryOfMeteringPlan(dto));
}
@ApiOperation("璁¢噺鍙拌处鍒嗛〉鏌ヨ")
- @ApiImplicitParams(value = {
- @ApiImplicitParam(name = "pageNo", value = "璧峰椤�", dataTypeClass = Integer.class, required = true),
- @ApiImplicitParam(name = "pageSize", value = "姣忎竴椤垫暟閲�", dataTypeClass = Integer.class, required = true)
- })
@GetMapping("/standing_page_list")
- public Result<?> pagingQueryOfMeasurementLedger(Integer pageNo, Integer pageSize) {
- IPage<Map<String, Object>> page = meteringPlanService.pagingQueryOfMeasurementLedger(new Page<Objects>(pageNo, pageSize));
+ public Result<?> pagingQueryOfMeasurementLedger(SelectMeasurementLedgerDto selectMeasurementLedgerDto) {
+ IPage<Map<String, Object>> page = meteringPlanService.pagingQueryOfMeasurementLedger(selectMeasurementLedgerDto);
return Result.success(page);
}
+
+ @ApiOperation("鍗曡璁″垝淇℃伅")
+ @GetMapping("/getPlanMeasureInstrument")
+ public Result<?> getPlanMeasureInstrument(GetPlanMeasureInstrumentDto dto){
+ return Result.success(meteringPlanService.getPlanMeasureInstrument(dto));
+ }
+
+ @ApiOperation("璁″垝淇℃伅涔嬩笅鍒嗛〉")
+ @GetMapping("/limitGetPlanMeasureInstrument")
+ public Result<?> limitGetPlanMeasureInstrument(GetPlanMeasureInstrumentDto dto){
+ return Result.success(meteringPlanService.limitGetPlanMeasureInstrument(dto));
+ }
}
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..c67677e 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
@@ -3,6 +3,8 @@
import com.yuanchu.limslaboratory.pojo.Classify;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+
/**
* <p>
* Mapper 鎺ュ彛
@@ -13,4 +15,6 @@
*/
public interface ClassifyMapper extends BaseMapper<Classify> {
+ List<Classify> selectOneByName(Classify classify);
+
}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/MeteringPlanMapper.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/MeteringPlanMapper.java
index 3153a71..edce831 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/MeteringPlanMapper.java
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/MeteringPlanMapper.java
@@ -2,9 +2,14 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.yuanchu.limslaboratory.pojo.MeteringPlan;
+import com.yuanchu.limslaboratory.pojo.*;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yuanchu.limslaboratory.pojo.dto.GetPlanMeasureInstrumentDto;
+import com.yuanchu.limslaboratory.pojo.dto.SelectMeasurementLedgerDto;
+import com.yuanchu.limslaboratory.pojo.dto.SelectMeteringPlanDto;
+import org.apache.ibatis.annotations.Param;
+import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -18,5 +23,22 @@
*/
public interface MeteringPlanMapper extends BaseMapper<MeteringPlan> {
- IPage<Map<String, Object>> pagingQueryOfMeasurementLedger(Page<Objects> page);
+ IPage<Map<String, Object>> pagingQueryOfMeasurementLedger(Page<Objects> page,@Param("dto") SelectMeasurementLedgerDto dto);
+
+ /**
+ * 鍒嗛〉鏌ヨ璁″垝
+ * @param dto
+ * @param limitPage
+ * @return
+ */
+ List<MeteringPlanAndInfo>limitConditionMeteringPlan(@Param("dto")SelectMeteringPlanDto dto, @Param("limitPage") LimitPage limitPage);
+
+
+ Map<String, Object>getTotal(@Param("dto")SelectMeteringPlanDto dto);
+
+ MeteringPlanAndInfoAndIns getPlanMeasureInstrument(@Param("limitPage") LimitPage limitPage,Long id);
+
+ List<MetricalInfoAndIns> limitGetPlanMeasureInstrument(@Param("limitPage")LimitPage limitPage, Long id);
+
+ Map<String, Object> countPlanMeasurIns(Long id);
}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/LimitPage.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/LimitPage.java
new file mode 100644
index 0000000..cd97be2
--- /dev/null
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/LimitPage.java
@@ -0,0 +1,20 @@
+package com.yuanchu.limslaboratory.pojo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/17
+ */
+@Data
+public class LimitPage implements Serializable {
+
+ private Long start, end;
+
+ public LimitPage(Long start, Long end) {
+ this.start = start;
+ this.end = end;
+ }
+}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MeteringPlanAndInfo.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MeteringPlanAndInfo.java
new file mode 100644
index 0000000..efc5615
--- /dev/null
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MeteringPlanAndInfo.java
@@ -0,0 +1,52 @@
+package com.yuanchu.limslaboratory.pojo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/17
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="MeteringPlanAndInfo", description="")
+public class MeteringPlanAndInfo implements Serializable {
+
+ private Long id;
+
+ private String createPerson;
+
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd", iso = DateTimeFormat.ISO.DATE_TIME)
+ @ApiModelProperty(value = "寮�濮嬫棩鏈�", example = "2023-07-06", required = true, dataType = "date")
+ private Date beginTime;
+
+ private String plannedOrderNumber;
+
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd", iso = DateTimeFormat.ISO.DATE_TIME)
+ @ApiModelProperty(value = "缁撴潫鏃ユ湡", example = "2023-07-06", required = true, dataType = "date")
+ private Date endTime;
+
+ private String unit;
+
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd", iso = DateTimeFormat.ISO.DATE_TIME)
+ private Date createTime;
+
+ private String measurePerson;
+
+ private Integer status;
+
+ private List<MetricalInformation>resultList;
+
+
+}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MeteringPlanAndInfoAndIns.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MeteringPlanAndInfoAndIns.java
new file mode 100644
index 0000000..bbea7b5
--- /dev/null
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MeteringPlanAndInfoAndIns.java
@@ -0,0 +1,22 @@
+package com.yuanchu.limslaboratory.pojo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="MeteringPlanAndInfoAndIns瀵硅薄", description="")
+public class MeteringPlanAndInfoAndIns extends MeteringPlanAndInfo implements Serializable {
+
+ List<MetricalInfoAndIns>metricalInfoAndInsList;
+
+
+}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInfoAndIns.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInfoAndIns.java
new file mode 100644
index 0000000..2e08a84
--- /dev/null
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInfoAndIns.java
@@ -0,0 +1,48 @@
+package com.yuanchu.limslaboratory.pojo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="MeteringPlanAndInfoAndIns瀵硅薄", description="")
+public class MetricalInfoAndIns extends Instrument implements Serializable {
+
+ @ApiModelProperty(value = "璁¢噺缂栧彿", example = "1", required = true)
+ private String code;
+
+ @ApiModelProperty(value = "璁¢噺鍗曚綅", example = "GB", required = true)
+ private String measurementUnit;
+
+ @ApiModelProperty(value = "缁撴潫鏃ユ湡", example = "2026-07-06", required = true, dataType = "date")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd", iso = DateTimeFormat.ISO.DATE_TIME)
+ private Date endDate;
+
+ @ApiModelProperty(value = "缁撴灉: 1锛氬悎鏍硷紱2锛氱煫姝e悗鍙敤锛�3锛氫笉鍚堟牸", example = "1", required = true)
+ private Integer result;
+
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd", iso = DateTimeFormat.ISO.DATE_TIME)
+ private Date imCreateTime;
+
+ private String measurementName;
+
+ private String imCreateName;
+
+}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInformation.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInformation.java
index 5ee2a7c..07225d3 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInformation.java
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInformation.java
@@ -32,6 +32,9 @@
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
+ @ApiModelProperty(value = "璁¢噺缂栧彿", example = "1", required = true)
+ private String code;
+
@ApiModelProperty(value = "鐢ㄦ埛鍏宠仈Id", example = "7", required = true)
private Integer userId;
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetPlanMeasureInstrumentDto.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetPlanMeasureInstrumentDto.java
new file mode 100644
index 0000000..8be35d1
--- /dev/null
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetPlanMeasureInstrumentDto.java
@@ -0,0 +1,25 @@
+package com.yuanchu.limslaboratory.pojo.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value = "GetPlanMeasureInstrumentDto瀵硅薄", description = "")
+public class GetPlanMeasureInstrumentDto implements Serializable {
+
+ @ApiModelProperty(value = "褰撳墠椤�", example = "1", required = true)
+ private Long currentPage;
+ @ApiModelProperty(value = "姣忛〉澶氬皯鏉�", example = "10", required = true)
+ private Long pageSize;
+ @ApiModelProperty(value = "璁″垝id", example = "10", required = true)
+ private Long id;
+}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/SelectMeasurementLedgerDto.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/SelectMeasurementLedgerDto.java
new file mode 100644
index 0000000..df08dc8
--- /dev/null
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/SelectMeasurementLedgerDto.java
@@ -0,0 +1,28 @@
+package com.yuanchu.limslaboratory.pojo.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value = "selectMeasurementLedgerDto瀵硅薄", description = "")
+public class SelectMeasurementLedgerDto implements Serializable {
+ @ApiModelProperty(value = "褰撳墠椤�", example = "1", required = true)
+ private Long currentPage;
+ @ApiModelProperty(value = "姣忛〉澶氬皯鏉�", example = "10", required = true)
+ private Long pageSize;
+ @ApiModelProperty(value = "浠櫒缂栫爜", required = false)
+ private String code;
+ @ApiModelProperty(value = "浠櫒鍚嶇О", required = false)
+ private String name;
+ @ApiModelProperty(value = "璁¢噺鍗曚綅", required = false)
+ private String unit;
+}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/SelectMeteringPlanDto.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/SelectMeteringPlanDto.java
new file mode 100644
index 0000000..b66eb6c
--- /dev/null
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/SelectMeteringPlanDto.java
@@ -0,0 +1,25 @@
+package com.yuanchu.limslaboratory.pojo.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value = "SelectMeteringPlanDto", description = "")
+public class SelectMeteringPlanDto implements Serializable {
+
+ @ApiModelProperty(value = "褰撳墠椤�", example = "1", required = true)
+ private Long currentPage;
+ @ApiModelProperty(value = "姣忛〉澶氬皯鏉�", example = "10", required = true)
+ private Long pageSize;
+ @ApiModelProperty(value = "璁″垝鍗曞彿", required = false)
+ private String plannedOrderNumber;
+}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MeteringPlanService.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MeteringPlanService.java
index 5302b0c..b69a3d3 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MeteringPlanService.java
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MeteringPlanService.java
@@ -4,7 +4,13 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.limslaboratory.pojo.MeteringPlan;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.yuanchu.limslaboratory.pojo.MeteringPlanAndInfoAndIns;
+import com.yuanchu.limslaboratory.pojo.MetricalInfoAndIns;
+import com.yuanchu.limslaboratory.pojo.dto.GetPlanMeasureInstrumentDto;
+import com.yuanchu.limslaboratory.pojo.dto.SelectMeasurementLedgerDto;
+import com.yuanchu.limslaboratory.pojo.dto.SelectMeteringPlanDto;
+import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -20,7 +26,11 @@
Integer addMeteringPlanInformation(MeteringPlan meteringPlan);
- IPage<Map<String, Object>> pagingQueryOfMeteringPlan(String measureCodeOrNameOrUnit, Page<Objects> page);
+ Map<String, Object> pagingQueryOfMeteringPlan(SelectMeteringPlanDto dto);
- IPage<Map<String, Object>> pagingQueryOfMeasurementLedger(Page<Objects> page);
+ IPage<Map<String, Object>> pagingQueryOfMeasurementLedger(SelectMeasurementLedgerDto selectMeasurementLedgerDto);
+
+ Map<String, Object> getPlanMeasureInstrument(GetPlanMeasureInstrumentDto dto);
+
+ Map<String, Object> limitGetPlanMeasureInstrument(GetPlanMeasureInstrumentDto dto);
}
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..cd79696 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,15 +30,12 @@
@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);
- if (ObjectUtils.isEmpty(classify1)){
- return classifyMapper.insert(classify);
- } else {
+ List<Classify> classify1 = classifyMapper.selectOneByName(classify);
+ if (classify1.size()>0){
return 2;
+ } else {
+ classify.setCreateTime(DateUtil.date());
+ return classifyMapper.insert(classify);
}
}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MeteringPlanServiceImpl.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MeteringPlanServiceImpl.java
index 1a5f4a8..eb42a3b 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MeteringPlanServiceImpl.java
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MeteringPlanServiceImpl.java
@@ -3,9 +3,11 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.yuanchu.limslaboratory.pojo.Instrument;
-import com.yuanchu.limslaboratory.pojo.MeteringPlan;
+import com.yuanchu.limslaboratory.pojo.*;
import com.yuanchu.limslaboratory.mapper.MeteringPlanMapper;
+import com.yuanchu.limslaboratory.pojo.dto.GetPlanMeasureInstrumentDto;
+import com.yuanchu.limslaboratory.pojo.dto.SelectMeasurementLedgerDto;
+import com.yuanchu.limslaboratory.pojo.dto.SelectMeteringPlanDto;
import com.yuanchu.limslaboratory.service.MeteringPlanService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.limslaboratory.utils.MyUtil;
@@ -14,9 +16,7 @@
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
/**
* <p>
@@ -34,18 +34,53 @@
@Override
public Integer addMeteringPlanInformation(MeteringPlan meteringPlan) {
- String timeSixNumber = MyUtil.getTimeSixNumberCode("P");
+ String timeSixNumber = MyUtil.getTimeSixNumberCode("P","P");
meteringPlan.setPlannedOrderNumber(timeSixNumber);
return meteringPlanMapper.insert(meteringPlan);
}
@Override
- public IPage<Map<String, Object>> pagingQueryOfMeteringPlan(String measureCodeOrNameOrUnit, Page<Objects> page) {
- return null;
+ public Map<String, Object> pagingQueryOfMeteringPlan(SelectMeteringPlanDto dto) {
+ List<MeteringPlanAndInfo> page= meteringPlanMapper
+ .limitConditionMeteringPlan(dto,new LimitPage((dto.getCurrentPage()-1)*dto.getPageSize(), dto.getPageSize()));
+ page.forEach(l->{
+ l.getResultList().forEach(r->{
+ if (r.getResult() < 1) {
+ l.setStatus(0);
+ }else {
+ l.setStatus(1);
+ }
+ });
+ l.setResultList(null);
+ });
+ Map<String, Object>all=new HashMap<>(2);
+ all.put("total",meteringPlanMapper.getTotal(dto).get("num"));
+ all.put("list",page);
+ return all;
}
@Override
- public IPage<Map<String, Object>> pagingQueryOfMeasurementLedger(Page<Objects> page) {
- return meteringPlanMapper.pagingQueryOfMeasurementLedger(page);
+ public IPage<Map<String, Object>> pagingQueryOfMeasurementLedger(SelectMeasurementLedgerDto dto) {
+ return meteringPlanMapper.pagingQueryOfMeasurementLedger(new Page<>(dto.getCurrentPage(),dto.getPageSize(),true),dto);
+ }
+
+ @Override
+ public Map<String, Object> getPlanMeasureInstrument(GetPlanMeasureInstrumentDto dto) {
+ MeteringPlanAndInfoAndIns planMeasureInstrument =
+ meteringPlanMapper.getPlanMeasureInstrument
+ (new LimitPage((dto.getCurrentPage()-1)*dto.getPageSize(),
+ dto.getPageSize()), dto.getId());
+ Map<String, Object> map = meteringPlanMapper.countPlanMeasurIns(dto.getId());
+ map.put("list",planMeasureInstrument);
+ return map;
+ }
+
+ @Override
+ public Map<String, Object> limitGetPlanMeasureInstrument(GetPlanMeasureInstrumentDto dto) {
+ Map<String, Object> map = meteringPlanMapper.countPlanMeasurIns(dto.getId());
+ map.put("list",meteringPlanMapper
+ .limitGetPlanMeasureInstrument(new LimitPage((dto.getCurrentPage()-1)*dto.getPageSize()
+ ,dto.getPageSize()),dto.getId()));
+ return map;
}
}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MetricalInformationServiceImpl.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MetricalInformationServiceImpl.java
index 74ed4a4..c52e053 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MetricalInformationServiceImpl.java
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MetricalInformationServiceImpl.java
@@ -36,6 +36,7 @@
String fileName = FileSaveUtil.StoreFile(file);
metricalInformation.setFilePath(fileName);
}
+ metricalInformation.setCode(MyUtil.getTimeSixNumberCode("METRICALCODE","METRICALCODE"));
return metricalInformationMapper.insert(metricalInformation);
}
diff --git a/laboratory-server/src/main/resources/mapper/ClassifyMapper.xml b/laboratory-server/src/main/resources/mapper/ClassifyMapper.xml
index f6e5f1c..c319b0f 100644
--- a/laboratory-server/src/main/resources/mapper/ClassifyMapper.xml
+++ b/laboratory-server/src/main/resources/mapper/ClassifyMapper.xml
@@ -2,4 +2,12 @@
<!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
+ FROM classify
+ WHERE state = 1
+ <if test="fatherName!=null and fatherName!=''">
+ AND father_name = #{fatherName}
+ </if>
+ </select>
</mapper>
diff --git a/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml b/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml
index ca6ab6b..f1af9c6 100644
--- a/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml
+++ b/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml
@@ -3,9 +3,184 @@
<mapper namespace="com.yuanchu.limslaboratory.mapper.MeteringPlanMapper">
<select id="pagingQueryOfMeasurementLedger" resultType="map">
- SELECT i.`equipment_code`, i.`equipment_name`, i.`specifications_models`, m.`create_time`, m.`uncertainty`,
- m.`end_date`, i.`term_validity`, i.`storage_place`, i.`conditions`
- FROM instrument i, metrical_information m
- WHERE i.`id` = m.`instrument_id`
+ SELECT
+ i.`equipment_code` equipmentCode,
+ i.`equipment_name` equipmentName,
+ m.measurement_unit measurementUnit,
+ i.measuring_range measuringRange,
+ i.term_validity termValidity,
+ m.result result,
+ m.end_date endDate,
+ u.NAME name ,
+ m.`create_time` createTime,
+ m.code code
+ FROM
+ metrical_information m
+ LEFT JOIN `user` u ON u.id = m.user_id
+ LEFT JOIN instrument i ON i.`id` = m.`instrument_id`
+ WHERE 1=1
+ and (m.state=1 and i.state=1 and m.result is not null)
+ <if test="dto.code!=null and dto.code!=''">
+ and i.`equipment_code` like concat('%',#{dto.code},'%')
+ </if>
+ <if test="dto.name!=null and dto.name!=''">
+ and i.`equipment_name` like concat('%',#{dto.name},'%')
+ </if>
+ <if test="dto.name!=null and dto.name!=''">
+ and i.measurement_unit like concat('%',#{dto.unit},'%')
+ </if>
</select>
+
+ <select id="limitConditionMeteringPlan" resultMap="MeteringPlanAndInfoMap">
+ SELECT p.id id,
+ u.`name` createName,
+ p.planned_order_number plannedOrderNumber,
+ p.begin_time beginTime,
+ p.end_time endTime,
+ IF(IFNULL(i.result, 0) > 0, 1, 0) status,
+ (SELECT name FROM `user` u WHERE p.measure_person = u.id) measureName,
+ i.`code` iCode,
+ p.unit unit,
+ p.create_time createTime
+ FROM (SELECT id, unit ,measure_person, create_Person, begin_Time, end_Time, planned_order_number, create_time
+ from metering_plan
+ where 1=1
+ <if test="dto.plannedOrderNumber!=null and dto.plannedOrderNumber!=''">
+ and planned_order_number=#{plannedOrderNumber}
+ </if>
+ LIMIT #{limitPage.start},#{limitPage.end}) p
+ LEFT JOIN metrical_information i ON p.id = i.plan
+ LEFT JOIN `user` u ON p.create_Person = u.id
+ where 1 = 1
+ </select>
+ <select id="getTotal" resultType="java.util.Map">
+ select count(id) num from metering_plan where 1=1
+ <if test="dto.plannedOrderNumber!=null and dto.plannedOrderNumber!=''">
+ and planned_order_number=#{plannedOrderNumber}
+ </if>
+ </select>
+ <select id="getPlanMeasureInstrument"
+ resultMap="measureInsAndPlanMap">
+ SELECT m.planned_order_number plannedOrderNumber,
+ (SELECT NAME FROM USER WHERE id = m.measure_person) measureName,
+ m.begin_time beginTime,
+ m.end_time endTime,
+ m.unit unit,
+ u.`name` createName,
+ m.create_time createTime,
+ im.equipment_code equipmentCode,
+ im.equipment_name equipmentName,
+ im.measuring_range measuringRange,
+ im.term_validity termValidity,
+ im.result result,
+ im.end_date endDate,
+ im.imName imName,
+ im.create_time imCreateTime,
+ im.measurement_unit imUnit,
+ im.`code` imCode
+ FROM metering_plan m
+ LEFT JOIN `user` u ON m.create_Person = u.id
+ LEFT JOIN (
+ SELECT i.equipment_code,
+ i.equipment_name,
+ i.measuring_range,
+ i.term_validity,
+ im.result,
+ im.end_date,
+ (SELECT NAME FROM USER WHERE id = im.user_id) imName,
+ im.create_time,
+ im.measurement_unit,
+ im.`code`,
+ im.plan
+ FROM metrical_information im,
+ metering_plan m,
+ instrument i
+ WHERE im.instrument_id = i.id
+ and m.id = im.plan
+ and im.plan = #{id}
+ LIMIT #{limitPage.start}
+ , #{limitPage.end}
+ ) im ON m.id = im.plan
+ WHERE 1 = 1
+ AND m.id = #{id}
+ </select>
+ <select id="limitGetPlanMeasureInstrument" resultMap="MetricalInfoAndInsMap">
+ SELECT i.equipment_code equipmentCode,
+ i.equipment_name equipmentName,
+ i.measuring_range measuringRange,
+ i.term_validity termValidity,
+ im.result result,
+ im.end_date endDate,
+ (SELECT NAME FROM USER WHERE id = im.user_id) imName,
+ im.create_time imCreateTime,
+ im.measurement_unit imUnit,
+ im.`code` imCode
+ FROM metrical_information im,
+ metering_plan m,
+ instrument i
+ WHERE im.instrument_id = i.id
+ and m.id = im.plan
+ and im.plan = #{id} LIMIT #{limitPage.start}
+ , #{limitPage.end}
+ </select>
+ <select id="countPlanMeasurIns" resultType="java.util.Map">
+ SELECT count(im.id) total
+ FROM metrical_information im,
+ metering_plan m,
+ instrument i
+ WHERE im.instrument_id = i.id
+ and m.id = im.plan
+ and im.plan = #{id}
+ </select>
+
+ <resultMap id="MetricalInfoAndInsMap" type="MetricalInfoAndIns">
+ <result property="code" column="imCode"/>
+ <result property="measurementUnit" column="imUnit"/>
+ <result property="imCreateTime" column="imCreateTime"/>
+ <result property="measurementName" column="imName"/>
+ <result property="endDate" column="endDate"/>
+ <result property="result" column="result"/>
+ <result property="termValidity" column="termValidity"/>
+ <result property="measuringRange" column="measuringRange"/>
+ <result property="equipmentName" column="equipmentName"/>
+ <result property="equipmentCode" column="equipmentCode"/>
+ </resultMap>
+
+ <resultMap id="measureInsAndPlanMap" type="meteringPlanAndInfoAndIns">
+ <result property="id" column="id"/>
+ <result property="createPerson" column="createName"/>
+ <result property="beginTime" column="beginTime"/>
+ <result property="endTime" column="endTime"/>
+ <result property="plannedOrderNumber" column="plannedOrderNumber"/>
+ <result property="measurePerson" column="measureName"/>
+ <result property="createTime" column="createTime"/>
+ <result property="unit" column="unit"/>
+ <collection property="metricalInfoAndInsList" ofType="metricalInfoAndIns">
+ <result property="code" column="imCode"/>
+ <result property="measurementUnit" column="imUnit"/>
+ <result property="imCreateTime" column="imCreateTime"/>
+ <result property="measurementName" column="imName"/>
+ <result property="endDate" column="endDate"/>
+ <result property="result" column="result"/>
+ <result property="termValidity" column="termValidity"/>
+ <result property="measuringRange" column="measuringRange"/>
+ <result property="equipmentName" column="equipmentName"/>
+ <result property="equipmentCode" column="equipmentCode"/>
+ </collection>
+ </resultMap>
+
+ <resultMap id="MeteringPlanAndInfoMap" type="meteringPlanAndInfo">
+ <result property="id" column="id"/>
+ <result property="createPerson" column="createName"/>
+ <result property="beginTime" column="beginTime"/>
+ <result property="endTime" column="endTime"/>
+ <result property="plannedOrderNumber" column="plannedOrderNumber"/>
+ <result property="measurePerson" column="measureName"/>
+ <result property="createTime" column="createTime"/>
+ <result property="unit" column="unit"/>
+ <collection property="resultList" ofType="MetricalInformation">
+ <result property="code" column="iCode"/>
+ <result property="result" column="status"/>
+ </collection>
+ </resultMap>
</mapper>
diff --git a/laboratory-server/src/main/resources/mapper/MetricalInformationMapper.xml b/laboratory-server/src/main/resources/mapper/MetricalInformationMapper.xml
index 21de131..858dbf3 100644
--- a/laboratory-server/src/main/resources/mapper/MetricalInformationMapper.xml
+++ b/laboratory-server/src/main/resources/mapper/MetricalInformationMapper.xml
@@ -8,6 +8,7 @@
FROM metrical_information m, `user` u
WHERE m.`user_id` = u.`id`
AND m.`state` = 1
+ and result is not Null
AND m.`instrument_id` = #{InstrumentId}
</select>
</mapper>
diff --git a/pom.xml b/pom.xml
index b6025a8..bc21e3d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,6 +22,7 @@
<module>standard-server</module>
<module>inspection-server</module>
<module>laboratory-server</module>
+ <module>cnas-server</module>
</modules>
<properties>
@@ -36,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>
diff --git a/standard-server/src/main/resources/mapper/MaterialMapper.xml b/standard-server/src/main/resources/mapper/MaterialMapper.xml
index 661b8fd..8ff48cb 100644
--- a/standard-server/src/main/resources/mapper/MaterialMapper.xml
+++ b/standard-server/src/main/resources/mapper/MaterialMapper.xml
@@ -3,12 +3,12 @@
<mapper namespace="com.yuanchu.limslaboratory.mapper.MaterialMapper">
<select id="selectMaterialLimit" resultType="Map">
- select id,code, name
+ select id, code, name
from lims_laboratory.material
where state = 1
- and type = #{type}
+ and type = #{type}
order by create_time desc
- limit #{num1},#{num2}
+ limit #{num1}, #{num2}
</select>
<select id="selectMaterialById" resultType="Map">
select m.id,
@@ -28,7 +28,7 @@
lims_laboratory.serial_number sn
where m.specifications_id = s.id
and s.serial_id = sn.id
- and m.id=#{materialId}
+ and m.id = #{materialId}
</select>
<resultMap id="OneLevelTreeMap" type="Map">
@@ -56,15 +56,17 @@
<select id="FourTree" resultMap="OneLevelTreeMap">
SELECT m.`id` materialId, m.`name` materialName, s.`id` standardId, s.`name` standardName,
- f.`id` specificationsId, f.`name` specificationsName, p.`id` productId, p.`name` productName
+ f.`id` specificationsId, f.`name` specificationsName, p.`id` productId, p.`name` productName
FROM material m
- LEFT JOIN (SELECT s.`id`, s.`name`, s.`material_id` FROM standard s WHERE s.`state` = 1) s ON m.id = s.`material_id`
- LEFT JOIN (SELECT f.`id`, f.`name`, f.`standard_id` FROM specifications f WHERE f.`state` = 1
- <if test="specificationsName != null and specificationsName != ''">
- AND f.`name` = #{specificationsName}
- </if>
- ) f ON s.`id` = f.`standard_id`
- LEFT JOIN (SELECT p.`id`, p.`name`, p.`specifications_id` FROM product p WHERE p.`state` = 1) p ON f.`id` = p.`specifications_id`
+ LEFT JOIN (SELECT s.`id`, s.`name`, s.`material_id` FROM standard s WHERE s.`state` = 1) s ON m.id =
+ s.`material_id`
+ LEFT JOIN (SELECT f.`id`, f.`name`, f.`standard_id` FROM specifications f WHERE f.`state` = 1
+ <if test="specificationsName != null and specificationsName != ''">
+ AND f.`name` = #{specificationsName}
+ </if>
+ ) f ON s.`id` = f.`standard_id`
+ LEFT JOIN (SELECT p.`id`, p.`name`, p.`specifications_id` FROM product p WHERE p.`state` = 1) p ON f.`id` =
+ p.`specifications_id`
WHERE m.`state` = 1
</select>
</mapper>
diff --git a/sys/pom.xml b/sys/pom.xml
index effbb79..668acec 100644
--- a/sys/pom.xml
+++ b/sys/pom.xml
@@ -22,6 +22,12 @@
<artifactId>framework</artifactId>
<version>${project.parent.version}</version>
</dependency>
+ <!--cnas妯″潡-->
+ <dependency>
+ <groupId>com.yuanchu.limslaboratory</groupId>
+ <artifactId>cnas-server</artifactId>
+ <version>${project.parent.version}</version>
+ </dependency>
<!--鐢ㄦ埛鏈嶅姟妯″潡-->
<dependency>
@@ -63,12 +69,14 @@
<artifactId>mybatis-plus-generator</artifactId>
</dependency>
- <!-- framework: mybatis-plus浠g爜鐢熸垚闇�瑕佷竴涓ā鏉垮紩鎿� -->
+ <!-- https://mvnrepository.com/artifact/org.apache.velocity/velocity-engine-core -->
<dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-freemarker</artifactId>
+ <groupId>org.apache.velocity</groupId>
+ <artifactId>velocity-engine-core</artifactId>
+ <version>2.3</version>
</dependency>
+
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
diff --git a/sys/src/main/java/com/yuanchu/limslaboratory/CodeGenerator.java b/sys/src/main/java/com/yuanchu/limslaboratory/CodeGenerator.java
index 0807851..b7544d0 100644
--- a/sys/src/main/java/com/yuanchu/limslaboratory/CodeGenerator.java
+++ b/sys/src/main/java/com/yuanchu/limslaboratory/CodeGenerator.java
@@ -12,21 +12,23 @@
// 婕旂ず渚嬪瓙锛屾墽琛� main 鏂规硶鎺у埗鍙拌緭鍏ユā鍧楄〃鍚嶅洖杞﹁嚜鍔ㄧ敓鎴愬搴旈」鐩洰褰曚腑
public class CodeGenerator {
- 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_url = "jdbc:mysql://192.168.110.209:3306/lims_laboratory?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai";
+ public static String database_username = "user";
public static String database_password= "123456";
public static String author = "姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃";
- public static String model_name = "/inspect-server"; // 濡傛灉涓哄垎甯冨紡濉瓙妯″潡鍚嶇О锛屽鏋滀笉鏄垎甯冨紡涓虹┖鍗冲彲
- public static String setParent = "com.yuanchu.mom"; // 鍖呰矾寰�
+ public static String model_name = "/cnas-server"; // 濡傛灉涓哄垎甯冨紡濉瓙妯″潡鍚嶇О锛屽鏋滀笉鏄垎甯冨紡涓虹┖鍗冲彲
+ public static String setParent = "com.yuanchu.limslaboratory"; // 鍖呰矾寰�
public static void main(String[] args) {
String projectPath = System.getProperty("user.dir");
- System.out.println(projectPath+"===================");
+ String s = projectPath + "/lims-after" + model_name + "/src/main/java";
+ String s1 = projectPath + "/lims-after" + model_name + "/src/main/resources/mapper";
+ System.out.println();
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") // 鎸囧畾杈撳嚭鐩綍
+ .outputDir(s) // 鎸囧畾杈撳嚭鐩綍
.disableOpenDir() //绂佹鎵撳紑杈撳嚭鐩綍锛岄粯璁ゆ墦寮�
;
})
@@ -34,7 +36,7 @@
.packageConfig(builder -> {
builder.entity("pojo");
builder.parent(setParent) // 璁剧疆鐖跺寘鍚�
- .pathInfo(Collections.singletonMap(OutputFile.xml, projectPath + model_name + "/src/main/resources/mapper")); // 璁剧疆mapperXml鐢熸垚璺緞
+ .pathInfo(Collections.singletonMap(OutputFile.xml, s1)); // 璁剧疆mapperXml鐢熸垚璺緞
})
// 绛栫暐閰嶇疆
.strategyConfig(builder -> {
diff --git a/sys/src/main/resources/application-dev.yml b/sys/src/main/resources/application-dev.yml
index 7dc4eaa..6cef4e4 100644
--- a/sys/src/main/resources/application-dev.yml
+++ b/sys/src/main/resources/application-dev.yml
@@ -40,8 +40,8 @@
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://localhost:3306/lims_laboratory?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
- username: root
+ url: jdbc:mysql://192.168.110.209:3306/lims_laboratory?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
+ username: user
password: 123456
druid:
# Druid鏁版嵁婧愰厤缃�
@@ -65,21 +65,21 @@
# redis鏁版嵁搴撶储寮�(榛樿涓�0)锛屾垜浠娇鐢ㄧ储寮曚负3鐨勬暟鎹簱锛岄伩鍏嶅拰鍏朵粬鏁版嵁搴撳啿绐�
database: 0
# redis鏈嶅姟鍣ㄥ湴鍧�锛堥粯璁や负localhost锛�
- host: localhost
+ host: 192.168.110.209
# redis绔彛锛堥粯璁や负6379锛�
- port: 6380
+ port: 6379
# redis璁块棶瀵嗙爜锛堥粯璁や负绌猴級
password: null
# redis杩炴帴瓒呮椂鏃堕棿锛堝崟浣嶆绉掞級
- timeout: 5
+ timeout: 50
# redis杩炴帴姹犻厤缃�
pool:
# 鏈�澶у彲鐢ㄨ繛鎺ユ暟锛堥粯璁や负8锛岃礋鏁拌〃绀烘棤闄愶級
- max-active: 8
+ max-active: 20
# 鏈�澶х┖闂茶繛鎺ユ暟锛堥粯璁や负8锛岃礋鏁拌〃绀烘棤闄愶級
max-idle: 8
# 鏈�灏忕┖闂茶繛鎺ユ暟锛堥粯璁や负0锛岃鍊煎彧鏈変负姝f暟鎵嶆湁鐢級
- min-idle: 0
+ min-idle: 5
# 浠庤繛鎺ユ睜涓幏鍙栬繛鎺ユ渶澶х瓑寰呮椂闂达紙榛樿涓�-1锛屽崟浣嶄负姣锛岃礋鏁拌〃绀烘棤闄愶級
max-wait: -1
diff --git a/sys/src/test/java/com/yuanchu/limslaboratory/SysApplicationTests.java b/sys/src/test/java/com/yuanchu/limslaboratory/SysApplicationTests.java
index 9d91f2b..c594764 100644
--- a/sys/src/test/java/com/yuanchu/limslaboratory/SysApplicationTests.java
+++ b/sys/src/test/java/com/yuanchu/limslaboratory/SysApplicationTests.java
@@ -1,9 +1,36 @@
package com.yuanchu.limslaboratory;
+
+import com.yuanchu.limslaboratory.pojo.vo.PlanVo;
+import com.yuanchu.limslaboratory.service.PlanService;
+import com.yuanchu.limslaboratory.service.UserService;
+import com.yuanchu.limslaboratory.utils.MyUtil;
+import org.apache.poi.hwpf.HWPFDocument;
+import org.apache.poi.hwpf.extractor.WordExtractor;
+import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
+import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
+
+import javax.annotation.Resource;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
@SpringBootTest
class SysApplicationTests {
+
+ @Resource
+ private PlanService planService;
+
+ @Resource
+ private UserService userService;
@Test
void contextLoads() {
@@ -11,6 +38,147 @@
System.out.println("newString === " + newString);
}
+
+ @Test
+ void TT() {
+ Map<String, Object> userInfo = userService.getUserInfo("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2NvdW50IjoiYzhiMWFhYWNlYzM2NmMyNGU1ZDE4YzdlZWE5ZTU1MWIiLCJleHAiOjE2OTE3Mzk4MjV9.IZyU5jhTzpxedmmL25dhpkzQS7hth7gt-bzCx9fZyOk");
+ System.out.println(userInfo.get("name"));
+ }
+
+ @Test
+ void uploading() {
+ // 鏇挎崲涓篸oc鎴杁ocx鏂囦欢鐨勮矾寰�
+ String filePath = "D:\\20892\\desktop\\QR-14-01-02+++鍐呴儴瀹℃牳骞村害璁″垝.doc";
+ String info = "";
+ try {
+ FileInputStream fis = new FileInputStream(filePath);
+ if (filePath.endsWith(".doc")) {
+ // 璇诲彇doc鏂囦欢
+ HWPFDocument doc = new HWPFDocument(fis);
+ WordExtractor docExtractor = new WordExtractor(doc);
+ String text = docExtractor.getText();
+ System.out.println("doc:");
+ info = text.trim();
+ docExtractor.close();
+ } else if (filePath.endsWith(".docx")) {
+ // 璇诲彇docx鏂囦欢
+ XWPFDocument docx = new XWPFDocument(fis);
+ XWPFWordExtractor docxExtractor = new XWPFWordExtractor(docx);
+ String text = docxExtractor.getText();
+ System.out.println("docx:");
+ info = text.trim();
+ docxExtractor.close();
+ } else {
+ System.out.println("涓嶆槸word鏂囦欢");
+ }
+ fis.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ List<String> infoList = new ArrayList<String>();
+ String[] split = info.split("\n");
+ for (int i = 0; i < split.length; i++) {
+ System.out.println("======>" + split[i]);
+ if (i > 2) {
+ infoList.add(split[i]);
+ }
+ }
+ Map<String, String> result = new HashMap<>();
+ //瀹㈡埛鍗曚綅/椤圭洰鍚嶇О
+ String[] proAndUnit = infoList.get(0).split("\t");
+ for (int i = 0; i < proAndUnit.length; i++) {
+ if (i == 1) {
+ result.put("unitName", proAndUnit[i]);
+ }
+ if (i == 3) {
+ result.put("projectName", proAndUnit[i]);
+ }
+ }
+ //濉〃浜哄鍚�/鑱屼綅/鑱旂郴鐢佃瘽/閭紪
+ String npty = infoList.get(1);
+ String nameAndDate = npty.split("form")[1].split("鑱屼綅")[0];
+ //濮撳悕/鏃ユ湡
+ result.put("nameAndDate", nameAndDate.trim());
+ //鑱屼綅
+ String post = npty.split("Posts")[1].split("鑱旂郴鐢佃瘽")[0];
+ result.put("post", post.trim());
+ //鑱旂郴鐢佃瘽
+ String phone = npty.split("number")[1].split("閭紪")[0];
+ result.put("telephone", phone);
+ //閭紪
+ String email = npty.split("閭紪")[1].split("\t")[1];
+ result.put("email", email);
+ //鏈嶅姟鎬佸害
+ String replace = infoList.get(2).replace(" ", "").replace("\t", "");
+ System.out.println(replace);
+ String[] split1 = replace.split("鈽�");
+ for (int i = 0; i < split1.length; i++) {
+ System.out.println(split1[i]);
+ }
+ result.forEach((k, v) -> {
+ System.out.println("k======>" + k);
+ System.out.println("v======>" + v);
+ });
+ }
+
+ @Test
+ void upload() throws Exception {
+ String filePath = "D:\\20892\\desktop\\QR-14-01-02+++鍐呴儴瀹℃牳骞村害璁″垝.doc";
+
+ String info = "";
+
+ FileInputStream fis = new FileInputStream(filePath);
+ if (filePath.endsWith(".doc")) {
+ // 璇诲彇doc鏂囦欢
+ HWPFDocument doc = new HWPFDocument(fis);
+ WordExtractor docExtractor = new WordExtractor(doc);
+ String text = docExtractor.getText();
+ System.out.println("doc:");
+ info = text.trim();
+ docExtractor.close();
+ } else if (filePath.endsWith(".docx")) {
+ // 璇诲彇docx鏂囦欢
+ XWPFDocument docx = new XWPFDocument(fis);
+ XWPFWordExtractor docxExtractor = new XWPFWordExtractor(docx);
+ String text = docxExtractor.getText();
+ System.out.println("docx:");
+ info = text.trim();
+ docxExtractor.close();
+ } else {
+ System.out.println("涓嶆槸word鏂囦欢");
+ }
+// System.out.println(info);
+ List<String> infoList = new ArrayList<>();
+ String[] split = info.split("\n");
+ for (int i = 0; i < split.length; i++) {
+ System.out.println("======>" + split[i]);
+ if (i > 2) {
+ infoList.add(split[i]);
+ }
+ }
+ }
+ @Test
+ void testRedis(){
+ boolean b=true;
+ if (b) {
+ this.contextLoads();
+ } else {
+ this.TT();
+ }
+ System.out.println(2024%100);
+ new Thread(()->{
+ String timeSixNumberCode = MyUtil.getTimeSixNumberCode("CS", "number");
+ System.out.println(timeSixNumberCode);
+ }).start();
+ //new Thread(()->{
+ // String timeSixNumberCode = MyUtil.getTimeSixNumberCode("CS", "number");
+ // System.out.println(timeSixNumberCode);
+ //}).start();
+ //new Thread(()->{
+ // String timeSixNumberCode = MyUtil.getTimeSixNumberCode("CS", "number");
+ // System.out.println(timeSixNumberCode);
+ //}).start();
+ }
}
diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/User.java b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/User.java
index 14cea5b..7c1b746 100644
--- a/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/User.java
+++ b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/User.java
@@ -54,7 +54,7 @@
private String email;
@ApiModelProperty(value = "骞撮緞")
- private Integer age;
+ private String age;
@ApiModelProperty(value = "涓�х鍚�")
private String info;
diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java b/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java
index 744ad7e..72be050 100644
--- a/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java
+++ b/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java
@@ -49,6 +49,7 @@
}
Map<String, Object> data = new HashMap<>();
data.put("name",loginUser.get("name"));
+ data.put("id",loginUser.get("id"));
data.put("remind", remind);
return data;
}
@@ -103,7 +104,7 @@
User user = new User()
.setName(newPersonnelVo.getName())
.setAccount(newPersonnelVo.getAccount())
- .setAge(newPersonnelVo.getAge())
+ .setAge(String.valueOf(newPersonnelVo.getAge()))
.setPhone(newPersonnelVo.getPhone())
.setEmail(newPersonnelVo.getEmail())
.setRoleId(newPersonnelVo.getRole_id())
@@ -117,7 +118,7 @@
User user = new User()
.setName(updatePersonnelVo.getName())
.setAccount(updatePersonnelVo.getAccount())
- .setAge(updatePersonnelVo.getAge())
+ .setAge(String.valueOf(updatePersonnelVo.getAge()))
.setPhone(updatePersonnelVo.getPhone())
.setEmail(updatePersonnelVo.getEmail())
.setRoleId(updatePersonnelVo.getRole_id())
diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/vo/PagePersonnelVo.java b/user-server/src/main/java/com/yuanchu/limslaboratory/vo/PagePersonnelVo.java
index b5564c0..ec6866e 100644
--- a/user-server/src/main/java/com/yuanchu/limslaboratory/vo/PagePersonnelVo.java
+++ b/user-server/src/main/java/com/yuanchu/limslaboratory/vo/PagePersonnelVo.java
@@ -26,7 +26,7 @@
private Date createTime;
@ApiModelProperty(value = "骞撮緞", example = "23")
- private Integer age;
+ private String age;
@ApiModelProperty(value = "鎵嬫満鍙�", example = "12345678981")
private String phone;
diff --git a/user-server/src/main/resources/mapper/UserMapper.xml b/user-server/src/main/resources/mapper/UserMapper.xml
index 54ecc0e..4a8eb08 100644
--- a/user-server/src/main/resources/mapper/UserMapper.xml
+++ b/user-server/src/main/resources/mapper/UserMapper.xml
@@ -32,7 +32,7 @@
IFNULL(u.`phone`, '---') phone, IFNULL(u.`email`, '---') email, u.`job_state`
FROM `user` u, role r
WHERE u.`role_id` = r.`id`
- <if test="name != null">
+ <if test="name != null and name!=''">
AND u.name = #{name}
</if>
</select>
--
Gitblit v1.9.3