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