From 3a4ec5e2eae59901979f4309acb44eebacb75c56 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 25 八月 2023 17:45:18 +0800
Subject: [PATCH] 委托报检修改

---
 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InspectionVo.java                         |   17 ++
 standard-server/src/main/resources/mapper/ProductMapper.xml                                                  |   30 ++++
 inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java           |   27 ++++
 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java                           |    2 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java              |   28 +++-
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java                    |   10 +
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java           |  101 +++++++++++-----
 standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductController.java                   |   35 ++++-
 standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductServiceImpl.java                |   44 ++++--
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java |    3 
 standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductMapper.java                           |    8 +
 inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml                                   |   18 +-
 standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java                                   |    2 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkDetectionServiceImpl.java        |    2 
 standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductService.java                         |   27 +++
 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkBasicInformation.java                    |    6 
 16 files changed, 268 insertions(+), 92 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 29ed397..f9b7ed3 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
@@ -20,6 +20,7 @@
 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.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.limslaboratory.service.InspectionService;
@@ -85,10 +86,21 @@
         return Result.fail("绫诲瀷閿欒!");
     }
 
+    @ApiOperation(value = "鏂板妫�楠屽崟-->閫夋嫨妫�楠岄」鐩増鏈�")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "name", value = "浜у搧鍚嶇О", dataTypeClass = String.class, required = true),
+            @ApiImplicitParam(name = "mcode", value = "浜у搧缂栧彿", dataTypeClass = String.class, required = true),
+            @ApiImplicitParam(name = "specifications", value = "瑙勬牸鍨嬪彿", dataTypeClass = String.class, required = true)
+    })
+    @GetMapping("/chooseVer")
+    public Result chooseVer(String name, String mcode, String specifications) {
+        return Result.success(inspectionService.chooseVer(name, mcode, specifications));
+    }
+
 
     @ApiOperation(value = "鏂板妫�楠屽崟")
     @PostMapping("/addInspect")
-    public Result addInspect(@RequestHeader("token") String token, @RequestBody InspectionVo inspectionVo) throws Exception {
+    public Result addInspect(@RequestHeader("token") String token, @Validated @RequestBody InspectionVo inspectionVo) throws Exception {
         Object object = RedisUtil.get(token);
         Map<String, Object> unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class);
         return Result.success(inspectionService.addInspect((Integer) unmarshal.get("id"), inspectionVo));
@@ -110,13 +122,13 @@
     }
 
     @ApiOperation(value = "淇濆瓨妫�楠岄」鐩矗浠讳汉")
-        @ApiImplicitParams(value = {
-                @ApiImplicitParam(name = "id", value = "妫�楠屽崟椤圭洰id", dataTypeClass = Integer.class, required = true),
-                @ApiImplicitParam(name = "userProId", value = "璐d换浜篿d", dataTypeClass = Integer.class, required = true)
-        })
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "妫�楠屽崟椤圭洰id", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "userProId", value = "璐d换浜篿d", dataTypeClass = Integer.class, required = true)
+    })
     @GetMapping("/chooseUseProId")
-    public Result chooseUseProId(Integer id,Integer userProId) {
-        return Result.success(inspectionService.chooseUseProId(id,userProId));
+    public Result chooseUseProId(Integer id, Integer userProId) {
+        return Result.success(inspectionService.chooseUseProId(id, userProId));
     }
 
     @ApiOperation(value = "浣滃簾妫�楠屽崟")
@@ -124,7 +136,7 @@
             @ApiImplicitParam(name = "id", value = "妫�楠屽崟id", dataTypeClass = Integer.class, required = true)
     })
     @PostMapping("/delInspect")
-    public Result delInspect(Integer id)  {
+    public Result delInspect(Integer id) {
         return Result.success(inspectionService.delInspect(id));
     }
 
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java
index 1da481b..9ac5e99 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java
@@ -4,17 +4,22 @@
 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.LinkDetection;
 import com.yuanchu.limslaboratory.pojo.Material;
 import com.yuanchu.limslaboratory.service.LinkBasicInformationService;
 import com.yuanchu.limslaboratory.service.MaterialService;
+import com.yuanchu.limslaboratory.service.ProductService;
 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.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 javax.annotation.Resource;
 import java.util.List;
 import java.util.Map;
 
@@ -40,6 +45,9 @@
     @Autowired
     private StandardService standardService;
 
+    @Resource
+    ProductService productService;
+
     @ApiOperation("閾炬帴-->鑾峰彇鏍峰搧鍚嶇О")
     @GetMapping("/material")
     public Result<?> getMaterialIdAndName(@RequestHeader("link") String link) {
@@ -64,12 +72,27 @@
         return Result.fail("鎶辨瓑閾炬帴閿欒鎴栧凡杩囨湡锛�");
     }
 
-    @ApiOperation("閾炬帴-->娣诲姞妫�楠岀敵璇峰崟")
+    @ApiOperation("閾炬帴-->閫夋嫨璇曢獙椤圭洰")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "modelId", value = "鍨嬪彿id", dataTypeClass = Integer.class, required = true)
+    })
+    @GetMapping("/chooseProject")
+    public Result<?> chooseProject(@RequestHeader("link") String link,  Integer modelId) {
+        String redisLink = RedisUtil.get("viewId").toString();
+        if (linkBasicInformationService.isIfViewUUID(redisLink)){
+            //鏌ヨ鏍囧噯搴撲腑璇ュ瀷鍙蜂笅鐨勬墍鏈夎瘯楠岄」鐩�(鐖剁被)
+            return Result.success(productService.chooseProject(modelId));
+        }
+        return Result.fail("鎶辨瓑閾炬帴閿欒鎴栧凡杩囨湡锛�");
+
+    }
+
+    @ApiOperation("閾炬帴-->娣诲姞濮旀墭鎶ユ鐢宠鍗�")
     @PostMapping("/addInspection")
     public Result<?> addLinkBasicInformation(@RequestHeader("link") String link, @RequestBody LinkBasicInformation linkBasicInformation) {
         String redisLink = RedisUtil.get("viewId").toString();
         if (linkBasicInformationService.isIfViewUUID(redisLink)){
-            linkBasicInformation.setUUID(redisLink);
+            linkBasicInformation.setUid(redisLink);
             String code = linkBasicInformationService.addLinkBasicInformation(linkBasicInformation);
             if (!ObjectUtils.isEmpty(code)){
                 return Result.success("娣诲姞鎴愬姛锛�", code);
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
index 847a506..5c9f196 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkBasicInformation.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkBasicInformation.java
@@ -1,13 +1,9 @@
 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;
@@ -88,5 +84,5 @@
     private List<LinkDetection> linkDetectionList;
 
     @ApiModelProperty(value = "鐢熸垚id锛氫綔鐢ㄤ簬鏈夋晥鏈熷唴鏌ヨ鍐呭鎵�鐢�")
-    private String UUID;
+    private String uid;
 }
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
index e62f2a8..5345c81 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java
@@ -74,7 +74,7 @@
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date updateTime;
 
-    @ApiModelProperty(value = "妫�楠屾棩鏈�", hidden = true)
+    @ApiModelProperty(value = "妫�楠屾棩鏈�", required = true,example = "2023-08-22")
     private Date dateSurvey;
 
     @ApiModelProperty(value = "妫�楠岀姸鎬�", hidden = true)
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InspectionVo.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InspectionVo.java
index f804333..de59347 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InspectionVo.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InspectionVo.java
@@ -5,6 +5,9 @@
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.util.Date;
 //鏂板妫�楠屽崟
@@ -15,6 +18,7 @@
      *妫�楠岀被鍨� 0锛氬師鏉愭枡锛�1锛氫骇鍝侊紱2锛氬崐鎴愬搧锛�
      **/
     @JsonSerialize
+    @NotNull(message = "妫�楠岀被鍨嬩笉鑳戒负绌�")
     private Integer type;
 
     /**
@@ -22,30 +26,35 @@
      **/
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @NotBlank(message = "鏉ユ枡鏃ユ湡涓嶈兘涓虹┖")
     private Date formTime;
 
     /**
      * 渚涘簲鍟�
      **/
     @JsonSerialize
+    @NotBlank(message = "渚涘簲鍟嗕笉鑳戒负绌�")
     private String supplier;
 
     /**
      * 鐗╂枡缂栫爜
      **/
     @JsonSerialize
+    @NotBlank(message = "鏍峰搧缂栫爜涓嶈兘涓虹┖")
     private String mcode;
 
     /**
      * 鐗╂枡鍚嶇О
      **/
     @JsonSerialize
+    @NotBlank(message = "鏍峰搧鍚嶇О涓嶈兘涓虹┖")
     private String name;
 
     /**
      * 瑙勬牸鍚嶇О-鍨嬪彿鍚嶇О
      **/
     @JsonSerialize
+    @NotBlank(message = "瑙勬牸鍨嬪彿涓嶈兘涓虹┖")
     private String specifications;
 
     /**
@@ -58,6 +67,7 @@
      * 鎶ユ鏁伴噺-鐗╂枡鏁伴噺
      **/
     @JsonSerialize
+    @NotNull(message = "鎶ユ鏁伴噺涓嶈兘涓虹┖")
     private Integer num;
 
     /**
@@ -65,6 +75,7 @@
      **/
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @NotBlank(message = "妫�楠屽紑濮嬫椂闂翠笉鑳戒负绌�")
     private Date startTime;
 
     /**
@@ -72,5 +83,11 @@
      **/
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @NotBlank(message = "妫�楠岀粨鏉熸椂闂翠笉鑳戒负绌�")
     private Date endTime;
+
+    //璇曢獙椤圭洰
+    @NotBlank(message = "璇曢獙椤圭洰涓嶈兘涓虹┖")
+    @JsonSerialize
+    private String experiment;
 }
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java
index 4c2fec0..e473e4a 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java
@@ -58,5 +58,15 @@
      * @return
      */
     String chooseUseProId(Integer id, Integer userProId);
+
+    /**
+     * 鏂板妫�楠屽崟-->閫夋嫨妫�楠岄」鐩増鏈�
+     * @param name
+     * @param mcode
+     * @param specifications
+     * @return
+     */
+    List<Map<String,Object>> chooseVer(String name, String mcode, String specifications);
+
 }
 
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java
index 9187912..571f2dc 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java
@@ -3,6 +3,7 @@
 import cn.hutool.core.lang.Snowflake;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -103,39 +104,46 @@
                 .build();
         inspectionMaterialMapper.insert(inspectionMaterial);
         /*鏂板妫�楠岄」鐩〃*/
-        //鑾峰彇鐗╂枡id
-        Material material = materialMapper.selectOne(Wrappers.<Material>query()
-                .eq("name", inspectionVo.getName())
-                .eq("code", inspectionVo.getMcode()));
-        //鑾峰彇瑙勬牸鍚嶇О鍜屽瀷鍙峰悕绉�
-        String specification = inspectionVo.getSpecifications();
-        String[] split = specification.split("-");
-        String stName = split[0];
-        String spName = split[1];
-        //鑾峰彇瑙勬牸id
-        Standard standard = standardService.getOne(Wrappers.<Standard>query()
-                .eq("name", stName)
-                .eq("material_id", material.getId()));
-        //鑾峰彇鍨嬪彿id
-        Specifications specifications = specificationsService.getOne(Wrappers.<Specifications>query()
-                .eq("name", spName)
-                .eq("standard_id", standard.getId()));
-        //鏍规嵁鍨嬪彿id鏌ヨ椤圭洰淇℃伅
-        List<Product> productList = productMapper.selectList(Wrappers.<Product>query().eq("specifications_id", specifications.getId()));
-        ArrayList<InspectionProduct> list = new ArrayList<>();
-        for (Product product : productList) {
-            InspectionProduct rawInsProduct = InspectionProduct.builder()
-                    .name(product.getName())
-                    .unit(product.getUnit())
-                    .required(product.getRequired())
-                    .internal(product.getInternal())
-                    .inspectionMaterialId(material.getId())
-                    .build();
-            list.add(rawInsProduct);
+        //鏍规嵁鏍峰搧鍚嶇О缂栧彿浠ュ強鍨嬪彿瑙勬牸鑾峰彇鍨嬪彿id
+        Integer specificationId = getSpecificationId(inspectionVo.getName(), inspectionVo.getMcode(), inspectionVo.getSpecifications());
+        //濡傛灉璇曢獙椤圭洰瀛楁涓嶄负绌�
+        if (ObjectUtils.isNotEmpty(inspectionVo.getExperiment())) {
+            //鑾峰彇璇曢獙椤圭洰淇℃伅(缁撴瀯,瀵肩嚎澶栧緞)
+            List<String> experiments = Arrays.stream(inspectionVo.getExperiment().split(",")).collect(Collectors.toList());
+            //鏍规嵁鍨嬪彿id鍜岄」鐩俊鎭煡璇㈤」鐩俊鎭�
+            List<Product> products = new ArrayList<>();
+            for (String experiment : experiments) {
+                List<Product> productList1 = productMapper.selectList(Wrappers.<Product>query()
+                        .eq("specifications_id", specificationId)
+                        .eq("father", experiment));
+                if (ObjectUtils.isEmpty(productList1)) {
+                    Product product = productMapper.selectOne(Wrappers.<Product>query()
+                            .eq("specifications_id", specificationId)
+                            .isNull("father")
+                            .eq("name", experiment));
+                    products.add(product);
+                } else products.addAll(productList1);
+            }
+
+            //灏嗘煡璇㈢殑椤圭洰淇℃伅鏋勫缓鎴愭楠岄」鐩�
+            ArrayList<InspectionProduct> list = new ArrayList<>();
+            for (Product product : products) {
+                InspectionProduct rawInsProduct = InspectionProduct.builder()
+                        .name(product.getName())
+                        .unit(product.getUnit())
+                        .required(product.getRequired())
+                        .internal(product.getInternal())
+                        .inspectionMaterialId(inspectionMaterial.getId())
+                        .build();
+                list.add(rawInsProduct);
+            }
+
+            //妫�楠岄」鐩壒閲忔坊鍔�
+            inspectionProductService.saveBatch(list);
+            return inspection.getId();
         }
-        //妫�楠岄」鐩壒閲忔坊鍔�
-        inspectionProductService.saveBatch(list);
-        return inspection.getId();
+        //todo:鏈畬
+        return null;
     }
 
     //鏍规嵁妫�楠屽崟id鏌ヨ鍘熸潗鏂欐楠屽崟璇︽儏
@@ -213,5 +221,34 @@
     }
 
 
+    //鏂板妫�楠屽崟-->閫夋嫨妫�楠岄」鐩増鏈�
+    @Override
+    public List<Map<String, Object>> chooseVer(String name, String mcode, String specifications) {
+        Integer specificationId = getSpecificationId(name, mcode, specifications);
+        return null;
+    }
+
+
+    /*鏍规嵁鏍峰搧鍚嶇О,鏍峰搧缂栧彿,鍨嬪彿瑙勬牸鑾峰彇鍨嬪彿id*/
+    private Integer getSpecificationId(String name, String mcode, String specification) {
+        //鑾峰彇鐗╂枡id
+        Material material = materialMapper.selectOne(Wrappers.<Material>query()
+                .eq("name", name)
+                .eq("code", mcode));
+        //鑾峰彇瑙勬牸鍚嶇О鍜屽瀷鍙峰悕绉�
+        String[] split = specification.split("-");
+        String stName = split[0];
+        String spName = split[1];
+        //鑾峰彇瑙勬牸id
+        Standard standard = standardService.getOne(Wrappers.<Standard>query()
+                .eq("name", stName)
+                .eq("material_id", material.getId()));
+        //鑾峰彇鍨嬪彿id
+        Specifications specifications = specificationsService.getOne(Wrappers.<Specifications>query()
+                .eq("name", spName)
+                .eq("standard_id", standard.getId()));
+        return specifications.getId();
+    }
+
 }
 
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 e9c83d9..d7dd0eb 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
@@ -34,10 +34,13 @@
 
     @Override
     public String addLinkBasicInformation(LinkBasicInformation linkBasicInformation) {
+        //濮旀墭缂栧彿
         String code = MyUtil.getTimeSixNumberCode("SL", "SL");
         linkBasicInformation.setEntrustCoding(code);
+        //鏂板鍩烘湰淇℃伅琛�
         int insert = linkBasicInformationMapper.insert(linkBasicInformation);
         if (insert == 1) {
+            //鏂板濮旀墭鏍峰搧琛�
             linkDetectionService.insertListData(linkBasicInformation.getId(), linkBasicInformation.getLinkDetectionList());
             return code;
         }
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
index 1bcd989..e347c34 100644
--- 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
@@ -27,7 +27,7 @@
     @Override
     public void insertListData(Integer id, List<LinkDetection> linkDetectionList) {
         for (LinkDetection linkDetection:linkDetectionList){
-            linkDetection.setInspectionStatus(2);
+            linkDetection.setInspectionStatus(1);
             linkDetection.setLinkBasicId(id);
         }
         linkDetectionMapper.insertBatchSomeColumn(linkDetectionList);
diff --git a/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml b/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml
index 2acf86f..3ce5aec 100644
--- a/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml
+++ b/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml
@@ -25,19 +25,19 @@
     </select>
 
     <select id="selectLinkAll" resultType="java.util.Map">
-        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,
+        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
+               d.`samples_number`                           num,
+               experiment,
+               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
     </select>
-
 </mapper>
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 31b730b..79f34f0 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
@@ -1,18 +1,11 @@
 package com.yuanchu.limslaboratory.controller;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.limslaboratory.service.ProductService;
 import com.yuanchu.limslaboratory.utils.MyUtil;
 import com.yuanchu.limslaboratory.vo.Result;
 import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
 
 /**
  * <p>
@@ -30,20 +23,32 @@
     @Autowired
     private ProductService productService;
 
-    @ApiOperation("鏌ヨ璇ュ瀷鍙蜂笅鐨勯」鐩�")
+    @ApiOperation("鏌ヨ璇ュ瀷鍙蜂笅鐨勯」鐩�-->閫夋嫨鐗堟湰")
     @ApiImplicitParams(value = {
             @ApiImplicitParam(name = "specificationsId", value = "鍨嬪彿ID", dataTypeClass = Integer.class, required = true)
     })
+    @GetMapping("/chooseVersion")
+    public Result<?> chooseVersion(Integer specificationsId) {
+        return Result.success(productService.chooseVersion(specificationsId));
+    }
+
+    @ApiOperation("鏌ヨ璇ュ瀷鍙蜂笅鐨勯」鐩�")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "specificationsId", value = "鍨嬪彿ID", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "version", value = "鐗堟湰(榛樿鏈�鏂扮増鏈�)", dataTypeClass = Integer.class,required = true )
+    })
     @GetMapping("/page")
-    public Result<?> pageProductInformation(Integer specificationsId) {
-        return Result.success(productService.pageProductInformation(specificationsId));
+    public Result<?> pageProductInformation(Integer specificationsId,Integer version) {
+        return Result.success(productService.pageProductInformation(specificationsId,version));
     }
 
     @ApiOperation("濉啓鏍囧噯鍊间笌鍐呮帶鍊�,榧犳爣绉诲紑淇濆瓨")
     @ApiImplicitParams(value = {
             @ApiImplicitParam(name = "id", value = "鏍囧噯椤圭洰ID", dataTypeClass = Integer.class, required = true),
             @ApiImplicitParam(name = "required", value = "鏍囧噯鍊�", dataTypeClass = String.class, required = true),
+            @ApiImplicitParam(name = "internal", value = "鍐呮帶鍊�", dataTypeClass = String.class, required = true),
             @ApiImplicitParam(name = "internal", value = "鍐呮帶鍊�", dataTypeClass = String.class, required = true)
+
     })
     @PostMapping("/write")
     public Result<?> write(Integer id, String required, String internal) {
@@ -64,4 +69,14 @@
         productService.deleteList(ids);
         return Result.success("鍒犻櫎鎴愬姛");
     }
+
+    @ApiOperation("娣诲姞鍚屼竴涓瀷鍙风殑鍏朵粬鐗堟湰")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "specificationsId", value = "鍨嬪彿id", dataTypeClass = Integer.class, required = true)
+    })
+    @PostMapping("/addVersion")
+    public Result<?> addVersion(Integer specificationsId ) {
+        Integer version = productService.addVersion(specificationsId);
+        return Result.success("娣诲姞鐗堟湰"+version+"鎴愬姛");
+    }
 }
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 5abf378..13958cd 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
@@ -24,7 +24,13 @@
     List<Map> selectProductByMaterialId(int materialId);
 
     //灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹�
-    List<Map<String, Object>> pageProductInformation(Integer specificationsId);
+    List<Map<String, Object>> pageProductInformation(Integer specificationsId,Integer version);
 
     void deleteList(String ids);
+
+    //灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹�-->閫夋嫨鐗堟湰
+    List<Integer> chooseVersion(Integer specificationsId);
+
+    //鏌ヨ璇ュ瀷鍙蜂笅鐨勬墍鏈夎瘯楠岄」鐩�(鐖剁被)
+    List<Map<String,Object>> chooseProject(Integer modelId);
 }
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 14a985e..7cc9533 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
@@ -60,7 +60,7 @@
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date updateTime;
 
-    @ApiModelProperty(value = "涔愯閿�", hidden = true)
+    @ApiModelProperty(value = "鐗堟湰", hidden = true)
     private Integer version;
 
     @ApiModelProperty(value = "鍏宠仈 鍨嬪彿id", example = "1", hidden = true)
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 7836058..a81e74a 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
@@ -1,13 +1,10 @@
 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.Product;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 import java.util.List;
 import java.util.Map;
-import java.util.Objects;
 
 
 /**
@@ -21,13 +18,20 @@
 public interface ProductService extends IService<Product> {
     void deleteProductInformation(List<Integer> SpecificationsId);
 
+    /**
+     * 灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹�-->閫夋嫨鐗堟湰
+     * @param specificationsId
+     * @return
+     */
+    List<Integer> chooseVersion(Integer specificationsId);
+
 
     /**
      * 灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹�
      * @param specificationsId
      * @return
      */
-    List<Map<String,Object>> pageProductInformation(Integer specificationsId);
+    List<Map<String,Object>> pageProductInformation(Integer specificationsId,Integer version);
 
     /**
      * 濉啓鏍囧噯鍊间笌鍐呮帶鍊�,榧犳爣绉诲紑淇濆瓨
@@ -39,4 +43,19 @@
     Integer write(Integer id, String required, String internal);
 
     void deleteList(String ids);
+
+    /**
+     * 娣诲姞鍚屼竴涓瀷鍙风殑鍏朵粬鐗堟湰
+     * @param specificationsId
+     * @return
+     */
+    Integer addVersion(Integer specificationsId);
+
+
+    /**
+     * 鏌ヨ璇ュ瀷鍙蜂笅鐨勬墍鏈夎瘯楠岄」鐩�(鐖剁被)
+     * @param modelId
+     * @return
+     */
+    List<Map<String,Object>> chooseProject(Integer modelId);
 }
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 a08eb0e..eed66aa 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
@@ -1,28 +1,18 @@
 package com.yuanchu.limslaboratory.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.yuanchu.limslaboratory.mapper.ProductModelMapper;
-import com.yuanchu.limslaboratory.mapper.SpecificationsMapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 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;
-import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
-import java.util.Objects;
+
 
 /**
  * <p>
@@ -38,9 +28,6 @@
     @Resource
     private ProductMapper productMapper;
 
-    @Resource
-    ProductModelMapper productModelMapper;
-
 
     @Override
     public void deleteProductInformation(List<Integer> SpecificationsId) {
@@ -52,11 +39,17 @@
         }
     }
 
+    //灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹�-->閫夋嫨鐗堟湰
+    @Override
+    public List<Integer> chooseVersion(Integer specificationsId) {
+        return productMapper.chooseVersion(specificationsId);
+    }
+
     //灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹�
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public List<Map<String, Object>> pageProductInformation(Integer specificationsId) {
-        return productMapper.pageProductInformation(specificationsId);
+    public List<Map<String, Object>> pageProductInformation(Integer specificationsId,Integer version) {
+        return productMapper.pageProductInformation(specificationsId,version);
     }
 
     //濉啓鏍囧噯鍊间笌鍐呮帶鍊�,榧犳爣绉诲紑淇濆瓨
@@ -75,5 +68,22 @@
         productMapper.deleteList(ids);
     }
 
+    //娣诲姞鍚屼竴涓瀷鍙风殑鍏朵粬鐗堟湰
+    @Override
+    public Integer addVersion(Integer specificationsId) {
+        List<Product> productList = productMapper.selectList(Wrappers.<Product>query().eq("specifications_id", specificationsId));
+        for (Product product : productList) {
+            product.setVersion(product.getVersion()+1);
+        }
+         saveBatch(productList);
+        return productList.get(0).getVersion();
+    }
+
+    //鏌ヨ璇ュ瀷鍙蜂笅鐨勬墍鏈夎瘯楠岄」鐩�(鐖剁被)
+    @Override
+    public List<Map<String,Object>> chooseProject(Integer modelId) {
+        return productMapper.chooseProject(modelId);
+    }
+
 
 }
diff --git a/standard-server/src/main/resources/mapper/ProductMapper.xml b/standard-server/src/main/resources/mapper/ProductMapper.xml
index 1014cc6..3529109 100644
--- a/standard-server/src/main/resources/mapper/ProductMapper.xml
+++ b/standard-server/src/main/resources/mapper/ProductMapper.xml
@@ -23,6 +23,7 @@
         <result property="unit" column="unit"/>
         <result property="required" column="required"/>
         <result property="internal" column="internal"/>
+        <result property="version" column="version"/>
     </resultMap>
 
     <select id="pageProductInformation" resultMap="pageProductInformationMap">
@@ -31,10 +32,12 @@
                father,
                unit,
                required,
-               internal
+               internal,
+               version
         from lims_laboratory.product
         where state = 1
           and specifications_id = #{specificationsId}
+          and version = #{version}
     </select>
 
     <select id="deleteList">
@@ -42,4 +45,29 @@
         set state=0
         where id in (${ids})
     </select>
+
+    <!--灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹�-閫夋嫨鐗堟湰-->
+    <select id="chooseVersion" resultType="java.lang.Integer">
+        select distinct version
+        from lims_laboratory.product
+        where state = 1
+          and specifications_id = #{specificationsId}
+        order by version desc
+    </select>
+
+    <!--鏌ヨ璇ュ瀷鍙蜂笅鐨勬墍鏈夎瘯楠岄」鐩�(鐖剁被)-->
+    <resultMap id="chooseProjects" type="map">
+        <id property="name" column="father"/>
+        <collection property="children" resultMap="chooseProjectTowMap" javaType="List"/>
+    </resultMap>
+    <resultMap id="chooseProjectTowMap" type="map">
+        <id property="id" column="id"/>
+        <result property="name" column="name"/>
+    </resultMap>
+    <select id="chooseProject" resultMap="chooseProjects">
+        select id, father, name
+        from lims_laboratory.product
+        where state = 1
+          and specifications_id = #{modelId}
+    </select>
 </mapper>

--
Gitblit v1.9.3