From 383c6139926563f02fba4432effbfc27f87d88c5 Mon Sep 17 00:00:00 2001
From: bfwms <1>
Date: 星期三, 30 七月 2025 14:36:57 +0800
Subject: [PATCH] ERP对接

---
 src/main/java/com/zy/asrs/controller/OpenController.java    |   40 ++++++++++++-------
 src/main/java/com/zy/common/model/DetlDto.java              |   20 +++++++---
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |   17 ++++++--
 src/main/java/com/zy/asrs/task/CollectOrdersScheduler.java  |    1 
 src/main/java/com/zy/asrs/task/ERPReportScheduler.java      |   25 ++++++++++--
 5 files changed, 73 insertions(+), 30 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 025696b..e83bde1 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.controller;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.core.annotations.AppAuth;
 import com.core.common.*;
 import com.core.exception.CoolException;
@@ -17,6 +18,7 @@
 import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -162,23 +164,31 @@
      */
     @PostMapping("/order/pakout/new/default/v1")
     @AppAuth(memo = "娣诲姞璁㈠崟鍑哄簱")
-    public synchronized R pakoutOrderCreate(@RequestHeader(required = false) String appkey,
-                                            @RequestBody OpenOrderPakoutParam param,
-                                            HttpServletRequest request) {
+    public synchronized R pakoutOrderCreate(
+            @RequestBody HashMap<String , Object> map
+            ) {
 //        auth(appkey, param, request);
-        if (Cools.isEmpty(param)) {
-            return R.parse(BaseRes.PARAM);
+        String toJSONString = JSONObject.toJSONString(map.get("data"));
+        List<OpenOrderPakoutParam> openOrderPakoutParams=JSON.parseArray(toJSONString,OpenOrderPakoutParam.class);
+        int i=1;
+        for (OpenOrderPakoutParam param: openOrderPakoutParams){
+            if (Cools.isEmpty(param)) {
+                return R.parse(BaseRes.PARAM);
+            }
+            if (Cools.isEmpty(param.getOrderNo())) {
+                return R.error("鍗曟嵁缂栧彿[orderNo]涓嶈兘涓虹┖");
+            }
+            System.out.println(i+"-------------------------------"+param.getOrderNo());
+            i++;
+            if (Cools.isEmpty(param.getOrderType())) {
+                return R.error("鍗曟嵁绫诲瀷[orderType]涓嶈兘涓虹┖");
+            }
+            if (Cools.isEmpty(param.getOrderDetails())) {
+                return R.error("鍗曟嵁鏄庣粏[orderDetails]涓嶈兘涓虹┖");
+            }
+            openService.pakoutOrderCreate(param);
         }
-        if (Cools.isEmpty(param.getOrderNo())) {
-            return R.error("鍗曟嵁缂栧彿[orderNo]涓嶈兘涓虹┖");
-        }
-        if (Cools.isEmpty(param.getOrderType())) {
-            return R.error("鍗曟嵁绫诲瀷[orderType]涓嶈兘涓虹┖");
-        }
-        if (Cools.isEmpty(param.getOrderDetails())) {
-            return R.error("鍗曟嵁鏄庣粏[orderDetails]涓嶈兘涓虹┖");
-        }
-        openService.pakoutOrderCreate(param);
+
         return R.ok();
     }
 
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 4f423d8..98861b1 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -247,7 +247,7 @@
         List<DetlDto> list = new ArrayList<>();
         List<DetlDto> orderDetails = param.getOrderDetails();
         for (DetlDto detail : orderDetails) {
-            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
+            DetlDto dto = new DetlDto(detail.getMatnr(),detail.getMaktx(), detail.getBatch(), detail.getAnfme());
             if (DetlDto.has(list, dto)) {
                 DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
                 assert detlDto != null;
@@ -259,10 +259,17 @@
         for (DetlDto detlDto : list) {
             Mat mat = matService.selectByMatnr(detlDto.getMatnr());
             if (Cools.isEmpty(mat)) {
-                throw new CoolException(detlDto.getMatnr() + "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧");
+                Mat mat1=new Mat();
+                mat1.setTagId(1L);
+                mat1.setMatnr(detlDto.getMatnr());
+                mat1.setMaktx(detlDto.getMaktx());
+                mat1.setMatType(3);
+                matService.insert(mat1);
             }
             OrderDetl orderDetl = new OrderDetl();
-            orderDetl.sync(mat);
+//            orderDetl.sync(mat);
+            orderDetl.setMatnr(detlDto.getMatnr());
+            orderDetl.setMaktx(detlDto.getMaktx());
             orderDetl.setBatch(detlDto.getBatch());
             orderDetl.setAnfme(detlDto.getAnfme());
             orderDetl.setOrderId(order.getId());
@@ -286,8 +293,6 @@
         wrkMast.setIoType(101);
         wrkMast.setWrkSts(17L);
         wrkMast.setMemo("鎹℃枡杞叏鏉垮伐浣滄。");
-        wrkMastService.update(wrkMast, new EntityWrapper<WrkMast>()
-                .eq("wrk_no", wrkMast.getWrkNo()));
         List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
         List<LocDetl> locDetls = locDetlService.selectByLocNo(wrkMast.getSourceLocNo());
         for (LocDetl locDetl : locDetls) {
@@ -318,6 +323,8 @@
             }
         }
         locMastService.updateLocSts(wrkMast.getSourceLocNo(), "R");
+        wrkMastService.update(wrkMast, new EntityWrapper<WrkMast>()
+                .eq("wrk_no", wrkMast.getWrkNo()));
     }
 
 
diff --git a/src/main/java/com/zy/asrs/task/CollectOrdersScheduler.java b/src/main/java/com/zy/asrs/task/CollectOrdersScheduler.java
index 9dfd3ae..0e6c397 100644
--- a/src/main/java/com/zy/asrs/task/CollectOrdersScheduler.java
+++ b/src/main/java/com/zy/asrs/task/CollectOrdersScheduler.java
@@ -144,6 +144,7 @@
                         mat1.setMatnr(orderResult.getItemNo());
                         mat1.setMaktx(orderResult.getItemName());
                         mat1.setSpecs(orderResult.getItemSpec());
+                        mat1.setMatType(3);
                         matService.insert(mat1);
 //                        throw new CoolException(orderResult.getItemNo() + "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧");
                     }
diff --git a/src/main/java/com/zy/asrs/task/ERPReportScheduler.java b/src/main/java/com/zy/asrs/task/ERPReportScheduler.java
index 7005ede..9292c76 100644
--- a/src/main/java/com/zy/asrs/task/ERPReportScheduler.java
+++ b/src/main/java/com/zy/asrs/task/ERPReportScheduler.java
@@ -64,6 +64,9 @@
                 if(wrkDetls!=null&&wrkDetls.size()>0){
                     List<LinkedHashMap<String,Object>> datas=new ArrayList<>();
                     for(WrkDetl wrkDetl:wrkDetls){
+                        if(Cools.isEmpty(wrkDetl.getOrderNo())){
+                            continue;
+                        }
                         OrderDetl orderDetl= orderDetlService.selectItem(wrkDetl.getOrderNo(),wrkDetl.getMatnr(),wrkDetl.getBatch());
                         if(orderDetl==null){
                             log.error("orderNo={}锛宮atnr={}锛宐atch={}锛屾病鏈夋煡璇㈠埌璁㈠崟鏄庣粏",wrkDetl.getOrderNo(),wrkDetl.getMatnr(),wrkDetl.getBatch());
@@ -76,22 +79,35 @@
                         }
                         DocType docType = docTypeService.selectById(order.getDocType());//鍗曟嵁缂栧彿
                         LinkedHashMap<String,Object> map=new LinkedHashMap<>();
-                        map.put("orgNo",orderDetl.getManu());//缁勭粐缂栫爜
+                        if(wrkMast.getIoType()<50){
+                            map.put("orgNo",orderDetl.getManu());//缁勭粐缂栫爜
+                            map.put("docType",docType.getMemo());
+                            map.put("cellNo",orderDetl.getBrand());
+                        }else{
+                            map.put("orgNo","2");//缁勭粐缂栫爜
+                            int i = orderDetl.getOrderNo().indexOf("5D");
+                            if(i!=-1){
+                                map.put("docType","B064");
+                            }else{
+                                map.put("docType","D001");
+                            }
+                            map.put("cellNo","L01A20");
+                        }
+
                         map.put("docNo",orderDetl.getOrderNo());
-                        map.put("docType",docType.getMemo());
                         map.put("docSeqNo",orderDetl.getModel());
                         map.put("itemNo",orderDetl.getMatnr());
                         map.put("qty",wrkDetl.getAnfme());
                         map.put("unitNo",orderDetl.getUnit());
                         map.put("warehouseNo","02201");
-                        map.put("cellNo",orderDetl.getBrand());
+
                         map.put("combinationLotNo",String.valueOf(orderDetl.getBatch()));
                         map.put("barcode",wrkDetl.getMatnr());
                         datas.add(map);
                     }
                     String path= "";
                     String work= "";
-                    if(wrkMast.getIoType()<100){
+                    if(wrkMast.getIoType()<50){
                         path=inReportAddress;
                         work="鍏ュ簱";
                     }else{
@@ -101,6 +117,7 @@
                     path=outReportAddress;
                     HashMap<String,Object> map=new HashMap<>();
                     map.put("data",datas);
+                    System.out.println(map.toString());
                     //涓婃姤ERP
                     String response = "";
                     boolean success = false;
diff --git a/src/main/java/com/zy/common/model/DetlDto.java b/src/main/java/com/zy/common/model/DetlDto.java
index a792802..ae3b160 100644
--- a/src/main/java/com/zy/common/model/DetlDto.java
+++ b/src/main/java/com/zy/common/model/DetlDto.java
@@ -19,6 +19,8 @@
 
     private String matnr;
 
+    private String maktx;
+
     private String batch;
 
     private Double anfme;
@@ -48,6 +50,12 @@
         this.batch = batch;
         this.anfme = anfme;
     }
+    public DetlDto(String matnr,String maktx, String batch, Double anfme) {
+        this.matnr = matnr;
+        this.maktx = maktx;
+        this.batch = batch;
+        this.anfme = anfme;
+    }
 
     public DetlDto(String matnr, String batch, Double anfme,Long owner) {
         this.matnr = matnr;
@@ -57,12 +65,12 @@
     }
 
 
-    public DetlDto(String orderNo, String matnr, String batch, Double anfme) {
-        this.orderNo = orderNo;
-        this.matnr = matnr;
-        this.batch = batch;
-        this.anfme = anfme;
-    }
+//    public DetlDto(String orderNo, String matnr, String batch, Double anfme) {
+//        this.orderNo = orderNo;
+//        this.matnr = matnr;
+//        this.batch = batch;
+//        this.anfme = anfme;
+//    }
 
     public DetlDto(String matnr, String batch, Double anfme, String memo, String cstmr) {
         this.matnr = matnr;

--
Gitblit v1.9.1