From ce0c3f5785e79d4765e85ddfd27a305444ef3560 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期六, 21 十月 2023 14:35:51 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java |   91 +++++++++++++++++++++++----------------------
 1 files changed, 47 insertions(+), 44 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 9c619a2..0bc7bd1 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
@@ -15,6 +15,7 @@
 import com.zy.erp.kingdee.entity.param.InFormIdParam;
 import com.zy.erp.kingdee.enums.KingDeeUtilType;
 import com.zy.common.utils.HttpHandler;
+import com.zy.erp.kingdee.utils.KingDeeUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -22,8 +23,6 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.text.SimpleDateFormat;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
 import java.util.Date;
 import java.util.HashMap;
 
@@ -67,17 +66,15 @@
         SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         //鐧诲綍閲戣澏
         ReturnT<String> start = loginAuthenticationHandler.start();
-        for(int i=0;i<docTypeService.selectCount(new EntityWrapper<>())+2;i++) {
+        for(KingDeeUtilType kingDeeUtilType : KingDeeUtilType.values()) {
             InFormIdParam inFormIdParam = new InFormIdParam();
-            KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get((short)i);
-            if (Cools.isEmpty(kingDeeUtilType)){
-                continue;
-            }
             DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", kingDeeUtilType.desc));
+            if (Cools.isEmpty(docType)){
+                docType = docTypeService.selectOrAdd(kingDeeUtilType.desc, kingDeeUtilType.pakIn.equals(1));
+            }
             inFormIdParam.setFormId(kingDeeUtilType.formId);
             inFormIdParam.setLimit(100);
             inFormIdParam.setStartRow("0");
-            Date time=new Date();
             String FDocumentStatus=null;
 
             //鏉′欢鍜岄渶瑕佽幏寰楃殑缁撴灉鎷兼帴
@@ -87,12 +84,10 @@
             jsonObject.put("StartRow", inFormIdParam.getStartRow());
             //鐗╂枡妗f鏌ヨ
             if(inFormIdParam.getFormId().equals("BD_MATERIAL")){
-                Tag tag = tagService.selectById(20);
-                //鏈�鏂版椂闂�
-                time=tag.getCreateTime();
+                Tag tag = tagService.selectByName("鍏ㄩ儴", 1);
                 //鐗╂枡鐘舵�� FUseOrgId .FNumber
                 FDocumentStatus="C";
-                jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(time)+"' and FDocumentStatus='"+FDocumentStatus+"' and FUseOrgId .FNumber='201'");
+                jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(tag.getUpdateTime())+"' and FDocumentStatus='"+FDocumentStatus+"' and FUseOrgId .FNumber='201'");
                 jsonObject.put("FieldKeys", "FName,FNumber,FCreateDate,FSpecification,FDocumentStatus");
                 // FName : 鐗╂枡鍚嶇О 锛�
                 // FNumber 锛氱墿鏂欑紪鍙凤紱
@@ -134,41 +129,46 @@
                 JSONArray data = JSON.parseArray(response);
                 if(data.size()<=0)  continue;
                 if (data.getJSONArray(0).get(0).toString().length()>=20) continue;
-                if (i == 0) {
+                if (kingDeeUtilType.formId.equals("BD_MATERIAL")) {//鐗╂枡妗f
+                    Tag tag = tagService.selectByName("鍏ㄩ儴", 1);
                     for (int j = 0; j < data.size(); j++) {
                         JSONArray jsonArray = data.getJSONArray(j);
+                        //瀵圭編鍥芥椂闂磋繘琛岃浆鎹�
+                        Date date = KingDeeUtil.KingDeeDate(jsonArray.get(2).toString());
                         //鐢熸垚鍟嗗搧妗f
                         //鍟嗗搧缂栧彿
                         Mat mat = matService.selectByMatnr(jsonArray.get(1).toString());
                         if (mat == null) {
                             mat = new Mat();
-                            Tag tag = new Tag();
                             mat.setMatnr(jsonArray.get(1).toString());
                             mat.setMaktx(jsonArray.get(0).toString());
                             mat.setSpecs(jsonArray.get(3).toString());//瑙勬牸
-                            mat.setTagId(20L);
-                            //瀵圭編鍥芥椂闂磋繘琛岃浆鎹�
-                            DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
-                            DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
-                            LocalDateTime dateTime = LocalDateTime.parse(jsonArray.get(2).toString(), formatter);
-                            String format = dateFormat.format(dateTime);
-                            Date date = sdf.parse(format);
+                            mat.setTagId(tag.getId());
                             mat.setCreateTime(date);//鍟嗗搧鍒涘缓鏃堕棿
                             mat.setUpdateTime(new Date());
                             mat.setStatus(1);
                             //鏈�鏂版姄鍙栧晢鍝佹椂闂�
-                            tag.setCreateTime(date);
-                            tagService.update(tag, new EntityWrapper<Tag>().eq("id", 20));
                             if (!matService.insert(mat)) {
-                                throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+//                                throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+                                callApiLogSaveMat(mat,kingDeeUtilType, "鍚屾鏂扮墿鏂欏嚭閿欙紒锛侊紒"+mat, false);
+                                log.info("鍚屾鏂扮墿鏂欏嚭閿欙紒锛侊紒鍙傛暟锛歔{}]銆乕{}]",mat,jsonArray);
                             } else {
-                                log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr());
+                                callApiLogSaveMat(mat,kingDeeUtilType, "鍚屾鏂扮墿鏂欙紒", true);
+//                                log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr());
                             }
+                        }else {
+                            callApiLogSaveMat(mat,kingDeeUtilType, "鍟嗗搧缂栧彿閲嶅:"+mat.getMatnr(), false);
+                            log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}],鍟嗗搧缂栧彿閲嶅锛侊紒锛�", mat.getMatnr());
                         }
+                        tag.setUpdateTime(date);
                     }
+                    tagService.updateById(tag);
                 } else {
                     for (int j = 0; j < data.size(); j++) {
                         JSONArray jsonArray = data.getJSONArray(j);
+                        //鏈�鏂版姄鍙栨椂闂�
+                        Date jsonDate = KingDeeUtil.KingDeeDate(jsonArray.get(2).toString());
+                        docType.setCreateTime(jsonDate);
                         Order order = orderService.selectByNo(jsonArray.get(0).toString());
                         if (Cools.isEmpty(order)) {
                             Date now = new Date();
@@ -209,23 +209,19 @@
                                     now,    // 淇敼鏃堕棿
                                     null    // 澶囨敞
                             );
-                            //瀵圭編鍥芥椂闂磋繘琛岃浆鎹�
-                            DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
-                            DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
-                            LocalDateTime dateTime = LocalDateTime.parse(jsonArray.get(1).toString(), formatter);
-                            String format = dateFormat.format(dateTime);
-                            Date date = sdf.parse(format);
-                            //鏈�鏂版姄鍙栨椂闂�
-                            docType.setCreateTime(date);
-                            docTypeService.updateById(docType);
+
                             if (!orderService.insert(order)) {
-                                throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�");
+                                callApiLogSaveOrder(order,kingDeeUtilType, "鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�"+order, false);
+                                continue;
+//                                throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�");
                             }
                         }
                         //鐗╂枡缂栫爜
                         Mat mat = matService.selectByMatnr(jsonArray.get(2).toString());
                         if (Cools.isEmpty(mat)) {
-                            throw new CoolException(jsonArray.get(2).toString() + "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧");
+                            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)) {
@@ -243,17 +239,12 @@
                         orderDetl.setUpdateTime(new Date());
                         orderDetl.setStatus(1);
                         orderDetl.setQty(0.0D);
-                        DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
-                        DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
-                        LocalDateTime dateTime = LocalDateTime.parse(jsonArray.get(1).toString(), formatter);
-                        String format = dateFormat.format(dateTime);
-                        Date date = sdf.parse(format);
-                        //鏈�鏂版姄鍙栨椂闂�
-                        docType.setCreateTime(date);
                         if (!orderDetlService.insert(orderDetl)) {
-                            throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
+                            callApiLogSaveOrder(order,kingDeeUtilType, "鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�!璁㈠崟鍙凤細"+order.getOrderNo(), false);
+//                            throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
                         }
                     }
+                    docTypeService.updateById(docType);
                 }
             } catch (Exception e) {
                 log.error("fail", e);
@@ -279,4 +270,16 @@
         return SUCCESS;
     }
 
+    public void callApiLogSaveMat(Mat mat, KingDeeUtilType kingDeeUtilType, String response, Boolean bool) {
+        apiLogService.save("鑾峰彇"+kingDeeUtilType.desc, kingDeeUtilType.formId, "null", URL,
+                "鐗╂枡缂栧彿锛�" + mat.getMatnr() + "銆佺墿鏂欏悕绉帮細" + mat.getName() + "銆佺被鍨嬶細" + mat.getTagId$() + "銆佺姸鎬侊細" + mat.getStatus$(),
+                response, bool);
+    }
+
+    public void callApiLogSaveOrder(Order order, KingDeeUtilType kingDeeUtilType, String response, Boolean bool) {
+        apiLogService.save("鑾峰彇"+kingDeeUtilType.desc, kingDeeUtilType.formId, "null", URL,
+                "鍗曟嵁缂栧彿锛�" + order.getId() +  "銆佺姸鎬侊細" + order.getStatus$(),
+                response, bool);
+    }
+
 }
\ No newline at end of file

--
Gitblit v1.9.1