From a0abdbc0b19c855fa53e47a9196dfa2cd41e8e9d Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期六, 23 十二月 2023 19:56:53 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/tzskasrs-1' into tzskasrs-1

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   79 ++++++++++++++++++++++++++++++++++-----
 1 files changed, 68 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index aa31c12..0e4e957 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -1,6 +1,8 @@
 package com.zy.asrs.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.core.common.BaseRes;
@@ -282,6 +284,7 @@
             }
         }
 
+        ArrayList<String> outerLocs = new ArrayList<>();
         //妫�娴嬫槸鍚︿负娴呭簱浣�
         boolean sign=false;
         String th = "";
@@ -299,17 +302,49 @@
                     LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", outerLoc));
                     if (locMast != null) {
                         if (!locMast.getLocSts().equals("O") && !locMast.getLocSts().equals("R")) {
-                            sign = true;
-                            th = "搴撲綅鍙凤細" + locNo + " 娴呭簱浣嶆湁闈炵┖搴撲綅锛�";
-                            break;
+//                            sign = true;
+//                            th = "搴撲綅鍙凤細" + locNo + " 娴呭簱浣嶆湁闈炵┖搴撲綅锛�";
+//                            break;
+
+                            OutLocDto outLocDto = new OutLocDto();
+                            outLocDto.setLocNo(locMast.getLocNo());
+                            List<LocDetlDto> locDetlDtos1 = new ArrayList<>();
+                            for (LocDetl locDetl : locDetlService.selectByLocNo(locMast.getLocNo())) {
+                                LocDetlDto locDetlDto = new LocDetlDto();
+                                locDetlDto.setLocDetl(locDetl);
+                                locDetlDto.setCount(locDetl.getAnfme());
+                                locDetlDtos1.add(locDetlDto);
+                            }
+                            outLocDto.setLocDetlDtos(locDetlDtos1);
+                            if (!outerLocs.contains(locMast.getLocNo())) {
+                                dtos.add(outLocDto);
+                                outerLocs.add(locMast.getLocNo());
+                            }
                         }
                     }
                 }
             }
         }
-        if (sign){
-            throw new CoolException("鍑哄簱澶辫触锛�"+th);
+//        if (sign){
+//            throw new CoolException("鍑哄簱澶辫触锛�"+th);
+//        }
+
+        //**************325銆�331銆�333銆�339绔欑偣棰濆閫昏緫浠g爜**************
+        HashMap<String, Object> tmpMap = new HashMap<>();
+        if (staNo.getDevNo() == 325 || staNo.getDevNo() == 331 || staNo.getDevNo() == 333 || staNo.getDevNo() == 339) {
+            int[] data = {325,331,333,339};
+            for (String locNo : locNos) {
+                List<String> groupOuterLoc = Utils.getGroupDeepLoc(locNo);
+                if (groupOuterLoc.isEmpty()) {
+                    continue;
+                }
+                int index = 0;
+                for (String loc : groupOuterLoc) {
+                    tmpMap.put(loc, data[index++]);
+                }
+            }
         }
+        //**************325銆�331銆�333銆�339绔欑偣棰濆閫昏緫浠g爜**************
 
         Integer ioType = null;
         List<String> excludeLocNos = dtos.stream().map(OutLocDto::getLocNo).distinct().collect(Collectors.toList());
@@ -344,6 +379,13 @@
             if (stnNo == 325 || stnNo == 331 || stnNo == 333 || stnNo == 339) {
                 stnNo = staDesc.getCrnStn();
                 sourceStaNo = staDesc.getStnNo();
+
+                //**************325銆�331銆�333銆�339绔欑偣棰濆閫昏緫浠g爜**************
+                Object autoStnNo = tmpMap.get(dto.getLocNo());//鑾峰彇绯荤粺鑷姩鍒嗛厤绔欑偣
+                if (autoStnNo != null) {
+                    sourceStaNo = Integer.parseInt(autoStnNo.toString());
+                }
+                //**************325銆�331銆�333銆�339绔欑偣棰濆閫昏緫浠g爜**************
             }
 
             int lev = Utils.getLev(dto.getLocNo());
@@ -1189,13 +1231,28 @@
     }
 
     private void generateAgvWaitpakin(WrkDetl wrkDetl){
-        Order order = orderService.selectByNo(wrkDetl.getOrderNo());
-        DocType docType = docTypeService.selectById(order.getDocType());
-        if("浜哄伐琛ヨ揣鍗�".equals(docType.getDocName())){
-            AgvWaitPakin agvWaitPakin = new AgvWaitPakin();
-            BeanUtils.copyProperties(wrkDetl,agvWaitPakin);
-            agvWaitPakinService.insert(agvWaitPakin);
+        String orderNo = wrkDetl.getOrderNo();
+        if(orderNo.contains("{")){
+            JSONArray orderArray = JSON.parseArray(orderNo);
+            for (Object o : orderArray){
+                JSONObject jsonobject = (JSONObject) o;
+                Order order = orderService.selectByNo(jsonobject.get("orderNo").toString());
+                DocType docType = docTypeService.selectById(order.getDocType());
+                if("浜哄伐琛ヨ揣鍗�".equals(docType.getDocName())){
+                    throw new CoolException("鍚堝苟鍗曟嵁涓寘鍚汉宸ヨˉ璐у崟锛屽崟鎹负: " + jsonobject.get("orderNo"));
+                }
+            }
+
+        }else {
+            Order order = orderService.selectByNo(orderNo);
+            DocType docType = docTypeService.selectById(order.getDocType());
+            if("浜哄伐琛ヨ揣鍗�".equals(docType.getDocName())){
+                AgvWaitPakin agvWaitPakin = new AgvWaitPakin();
+                BeanUtils.copyProperties(wrkDetl,agvWaitPakin);
+                agvWaitPakinService.insert(agvWaitPakin);
+            }
         }
+
     }
 
 }

--
Gitblit v1.9.1