From dd301742784e570ec01098907f56e5c9c19b5a99 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期二, 23 七月 2024 17:26:56 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java          |    7 -
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java |    7 +
 cnas-server/src/main/resources/mapper/DeviceMapper.xml                                 |    3 
 cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java                   |    4 
 inspect-server/src/main/resources/mapper/InsOrderMapper.xml                            |    8 +
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java |   45 +++++--
 cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java      |  210 ++++++++++++++++++++++++++++++++++
 inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java    |    5 
 inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProductResult.java                |    8 
 cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java                             |    6 
 inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java                |    2 
 inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java          |    3 
 12 files changed, 274 insertions(+), 34 deletions(-)

diff --git a/cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java b/cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java
index dda239a..1e72fb4 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java
@@ -376,6 +376,214 @@
     }
 
     @ValueClassify(value = "鑳藉姏鑼冨洿")
+    @ApiOperation(value = "瑁呭瀵煎叆妫�楠岄」鐩�")
+    @PostMapping("/importEquipData")
+    @Transactional
+    public Result importEquipData(@RequestParam("file") MultipartFile file) throws Exception {
+        InputStream inputStream = file.getInputStream();
+        List<StructureItemParameter> lists = new ArrayList<>();
+        AtomicReference<String> sample = new AtomicReference<>();
+        ExcelUtil.readBySax(inputStream, -1, (i, l, list1) -> {
+            if (l == 1) {
+                sample.set(list1.get(1) + "");
+            }
+            if (l >= 1) {
+                StructureItemParameter str = new StructureItemParameter();
+                if (list1.get(1) == null) {
+                    str.setSample(null);
+                } else {
+                    String brand = (String) list1.get(1);
+                    StringBuilder builder = new StringBuilder();
+                    builder.append("[");
+                    if (ObjectUtil.isNotEmpty(list1.get(2))) {
+                        String production = (String) list1.get(2);
+                        if (!production.contains("锛�")) {
+                            builder.append(String.format("[\"%s\",\"%s\"]", brand, production));
+                        } else {
+                            Arrays.stream(production.split("锛�")).forEach(item -> {
+                                builder.append(String.format("[\"%s\",\"%s\"],", brand, item));
+                            });
+                            builder.deleteCharAt(builder.length() - 1);
+                        }
+                    } else {
+                        builder.append("[");
+                        builder.append(String.format("\"%s\"", brand));
+                        builder.append("]");
+                    }
+                    builder.append("]");
+                    str.setSample(builder.toString());
+                }
+                str.setInspectionItem(list1.get(4).toString());
+                if (list1.get(5) != null) {
+                    str.setInspectionItemEn(list1.get(5).toString());
+                }
+                if (list1.get(6) == null) {
+                    str.setInspectionItemSubclass(null);
+                } else {
+                    str.setInspectionItemSubclass(list1.get(6).toString());
+                }
+                if (list1.get(7) == null) {
+                    str.setInspectionItemSubclassEn(null);
+                } else {
+                    str.setInspectionItemSubclassEn(String.valueOf(list1.get(7).toString()));
+                }
+                StructureItemParameter db_str;
+                if (StringUtils.isEmpty(str.getInspectionItemSubclass())) {
+                    // 姣旇緝涓や釜鏉′欢
+                    try {
+                        db_str = structureItemParameterService.getOne(Wrappers.lambdaQuery(StructureItemParameter.class)
+                                .eq(StructureItemParameter::getInspectionItem, str.getInspectionItem())
+                                .eq(StructureItemParameter::getSample, str.getSample())
+                                .last("limit 1")
+                        );
+                    } catch (Exception e) {
+                        throw new ErrorException("閲嶅鏌ヨ锛�" + str.getInspectionItem());
+                    }
+                } else {
+                    try {
+                        db_str = structureItemParameterService.getOne(Wrappers.lambdaQuery(StructureItemParameter.class)
+                                .eq(StructureItemParameter::getInspectionItem, str.getInspectionItem())
+                                .eq(StructureItemParameter::getSample, str.getSample())
+                                .eq(StructureItemParameter::getInspectionItemSubclass, str.getInspectionItemSubclass())
+                                .last("limit 1")
+                        );
+                    } catch (Exception e) {
+                        throw new ErrorException("閲嶅鏌ヨ锛�" + str.getInspectionItem() + " " + str.getInspectionItemSubclass());
+                    }
+                }
+                if (ObjectUtils.isNotEmpty(db_str)) {
+                    str.setId(db_str.getId());
+                }
+                if (list1.get(8) == null) {
+                    str.setMethod(null);
+                } else {
+                    StringBuffer buffer = new StringBuffer();
+                    String input = list1.get(8).toString();
+                    buffer.append("[");
+                    String[] values = input.split("锛�");
+                    for (String value : values) {
+                        buffer.append("\"").append(value.trim()).append("\",");
+                    }
+                    buffer.deleteCharAt(buffer.length() - 1);
+                    buffer.append("]");
+                    str.setMethod(buffer.toString());
+                }
+
+                if (list1.get(9) == null) {
+                    str.setSonLaboratory(null);
+                } else {
+                    str.setSonLaboratory(list1.get(9).toString());
+                }
+                if (list1.get(10) == null) {
+                    str.setUnit(null);
+                } else {
+                    str.setUnit(list1.get(10).toString());
+                }
+
+                if (list1.get(11) == null) {
+                    str.setAskTell(null);
+                } else {
+                    str.setAskTell(list1.get(11).toString());
+                }
+
+                if (list1.get(12) == null) {
+                    str.setAsk(null);
+                } else {
+                    str.setAsk(list1.get(12).toString());
+                }
+
+                if (list1.get(13) == null) {
+                    str.setPrice(null);
+                } else {
+                    str.setPrice(list1.get(13) + "");
+                }
+
+                if (list1.get(14) == null) {
+                    str.setManHour(null);
+                } else {
+                    str.setManHour(Double.valueOf(list1.get(14).toString()));
+                }
+
+                if (list1.get(15) == null) {
+                    str.setManHourGroup(null);
+                } else {
+                    str.setManHourGroup(list1.get(15).toString());
+                }
+
+                if (list1.get(16) == null) {
+                    str.setManDay(null);
+                } else {
+                    str.setManDay(Integer.valueOf(list1.get(16).toString()));
+                }
+                String jy;
+                if (list1.get(17).toString().equals("闈為噰闆嗙被鍨�")) {
+                    jy = "0";
+                } else {
+                    jy = "1";
+                }
+                str.setInspectionItemType(jy);
+                String validateValueType = list1.get(18).toString();
+                if (StringUtils.isNotBlank(validateValueType)) {
+                    Enums enums = enumService.getOne(Wrappers.lambdaQuery(Enums.class)
+                            .eq(Enums::getCategory, "妫�楠屽�肩被鍨�")
+                            .eq(Enums::getLabel, validateValueType));
+                    str.setInspectionValueType(enums.getValue());
+                }
+                int bsm;
+                if (list1.get(19).toString().equals("鍚�")) {
+                    bsm = 0;
+                } else {
+                    bsm = 1;
+                }
+                str.setBsm(bsm + "");
+                if (list1.get(20) != null) {
+                    str.setDic(list1.get(20) + "");
+                } else {
+                    str.setDic(null);
+                }
+                StandardTemplate standTempIdByName = standardTemplateService.getStandTempIdByName(String.valueOf(list1.get(21)));
+                if (standTempIdByName != null) {
+                    str.setTemplateId(standTempIdByName.getId());
+                } else {
+                    str.setTemplateId(null);
+                }
+                try {
+                    if (list1.get(22) != null && list1.get(22) != "") {
+                        str.setInspectionItemClass(list1.get(22) + "");
+                    } else {
+                        str.setInspectionItemClass(null);
+                    }
+                } catch (Exception e) {
+                }
+                try {
+                    if (list1.get(23) != null && list1.get(23) != "") {
+                        str.setInspectionItemClassEn(list1.get(23) + "");
+                    } else {
+                        str.setInspectionItemClassEn(null);
+                    }
+                } catch (Exception e) {
+                }
+                try {
+                    if (list1.get(24) != null) {
+                        str.setLaboratory(list1.get(24) + "");
+                    }
+                } catch (Exception e) {
+                }
+                lists.add(str);
+            }
+        });
+        structureItemParameterService.removeNoSample(sample.get());
+        // 濡傛灉鏁版嵁搴撻噷闈㈢殑鏁版嵁瀛樺湪閭d箞灏辨墽琛屾洿鏂版嫹璐濇搷浣�
+        try {
+            structureItemParameterService.saveOrUpdateBatch(lists);
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new RuntimeException("鏈嶅姟绔姤閿欏暒!!!");
+        }
+        return Result.success();
+    }
+
+    @ValueClassify(value = "鑳藉姏鑼冨洿")
     @ApiOperation(value = "瀵煎叆妫�楠屽璞�")
     @PostMapping("/importExcel")
     public Result importExcel(@RequestParam("file") MultipartFile file) {
@@ -386,4 +594,4 @@
         }
         return Result.success();
     }
-}
\ No newline at end of file
+}
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java b/cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java
index 0f143a9..909c79a 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java
@@ -128,10 +128,10 @@
     @ApiModelProperty("瀛樺偍鍦板潃")
     private String storageUrl;
 
+    @ApiModelProperty("璁惧IP")
+    private String ip;
+
     @ApiModelProperty("鏄惁涓烘暟閲囪澶�")
     @TableField(exist = false)
     private Boolean isItADataAcquisitionDevice;
-
-    @ApiModelProperty("璁惧IP")
-    private String ip;
 }
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
index 79c8bf5..d8609a0 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
@@ -116,11 +116,6 @@
             String[] ids = device.getInsProductIds().split(",");
             for (String i : ids) {
                 if (i.equals(id + "")) {
-                    if (ObjectUtils.isEmpty(device.getFileType()) || ObjectUtils.isEmpty(device.getCollectUrl())) {
-                        device.setIsItADataAcquisitionDevice(false);
-                    } else {
-                        device.setIsItADataAcquisitionDevice(true);
-                    }
                     devices2.add(device);
                     break;
                 }
@@ -138,7 +133,7 @@
     public Result<?> dataAcquisition(HttpServletRequest request, Integer id, String entrustCode, String sampleCode) {
         String ipAddress = request.getRemoteAddr();
         // 闃叉鍥炵幆鍦板潃鍙樹负IPv6
-        String ip = ipAddress.equals("0:0:0:0:0:0:0:1") ? "127.0.0.1" : ipAddress;
+        String ip =  ipAddress.equals("0:0:0:0:0:0:0:1") ? "127.0.0.1" : ipAddress;
         List<Device> device = baseMapper.selectList(Wrappers.<Device>lambdaQuery()
                 .eq(Device::getIp, ip));
         if (ObjectUtils.isEmpty(device)) {
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java b/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java
index d89a644..87b261b 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java
@@ -84,10 +84,10 @@
             }
             // 濡傛灉瀛樺湪瀛樺偍鍦板潃锛屽垯绉诲姩鍦板潃
             if (ObjectUtils.isNotEmpty(device.getStorageUrl())) {
-                String s = HTTP + ip + MOVEFILE + "?startFilePath=" + device.getCollectUrl() + "&endFilePath=" + device.getStorageUrl();
+                String s = HTTP + ip + MOVEFILE + "?startFilePath=" + device.getCollectUrl() + "&endFilePath=" + device.getStorageUrl() + "&fileType=" + device.getFileType();
                 String storageUrlResult = HttpUtil.get(s);
                 JSONObject storageUrlResultJson = JSON.parseObject(storageUrlResult);
-                if (Objects.equals(storageUrlResultJson.get("code"), 1)) {
+                if (Objects.equals(storageUrlResultJson.get("code"), 0)) {
                     if (ObjectUtils.isEmpty(storageUrlResultJson.get("msg"))) {
                         throw new ErrorException("瀛樺偍鍦板潃閿欒锛屽彲鑳芥枃浠惰矾寰勯厤缃敊璇紒");
                     } else {
diff --git a/cnas-server/src/main/resources/mapper/DeviceMapper.xml b/cnas-server/src/main/resources/mapper/DeviceMapper.xml
index 40bcc1f..60660a3 100644
--- a/cnas-server/src/main/resources/mapper/DeviceMapper.xml
+++ b/cnas-server/src/main/resources/mapper/DeviceMapper.xml
@@ -119,7 +119,8 @@
     </select>
 
     <select id="getInspectionItemSubclass" resultType="java.lang.String">
-        SELECT ip.inspection_item_subclass FROM ins_product ip
+        SELECT if(ip.inspection_item_subclass is not null and ip.inspection_item_subclass != '',
+                  ip.inspection_item_subclass, ip.inspection_item) inspection_item_subclass FROM ins_product ip
         where ip.ins_sample_id = #{id}
     </select>
 </mapper>
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java
index dfdb382..3b166f9 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java
@@ -18,6 +18,7 @@
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -80,8 +81,8 @@
     @ValueAuth
     @PostMapping("/getInsProduct")
     @ApiOperation("鑾峰彇妫�楠岄」鐩拰妯℃澘鍐呭")
-    public Result<?> getInsProduct(Integer id, Integer type, String laboratory) {
-        return Result.success(insOrderPlanService.getInsProduct(id, type, laboratory));
+    public Result<?> getInsProduct(Integer id, Integer type, String laboratory, HttpServletRequest request) {
+        return Result.success(insOrderPlanService.getInsProduct(id, type, laboratory, request));
     }
 
     @ValueClassify("妫�楠屼换鍔�")
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java
index 25fb187..57a0348 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java
@@ -53,4 +53,6 @@
     List<Map<Integer, Object>> selectReportModelByOrderId(@Param("id") Integer id, @Param("laboratory") String laboratory);
 
     String seldepLimsId(int depLimsId);
+
+    Map<String, Object> getDeviceMessage(@Param("ip")String ip, @Param("inspectionItem") String inspectionItem);
 }
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProductResult.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProductResult.java
index 2ccace9..c6b89b4 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProductResult.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProductResult.java
@@ -1,15 +1,13 @@
 package com.yuanchu.mom.pojo;
 
 import com.baomidou.mybatisplus.annotation.*;
-
-import java.io.Serializable;
-import java.time.LocalDateTime;
-import java.util.Date;
-
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
 /**
  * 妫�楠岄」鐩殑缁撴灉
  * @TableName ins_product_result
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java
index 7b49e94..ba0ffcd 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java
@@ -6,6 +6,7 @@
 import com.yuanchu.mom.pojo.InsProduct;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.List;
 import java.util.Map;
 
@@ -29,7 +30,7 @@
 
     int submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode, String sampleCode);
 
-    List<InsProduct> getInsProduct(Integer id, Integer type, String laboratory);
+    List<InsProduct> getInsProduct(Integer id, Integer type, String laboratory, HttpServletRequest request);
 
     List<String> checkSubmitPlan(Integer orderId, String laboratory);
 
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
index 79d817d..8c51007 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
@@ -3,7 +3,6 @@
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.lang.Console;
 import cn.hutool.core.lang.UUID;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
@@ -22,10 +21,11 @@
 import com.deepoove.poi.data.*;
 import com.deepoove.poi.data.style.*;
 import com.deepoove.poi.util.TableTools;
-import com.deepoove.poi.xwpf.WidthScalePattern;
 import com.yuanchu.mom.common.GetLook;
 import com.yuanchu.mom.common.PrintChina;
-import com.yuanchu.mom.dto.*;
+import com.yuanchu.mom.dto.ExcelDto;
+import com.yuanchu.mom.dto.InsOrderPlanDTO;
+import com.yuanchu.mom.dto.SampleProductDto;
 import com.yuanchu.mom.exception.ErrorException;
 import com.yuanchu.mom.mapper.*;
 import com.yuanchu.mom.pojo.*;
@@ -34,22 +34,17 @@
 import com.yuanchu.mom.utils.MatrixToImageWriter;
 import com.yuanchu.mom.utils.QueryWrappers;
 import com.yuanchu.mom.utils.RedisUtil;
-import com.yuanchu.mom.vo.InsOrderPlanTaskSwitchVo;
-import com.yuanchu.mom.vo.InsOrderPlanVO;
-import com.yuanchu.mom.vo.ProductVo;
-import com.yuanchu.mom.vo.SampleVo;
+import com.yuanchu.mom.vo.*;
 import org.apache.commons.io.IOUtils;
 import org.apache.poi.xwpf.usermodel.*;
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblWidth;
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTblWidth;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import java.io.*;
-import java.math.BigInteger;
 import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.text.SimpleDateFormat;
@@ -132,7 +127,6 @@
 
     @Resource
     private InsOrderFileMapper insOrderFileMapper;
-
     @Override
     public Map<String, Object> selectInsOrderPlanList(Page page, InsOrderPlanDTO insOrderPlanDTO) {
         Map<String, Object> map = new HashMap<>();
@@ -197,7 +191,7 @@
     }
 
     @Override
-    public List<InsProduct> getInsProduct(Integer id, Integer type, String laboratory) {
+    public List<InsProduct> getInsProduct(Integer id, Integer type, String laboratory, HttpServletRequest request) {
         List<InsProduct> insProducts = new ArrayList<>();
         switch (type) {
             case 0:
@@ -210,6 +204,9 @@
                 insProducts = insSampleMapper.getInsProduct3(id);
                 break;
         }
+        // 鏁伴噰鏂板
+        getDeviceMessage(insProducts, request);
+
         Set<Integer> set = new HashSet<>();
         Map<Integer, String> map2 = new HashMap<>();
         if (BeanUtil.isEmpty(insProducts)) return null;
@@ -217,6 +214,30 @@
         return insProducts;
     }
 
+    private List<InsProduct> getDeviceMessage(List<InsProduct> insProducts, HttpServletRequest request) {
+        String ipAddress = request.getRemoteAddr();
+        // 闃叉鍥炵幆鍦板潃鍙樹负IPv6
+        String ip =  ipAddress.equals("0:0:0:0:0:0:0:1") ? "127.0.0.1" : ipAddress;
+        insProducts.forEach(i -> {
+            Map<String, Object> devices = baseMapper.getDeviceMessage(ip, i.getInspectionItem());
+            if (ObjectUtils.isNotEmpty(devices)) {
+                InsProductResult insProductResult = i.getInsProductResult();
+                List<Object> list = new ArrayList<>();
+                Map<Object, Object> hashMap = new HashMap<>();
+                hashMap.put("v", devices.get("device_name"));
+                list.add(hashMap);
+                insProductResult.setEquipName(JSON.toJSON(list).toString());
+                List<Object> listValue = new ArrayList<>();
+                Map<Object, Object> hashMapValue = new HashMap<>();
+                hashMapValue.put("v", devices.get("management_number"));
+                listValue.add(hashMapValue);
+                insProductResult.setEquipName(JSON.toJSON(list).toString());
+                insProductResult.setEquipValue(JSON.toJSON(listValue).toString());
+            }
+        });
+        return insProducts;
+    }
+
     @Override
     public List<String> checkSubmitPlan(Integer orderId, String laboratory) {
         List<String> collect = new ArrayList<>();
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java
index 9ea8481..41a8ecc 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java
@@ -68,7 +68,12 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public int addStandardTree(StandardTree standardTree) {
-        StandardTree tree = standardTreeMapper.selectOne(Wrappers.<StandardTree>lambdaQuery().eq(StandardTree::getModel, standardTree.getModel()));
+        StandardTree tree = standardTreeMapper.selectOne(Wrappers.<StandardTree>lambdaQuery()
+                .eq(StandardTree::getFactory, standardTree.getFactory())
+                .eq(StandardTree::getLaboratory, standardTree.getLaboratory())
+                .eq(StandardTree::getSampleType, standardTree.getSampleType())
+                .eq(StandardTree::getSample, standardTree.getSample())
+                .eq(StandardTree::getModel, standardTree.getModel()));
         if (tree != null) {
             throw new ErrorException("璇ュ瀷鍙峰凡瀛樺湪");
         }
diff --git a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
index b6396c8..6f450e0 100644
--- a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
@@ -456,4 +456,12 @@
         from department_lims
         where id = #{depLimsId}
     </select>
+
+    <select id="getDeviceMessage" resultType="java.util.Map">
+        select d.*
+        from device d, structure_item_parameter sip
+        where d.ip = #{ip}
+          and sip.inspection_item = #{inspectionItem}
+        limit 1
+    </select>
 </mapper>

--
Gitblit v1.9.3