From a5990a214ba13119d617b4532e2b9eef2fe70cda Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期四, 12 九月 2024 14:09:01 +0800
Subject: [PATCH] mes接口对接

---
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java |   91 ++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 80 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index 1ae1587..b3a8d55 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -1177,7 +1177,7 @@
         if (wrkMast == null) {
             throw new CoolException("宸ヤ綔妗d笉瀛樺湪锛�" + param.getBarcode());
         }
-        if (wrkMast.getIoType() != 101 || wrkMast.getWrkSts() != 20) {
+        if (wrkMast.getWrkSts() != 20) {
             throw new CoolException(wrkMast.getWrkNo() + ",宸ヤ綔妗g被鍨嬶細" + wrkMast.getIoType() + "宸ヤ綔鐘舵�侊細" + wrkMast.getWrkSts() + ",涓嶅尮閰�");
         }
 
@@ -1210,6 +1210,8 @@
         List<PdckqrParam.Material> materials = param.getMaterials();
 
         boolean isFullyCancelled = compareAndCheckCancellation(wrkDetls, materials);
+        // todo 涓ょ鐩樹袱绠遍渶瑕佺‘瀹氫綅缃病閿�
+
         if (isFullyCancelled) { // 鐩樼偣鐗╂枡纭垚鍔燂紝宸ヤ綔妗h浆鎹� 鐩樼偣鍑哄簱->鐩樼偣鍐嶅叆搴擄紝涓嬪彂鍥炲簱鍛戒护
             // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
             if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
@@ -1252,11 +1254,19 @@
             return R.ok("鐩樼偣纭鎴愬姛");
 
         } else { // 鐗╂枡涓嶄竴鑷�
-            // todo 涓嶄竴鑷寸殑澶勭悊澶勭悊鏂规硶寰呭畾
+            // 涓嶄竴鑷寸殑澶勭悊澶勭悊鏂规硶锛氬脊鍑鸿皟鏁寸晫闈�
 
+//            閲嶆柊鎵弿瀹炵墿涓婇潰鐨勭爜杩涜璋冩暣
+//            瀹炵墿鍦ㄥ簱瀛橀噷闈㈢殑鍦版柟娓呯┖锛屼换鍔℃墍鍦ㄥ簱瀛樻竻绌�
+//            灏嗗疄鐗╁拰褰撳墠鎵樼洏浣嶇疆鍜屽簱浣嶇粦瀹�
+//            涓�涓湪绠辨儏鍐电洿鎺ヨ皟鏁�
+//            涓や釜鏈ㄧ鍑轰袱涓� 閮借皟鏁�
+//            涓や釜鏈ㄧ鍑轰竴涓� 璋冩暣涓�涓�
+//            宸ヤ綔妗f爣璁板紓甯�->鍥炲簱
+
+            return R.error("鐩樼偣纭寮傚父");
         }
 
-        return R.error("鐩樼偣纭寮傚父");
     }
 
     @Override
@@ -1423,7 +1433,8 @@
     public R pdaFxprk(FxprkParam param, Long userId) {
 
         // 鏍规嵁鍖呰缁勫彿鑾峰彇鍒版湪绠卞嵎淇℃伅
-        List<Mat> list = matService.selectList(new EntityWrapper<Mat>().in("brand", param.getBoxList().stream().map(FxprkParam.Box::getPackageGroupNo).collect(Collectors.toList())));
+        List<String> groupNos = param.getBoxList().stream().map(FxprkParam.Box::getPackageGroupNo).collect(Collectors.toList());
+        List<Mat> list = matService.selectList(new EntityWrapper<Mat>().in("brand", groupNos));
         if (list.isEmpty()) {
             throw new CoolException("娌℃湁鏌ヨ鍒拌鍖呰缁勫彿淇℃伅锛�" + param.getBoxList().toString());
         }
@@ -1431,12 +1442,6 @@
         LocTypeDto locTypeDto = new LocTypeDto();
         locTypeDto.setLocType1((short) 1);
         StartupDto dto = commonService.getLocNo(1, param.getPalletizingNo(), locTypeDto, 0);
-
-        // 杩斿洖GWCS鐩爣淇℃伅
-        boolean result = pushStaNoToGwcs(param.getPalletizingNo(), dto.getStaNo(), dto.getWorkNo(), param.getBarcode());
-//        if (!result) {
-//            throw new CoolException("鍏ュ簱鍥炴帹鍏ュ簱鐮佸ご缁橤WCS澶辫触");
-//        }
 
         int workNo = dto.getWorkNo();
         Date now = new Date();
@@ -1476,7 +1481,7 @@
             // 閲嶆柊瀹氫綅鏈ㄧ浣嶇疆
             for (FxprkParam.Box box :param.getBoxList()) {
                 if (box.getPackageGroupNo().equals(obj.getBrand())) {
-                    if (!box.getBoxPos().equals(obj.getOrigin())) {
+                    if (!box.getBoxPos().equals(obj.getOrigin()) || !wrkDetl.getZpallet().equals(param.getBarcode())) {
                         wrkDetl.setOrigin(box.getBoxPos());
                         wrkDetl.setZpallet(param.getBarcode());
                         wrkDetl.setBarcode(param.getBarcode());
@@ -1504,8 +1509,72 @@
         } else {
             throw new CoolException(dto.getLocNo() + "鐩爣搴撲綅宸茶鍗犵敤");
         }
+
+        // 杩斿洖GWCS鐩爣淇℃伅
+        boolean result = pushStaNoToGwcs(param.getPalletizingNo(), dto.getStaNo(), dto.getWorkNo(), param.getBarcode());
+
+        // 涓�妤煎弽淇搧鍏ュ簱鐨勬湪绠遍�氳繃鍖呰缁勫彿闇�缁檓es鎺ㄩ�佸緟鍒�
+        pushDpToMes(groupNos);
+
         return R.ok("鍏ュ簱鎴愬姛");
     }
+
+    /**
+     * 涓�妤煎弽淇搧鍏ュ簱鐨勬湪绠遍�氳繃鍖呰缁勫彿闇�缁檓es鎺ㄩ�佸緟鍒�
+     */
+    private void pushDpToMes(List<String> groupNos) {
+        boolean success = false;
+        // 鑾峰彇璇锋眰澶�
+        Map<String,Object> headers = new HashMap<>();
+        headers.put("Content-Type","application/json;charset=UTF-8");
+
+        // 鏋勯�犺姹備綋
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("groupNos", groupNos);
+        String body = jsonObject.toJSONString();
+
+        String response = "";
+        try {
+            response = new HttpHandler.Builder()
+                    .setUri(MesConstant.MES_CC_IP_PORT)
+                    .setPath(MesConstant.MES_CC_DP_URL)
+                    .setHeaders(headers)
+                    .setJson(body)
+                    .build()
+                    .doGet();
+            if (!Cools.isEmpty(response)) {
+                JSONObject jsonObject1 = JSONObject.parseObject(response);
+                int code = (int) jsonObject1.get("code");
+                boolean state  = jsonObject1.getBoolean("state");
+                String msg = (String) jsonObject1.get("message");
+                if (code == 200 && state) {
+                    success = true;
+                }
+                throw new CoolException(msg);
+            } else {
+                log.error("杩斾慨鍝佸叆搴撶粰mes鎺ㄩ�佸緟鍒ゅけ璐ワ紒锛侊紒url锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_IP_PORT, body, response);
+                throw new CoolException("杩斾慨鍝佸叆搴撶粰mes鎺ㄩ�佸緟鍒ゅけ璐�");
+            }
+        } catch (Exception e) {
+            log.error("杩斾慨鍝佸叆搴撶粰mes鎺ㄩ�佸緟鍒ゅ紓甯革細{}", e.getMessage());
+        } finally {
+            try {
+                // 淇濆瓨鎺ュ彛鏃ュ織
+                apiLogService.save(
+                        "杩斾慨鍝佸叆搴撶粰mes鎺ㄩ�佸緟鍒�",
+                        MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_IP_PORT,
+                        null,
+                        "127.0.0.1",
+                        body,
+                        response,
+                        success
+                );
+            } catch (Exception e) {
+                log.error("", e);
+            }
+        }
+    }
+
     public boolean pushStaNoToGwcs(Integer palletizingNo, Integer staNo, Integer workNo,String barcode) {
         boolean success = false;
         // 鑾峰彇璇锋眰澶�

--
Gitblit v1.9.1