From 55364b8819e0bc7dc7a12de668f904bed16e8faf Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期六, 21 十月 2023 10:41:00 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java |  292 +++++++++++++++++++++++++--------------------------------
 1 files changed, 129 insertions(+), 163 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 da0cc5c..9c619a2 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
@@ -9,10 +9,11 @@
 import com.core.common.SnowflakeIdWorker;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.kingdee.*;
 import com.zy.asrs.service.*;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
+import com.zy.erp.kingdee.entity.param.InFormIdParam;
+import com.zy.erp.kingdee.enums.KingDeeUtilType;
 import com.zy.common.utils.HttpHandler;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -66,42 +67,14 @@
         SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         //鐧诲綍閲戣澏
         ReturnT<String> start = loginAuthenticationHandler.start();
-        for(int i=0;i<14;i++) {
+        for(int i=0;i<docTypeService.selectCount(new EntityWrapper<>())+2;i++) {
             InFormIdParam inFormIdParam = new InFormIdParam();
-            //瀵瑰簲璁㈠崟绫诲瀷ID
-            int docName=0;
-            //鏁伴噺瀛楁
-            String anfme =null;
-            switch (i){
-                //鐗╂枡妗f
-                case 0 : inFormIdParam.setFormId("BD_MATERIAL"); break;
-                //閲囪喘鍏ュ簱
-                case 1 : inFormIdParam.setFormId("STK_InStock");docName=13;anfme ="FRealQty"; break;
-                //閲囪喘閫�鏂�
-                case 2 : inFormIdParam.setFormId("PUR_MRB");docName=21;anfme ="FRMREALQTY"; break;
-                //鐢熶骇棰嗘枡
-                case 3 : inFormIdParam.setFormId("PRD_PickMtrl");docName=22;anfme ="FActualQty"; break;
-                //鐢熶骇閫�鏂�
-                case 4 : inFormIdParam.setFormId("PRD_ReturnMtrl");docName=24;anfme ="FQty"; break;
-                //鐢熶骇琛ユ枡
-                case 5 : inFormIdParam.setFormId("PRD_FeedMtrl");docName=25;anfme ="FActualQty"; break;
-                //鐩存帴璋冩嫧鍗�
-                case 6 : inFormIdParam.setFormId("STK_TransferDirect");docName=26;anfme ="FQty"; break;
-                //鐩樼泩鍗�
-                case 7 : inFormIdParam.setFormId("STK_StockCountGain");docName=28;anfme ="FGainQty"; break;
-                //鐩樹簭鍗�
-                case 8 : inFormIdParam.setFormId("STK_StockCountLoss");docName=29;anfme ="FLossQty"; break;
-                //鍏朵粬鍑哄簱
-                case 9 : inFormIdParam.setFormId("STK_MisDelivery");docName=30;anfme ="FQty"; break;
-                //绠�鍗曠敓浜ч鏂�
-                case 10 : inFormIdParam.setFormId("SP_PickMtrl");docName=31;anfme ="FActualQty"; break;
-                //绠�鍗曠敓浜ч��鏂�
-                case 11 : inFormIdParam.setFormId("SP_ReturnMtrl");docName=32;anfme ="FQty"; break;
-                //閿�鍞嚭搴�
-                case 12 : inFormIdParam.setFormId("SAL_OUTSTOCK");docName=14;anfme ="FRealQty"; break;
-                //閿�鍞��璐�
-                case 13 : inFormIdParam.setFormId("SAL_RETURNSTOCK");docName=33;anfme ="FRealQty"; break;
+            KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get((short)i);
+            if (Cools.isEmpty(kingDeeUtilType)){
+                continue;
             }
+            DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", kingDeeUtilType.desc));
+            inFormIdParam.setFormId(kingDeeUtilType.formId);
             inFormIdParam.setLimit(100);
             inFormIdParam.setStartRow("0");
             Date time=new Date();
@@ -113,7 +86,7 @@
             jsonObject.put("Limit", inFormIdParam.getLimit());
             jsonObject.put("StartRow", inFormIdParam.getStartRow());
             //鐗╂枡妗f鏌ヨ
-            if(i==0){
+            if(inFormIdParam.getFormId().equals("BD_MATERIAL")){
                 Tag tag = tagService.selectById(20);
                 //鏈�鏂版椂闂�
                 time=tag.getCreateTime();
@@ -128,11 +101,10 @@
                 // FDocumentStatus 锛氱墿鏂欑姸鎬�
             }else{
                 //鑾峰彇鏈�鏂版椂闂�
-                DocType docType= docTypeService.selectById(docName);
                 //鍗曟嵁鐘舵��
                 FDocumentStatus="B";
                 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,"+anfme+",FDocumentStatus");
+                jsonObject.put("FieldKeys", "FBillNo,FCreateDate,FMaterialId.FNumber,FMaterialId.FName,FMaterialId.FSpecification,"+kingDeeUtilType.anfme+",FDocumentStatus");
                 // FBillNo :鍗曟嵁缂栧彿锛�
                 // FCreateDate 锛氬崟鎹垱寤烘椂闂达紱
                 // FMaterialId.FNumber : 鐗╂枡缂栫爜锛�
@@ -160,134 +132,128 @@
                         .build()
                         .doPost();
                 JSONArray data = JSON.parseArray(response);
-                if(data.size()>0) {
-                if (data.getJSONArray(0).get(0).toString().length()<20) {
-                        if (i == 0) {
-                            for (int j = 0; j < data.size(); j++) {
-                                JSONArray jsonArray = data.getJSONArray(j);
-                                //鐢熸垚鍟嗗搧妗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.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("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
-                                    } else {
-                                        log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr());
-                                    }
-                                }
-                            }
-                        } else {
-                            for (int j = 0; j < data.size(); j++) {
-                                JSONArray jsonArray = data.getJSONArray(j);
-                                Order order = orderService.selectByNo(jsonArray.get(0).toString());
-                                if (Cools.isEmpty(order)) {
-                                    DocType docType = docTypeService.selectById(docName);
-                                    Date now = new Date();
-                                    // 鍗曟嵁涓绘。
-                                    order = new Order(
-                                            String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
-                                            jsonArray.get(0).toString(),    // 璁㈠崟缂栧彿
-                                            DateUtils.convert(now),    // 鍗曟嵁鏃ユ湡
-                                            docType.getDocId(),    // 鍗曟嵁绫诲瀷
-                                            null,    // 椤圭洰缂栧彿
-                                            null,    //
-                                            null,    // 璋冩嫧椤圭洰缂栧彿
-                                            null,    // 鍒濆绁ㄦ嵁鍙�
-                                            null,    // 绁ㄦ嵁鍙�
-                                            null,    // 瀹㈡埛缂栧彿
-                                            null,    // 瀹㈡埛
-                                            null,    // 鑱旂郴鏂瑰紡
-                                            null,    // 鎿嶄綔浜哄憳
-                                            null,    // 鍚堣閲戦
-                                            null,    // 浼樻儬鐜�
-                                            null,    // 浼樻儬閲戦
-                                            null,    // 閿�鍞垨閲囪喘璐圭敤鍚堣
-                                            null,    // 瀹炰粯閲戦
-                                            null,    // 浠樻绫诲瀷
-                                            null,    // 涓氬姟鍛�
-                                            null,    // 缁撶畻澶╂暟
-                                            null,    // 閭垂鏀粯绫诲瀷
-                                            null,    // 閭垂
-                                            null,    // 浠樻鏃堕棿
-                                            null,    // 鍙戣揣鏃堕棿
-                                            null,    // 鐗╂祦鍚嶇О
-                                            null,    // 鐗╂祦鍗曞彿
-                                            1L,    // 璁㈠崟鐘舵��
-                                            1,    // 鐘舵��
-                                            9527L,    // 娣诲姞浜哄憳
-                                            now,    // 娣诲姞鏃堕棿
-                                            9527L,    // 淇敼浜哄憳
-                                            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.update(docType, new EntityWrapper<DocType>().eq("doc_id", docName));
-                                    if (!orderService.insert(order)) {
-                                        throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�");
-                                    }
-                                }
-                                //鐗╂枡缂栫爜
-                                Mat mat = matService.selectByMatnr(jsonArray.get(2).toString());
-                                if (Cools.isEmpty(mat)) {
-                                    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)) {
-                                    continue;
-                                }
-                                DocType docType = docTypeService.selectById(docName);
-                                OrderDetl orderDetl = new OrderDetl();
-                                orderDetl.sync(mat);
-                                orderDetl.setBatch(null);
-                                orderDetl.setAnfme(Double.parseDouble(jsonArray.get(5).toString()));
-                                orderDetl.setOrderId(order.getId());
-                                orderDetl.setOrderNo(order.getOrderNo());
-                                orderDetl.setCreateBy(9527L);
-                                orderDetl.setCreateTime(new Date());
-                                orderDetl.setUpdateBy(9527L);
-                                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("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
-                                }
+                if(data.size()<=0)  continue;
+                if (data.getJSONArray(0).get(0).toString().length()>=20) continue;
+                if (i == 0) {
+                    for (int j = 0; j < data.size(); j++) {
+                        JSONArray jsonArray = data.getJSONArray(j);
+                        //鐢熸垚鍟嗗搧妗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.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("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+                            } else {
+                                log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr());
                             }
                         }
-                    }else {
                     }
-                }else {
+                } else {
+                    for (int j = 0; j < data.size(); j++) {
+                        JSONArray jsonArray = data.getJSONArray(j);
+                        Order order = orderService.selectByNo(jsonArray.get(0).toString());
+                        if (Cools.isEmpty(order)) {
+                            Date now = new Date();
+                            // 鍗曟嵁涓绘。
+                            order = new Order(
+                                    String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
+                                    jsonArray.get(0).toString(),    // 璁㈠崟缂栧彿
+                                    DateUtils.convert(now),    // 鍗曟嵁鏃ユ湡
+                                    docType.getDocId(),    // 鍗曟嵁绫诲瀷
+                                    null,    // 椤圭洰缂栧彿
+                                    null,    //
+                                    null,    // 璋冩嫧椤圭洰缂栧彿
+                                    null,    // 鍒濆绁ㄦ嵁鍙�
+                                    null,    // 绁ㄦ嵁鍙�
+                                    null,    // 瀹㈡埛缂栧彿
+                                    null,    // 瀹㈡埛
+                                    null,    // 鑱旂郴鏂瑰紡
+                                    null,    // 鎿嶄綔浜哄憳
+                                    null,    // 鍚堣閲戦
+                                    null,    // 浼樻儬鐜�
+                                    null,    // 浼樻儬閲戦
+                                    null,    // 閿�鍞垨閲囪喘璐圭敤鍚堣
+                                    null,    // 瀹炰粯閲戦
+                                    null,    // 浠樻绫诲瀷
+                                    null,    // 涓氬姟鍛�
+                                    null,    // 缁撶畻澶╂暟
+                                    null,    // 閭垂鏀粯绫诲瀷
+                                    null,    // 閭垂
+                                    null,    // 浠樻鏃堕棿
+                                    null,    // 鍙戣揣鏃堕棿
+                                    null,    // 鐗╂祦鍚嶇О
+                                    null,    // 鐗╂祦鍗曞彿
+                                    1L,    // 璁㈠崟鐘舵��
+                                    1,    // 鐘舵��
+                                    9527L,    // 娣诲姞浜哄憳
+                                    now,    // 娣诲姞鏃堕棿
+                                    9527L,    // 淇敼浜哄憳
+                                    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("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�");
+                            }
+                        }
+                        //鐗╂枡缂栫爜
+                        Mat mat = matService.selectByMatnr(jsonArray.get(2).toString());
+                        if (Cools.isEmpty(mat)) {
+                            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)) {
+                            continue;
+                        }
+                        OrderDetl orderDetl = new OrderDetl();
+                        orderDetl.sync(mat);
+                        orderDetl.setBatch(null);
+                        orderDetl.setAnfme(Double.parseDouble(jsonArray.get(5).toString()));
+                        orderDetl.setOrderId(order.getId());
+                        orderDetl.setOrderNo(order.getOrderNo());
+                        orderDetl.setCreateBy(9527L);
+                        orderDetl.setCreateTime(new Date());
+                        orderDetl.setUpdateBy(9527L);
+                        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("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
+                        }
+                    }
                 }
             } catch (Exception e) {
                 log.error("fail", e);

--
Gitblit v1.9.1