From 00d83fc72c84383c506e8a8c0584d1292cafc260 Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期一, 05 八月 2024 08:07:22 +0800
Subject: [PATCH] 完善

---
 src/main/java/com/zy/asrs/controller/MatController.java                 |  130 ++++++++++++++++++-------
 src/main/resources/application.yml                                      |    4 
 src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java |  134 +++++++++++++++++++-------
 3 files changed, 191 insertions(+), 77 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MatController.java b/src/main/java/com/zy/asrs/controller/MatController.java
index 8719ef1..8ca5caf 100644
--- a/src/main/java/com/zy/asrs/controller/MatController.java
+++ b/src/main/java/com/zy/asrs/controller/MatController.java
@@ -41,6 +41,7 @@
 import java.io.IOException;
 import java.net.URLEncoder;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
@@ -164,10 +165,7 @@
 
     @RequestMapping(value = "/mat/KingDeeadd/auth")
     @ManagerAuth
-    public R KingDeeadd(Mat mat) {
-        if (null != matService.selectByMatnr(mat.getMatnr())) {
-            return R.error("缂栧彿宸插瓨鍦�");
-        }
+    public R KingDeeadd() {
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         //鐧诲綍閲戣澏
         ReturnT<String> start = loginAuthenticationHandler.start();
@@ -177,14 +175,28 @@
         inFormIdParam.setLimit(100);
         inFormIdParam.setStartRow("0");
         String FDocumentStatus = "C";
-        String FNumber=mat.getMatnr();
+
+        // 鑾峰彇褰撳墠鏃ユ湡
+        LocalDate currentDate = LocalDate.now();
+        // 鑾峰彇鍓嶄竴涓湀鐨勫悓涓�澶�
+        LocalDate previousMonthDate = currentDate.minusMonths(1);
+
+        // 鏍煎紡鍖栨棩鏈熶负 "yyyyMMdd" 鏍煎紡
+        DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        String formattedDate2 = previousMonthDate.format(formatter1);
+
         //鏉′欢鍜岄渶瑕佽幏寰楃殑缁撴灉鎷兼帴
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("FormId", inFormIdParam.getFormId());
         jsonObject.put("Limit", inFormIdParam.getLimit());
         jsonObject.put("StartRow", inFormIdParam.getStartRow());
-        jsonObject.put("FilterString", "FDocumentStatus='" + FDocumentStatus +"' and FNumber='"+FNumber+"' and FUseOrgId .FNumber='201'");
-        jsonObject.put("FieldKeys", "FName,FNumber,FCreateDate,FSpecification,FDocumentStatus");
+        jsonObject.put("FilterString", "FCreateDate>'" + formattedDate2 + "' and FDocumentStatus='" + FDocumentStatus + "' and FUseOrgId .FNumber='201'");
+        jsonObject.put("FieldKeys", "FName,FNumber,FCreateDate,FSpecification,FDocumentStatus,FTuhao");
+        // FName : 鐗╂枡鍚嶇О 锛�
+        // FNumber 锛氱墿鏂欑紪鍙凤紱
+        // FCreateDate 锛氱墿鏂欏垱寤烘椂闂达紱
+        // FSpecification 锛氱墿鏂欒鏍硷紱
+        // FDocumentStatus 锛氱墿鏂欑姸鎬�
         JSONObject jsonObject1 = new JSONObject();
         jsonObject1.put("data", jsonObject);
         String add = jsonObject1.toJSONString();
@@ -203,40 +215,80 @@
                     .build()
                     .doPost();
             JSONArray data = JSON.parseArray(response);
-            if (data.getJSONArray(0).get(0).toString().length()<20) {
-                success = true;
-            JSONArray jsonArray = data.getJSONArray(0);
-            //鐢熸垚鍟嗗搧妗f
-            //鍟嗗搧缂栧彿
-            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());
+            int i = 0;
+            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.setModel(jsonArray.get(5).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 {
-                throw new CoolException("娌℃湁鎵惧埌鎸囧畾鐗╂枡妗f锛岃鑱旂郴绠$悊鍛�");
-            }
+
+//            if (data.getJSONArray(0).get(0).toString().length() < 20) {
+//                success = true;
+//                JSONArray jsonArray = data.getJSONArray(0);
+//                //鐢熸垚鍟嗗搧妗f
+//                //鍟嗗搧缂栧彿
+//                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 {
+//                throw new CoolException("娌℃湁鎵惧埌鎸囧畾鐗╂枡妗f锛岃鑱旂郴绠$悊鍛�");
+//            }
         } catch (Exception e) {
             log.error("fail", e);
 //            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
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 945997c..1002b2e 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
@@ -26,6 +26,7 @@
 
 import java.lang.reflect.Field;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.Date;
@@ -70,49 +71,103 @@
 
     @Transactional
     public synchronized ReturnT<String> start() {
-        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        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 < 14; i++) {
             InFormIdParam inFormIdParam = new InFormIdParam();
             //瀵瑰簲璁㈠崟绫诲瀷ID
-            int docName=0;
+            int docName = 0;
             //鏁伴噺瀛楁
-            String anfme =null;
-            switch (i){
+            String anfme = null;
+            switch (i) {
                 //鐗╂枡妗f
-                case 0 : inFormIdParam.setFormId("BD_MATERIAL"); break;
+                case 0:
+                    inFormIdParam.setFormId("BD_MATERIAL");
+                    break;
                 //閲囪喘鍏ュ簱
-                case 1 : inFormIdParam.setFormId("STK_InStock");docName=13;anfme ="FRealQty"; break;
+                case 1:
+                    inFormIdParam.setFormId("STK_InStock");
+                    docName = 13;
+                    anfme = "FRealQty";
+                    break;
                 //閲囪喘閫�鏂�
-                case 2 : inFormIdParam.setFormId("PUR_MRB");docName=21;anfme ="FRMREALQTY"; break;
+                case 2:
+                    inFormIdParam.setFormId("PUR_MRB");
+                    docName = 21;
+                    anfme = "FRMREALQTY";
+                    break;
                 //鐢熶骇棰嗘枡
-                case 3 : inFormIdParam.setFormId("PRD_PickMtrl");docName=22;anfme ="FActualQty"; break;
+                case 3:
+                    inFormIdParam.setFormId("PRD_PickMtrl");
+                    docName = 22;
+                    anfme = "FActualQty";
+                    break;
                 //鐢熶骇閫�鏂�
-                case 4 : inFormIdParam.setFormId("PRD_ReturnMtrl");docName=24;anfme ="FQty"; break;
+                case 4:
+                    inFormIdParam.setFormId("PRD_ReturnMtrl");
+                    docName = 24;
+                    anfme = "FQty";
+                    break;
                 //鐢熶骇琛ユ枡
-                case 5 : inFormIdParam.setFormId("PRD_FeedMtrl");docName=25;anfme ="FActualQty"; break;
+                case 5:
+                    inFormIdParam.setFormId("PRD_FeedMtrl");
+                    docName = 25;
+                    anfme = "FActualQty";
+                    break;
                 //鐩存帴璋冩嫧鍗�
-                case 6 : inFormIdParam.setFormId("STK_TransferDirect");docName=26;anfme ="FQty"; break;
+                case 6:
+                    inFormIdParam.setFormId("STK_TransferDirect");
+                    docName = 26;
+                    anfme = "FQty";
+                    break;
                 //鐩樼泩鍗�
-                case 7 : inFormIdParam.setFormId("STK_StockCountGain");docName=28;anfme ="FGainQty"; break;
+                case 7:
+                    inFormIdParam.setFormId("STK_StockCountGain");
+                    docName = 28;
+                    anfme = "FGainQty";
+                    break;
                 //鐩樹簭鍗�
-                case 8 : inFormIdParam.setFormId("STK_StockCountLoss");docName=29;anfme ="FLossQty"; break;
+                case 8:
+                    inFormIdParam.setFormId("STK_StockCountLoss");
+                    docName = 29;
+                    anfme = "FLossQty";
+                    break;
                 //鍏朵粬鍑哄簱
-                case 9 : inFormIdParam.setFormId("STK_MisDelivery");docName=30;anfme ="FQty"; break;
+                case 9:
+                    inFormIdParam.setFormId("STK_MisDelivery");
+                    docName = 30;
+                    anfme = "FQty";
+                    break;
                 //绠�鍗曠敓浜ч鏂�
-                case 10 : inFormIdParam.setFormId("SP_PickMtrl");docName=31;anfme ="FActualQty"; break;
+                case 10:
+                    inFormIdParam.setFormId("SP_PickMtrl");
+                    docName = 31;
+                    anfme = "FActualQty";
+                    break;
                 //绠�鍗曠敓浜ч��鏂�
-                case 11 : inFormIdParam.setFormId("SP_ReturnMtrl");docName=32;anfme ="FQty"; break;
+                case 11:
+                    inFormIdParam.setFormId("SP_ReturnMtrl");
+                    docName = 32;
+                    anfme = "FQty";
+                    break;
                 //閿�鍞嚭搴�
-                case 12 : inFormIdParam.setFormId("SAL_OUTSTOCK");docName=14;anfme ="FRealQty"; break;
+                case 12:
+                    inFormIdParam.setFormId("SAL_OUTSTOCK");
+                    docName = 14;
+                    anfme = "FRealQty";
+                    break;
                 //閿�鍞��璐�
-                case 13 : inFormIdParam.setFormId("SAL_RETURNSTOCK");docName=33;anfme ="FRealQty"; break;
+                case 13:
+                    inFormIdParam.setFormId("SAL_RETURNSTOCK");
+                    docName = 33;
+                    anfme = "FRealQty";
+                    break;
             }
             inFormIdParam.setLimit(100);
             inFormIdParam.setStartRow("0");
-            Date time=new Date();
-            String FDocumentStatus=null;
+            Date time = new Date();
+            String FDocumentStatus = null;
 
             //鏉′欢鍜岄渶瑕佽幏寰楃殑缁撴灉鎷兼帴
             JSONObject jsonObject = new JSONObject();
@@ -120,26 +175,33 @@
             jsonObject.put("Limit", inFormIdParam.getLimit());
             jsonObject.put("StartRow", inFormIdParam.getStartRow());
             //鐗╂枡妗f鏌ヨ
-            if(i==0){
-                Tag tag = tagService.selectById(20);
-                //鏈�鏂版椂闂�
-                time=tag.getCreateTime();
+            if (i == 0) {
+                // 鑾峰彇褰撳墠鏃ユ湡
+                LocalDate currentDate = LocalDate.now();
+                // 鑾峰彇鍓嶄竴涓湀鐨勫悓涓�澶�
+                LocalDate previousMonthDate = currentDate.minusMonths(1);
+
+                // 鏍煎紡鍖栨棩鏈熶负 "yyyyMMdd" 鏍煎紡
+                DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+                String formattedDate2 = previousMonthDate.format(formatter);
+
+
                 //鐗╂枡鐘舵�� FUseOrgId .FNumber
-                FDocumentStatus="C";
-                jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(time)+"' and FDocumentStatus='"+FDocumentStatus+"' and FUseOrgId .FNumber='201'");
+                FDocumentStatus = "C";
+                jsonObject.put("FilterString", "FCreateDate>'" + formattedDate2 + "' and FDocumentStatus='" + FDocumentStatus + "' and FUseOrgId .FNumber='201'");
                 jsonObject.put("FieldKeys", "FName,FNumber,FCreateDate,FSpecification,FDocumentStatus,FTuhao");
                 // FName : 鐗╂枡鍚嶇О 锛�
                 // FNumber 锛氱墿鏂欑紪鍙凤紱
                 // FCreateDate 锛氱墿鏂欏垱寤烘椂闂达紱
                 // FSpecification 锛氱墿鏂欒鏍硷紱
                 // FDocumentStatus 锛氱墿鏂欑姸鎬�
-            }else{
+            } else {
                 //鑾峰彇鏈�鏂版椂闂�
-                DocType docType= docTypeService.selectById(docName);
+                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");
+                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");
                 // FBillNo :鍗曟嵁缂栧彿锛�
                 // FCreateDate 锛氬崟鎹垱寤烘椂闂达紱
                 // FMaterialId.FNumber : 鐗╂枡缂栫爜锛�
@@ -167,8 +229,8 @@
                         .build()
                         .doPost();
                 JSONArray data = JSON.parseArray(response);
-                if(data.size()>0) {
-                if (data.getJSONArray(0).get(0).toString().length()<20) {
+                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);
@@ -293,9 +355,9 @@
                                 }
                             }
                         }
-                    }else {
+                    } else {
                     }
-                }else {
+                } else {
                 }
             } catch (Exception e) {
                 log.error("fail", e);
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index e001288..4ca00bd 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -10,7 +10,7 @@
     enabled: false
   datasource:
     driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
-    url: jdbc:sqlserver://10.10.10.215:1433;databasename=tzhtasrs
+    url: jdbc:sqlserver://127.0.0.1:1433;databasename=tzhtasrs
     username: sa
     password: sa@123
   mvc:
@@ -54,7 +54,7 @@
 erp:
   #鍦板潃
   address:
-    URL: http://ht01.wlgear.com:16001
+    URL: http://192.168.3.102:16001
     #鐧诲綍鍦板潃
     loginaddress: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc
     #鍗曟嵁锛屽晢鍝佹。妗堝湴鍧�

--
Gitblit v1.9.1