From 83c548d3dba59aaed9b52b5d413c6912a87d2efc Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期日, 16 六月 2024 15:50:14 +0800
Subject: [PATCH] #

---
 zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/GenerateOrderMatParam.java |   12 ++
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkLogHandler.java                      |   94 ++++++++++++++++++
 zy-asrs-wms/src/main/resources/application.yml                                                  |    7 +
 zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/impl/ApiServiceImpl.java        |    4 
 zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/DetlDto.java                         |    7 +
 zy-asrs-wms/src/main/webapp/static/js/order/order.js                                            |    2 
 zy-asrs-openapi/src/main/java/com/zy/asrs/openapi/controller/ApiController.java                 |    4 
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/OrderDetl.java                       |   12 +-
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java         |    6 +
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/TestController.java                        |  136 +++++++++++++++++++++++++++
 zy-asrs-common/src/main/java/com/zy/asrs/common/utils/Utils.java                                |   14 ++
 11 files changed, 287 insertions(+), 11 deletions(-)

diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/DetlDto.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/DetlDto.java
index d852ca0..d3e7a18 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/DetlDto.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/DetlDto.java
@@ -25,6 +25,13 @@
 
     private String memo;
 
+    private String warehouse;//浠撳簱鍙�
+
+    private String origin;//鏉ユ簮鍗曞彿
+
+    private String originNo;//鏉ユ簮搴忓彿
+
+
     public DetlDto() {
     }
 
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/GenerateOrderMatParam.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/GenerateOrderMatParam.java
index 3ecb3ea..94e0b05 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/GenerateOrderMatParam.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/GenerateOrderMatParam.java
@@ -14,4 +14,16 @@
     //鏁伴噺
     private Double anfme;
 
+    //鍗曚綅
+    private String unit;
+
+    //浠撳簱鍙�
+    private String warehouse;
+
+    //鏉ユ簮鍗曞彿
+    private String origin;
+
+    //鏉ユ簮搴忓彿
+    private String originNo;
+
 }
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/impl/ApiServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/impl/ApiServiceImpl.java
index 324e562..13b0042 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/impl/ApiServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/impl/ApiServiceImpl.java
@@ -99,6 +99,10 @@
             orderDetl.sync(mat);
             orderDetl.setBatch(matParam.getBatch());
             orderDetl.setAnfme(matParam.getAnfme());
+            orderDetl.setUnit(matParam.getUnit());
+            orderDetl.setThreeCode(matParam.getWarehouse());//浠撳簱鍙�
+            orderDetl.setSupp(matParam.getOrigin());//鏉ユ簮鍗曞彿
+            orderDetl.setSuppCode(matParam.getOriginNo());//鏉ユ簮搴忓彿
             orderDetl.setOrderId(order.getId());
             orderDetl.setOrderNo(order.getOrderNo());
             orderDetl.setCreateBy(9527L);
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/utils/Utils.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/utils/Utils.java
index a0f7a1e..184d87c 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/utils/Utils.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/utils/Utils.java
@@ -1,5 +1,7 @@
 package com.zy.asrs.common.utils;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.zy.asrs.common.wms.service.LocDirectionService;
 import com.zy.asrs.framework.common.Cools;
 import com.zy.asrs.framework.common.SpringUtils;
@@ -7,6 +9,8 @@
 import java.security.SecureRandom;
 import java.text.DecimalFormat;
 import java.util.ArrayList;
+import java.util.Base64;
+import java.util.LinkedHashMap;
 import java.util.List;
 
 /**
@@ -141,4 +145,14 @@
         return result;
     }
 
+    //蹇靛垵ERP鏁版嵁鍔犲瘑绠楁硶
+    public static String ncErpDataEncode(LinkedHashMap<String, Object> param) {
+        String jsonString = JSON.toJSONString(param, SerializerFeature.DisableCircularReferenceDetect);
+        jsonString += "Digi";
+
+        String baseCode = Base64.getEncoder().encodeToString(jsonString.getBytes());
+        String encode = baseCode.replace("/", "{-----------------------------}");
+        return encode;
+    }
+
 }
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/OrderDetl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/OrderDetl.java
index 78cb906..b467ba5 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/OrderDetl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/OrderDetl.java
@@ -184,21 +184,21 @@
     private Double volume;
 
     /**
-     * 涓夋柟缂栫爜
+     * 浠撳簱鍙�
      */
-    @ApiModelProperty(value= "涓夋柟缂栫爜")
+    @ApiModelProperty(value= "浠撳簱鍙�")
     private String threeCode;
 
     /**
-     * 渚涘簲鍟�
+     * 鏉ユ簮鍗曞彿
      */
-    @ApiModelProperty(value= "渚涘簲鍟�")
+    @ApiModelProperty(value= "鏉ユ簮鍗曞彿")
     private String supp;
 
     /**
-     * 渚涘簲鍟嗙紪鐮�
+     * 鏉ユ簮搴忓彿
      */
-    @ApiModelProperty(value= "渚涘簲鍟嗙紪鐮�")
+    @ApiModelProperty(value= "鏉ユ簮搴忓彿")
     private String suppCode;
 
     /**
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java
index 97ad4f4..d512408 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java
@@ -124,6 +124,9 @@
                 }
 
                 DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
+                detlDto.setWarehouse(orderDetl.getThreeCode());//鏉ユ簮浠撳簱
+                detlDto.setOrigin(orderDetl.getSupp());//鏉ユ簮鍗曞彿
+                detlDto.setOriginNo(orderDetl.getSuppCode());//鏉ユ簮搴忓彿
                 if (DetlDto.has(detlDtos, detlDto)) {
                     DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
                     assert one != null;
@@ -144,6 +147,9 @@
                 waitPakin.setZpallet(param.getBarcode());   // 鎵樼洏鐮�
                 waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
                 waitPakin.setAnfme(detlDto.getAnfme());  // 鏁伴噺
+                waitPakin.setThreeCode(detlDto.getWarehouse());  // 浠撳簱
+                waitPakin.setSupp(detlDto.getOrigin());  // 鏉ユ簮鍗曞彿
+                waitPakin.setSuppCode(detlDto.getOriginNo());  // 鏉ユ簮搴忓彿
                 waitPakin.setStatus("Y");    // 鐘舵��
                 waitPakin.setAppeUser(userId);
                 waitPakin.setAppeTime(now);
diff --git a/zy-asrs-openapi/src/main/java/com/zy/asrs/openapi/controller/ApiController.java b/zy-asrs-openapi/src/main/java/com/zy/asrs/openapi/controller/ApiController.java
index da21b6e..4f0fd6c 100644
--- a/zy-asrs-openapi/src/main/java/com/zy/asrs/openapi/controller/ApiController.java
+++ b/zy-asrs-openapi/src/main/java/com/zy/asrs/openapi/controller/ApiController.java
@@ -188,6 +188,10 @@
             mat.setMatnr(matParam.getMatnr());
             mat.setBatch(matParam.getBatch());
             mat.setAnfme(matParam.getCount());
+            mat.setUnit(matParam.getUnit());
+            mat.setWarehouse(matParam.getWarehouse());
+            mat.setOrigin(matParam.getOrigin());
+            mat.setOriginNo(matParam.getOriginNo());
             mats.add(mat);
         }
 
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/TestController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/TestController.java
new file mode 100644
index 0000000..03c6a78
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/TestController.java
@@ -0,0 +1,136 @@
+package com.zy.asrs.wms.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.common.sys.entity.OperateLog;
+import com.zy.asrs.common.sys.service.OperateLogService;
+import com.zy.asrs.common.utils.HttpHandler;
+import com.zy.asrs.common.utils.Utils;
+import com.zy.asrs.common.web.BaseController;
+import com.zy.asrs.common.wms.entity.Order;
+import com.zy.asrs.common.wms.entity.WrkDetl;
+import com.zy.asrs.common.wms.entity.WrkMast;
+import com.zy.asrs.common.wms.service.*;
+import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.framework.common.R;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+@RestController
+public class TestController extends BaseController {
+
+    @Autowired
+    private WrkMastService wrkMastService;
+    @Autowired
+    private WrkDetlService wrkDetlService;
+    @Autowired
+    private OrderService orderService;
+    @Autowired
+    private OperateLogService operateLogService;
+
+    @Value("${erp.url}")
+    private String ERP_URL;
+
+    @Value("${erp.report}")
+    private String ERP_REPORT;
+
+    @Value("${erp.login}")
+    private String ERP_LOGIN;
+
+    @GetMapping("/test")
+    public R test(@RequestParam Integer wrkNo) {
+        WrkMast wrkMast = wrkMastService.getOne(new LambdaQueryWrapper<WrkMast>().eq(WrkMast::getWrkNo, wrkNo));
+        Long hostId = wrkMast.getHostId();
+
+        List<WrkDetl> wrkDetls = wrkDetlService.list(new LambdaQueryWrapper<WrkDetl>().eq(WrkDetl::getWrkNo, wrkMast.getWrkNo()).eq(WrkDetl::getHostId, hostId));
+        // 鍖哄垎璁㈠崟浠诲姟
+        List<WrkDetl> wrkDetlsKeyOrder = new ArrayList<>();
+        if (!Cools.isEmpty(wrkDetls)) {
+            Iterator<WrkDetl> iterator = wrkDetls.iterator();
+            while (iterator.hasNext()) {
+                WrkDetl wrkDetl = iterator.next();
+                if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
+                    wrkDetlsKeyOrder.add(wrkDetl);
+                    iterator.remove();
+                }
+            }
+        }
+
+        if (wrkMast.getIoType() == 1 || wrkMast.getIoType() == 53 || wrkMast.getWrkSts() == 200) {
+            //涓婃姤蹇靛垵ERP   銆� 涓婃姤涓夋柟骞冲彴 銆�
+            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
+            String nowFormat = dateFormat.format(new Date());
+
+            ArrayList<LinkedHashMap<String, Object>> mats = new ArrayList<>();
+            String orderNo = "";
+            for (WrkDetl wrkDetl : wrkDetls) {
+                orderNo = wrkDetl.getOrderNo();
+                LinkedHashMap<String, Object> mat = new LinkedHashMap<>();
+                mat.put("GoodsCode", wrkDetl.getMatnr());
+                mat.put("Num", wrkDetl.getAnfme());
+                if (!Cools.isEmpty(wrkDetl.getBatch())) {
+                    mat.put("BatchNo", wrkDetl.getBatch());
+                }
+                if (!Cools.isEmpty(wrkDetl.getThreeCode())) {
+                    mat.put("DepotName", wrkDetl.getThreeCode());
+                }
+                if (!Cools.isEmpty(wrkDetl.getSupp())) {
+                    mat.put("FromDanCode", wrkDetl.getSupp());
+                }
+                if (!Cools.isEmpty(wrkDetl.getSuppCode())) {
+                    mat.put("FromNo", wrkDetl.getSuppCode());
+                }
+                mats.add(mat);
+            }
+            Order order = orderService.selectByNo(orderNo, hostId);
+            if (order != null) {
+                LinkedHashMap<String, Object> param = new LinkedHashMap<>();
+                param.put("Login", ERP_LOGIN);
+                param.put("DanType", order.getDocType$());
+                param.put("Date", nowFormat);
+                param.put("FromDanCode", orderNo);
+                param.put("Data", mats);
+
+                String response = null;
+                try {
+                    response = new HttpHandler.Builder()
+                            .setUri(ERP_URL)
+                            .setPath(ERP_REPORT + Utils.ncErpDataEncode(param))
+                            .build()
+                            .doGet();
+                    JSONObject jsonObject = JSON.parseObject(response);
+                    JSONArray result = jsonObject.getJSONArray("result");
+                    Object object = result.get(0);
+                    JSONObject data = JSON.parseObject(object.toString());
+                    if (data.getBoolean("State")) {
+                        //涓婃姤鎴愬姛
+                    } else {
+                        //涓婃姤澶辫触
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                } finally {
+                    //璁板綍涓婃姤鏁版嵁
+                    OperateLog operateLog = new OperateLog();
+                    operateLog.setAction("涓婃姤ERP," + ERP_URL + ERP_REPORT);
+                    operateLog.setRequest(Utils.ncErpDataEncode(param));
+                    operateLog.setResponse(response);
+                    operateLog.setCreateTime(new Date());
+                    operateLog.setSystem("WMS");
+                    operateLogService.save(operateLog);
+                }
+            }
+        }
+
+        return R.ok();
+    }
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkLogHandler.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkLogHandler.java
index 5a35d84..5ef3ebb 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkLogHandler.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkLogHandler.java
@@ -1,7 +1,15 @@
 package com.zy.asrs.wms.task.handler;
 
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.common.sys.entity.OperateLog;
+import com.zy.asrs.common.sys.service.OperateLogService;
+import com.zy.asrs.common.utils.HttpHandler;
+import com.zy.asrs.common.utils.Utils;
+import com.zy.asrs.common.wms.entity.Order;
 import com.zy.asrs.common.wms.entity.WaitPakin;
 import com.zy.asrs.common.wms.entity.WrkDetl;
 import com.zy.asrs.common.wms.entity.WrkMast;
@@ -11,13 +19,13 @@
 import com.zy.asrs.wms.task.core.ReturnT;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 /**
  * Created by vincent on 2020/7/6
@@ -40,6 +48,17 @@
     private WaitPakinLogService waitPakinLogService;
     @Autowired
     private OrderService orderService;
+    @Autowired
+    private OperateLogService operateLogService;
+
+    @Value("${erp.url}")
+    private String ERP_URL;
+
+    @Value("${erp.report}")
+    private String ERP_REPORT;
+
+    @Value("${erp.login}")
+    private String ERP_LOGIN;
 
     // update asr_wrk_mast set inv_wh = 'Y', ove_mk = 'Y' where wrk_no =
     @Transactional
@@ -99,6 +118,75 @@
                 }
             }
 
+            if (wrkMast.getIoType() == 1 || wrkMast.getIoType() == 53 || wrkMast.getWrkSts() == 200) {
+                //涓婃姤蹇靛垵ERP   銆� 涓婃姤涓夋柟骞冲彴 銆�
+                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
+                String nowFormat = dateFormat.format(new Date());
+
+                ArrayList<LinkedHashMap<String, Object>> mats = new ArrayList<>();
+                String orderNo = "";
+                for (WrkDetl wrkDetl : wrkDetls) {
+                    orderNo = wrkDetl.getOrderNo();
+                    LinkedHashMap<String, Object> mat = new LinkedHashMap<>();
+                    mat.put("GoodsCode", wrkDetl.getMatnr());
+                    mat.put("Num", wrkDetl.getAnfme());
+                    if (!Cools.isEmpty(wrkDetl.getBatch())) {
+                        mat.put("BatchNo", wrkDetl.getBatch());
+                    }
+                    if (!Cools.isEmpty(wrkDetl.getThreeCode())) {
+                        mat.put("DepotName", wrkDetl.getThreeCode());
+                    }
+                    if (!Cools.isEmpty(wrkDetl.getSupp())) {
+                        mat.put("FromDanCode", wrkDetl.getSupp());
+                    }
+                    if (!Cools.isEmpty(wrkDetl.getSuppCode())) {
+                        mat.put("FromNo", wrkDetl.getSuppCode());
+                    }
+                    mats.add(mat);
+                }
+                Order order = orderService.selectByNo(orderNo, hostId);
+                if (order != null) {
+                    LinkedHashMap<String, Object> param = new LinkedHashMap<>();
+                    param.put("Login", ERP_LOGIN);
+                    param.put("DanType", order.getDocType$());
+                    param.put("Date", nowFormat);
+                    param.put("FromDanCode", orderNo);
+                    param.put("Data", mats);
+
+                    String response = null;
+                    try {
+                        response = new HttpHandler.Builder()
+                                .setUri(ERP_URL)
+                                .setPath(ERP_REPORT + Utils.ncErpDataEncode(param))
+                                .build()
+                                .doGet();
+                        JSONObject jsonObject = JSON.parseObject(response);
+                        JSONArray result = jsonObject.getJSONArray("result");
+                        Object object = result.get(0);
+                        JSONObject data = JSON.parseObject(object.toString());
+                        if (data.getBoolean("State")) {
+                            //涓婃姤鎴愬姛
+                        } else {
+                            //涓婃姤澶辫触
+                            exceptionHandle("涓婃姤ERP澶辫触[workNo={0}]澶辫触", wrkMast.getWrkNo());
+                        }
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                        //寮傚父涓婃姤澶辫触
+                        exceptionHandle("涓婃姤ERP寮傚父澶辫触[workNo={0}]澶辫触", wrkMast.getWrkNo());
+                    } finally {
+                        //璁板綍涓婃姤鏁版嵁
+                        OperateLog operateLog = new OperateLog();
+                        operateLog.setAction("涓婃姤ERP," + ERP_URL + ERP_REPORT);
+                        operateLog.setRequest(Utils.ncErpDataEncode(param));
+                        operateLog.setResponse(response);
+                        operateLog.setCreateTime(new Date());
+                        operateLog.setSystem("WMS");
+                        operateLogService.save(operateLog);
+                    }
+                }
+            }
+
             // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
             if (!wrkMastLogService.saveToHistory(wrkMast.getId())) {
                 exceptionHandle("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={0}]澶辫触", wrkMast.getWrkNo());
diff --git a/zy-asrs-wms/src/main/resources/application.yml b/zy-asrs-wms/src/main/resources/application.yml
index 1b28073..4a1d019 100644
--- a/zy-asrs-wms/src/main/resources/application.yml
+++ b/zy-asrs-wms/src/main/resources/application.yml
@@ -54,4 +54,9 @@
   publicAlias: publicCert
   storePass: public_zhongyang_123456789
   licensePath: license.lic
-  publicKeysStorePath: publicCerts.keystore
\ No newline at end of file
+  publicKeysStorePath: publicCerts.keystore
+
+erp:
+  url: http://192.168.1.240:8080
+  login: DS
+  report: /datasnap/rest/TServerMethods1/YZAPI/
diff --git a/zy-asrs-wms/src/main/webapp/static/js/order/order.js b/zy-asrs-wms/src/main/webapp/static/js/order/order.js
index db68dae..ed18cb4 100644
--- a/zy-asrs-wms/src/main/webapp/static/js/order/order.js
+++ b/zy-asrs-wms/src/main/webapp/static/js/order/order.js
@@ -172,7 +172,7 @@
                             // },
                             // {field: 'inQty', title: '宸插叆搴撻噺'},
                             // {field: 'color', title: '棰滆壊'},
-                            {field: 'origin', title: '浠撳簱鍙�'}
+                            {field: 'threeCode', title: '浠撳簱鍙�'}
                         ]],
                         request: {
                             pageName: 'curr',

--
Gitblit v1.9.1