From 230615d093a235e2e481355edb47f37e380b3069 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期六, 07 六月 2025 08:09:04 +0800
Subject: [PATCH] #app

---
 src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java |   56 ++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 38 insertions(+), 18 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java b/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
index a548629..6443a4b 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
@@ -12,6 +12,7 @@
 import com.zy.asrs.service.*;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.utils.OrderInAndOutUtil;
 import com.zy.erp.kingdee.entity.param.InFormIdParam;
 import com.zy.erp.kingdee.enums.KingDeeUtilType;
 import com.zy.common.utils.HttpHandler;
@@ -25,6 +26,7 @@
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.HashMap;
+import java.util.List;
 
 @Service
 @Slf4j
@@ -69,7 +71,7 @@
         for(KingDeeUtilType kingDeeUtilType : KingDeeUtilType.values()) {
             InFormIdParam inFormIdParam = new InFormIdParam();
             DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", kingDeeUtilType.desc));
-            if (Cools.isEmpty(docType)){
+            if (Cools.isEmpty(docType) && !kingDeeUtilType.formId.equals("BD_MATERIAL")){
                 docType = docTypeService.selectOrAdd(kingDeeUtilType.desc, kingDeeUtilType.pakIn.equals(1));
             }
             inFormIdParam.setFormId(kingDeeUtilType.formId);
@@ -83,7 +85,7 @@
             jsonObject.put("Limit", inFormIdParam.getLimit());
             jsonObject.put("StartRow", inFormIdParam.getStartRow());
             //鐗╂枡妗f鏌ヨ
-            if(inFormIdParam.getFormId().equals("BD_MATERIAL")){
+            if(kingDeeUtilType.formId.equals("BD_MATERIAL")){
                 Tag tag = tagService.selectByName("鍏ㄩ儴", 1);
                 //鐗╂枡鐘舵�� FUseOrgId .FNumber
                 FDocumentStatus="C";
@@ -98,7 +100,7 @@
                 //鑾峰彇鏈�鏂版椂闂�
                 //鍗曟嵁鐘舵��
                 FDocumentStatus="B";
-                jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(docType.getCreateTime())+"' and FStockId.Fname='绔嬪簱'"+" and FDocumentStatus='"+FDocumentStatus+"'");
+                jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(docType.getCreateTime())+"'"+" and FStockId.Fname='绔嬪簱'"+" and FDocumentStatus='"+FDocumentStatus+"'");
                 jsonObject.put("FieldKeys", "FBillNo,FCreateDate,FMaterialId.FNumber,FMaterialId.FName,FMaterialId.FSpecification,"+kingDeeUtilType.anfme+",FDocumentStatus");
                 // FBillNo :鍗曟嵁缂栧彿锛�
                 // FCreateDate 锛氬崟鎹垱寤烘椂闂达紱
@@ -169,9 +171,10 @@
                     for (int j = 0; j < data.size(); j++) {
                         JSONArray jsonArray = data.getJSONArray(j);
                         //鏈�鏂版姄鍙栨椂闂�
-                        Date jsonDate = KingDeeUtil.KingDeeDate(jsonArray.get(2).toString());
+                        Date jsonDate = KingDeeUtil.KingDeeDate(jsonArray.get(1).toString());
                         docType.setCreateTime(jsonDate);
-                        Order order = orderService.selectByNo(jsonArray.get(0).toString());
+                        Order order = OrderInAndOutUtil.selectByNo(kingDeeUtilType.pakIn == 1, jsonArray.get(0).toString());
+//                        Order order = orderService.selectByNo(jsonArray.get(0).toString());
                         if (Cools.isEmpty(order)) {
                             Date now = new Date();
                             // 鍗曟嵁涓绘。
@@ -211,22 +214,38 @@
                                     now,    // 淇敼鏃堕棿
                                     null    // 澶囨敞
                             );
+                             OrderInAndOutUtil.insertOrder(kingDeeUtilType.pakIn == 1, order);
 
-                            if (!orderService.insert(order)) {
-                                callApiLogSaveOrder(order,kingDeeUtilType, "鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�"+order, false);
-                                continue;
-//                                throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�");
-                            }
+//                            if (!orderService.insert(order)) {
+//                                if (!jsonDate.equals(docType.getCreateTime())){
+//                                    callApiLogSaveOrder(order,kingDeeUtilType, "鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�"+order, false);
+//                                }
+//                                continue;
+////                                throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�");
+//                            }
                         }
                         //鐗╂枡缂栫爜
                         Mat mat = matService.selectByMatnr(jsonArray.get(2).toString());
                         if (Cools.isEmpty(mat)) {
-                            callApiLogSaveOrder(order,kingDeeUtilType, "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧"+jsonArray.get(2).toString(), false);
+                            if (!jsonDate.equals(docType.getCreateTime())){
+                                callApiLogSaveOrder(order,kingDeeUtilType, "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧"+jsonArray.get(2).toString(), false);
+                            }
                             continue;
-//                            throw new CoolException(jsonArray.get(2).toString() + "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧");
                         }
-                        OrderDetl orderDetl1 = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", jsonArray.get(0).toString()).eq("matnr", jsonArray.get(2).toString()));
-                        if (!Cools.isEmpty(orderDetl1)) {
+//                        OrderDetl orderDetl1 = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", jsonArray.get(0).toString()).eq("matnr", jsonArray.get(2).toString()));
+//                        if (!Cools.isEmpty(orderDetl1)) {
+//                            continue;
+//                        }
+                        Order order1 = OrderInAndOutUtil.selectByNo(kingDeeUtilType.pakIn == 1, jsonArray.get(0).toString());
+                        List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(kingDeeUtilType.pakIn == 1, order1.getId());
+                        boolean sign = false;
+                        for (OrderDetl orderDetl : orderDetls){
+                            if (orderDetl.getMatnr().equals( jsonArray.get(2).toString())){
+                                sign = true;
+                                break;
+                            }
+                        }
+                        if (sign){
                             continue;
                         }
                         OrderDetl orderDetl = new OrderDetl();
@@ -241,10 +260,11 @@
                         orderDetl.setUpdateTime(new Date());
                         orderDetl.setStatus(1);
                         orderDetl.setQty(0.0D);
-                        if (!orderDetlService.insert(orderDetl)) {
-                            callApiLogSaveOrder(order,kingDeeUtilType, "鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�!璁㈠崟鍙凤細"+order.getOrderNo(), false);
-//                            throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
-                        }
+//                        if (!orderDetlService.insert(orderDetl)) {
+//                            callApiLogSaveOrder(order,kingDeeUtilType, "鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�!璁㈠崟鍙凤細"+order.getOrderNo(), false);
+////                            throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
+//                        }
+                        OrderInAndOutUtil.insertOrderDetl(kingDeeUtilType.pakIn == 1,order,orderDetl);
                     }
                     docTypeService.updateById(docType);
                 }

--
Gitblit v1.9.1