From 0329286b3ba1ddbdcad4769b9ccd4d5b3f5d1e64 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期二, 24 九月 2024 09:20:49 +0800
Subject: [PATCH] 备货定时任务

---
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |  106 +++++++++++++++++++++++++++++-----------------------
 1 files changed, 59 insertions(+), 47 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 24e2672..2de975b 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -13,6 +13,7 @@
 import com.zy.asrs.entity.result.StockVo;
 import com.zy.asrs.entity.result.ZphjcdgzVo;
 import com.zy.asrs.entity.result.ZphjcdwcVo;
+import com.zy.asrs.mapper.LocDetlMapper;
 import com.zy.asrs.mapper.MatMapper;
 import com.zy.asrs.mapper.TagMapper;
 import com.zy.asrs.service.*;
@@ -96,6 +97,9 @@
 
     @Resource
     private MatMapper matMapper;
+
+    @Resource
+    private LocDetlMapper locDetlMapper;
 
     @Override
     @Transactional
@@ -1050,7 +1054,7 @@
         StartupDto dto = commonService.getLocNo(1, param.getPalletizingNo(), locTypeDto, 0);
 
         // 杩斿洖GWCS鐩爣淇℃伅
-        boolean result = pushStaNoToGwcs(param.getPalletizingNo(), dto.getStaNo(), dto.getWorkNo(), param.getBarcode());
+        pushStaNoToGwcs(param.getPalletizingNo(), dto.getStaNo(), dto.getWorkNo(), param.getBarcode(),"涓�妤煎弽淇搧鍏ュ簱鎺ㄩ�乬wcs");
 //        if (!result) {
 //            throw new CoolException("鍏ュ簱鍥炴帹鍏ュ簱鐮佸ご缁橤WCS澶辫触");
 //        }
@@ -1169,7 +1173,7 @@
             throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
         }
         // 杩斿洖GWCS鐩爣淇℃伅
-        pushStaNoToGwcs(param.getPalletizingNo(),wrkMast.getSourceStaNo(),workNo,param.getBarcode());
+        pushStaNoToGwcs(param.getPalletizingNo(),wrkMast.getSourceStaNo(),workNo,param.getBarcode(),"浜屾ゼ绌烘墭鍥炴祦鎺ㄩ�乬wcs");
 
         return R.ok("绌烘墭鍥炴祦璇锋眰鎴愬姛");
     }
@@ -1229,7 +1233,7 @@
         StartupDto dto = commonService.getLocNo(iotype, param.getPalletizingNo(), locTypeDto,0);
 
         // 杩斿洖GWCS鐩爣淇℃伅
-        pushStaNoToGwcs(param.getPalletizingNo(),dto.getStaNo(),dto.getWorkNo(),param.getBarcode());
+        pushStaNoToGwcs(param.getPalletizingNo(),dto.getStaNo(),dto.getWorkNo(),param.getBarcode(),"gwms鐢宠鍏ュ簱鍚庢帹閫乬wcs");
 
 
         int workNo = dto.getWorkNo();
@@ -1345,7 +1349,7 @@
 
     @Override
     @Transactional
-    public String zwmsOutLocWork(ZwmsOutLocWorkDto param) {
+    public R zwmsOutLocWork(ZwmsOutLocWorkDto param) {
 
         Order order = orderService.selectByNo(param.getOrderNo());
         if (!Cools.isEmpty(order)) {
@@ -1354,6 +1358,7 @@
 
         DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.FALSE);
         Date now = new Date();
+
         // 鍗曟嵁涓绘。
         order = new Order(
                 String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
@@ -1391,38 +1396,16 @@
                 now,    // 淇敼鏃堕棿
                 null    // 澶囨敞
         );
+
         if (!orderService.insert(order)) {
             throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�");
         }
+
         // 鍗曟嵁鏄庣粏妗�
-        List<DetlDto> list = new ArrayList<>();
-        List<ZwmsOutLocWorkDto.Rolls> orderDetails = param.getMatDetails();
-        for (ZwmsOutLocWorkDto.Rolls detail : orderDetails) {
-            DetlDto dto = new DetlDto(detail.getRollNo(), detail.getBoxNo(), 1.0);
-            dto.setOrderNo(detail.getSpecs());
-            dto.setSplices(detail.getSplices());
-            if (DetlDto.has(list, dto)) {
-                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
-                assert detlDto != null;
-                detlDto.setAnfme(detlDto.getAnfme() + 1);
-            } else {
-                list.add(dto);
-            }
-        }
-        for (DetlDto detlDto : list) {
-//            Mat mat = matService.selectByMatnr(detlDto.getMatnr());
+        for (String groupNo : param.getGroups()) {
             OrderDetl orderDetl = new OrderDetl();
-//            if (Cools.isEmpty(mat)) {
-//                throw new CoolException(detlDto.getMatnr() + "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧");
-//            } else {
-//                orderDetl.sync(mat);
-//            }
-            orderDetl.setSpecs(String.valueOf(detlDto.getSplices()));
-            orderDetl.setBatch(detlDto.getBatch() == null ? "" : detlDto.getBatch());
-            orderDetl.setModel(detlDto.getMatnr());
-            orderDetl.setMatnr(detlDto.getOrderNo());
-            orderDetl.setMaktx(detlDto.getOrderNo());
-            orderDetl.setAnfme(detlDto.getAnfme());
+            orderDetl.setBrand(groupNo);
+            orderDetl.setBatch("");
             orderDetl.setOrderId(order.getId());
             orderDetl.setOrderNo(order.getOrderNo());
             orderDetl.setCreateBy(9527L);
@@ -1431,12 +1414,25 @@
             orderDetl.setUpdateTime(now);
             orderDetl.setStatus(1);
             orderDetl.setQty(0.0D);
+            orderDetl.setAnfme(1.0);
             if (!orderDetlService.insert(orderDetl)) {
                 throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
             }
         }
 
-        return null;
+        return R.ok("鍗曟嵁鐢熸垚鎴愬姛");
+
+    }
+
+    @Override
+    public R queryInLocTime(List<String> param) {
+        if (Cools.isEmpty(param)) {
+            return R.parse("鍙傛暟涓嶈兘涓虹┖");
+        }
+
+        List<InLocTimeDto> inLocTimeDtos = locDetlMapper.queryInLocTime(param);
+
+        return R.ok(inLocTimeDtos);
     }
 
     @Override
@@ -1464,11 +1460,11 @@
 
         // 鍒拌揪鍑哄簱鍙g‘璁や负1锛屾洿鏂板伐浣滄。鐘舵�佷负57.鍑哄簱瀹屾垚
         if (param.getOutLocResult() == 1) {
-            wrkMast.setWrkSts(20L);
-            // 绌烘墭鐩樺埌浣嶇洿鎺ユ洿鏂板伐浣滄。鐘舵�佷负14.宸插嚭搴撴湭纭锛岀┖鎵樻棤闇�澶嶆牳纭
-            if (!flag || wrkMast.getIoType() == 110) {
+//            wrkMast.setWrkSts(20L);
+//            // 绌烘墭鐩樺埌浣嶇洿鎺ユ洿鏂板伐浣滄。鐘舵�佷负14.宸插嚭搴撴湭纭锛岀┖鎵樻棤闇�澶嶆牳纭
+//            if (!flag || wrkMast.getIoType() == 110) {
                 wrkMast.setWrkSts(14L);
-            }
+//            }
             wrkMastService.updateById(wrkMast);
         }
 
@@ -1671,6 +1667,29 @@
         return R.ok(zphjcdwcVos);
     }
 
+    @Override
+    public R requestXhd(String barcode) {
+
+        // 搴撳瓨鏄庣粏鏈ㄧ浣嶇疆闆嗗悎
+        List<LocDetl> locDetls = locDetlMapper.selectList(new EntityWrapper<LocDetl>().eq("zpallet", barcode));
+        List<String> collect1 = locDetls.stream().map(LocDetl::getOrigin).distinct().collect(Collectors.toList());
+        // 宸ヤ綔鏄庣粏鏈ㄧ浣嶇疆闆嗗悎
+        List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("zpallet", barcode));
+        List<String> collect2 = wrkDetls.stream().map(WrkDetl::getOrigin).distinct().collect(Collectors.toList());
+
+        // 0鏄庣粏寮傚父,1浜乏锛�2浜彸锛�3閮戒寒
+        if (collect1.size() == 0 || collect2.size() == 0){
+            return R.ok(0);
+        } else if((collect1.size() == 1 && collect2.size() == 1) || (collect1.size() == 2 && collect2.size() == 2)) {
+            return R.ok(3);
+        } else if(collect1.size() == 2 && collect2.size() == 1) {
+            return R.ok(collect2.get(0).equals("宸�") ? 1 : 2);
+        } else {
+            return R.parse("浜俊鍙风伅鏉$爜寮傚父锛�" + barcode);
+        }
+
+    }
+
     /**
      * 鍒涘缓妗佹灦鐞嗚揣鍑哄簱鐨勫伐浣滄。
      */
@@ -1722,7 +1741,7 @@
         return wrkDetls.size() > 1 ? 1 : 4; // 涓�鏉¤褰曞氨鏄竴鍗�
     }
 
-    public boolean pushStaNoToGwcs(Integer palletizingNo, Integer staNo, Integer workNo,String barcode) {
+    public boolean pushStaNoToGwcs(Integer palletizingNo, Integer staNo, Integer workNo,String barcode,String message) {
         boolean success = false;
         // 鑾峰彇璇锋眰澶�
         Map<String, Object> headers = getHeaders();
@@ -1745,23 +1764,16 @@
                     .doPost();
             if (!Cools.isEmpty(response)) {
                 success = true;
-//                // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
-//                if (!orderService.updateSettle(order.getId(), 6L, null)) {
-//                    throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
-//                }
             } else {
-                log.error("zmws鎺ㄩ�佸叆搴撶爜澶寸珯鐐规帴鍙eけ璐ワ紒锛侊紒url锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL + MesConstant.PAKIN_URL, body, response);
-                throw new CoolException("涓婃姤mes绯荤粺澶辫触");
+                log.error(message + "澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL + MesConstant.PAKIN_URL, body, response);
             }
         } catch (Exception e) {
-            log.error("鍏ュ簱璇锋眰鎺ュ彛澶辫触锛歿}", e.getMessage());
-//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-//            return FAIL.setMsg(e.getMessage());
+            log.error(message + "寮傚父锛歿}", e);
         } finally {
             try {
                 // 淇濆瓨鎺ュ彛鏃ュ織
                 apiLogService.save(
-                        "鍏ュ簱",
+                        message,
                         MesConstant.GWCS_IP_PORT + MesConstant.GWCS_FPKW_URL,
                         null,
                         "127.0.0.1",

--
Gitblit v1.9.1