From e6ffa9fcebef022be1e8e8162c65f52754f9081e Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期六, 19 八月 2023 15:11:22 +0800
Subject: [PATCH] 基础数据

---
 standard-server/src/main/resources/mapper/SpecificationsMapper.xml                                           |   11 
 inspection-server/src/main/resources/mapper/RawMaterialMapper.xml                                            |   12 
 standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductModelController.java              |  106 +++++++
 standard-server/src/main/resources/mapper/MaterialMapper.xml                                                 |   17 
 standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductController.java                   |   28 -
 standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/StandardServiceImpl.java               |   28 +
 standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/SpecificationsServiceImpl.java         |   22 +
 inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkBasicInformationMapper.java            |    8 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java |    8 
 standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductModelMapper.java                      |   32 ++
 standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Material.java                                  |    2 
 standard-server/src/main/java/com/yuanchu/limslaboratory/service/MaterialService.java                        |    8 
 standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java               |   57 ++
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/LinkBasicInformationService.java          |    8 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/RawMaterialMapper.java                     |    2 
 standard-server/src/main/java/com/yuanchu/limslaboratory/controller/StandardController.java                  |    2 
 standard-server/src/main/resources/mapper/ProductModelMapper.xml                                             |   43 ++
 standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/ProductModelDto.java                       |   33 ++
 standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductModelService.java                    |   77 +++++
 standard-server/src/main/resources/mapper/ProductMapper.xml                                                  |   36 +-
 inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java              |   25 -
 sys/src/main/resources/application-dev.yml                                                                   |    2 
 standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductServiceImpl.java                |   40 -
 standard-server/src/main/java/com/yuanchu/limslaboratory/service/StandardService.java                        |    1 
 standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/MaterialMapper.java                          |    7 
 standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductMapper.java                           |    7 
 standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/ProductModel.java                              |   69 ++++
 standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/SpecificationsMapper.java                    |    4 
 inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml                                   |   45 +-
 standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java                                   |   14 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/RawMaterialService.java                   |    8 
 standard-server/src/main/java/com/yuanchu/limslaboratory/controller/MaterialController.java                  |    8 
 standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductService.java                         |    9 
 standard-server/src/main/java/com/yuanchu/limslaboratory/controller/SpecificationsController.java            |    2 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RawMaterialServiceImpl.java          |   16 -
 standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductModelServiceImpl.java           |   95 ++++++
 36 files changed, 669 insertions(+), 223 deletions(-)

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 027e223..ff18b98 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
@@ -82,31 +82,6 @@
     }
 
 
-    @ApiOperation(value = "閫夋嫨鍘熸潗鏂欐姤妫�")
-    @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "id", value = "鍘熸潗鏂欐姤妫�鍗昳d", dataTypeClass = Integer.class, required = true),
-            @ApiImplicitParam(name = "startTime", value = "妫�楠屽紑濮嬫棩鏈�", dataTypeClass = String.class, required = true),
-            @ApiImplicitParam(name = "endTime", value = "妫�楠岀粨鏉熸棩鏈�", dataTypeClass = String.class, required = true)
-    })
-    @GetMapping("/selectRawmaById")
-    public Result selectRawmaById(Integer id, String startTime, String endTime) throws ParseException {
-        return Result.success(rawMaterialService.selectRawmaById(id, startTime, endTime));
-    }
-
-
-    @ApiOperation(value = "閫夋嫨濮旀墭鎶ユ鍜屾牱鍝�")
-    @ApiImplicitParams(value = {
-            @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));
-    }
-
-
     @ApiOperation(value = "鏂板妫�楠屽崟")
     @PostMapping("/addInspect")
     public Result addInspect(@RequestHeader("token") String token, @RequestBody InspectionVo inspectionVo) throws Exception {
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
index 95e0c2a..dfb1e46 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkBasicInformationMapper.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkBasicInformationMapper.java
@@ -27,11 +27,5 @@
      */
     List<Map<String, Object>> selectLinkAll();
 
-    /**
-     * 閫夋嫨濮旀墭鐢宠鍜屾牱鍝�
-     * @param bid
-     * @param did
-     * @return
-     */
-    InspectionVo selectLinkByid(Integer bid, Integer did);
+
 }
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
index 567cf9f..f728459 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/RawMaterialMapper.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/RawMaterialMapper.java
@@ -26,5 +26,5 @@
 
     List<RawMaterial> selectRawmaAll();
 
-    InspectionVo selectRawmaById(Integer id);
+
 }
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
index 02b7207..c347bca 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/LinkBasicInformationService.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/LinkBasicInformationService.java
@@ -31,11 +31,5 @@
      */
     List<Map<String, Object>> selectLinkAll();
 
-    /**
-     * 鏍规嵁濮旀墭妫�楠宨d鍜屾牱鍝乮d鏌ヨ濮旀墭妫�楠屽拰鏍峰搧
-     * @param bid
-     * @param did
-     * @return
-     */
-    InspectionVo selectLinkByid(Integer bid, Integer did);
+
 }
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
index 143225f..fbe9206 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/RawMaterialService.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/RawMaterialService.java
@@ -31,11 +31,5 @@
      */
     List<RawMaterial> selectRawmaAll();
 
-    /**
-     * 閫夋嫨鍘熸潗鏂欐姤妫�
-     *
-     * @param id
-     * @return
-     */
-    InspectionVo selectRawmaById(Integer id, String startTime, String endTime) throws ParseException;
+
 }
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 5090428..b14dab9 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
@@ -56,11 +56,5 @@
         return linkBasicInformationMapper.selectLinkAll();
     }
 
-    //鏍规嵁濮旀墭妫�楠宨d鍜屾牱鍝乮d鏌ヨ濮旀墭妫�楠屽拰鏍峰搧
-    @Override
-    public InspectionVo selectLinkByid(Integer bid, Integer did) {
-        InspectionVo inspectionVo = linkBasicInformationMapper.selectLinkByid(bid, did);
-        inspectionVo.setType(1);
-        return inspectionVo;
-    }
+
 }
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
index 2722a1a..7b93cf3 100644
--- 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
@@ -60,19 +60,5 @@
         return rawMaterialMapper.selectRawmaAll();
     }
 
-    /**
-     * 閫夋嫨鍘熸潗鏂欐姤妫�
-     *
-     * @param id
-     * @return
-     */
-    @Override
-    public InspectionVo selectRawmaById(Integer id, String startTime, String endTime) throws ParseException {
-        InspectionVo inspectionVo = rawMaterialMapper.selectRawmaById(id);
-        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
-        inspectionVo.setStartTime(formatter.parse(startTime));
-        inspectionVo.setEndTime(formatter.parse(endTime));
-        inspectionVo.setType(0);
-        return inspectionVo;
-    }
+
 }
diff --git a/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml b/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml
index ab4c4eb..456ca9e 100644
--- a/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml
+++ b/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml
@@ -1,11 +1,12 @@
 <?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.LinkBasicInformationMapper">
-
     <select id="getLinkBasicPage" resultType="map">
-        SELECT l.`id`, l.`entrust_coding`, l.`entrusted`, d.`samples_number`, d.`sample_name`, d.`specifications_models`,
-            DATE_FORMAT(l.`inspection_time`,'%Y-%m-%d') inspectionTime, DATE_FORMAT(l.`completion_deadline`,'%Y-%m-%d') completionDeadline, l.`contacts`,
-            DATE_FORMAT(d.`date_survey`,'%Y-%m-%d') dateSurvey, d.`inspection_status`
+        SELECT l.`id`, l.`entrust_coding`, l.`entrusted`, d.`samples_number`, d.`sample_name`,
+        d.`specifications_models`,
+        DATE_FORMAT(l.`inspection_time`,'%Y-%m-%d') inspectionTime, DATE_FORMAT(l.`completion_deadline`,'%Y-%m-%d')
+        completionDeadline, l.`contacts`,
+        DATE_FORMAT(d.`date_survey`,'%Y-%m-%d') dateSurvey, d.`inspection_status`
         FROM link_basic_information l, link_detection d
         WHERE l.`id` = d.`link_basic_id`
         AND l.`state` = 1
@@ -24,31 +25,19 @@
     </select>
 
     <select id="selectLinkAll" resultType="java.util.Map">
-        SELECT l.`id`, l.`entrust_coding`, l.`entrusted`, d.`samples_number`, d.`sample_name`, d.`specifications_models`,
-        DATE_FORMAT(l.`inspection_time`,'%Y-%m-%d') inspectionTime, l.`completion_deadline`, l.`contacts`, d.`date_survey`, d.`inspection_status`
-        FROM lims_laboratory.link_basic_information l, lims_laboratory.link_detection d
-        WHERE l.`id` = d.`link_basic_id`
-        AND l.`state` = 1
-    </select>
-
-    <select id="selectLinkByid" resultType="com.yuanchu.limslaboratory.pojo.vo.InspectionVo">
-        SELECT l.`inspection_time` formTime,
-        l.`entrusted` supplier,
-        d.`sample_number` mcode,
-        d.`sample_name` name,
-        d.`specifications_models` specifications,
-        d.`unit`,
-        d.`samples_number` num,
-        d.date_survey startTime,
-        l.completion_deadline endTime
-        FROM lims_laboratory.link_basic_information l, lims_laboratory.link_detection d
+        SELECT DATE_FORMAT(l.`inspection_time`,'%Y-%m-%d')  formTime,
+               l.`entrusted` supplier,
+               d.`sample_number` mcode,
+               d.`sample_name` name,
+               d.`specifications_models` specifications,
+               d.`unit`,
+               d.`samples_number` num,
+               DATE_FORMAT(date_survey,'%Y-%m-%d')  startTime,
+               DATE_FORMAT(completion_deadline,'%Y-%m-%d') endTime
+        FROM lims_laboratory.link_basic_information l,
+             lims_laboratory.link_detection d
         WHERE l.`id` = d.`link_basic_id`
           AND l.`state` = 1
-        <if test="bid!=null">
-            and l.id=#{bid}
-        </if>
-        <if test="did!=null">
-            and d.id=#{did}
-        </if>
     </select>
+
 </mapper>
diff --git a/inspection-server/src/main/resources/mapper/RawMaterialMapper.xml b/inspection-server/src/main/resources/mapper/RawMaterialMapper.xml
index 5cffc9a..6dc7c1a 100644
--- a/inspection-server/src/main/resources/mapper/RawMaterialMapper.xml
+++ b/inspection-server/src/main/resources/mapper/RawMaterialMapper.xml
@@ -23,15 +23,5 @@
         select * from lims_laboratory.raw_material where state=1
     </select>
 
-    <select id="selectRawmaById" resultType="com.yuanchu.limslaboratory.pojo.vo.InspectionVo">
-        select create_time formTime,
-               supplier_name supplier,
-               material_coding mcode,
-               material_name name,
-               specifications_models specifications,
-               unit ,
-               quantity num
-        from lims_laboratory.raw_material
-        where id=#{id}
-    </select>
+
 </mapper>
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/MaterialController.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/MaterialController.java
index 8a89867..fc0c456 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/MaterialController.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/MaterialController.java
@@ -30,7 +30,13 @@
     @Autowired
     private MaterialService materialService;
 
-    @ApiOperation("娣诲姞鐗╂枡")
+    @ApiOperation(value = "娣诲姞鎸囨爣-->閫夋嫨鏍峰搧鍚嶇О")
+    @GetMapping("/selectmater")
+    public Result selectmater() {
+        return Result.success(materialService.selectmater());
+    }
+
+    @ApiOperation("娣诲姞鎸囨爣")
     @PostMapping("/add")
     public Result<?> addMaterialInformation(@Validated @RequestBody AddMaterialDto addMaterialDto) {
         Integer isMaterialSuccess = materialService.addMaterialInformation(addMaterialDto);
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductController.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductController.java
index 5853e6a..cc804a8 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductController.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductController.java
@@ -15,7 +15,7 @@
 
 /**
  * <p>
- *  鍓嶇鎺у埗鍣�
+ * 鍓嶇鎺у埗鍣�
  * </p>
  *
  * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
@@ -29,29 +29,15 @@
     @Autowired
     private ProductService productService;
 
-    @ApiOperation("1銆佸垎椤垫煡璇㈤」鐩�")
+    @ApiOperation("鏌ヨ璇ュ瀷鍙蜂笅鐨勯」鐩�")
     @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "pageNo", value = "璧峰椤�", dataTypeClass = Integer.class, required = true),
-            @ApiImplicitParam(name = "pageSize", value = "姣忎竴椤垫暟閲�", dataTypeClass = Integer.class, required = true),
-            @ApiImplicitParam(name = "specificationsId", value = "瑙勬牸鍨嬪彿ID", dataTypeClass = Integer.class, required = true),
-            @ApiImplicitParam(value = "鍘熸潗鏂欑紪鐮�/鍘熸潗鏂欏悕绉�", name = "productCodeOrName", dataTypeClass = String.class)
+            @ApiImplicitParam(name = "specificationsId", value = "鍨嬪彿ID", dataTypeClass = Integer.class, required = true)
     })
     @GetMapping("/page")
-    public Result<?> pageProductInformation(Integer pageNo, Integer pageSize, Integer specificationsId, String productCodeOrName) {
-        IPage<Map<String, Object>> maps = productService.pageProductInformation(productCodeOrName, specificationsId, new Page<Objects>(pageNo, pageSize));
-        Map<String, Object> map = new HashMap<>();
-        map.put("row", maps.getRecords());
-        map.put("total", maps.getTotal());
-        return Result.success(map);
+    public Result<?> pageProductInformation(Integer specificationsId) {
+        return Result.success(productService.pageProductInformation(specificationsId));
     }
 
-    @ApiOperation("2銆佹牴鎹埗绫绘煡瀛愮被")
-    @ApiImplicitParams(value = {
-            @ApiImplicitParam(value = "鐖剁被鍚嶇О", name = "fatherName", dataTypeClass = String.class)
-    })
-    @GetMapping("/father")
-    public Result<?> pageFatherNameProductInformation(String fatherName) {
-        List<Map<String, Object>> maps = productService.pageFatherNameProductInformation(fatherName);
-        return Result.success(maps);
-    }
+    //@ApiOperation("濉啓鏍囧噯鍊间笌鍐呮帶鍊�,榧犳爣绉诲紑淇濆瓨")
+
 }
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductModelController.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductModelController.java
new file mode 100644
index 0000000..15fa65e
--- /dev/null
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductModelController.java
@@ -0,0 +1,106 @@
+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.dto.AddMaterialDto;
+import com.yuanchu.limslaboratory.pojo.dto.ProductModelDto;
+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.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import com.yuanchu.limslaboratory.service.ProductModelService;
+
+import java.util.HashMap;
+import java.util.Map;
+
+
+/**
+ * 鍩虹椤圭洰妯$増琛�(ProductModel)琛ㄦ帶鍒跺眰
+ *
+ * @author zss
+ * @since 2023-08-19 11:00:39
+ */
+@Api(tags = "鍩虹鏁版嵁-->鏍囧噯缁存姢")
+@RestController
+@RequestMapping("/productModel")
+public class ProductModelController {
+
+    @Autowired
+    private ProductModelService productModelService;
+
+    @ApiOperation(value = "閫夋嫨鏍峰搧鍚嶇О")
+    @GetMapping("/selectmater")
+    public Result selectmater() {
+        return Result.success(productModelService.selectmater());
+    }
+
+    @ApiOperation(value = "娣诲姞鏍囧噯-->閫夋嫨椤圭洰鍒嗙粍")
+    @GetMapping("/selectfather")
+    public Result selectfather() {
+        return Result.success(productModelService.selectfather());
+    }
+
+    @ApiOperation("娣诲姞鏍囧噯")
+    @PostMapping("/addproductModel")
+    public Result<?> addproductModel(@Validated @RequestBody ProductModelDto productModelDto) {
+        productModelService.addproductModel(productModelDto);
+        return Result.success("娣诲姞鏍囧噯椤圭洰銆�" + productModelDto.getName() + "銆戞垚鍔燂紒");
+    }
+
+    @ApiOperation(value = "鏌ヨ鏍囧噯妯$増鍒楄〃")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "name", value = "椤圭洰鍚嶇О", dataTypeClass = String.class),
+            @ApiImplicitParam(name = "father", value = "椤圭洰鍒嗙粍", dataTypeClass = String.class),
+            @ApiImplicitParam(name = "material", value = "鏍峰搧鍚嶇О", dataTypeClass = String.class, required = true)
+    })
+    @GetMapping("/selectproductModel")
+    public Result selectproductModel(String name, String father, String material) {
+        return Result.success(productModelService.selectproductModel(name, father, material));
+    }
+
+    @ApiOperation(value = "鏍规嵁id鏌ヨ")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "鏍囧噯妯$増id", dataTypeClass = Integer.class, required = true)
+    })
+    @GetMapping("/selectproductModelById")
+    public Result selectproductModelById(Integer id) {
+        return Result.success(productModelService.selectproductModelById(id));
+    }
+
+    @ApiOperation("缂栬緫")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "鏍囧噯妯$増id", dataTypeClass = Integer.class, required = true)
+    })
+    @PostMapping("/writeproductModel")
+    public Result<?> writeproductModel(Integer id, @Validated @RequestBody ProductModelDto productModelDto) {
+        productModelService.writeproductModel(id,productModelDto);
+        return Result.success("淇敼鏍囧噯椤圭洰銆�" + productModelDto.getName() + "銆戞垚鍔燂紒");
+    }
+
+    @ApiOperation("鍒犻櫎")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "鏍囧噯妯$増id", dataTypeClass = Integer.class, required = true)
+    })
+    @PostMapping("/delproductModel")
+    public Result<?> delproductModel(Integer id) {
+        productModelService.delproductModel(id);
+        return Result.success("鍒犻櫎鏍囧噯椤圭洰鎴愬姛锛�");
+    }
+
+    @ApiOperation("鎵归噺鍒犻櫎")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "ids", value = "鏍囧噯妯$増id", dataTypeClass = String.class, required = true)
+    })
+    @PostMapping("/delAllproductModel")
+    public Result<?> delAllproductModel(String ids) {
+        productModelService.delAllproductModel(ids);
+        return Result.success("鎵归噺鍒犻櫎鏍囧噯椤圭洰鎴愬姛锛�");
+    }
+
+}
+
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/SpecificationsController.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/SpecificationsController.java
index 4be696a..17d1426 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/SpecificationsController.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/SpecificationsController.java
@@ -39,7 +39,7 @@
         return Result.fail("娣诲姞鐗╂枡銆�"+ addSpecifications.getSpecificationsName() +"銆戝け璐ワ紒");
     }
 
-    @ApiOperation("鍒犻櫎浜у搧瑙勬牸")
+    @ApiOperation("鍒犻櫎浜у搧鍨嬪彿")
     @ApiImplicitParams(value = {
             @ApiImplicitParam(name = "specificationsId", value = "瑙勬牸Id", dataTypeClass = Integer.class, required = true)
     })
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/StandardController.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/StandardController.java
index 665f006..98ac612 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/StandardController.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/StandardController.java
@@ -35,7 +35,7 @@
         return Result.fail("娣诲姞鐗╂枡銆�"+ addStandardDto.getStandardName() +"銆戝け璐ワ紒");
     }
 
-    @ApiOperation("鏍规嵁ID鍒犻櫎鏁版嵁")
+    @ApiOperation("鏍规嵁ID鍒犺鏍�")
     @DeleteMapping("/delete")
     public Result<?> deleteStandardsInformation(Integer standardsId) {
         Integer isDeleteMaterialSuccess = standardService.deleteStandardInformation(standardsId);
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/MaterialMapper.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/MaterialMapper.java
index 0408808..08b370e 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/MaterialMapper.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/MaterialMapper.java
@@ -16,6 +16,7 @@
  */
 public interface MaterialMapper extends BaseMapper<Material> {
 
+
     //鏌ヨ鐗╂枡淇℃伅
     List<Map> selectMaterialLimit(int num1,int num2, int type);
 
@@ -24,4 +25,10 @@
 
     // 鍥涚骇鏍�
     List<Map<String, Object>> FourTree(String specificationsName);
+
+    //閫夋嫨鏍峰搧鍚嶇О
+    List<String> selectmater();
+
+
+
 }
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductMapper.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductMapper.java
index cbf5b02..ff4ec4e 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductMapper.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductMapper.java
@@ -23,12 +23,9 @@
     //鏍规嵁鐗╂枡id鏌ヨ妫�楠岄」鐩�
     List<Map> selectProductByMaterialId(int materialId);
 
-    IPage<Map<String, Object>> pageProductInformation(String productCodeOrName, Integer specificationsId, Page<Objects> page);
+    //灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹�
+    List<Map<String, Object>> pageProductInformation(Integer specificationsId);
 
-    Map<String, Object> selectOneChildren(Object father);
 
-    Map<String, Object> getProductInformation(Integer productId);
 
-    //閫氳繃椤圭洰鍚嶆煡璇㈤」鐩殑璇曢獙鏂规硶
-    List<Map> selectInstrumentByProname(String name);
 }
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductModelMapper.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductModelMapper.java
new file mode 100644
index 0000000..659a0c3
--- /dev/null
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductModelMapper.java
@@ -0,0 +1,32 @@
+package com.yuanchu.limslaboratory.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yuanchu.limslaboratory.pojo.ProductModel;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 鍩虹椤圭洰妯$増琛�(ProductModel)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author zss
+ * @since 2023-08-19 11:00:39
+ */
+public interface ProductModelMapper extends BaseMapper<ProductModel> {
+
+    //鏌ヨ鏍囧噯妯$増鍒楄〃
+    List<Map<String, Object>> selectproductModel(String name, String father, String material);
+
+    //鎵归噺鍒犻櫎
+    void delAllproductModel(String ids);
+
+    //娣诲姞鏍囧噯-->閫夋嫨椤圭洰鍒嗙粍
+    List<String> selectfather();
+
+
+
+
+    //鏌ヨ椤圭洰妯$増鏍规嵁鏍峰搧鍚�
+    List<Map<String, Object>> seleMode(String name);
+}
+
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/SpecificationsMapper.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/SpecificationsMapper.java
index 3db0724..27a06a0 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/SpecificationsMapper.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/SpecificationsMapper.java
@@ -21,4 +21,8 @@
     Map<String, Object> selectSNameSNName(int materialId);
 
     IPage<Map<String, Objects>> listSpecificationsInformation(String specificationsName, String serialNumberId, Page<Objects> page);
+
+
+    //鏍规嵁鍨嬪彿id鏌ヨ鐗╂枡鍚嶇О
+    String selMateName(Integer standardId);
 }
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Material.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Material.java
index f76bc42..e3f3a1d 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Material.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Material.java
@@ -39,7 +39,7 @@
     @ApiModelProperty(value = "鐗╂枡鍚嶇О", example = "鐭冲ご", required = true)
     private String name;
 
-    @ApiModelProperty(value = "0锛氬師鏉愭枡锛�1锛氭垚鍝侊紱2锛氬崐鎴愬搧", example = "1", required = true)
+    @ApiModelProperty(value = "0锛氬師鏉愭枡锛�1锛氭垚鍝侊紱2锛氬崐鎴愬搧", example = "1")
     private Integer type;
 
     @TableLogic(value = "1", delval = "0")
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 707d80e..14a985e 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
@@ -31,22 +31,22 @@
     @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)
+    @ApiModelProperty(value = "鍗曚綅", example = "km")
     private String unit;
 
-    @ApiModelProperty(value = "鏍囧噯鍊�", example = "<=0.3458", required = true)
+    @ApiModelProperty(value = "鏍囧噯鍊�", example = "<=0.3458")
     private String required;
 
-    @ApiModelProperty(value = "鍐呮帶鍊�", example = "<=0.3458", required = true)
+    @ApiModelProperty(value = "鍐呮帶鍊�", example = "<=0.3458")
     private String internal;
 
-    @TableLogic(value = "1", delval = "0")
+
     @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
     private Integer state;
 
@@ -63,7 +63,7 @@
     @ApiModelProperty(value = "涔愯閿�", hidden = true)
     private Integer version;
 
-    @ApiModelProperty(value = "鍏宠仈 鐗╂枡id", example = "1", hidden = true)
+    @ApiModelProperty(value = "鍏宠仈 鍨嬪彿id", example = "1", hidden = true)
     private Integer specifications_id;
 
 
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/ProductModel.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/ProductModel.java
new file mode 100644
index 0000000..8972287
--- /dev/null
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/ProductModel.java
@@ -0,0 +1,69 @@
+package com.yuanchu.limslaboratory.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+import java.io.Serializable;
+
+/**
+ * 鍩虹椤圭洰妯$増琛�(ProductModel)琛ㄥ疄浣撶被
+ *
+ * @author zss
+ * @since 2023-08-19 11:00:40
+ */
+@Data
+@Accessors(chain = true)
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = false)
+@TableName("product_model")
+public class ProductModel implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     **/
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 椤圭洰鍚嶇О
+     **/
+    private String name;
+
+    /**
+     * 椤圭洰鐖剁被
+     **/
+    private String father;
+
+    /**
+     * 鍗曚綅
+     **/
+    private String unit;
+
+    @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;
+
+    /**
+     * 鏍峰搧鍚嶇О
+     **/
+    private String material;
+}
+
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/ProductModelDto.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/ProductModelDto.java
new file mode 100644
index 0000000..8b76910
--- /dev/null
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/ProductModelDto.java
@@ -0,0 +1,33 @@
+package com.yuanchu.limslaboratory.pojo.dto;
+
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+@Data
+//娣诲姞鏍囧噯鍙傛暟
+public class ProductModelDto {
+
+    /**
+     * 椤圭洰鍚嶇О
+     **/
+    @NotBlank(message = "椤圭洰鍚嶇О涓嶈兘涓虹┖")
+    private String name;
+
+    /**
+     * 椤圭洰鐖剁被
+     **/
+    private String father;
+
+    /**
+     * 鍗曚綅
+     **/
+    private String unit;
+
+    /**
+     * 鏍峰搧鍚嶇О
+     **/
+    @NotBlank(message = "鏍峰搧鍚嶇О涓嶈兘涓虹┖")
+    private String material;
+}
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/MaterialService.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/MaterialService.java
index 56e5501..f6b8b81 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/MaterialService.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/MaterialService.java
@@ -39,4 +39,12 @@
      * 鍥涚骇鍒嗗眰鏄剧ず
      */
     List<Map<String, Object>> getFourLevelInformation(String specificationName);
+
+
+    /**
+     * 娣诲姞鎸囨爣-->閫夋嫨鏍峰搧鍚嶇О
+     * @return
+     */
+    List<String> selectmater();
+
 }
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductModelService.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductModelService.java
new file mode 100644
index 0000000..144d1bf
--- /dev/null
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductModelService.java
@@ -0,0 +1,77 @@
+package com.yuanchu.limslaboratory.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yuanchu.limslaboratory.pojo.ProductModel;
+import com.yuanchu.limslaboratory.pojo.dto.ProductModelDto;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 鍩虹椤圭洰妯$増琛�(ProductModel)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author zss
+ * @since 2023-08-19 11:00:39
+ */
+public interface ProductModelService extends IService<ProductModel> {
+
+    /**
+     * 閫夋嫨鏍峰搧鍚嶇О
+     * @return
+     */
+    List<String>  selectmater();
+
+    /**
+     * 娣诲姞鏍囧噯-->閫夋嫨椤圭洰鍒嗙粍
+     * @return
+     */
+    List<String> selectfather();
+
+    /**
+     * 娣诲姞鏍囧噯
+     * @param productModelDto
+     */
+    void addproductModel(ProductModelDto productModelDto);
+
+
+    /**
+     * 鏌ヨ鏍囧噯妯$増鍒楄〃
+     * @param name
+     * @param father
+     * @param material
+     * @return
+     */
+    List<Map<String,Object>> selectproductModel(String name, String father, String material);
+
+    /**
+     * 鏍规嵁id鏌ヨ
+     * @param id
+     * @return
+     */
+    ProductModelDto selectproductModelById(Integer id);
+
+    /**
+     * 缂栬緫
+     * @param id
+     * @param productModelDto
+     */
+    void writeproductModel(Integer id, ProductModelDto productModelDto);
+
+    /**
+     * 鍒犻櫎
+     * @param id
+     */
+    void delproductModel(Integer id);
+
+    /**
+     * 鎵归噺鍒犻櫎
+     * @param ids
+     */
+    void delAllproductModel(String ids);
+
+
+
+}
+
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductService.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductService.java
index 8fbb6af..cb7502c 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductService.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductService.java
@@ -21,14 +21,11 @@
 public interface ProductService extends IService<Product> {
     void deleteProductInformation(List<Integer> SpecificationsId);
 
-    IPage<Map<String, Object>> pageProductInformation(String productCodeOrName, Integer specificationsId, Page<Objects> page);
-
-    List<Map<String, Object>> pageFatherNameProductInformation(String fatherName);
 
     /**
-     * 閫氳繃椤圭洰鍚嶆煡璇㈤」鐩殑璇曢獙鏂规硶
-     * @param name
+     * 灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹�
+     * @param specificationsId
      * @return
      */
-    List<Map> selectInstrumentByProname(String name);
+    List<Map<String,Object>> pageProductInformation(Integer specificationsId);
 }
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 6e68274..d851e08 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
@@ -29,6 +29,7 @@
     @Transactional(rollbackFor = Exception.class)
     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/MaterialServiceImpl.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java
index 4b75748..4e3721e 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java
@@ -4,8 +4,11 @@
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.yuanchu.limslaboratory.mapper.ProductModelMapper;
 import com.yuanchu.limslaboratory.pojo.Material;
 import com.yuanchu.limslaboratory.mapper.MaterialMapper;
+import com.yuanchu.limslaboratory.pojo.Product;
 import com.yuanchu.limslaboratory.pojo.Specifications;
 import com.yuanchu.limslaboratory.pojo.Standard;
 import com.yuanchu.limslaboratory.pojo.dto.AddMaterialDto;
@@ -15,16 +18,20 @@
 import com.yuanchu.limslaboratory.service.SpecificationsService;
 import com.yuanchu.limslaboratory.service.StandardService;
 import com.yuanchu.limslaboratory.utils.MyUtil;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
- *  鏈嶅姟瀹炵幇绫�
+ * 鏈嶅姟瀹炵幇绫�
  * </p>
  *
  * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
@@ -45,12 +52,14 @@
     @Autowired
     private ProductService productService;
 
+    @Resource
+    ProductModelMapper productModelMapper;
+
     //鏌ヨ鐗╂枡淇℃伅
     @Override
     public List<Map> selectMaterialLimit(int pageSize, int countSize, int type) {
-        return materialMapper.selectMaterialLimit((pageSize - 1) * countSize,pageSize * countSize, type);
+        return materialMapper.selectMaterialLimit((pageSize - 1) * countSize, pageSize * countSize, type);
     }
-
 
 
     @Override
@@ -59,11 +68,11 @@
         updateWrapper.eq(Material::getId, materialId);
         updateWrapper.set(Material::getState, 0);
         int isDeleteSuccess = materialMapper.update(new Material(), updateWrapper);
-        if (isDeleteSuccess == 1){
+        if (isDeleteSuccess == 1) {
             List<Integer> isDeleteStandard = standardService.deleteStandardsInformation(materialId);
-            if (!ObjectUtils.isEmpty(isDeleteStandard)){
+            if (!ObjectUtils.isEmpty(isDeleteStandard)) {
                 List<Integer> idDeleteSpecifications = specificationsService.StandardIdDeleteSpecifications(isDeleteStandard);
-                if (!ObjectUtils.isEmpty(idDeleteSpecifications)){
+                if (!ObjectUtils.isEmpty(idDeleteSpecifications)) {
                     productService.deleteProductInformation(idDeleteSpecifications);
                 }
             }
@@ -72,25 +81,37 @@
         return 0;
     }
 
+    //涓夌骇鏂板
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Integer addMaterialInformation(AddMaterialDto addMaterialDto) {
-        Material material = new Material()
-                .setCode("BZ" + IdWorker.getIdStr())
-                .setName(addMaterialDto.getMaterialName())
-                .setType(addMaterialDto.getType());
-        int isInsertSuccess = materialMapper.insert(material);
-        if (isInsertSuccess > 0){
+        Material material = materialMapper.selectOne(Wrappers.<Material>query().eq("name", addMaterialDto.getMaterialName()));
+        material.setType(addMaterialDto.getType());
+        int isInsertSuccess = materialMapper.updateById(material);
+        if (isInsertSuccess > 0) {
             Standard standard = new Standard()
                     .setMaterialId(material.getId())
                     .setName(addMaterialDto.getStandardName());
             boolean save = standardService.save(standard);
-            if (save){
+            if (save) {
                 Specifications specifications = new Specifications()
                         .setName(addMaterialDto.getSpecificationsName())
                         .setStandardId(standard.getId());
                 boolean save1 = specificationsService.save(specifications);
-                if (save1)
+                if (save1) {
+                    //娣诲姞鍨嬪彿涔嬪悗娣诲姞椤圭洰
+                    List<Map<String, Object>> productModel = productModelMapper.seleMode(addMaterialDto.getMaterialName());
+                    List<Product> productList = productModel.stream().map(stringObjectMap -> {
+                        Product product = new Product();
+                        product.setName(stringObjectMap.get("name").toString());
+                        product.setFather(stringObjectMap.get("father").toString());
+                        product.setUnit(stringObjectMap.get("unit").toString());
+                        product.setSpecifications_id(specifications.getId());
+                        return product;
+                    }).collect(Collectors.toList());
+                    productService.saveBatch(productList);
                     return 1;
+                }
             }
         }
         return 0;
@@ -100,4 +121,12 @@
     public List<Map<String, Object>> getFourLevelInformation(String specificationName) {
         return materialMapper.FourTree(specificationName);
     }
+
+    //娣诲姞鎸囨爣-->閫夋嫨鏍峰搧鍚嶇О
+    @Override
+    public List<String> selectmater() {
+        return materialMapper.selectmater();
+    }
+
+
 }
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductModelServiceImpl.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductModelServiceImpl.java
new file mode 100644
index 0000000..98351a8
--- /dev/null
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductModelServiceImpl.java
@@ -0,0 +1,95 @@
+package com.yuanchu.limslaboratory.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yuanchu.limslaboratory.mapper.MaterialMapper;
+import com.yuanchu.limslaboratory.mapper.ProductModelMapper;
+import com.yuanchu.limslaboratory.pojo.Material;
+import com.yuanchu.limslaboratory.pojo.ProductModel;
+import com.yuanchu.limslaboratory.pojo.dto.ProductModelDto;
+import com.yuanchu.limslaboratory.service.ProductModelService;
+import com.yuanchu.limslaboratory.utils.MyUtil;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 鍩虹椤圭洰妯$増琛�(ProductModel)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author zss
+ * @since 2023-08-19 11:00:40
+ */
+@Service
+public class ProductModelServiceImpl extends ServiceImpl<ProductModelMapper, ProductModel> implements ProductModelService {
+
+    @Resource
+    ProductModelMapper productModelMapper;
+
+    @Resource
+    MaterialMapper materialMapper;
+
+    //閫夋嫨鏍峰搧
+    @Override
+    public List<String> selectmater() {
+        return materialMapper.selectmater();
+    }
+
+    //娣诲姞鏍囧噯-->閫夋嫨椤圭洰鍒嗙粍
+    @Override
+    public List<String> selectfather() {
+        return productModelMapper.selectfather();
+    }
+
+    //娣诲姞鏍囧噯
+    @Override
+    public void addproductModel(ProductModelDto productModelDto) {
+        ProductModel productModel = new ProductModel();
+        BeanUtils.copyProperties(productModelDto,productModel);
+        productModelMapper.insert(productModel);
+        //娣诲姞鐗╂枡浜у搧搴�
+        Material material = new Material();
+        material.setName(productModelDto.getName()).setCode(MyUtil.getTimeSixNumberCode("CP","CP"));
+        materialMapper.insert(material);
+    }
+
+    //鏌ヨ鏍囧噯妯$増鍒楄〃
+    @Override
+    public List<Map<String, Object>> selectproductModel(String name, String father, String material) {
+        return productModelMapper.selectproductModel(name,father,material);
+    }
+
+    //鏍规嵁id鏌ヨ璇︽儏
+    @Override
+    public ProductModelDto selectproductModelById(Integer id) {
+        ProductModel productModel = productModelMapper.selectById(id);
+        ProductModelDto productModelDto = new ProductModelDto();
+        BeanUtils.copyProperties(productModel,productModelDto);
+        return productModelDto;
+    }
+
+    //缂栬緫
+    @Override
+    public void writeproductModel(Integer id, ProductModelDto productModelDto) {
+        ProductModel productModel = new ProductModel();
+        BeanUtils.copyProperties(productModelDto,productModel);
+        productModel.setId(id);
+        productModelMapper.updateById(productModel);
+    }
+
+    //鍒犻櫎
+    @Override
+    public void delproductModel(Integer id) {
+        ProductModel productModel = new ProductModel();
+        productModel.setId(id).setState(0);
+        productModelMapper.updateById(productModel);
+    }
+
+    //鎵归噺鍒犻櫎
+    @Override
+    public void delAllproductModel(String ids) {
+        productModelMapper.delAllproductModel(ids);
+    }
+}
+
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 b82da28..c27c343 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
@@ -4,14 +4,18 @@
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.limslaboratory.mapper.ProductModelMapper;
+import com.yuanchu.limslaboratory.mapper.SpecificationsMapper;
 import com.yuanchu.limslaboratory.pojo.Product;
 import com.yuanchu.limslaboratory.mapper.ProductMapper;
+import com.yuanchu.limslaboratory.pojo.ProductModel;
 import com.yuanchu.limslaboratory.service.ProductService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yuanchu.limslaboratory.utils.MyUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import com.yuanchu.limslaboratory.service.UserService;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
 import javax.annotation.Resource;
@@ -34,6 +38,10 @@
     @Resource
     private ProductMapper productMapper;
 
+    @Resource
+    ProductModelMapper productModelMapper;
+
+
     @Override
     public void deleteProductInformation(List<Integer> SpecificationsId) {
         for (Integer materialId : SpecificationsId){
@@ -44,36 +52,12 @@
         }
     }
 
+    //灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹�
     @Override
-    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();
-        maps.forEach(map -> {
-            int num = Integer.parseInt(map.get("num").toString());
-            boolean children = false;
-            if (num > 1){
-                children = true;
-            } else {
-                Map<String, Object> product = productMapper.selectOneChildren(map.get("father"));
-                map.putAll(product);
-            }
-            map.put("children", children);
-            map.remove("num");
-        });
-        return iPage;
+    @Transactional(rollbackFor = Exception.class)
+    public List<Map<String, Object>> pageProductInformation(Integer specificationsId) {
+        return productMapper.pageProductInformation(specificationsId);
     }
 
-    @Override
-    public List<Map<String, Object>> pageFatherNameProductInformation(String fatherName) {
-        LambdaQueryWrapper<Product> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(Product::getFather, fatherName);
-        wrapper.select(Product::getId, Product::getName, Product::getUnit, Product::getRequired, Product::getInternal);
-        return productMapper.selectMaps(wrapper);
-    }
 
-    //閫氳繃椤圭洰鍚嶆煡璇㈤」鐩殑璇曢獙鏂规硶
-    @Override
-    public List<Map> selectInstrumentByProname(String name) {
-        return productMapper.selectInstrumentByProname(name);
-    }
 }
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/SpecificationsServiceImpl.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/SpecificationsServiceImpl.java
index 93be8b1..d318960 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/SpecificationsServiceImpl.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/SpecificationsServiceImpl.java
@@ -2,12 +2,15 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.yuanchu.limslaboratory.mapper.ProductModelMapper;
+import com.yuanchu.limslaboratory.pojo.Product;
 import com.yuanchu.limslaboratory.pojo.Specifications;
 import com.yuanchu.limslaboratory.mapper.SpecificationsMapper;
 import com.yuanchu.limslaboratory.pojo.dto.AddSpecifications;
 import com.yuanchu.limslaboratory.pojo.dto.AddStandardDto;
 import com.yuanchu.limslaboratory.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
@@ -16,6 +19,8 @@
 import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -33,6 +38,9 @@
 
     @Autowired
     private ProductService productService;
+
+    @Resource
+    ProductModelMapper productModelMapper;
 
     @Override
     public Integer deleteSpecifications(Integer specificationsId) {
@@ -73,6 +81,18 @@
         Specifications specifications = new Specifications()
                 .setName(addStandardDto.getSpecificationsName())
                 .setStandardId(addStandardDto.getStandardId());
-        return specificationsMapper.insert(specifications);
+         specificationsMapper.insert(specifications);
+        //娣诲姞鍨嬪彿涔嬪悗娣诲姞椤圭洰
+        List<Map<String, Object>> productModel=productModelMapper.seleMode(specificationsMapper.selMateName(addStandardDto.getStandardId()));
+        List<Product> productList = productModel.stream().map(stringObjectMap -> {
+            Product product = new Product();
+            product.setName(stringObjectMap.get("name").toString());
+            product.setFather(stringObjectMap.get("father").toString());
+            product.setUnit(stringObjectMap.get("unit").toString());
+            product.setSpecifications_id(specifications.getId());
+            return product;
+        }).collect(Collectors.toList());
+        productService.saveBatch(productList);
+        return 1;
     }
 }
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 7b13059..9c7ab92 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
@@ -3,21 +3,27 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.yuanchu.limslaboratory.mapper.MaterialMapper;
+import com.yuanchu.limslaboratory.mapper.ProductModelMapper;
 import com.yuanchu.limslaboratory.mapper.StandardMapper;
 import com.yuanchu.limslaboratory.pojo.Material;
+import com.yuanchu.limslaboratory.pojo.Product;
 import com.yuanchu.limslaboratory.pojo.Specifications;
 import com.yuanchu.limslaboratory.pojo.Standard;
 import com.yuanchu.limslaboratory.pojo.dto.AddStandardDto;
 import com.yuanchu.limslaboratory.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -39,6 +45,12 @@
 
     @Autowired
     private ProductService productService;
+
+    @Resource
+    ProductModelMapper productModelMapper;
+
+    @Resource
+    MaterialMapper materialMapper;
 
 
     @Override
@@ -76,7 +88,9 @@
         return 0;
     }
 
+    //浜岀骇鏂板
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Integer addStandardInformation(AddStandardDto addStandardDto) {
         Standard standard = new Standard()
                 .setMaterialId(addStandardDto.getMaterialId())
@@ -87,8 +101,20 @@
                     .setName(addStandardDto.getSpecificationsName())
                     .setStandardId(standard.getId());
             boolean save1 = specificationsService.save(specifications);
-            if (save1)
+            if (save1){
+                //娣诲姞鍨嬪彿涔嬪悗娣诲姞椤圭洰
+                List<Map<String, Object>> productModel=productModelMapper.seleMode(materialMapper.selectById(addStandardDto.getMaterialId()).getName());
+                List<Product> productList = productModel.stream().map(stringObjectMap -> {
+                    Product product = new Product();
+                    product.setName(stringObjectMap.get("name").toString());
+                    product.setFather(stringObjectMap.get("father").toString());
+                    product.setUnit(stringObjectMap.get("unit").toString());
+                    product.setSpecifications_id(specifications.getId());
+                    return product;
+                }).collect(Collectors.toList());
+                productService.saveBatch(productList);
                 return 1;
+            }
         }
         return 0;
     }
diff --git a/standard-server/src/main/resources/mapper/MaterialMapper.xml b/standard-server/src/main/resources/mapper/MaterialMapper.xml
index 8ff48cb..bb41247 100644
--- a/standard-server/src/main/resources/mapper/MaterialMapper.xml
+++ b/standard-server/src/main/resources/mapper/MaterialMapper.xml
@@ -1,14 +1,13 @@
 <?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.MaterialMapper">
-
     <select id="selectMaterialLimit" resultType="Map">
         select id, code, name
         from lims_laboratory.material
         where state = 1
           and type = #{type}
         order by create_time desc
-            limit #{num1}, #{num2}
+        limit #{num1}, #{num2}
     </select>
     <select id="selectMaterialById" resultType="Map">
         select m.id,
@@ -57,16 +56,22 @@
     <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
-        FROM material m
-        LEFT JOIN (SELECT s.`id`, s.`name`, s.`material_id` FROM standard s WHERE s.`state` = 1) s ON m.id =
+        FROM lims_laboratory.material m
+        LEFT JOIN (SELECT s.`id`, s.`name`, s.`material_id` FROM lims_laboratory.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
+        LEFT JOIN (SELECT f.`id`, f.`name`, f.`standard_id` FROM lims_laboratory.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` =
+        LEFT JOIN (SELECT p.`id`, p.`name`, p.`specifications_id` FROM lims_laboratory.product p WHERE p.`state` = 1) p ON f.`id` =
         p.`specifications_id`
         WHERE m.`state` = 1
     </select>
+    <!--娣诲姞鏍囧噯閫夋嫨鏍峰搧鍚嶇О-->
+    <select id="selectmater" resultType="java.lang.String">
+        select  name
+        from lims_laboratory.material
+        where state = 1
+    </select>
 </mapper>
diff --git a/standard-server/src/main/resources/mapper/ProductMapper.xml b/standard-server/src/main/resources/mapper/ProductMapper.xml
index e7d4c70..29b90c5 100644
--- a/standard-server/src/main/resources/mapper/ProductMapper.xml
+++ b/standard-server/src/main/resources/mapper/ProductMapper.xml
@@ -1,29 +1,25 @@
 <?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.ProductMapper">
-
-    <select id="pageProductInformation" resultType="map">
-        SELECT COUNT(1) num, p.`father`
-        FROM product p
-        WHERE p.`specifications_id` = #{specificationsId}
-        <if test="productCodeOrName != null and productCodeOrName != ''">
-            AND p.`father` = #{productCodeOrName}
-        </if>
-        GROUP BY p.`father`
-    </select>
-
-    <select id="selectOneChildren" resultType="map">
-        SELECT p.`id`, p.`name`, p.`unit`, p.`required`, p.`internal`
-        FROM product p
-        WHERE p.`father` = #{father}
-    </select>
     <select id="selectProductByMaterialId" resultType="Map">
-        select p.name,unit,required,internal
+        select p.name, unit, required, internal
         from lims_laboratory.product p,
              lims_laboratory.specifications sp,
              lims_laboratory.standard st
-        where specifications_id=sp.id
-          and standard=st.id
-        and material_id=#{materialId}
+        where specifications_id = sp.id
+          and standard_id = st.id
+          and material_id = #{materialId}
+    </select>
+
+    <!--灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹�-->
+    <select id="pageProductInformation" resultType="java.util.Map">
+        select name,
+               father,
+               unit,
+               required,
+               internal
+        from lims_laboratory.product
+        where state=1
+        and specifications_id=#{specificationsId}
     </select>
 </mapper>
diff --git a/standard-server/src/main/resources/mapper/ProductModelMapper.xml b/standard-server/src/main/resources/mapper/ProductModelMapper.xml
new file mode 100644
index 0000000..bc6f8cd
--- /dev/null
+++ b/standard-server/src/main/resources/mapper/ProductModelMapper.xml
@@ -0,0 +1,43 @@
+<?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.ProductModelMapper">
+    <!--鏌ヨ鏍囧噯妯$増鍒楄〃-->
+    <select id="selectproductModel" resultType="java.util.Map">
+        select id,
+        father,
+        name,
+        unit
+        from lims_laboratory.product_model
+        where state=1
+        and material=#{material}
+        <if test="name!=null and name!=''">
+            and name like concat('%',#{name},'%')
+        </if>
+        <if test="father!=null and father!=''">
+            and father like concat('%',#{father},'%')
+        </if>
+        order by father
+    </select>
+
+    <update id="delAllproductModel">
+        update lims_laboratory.product_model
+        set state=0
+        where id in (${ids})
+    </update>
+    <!--娣诲姞鏍囧噯閫夋嫨椤圭洰鍒嗙粍-->
+    <select id="selectfather" resultType="java.lang.String">
+        select distinct father
+        from lims_laboratory.product_model
+        where state = 1
+    </select>
+
+    <!--鏌ヨ椤圭洰妯$増鏍规嵁鏍峰搧鍚�-->
+    <select id="seleMode" resultType="java.util.Map">
+        select name,
+               father,
+               unit
+        from lims_laboratory.product_model
+        where state = 1
+          and material =#{name}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/standard-server/src/main/resources/mapper/SpecificationsMapper.xml b/standard-server/src/main/resources/mapper/SpecificationsMapper.xml
index 4daa5c5..1a6d408 100644
--- a/standard-server/src/main/resources/mapper/SpecificationsMapper.xml
+++ b/standard-server/src/main/resources/mapper/SpecificationsMapper.xml
@@ -1,5 +1,14 @@
 <?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.SpecificationsMapper">
-
+    <!--鏍规嵁瑙勬牸id鏌ヨ鐗╂枡鍚嶇О-->
+    <select id="selMateName" resultType="java.lang.String">
+        select name
+        from lims_laboratory.material
+        where state = 1
+          and id = (select material_id
+                    from lims_laboratory.standard
+                    where standard.state = 1
+                      and standard.id=#{standardId});
+    </select>
 </mapper>
diff --git a/sys/src/main/resources/application-dev.yml b/sys/src/main/resources/application-dev.yml
index 6cef4e4..46a07a9 100644
--- a/sys/src/main/resources/application-dev.yml
+++ b/sys/src/main/resources/application-dev.yml
@@ -67,7 +67,7 @@
     # redis鏈嶅姟鍣ㄥ湴鍧�锛堥粯璁や负localhost锛�
     host: 192.168.110.209
     # redis绔彛锛堥粯璁や负6379锛�
-    port: 6379
+    port: 6380
     # redis璁块棶瀵嗙爜锛堥粯璁や负绌猴級
     password: null
     # redis杩炴帴瓒呮椂鏃堕棿锛堝崟浣嶆绉掞級

--
Gitblit v1.9.3