From 7a9de16c90c1d936c35d426c95c3f4a9bba8a1f8 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 22 十一月 2024 09:25:54 +0800
Subject: [PATCH] 电路试验的计算规则,将检验值转换成绝对值进行判定,不判定的情况加上要求值是中文

---
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java |  142 +++++++++++++++++++++++++++++++---------------
 1 files changed, 95 insertions(+), 47 deletions(-)

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 ff49a1e..443e7a8 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
@@ -129,6 +129,9 @@
     @Resource
     private InsOrderFileMapper insOrderFileMapper;
 
+    @Resource
+    FuSheUtils fuSheUtils;
+
     @Override
     public Map<String, Object> selectInsOrderPlanList(Page page, InsOrderPlanDTO insOrderPlanDTO) {
         Map<String, Object> map = new HashMap<>();
@@ -204,8 +207,22 @@
                 //鏍峰搧
                 insProducts = insSampleMapper.getInsProduct1(id, laboratory);
                 if (insProducts.size() == 0) {
-                    insProducts = insSampleMapper.getIns2Product1(id, laboratory);
+                    insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
+                            .eq(InsProduct::getInsSampleId, id)
+                            .eq(InsProduct::getState, 1)
+                            .eq(InsProduct::getSonLaboratory, laboratory));
+                    for (InsProduct insProduct : insProducts) {
+                        List<InsProductResult2> insProductResult2List = insProductResult2Mapper.selectList(Wrappers.<InsProductResult2>lambdaQuery()
+                                .eq(InsProductResult2::getInsProductId, insProduct.getId()).isNull(InsProductResult2::getNum));
+                        insProduct.setInsProductResult2(insProductResult2List);
+                        InsProductResult insProductResult = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery()
+                                .eq(InsProductResult::getInsProductId, insProduct.getId()).isNull(InsProductResult::getNum));
+                        insProduct.setInsProductResult(insProductResult);
+                    }
                 }
+                /*if (insProducts.size() == 0) {
+                    insProducts = insSampleMapper.getIns2Product1(id, laboratory);
+                }*/
                 break;
             case 1:
                 //鍏夌氦甯�
@@ -274,13 +291,20 @@
     public Map<String, Object> getFileList(Page page, InsOrderFile insOrderFile) {
         Map<String, Object> map = new HashMap<>();
         map.put("head", PrintChina.printChina(InsOrderFile.class));
-        IPage<InsOrderFile> insOrderFileIPage = insOrderFileMapper.getFileList(page, QueryWrappers.queryWrappers(insOrderFile));
+        Integer insOrderId = insOrderFile.getInsOrderId();
+        insOrderFile.setInsOrderId(null);
+        String sonLaboratory = null;
+        if (ObjectUtils.isNotEmpty(insOrderFile.getSonLaboratory())) {
+            sonLaboratory = insOrderFile.getSonLaboratory();
+            insOrderFile.setSonLaboratory(null);
+        }
+        IPage<InsOrderFile> insOrderFileIPage = insOrderFileMapper.getFileList(page, QueryWrappers.queryWrappers(insOrderFile), insOrderId, sonLaboratory);
         map.put("body", insOrderFileIPage);
         return map;
     }
 
     @Override
-    public int uploadFile(Integer orderId, MultipartFile file) {
+    public int uploadFile(Integer orderId, MultipartFile file, String sonLaboratory) {
         String urlString;
         String pathName;
         String path;
@@ -303,16 +327,44 @@
             if (!realpath.exists()) {
                 realpath.mkdirs();
             }
-            pathName = UUID.randomUUID() + "_" + file.getOriginalFilename();
+            pathName = file.getOriginalFilename().replace("#", "&");
             urlString = realpath + "/" + pathName;
             file.transferTo(new File(urlString));
             insOrderFile.setFileUrl(pathName);
-            return insOrderFileMapper.insert(insOrderFile);
+            if (ObjectUtils.isNotEmpty(sonLaboratory)) {
+                insOrderFile.setSonLaboratory(sonLaboratory);
+                //鍒犻櫎閲嶅鐨勬暟鎹�
+                insOrderFileMapper.delete(Wrappers.<InsOrderFile>lambdaQuery()
+                        .eq(InsOrderFile::getInsOrderId, orderId)
+                        .eq(InsOrderFile::getType, insOrderFile.getType())
+                        .eq(InsOrderFile::getFileName, insOrderFile.getFileName())
+                        .eq(InsOrderFile::getSonLaboratory, insOrderFile.getSonLaboratory())
+                        .eq(InsOrderFile::getFileUrl, insOrderFile.getFileUrl()));
+            } else {
+                //鍒犻櫎閲嶅鐨勬暟鎹�
+                insOrderFileMapper.delete(Wrappers.<InsOrderFile>lambdaQuery()
+                        .eq(InsOrderFile::getInsOrderId, orderId)
+                        .eq(InsOrderFile::getType, insOrderFile.getType())
+                        .eq(InsOrderFile::getFileName, insOrderFile.getFileName())
+                        .isNull(InsOrderFile::getSonLaboratory)
+                        .eq(InsOrderFile::getFileUrl, insOrderFile.getFileUrl()));
+            }
+            insOrderFileMapper.insert(insOrderFile);
+            //濡傛灉鏄緪灏勮瘯楠�(杩戝満/杩滅▼涓婁紶鐨刢sv鏂囦欢)
+            String[] split = filename.split("\\.");
+            if (ObjectUtils.isNotEmpty(sonLaboratory) && (sonLaboratory.equals("杩戝満") || sonLaboratory.equals("杩滃満")) &&
+                    split[split.length - 1].equals("csv")) {
+                //鍒ゆ柇鏄摢绉峜sv鏂囦欢,鏄惁鏈夆�斺��
+                if (sonLaboratory.equals("杩戝満")) {
+                    fuSheUtils.getFuSheWord1(sonLaboratory, insOrderFile);
+                } else {
+                    fuSheUtils.getFuSheWord2(sonLaboratory, insOrderFile);
+                }
+            }
         } catch (Exception e) {
-            e.printStackTrace();
             System.err.println("闄勪欢涓婁紶閿欒");
-            return 0;
         }
+        return 0;
     }
 
     @Override
@@ -362,9 +414,7 @@
                 orderState.setInsState(0);
                 orderState.setNum(orderState.getNum() + 1);//閫掑
                 insOrderStateMapper.updateById(orderState);
-            } /*else {
-                throw new ErrorException("璇ヨ鍗曠珯鐐圭殑浠诲姟宸插垱寤�,鏃犳硶鍐嶆鍒涘缓!");
-            }*/
+            }
         } else {
             InsOrderState insOrderState = new InsOrderState();
             insOrderState.setInsOrderId(insSample.getInsOrderId());
@@ -393,15 +443,18 @@
         //鍒ゆ柇璇ヨ鍗曟槸鍚︾珯鐐逛换鍔℃湁(缁х画璇曢獙鎴栬�呮槸缁撴潫璇曢獙)
         List<InsOrderState> orderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery()
                 .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
-                .and(wrapper -> wrapper
-                        .eq(InsOrderState::getInsState, 5)
-                        .or()
-                        .eq(InsOrderState::getInsState, 6)
-                ));
+                .eq(InsOrderState::getInsState, 5));
         if (CollectionUtils.isEmpty(orderStates)) {
-            throw new ErrorException("璇ユ牱鍝佺殑妫�楠屼换鍔¤繕娌℃湁缁撴潫璇曢獙,鏆傛椂鏃犳硶鍑哄簱!");
+            List<InsOrderState> orderStates1 = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery()
+                    .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+                    .eq(InsOrderState::getLaboratory, sonLaboratory)
+                    .eq(InsOrderState::getInsState, 6));
+            if (CollectionUtils.isEmpty(orderStates1)) {
+                throw new ErrorException("璇ユ牱鍝佺殑妫�楠屼换鍔¤繕娌℃湁缁撴潫璇曢獙鎴栫户缁瘯楠�,鏆傛椂鏃犳硶鍑哄簱!");
+            }
         }
-        warehouseService.outWarehouse(sampleCode);
+        boolean a = true;
+        warehouseService.outWarehouse(sampleCode, a);
         return 0;
     }
 
@@ -696,8 +749,9 @@
                 //缁撹
                 int ressult = 1;
                 String valueStr = insProductResult2.getValue();
+                String regex ="[\u4e00-\u9fa5]";
                 if (!insProduct.getAsk().contains(",")) {
-                    if (insProduct.getAsk().equals("/")) {
+                    if (insProduct.getAsk().equals("/") || Pattern.compile(regex).matcher(insProduct.getAsk()).find()) {
                         ressult = 3; //涓嶅垽瀹�
                     } else if (!isValueValid(valueStr, new String[]{insProduct.getAsk()})) {
                         ressult = 0; //涓嶅悎鏍�
@@ -776,6 +830,8 @@
         insProductResultMapper.delete(Wrappers.<InsProductResult>lambdaQuery()
                 .eq(InsProductResult::getInsProductId, insProductResult.getInsProductId())
                 .eq(InsProductResult::getNum, insProductResult.getNum()));
+        insProductResult.setEquipValue("[{\"v\":\"" + insProductResult.getEquipValue() + "\"}]");
+        insProductResult.setEquipName("[{\"v\":\"" + insProductResult.getEquipName() + "\"}]");
         insProductResultMapper.insert(insProductResult);
         return 0;
     }
@@ -829,7 +885,7 @@
             if (ObjectUtils.isEmpty(s)) {
                 continue;
             }
-            double numericValue = Double.parseDouble(s);
+            double numericValue = Math.abs(Double.parseDouble(s));
             boolean valid = Arrays.stream(valuesToCheck)
                     .allMatch(v -> getResult(numericValue, v));
             if (!valid) {
@@ -857,7 +913,6 @@
         Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
         List<InsUnPass> insUnPasses = new ArrayList<>();
         /*鏍峰搧涓嬬殑椤圭洰鍙鏈変竴涓」鐩笉鍚堟牸鍒欐楠岀粨鏋滀负0,鍚﹀垯涓�1*/
-        //杩欓噷鐨刬nsSamples鏄鍗曚笅鐨勬墍鏈夋牱鍝佸寘鎷�("/")
         List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId));
         for (InsSample insSample : samples) {
             List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
@@ -935,6 +990,14 @@
                     //濡傛灉璁㈠崟绫诲瀷鏄師鐞嗘牱鏈�,鍒欒璁㈠崟鐩存帴闂幆
                     InsOrder insOrder = insOrderMapper.selectById(orderId);
                     if (insOrder.getFormType().equals("鍘熺悊鏍锋満")) {
+                        for (InsSample sample : samples) {
+                            //鍑哄簱
+                            try {
+                                outInsOrderState(laboratory, sample.getSampleCode());
+                            } catch (Exception e) {
+
+                            }
+                        }
                         insOrder.setState(4);
                         insOrderMapper.updateById(insOrder);
                     }
@@ -1032,8 +1095,8 @@
                 .eq(InsOrderState::getLaboratory, submitPlanDto.getLaboratory())
                 .set(InsOrderState::getInsState, 3)
                 .set(InsOrderState::getVerifyUser, submitPlanDto.getVerifyUser()));
+        InsOrder insOrder = insOrderMapper.selectById(submitPlanDto.getOrderId());
         /*杩欎釜鎯呭喌鍏堝叧闂�----濡傛灉鏄疌绫昏鍗曚笖鏄笅鍙戝埌璐ㄩ噺閮�,鍒欑洿鎺ュ鏍搁�氳繃(缁撴潫璇曢獙)*/
-//        InsOrder insOrder = insOrderMapper.selectById(orderId);
 //        if (insOrder.getOrderType().equals("C") && insOrder.getDepartmentLims().equals("璐ㄩ噺閮�")) {
 //            try {
 //                verifyPlan(orderId, laboratory, 2, null);
@@ -1053,21 +1116,21 @@
         info.setViewStatus(false);
         info.setJumpPath("b1-inspect-order-plan");
         informationNotificationService.addInformationNotification(info);
-        //todo 浼佷笟寰俊娑堟伅鎺ㄩ�丂zss
-           /* HashMap<String, Object> map = new HashMap<>();
-            String account = userMapper.selectById(userId).getAccount();
-            map.put("touser", *//*account*//*"ZT-012117");//鎺ユ敹娑堟伅鎴愬憳鐨勮处鍙�'ZT-031292'杩欑绫诲瀷(濡傛灉鏈夊涓敤'|'鍒嗛殧)
+        //  todo 浼佷笟寰俊娑堟伅鎺ㄩ�丂zss
+            HashMap<String, Object> map = new HashMap<>();
+            String account = userMapper.selectById(submitPlanDto.getVerifyUser()).getAccount();
+            map.put("touser", account);//鎺ユ敹娑堟伅鎴愬憳鐨勮处鍙�'ZT-031292'杩欑绫诲瀷(濡傛灉鏈夊涓敤'|'鍒嗛殧)
             map.put("toparty", "");//鎺ユ敹閮ㄩ棬id
             map.put("totag", "");//娑堟伅鏍囩id
             map.put("msgtype", "text");//娑堟伅绫诲瀷 text:鏂囨湰
-            map.put("agentid", 1000513);//搴旂敤id
+            map.put("agentid", 1000517);//搴旂敤id
             HashMap<String, Object> hashMap = new HashMap<>();
-            hashMap.put("content", "鎮ㄦ湁涓�鏉℃楠屼换鍔″緟澶嶆牳娑堟伅,璇峰墠寰�LIMS绯荤粺鏌ョ湅銆�<a href=\"http://10.1.13.77/enter\"> </a>");
-            map.put("text", JSONArray.toJSONString(hashMap));//娑堟伅鍐呭
+            hashMap.put("content", "鎮ㄦ湁涓�鏉℃楠屼换鍔″緟澶嶆牳娑堟伅,璁㈠崟鍙锋槸锛�"+insOrder.getEntrustCode()+",璇峰墠寰�LIMS绯荤粺鏌ョ湅銆�<a href=\"https://ztwxlims.ztt.cn:7443/enter\">涓ぉ閫氫俊LIMS绯荤粺 </a>");
+            map.put("text", hashMap);//娑堟伅鍐呭
             map.put("safe", 0);//鏄惁淇濆瘑娑堟伅.0鍚�
             map.put("enable_id_trans", 0);//鏄惁寮�鍚痠d杞瘧.0鍚�
             map.put("enable_duplicate_check", 0);//鏄惁寮�鍚噸澶嶆秷鎭鏌�.0鍚�
-            qywxApi.send(map);*/
+            qywxApi.send(map);
 //        }
         //澶嶆牳浜�--妫�楠屽崟鐩稿叧璐熻矗浜�
         InsSampleUser insSampleUser = new InsSampleUser();
@@ -1076,25 +1139,12 @@
         insSampleUser.setState(1);
         insSampleUser.setSonLaboratory(submitPlanDto.getLaboratory());
         insSampleUserMapper.insert(insSampleUser);
-        /*//鏍¢獙涓�涓媟esult琛�
-        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::getNum, orderState.getNum())
-                        .eq(InsProductResult::getInsProductId, ip));
-                if (insProductResults.size() > 1) {
-                    for (int i = 1; i < insProductResults.size(); i++) {
-                        insProductResultMapper.deleteById(insProductResults.get(i));
-                    }
-                }
-            }
-            return null;
-        });*/
         /*鐢熸垚鐢佃矾璇曢獙鐨勭珯鐐规姤鍛婂苟涓婁紶鍒伴檮浠朵腑*/
         if (submitPlanDto.getLaboratory().equals("鐢佃矾璇曢獙")) {
+            //wordUtils.generateWord(submitPlanDto.getTerm(), orderState);
+            //todo 鐢佃矾绔欑偣鎶ュ憡 姝e紡搴撻儴缃叉斁寮�
             try {
-                wordUtils.generateWord(submitPlanDto.getNote(), submitPlanDto.getTerm(), orderState);
+                wordUtils.generateWord(submitPlanDto.getTerm(), orderState);
             } catch (Exception e) {
                 throw new ErrorException("鐢佃矾璇曢獙鐨勭珯鐐规姤鍛婄敓鎴愭湁璇�,璇疯仈绯诲紑鍙戜汉鍛樿皟鏁�!");
             }
@@ -1104,8 +1154,6 @@
         RedisUtil.delsLike(key);*/
 
         /*鐢熸垚浜ч噺宸ユ椂*/
-        //鏌ヨ妫�楠屽崟淇℃伅
-        InsOrder insOrder = insOrderMapper.selectById(submitPlanDto.getOrderId());
         //鏍¢獙濡傛灉杩欎釜浜鸿繖涓娴嬮」鐩凡缁忔坊鍔犺繃浜嗗垯涓嶉渶瑕佸啀鏂板
         //棣栧厛鍒ゆ柇褰撳墠浜虹殑褰撳墠鏃堕棿鏄惁鏄帓鐝椂闂村唴,濡傛灉涓嶆槸灏辨槸鍔犵彮
         LocalDateTime today = LocalDateTime.of(LocalDate.now(), LocalTime.MIDNIGHT);

--
Gitblit v1.9.3