From fbba4ea24430b14eee18b190b7e08f1a58a8e504 Mon Sep 17 00:00:00 2001
From: XiaoRuby <3114200645@qq.com>
Date: 星期四, 03 八月 2023 13:48:38 +0800
Subject: [PATCH] LIMS管理系统框架-开发8-3

---
 inspection-server/src/main/resources/mapper/RawMaterialMapper.xml                                            |   22 +
 inspection-server/src/main/resources/mapper/LinkDetectionMapper.xml                                          |    2 
 framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MyBatisPlusConfig.java                     |   12 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java                           |   84 +++++
 framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MyMetaObjectHandler.java                   |    2 
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MeteringPlanServiceImpl.java         |   28 +
 standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/StandardServiceImpl.java               |    5 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkBasicInformationMapper.java            |   16 +
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java |   42 ++
 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionRecords.java                       |    3 
 sys/src/main/java/com/yuanchu/limslaboratory/CodeGenerator.java                                              |    2 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/RawMaterialController.java             |   57 +++
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MeteringPlanController.java            |   28 +
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/LinkBasicInformationService.java          |   19 +
 framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MyBaseMapper.java                          |   15 +
 inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/RawMaterialMapper.java                     |   22 +
 laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml                                           |    6 
 framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MySqlInjector.java                         |   23 +
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/LinkDetectionService.java                 |   20 +
 standard-server/src/main/resources/mapper/ProductMapper.xml                                                  |    2 
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MeteringPlanService.java                  |    9 
 user-server/src/main/java/com/yuanchu/limslaboratory/shiro/config/ShiroConfig.java                           |    2 
 standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductServiceImpl.java                |    1 
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/MeteringPlanMapper.java                    |    6 
 standard-server/src/main/java/com/yuanchu/limslaboratory/service/StandardService.java                        |    3 
 framework/src/main/java/com/yuanchu/limslaboratory/utils/MyUtil.java                                         |   12 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkDetectionMapper.java                   |   17 +
 standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Specifications.java                            |    2 
 inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml                                   |    2 
 standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java                                   |    6 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/RawMaterialService.java                   |   22 +
 standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/StandardMapper.java                          |    3 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkBasicInformationController.java    |   98 ++++++
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkDetectionServiceImpl.java        |   34 ++
 standard-server/src/main/resources/mapper/StandardMapper.xml                                                 |   18 +
 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/RawMaterial.java                             |   84 +++++
 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkBasicInformation.java                    |   89 +++++
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RawMaterialServiceImpl.java          |   33 ++
 38 files changed, 827 insertions(+), 24 deletions(-)

diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MyBaseMapper.java b/framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MyBaseMapper.java
new file mode 100644
index 0000000..cd69aeb
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MyBaseMapper.java
@@ -0,0 +1,15 @@
+package com.yuanchu.limslaboratory.mybatis_config;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import java.util.List;
+
+/**
+ * 鑷畾涔夋坊鍔爉ybatis-plus鎵归噺娣诲姞
+ * @param <T>
+ */
+public interface MyBaseMapper <T> extends BaseMapper<T> {
+
+    int insertBatchSomeColumn(List<T> entityList);
+}
+
diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/config/MyBatisPlusConfig.java b/framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MyBatisPlusConfig.java
similarity index 82%
rename from framework/src/main/java/com/yuanchu/limslaboratory/config/MyBatisPlusConfig.java
rename to framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MyBatisPlusConfig.java
index ccb86fc..e99a25e 100644
--- a/framework/src/main/java/com/yuanchu/limslaboratory/config/MyBatisPlusConfig.java
+++ b/framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MyBatisPlusConfig.java
@@ -1,4 +1,4 @@
-package com.yuanchu.limslaboratory.config;
+package com.yuanchu.limslaboratory.mybatis_config;
 
 import com.baomidou.mybatisplus.annotation.DbType;
 import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
@@ -7,6 +7,7 @@
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
+
 @Configuration
 public class MyBatisPlusConfig {
 
@@ -17,6 +18,15 @@
     }
 
     /**
+     * 寮�鍚壒閲忔坊鍔�
+     * @return
+     */
+    @Bean
+    public MySqlInjector sqlInjector() {
+        return new MySqlInjector();
+    }
+
+    /**
      * 闇�瑕侀厤缃嫤鎴櫒锛屼笉鐒跺湪AddDevice涓殑total鏃犳硶鑾峰彇鍒�
      * @return
      */
diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/handler/MyMetaObjectHandler.java b/framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MyMetaObjectHandler.java
similarity index 93%
rename from framework/src/main/java/com/yuanchu/limslaboratory/handler/MyMetaObjectHandler.java
rename to framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MyMetaObjectHandler.java
index b72572a..aee591a 100644
--- a/framework/src/main/java/com/yuanchu/limslaboratory/handler/MyMetaObjectHandler.java
+++ b/framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MyMetaObjectHandler.java
@@ -1,4 +1,4 @@
-package com.yuanchu.limslaboratory.handler;
+package com.yuanchu.limslaboratory.mybatis_config;
 
 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
 import org.apache.ibatis.reflection.MetaObject;
diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MySqlInjector.java b/framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MySqlInjector.java
new file mode 100644
index 0000000..5833a2e
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/limslaboratory/mybatis_config/MySqlInjector.java
@@ -0,0 +1,23 @@
+package com.yuanchu.limslaboratory.mybatis_config;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.core.injector.AbstractMethod;
+import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
+import com.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn;
+
+import java.util.List;
+
+/**
+ * 鎵归噺娣诲姞
+ */
+public class MySqlInjector extends DefaultSqlInjector {
+
+    @Override
+    public List<AbstractMethod> getMethodList(Class<?> mapperClass) {
+        List<AbstractMethod> methodList = super.getMethodList(mapperClass);
+        //澧炲姞鑷畾涔夋柟娉曪紝瀛楁娉ㄨВ涓婁笉绛変簬FieldFill.DEFAULT鐨勫瓧娈垫墠浼氭彃鍏�
+        methodList.add(new InsertBatchSomeColumn(i -> i.getFieldFill() != FieldFill.DEFAULT));
+        return methodList;
+    }
+
+}
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 2ba0601..a9e8ade 100644
--- a/framework/src/main/java/com/yuanchu/limslaboratory/utils/MyUtil.java
+++ b/framework/src/main/java/com/yuanchu/limslaboratory/utils/MyUtil.java
@@ -62,4 +62,16 @@
         }
         return sb.toString();
     }
+
+    public static String getTimeSixNumberCode(String prefix){
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        String format = simpleDateFormat.format(new Date());
+        String timeStr = format.replace("-", "");
+        long incrNum = RedisUtil.incr("num", 1);
+        if(incrNum == 1){
+            RedisUtil.expire("num", 60 * 60 * 24);
+        }
+        String sixIncr = String.format("%06d", incrNum);
+        return prefix + timeStr + sixIncr;
+    }
 }
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkBasicInformationController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkBasicInformationController.java
new file mode 100644
index 0000000..2e9b26e
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkBasicInformationController.java
@@ -0,0 +1,98 @@
+package com.yuanchu.limslaboratory.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.yuanchu.limslaboratory.pojo.LinkBasicInformation;
+import com.yuanchu.limslaboratory.pojo.Material;
+import com.yuanchu.limslaboratory.pojo.Standard;
+import com.yuanchu.limslaboratory.service.LinkBasicInformationService;
+import com.yuanchu.limslaboratory.service.MaterialService;
+import com.yuanchu.limslaboratory.service.StandardService;
+import com.yuanchu.limslaboratory.utils.RedisUtil;
+import com.yuanchu.limslaboratory.vo.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-03
+ */
+@Api(tags = "鎶ユ绠$悊-->濮旀墭妫�楠�-->閾炬帴")
+@RestController
+@RequestMapping("/link-basic")
+public class LinkBasicInformationController {
+
+    @Autowired
+    private LinkBasicInformationService linkBasicInformationService;
+
+    @Autowired
+    private MaterialService materialService;
+
+    @Autowired
+    private StandardService standardService;
+
+    @ApiOperation("鑾峰彇閾炬帴")
+    @GetMapping("/link")
+    public Result<?> getLink() {
+        Object link1 = null;
+        try {
+            link1 = RedisUtil.get("link");
+        } catch (Exception e) {
+            String uuid = IdWorker.get32UUID();
+            RedisUtil.set("link", uuid, 60 * 24);
+            return Result.success("success", uuid);
+        }
+        return Result.success(link1);
+    }
+
+    @ApiOperation("鑾峰彇鏍峰搧鍚嶇О")
+    @GetMapping("/material")
+    public Result<?> getMaterialIdAndName(@RequestHeader("link") String link) {
+        String redisLink = RedisUtil.get("link").toString();
+        if (redisLink.equals(link)){
+            LambdaQueryWrapper<Material> wrapper = new LambdaQueryWrapper<>();
+            wrapper.select(Material::getId, Material::getName, Material::getCode);
+            List<Map<String, Object>> maps = materialService.listMaps(wrapper);
+            return Result.success(maps);
+        }
+        return Result.fail("鎶辨瓑閾炬帴閿欒鎴栧凡杩囨湡锛�");
+    }
+
+    @ApiOperation("鑾峰彇瑙勬牸鍨嬪彿")
+    @GetMapping("/specification")
+    public Result<?> getSpecificationIdAndName(@RequestHeader("link") String link, String materialId) {
+        String redisLink = RedisUtil.get("link").toString();
+        if (redisLink.equals(link)){
+            List<Map<String, Object>> specificationIdAndName = standardService.getSpecificationIdAndName(materialId);
+            return Result.success(specificationIdAndName);
+        }
+        return Result.fail("鎶辨瓑閾炬帴閿欒鎴栧凡杩囨湡锛�");
+    }
+
+    @ApiOperation("娣诲姞妫�楠岀敵璇峰崟")
+    @PostMapping("/addInspection")
+    public Result<?> addLinkBasicInformation(@RequestHeader("link") String link, @RequestBody LinkBasicInformation linkBasicInformation) {
+        String redisLink = RedisUtil.get("link").toString();
+        if (redisLink.equals(link)){
+            String code = linkBasicInformationService.addLinkBasicInformation(linkBasicInformation);
+            if (!ObjectUtils.isEmpty(code)){
+                return Result.success("娣诲姞鎴愬姛锛�", code);
+            } else {
+                return Result.fail("娣诲姞澶辫触!");
+            }
+        }
+        return Result.fail("鎶辨瓑閾炬帴閿欒鎴栧凡杩囨湡锛�");
+
+    }
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/RawMaterialController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/RawMaterialController.java
new file mode 100644
index 0000000..e312512
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/RawMaterialController.java
@@ -0,0 +1,57 @@
+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.RawMaterial;
+import com.yuanchu.limslaboratory.service.RawMaterialService;
+import com.yuanchu.limslaboratory.utils.MyUtil;
+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 java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-07-28
+ */
+@Api(tags = "1銆佺墿鏂欒〃")
+@RestController
+@RequestMapping("/raw-material")
+public class RawMaterialController {
+
+    @Autowired
+    private RawMaterialService rawMaterialService;
+
+    @ApiOperation("鏌ヨ鎵�鏈夋楠岃鍒掑垎閰�")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "pageNo", value = "璧峰椤�", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "pageSize", value = "姣忎竴椤垫暟閲�", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "materialCoding", value = "鏉愭枡缂栫爜", dataTypeClass = String.class),
+            @ApiImplicitParam(name = "materialName", value = "鏉愭枡鍚嶇О", dataTypeClass = String.class),
+            @ApiImplicitParam(name = "condition", value = "鐘舵��", dataTypeClass = String.class),
+            @ApiImplicitParam(name = "createTime", value = "鏉ユ枡鏃ユ湡", dataTypeClass = String.class)
+    })
+    @GetMapping("/selectAll")
+    public Result<?> selectRawMaterial(Integer pageSize, Integer pageNo, String materialCoding, String materialName, String condition, String createTime) {
+        IPage<RawMaterial> iPage = rawMaterialService.selectRawMaterial(materialCoding, materialName, condition, createTime, new Page<Objects>(pageNo, pageSize));
+        Map<String, Object> map = new HashMap<>();
+        map.put("row", iPage.getRecords());
+        map.put("total", iPage.getTotal());
+        return Result.success(map);
+    }
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkBasicInformationMapper.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkBasicInformationMapper.java
new file mode 100644
index 0000000..ee8b0a4
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkBasicInformationMapper.java
@@ -0,0 +1,16 @@
+package com.yuanchu.limslaboratory.mapper;
+
+import com.yuanchu.limslaboratory.pojo.LinkBasicInformation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-03
+ */
+public interface LinkBasicInformationMapper extends BaseMapper<LinkBasicInformation> {
+
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkDetectionMapper.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkDetectionMapper.java
new file mode 100644
index 0000000..7e6da26
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkDetectionMapper.java
@@ -0,0 +1,17 @@
+package com.yuanchu.limslaboratory.mapper;
+
+import com.yuanchu.limslaboratory.mybatis_config.MyBaseMapper;
+import com.yuanchu.limslaboratory.pojo.LinkDetection;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-03
+ */
+public interface LinkDetectionMapper extends MyBaseMapper<LinkDetection> {
+
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/RawMaterialMapper.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/RawMaterialMapper.java
new file mode 100644
index 0000000..a47e6a5
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/RawMaterialMapper.java
@@ -0,0 +1,22 @@
+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.RawMaterial;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-07-28
+ */
+public interface RawMaterialMapper extends BaseMapper<RawMaterial> {
+
+    IPage<RawMaterial> selectRawMaterial(String materialCoding, String materialName, String condition, String createTime, Page<Objects> page);
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionRecords.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionRecords.java
index 29590ed..aff8071 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionRecords.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionRecords.java
@@ -63,9 +63,6 @@
     @TableField("state")
     private Integer state;
 
-    /**
-     * 妫�娴嬫棩鏈�
-     */
     @ApiModelProperty(value = "妫�娴嬫棩鏈�")
     @TableField(fill = FieldFill.INSERT)
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkBasicInformation.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkBasicInformation.java
new file mode 100644
index 0000000..60e4a5a
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkBasicInformation.java
@@ -0,0 +1,89 @@
+package com.yuanchu.limslaboratory.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="LinkBasicInformation瀵硅薄", description="")
+public class LinkBasicInformation implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "涓婚敭鑷", hidden = true)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "濮旀墭缂栫爜", hidden = true)
+    private String entrustCoding;
+
+    @ApiModelProperty(value = "濮旀墭鍗曚綅", required = true, example = "闃块噷宸村反")
+    private String entrusted;
+
+    @ApiModelProperty(value = "鑱旂郴浜�", required = true, example = "灏忛粦")
+    private String contacts;
+
+    @ApiModelProperty(value = "鑱旂郴鐢佃瘽", required = true, example = "12321423432")
+    private String contactNumber;
+
+    @ApiModelProperty(value = "鑱旂郴鍦板潃", required = true, example = "姹熻嫃鍗楅��")
+    private String contactAddress;
+
+    @ApiModelProperty(value = "瀹屾垚鏈熼檺", required = true, example = "2023-08-03", dataType = "date")
+    private Date completionDeadline;
+
+    @ApiModelProperty(value = "閫佹牱鏃堕棿", required = true, example = "2023-08-03", dataType = "date")
+    private Date inspectionTime;
+
+    @ApiModelProperty(value = "閫佹牱鏂瑰紡:1閫佹牱;2涓婇棬", required = true, example = "1")
+    private Integer sampleDeliveryMode;
+
+    @ApiModelProperty(value = "閫佹牱浜猴細濡傛灉閫佹牱鏂瑰紡閫夋嫨浜嗛�佹牱锛岄偅涔堝繀濉�", example = "灏忕櫧")
+    private String sampleSender;
+
+    @ApiModelProperty(value = "閫佹牱浜虹數璇濓細濡傛灉閫佹牱鏂瑰紡閫夋嫨浜嗛�佹牱锛岄偅涔堝繀濉�", example = "123456789676")
+    private String sampleDeliveryPhone;
+
+    @ApiModelProperty(value = "鎶ュ憡鏁�", required = true, example = "23")
+    private Integer reportNumber;
+
+    @ApiModelProperty(value = "濮旀墭澶囨敞", example = "濮旀墭澶囨敞YPBH123456789YPBH123456789YPBH123456789")
+    private String entrustRemarks;
+
+    @TableLogic(value = "1", delval = "0")
+    @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
+    private Integer state;
+
+    @TableField(fill = FieldFill.INSERT)
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿", hidden = true)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    @ApiModelProperty(value = "鏇存柊鏃堕棿", hidden = true)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "妫�楠屼俊鎭�")
+    private List<LinkDetection> linkDetectionList;
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java
new file mode 100644
index 0000000..cde35e7
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java
@@ -0,0 +1,84 @@
+package com.yuanchu.limslaboratory.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="LinkDetection瀵硅薄", description="")
+public class LinkDetection implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "涓婚敭", hidden = true)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField(fill = FieldFill.INSERT)
+    @ApiModelProperty(value = "鏍峰搧缂栧彿", required = true, example = "YPBH123456789")
+    private String sampleNumber;
+
+    @TableField(fill = FieldFill.INSERT)
+    @ApiModelProperty(value = "鏍峰搧鍚嶇О", required = true, example = "鍙戝姩鏈�")
+    private String sampleName;
+
+    @TableField(fill = FieldFill.INSERT)
+    @ApiModelProperty(value = "瑙勬牸鍨嬪彿", required = true, example = "GGXH-AAAAA")
+    private String specificationsModels;
+
+    @TableField(fill = FieldFill.INSERT)
+    @NotBlank(message = "璇峰~鍐欏崟浣嶏紒")
+    @ApiModelProperty(value = "鍗曚綅", required = true, example = "鐧惧害")
+    private String unit;
+
+    @TableField(fill = FieldFill.INSERT)
+    @NotNull(message = "璇峰~鍐欐牱鍝佹暟閲忥紒")
+    @ApiModelProperty(value = "鏍峰搧鏁伴噺", required = true, example = "20")
+    private Integer samplesNumber;
+
+    @TableField(fill = FieldFill.INSERT)
+    @NotBlank(message = "璇曢獙涓嶈兘涓虹┖锛�")
+    @ApiModelProperty(value = "璇曢獙", required = true, example = "鍋氭ⅵ")
+    private String experiment;
+
+    @TableField(fill = FieldFill.INSERT)
+    @ApiModelProperty(value = "澶囨敞", example = "閫氳繃浜�")
+    private String remarks;
+
+    @TableField(fill = FieldFill.INSERT)
+    @ApiModelProperty(value = "LinkBasicInformation瀵硅薄Id", hidden = true)
+    private Integer linkBasicId;
+
+    @TableLogic(value = "1", delval = "0")
+    @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
+    private Integer state;
+
+    @TableField(fill = FieldFill.INSERT)
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿", hidden = true)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    @ApiModelProperty(value = "鏇存柊鏃堕棿", hidden = true)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/RawMaterial.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/RawMaterial.java
new file mode 100644
index 0000000..3a20172
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/RawMaterial.java
@@ -0,0 +1,84 @@
+package com.yuanchu.limslaboratory.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-07-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="RawMaterial瀵硅薄", description="")
+public class RawMaterial implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "涓婚敭")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "渚涘簲鍟嗗悕绉�")
+    private String supplierName;
+
+    @ApiModelProperty(value = "鏉愭枡缂栫爜")
+    private String materialCoding;
+
+    @ApiModelProperty(value = "鏉愭枡鍚嶇О")
+    private String materialName;
+
+    @ApiModelProperty(value = "瑙勬牸鍨嬪彿")
+    private String specificationsModels;
+
+    @ApiModelProperty(value = "鍗曚綅")
+    private String unit;
+
+    @ApiModelProperty(value = "鏁伴噺")
+    private Integer quantity;
+
+    @ApiModelProperty(value = "鎶ユ鏃ユ湡")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDateTime inspectionDate;
+
+    @ApiModelProperty(value = "妫�楠屼汉")
+    private String surveyor;
+
+    @ApiModelProperty(value = "妫�楠屾棩鏈�")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDateTime dateSurvey;
+
+    @ApiModelProperty(value = "鐘舵��")
+    private Integer condition;
+
+    @TableLogic(value = "1", delval = "0")
+    @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
+    private Integer state;
+
+    @TableField(fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿", hidden = true)
+    private Date createTime;
+
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @ApiModelProperty(value = "鏇存柊鏃堕棿", hidden = true)
+    private Date updateTime;
+
+    @ApiModelProperty(value = "涔愯閿�", hidden = true)
+    private Integer version;
+
+
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/LinkBasicInformationService.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/LinkBasicInformationService.java
new file mode 100644
index 0000000..8a6b1f8
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/LinkBasicInformationService.java
@@ -0,0 +1,19 @@
+package com.yuanchu.limslaboratory.service;
+
+import com.yuanchu.limslaboratory.pojo.LinkBasicInformation;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-03
+ */
+public interface LinkBasicInformationService extends IService<LinkBasicInformation> {
+
+    @Transactional(rollbackFor = Exception.class)
+    String addLinkBasicInformation(LinkBasicInformation linkBasicInformation);
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/LinkDetectionService.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/LinkDetectionService.java
new file mode 100644
index 0000000..ecd44e5
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/LinkDetectionService.java
@@ -0,0 +1,20 @@
+package com.yuanchu.limslaboratory.service;
+
+import com.yuanchu.limslaboratory.pojo.LinkDetection;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-03
+ */
+public interface LinkDetectionService extends IService<LinkDetection> {
+
+    // 鎵归噺娣诲姞
+    void insertListData(Integer id, List<LinkDetection> linkDetectionList);
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/RawMaterialService.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/RawMaterialService.java
new file mode 100644
index 0000000..8ba5217
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/RawMaterialService.java
@@ -0,0 +1,22 @@
+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.RawMaterial;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-07-28
+ */
+public interface RawMaterialService extends IService<RawMaterial> {
+
+    IPage<RawMaterial> selectRawMaterial(String materialCoding, String materialName, String condition, String createTime, Page<Objects> page);
+}
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
new file mode 100644
index 0000000..1d8a285
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java
@@ -0,0 +1,42 @@
+package com.yuanchu.limslaboratory.service.impl;
+
+import com.yuanchu.limslaboratory.pojo.LinkBasicInformation;
+import com.yuanchu.limslaboratory.mapper.LinkBasicInformationMapper;
+import com.yuanchu.limslaboratory.service.LinkBasicInformationService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yuanchu.limslaboratory.service.LinkDetectionService;
+import com.yuanchu.limslaboratory.utils.MyUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-03
+ */
+@Service
+public class LinkBasicInformationServiceImpl extends ServiceImpl<LinkBasicInformationMapper, LinkBasicInformation> implements LinkBasicInformationService {
+
+    @Resource
+    private LinkBasicInformationMapper linkBasicInformationMapper;
+
+    @Autowired
+    private LinkDetectionService linkDetectionService;
+
+    @Override
+    public String addLinkBasicInformation(LinkBasicInformation linkBasicInformation) {
+        String code = MyUtil.getTimeSixNumberCode("SL");
+        linkBasicInformation.setEntrustCoding(code);
+        int insert = linkBasicInformationMapper.insert(linkBasicInformation);
+        if (insert == 1) {
+            linkDetectionService.insertListData(linkBasicInformation.getId(), linkBasicInformation.getLinkDetectionList());
+            return code;
+        }
+        return null;
+    }
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkDetectionServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkDetectionServiceImpl.java
new file mode 100644
index 0000000..87a1700
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkDetectionServiceImpl.java
@@ -0,0 +1,34 @@
+package com.yuanchu.limslaboratory.service.impl;
+
+import com.yuanchu.limslaboratory.pojo.LinkDetection;
+import com.yuanchu.limslaboratory.mapper.LinkDetectionMapper;
+import com.yuanchu.limslaboratory.service.LinkDetectionService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-03
+ */
+@Service
+public class LinkDetectionServiceImpl extends ServiceImpl<LinkDetectionMapper, LinkDetection> implements LinkDetectionService {
+
+    @Resource
+    private LinkDetectionMapper linkDetectionMapper;
+
+    // 鎵归噺娣诲姞
+    @Override
+    public void insertListData(Integer id, List<LinkDetection> linkDetectionList) {
+        for (LinkDetection linkDetection:linkDetectionList){
+            linkDetection.setLinkBasicId(id);
+        }
+        linkDetectionMapper.insertBatchSomeColumn(linkDetectionList);
+    }
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RawMaterialServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RawMaterialServiceImpl.java
new file mode 100644
index 0000000..e4220a0
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RawMaterialServiceImpl.java
@@ -0,0 +1,33 @@
+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.pojo.RawMaterial;
+import com.yuanchu.limslaboratory.mapper.RawMaterialMapper;
+import com.yuanchu.limslaboratory.service.RawMaterialService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-07-28
+ */
+@Service
+public class RawMaterialServiceImpl extends ServiceImpl<RawMaterialMapper, RawMaterial> implements RawMaterialService {
+
+    @Resource
+    private RawMaterialMapper rawMaterialMapper;
+
+    @Override
+    public IPage<RawMaterial> selectRawMaterial(String materialCoding, String materialName, String condition, String createTime, Page<Objects> page) {
+        return rawMaterialMapper.selectRawMaterial(materialCoding, materialName, condition, createTime, page);
+    }
+}
diff --git a/laboratory-server/src/main/resources/mapper/pojoMapper.xml b/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml
similarity index 65%
copy from laboratory-server/src/main/resources/mapper/pojoMapper.xml
copy to inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml
index 8011603..b82d831 100644
--- a/laboratory-server/src/main/resources/mapper/pojoMapper.xml
+++ b/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml
@@ -1,5 +1,5 @@
 <?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.MeteringPlanMapper">
+<mapper namespace="com.yuanchu.limslaboratory.mapper.LinkBasicInformationMapper">
 
 </mapper>
diff --git a/laboratory-server/src/main/resources/mapper/pojoMapper.xml b/inspection-server/src/main/resources/mapper/LinkDetectionMapper.xml
similarity index 67%
rename from laboratory-server/src/main/resources/mapper/pojoMapper.xml
rename to inspection-server/src/main/resources/mapper/LinkDetectionMapper.xml
index 8011603..192de47 100644
--- a/laboratory-server/src/main/resources/mapper/pojoMapper.xml
+++ b/inspection-server/src/main/resources/mapper/LinkDetectionMapper.xml
@@ -1,5 +1,5 @@
 <?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.MeteringPlanMapper">
+<mapper namespace="com.yuanchu.limslaboratory.mapper.LinkDetectionMapper">
 
 </mapper>
diff --git a/inspection-server/src/main/resources/mapper/RawMaterialMapper.xml b/inspection-server/src/main/resources/mapper/RawMaterialMapper.xml
new file mode 100644
index 0000000..27d0b48
--- /dev/null
+++ b/inspection-server/src/main/resources/mapper/RawMaterialMapper.xml
@@ -0,0 +1,22 @@
+<?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.RawMaterialMapper">
+
+    <select id="selectRawMaterial" resultType="com.yuanchu.limslaboratory.pojo.RawMaterial">
+        SELECT *
+        FROM raw_material r
+        where r.state = 1
+        <if test="materialCoding != null and materialCoding != ''">
+            AND r.`material_coding` LIKE CONCAT('%',#{materialCoding},'%')
+        </if>
+        <if test="materialName != null and materialName != ''">
+            AND r.`material_name` LIKE CONCAT('%',#{materialName},'%')
+        </if>
+        <if test="condition != null and condition != ''">
+            AND r.`condition` = #{condition}
+        </if>
+        <if test="createTime != null and createTime != ''">
+            AND DATE_FORMAT(r.`create_time`,'%Y-%m-%d') = #{createTime}
+        </if>
+    </select>
+</mapper>
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 38e22ae..bc6ea21 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
@@ -1,6 +1,8 @@
 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.Instrument;
 import com.yuanchu.limslaboratory.pojo.MeteringPlan;
 import com.yuanchu.limslaboratory.service.MeteringPlanService;
@@ -8,11 +10,14 @@
 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.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * <p>
@@ -39,4 +44,27 @@
         }
         return Result.fail("娣诲姞璁¢噺璁″垝澶辫触! ");
     }
+
+    @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);
+    }
+
+    @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));
+        return Result.success(page);
+    }
 }
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 06d0b84..3153a71 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
@@ -1,7 +1,12 @@
 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.MeteringPlan;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import java.util.Map;
+import java.util.Objects;
 
 /**
  * <p>
@@ -13,4 +18,5 @@
  */
 public interface MeteringPlanMapper extends BaseMapper<MeteringPlan> {
 
+    IPage<Map<String, Object>> pagingQueryOfMeasurementLedger(Page<Objects> page);
 }
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 a6ccc4c..5302b0c 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
@@ -1,7 +1,12 @@
 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.MeteringPlan;
 import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
+import java.util.Objects;
 
 /**
  * <p>
@@ -14,4 +19,8 @@
 public interface MeteringPlanService extends IService<MeteringPlan> {
 
     Integer addMeteringPlanInformation(MeteringPlan meteringPlan);
+
+    IPage<Map<String, Object>> pagingQueryOfMeteringPlan(String measureCodeOrNameOrUnit, Page<Objects> page);
+
+    IPage<Map<String, Object>> pagingQueryOfMeasurementLedger(Page<Objects> page);
 }
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 7befcaa..1a5f4a8 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
@@ -1,5 +1,9 @@
 package com.yuanchu.limslaboratory.service.impl;
 
+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.mapper.MeteringPlanMapper;
 import com.yuanchu.limslaboratory.service.MeteringPlanService;
@@ -11,6 +15,8 @@
 import javax.annotation.Resource;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.Map;
+import java.util.Objects;
 
 /**
  * <p>
@@ -28,14 +34,18 @@
 
     @Override
     public Integer addMeteringPlanInformation(MeteringPlan meteringPlan) {
-        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
-        String format = simpleDateFormat.format(new Date());
-        String replace = format.replace("-", "");
-        MyUtil.PrintLog("P" + replace);
-        long num = RedisUtil.incr("num", 1);
-        
-        MyUtil.PrintLog(String.valueOf(num));
-//        return meteringPlanMapper.insert(meteringPlan);
-        return 1;
+        String timeSixNumber = MyUtil.getTimeSixNumberCode("P");
+        meteringPlan.setPlannedOrderNumber(timeSixNumber);
+        return meteringPlanMapper.insert(meteringPlan);
+    }
+
+    @Override
+    public IPage<Map<String, Object>> pagingQueryOfMeteringPlan(String measureCodeOrNameOrUnit, Page<Objects> page) {
+        return null;
+    }
+
+    @Override
+    public IPage<Map<String, Object>> pagingQueryOfMeasurementLedger(Page<Objects> page) {
+        return meteringPlanMapper.pagingQueryOfMeasurementLedger(page);
     }
 }
diff --git a/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml b/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml
index 8011603..ca6ab6b 100644
--- a/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml
+++ b/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml
@@ -2,4 +2,10 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <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>
 </mapper>
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/StandardMapper.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/StandardMapper.java
index 3a15040..8450941 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/StandardMapper.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/StandardMapper.java
@@ -5,6 +5,7 @@
 import com.yuanchu.limslaboratory.pojo.Standard;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -18,4 +19,6 @@
 public interface StandardMapper extends BaseMapper<Standard> {
 
     IPage<Map<String, Object>> listPageStandardsInformation(Page<Object> page, String idOrNameOfStandards);
+
+    List<Map<String, Object>> getSpecificationIdAndName(String materialId);
 }
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java
index 0acfd49..707d80e 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java
@@ -27,14 +27,14 @@
 
     private static final long serialVersionUID = 1L;
 
-    @ApiModelProperty(value = "娴嬭瘯鏍囧噯id", hidden = true)
+    @ApiModelProperty(value = "椤圭洰id", hidden = true)
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
-    @ApiModelProperty(value = "娴嬭瘯鏍囧噯鍚嶇О", example = "鍗曚綅闀垮害璐ㄩ噺", required = true)
+    @ApiModelProperty(value = "椤圭洰鍚嶇О", example = "鍗曚綅闀垮害璐ㄩ噺", required = true)
     private String name;
 
-    @ApiModelProperty(value = "娴嬭瘯鏍囧噯鐖剁被", example = "閾濆寘閽㈣姱閾濈粸绾�")
+    @ApiModelProperty(value = "椤圭洰鐖剁被", example = "閾濆寘閽㈣姱閾濈粸绾�")
     private String father;
 
     @ApiModelProperty(value = "鍗曚綅", example = "km", required = true)
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Specifications.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Specifications.java
index 6e70cdf..17e3a2f 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Specifications.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Specifications.java
@@ -34,7 +34,7 @@
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
-    @ApiModelProperty(value = "浜у搧瑙勬牸鍚嶇О", example = "AB", required = true)
+    @ApiModelProperty(value = "瑙勬牸鍚嶇О", example = "AB", required = true)
     private String name;
 
     @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/StandardService.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/StandardService.java
index ef36a18..6e68274 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/StandardService.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/StandardService.java
@@ -7,6 +7,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -29,4 +30,6 @@
     Integer deleteStandardInformation(Integer standardsId);
 
     Integer addStandardInformation(AddStandardDto addStandardDto);
+
+    List<Map<String, Object>> getSpecificationIdAndName(String materialId);
 }
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductServiceImpl.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductServiceImpl.java
index 5b7371d..b82da28 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductServiceImpl.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductServiceImpl.java
@@ -48,7 +48,6 @@
     public IPage<Map<String, Object>> pageProductInformation(String productCodeOrName, Integer specificationsId, Page<Objects> page) {
         IPage<Map<String, Object>> iPage = productMapper.pageProductInformation(productCodeOrName, specificationsId, page);
         List<Map<String, Object>> maps = iPage.getRecords();
-        MyUtil.PrintLog(maps.toString());
         maps.forEach(map -> {
             int num = Integer.parseInt(map.get("num").toString());
             boolean children = false;
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/StandardServiceImpl.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/StandardServiceImpl.java
index bfc9618..7b13059 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/StandardServiceImpl.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/StandardServiceImpl.java
@@ -92,4 +92,9 @@
         }
         return 0;
     }
+
+    @Override
+    public List<Map<String, Object>> getSpecificationIdAndName(String materialId) {
+        return standardMapper.getSpecificationIdAndName(materialId);
+    }
 }
diff --git a/standard-server/src/main/resources/mapper/ProductMapper.xml b/standard-server/src/main/resources/mapper/ProductMapper.xml
index 8a2d7fd..62d9615 100644
--- a/standard-server/src/main/resources/mapper/ProductMapper.xml
+++ b/standard-server/src/main/resources/mapper/ProductMapper.xml
@@ -13,7 +13,7 @@
     </select>
 
     <select id="selectOneChildren" resultType="map">
-        SELECT p.`id`, p.`unit`, p.`required`, p.`internal`
+        SELECT p.`id`, p.`name`, p.`unit`, p.`required`, p.`internal`
         FROM product p
         WHERE p.`father` = #{father}
     </select>
diff --git a/standard-server/src/main/resources/mapper/StandardMapper.xml b/standard-server/src/main/resources/mapper/StandardMapper.xml
index 0e0f8ce..b232854 100644
--- a/standard-server/src/main/resources/mapper/StandardMapper.xml
+++ b/standard-server/src/main/resources/mapper/StandardMapper.xml
@@ -2,4 +2,22 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.yuanchu.limslaboratory.mapper.StandardMapper">
 
+    <resultMap id="BaseResultMap" type="java.util.Map">
+        <id property="specificationsId" column="specificationsId" jdbcType="INTEGER"/>
+        <result property="specificationsName" column="specificationsName" jdbcType="VARCHAR"/>
+        <collection property="children" resultMap="BaseResultMapChildren" javaType="java.util.List"/>
+    </resultMap>
+    <resultMap id="BaseResultMapChildren" type="java.util.Map">
+        <id property="modelId" column="modelId" jdbcType="INTEGER"/>
+        <result property="modelName" column="modelName" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <select id="getSpecificationIdAndName" resultMap="BaseResultMap">
+        SELECT s.`id` specificationsId, s.`name` specificationsName, f.id modelId, f.name modelName
+        FROM standard s
+                 LEFT JOIN (SELECT f.`id`, f.`name`, f.`standard_id` FROM specifications f WHERE f.`state` = 1) f
+                           ON s.`id` = f.`standard_id`
+        WHERE s.`material_id` = #{materialId}
+          AND s.`state` = 1
+    </select>
 </mapper>
diff --git a/sys/src/main/java/com/yuanchu/limslaboratory/CodeGenerator.java b/sys/src/main/java/com/yuanchu/limslaboratory/CodeGenerator.java
index e881ded..62440cc 100644
--- a/sys/src/main/java/com/yuanchu/limslaboratory/CodeGenerator.java
+++ b/sys/src/main/java/com/yuanchu/limslaboratory/CodeGenerator.java
@@ -22,7 +22,7 @@
     public static String database_username = "root";
     public static String database_password= "123456";
     public static String author = "姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃";
-    public static String model_name = "/laboratory-server"; // 濡傛灉涓哄垎甯冨紡濉瓙妯″潡鍚嶇О锛屽鏋滀笉鏄垎甯冨紡涓虹┖鍗冲彲
+    public static String model_name = "/inspection-server"; // 濡傛灉涓哄垎甯冨紡濉瓙妯″潡鍚嶇О锛屽鏋滀笉鏄垎甯冨紡涓虹┖鍗冲彲
     public static String setParent = "com.yuanchu.limslaboratory"; // 鍖呰矾寰�
     public static Boolean Override = false; // 鏄惁瑕嗙洊鍘熸潵鐨勬枃浠讹紵
 
diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/shiro/config/ShiroConfig.java b/user-server/src/main/java/com/yuanchu/limslaboratory/shiro/config/ShiroConfig.java
index 382e740..3109653 100644
--- a/user-server/src/main/java/com/yuanchu/limslaboratory/shiro/config/ShiroConfig.java
+++ b/user-server/src/main/java/com/yuanchu/limslaboratory/shiro/config/ShiroConfig.java
@@ -67,7 +67,7 @@
         map.put("/api-docs", "anon");
         map.put("/v3/**", "anon");
 
-
+        map.put("/link-basic/*", "anon");
         map.put("/user/login/**","anon");//琛ㄧず杩欎釜涓哄叕鍏辫祫婧� 涓�瀹氭槸鍦ㄥ彈闄愯祫婧愪笂闈�
 //        map.put("/**","jwtFilter");//琛ㄧず杩欎釜璧勬簮闇�瑕佽璇佸拰鎺堟潈
 

--
Gitblit v1.9.3