From 8a9505bd7845d50e83fae7adf4846931979c1419 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 23 八月 2024 17:00:16 +0800
Subject: [PATCH] 检验下单+检验任务+报告编制批准选择印章修改

---
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java |  350 +++++++++++++++++++++-------------------------------------
 1 files changed, 127 insertions(+), 223 deletions(-)

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 ddfeaa4..83eddc6 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
@@ -47,10 +47,13 @@
  */
 @Service
 @AllArgsConstructor
+@Transactional(rollbackFor = Exception.class)
 public class InsOrderServiceImpl extends ServiceImpl<InsOrderMapper, InsOrder>
         implements InsOrderService {
 
     private GetLook getLook;
+
+    private RoleMapper roleMapper;
 
     private InsOrderMapper insOrderMapper;
 
@@ -89,9 +92,9 @@
         Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectInsOrderParameter");
         User user = userMapper.selectById(map1.get("userId"));//褰撳墠鐧诲綍鐨勪汉
         Integer roleId = user.getRoleId();
-        //鑾峰彇褰撳墠浜烘墍灞炲疄楠屽id
-        String departLimsId = user.getDepartLimsId();
         String laboratory = null;
+        //鑾峰彇褰撳墠浜烘墍灞炲疄楠屽id
+        /*String departLimsId = user.getDepartLimsId();
         if (ObjectUtils.isNotEmpty(departLimsId) && !departLimsId.equals("")) {
             String[] split = departLimsId.split(",");
             //鏌ヨ瀵瑰簲鏋舵瀯鍚嶇О(閫氫俊瀹為獙瀹�,鐢靛姏瀹為獙瀹�,妫�娴嬪姙)
@@ -99,7 +102,7 @@
             if (departLims.contains("瀹為獙瀹�")) {
                 laboratory = departLims;
             }
-        }
+        }*/
         //鍒ゆ柇鏄惁鏄叏閮ㄦ潈闄�
         Power power = powerMapper.selectOne(Wrappers.<Power>lambdaQuery().eq(Power::getRoleId, roleId).eq(Power::getMenuMethod, "selectAllInsOrderParameter"));
         if (ObjectUtils.isEmpty(power)) {
@@ -134,25 +137,13 @@
         insOrder.setAppointed(LocalDate.parse(appointed));
         insOrder.setSendTime(LocalDateTime.now());
         insOrderMapper.updateById(insOrder);
-        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::getState, 1)
-//                .isNull(InsProduct::getInsFibersId)
-//                .isNull(InsProduct::getInsFiberId)
-                .select(InsProduct::getSonLaboratory).groupBy(InsProduct::getSonLaboratory));
-        for (InsProduct insProduct : insProducts) {
-            InsOrderState insOrderState = new InsOrderState();
-            insOrderState.setInsOrderId(orderId);
-            try {
-                insOrderState.setLaboratory(insProduct.getSonLaboratory());
-            } catch (NullPointerException e) {
-                throw new ErrorException("璇ユ楠屽崟鏈夋湭缁存姢瀹為獙瀹ょ殑妫�楠岄」鐩�");
-            }
-            insOrderState.setInsState(0);
-            insOrderStateMapper.insert(insOrderState);
-        }
+        //淇敼鎴愬彧缁欏綋鍓嶉�夋嫨鐨勮瘯楠屽涓嬪彂鍗曞瓙
+        InsOrderState insOrderState = new InsOrderState();
+        insOrderState.setInsOrderId(orderId);
+        insOrderState.setLaboratory(sonLaboratory);
+        insOrderState.setInsState(0);
+        insOrderStateMapper.insert(insOrderState);
+        //杩欓噷鏄湪缁欏垎閰嶇殑鎸囧畾鐨勪汉鍜岃瘯楠屽涓嬪彂妫�楠屼汉
         if (userId != null) {
             InsSampleUser insSampleUser = new InsSampleUser();
             insSampleUser.setState(0);
@@ -171,22 +162,22 @@
         //鍒ゆ柇閫夋嫨鐨勫鎵樺崟浣嶄笌鍒跺崟浜虹殑濮旀墭鍗曚綅鏄惁涓�鑷�
         Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
         String company = userMapper.selectById(userId).getCompany();
-        if (!company.equals(insOrder.getCompanyId()+"")) {
+        if (!company.equals(insOrder.getCompanyId() + "")) {
             //濡傛灉涓嶄竴鑷撮偅涔堝鎵樹汉瀛楁蹇呭~
-            if (ObjectUtils.isEmpty(insOrder.getPrepareUser())){
+            if (ObjectUtils.isEmpty(insOrder.getPrepareUser())) {
                 throw new ErrorException("濮旀墭浜轰笉鑳戒负绌�");
             }
-        }else {
+        } else {
             //濡傛灉涓�鑷�,閭d箞鍒跺崟浜哄氨鏄鎵樹汉
             insOrder.setPrepareUser(insOrder.getCustom());
         }
         //瀹㈡埛浠e彿
         Custom custom = customMapper.selectById(insOrder.getCompanyId());
         String code = custom.getCode2();
-        if (!custom.getCompany().equals(insOrder.getCompany())){
+        if (!custom.getCompany().equals(insOrder.getCompany())) {
             Custom one = customMapper.selectOne(Wrappers.<Custom>lambdaQuery().eq(Custom::getCompany, insOrder.getCompany()));
             insOrder.setCompanyId(one.getId());
-            code=one.getCode2();
+            code = one.getCode2();
         }
         //瀹為獙瀹ょ紪鍙�
         String code2 = baseMapper.selLaboratoryCode(insOrder.getLaboratory());
@@ -203,65 +194,11 @@
             a.setId(null);
             a.setInsOrderId(insOrder.getId());
             if (StrUtil.isEmpty(a.getSampleCode())) {
-                a.setSampleCode(giveCode.split("-")[2] + "-" + count.get());
+                a.setSampleCode("TX(WYQJ)-" + giveCode.split("-")[2] + "-" + count.get());
             }
             insSampleMapper.insert(a);
             if (ObjectUtil.isNotEmpty(a.getInsProduct())) {
                 addInsProductMethod(a.getId(), a.getInsProduct(), null, 0, false);
-                if (ObjectUtil.isNotEmpty(a.getBushing())) {
-                    for (BushingDto bushingDto : a.getBushing()) {
-                        bushingDto.setInsSampleId(a.getId());
-                        insBushingMapper.insert(bushingDto);
-                        //鍏夌氦涓嶄负绌�
-                        if (bushingDto.getFiber().size() != 0) {
-                            for (FiberDto fiberDto : bushingDto.getFiber()) {
-                                fiberDto.setInsBushingId(bushingDto.getId());
-                                insFiberMapper.insert(fiberDto);
-                                addInsProductMethod(a.getId(), a.getInsProduct(), fiberDto.getId(), 2, true);
-                                addInsProductMethod(a.getId(), fiberDto.getProductList(), fiberDto.getId(), 2, false);
-                            }
-                        }
-                        //鍏夌氦甯︿笉涓虹┖
-                        else if ( bushingDto.getFibers().size()!=0){
-                            for (FibersDto fibersDto : bushingDto.getFibers()) {
-                                fibersDto.setInsBushingId(bushingDto.getId());
-                                fibersDto.setCode(this.giveCode.giveCode("", "ins_fibers", "", "yyMMdd"));
-                                insFibersMapper.insert(fibersDto);
-                                for (FiberDto fiberDto : fibersDto.getFiber()) {
-                                    fiberDto.setInsFibersId(fibersDto.getId());
-                                    insFiberMapper.insert(fiberDto);
-                                    addInsProductMethod(a.getId(), a.getInsProduct(), fiberDto.getId(), 2, true);
-                                    addInsProductMethod(a.getId(), fiberDto.getProductList(), fiberDto.getId(), 2, false);
-                                }
-                                //addInsProductMethod(a.getId(), a.getInsProduct(), fibersDto.getId(), 1);
-                                addInsProductMethod(a.getId(), fibersDto.getProductList(), fibersDto.getId(), 1, false);
-                            }
-                        }
-                        //閮戒负绌� 鍙厤缃簡濂楃 杩欑鎯呭喌鍙檺浜庨」鐩槸鍚湁鏉惧绠$殑
-                        else {
-                            String collect = a.getInsProduct().stream().map(InsProduct::getInspectionItem).distinct().collect(Collectors.joining(","));
-                            if (collect.contains("鏉惧绠�")){
-                                //鑾峰彇妫�楠岄」鐩腑鍖呭惈鏉惧绠$殑妫�楠岄」鐩�
-                                List<InsProduct> products = a.getInsProduct().stream().filter(insProduct -> insProduct.getInspectionItem().contains("鏉惧绠�")).collect(Collectors.toList());
-                                for (InsProduct product : products) {
-                                    product.setInsBushId(bushingDto.getId());
-                                    product.setId(null);
-                                    product.setCreateTime(null);
-                                    product.setCreateUser(null);
-                                    product.setUpdateTime(null);
-                                    product.setUpdateUser(null);
-                                    product.setInsSampleId(a.getId());
-                                    if (product.getInspectionItemSubclass() == null) {
-                                        product.setInspectionItemSubclass("");
-                                    }
-                                    insProductMapper.insert(product);
-                                }
-                            }else {
-                                throw new ErrorException("鏍峰搧鐨勫厜绾ら厤缃俊鎭噷闈㈡病鏈夐厤缃厜绾ゅ甫淇℃伅涔熸病鏈夊厜绾や俊鎭�,璇烽噸鏂伴厤缃繚瀛樺啀鎻愪氦涓嬪崟!!!");
-                            }
-                        }
-                    }
-                }
             }
             if (ObjectUtil.isNotEmpty(a.getInsulating())) {
                 List<InsProduct> ip2 = new ArrayList<>();
@@ -336,6 +273,11 @@
             } catch (Exception e) {
             }
         }
+        //閫氫俊:濡傛灉鏄疌绫昏鍗曟棤闇�瀹℃牳鐩存帴閫氳繃
+        if (insOrder.getOrderType().equals("C")) {
+            insOrder.setState(1);
+            upInsOrderOfState(insOrder);
+        }
         return insOrder.getId();
     }
 
@@ -343,150 +285,33 @@
         InsOrder insOrder = insOrderMapper.selectById(insSampleMapper.selectById(sampleId).getInsOrderId());
         String name = insSampleMapper.selMethodById(sampleId);
         for (InsProduct product : productList) {
-            if (product.getInspectionItem().contains("鏉惧绠�")){
-                continue;
-            }
             if (product.getState() == 1 && !product.getInspectionItem().equals("鍏夌氦鎺ュご鎹熻��")) {
-                //鍒ゆ柇鍏夌紗鐨勬俯搴﹀惊鐜」鐩坊鍔�
-                if (insOrder.getSampleType().equals("鍏夌紗") && product.getInspectionItem().equals("娓╁害寰幆") && type != 0) {
-                    //鍒ゆ柇閫夋嫨鐨勬爣鍑嗘柟娉曟槸濮旀墭瑕佹眰杩樻槸鍏朵粬鏍囧噯鏂规硶
-                    if (!name.equals("濮旀墭瑕佹眰")) {
-                        //鍒ゆ柇鏍囧噯鏂规硶鐨勬俯搴﹀惊鐜殑瑕佹眰鎻忚堪鏄惁鏈夊~鍐�
-                        if (ObjectUtils.isEmpty(product.getTell()) || product.getTell().equals("")) {
-                            throw new ErrorException("鍏夌紗鐨勬俯搴﹀惊鐜殑瑕佹眰鎻忚堪涓虹┖,闇�瑕佸湪鏍囧噯搴撻厤缃姹傛弿杩�!!!");
-                        } else {
-                            //瑙f瀽(娓╁害鑼冨洿锛�20鈩冿紝-40鈩冿紝65鈩冿紱淇濇俯鏃堕棿锛�12h锛� 寰幆娆℃暟锛�2娆★紱 鍏夌氦锛�1310nm锛�1550nm锛夐檮鍔犺“鍑忎笉澶т簬0.03dB/km)
-                            String tell = product.getTell().replace("锛�", ")")
-                                    .replace("(", "锛�")
-                                    .replace(")", "锛�")
-                                    .replace("锛�", ",")
-                                    .replace("锛�", ":")
-                                    .replace("锛�", ";")
-                                    .replace("涓嶅ぇ浜�", "鈮�")
-                                    .replace("涓嶅皬浜�", "鈮�")
-                                    .replace("澶т簬", ">")
-                                    .replace("灏忎簬", "<")
-                                    .replace("绛変簬", "=");
-                            String[] message=null;
-                            String[] nm=null;
-                            String ask=null;
-                            String count=null;
-                            try {
-                                String[] strings = tell.split(";");
-                                //娓╁害
-                                String temperature = strings[0];
-                                String[] split = temperature.split(":");
-                                 message = split[1].split(",");
-                                //寰幆娆℃暟
-                                 count = strings[2].split(":")[1].split("娆�")[0];
-                                //鍏夌氦椤圭洰鍜岃姹傚��
-                                String string = strings[3];
-                                 nm = string.split("锛�")[1].split("锛�")[0].split(",");
-                                 ask = string.split("琛板噺")[1].split("dB")[0];
-                            }catch (Exception e){
-                                throw new ErrorException("娓╁害寰幆鐨勮姹傛弿杩版牸寮忓紓甯�,璇峰弬鐓ф俯搴﹁寖鍥达細20鈩冿紝-40鈩冿紝65鈩冿紱淇濇俯鏃堕棿锛�12h锛� 寰幆娆℃暟锛�2娆★紱 鍏夌氦锛�1310nm锛�1550nm锛夐檮鍔犺“鍑忎笉澶т簬0.03dB/km");
-                            }
-                            //鎷兼帴
-                            String s="";
-                            for (int i = 0; i < nm.length; i++) {
-                                 s+= "20鈩�(甯告俯)," + nm[i] + ",null;";
-                                for (int j = 0; j < message.length; j++) {
-                                    s+= message[j] + "," + nm[i] + "," + ask + ";" ;
-                                }
-                            }
-                            s+=count;
-                            product.setAsk(s);
-                            insProductMapper.updateById(product);
-                            dealWithTemperatureLoop(type,id,sampleId,product);
-                        }
+                if (!is) {
+                    switch (type) {
+                        case 1:
+                            product.setInsFibersId(id);
+                            break;
+                        case 2:
+                            product.setInsFiberId(id);
+                            break;
                     }
-                    else {
-                        //20鈩�(甯告俯),1310nm,null;-40鈩�,1310nm,鈮�0.2;75鈩�,1310nm,<0.3;20鈩�,1310nm,鈮�0.1;20鈩�(甯告俯),1550nm,null;-40鈩�,1550nm,鈮�0.2;75鈩�,1550nm,<0.3;20鈩�,1550nm,鈮�0.1;3
-                        dealWithTemperatureLoop(type,id,sampleId,product);
-                    }
-                }
-                //鍒ゆ柇鐑惊鐜」鐩殑娣诲姞鍜屾俯鍗囪瘯楠岄」鐩殑娣诲姞
-                else if (product.getInspectionItem().equals("鐑惊鐜�") || product.getInspectionItem().equals("娓╁崌璇曢獙")) {
-                    List<InsProduct> insProductess = new ArrayList<>();
                     product.setId(null);
+                    product.setCreateTime(null);
+                    product.setCreateUser(null);
+                    product.setUpdateTime(null);
+                    product.setUpdateUser(null);
                     product.setInsSampleId(sampleId);
-                    insProductess.add(product);
-                    List<InsProduct> insProductes = new ArrayList<>();
-                    List<InsProduct> insProducts = new ArrayList<>();
-                    String[] strings = product.getAsk().split(";");
-                    //寰幆娆℃暟
-                    int count = Integer.parseInt(strings[strings.length - 1]);
-                    for (int i = 0; i < strings.length - 1; i++) {
-                        String[] split = strings[i].split(",");
-                        InsProduct insProduct = new InsProduct();
-                        insProduct.setInspectionItem("1");//妫�楠岀埗椤�--寰幆娆℃暟
-                        insProduct.setInspectionItemSubclass(split[0]);//妫�楠屽瓙椤�--鐜娓╁害/瀵肩嚎娓╁害/鑰愬紶娓╁害/鎺ョ画娓╁害
-                        insProduct.setInspectionItemSubclassEn(split[1]);//妫�楠屽瓙椤硅嫳鏂�--鐜娓╁害/瀵肩嚎娓╁害/鑰愬紶娓╁害/鎺ョ画娓╁害
-                        insProduct.setAsk(null);//妫�楠岃姹�
-                        insProduct.setTell(null);//妫�楠屾弿杩�
-                        insProduct.setInsSampleId(sampleId);
-                        insProduct.setState(1);
-                        insProduct.setFactory(product.getFactory());
-                        insProduct.setLaboratory(product.getLaboratory());
-                        insProduct.setSampleType(product.getSampleType());
-                        insProduct.setSample(product.getSample());
-                        insProduct.setModel(product.getModel());
-                        insProduct.setSonLaboratory(product.getSonLaboratory());
-                        insProduct.setUnit("鈩�");//鍗曚綅
-                        insProduct.setManHourGroup(product.getManHourGroup());
-                        insProduct.setInspectionItemType("0");
-                        insProduct.setInspectionValueType("1");
-                        if (product.getInspectionItem().equals("鐑惊鐜�")) {
-                            insProduct.setInspectionItemClass("鐩存祦鐢甸樆");//妫�楠屽瓙瀛愰」--鐩存祦鐢甸樆
-                            insProduct.setInspectionItemClassEn("DC resistance");//妫�楠屽瓙瀛愰」鑻辨枃--鐩存祦鐢甸樆
-                            insProduct.setUnit("惟/km");//鍗曚綅
-                        }
-                        insProducts.add(insProduct);
-                        insProductes.add(insProduct);
-                        insProductess.add(insProduct);
+                    if (product.getInspectionItemSubclass() == null) {
+                        product.setInspectionItemSubclass("");
                     }
-                    //鐑惊鐜墠鏈夊娆″惊鐜鏁�
-                    if (count > 1) {
-                        //寰幆瓒呰繃1娆�
-                        for (int j = 2; j <= count; j++) {
-                            for (InsProduct insProduct : insProductes) {
-                                InsProduct insProduct1 = new InsProduct();
-                                BeanUtils.copyProperties(insProduct, insProduct1);
-                                insProduct1.setInspectionItem(j + "");//寰幆娆℃暟
-                                insProductess.add(insProduct1);
-                            }
-                        }
-                    }
-                    insProductService.saveBatch(insProductess);
-                }
-                else {
-                    if (!is) {
-                        switch (type) {
-                            case 1:
-                                product.setInsFibersId(id);
-                                break;
-                            case 2:
-                                product.setInsFiberId(id);
-                                break;
-                        }
-                        product.setId(null);
-                        product.setCreateTime(null);
-                        product.setCreateUser(null);
-                        product.setUpdateTime(null);
-                        product.setUpdateUser(null);
-                        product.setInsSampleId(sampleId);
-                        if (product.getInspectionItemSubclass() == null) {
-                            product.setInspectionItemSubclass("");
-                        }
-                        insProductMapper.insert(product);
-                    }
+                    insProductMapper.insert(product);
                 }
             }
         }
     }
 
     //娓╁害寰幆鐨勫鐞�
-    private void dealWithTemperatureLoop(Integer type, Integer id,Integer sampleId,InsProduct product) {
+    private void dealWithTemperatureLoop(Integer type, Integer id, Integer sampleId, InsProduct product) {
         List<InsProduct> insProductes = new ArrayList<>();
         List<InsProduct> insProducts = new ArrayList<>();
         String[] strings = product.getAsk().split(";");
@@ -568,23 +393,102 @@
                 code = "";
             }
             Custom custom = customMapper.selectById(order.getCompanyId());
-            System.out.println("============="+custom.getCompany());
-            System.out.println("-------------"+order.getCompany());
+            System.out.println("=============" + custom.getCompany());
+            System.out.println("-------------" + order.getCompany());
             String code2 = custom.getCode2();
-            if (!custom.getCompany().equals(order.getCompany())){
+            if (!custom.getCompany().equals(order.getCompany())) {
                 Custom one = customMapper.selectOne(Wrappers.<Custom>lambdaQuery().eq(Custom::getCompany, order.getCompany()));
                 insOrder.setCompanyId(one.getId());
-                code2=one.getCode2();
+                code2 = one.getCode2();
             }
             insOrder.setEntrustCode(giveCode.giveCode2("JCZX/" + code + "-" + code2 + "-", insOrder.getCompanyId(), insOrder.getLaboratory(), "ins_order", "", "yyMM"));
+            /*瀹℃牳閫氳繃涔嬪悗杩橀渶瑕佸垽鏂鏍峰搧鏄惁鍦ㄥ簱*/
+            //濡傛灉鍦ㄥ簱,绯荤粺鏌ヨ绔欑偣浠诲姟鍒嗗竷鎯呭喌,灏嗘楠屼换鍔′笅鍙戣嚦鏈�灏戠殑绔欏彴
+            List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
+                    .eq(InsSample::getInsOrderId, insOrder.getId()).select(InsSample::getId));
+            List<Integer> ids = insSamples.stream().map(a -> a.getId()).collect(Collectors.toList());
+            List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
+                            .eq(InsProduct::getState, 1)
+                            .in(InsProduct::getInsSampleId, ids));
+            List<String> collect = insProducts.stream().map(InsProduct::getSonLaboratory).distinct().collect(Collectors.toList());
+            //瑕佸垽鏂墿浣欒瘯楠屽涓摢涓渶绌洪棽灏卞畨鎺掔粰鍝釜
+            Map<String, Long> dataCounts = new HashMap<>();
+            for (String sonLaboratory : collect) {
+                Long count = insOrderStateMapper.selectCount(Wrappers.<InsOrderState>lambdaQuery()
+                        .eq(InsOrderState::getLaboratory, sonLaboratory)
+                        .ne(InsOrderState::getInsState, 4)
+                        .ne(InsOrderState::getInsState, 5)
+                        .ne(InsOrderState::getInsState, 6));
+                dataCounts.put(sonLaboratory, count);
+            }
+            // 鏌ユ壘鏁版嵁閲忔渶灏戠殑鍏冪礌
+            String minElement = null;
+            Long minCount = Long.MAX_VALUE;
+            for (Map.Entry<String, Long> entry : dataCounts.entrySet()) {
+                if (entry.getValue() < minCount) {
+                    minCount = entry.getValue();
+                    minElement = entry.getKey();
+                }
+            }
+            int day = insProductService.selectOrderManDay(insOrder.getId());//棰勮瀹屾垚鏃堕棿
+            upInsOrder(insOrder.getId(),null,LocalDateTime.now().plusHours(day).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")),null,minElement);
+            //濡傛灉涓嶅湪搴�,鏆備笉涓嬪彂
         }
         return insOrderMapper.updateById(insOrder);
     }
 
     @Override
+    public int upInsOrderOfState2(InsOrder insOrder) {
+        InsOrder order = insOrderMapper.selectById(insOrder.getId());
+        //鑾峰彇褰撳墠浜�
+        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
+        //鑾峰彇褰撳墠浜虹殑瑙掕壊
+        String roleName = roleMapper.selectById(userMapper.selectById(userId).getRoleId()).getName();
+        //鍒ゆ柇鏄娴嬩腑蹇冧富浠�/鐮斿彂閮ㄧ粡鐞�/鎶�鏈礋璐d汉
+        switch (roleName) {
+            case "妫�娴嬩腑蹇冧富浠�":
+                order.setCheckState1(insOrder.getState());
+                order.setCheckState1User(userId);
+                break;
+            case "鐮斿彂閮ㄧ粡鐞�":
+                order.setCheckState2(insOrder.getState());
+                order.setCheckState2User(userId);
+                break;
+            case "鎶�鏈礋璐d汉":
+                order.setCheckState3(insOrder.getState());
+                order.setCheckState3User(userId);
+                break;
+            default:
+                throw new ErrorException("褰撳墠鐧诲綍鐢ㄦ埛鐨勮鑹蹭笉鏄娴嬩腑蹇冧富浠�/鐮斿彂閮ㄧ粡鐞�/鎶�鏈礋璐d汉,鏃犳硶杩涜瀹℃牳");
+        }
+        insOrderMapper.updateById(order);
+        //鏌ヨ璇ヨ鍗曟槸A绫昏繕鏄疊绫�
+        if (order.getOrderType().equals("A")) {
+            //濡傛灉鏄疉绫�,1鍜�2鍜�3閮藉鏍搁�氳繃杩欎釜鍗曞瓙灏卞鏍搁�氳繃
+            if (order.getCheckState1() == 1 && order.getCheckState2() == 1 && order.getCheckState3() == 1) {
+                order.setState(1);
+                upInsOrderOfState(order);
+            } else if (order.getCheckState1() == 2 || order.getCheckState2() == 2 || order.getCheckState3() == 2){
+                order.setState(2);
+                upInsOrderOfState(order);
+            }
+        } else if (order.getOrderType().equals("B")) {
+            //濡傛灉鏄疊绫�,1鍜�2瀹℃牳閫氳繃鍚庤繖涓崟瀛愬氨瀹℃牳閫氳繃
+            if (order.getCheckState1() == 1 && order.getCheckState2() == 1 ) {
+                order.setState(1);
+                upInsOrderOfState(order);
+            } else if (order.getCheckState1() == 2 || order.getCheckState2() == 2 ){
+                order.setState(2);
+                upInsOrderOfState(order);
+            }
+        }
+        return 1;
+    }
+
+    @Override
     public Map<String, Object> getInsOrderAndSample(Integer id, String laboratory) {
         Map<String, Object> map = new HashMap<>();
-        InsOrder insOrder = insOrderMapper.selectById(id);
+        InsOrder insOrder = insOrderMapper.selectById2(id);
         List<SampleProductDto> list = insSampleMapper.getInsOrderAndSample(id, laboratory);
         for (SampleProductDto sampleProductDto : list) {
             List<Integer> ids = sampleProductDto.getInsProduct().stream().map(InsProduct::getId).collect(Collectors.toList());
@@ -608,19 +512,19 @@
     public Map<String, Object> selectSampleAndProductByOrderId(IPage<SampleProductDto2> page, SampleProductDto2 sampleProductDto) {
         Map<String, Object> map = new HashMap<>();
         map.put("head", PrintChina.printChina(SampleProductDto2.class));
-        IPage<SampleProductDto2> productDto2IPage = insOrderMapper.selectSampleAndProductByOrderId(page, QueryWrappers.queryWrappers(sampleProductDto).orderByAsc("inspection_item"),sampleProductDto.getId());
+        IPage<SampleProductDto2> productDto2IPage = insOrderMapper.selectSampleAndProductByOrderId(page, QueryWrappers.queryWrappers(sampleProductDto).orderByAsc("inspection_item"), sampleProductDto.getId());
         for (SampleProductDto2 record : productDto2IPage.getRecords()) {
             InsProductUser insProductUser = insProductUserMapper.selectOne(Wrappers.<InsProductUser>lambdaQuery()
                     .eq(InsProductUser::getInsProductId, record.getInsProductId())
                     .orderByDesc(InsProductUser::getCreateTime)
                     .last("limit 1"));
-            if (ObjectUtils.isNotEmpty(insProductUser)){
+            if (ObjectUtils.isNotEmpty(insProductUser)) {
                 record.setCheckName(userMapper.selectById(insProductUser.getCreateUser()).getName());
                 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
                 record.setCheckTime(insProductUser.getCreateTime().format(formatter));
             }
         }
-        map.put("body",productDto2IPage);
+        map.put("body", productDto2IPage);
         return map;
     }
 

--
Gitblit v1.9.3