From 5325dfb2fda7bd21bcbcf3c8c10be1ac95793d86 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期一, 05 八月 2024 20:40:48 +0800
Subject: [PATCH] 检验下单的委托人如果制单人的委托单位与选择的委托单位不一致,则委托人必须要进行填写,如果一致那么委托人就默认是制单人+.检验设备第一次进来直接所有样品的这个项目全部使用该设备,第二次修改就只针对当前样品

---
 cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java          |   26 ++++++--
 inspect-server/src/main/resources/mapper/InsSampleMapper.xml                           |    1 
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java |  130 +++++++++++++++++++++++++++++++++++++++----
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java     |   23 +++++++
 4 files changed, 158 insertions(+), 22 deletions(-)

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 1097201..e7e22a0 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
@@ -105,17 +105,25 @@
 
     @Override
     public List<Device> selectDeviceByCategory(String inspectionItem, String inspectionItemSubclass) {
-        Integer id;
+        List<Integer> id;
         try {
             if (ObjectUtils.isEmpty(inspectionItemSubclass)) {
-                id = structureItemParameterMapper.selectOne(Wrappers.<StructureItemParameter>lambdaQuery()
+//                id = structureItemParameterMapper.selectOne(Wrappers.<StructureItemParameter>lambdaQuery()
+//                        .eq(StructureItemParameter::getInspectionItem, inspectionItem)
+//                        .last("limit 1").select(StructureItemParameter::getId)).getId();
+                id = structureItemParameterMapper.selectList(Wrappers.<StructureItemParameter>lambdaQuery()
                         .eq(StructureItemParameter::getInspectionItem, inspectionItem)
-                        .last("limit 1").select(StructureItemParameter::getId)).getId();
+                        .select(StructureItemParameter::getId)).stream().map(StructureItemParameter::getId).collect(Collectors.toList());
+
             }else {
-                id = structureItemParameterMapper.selectOne(Wrappers.<StructureItemParameter>lambdaQuery()
+//                id = structureItemParameterMapper.selectOne(Wrappers.<StructureItemParameter>lambdaQuery()
+//                        .eq(StructureItemParameter::getInspectionItem, inspectionItem)
+//                        .eq(StructureItemParameter::getInspectionItemSubclass, inspectionItemSubclass)
+//                        .last("limit 1").select(StructureItemParameter::getId)).getId();
+                id = structureItemParameterMapper.selectList(Wrappers.<StructureItemParameter>lambdaQuery()
                         .eq(StructureItemParameter::getInspectionItem, inspectionItem)
                         .eq(StructureItemParameter::getInspectionItemSubclass, inspectionItemSubclass)
-                        .last("limit 1").select(StructureItemParameter::getId)).getId();
+                        .select(StructureItemParameter::getId)).stream().map(StructureItemParameter::getId).collect(Collectors.toList());
             }
         } catch (Exception e) {
             return null;
@@ -127,9 +135,11 @@
         for (Device device : devices) {
             String[] ids = device.getInsProductIds().split(",");
             for (String i : ids) {
-                if (i.equals(id + "")) {
-                    devices2.add(device);
-                    break;
+                if (ObjectUtils.isNotEmpty(i)) {
+                    if (id.contains(Integer.parseInt(i))) {
+                        devices2.add(device);
+                        break;
+                    }
                 }
             }
         }
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 97e187c..95140ae 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
@@ -158,7 +158,7 @@
         Integer userId = null;
         if (ObjectUtil.isNotEmpty(insOrderPlanDTO.getUserId())) {
             userId = map1.get("userId");
-            userName=userMapper.selectById(map1.get("userId")).getName();
+            userName = userMapper.selectById(map1.get("userId")).getName();
             insOrderPlanDTO.setUserId(null);
         }
         String sonLaboratory = insOrderPlanDTO.getSonLaboratory();//璇曢獙瀹�
@@ -487,7 +487,8 @@
                 JSONObject jo = JSON.parseObject(JSON.toJSONString(v));
                 InsProduct insProduct = new InsProduct();
                 insProduct.setId(Integer.parseInt(k));
-                List<InsProductResult> results = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, insProduct.getId()));
+                List<InsProductResult> results = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery()
+                        .eq(InsProductResult::getInsProductId, insProduct.getId()));
                 InsProductResult result;
                 if (CollectionUtils.isEmpty(results)) {
                     result = new InsProductResult();
@@ -576,6 +577,51 @@
                     result.setUpdateTime(LocalDateTime.now());
                     insProductResultMapper.updateById(result);
                 }
+
+                /*濡傛灉鏄涓�娆¢�夋嫨璁惧淇℃伅,涓旇繕鏈夊叾浣欐牱鍝佷篃鏈夊悓涓�涓粡楠岄」鐩�,閭d箞鎵�鏈夋牱鍝佺殑璇ラ」鐩兘鐢ㄨ繖涓澶囦俊鎭�*/
+                //鍏堟煡璇㈡槸鍚﹁繕鏈夊叾浣欐牱鍝�
+                InsProduct product = insProductMapper.selectById(insProduct.getId());
+                Integer insSampleId = product.getInsSampleId();
+                List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, insSampleMapper.selectById(insSampleId).getInsOrderId()));
+                if (insSamples.size() > 1) {
+                    //瀛樺湪鍏朵綑鏍峰搧,鏌ヨ鏄惁鏈夊悓涓�绉嶆楠岄」鐩�
+                    for (InsSample sample : insSamples.stream().filter(insSample -> !insSample.getId().equals(insSampleId)).collect(Collectors.toList())) {
+                        InsProduct product1 = insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery()
+                                .eq(InsProduct::getState, 1)
+                                .eq(InsProduct::getInsSampleId, sample.getId())
+                                .eq(InsProduct::getInspectionItem, product.getInspectionItem())
+                                .eq(InsProduct::getInspectionItemEn, product.getInspectionItemEn())
+                                .eq(InsProduct::getInspectionItemSubclass, product.getInspectionItemSubclass())
+                                .eq(InsProduct::getInspectionItemSubclassEn, product.getInspectionItemSubclassEn())
+                                .eq(InsProduct::getTemplateId, product.getTemplateId())
+                                .eq(InsProduct::getStandardMethodListId, product.getStandardMethodListId())
+                        );
+                        if (ObjectUtils.isNotEmpty(product1)){
+                            //濡傛灉瀛樺湪椤圭洰,鏌ヨ鏄惁鏈夎〃
+                            InsProductResult productResult = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, product1.getId()));
+                            if (ObjectUtils.isEmpty(productResult)){
+                                //娌℃湁琛ㄦ柊寤鸿〃
+                                productResult = new InsProductResult();
+                                productResult.setInsProductId(product1.getId());
+                                productResult.setEquipValue(result.getEquipValue());
+                                productResult.setEquipName(result.getEquipValue());
+                                productResult.setCreateUser(userId);
+                                productResult.setUpdateUser(userId);
+                                insProductResultMapper.insert(productResult);
+                            }else if(ObjectUtils.isEmpty(productResult.getEquipValue())){
+                                //鏈夎〃鍒ゆ柇鏄惁鏈夎澶�
+                                productResult.setEquipValue(result.getEquipValue());
+                                productResult.setEquipName(result.getEquipValue());
+                                productResult.setUpdateUser(userId);
+                                productResult.setUpdateTime(LocalDateTime.now());
+                                insProductResultMapper.updateById(productResult);
+                            }
+                        }
+                    }
+
+                }
+
+
                 insProduct.setUpdateUser(userId);
                 insProductMapper.updateById(insProduct);
                 insProductUserMapper.insert(new InsProductUser(null, userId, LocalDateTime.now(), insProduct.getId()));
@@ -669,15 +715,23 @@
                 Long l = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
                         .eq(InsProduct::getInsSampleId, insSample.getId()));
                 Long l1 = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
-                        .eq(InsProduct::getInsSampleId, insSample.getId()).isNotNull(InsProduct::getInsResult));
+                        .eq(InsProduct::getInsSampleId, insSample.getId())
+                        .and(wrapper -> wrapper
+                                .isNull(InsProduct::getInsResult)
+                                .or()
+                                .eq(InsProduct::getInsResult, 2)
+                        ));
                 if (l == l1) {
                     insSample.setInsState(2);
                 }
                 insSampleMapper.updateById(insSample);
                 /*鏍¢獙涓�涓媟esult琛�*/
-                List<InsProductResult> insProductResults = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, insProduct.getId()).orderByDesc(InsProductResult::getId));
+                List<InsProductResult> insProductResults = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery()
+                        .eq(InsProductResult::getInsProductId, insProduct.getId()));
                 if (insProductResults.size() > 1) {
-                    insProductResultMapper.deleteById(insProductResults.get(0));
+                    for (int i = 1; i < insProductResults.size(); i++) {
+                        insProductResultMapper.deleteById(insProductResults.get(i));
+                    }
                 }
             });
             return insContext.keySet().stream().findFirst().orElse(null);
@@ -691,8 +745,17 @@
                 int orderId = insSampleMapper.selectById(sampleId).getInsOrderId();
                 // 閫氳繃璁㈠崟id鏌ユ壘鎵�鏈夋牱鏈琲d
                 List<Integer> sampleIds = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId)).stream().map(InsSample::getId).collect(Collectors.toList());
-                // 閫氳繃妫�鏌ユ瘡涓�涓牱鏈琲d鏌ュ埌灞炰簬妫�楠岄」缁撹 is null鐨勬暟閲�
-                Long count = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery().in(InsProduct::getInsSampleId, sampleIds).isNull(InsProduct::getInsResult).eq(InsProduct::getSonLaboratory, insProduct.getSonLaboratory()).eq(InsProduct::getState, 1));
+                // 閫氳繃妫�鏌ユ瘡涓�涓牱鏈琲d鏌ュ埌灞炰簬妫�楠岄」缁撹 is null 鎴栬�� =2 鐨勬暟閲�
+                Long count = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
+                        .in(InsProduct::getInsSampleId, sampleIds)
+                        .and(wrapper -> wrapper
+                                .isNull(InsProduct::getInsResult)
+                                .or()
+                                .eq(InsProduct::getInsResult, 2)
+                        )
+                        //.isNull(InsProduct::getInsResult)
+                        .eq(InsProduct::getSonLaboratory, insProduct.getSonLaboratory())
+                        .eq(InsProduct::getState, 1));
                 if (count == 0) {
                     insOrderStateMapper.update(new InsOrderState(), Wrappers.<InsOrderState>lambdaUpdate()
                             .eq(InsOrderState::getInsOrderId, orderId)
@@ -915,8 +978,48 @@
                                         textRenderData.setText("鈭�");
                                         break;
                                     case 0:
-                                        resultCh.set(resultCh.get() + "銆�" + p.getInspectionItem() + (Objects.equals(p.getInspectionItemSubclass(), "") ? "" : " " + p.getInspectionItemSubclass()));
-                                        resultEn.set(resultEn.get() + "銆�" + p.getInspectionItemEn() + ((Objects.equals(p.getInspectionItemSubclassEn(), "") || Objects.equals(p.getInspectionItemSubclassEn(), null)) ? "" : " " + p.getInspectionItemSubclassEn()));
+                                        String current = resultCh.get();
+                                        // 浣跨敤 Set 鏉ヤ繚鎸佸敮涓�椤�
+                                        Set<String> uniqueItems = new HashSet<>();
+                                        if (!current.isEmpty()) {
+                                            // 鍒嗗壊褰撳墠瀛楃涓插苟鍔犲叆鍒� Set 涓�
+                                            String[] items = current.split("銆�");
+                                            for (String item : items) {
+                                                if (!item.isEmpty()) {
+                                                    uniqueItems.add(item);
+                                                }
+                                            }
+                                        }
+                                        // 澶勭悊鏂版暟鎹�
+                                        String newItem = p.getInspectionItem() +
+                                                (Objects.equals(p.getInspectionItemSubclass(), "") ? "" : " " + p.getInspectionItemSubclass());
+                                        uniqueItems.add(newItem);
+
+                                        // 杩炴帴鍞竴椤瑰苟鏇存柊 AtomicReference
+                                        String result = String.join("銆�", uniqueItems);
+                                        resultCh.set(result);
+                                        //resultCh.set(resultCh.get() + "銆�" + p.getInspectionItem() + (Objects.equals(p.getInspectionItemSubclass(), "") ? "" : " " + p.getInspectionItemSubclass()));
+
+                                        String current1 = resultEn.get();
+                                        // 浣跨敤 Set 鏉ヤ繚鎸佸敮涓�椤�
+                                        Set<String> uniqueItems1 = new HashSet<>();
+                                        if (!current1.isEmpty()) {
+                                            // 鍒嗗壊褰撳墠瀛楃涓插苟鍔犲叆鍒� Set 涓�
+                                            String[] items = current1.split("銆�");
+                                            for (String item : items) {
+                                                if (!item.isEmpty()) {
+                                                    uniqueItems1.add(item);
+                                                }
+                                            }
+                                        }
+                                        // 澶勭悊鏂版暟鎹�
+                                        String newItem1 = p.getInspectionItemEn() +
+                                                ((Objects.equals(p.getInspectionItemSubclassEn(), "") || Objects.equals(p.getInspectionItemSubclassEn(), null)) ? "" : " " + p.getInspectionItemSubclassEn());
+                                        uniqueItems1.add(newItem1);
+                                        // 杩炴帴鍞竴椤瑰苟鏇存柊 AtomicReference
+                                        String result1 = String.join("銆�", uniqueItems1);
+                                        resultEn.set(result1);
+                                        //resultEn.set(resultEn.get() + "銆�" + p.getInspectionItemEn() + ((Objects.equals(p.getInspectionItemSubclassEn(), "") || Objects.equals(p.getInspectionItemSubclassEn(), null)) ? "" : " " + p.getInspectionItemSubclassEn()));
                                         textRenderData.setText("脳");
                                         break;
                                     default:
@@ -985,7 +1088,7 @@
                                 textRenderData.setText(v.get("v") == null ? "" : v.get("v") + "");
                             }
                         } else {
-                            textRenderData.setText(v.get("v") == null ? "" : v.get("v") + "");
+                            textRenderData.setText(v.get("v") == null ? "" : v.get("v") + "鈭�" + jo1.get("mc"));
                         }
                         if (jo1.get("mc") != null) {
                             textRenderData.setText(textRenderData.getText() + "鈭�" + jo1.get("mc"));
@@ -3569,9 +3672,12 @@
         CompletableFuture.supplyAsync(() -> {
             List<Integer> ips = insProducts.stream().map(InsProduct::getId).distinct().collect(Collectors.toList());
             for (Integer ip : ips) {
-                List<InsProductResult> insProductResults = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, ip).orderByDesc(InsProductResult::getId));
+                List<InsProductResult> insProductResults = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery()
+                        .eq(InsProductResult::getInsProductId, ip));
                 if (insProductResults.size() > 1) {
-                    insProductResultMapper.deleteById(insProductResults.get(0));
+                    for (int i = 1; i < insProductResults.size(); i++) {
+                        insProductResultMapper.deleteById(insProductResults.get(i));
+                    }
                 }
             }
             return null;
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
index 9da928c..2bdfe65 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
@@ -154,6 +154,18 @@
     @Transactional(rollbackFor = Exception.class)
     public int addInsOrder(List<SampleProductDto> list, InsOrder insOrder, List<List<Integer>> pairing) {
         insOrder.setState(0);
+        //鍒ゆ柇閫夋嫨鐨勫鎵樺崟浣嶄笌鍒跺崟浜虹殑濮旀墭鍗曚綅鏄惁涓�鑷�
+        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
+        String company = userMapper.selectById(userId).getCompany();
+        if (!company.equals(insOrder.getCompanyId()+"")) {
+            //濡傛灉涓嶄竴鑷撮偅涔堝鎵樹汉瀛楁蹇呭~
+            if (ObjectUtils.isEmpty(insOrder.getPrepareUser())){
+                throw new ErrorException("濮旀墭浜轰笉鑳戒负绌�");
+            }
+        }else {
+            //濡傛灉涓�鑷�,閭d箞鍒跺崟浜哄氨鏄鎵樹汉
+            insOrder.setPrepareUser(insOrder.getCustom());
+        }
         //瀹㈡埛浠e彿
         Custom custom = customMapper.selectById(insOrder.getCompanyId());
         String code = custom.getCode2();
@@ -289,12 +301,12 @@
 
     private void addInsProductMethod(Integer sampleId, List<InsProduct> productList, Integer id, Integer type, Boolean is) {
         InsOrder insOrder = insOrderMapper.selectById(insSampleMapper.selectById(sampleId).getInsOrderId());
+        String name = insSampleMapper.selMethodById(sampleId);
         for (InsProduct product : productList) {
             if (product.getState() == 1 && !product.getInspectionItem().equals("鍏夌氦鎺ュご鎹熻��")) {
                 //鍒ゆ柇鍏夌紗鐨勬俯搴﹀惊鐜」鐩坊鍔�
                 if (insOrder.getSampleType().equals("鍏夌紗") && product.getInspectionItem().equals("娓╁害寰幆") && type != 0) {
                     //鍒ゆ柇閫夋嫨鐨勬爣鍑嗘柟娉曟槸濮旀墭瑕佹眰杩樻槸鍏朵粬鏍囧噯鏂规硶
-                    String name = insSampleMapper.selMethodById(sampleId);
                     if (!name.equals("濮旀墭瑕佹眰")) {
                         //鍒ゆ柇鏍囧噯鏂规硶鐨勬俯搴﹀惊鐜殑瑕佹眰鎻忚堪鏄惁鏈夊~鍐�
                         if (ObjectUtils.isEmpty(product.getTell()) || product.getTell().equals("")) {
@@ -509,7 +521,14 @@
             if (StringUtils.isEmpty(code)) {
                 code = "";
             }
-            String code2 = customMapper.selectById(insOrder.getCompanyId()).getCode2();
+            Custom custom = customMapper.selectById(insOrder.getCompanyId());
+            String code2 = custom.getCode2();
+            if (!custom.getCompany().equals(insOrder.getCompany())){
+                Custom one = customMapper.selectOne(Wrappers.<Custom>lambdaQuery().eq(Custom::getCompany, insOrder.getCompany()));
+                insOrder.setCompanyId(one.getId());
+                code2=one.getCode2();
+            }
+            //String code2 = customMapper.selectById(insOrder.getCompanyId()).getCode2();
             insOrder.setEntrustCode(giveCode.giveCode2("JCZX/" + code + "-" + code2 + "-", insOrder.getCompanyId(), insOrder.getLaboratory(), "ins_order", "", "yyMM"));
         }
         return insOrderMapper.updateById(insOrder);
diff --git a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
index f1b69e5..c3f79e6 100644
--- a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
@@ -390,6 +390,7 @@
     <select id="selectSampleProductListByOrderId3" resultMap="sampleDto3">
         select isa.id,
         sample_code,
+        isa.sample,
         entrust_code,
         is_leave,
         isa.model,

--
Gitblit v1.9.3