From e2f131e38492892b6813f3726f3c4420e86620a8 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期三, 04 九月 2024 08:52:58 +0800
Subject: [PATCH] 订单上报mes修改

---
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java |   76 ++++++++++++++++++++++++++++++++++----
 1 files changed, 68 insertions(+), 8 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 7dbc6d1..f19fa03 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -1423,7 +1423,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 +1432,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 +1471,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 +1499,73 @@
         } 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("digi-type","sync ");
+        headers.put("digi-protocol","raw");
+        headers.put("digi-datakey"," XCommon.ImportData");
+
+        // 鏋勯�犺姹備綋
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("groupNos", groupNos);
+        String body = jsonObject.toJSONString();
+
+        String response = "";
+        try {
+            response = new HttpHandler.Builder()
+                    .setUri(MesConstant.MES_IP_PORT)
+                    .setPath(MesConstant.MES_DP_URL)
+                    .setHeaders(headers)
+                    .setJson(body)
+                    .build()
+                    .doPost();
+            if (!Cools.isEmpty(response)) {
+                JSONObject jsonObject1 = JSONObject.parseObject(response);
+                int code = (int) jsonObject1.get("code");
+                String msg = (String) jsonObject1.get("msg");
+                if (code != 200) {
+                    throw new CoolException(msg);
+                }
+                success = true;
+            } else {
+                log.error("杩斾慨鍝佸叆搴撶粰mes鎺ㄩ�佸緟鍒ゅけ璐ワ紒锛侊紒url锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL + MesConstant.PAKIN_URL, body, response);
+                throw new CoolException("杩斾慨鍝佸叆搴撶粰mes鎺ㄩ�佸緟鍒ゅけ璐�");
+            }
+        } catch (Exception e) {
+            log.error("杩斾慨鍝佸叆搴撶粰mes鎺ㄩ�佸緟鍒ゅ紓甯革細{}", e.getMessage());
+        } finally {
+            try {
+                // 淇濆瓨鎺ュ彛鏃ュ織
+                apiLogService.save(
+                        "杩斾慨鍝佸叆搴撶粰mes鎺ㄩ�佸緟鍒�",
+                        MesConstant.MES_IP_PORT + MesConstant.MES_DP_URL,
+                        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