From 9f19d3a24f8474bf6f9eb9401888c44b34b381e6 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期四, 21 十一月 2024 14:29:50 +0800
Subject: [PATCH] 第一次改动(检验任务与样品关联,附件与样品关联,报告与样品关联)

---
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java |  279 +++++++++++++++++++++++++------------------------------
 1 files changed, 125 insertions(+), 154 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 b4c8a56..69a5707 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
@@ -78,8 +78,6 @@
     private ShiftTimeMapper shiftTimeMapper;
     @Resource
     private PerformanceShiftMapper performanceShiftMapper;
-    @Resource
-    private WarehouseHistoryMapper warehouseHistoryMapper;
 
     @Resource
     private WarehouseService warehouseService;
@@ -87,14 +85,8 @@
     @Value("${wordUrl}")
     private String wordUrl;
 
-    @Value("${twoCode}")
-    private String twoCode;
-
     @Resource
     WordUtils wordUtils;
-
-    @Resource
-    private InsReportMapper insReportMapper;
 
     @Resource
     private InsProductResultMapper insProductResultMapper;
@@ -119,9 +111,6 @@
 
     @Resource
     private UserMapper userMapper;
-
-    @Resource
-    private CustomMapper customMapper;
 
     @Value("${file.path}")
     private String imgUrl;
@@ -180,20 +169,23 @@
     }
 
     @Override
-    public Map<String, Object> doInsOrder(Integer id, String laboratory) {
+    public Map<String, Object> doInsOrder(Integer sampleId, String laboratory) {
+        InsSample insSample = insSampleMapper.selectById(sampleId);
         InsOrder insOrder = new InsOrder();
-        insOrder.setId(id);
-        InsOrder order = insOrderMapper.selectById(id);
+        insOrder.setId(insSample.getInsOrderId());
+        InsOrder order = insOrderMapper.selectById(insSample.getInsOrderId());
         if (BeanUtil.isEmpty(order.getInsTime())) {
-            insOrder.setInsTime(LocalDateTime.now());
+            insOrder.setInsTime(LocalDateTime.now());//璁㈠崟鐨勬楠屾椂闂�
             insOrderMapper.updateById(insOrder);
+            //鏇存柊妫�楠屼换鍔¤〃鐨勬楠屾椂闂�
             insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
-                    .eq(InsOrderState::getInsOrderId, id)
+                    .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+                    .eq(InsOrderState::getInsSampleId, sampleId)
                     .eq(InsOrderState::getLaboratory, laboratory)
                     .set(InsOrderState::getInsTime, LocalDateTime.now())
                     .set(InsOrderState::getInsState, 1));
         }
-        Map<String, Object> map = insOrderService.getInsOrderAndSample(id, laboratory);
+        Map<String, Object> map = insOrderService.getInsOrderAndSample(sampleId, laboratory);
         List<SampleProductDto> list = JSON.parseArray(JSON.toJSONString(map.get("sampleProduct")), SampleProductDto.class);
         map.put("sampleProduct", list);
         return map;
@@ -220,9 +212,6 @@
                         insProduct.setInsProductResult(insProductResult);
                     }
                 }
-                /*if (insProducts.size() == 0) {
-                    insProducts = insSampleMapper.getIns2Product1(id, laboratory);
-                }*/
                 break;
             case 1:
                 //鍏夌氦甯�
@@ -270,12 +259,10 @@
     }
 
     @Override
-    public List<String> checkSubmitPlan(Integer orderId, String laboratory) {
+    public List<String> checkSubmitPlan(Integer sampleId, String laboratory) {
         List<String> collect = new ArrayList<>();
-        List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId).select(InsSample::getId));
-        List<Integer> ids = insSamples.stream().map(a -> a.getId()).collect(Collectors.toList());
         List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
-                .in(InsProduct::getInsSampleId, ids)
+                .eq(InsProduct::getInsSampleId, sampleId)
                 .eq(InsProduct::getSonLaboratory, laboratory)
                 .eq(InsProduct::getState, 1)
                 .eq(InsProduct::getInsResult, 0));
@@ -294,17 +281,22 @@
         Integer insOrderId = insOrderFile.getInsOrderId();
         insOrderFile.setInsOrderId(null);
         String sonLaboratory = null;
+        Integer sampleId = null;
         if (ObjectUtils.isNotEmpty(insOrderFile.getSonLaboratory())) {
             sonLaboratory = insOrderFile.getSonLaboratory();
             insOrderFile.setSonLaboratory(null);
         }
-        IPage<InsOrderFile> insOrderFileIPage = insOrderFileMapper.getFileList(page, QueryWrappers.queryWrappers(insOrderFile), insOrderId, sonLaboratory);
+        if (ObjectUtils.isNotEmpty(insOrderFile.getInsSampleId())) {
+            sampleId = insOrderFile.getInsSampleId();
+            insOrderFile.setInsSampleId(null);
+        }
+        IPage<InsOrderFile> insOrderFileIPage = insOrderFileMapper.getFileList(page, QueryWrappers.queryWrappers(insOrderFile), insOrderId, sonLaboratory,sampleId);
         map.put("body", insOrderFileIPage);
         return map;
     }
 
     @Override
-    public int uploadFile(Integer orderId, MultipartFile file, String sonLaboratory) {
+    public int uploadFile(Integer orderId, MultipartFile file, String sonLaboratory, Integer sampleId) {
         String urlString;
         String pathName;
         String path;
@@ -312,6 +304,9 @@
         String contentType = file.getContentType();
         InsOrderFile insOrderFile = new InsOrderFile();
         insOrderFile.setInsOrderId(orderId);
+        if (ObjectUtils.isNotEmpty(sampleId)) {
+            insOrderFile.setInsSampleId(sampleId);
+        }
         insOrderFile.setFileName(filename);
         if (contentType != null && contentType.startsWith("image/")) {
             // 鏄浘鐗�
@@ -327,34 +322,21 @@
             if (!realpath.exists()) {
                 realpath.mkdirs();
             }
-            pathName = file.getOriginalFilename().replace("#","&");
+            pathName = UUID.randomUUID() + "_"+file.getOriginalFilename().replace("#", "&");
             urlString = realpath + "/" + pathName;
             file.transferTo(new File(urlString));
             insOrderFile.setFileUrl(pathName);
-            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")) {
-                fuSheUtils.getFuSheWord(sonLaboratory, insOrderFile);
+                //鍒ゆ柇鏄摢绉峜sv鏂囦欢,鏄惁鏈夆�斺��
+                if (!file.getOriginalFilename().contains("鈥斺��")) {
+                    fuSheUtils.getFuSheWord1(sonLaboratory, insOrderFile);
+                } else {
+                    fuSheUtils.getFuSheWord2(sonLaboratory, insOrderFile);
+                }
             }
         } catch (Exception e) {
             System.err.println("闄勪欢涓婁紶閿欒");
@@ -363,9 +345,11 @@
     }
 
     @Override
-    public List<String> upPlanUser2(Integer orderId) {
-        List<Integer> sampleId = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId)).stream().map(InsSample::getId).collect(Collectors.toList());
-        List<String> sonLaboratory = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getState, 1).in(InsProduct::getInsSampleId, sampleId)).stream().map(InsProduct::getSonLaboratory).distinct().collect(Collectors.toList());
+    public List<String> upPlanUser2(Integer sampleId) {
+        List<String> sonLaboratory = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
+                .eq(InsProduct::getState, 1)
+                .eq(InsProduct::getInsSampleId, sampleId))
+                .stream().map(InsProduct::getSonLaboratory).distinct().collect(Collectors.toList());
         return sonLaboratory;
     }
 
@@ -383,17 +367,15 @@
         /*鏍峰搧鍏ュ簱*/
         warehouseService.inWarehouse(trees, sampleCode);
         /*鏂板妫�楠屼换鍔�*/
-        //鍏堝垽鏂璁㈠崟鏄惁鏈夎繖涓珯鐐圭殑椤圭洰
+        //鍏堝垽鏂鏍峰搧鏄惁鏈夎繖涓珯鐐圭殑椤圭洰
         InsSample insSample = insSampleMapper.selectOne(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getSampleCode, sampleCode));
-        List<Integer> sampleIds = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
-                .eq(InsSample::getInsOrderId, insSample.getInsOrderId())).stream().map(InsSample::getId).collect(Collectors.toList());
         List<String> collect = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                 .eq(InsProduct::getState, 1)
-                .in(InsProduct::getInsSampleId, sampleIds)).stream().map(InsProduct::getSonLaboratory).collect(Collectors.toList());
+                .eq(InsProduct::getInsSampleId, insSample.getId())).stream().map(InsProduct::getSonLaboratory).collect(Collectors.toList());
         if (!collect.contains(sonLaboratory)) {
-            throw new ErrorException("璇ヨ鍗曟病鏈�" + sonLaboratory + "绔欑偣鐨勭浉鍏抽」鐩�,璇锋煡鐪嬩笅鍗曡鎯�!");
+            throw new ErrorException("璇ユ牱鍝佹病鏈�" + sonLaboratory + "绔欑偣鐨勭浉鍏抽」鐩�,璇锋煡鐪嬩笅鍗曡鎯�!");
         }
-        //鍒ゆ柇璇ヨ鍗曟槸鍚︾珯鐐逛换鍔℃湁缁撴潫璇曢獙
+        //鍒ゆ柇璇ヨ鍗曟槸鍚︾珯鐐逛换鍔℃湁缁撴潫璇曢獙(鍙浠讳竴浠诲姟缁撴潫璇曢獙閮戒笉鑳藉啀娆¤瘯楠�)
         List<InsOrderState> orderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery()
                 .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
                 .eq(InsOrderState::getInsState, 5));
@@ -402,6 +384,7 @@
         }
         InsOrderState orderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
                 .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+                .eq(InsOrderState::getInsSampleId, insSample.getId())
                 .eq(InsOrderState::getLaboratory, sonLaboratory));
         if (ObjectUtils.isNotEmpty(orderState)) {
             //缁х画璇曢獙
@@ -409,12 +392,11 @@
                 orderState.setInsState(0);
                 orderState.setNum(orderState.getNum() + 1);//閫掑
                 insOrderStateMapper.updateById(orderState);
-            } /*else {
-                throw new ErrorException("璇ヨ鍗曠珯鐐圭殑浠诲姟宸插垱寤�,鏃犳硶鍐嶆鍒涘缓!");
-            }*/
+            }
         } else {
             InsOrderState insOrderState = new InsOrderState();
             insOrderState.setInsOrderId(insSample.getInsOrderId());
+            insOrderState.setInsOrderId(insSample.getId());
             insOrderState.setLaboratory(sonLaboratory);
             insOrderState.setInsState(0);
             insOrderState.setNum(1);//鍒濆鏄涓�娆�
@@ -427,25 +409,24 @@
     @Override
     public int outInsOrderState(String sonLaboratory, String sampleCode) {
         //鍒ゆ柇璇ユ牱鍝佺殑妫�楠屼换鍔℃槸鍚﹀凡缁忕粨鏉�(缁х画璇曢獙鎴栬�呮槸缁撴潫璇曢獙)
-        //鍏堝垽鏂璁㈠崟鏄惁鏈夎繖涓珯鐐圭殑椤圭洰
+        //鍏堝垽鏂鏍峰搧鏄惁鏈夎繖涓珯鐐圭殑椤圭洰
         InsSample insSample = insSampleMapper.selectOne(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getSampleCode, sampleCode));
-        List<Integer> sampleIds = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
-                .eq(InsSample::getInsOrderId, insSample.getInsOrderId())).stream().map(InsSample::getId).collect(Collectors.toList());
         List<String> collect = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                 .eq(InsProduct::getState, 1)
-                .in(InsProduct::getInsSampleId, sampleIds)).stream().map(InsProduct::getSonLaboratory).collect(Collectors.toList());
+                .eq(InsProduct::getInsSampleId, insSample.getId())).stream().map(InsProduct::getSonLaboratory).collect(Collectors.toList());
         if (!collect.contains(sonLaboratory)) {
-            throw new ErrorException("璇ヨ鍗曟病鏈�" + sonLaboratory + "绔欑偣鐨勭浉鍏抽」鐩�,璇锋煡鐪嬩笅鍗曡鎯�!");
+            throw new ErrorException("璇ユ牱鍝佹病鏈�" + sonLaboratory + "绔欑偣鐨勭浉鍏抽」鐩�,璇锋煡鐪嬩笅鍗曡鎯�!");
         }
         //鍒ゆ柇璇ヨ鍗曟槸鍚︾珯鐐逛换鍔℃湁(缁х画璇曢獙鎴栬�呮槸缁撴潫璇曢獙)
         List<InsOrderState> orderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery()
                 .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
-                .eq(InsOrderState::getInsState, 5));
+                .eq(InsOrderState::getInsState, 5));//缁撴潫璇曢獙
         if (CollectionUtils.isEmpty(orderStates)) {
             List<InsOrderState> orderStates1 = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery()
                     .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+                    .eq(InsOrderState::getInsSampleId, insSample.getId())
                     .eq(InsOrderState::getLaboratory, sonLaboratory)
-                    .eq(InsOrderState::getInsState, 6));
+                    .eq(InsOrderState::getInsState, 6));//缁х画璇曢獙
             if (CollectionUtils.isEmpty(orderStates1)) {
                 throw new ErrorException("璇ユ牱鍝佺殑妫�楠屼换鍔¤繕娌℃湁缁撴潫璇曢獙鎴栫户缁瘯楠�,鏆傛椂鏃犳硶鍑哄簱!");
             }
@@ -674,11 +655,13 @@
                 int pId = Integer.parseInt(res.replaceAll("\\D+", ""));
                 InsProduct insProduct = insProductMapper.selectById(pId);
                 // 閫氳繃鏍锋湰id鑾峰彇璁㈠崟id
-                int orderId = insSampleMapper.selectById(insProduct.getInsSampleId()).getInsOrderId();
-                int count = insProductMapper.selectInsProductCountByOrderId(orderId);
+                InsSample insSample = insSampleMapper.selectById(insProduct.getInsSampleId());
+                int orderId = insSample.getInsOrderId();
+                int count = insProductMapper.selectInsProductCountByOrderId(insSample.getId());
                 if (count == 0) {
                     insOrderStateMapper.update(new InsOrderState(), Wrappers.<InsOrderState>lambdaUpdate()
                             .eq(InsOrderState::getInsOrderId, orderId)
+                            .eq(InsOrderState::getInsSampleId, insSample.getId())
                             .eq(InsOrderState::getLaboratory, insProduct.getSonLaboratory())
                             .set(InsOrderState::getInsState, 2));
                 }
@@ -700,6 +683,7 @@
         InsOrder insOrder = insOrderMapper.selectById(insProductResultDtos.getOrderId());
         InsOrderState orderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
                 .eq(InsOrderState::getInsOrderId, insProductResultDtos.getOrderId())
+                .eq(InsOrderState::getInsSampleId, insProductResultDtos.getSampleId())
                 .eq(InsOrderState::getLaboratory, insProductResultDtos.getSonLaboratory())
                 .orderByDesc(InsOrderState::getId)
                 .last("LIMIT 1"));// 纭繚鍙彇涓�鏉¤褰�
@@ -813,6 +797,7 @@
         if (count == 0) {
             insOrderStateMapper.update(new InsOrderState(), Wrappers.<InsOrderState>lambdaUpdate()
                     .eq(InsOrderState::getInsOrderId, insProductResultDtos.getOrderId())
+                    .eq(InsOrderState::getInsSampleId, insProductResultDtos.getSampleId())
                     .eq(InsOrderState::getLaboratory, insProductResultDtos.getSonLaboratory())
                     .set(InsOrderState::getInsState, 2));
         }
@@ -826,8 +811,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()+"\"}]");
+        insProductResult.setEquipValue("[{\"v\":\"" + insProductResult.getEquipValue() + "\"}]");
+        insProductResult.setEquipName("[{\"v\":\"" + insProductResult.getEquipName() + "\"}]");
         insProductResultMapper.insert(insProductResult);
         return 0;
     }
@@ -893,10 +878,10 @@
 
     //浜ゆ帴
     @Override
-    public int upPlanUser(Integer userId, Integer orderId, String sonLaboratory) {
+    public int upPlanUser(Integer userId, Integer sampleId, String sonLaboratory) {
         InsSampleUser insSampleUser = new InsSampleUser();
         insSampleUser.setUserId(userId);
-        insSampleUser.setInsSampleId(orderId);
+        insSampleUser.setInsSampleId(sampleId);
         insSampleUser.setState(0);
         insSampleUser.setSonLaboratory(sonLaboratory);
         return insSampleUserMapper.insert(insSampleUser);
@@ -904,47 +889,47 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public int verifyPlan(Integer orderId, String laboratory, Integer type, String tell) throws IOException {
+    public int verifyPlan(Integer sampleId, String laboratory, Integer type, String tell) throws IOException {
         LocalDateTime now = LocalDateTime.now();
         Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
         List<InsUnPass> insUnPasses = new ArrayList<>();
         /*鏍峰搧涓嬬殑椤圭洰鍙鏈変竴涓」鐩笉鍚堟牸鍒欐楠岀粨鏋滀负0,鍚﹀垯涓�1*/
-        List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId));
-        for (InsSample insSample : samples) {
-            List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
-                    .eq(InsProduct::getInsSampleId, insSample.getId())
-                    .eq(InsProduct::getSonLaboratory, laboratory)
-                    .eq(InsProduct::getState, 1));
-            List<Integer> results = insProducts.stream().map(InsProduct::getInsResult).filter(str -> str != null).collect(Collectors.toList());
-            if (results.contains(0)) {
-                insSample.setInsResult(0);
-            } else {
-                insSample.setInsResult(1);
-            }
-            insSampleMapper.updateById(insSample);
-            /*澶嶆牳鍚庯紝灏嗕笉鍚堟牸鐨勯」鐩俊鎭坊鍔犲埌ins_un_pass琛ㄤ腑*/
-            for (InsProduct insProduct : insProducts) {
-                if (insProduct.getInsResult() == 0) {
-                    InsUnPass insUnPass = new InsUnPass();
-                    insUnPass.setId(null);
-                    insUnPass.setModel(insSample.getModel());
-                    insUnPass.setSample(insSample.getSample());
-                    insUnPass.setInspectionItem(insProduct.getInspectionItem());
-                    insUnPass.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());
-                    insUnPass.setLastValue(insProduct.getLastValue());
-                    insUnPass.setEntrustCode(insOrderMapper.selectById(orderId).getEntrustCode());
-                    List<Integer> userIds = insProductUserMapper.selectList(Wrappers.<InsProductUser>lambdaQuery().eq(InsProductUser::getInsProductId, insProduct.getId())).stream().map(InsProductUser::getCreateUser).distinct().collect(Collectors.toList());
-                    String name = userMapper.selectBatchIds(userIds).stream().map(User::getName).collect(Collectors.joining(","));
-                    insUnPass.setName(name);
-                    insUnPasses.add(insUnPass);
-                }
+        InsSample insSample = insSampleMapper.selectById(sampleId);
+        List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
+                .eq(InsProduct::getInsSampleId, insSample.getId())
+                .eq(InsProduct::getSonLaboratory, laboratory)
+                .eq(InsProduct::getState, 1));
+        List<Integer> results = insProducts.stream().map(InsProduct::getInsResult).filter(str -> str != null).collect(Collectors.toList());
+        if (results.contains(0)) {
+            insSample.setInsResult(0);
+        } else {
+            insSample.setInsResult(1);
+        }
+        insSampleMapper.updateById(insSample);
+        /*澶嶆牳鍚庯紝灏嗕笉鍚堟牸鐨勯」鐩俊鎭坊鍔犲埌ins_un_pass琛ㄤ腑*/
+        InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId());
+        for (InsProduct insProduct : insProducts) {
+            if (insProduct.getInsResult() == 0) {
+                InsUnPass insUnPass = new InsUnPass();
+                insUnPass.setId(null);
+                insUnPass.setModel(insSample.getModel());
+                insUnPass.setSample(insSample.getSample());
+                insUnPass.setInspectionItem(insProduct.getInspectionItem());
+                insUnPass.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());
+                insUnPass.setLastValue(insProduct.getLastValue());
+                insUnPass.setEntrustCode(insOrder.getEntrustCode());
+                List<Integer> userIds = insProductUserMapper.selectList(Wrappers.<InsProductUser>lambdaQuery().eq(InsProductUser::getInsProductId, insProduct.getId())).stream().map(InsProductUser::getCreateUser).distinct().collect(Collectors.toList());
+                String name = userMapper.selectBatchIds(userIds).stream().map(User::getName).collect(Collectors.joining(","));
+                insUnPass.setName(name);
+                insUnPasses.add(insUnPass);
             }
         }
         insUnPassService.saveBatch(insUnPasses);
         /*type=0  鍐嶆璇曢獙; type=1 缁х画璇曢獙 ; type=2 缁撴潫璇曢獙*/
         // 鏌ヨ鏍规嵁 id 鍊掑簭鎺掑垪鐨勭涓�鏉¤褰�
         InsOrderState record = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
-                .eq(InsOrderState::getInsOrderId, orderId)
+                .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+                .eq(InsOrderState::getInsSampleId, sampleId)
                 .eq(InsOrderState::getLaboratory, laboratory)
                 .orderByDesc(InsOrderState::getId)
                 .last("LIMIT 1")); // 纭繚鍙彇涓�鏉¤褰�
@@ -969,7 +954,8 @@
                 case 1:
                     //缁х画璇曢獙:璇ョ珯鐐逛换鍔$粨鏉�(鍙互鍐嶆鎵爜妫�楠�)锛�
                     insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
-                            .eq(InsOrderState::getInsOrderId, orderId)
+                            .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+                            .eq(InsOrderState::getInsSampleId, sampleId)
                             .eq(InsOrderState::getLaboratory, laboratory)
                             .set(InsOrderState::getInsState, 6)
                             .set(InsOrderState::getVerifyTell, tell)
@@ -978,25 +964,23 @@
                 case 2:
                     //缁撴潫璇曢獙:姝ゅ鎵樺崟鍋滄璇曢獙(鏃犳硶鍐嶆妫�楠�)銆�
                     insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
-                            .eq(InsOrderState::getInsOrderId, orderId)
+                            .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+                            .eq(InsOrderState::getInsSampleId, sampleId)
                             .eq(InsOrderState::getLaboratory, laboratory)
                             .set(InsOrderState::getInsState, 5)
                             .set(InsOrderState::getVerifyTell, tell)
                             .set(InsOrderState::getVerifyUser, userId));
                     //濡傛灉璁㈠崟绫诲瀷鏄師鐞嗘牱鏈�,鍒欒璁㈠崟鐩存帴闂幆
-                    InsOrder insOrder = insOrderMapper.selectById(orderId);
                     if (insOrder.getFormType().equals("鍘熺悊鏍锋満")) {
-                        for (InsSample sample : samples) {
-                            //鍑哄簱
-                            try {
-                                outInsOrderState(laboratory, sample.getSampleCode());
-                            } catch (Exception e) {
+                        //鍑哄簱
+                        try {
+                            outInsOrderState(laboratory, insSample.getSampleCode());
+                        } catch (Exception e) {
 
-                            }
                         }
-                        insOrder.setState(4);
-                        insOrderMapper.updateById(insOrder);
                     }
+                    insOrder.setState(4);
+                    insOrderMapper.updateById(insOrder);
                     break;
             }
         }
@@ -1030,10 +1014,10 @@
 
     @Override
     public int submitPlan(SubmitPlanDto submitPlanDto) {
-        List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
-                .eq(InsSample::getInsOrderId, submitPlanDto.getOrderId()).select(InsSample::getId));
+        InsSample insSample = insSampleMapper.selectById(submitPlanDto.getSampleId());
         InsOrderState orderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
-                .eq(InsOrderState::getInsOrderId, submitPlanDto.getOrderId())
+                .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+                .eq(InsOrderState::getInsSampleId, submitPlanDto.getSampleId())
                 .eq(InsOrderState::getLaboratory, submitPlanDto.getLaboratory())
                 .orderByDesc(InsOrderState::getId)
                 .last("LIMIT 1"));// 纭繚鍙彇涓�鏉¤褰�
@@ -1046,16 +1030,10 @@
         insOrderUser.setNote(ObjectUtils.isNotEmpty(submitPlanDto.getNote()) ? submitPlanDto.getNote() : null);
         insOrderUser.setTerm(ObjectUtils.isNotEmpty(submitPlanDto.getTerm()) ? submitPlanDto.getTerm() : null);
         insOrderUserMapper.insert(insOrderUser);
-        List<Integer> ids = insSamples.stream().map(a -> a.getId()).collect(Collectors.toList());
         List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
-                .in(InsProduct::getInsSampleId, ids)
+                .eq(InsProduct::getInsSampleId, insSample.getId())
                 .eq(InsProduct::getSonLaboratory, submitPlanDto.getLaboratory())
-                .eq(InsProduct::getState, 1)
-                .and(wrapper -> wrapper
-                        .isNull(InsProduct::getInsResult)
-                        .or()
-                        .eq(InsProduct::getInsResult, 2)
-                ));
+                .eq(InsProduct::getState, 1));
         if (insProducts.size() > 0) {
             String str = "";
             int count = 0;
@@ -1087,19 +1065,13 @@
             }
         }
         insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
-                .eq(InsOrderState::getInsOrderId, submitPlanDto.getOrderId())
+                .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+                .eq(InsOrderState::getInsSampleId, submitPlanDto.getSampleId())
                 .eq(InsOrderState::getLaboratory, submitPlanDto.getLaboratory())
                 .set(InsOrderState::getInsState, 3)
                 .set(InsOrderState::getVerifyUser, submitPlanDto.getVerifyUser()));
-        InsOrder insOrder = insOrderMapper.selectById(submitPlanDto.getOrderId());
-        /*杩欎釜鎯呭喌鍏堝叧闂�----濡傛灉鏄疌绫昏鍗曚笖鏄笅鍙戝埌璐ㄩ噺閮�,鍒欑洿鎺ュ鏍搁�氳繃(缁撴潫璇曢獙)*/
-//        if (insOrder.getOrderType().equals("C") && insOrder.getDepartmentLims().equals("璐ㄩ噺閮�")) {
-//            try {
-//                verifyPlan(orderId, laboratory, 2, null);
-//            } catch (IOException e) {
-//                e.printStackTrace();
-//            }
-//        } else {
+        InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId());
+
         Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
         //LIMS绯荤粺娑堟伅鎺ㄩ��
         InformationNotification info = new InformationNotification();
@@ -1112,38 +1084,37 @@
         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-031292'杩欑绫诲瀷(濡傛灉鏈夊涓敤'|'鍒嗛殧)
-            map.put("toparty", "");//鎺ユ敹閮ㄩ棬id
-            map.put("totag", "");//娑堟伅鏍囩id
-            map.put("msgtype", "text");//娑堟伅绫诲瀷 text:鏂囨湰
-            map.put("agentid", 1000517);//搴旂敤id
-            HashMap<String, Object> hashMap = new 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);*/
-//        }
+        //  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", 1000517);//搴旂敤id
+        HashMap<String, Object> hashMap = new 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);
         //澶嶆牳浜�--妫�楠屽崟鐩稿叧璐熻矗浜�
         InsSampleUser insSampleUser = new InsSampleUser();
         insSampleUser.setUserId(submitPlanDto.getVerifyUser());
-        insSampleUser.setInsSampleId(submitPlanDto.getOrderId());
+        insSampleUser.setInsSampleId(submitPlanDto.getSampleId());
         insSampleUser.setState(1);
         insSampleUser.setSonLaboratory(submitPlanDto.getLaboratory());
         insSampleUserMapper.insert(insSampleUser);
         /*鐢熸垚鐢佃矾璇曢獙鐨勭珯鐐规姤鍛婂苟涓婁紶鍒伴檮浠朵腑*/
         if (submitPlanDto.getLaboratory().equals("鐢佃矾璇曢獙")) {
-            wordUtils.generateWord(submitPlanDto.getTerm(), orderState);
+            //wordUtils.generateWord(submitPlanDto.getTerm(), orderState);
             //todo 鐢佃矾绔欑偣鎶ュ憡 姝e紡搴撻儴缃叉斁寮�
-            /*try {
+            try {
                 wordUtils.generateWord(submitPlanDto.getTerm(), orderState);
             } catch (Exception e) {
                 throw new ErrorException("鐢佃矾璇曢獙鐨勭珯鐐规姤鍛婄敓鎴愭湁璇�,璇疯仈绯诲紑鍙戜汉鍛樿皟鏁�!");
-            }*/
+            }
         }
         /*// 鍒犻櫎鏁伴噰閲囬泦娆℃暟
         String key = "frequency" + ":" + submitPlanDto.getEntrustCode() + ":*";

--
Gitblit v1.9.3