From 9905847295d326134d50fe7f005522cdfafe2763 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期五, 07 十一月 2025 16:52:27 +0800
Subject: [PATCH] #erp商品档案同步

---
 /dev/null                                                                      |   38 ----
 src/main/java/com/zy/asrs/task/kingdee/LoginAuthenticationScheduler.java       |    3 
 src/main/java/com/zy/asrs/task/kingdee/ReviewOrderSyncScheduler.java           |    2 
 src/main/java/com/zy/erp/kingdee/entity/param/MatLoadParam.java                |   59 +++++++
 src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java           |    2 
 src/main/java/com/zy/asrs/task/kingdee/handler/LoginAuthenticationHandler.java |  129 +++++++++-------
 src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java                    |   16 +
 src/main/java/com/zy/common/service/CommonService.java                         |    8 
 src/main/java/com/zy/common/CodeBuilder.java                                   |    2 
 src/main/resources/application.yml                                             |   27 +-
 src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java        |  177 +++++++++++++++-------
 src/main/java/com/zy/erp/kingdee/entity/param/LoginParam.java                  |   14 
 12 files changed, 291 insertions(+), 186 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/kingdee/LoginAuthenticationScheduler.java b/src/main/java/com/zy/asrs/task/kingdee/LoginAuthenticationScheduler.java
index c6befac..4ec5fac 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/LoginAuthenticationScheduler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/LoginAuthenticationScheduler.java
@@ -6,6 +6,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 @Slf4j
@@ -17,7 +18,7 @@
     @Value("${erp.switch.LoginAuthenticationSwitch}")
     private boolean LoginAuthenticationSwitch;
 
-    //@Scheduled(cron = "0/3 * * * * ? ")
+//    @Scheduled(cron = "0/3 * * * * ? ")
     void login(){
         if(!LoginAuthenticationSwitch){
             return;
diff --git a/src/main/java/com/zy/asrs/task/kingdee/ReviewOrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/kingdee/ReviewOrderSyncScheduler.java
index a3c9e16..4bf112b 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/ReviewOrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/ReviewOrderSyncScheduler.java
@@ -32,7 +32,7 @@
     @Value("${erp.switch.ReviewOrderSwitch}")
     private boolean ReviewOrderSwitch;
 
-    @Scheduled(cron = "0/3 * * * * ? ")
+//    @Scheduled(cron = "0/3 * * * * ? ")
     @Async("orderThreadPool")
     public void completeAndReport(){
         if(!ReviewOrderSwitch){
diff --git a/src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java
index e35710e..64118e7 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java
@@ -34,7 +34,7 @@
     @Value("${erp.switch.ReviewOrderSwitch}")
     private boolean ReviewOrderSwitch;
 
-    @Scheduled(cron = "0/3 * * * * ? ")
+//    @Scheduled(cron = "0/3 * * * * ? ")
     @Async("orderThreadPool")
     public void completeAndReport(){
         if(!ReviewOrderSwitch){
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 4a551bc..2392f5d 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
@@ -10,10 +10,11 @@
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.service.*;
+import com.zy.asrs.service.impl.ErpSecretServiceImpl;
 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.entity.param.MatLoadParam;
 import com.zy.erp.kingdee.enums.KingDeeUtilType;
 import com.zy.common.utils.HttpHandler;
 import com.zy.erp.kingdee.utils.KingDeeUtil;
@@ -23,7 +24,9 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -65,45 +68,48 @@
 
     @Autowired
     private LocOwnerService locOwnerService;
-
+    @Autowired
+    private ErpSecretServiceImpl erpSecretService;
+    @Value("${erp.login.accountId}")
+    private String accountId;
+    @Value("${erp.login.xAcfwIdentity}")
+    private String xAcfwIdentity;
     @Transactional
     public synchronized ReturnT<String> start() {
-        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        //鐧诲綍閲戣澏
-        ReturnT<String> start = loginAuthenticationHandler.start();
+        SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd");
+        //璇诲彇token
+        ErpSecret erpSecret = erpSecretService.selectOne(new EntityWrapper<ErpSecret>().eq("account_id", accountId));
+
+
         for(KingDeeUtilType kingDeeUtilType : KingDeeUtilType.values()) {
-            InFormIdParam inFormIdParam = new InFormIdParam();
+            MatLoadParam matLoadParam = new MatLoadParam();
             DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", kingDeeUtilType.desc));
             if (Cools.isEmpty(docType) && !kingDeeUtilType.formId.equals("BD_MATERIAL")){
                 docType = docTypeService.selectOrAdd(kingDeeUtilType.desc, kingDeeUtilType.pakIn.equals(1));
             }
-            inFormIdParam.setFormId(kingDeeUtilType.formId);
-            inFormIdParam.setLimit(100);
-            inFormIdParam.setStartRow("0");
             String FDocumentStatus=null;
-
             //鏉′欢鍜岄渶瑕佽幏寰楃殑缁撴灉鎷兼帴
             JSONObject jsonObject = new JSONObject();
-            jsonObject.put("FormId", inFormIdParam.getFormId());
-            jsonObject.put("Limit", inFormIdParam.getLimit());
-            jsonObject.put("StartRow", inFormIdParam.getStartRow());
             //鐗╂枡妗f鏌ヨ
             if(kingDeeUtilType.formId.equals("BD_MATERIAL")){
                 Tag tag = tagService.selectByName("鍏ㄩ儴", 1);
-                //鐗╂枡鐘舵�� FUseOrgId .FNumber
-                FDocumentStatus="C";
-                jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(tag.getUpdateTime())+"' and FDocumentStatus='"+FDocumentStatus+"' and FUseOrgId .FNumber='100'");
-                jsonObject.put("FieldKeys", "FName,FNumber,FCreateDate,FSpecification,FDocumentStatus");
-                // FName : 鐗╂枡鍚嶇О 锛�
-                // FNumber 锛氱墿鏂欑紪鍙凤紱
-                // FCreateDate 锛氱墿鏂欏垱寤烘椂闂达紱
-                // FSpecification 锛氱墿鏂欒鏍硷紱
-                // FDocumentStatus 锛氱墿鏂欑姸鎬�
+                jsonObject.put("id", null);//id
+                jsonObject.put("number", null);//缂栫爜
+                jsonObject.put("createorg_number", null);//鍒涘缓缁勭粐
+                jsonObject.put("start_createtime", "2025-01-01 00:00:00");//鍒涘缓璧峰
+                jsonObject.put("end_createtime", sdf1.format(new Date()));//鍒涘缓鎴
+                jsonObject.put("start_modifytime", "2025-01-01 00:00:00");//鏇存柊璧峰
+                jsonObject.put("end_modifytime", sdf1.format(new Date()));//鏇存柊鎴
+                jsonObject.put("start_approvedate", "2025-01-01");//瀹℃牳璧峰
+                jsonObject.put("end_approvedate", sdf2.format(new Date()));//瀹℃牳鎴
+                jsonObject.put("status", Arrays.asList("B", "C"));//鏁版嵁鐘舵�� [A:鏆傚瓨, B:宸叉彁浜�, C:宸插鏍竇
+
             }else{
                 //鑾峰彇鏈�鏂版椂闂�
                 //鍗曟嵁鐘舵��
                 FDocumentStatus="B";
-                jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(docType.getCreateTime())+"'"+" and FStockId.Fname='绔嬪簱'"+" and FDocumentStatus='"+FDocumentStatus+"'");
+                jsonObject.put("FilterString", "FCreateDate>'"+sdf1.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 锛氬崟鎹垱寤烘椂闂达紱
@@ -116,14 +122,18 @@
             }
             JSONObject jsonObject1 = new JSONObject();
             jsonObject1.put("data", jsonObject);
+            jsonObject1.put("pageSize", 10);
+            jsonObject1.put("pageNo", 1);
             String add = jsonObject1.toJSONString();
+
             //涓婃姤
             String response = "";
             boolean success = false;
             try {
                 //鑾峰彇Cookie鍊�
                 HashMap<String, Object> headers = new HashMap<>();
-                headers.put("Cookie", start.getContent());
+                headers.put("accesstoken", erpSecret.getAccessToken());
+                headers.put("x-acgw-identity", xAcfwIdentity);  // 鑷畾涔夎姹傚ご
                 response = new HttpHandler.Builder()
                         .setHeaders(headers)
                         .setUri(URL)
@@ -131,45 +141,98 @@
                         .setJson(add)
                         .build()
                         .doPost();
-                JSONArray data = JSON.parseArray(response);
+                JSONObject jsonResponse = JSON.parseObject(response);
+                if(jsonResponse.getString("errorCode").equals("401")){
+                    log.error("妫�绱㈠け璐ラ敊璇俊鎭細{}", jsonResponse.getString("message"));
+                    loginAuthenticationHandler.start();
+                    continue;
+                }
+                JSONArray data = jsonResponse.getJSONObject("data").getJSONArray("rows");
                 if(data.size()<=0)  continue;
-                if (data.getJSONArray(0).get(0).toString().length()>=20) continue;
-                if (kingDeeUtilType.formId.equals("BD_MATERIAL")) {//鐗╂枡妗f
+                //鍟嗗搧妗f鍚屾
+                if (kingDeeUtilType.formId.equals("BD_MATERIAL")) {
                     Tag tag = tagService.selectByName("鍏ㄩ儴", 1);
-                    for (int j = 0; j < data.size(); j++) {
-                        JSONArray jsonArray = data.getJSONArray(j);
-                        //瀵圭編鍥芥椂闂磋繘琛岃浆鎹�
-                        Date jsonDate = KingDeeUtil.KingDeeDate(jsonArray.get(2).toString());
-                        //鐢熸垚鍟嗗搧妗f
-                        //鍟嗗搧缂栧彿
-                        Mat mat = matService.selectByMatnr(jsonArray.get(1).toString());
-                        if (mat == null) {
-                            mat = new Mat();
-                            mat.setMatnr(jsonArray.get(1).toString());
-                            mat.setMaktx(jsonArray.get(0).toString());
-                            mat.setSpecs(jsonArray.get(3).toString());//瑙勬牸
-                            mat.setTagId(tag.getId());
-                            mat.setCreateTime(jsonDate);//鍟嗗搧鍒涘缓鏃堕棿
-                            mat.setUpdateTime(new Date());
-                            mat.setStatus(1);
-                            //鏈�鏂版姄鍙栧晢鍝佹椂闂�
-                            if (!matService.insert(mat)) {
-//                                throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
-                                callApiLogSaveMat(mat,kingDeeUtilType, "鍚屾鏂扮墿鏂欏嚭閿欙紒锛侊紒"+mat, false);
-                                log.info("鍚屾鏂扮墿鏂欏嚭閿欙紒锛侊紒鍙傛暟锛歔{}]銆乕{}]",mat,jsonArray);
+
+                    // 澶勭悊鍒嗛〉锛氭牴鎹繑鍥炵殑totalCount鍜宲ageSize璁$畻椤垫暟
+                    int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
+                    int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
+                    int totalPages = (int) Math.ceil((double) totalCount / pageSize);
+
+                    for (int page = 1; page <= totalPages; page++) {
+                        jsonObject1.put("pageNo", page);
+                        add = jsonObject1.toJSONString();
+                        // 閲嶆柊鍙戣捣璇锋眰浠ヨ幏鍙栬椤电殑鏁版嵁
+                        response = new HttpHandler.Builder()
+                                .setHeaders(headers)
+                                .setUri(URL)
+                                .setPath(inaddress)
+                                .setJson(add)
+                                .build()
+                                .doPost();
+
+                        jsonResponse = JSON.parseObject(response);
+                        data = jsonResponse.getJSONObject("data").getJSONArray("rows");
+                        for (int j = 0; j < data.size(); j++) {
+                            JSONObject jsonObjectNew = data.getJSONObject(j);
+                            Date modifyTime = sdf1.parse(jsonObjectNew.get("modifytime").toString());
+                            String matnr = jsonObjectNew.get("number").toString();
+                            String name = jsonObjectNew.get("name").toString();
+                            String createtime = jsonObjectNew.get("createtime").toString();
+                            Double grossweight = jsonObjectNew.get("grossweight") != null ? new BigDecimal(jsonObjectNew.get("grossweight").toString()).doubleValue() : 0.0;
+                            Double height = jsonObjectNew.get("height") != null ? new BigDecimal(jsonObjectNew.get("height").toString()).doubleValue() : 0.0;
+                            Double width = jsonObjectNew.get("width") != null ? new BigDecimal(jsonObjectNew.get("width").toString()).doubleValue() : 0.0;
+                            Double length = jsonObjectNew.get("length") != null ? new BigDecimal(jsonObjectNew.get("length").toString()).doubleValue() : 0.0;
+
+                            // 鐢熸垚鍟嗗搧妗f
+                            Mat mat = matService.selectByMatnr(matnr);
+                            if (mat == null) {
+                                mat = new Mat();
+                                mat.setMatnr(matnr);
+                                mat.setMaktx(name);
+                                mat.setTagId(tag.getId());
+                                mat.setWeight(grossweight);
+                                mat.setManLength(length);
+                                mat.setHeight(height);
+                                mat.setWidth(width);
+                                mat.setCreateTime(sdf1.parse(createtime));
+                                mat.setUpdateTime(modifyTime);
+                                mat.setStatus(1);
+                                if (!matService.insert(mat)) {
+                                    callApiLogSaveMat(mat, kingDeeUtilType, "鍚屾鏂扮墿鏂欏嚭閿欙紒" + mat, false);
+                                    log.info("鍚屾鏂扮墿鏂欏嚭閿欙紒鍙傛暟锛歔{}]銆乕{}]", mat, jsonObjectNew);
+                                } else {
+                                    callApiLogSaveMat(mat, kingDeeUtilType, "鍚屾鏂扮墿鏂欐垚鍔燂紒", true);
+                                }
                             } else {
-                                callApiLogSaveMat(mat,kingDeeUtilType, "鍚屾鏂扮墿鏂欙紒", true);
-//                                log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr());
-                            }
-                        }else {
-                            if (!jsonDate.equals(tag.getUpdateTime())){
-                                callApiLogSaveMat(mat,kingDeeUtilType, "鍟嗗搧缂栧彿閲嶅:"+mat.getMatnr(), false);
-                                log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}],鍟嗗搧缂栧彿閲嶅锛侊紒锛�", mat.getMatnr());
+                                boolean isUpdated = false;
+                                if (mat.getUpdateTime().compareTo(modifyTime) != 0) {
+                                    // 鏇存柊瀛楁
+                                    if (!mat.getMaktx().equals(name)) mat.setMaktx(name);
+                                    if (mat.getWeight().compareTo(grossweight) != 0) mat.setWeight(grossweight);
+                                    if (mat.getManLength().compareTo(length) != 0) mat.setManLength(length);
+                                    if (mat.getHeight().compareTo(height) != 0) mat.setHeight(height);
+                                    if (mat.getWidth().compareTo(width) != 0) mat.setWidth(width);
+                                    if (mat.getCreateTime().compareTo(sdf1.parse(createtime)) != 0)
+                                        mat.setCreateTime(sdf1.parse(createtime));
+                                    mat.setUpdateTime(modifyTime);
+                                    isUpdated = true;
+                                }
+                                // 鎵ц鏇存柊鎿嶄綔
+                                if (isUpdated) {
+                                    mat.setUpdateTime(new Date());
+                                    if (!matService.updateById(mat)) {
+                                        callApiLogSaveMat(mat, kingDeeUtilType, "鏇存柊鐗╂枡鍑洪敊锛�" + mat, false);
+                                        log.info("鏇存柊鐗╂枡[鍟嗗搧缂栧彿锛歿}], 鏇存柊澶辫触锛�", mat.getMatnr());
+                                    } else {
+                                        callApiLogSaveMat(mat, kingDeeUtilType, "鏇存柊鐗╂枡鎴愬姛锛�", true);
+                                        log.info("鏇存柊鐗╂枡[鍟嗗搧缂栧彿锛歿}]", mat.getMatnr());
+                                    }
+                                }
                             }
                         }
-                        tag.setUpdateTime(jsonDate);
                     }
-                    tagService.updateById(tag);
+                }else if(kingDeeUtilType.formId.equals("BD_RRGANIZATION")){
+
                 } else {
                     for (int j = 0; j < data.size(); j++) {
                         JSONArray jsonArray = data.getJSONArray(j);
diff --git a/src/main/java/com/zy/asrs/task/kingdee/handler/LoginAuthenticationHandler.java b/src/main/java/com/zy/asrs/task/kingdee/handler/LoginAuthenticationHandler.java
index 3530b48..74a5da9 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/LoginAuthenticationHandler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/handler/LoginAuthenticationHandler.java
@@ -3,10 +3,13 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.core.exception.CoolException;
-import com.zy.asrs.entity.Order;
+import com.zy.asrs.entity.ErpSecret;
+import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.service.impl.ErpSecretServiceImpl;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
 import com.zy.common.utils.HttpHandler;
@@ -18,6 +21,8 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.HashMap;
+import java.util.Map;
 import java.util.Set;
 
 @Service
@@ -33,24 +38,27 @@
     //鐧诲綍鍦板潃
     private String loginaddress;
 
-    @Value("${erp.login.acctID}")
-    //璐﹀彿ID
-    private String acctID;
+    @Value("${erp.login.clientId}")
+    //WMS绔疘D
+    private String clientId;
+
+    @Value("${erp.login.clientSecret}")
+    //璐﹀彿瀵嗛挜
+    private String clientSecret;
 
     @Value("${erp.login.username}")
-    //璐﹀彿
     private String username;
 
-    @Value("${erp.login.password}")
-    //瀵嗙爜
-    private String password;
+    @Value("${erp.login.accountId}")
+    private String accountId;
 
-    @Value("${erp.login.lcid}")
-    //
-    private Integer lcid;
+    @Value("${erp.login.xAcfwIdentity}")
+    private String xAcfwIdentity;
 
     @Autowired
     private ApiLogService apiLogService;
+    @Autowired
+    private ErpSecretServiceImpl erpSecretService;
 
     /**
      * 45鍒嗛挓鐧诲綍涓�娆¢噾铦剁郴缁�
@@ -58,57 +66,68 @@
      */
     @Transactional
     public synchronized ReturnT<String> start() {
+        ErpSecret erpSecret = erpSecretService.selectOne(new EntityWrapper<ErpSecret>().eq("account_id", accountId));
+        String time = String.valueOf(System.currentTimeMillis());
+        // 鍒涘缓璇锋眰鍙傛暟
+        JSONObject requestPayload = new JSONObject();
+        requestPayload.put("client_id", clientId);
+        requestPayload.put("client_secret", clientSecret);
+        requestPayload.put("username", username);
+        requestPayload.put("accountId", accountId);
+        requestPayload.put("nonce", erpSecret.getRefreshToken());//鍒锋柊token
+        requestPayload.put("timestamp", time);
+        requestPayload.put("language", "zh_CN");
 
-        LoginParam loginParam =new LoginParam();
-        loginParam.setAcctID(acctID);
-        loginParam.setUsername(username);
-        loginParam.setPassword(password);
-        loginParam.setLcid(lcid);
-        //涓婃姤
+        // 鍒涘缓璇锋眰澶�
+        Map<String, Object> headers = new HashMap<>();
+        headers.put("x-acgw-identity", xAcfwIdentity);  // 鑷畾涔夎姹傚ご
+        headers.put("Content-Type", "application/json;charset=UTF-8");
         String response = "";
-        String cookie = "";
         boolean success = false;
+        String accessToken = "";
         try {
+            // 浣跨敤 HttpHandler 鍙戣捣璇锋眰
             response = new HttpHandler.Builder()
                     .setUri(URL)
-                    .setPath(loginaddress)
-                    .setJson(JSON.toJSONString(loginParam))
+                    .setPath(loginaddress)  // 鐧诲綍鎺ュ彛璺緞
+                    .setJson(requestPayload.toJSONString())  // 璇锋眰浣�
+                    .setHeaders(headers)  // 璁剧疆璇锋眰澶�
                     .build()
-                    .doPost();
-            JSONObject jsonObject = JSON.parseObject(response);
-            Object sessionId = findValueByKey(JSON.parseObject(response), "SessionId");
-            cookie="ASP.NET_SessionId="+sessionId+";"+"kdservice-sessionid="+jsonObject.getString("KDSVCSessionId");
-            if (Cools.isEmpty(jsonObject.getString("Message"))) {
+                    .doPost();  // 鎵цPOST璇锋眰
+            // 瑙f瀽杩斿洖缁撴灉
+            JSONObject jsonResponse = JSON.parseObject(response);
+            // 鍒ゆ柇璇锋眰鏄惁鎴愬姛
+            if (jsonResponse.getBooleanValue("status")) {
+                accessToken = jsonResponse.getJSONObject("data").getString("access_token");
+                String refreshToken = jsonResponse.getJSONObject("data").getString("refresh_token");
                 success = true;
+                erpSecret.setRefreshToken(refreshToken);
+                erpSecret.setAccessToken(accessToken);
+                if(erpSecretService.saveErpSecret(erpSecret)){
+                    log.info("鑾峰彇鏇存柊Token鎴愬姛: {}", accessToken);
+                }
             } else {
-                callApiLogSaveLog(JSON.toJSONString(loginParam),false);
-                log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", URL+loginaddress, JSON.toJSONString(loginParam), response);
-//                throw new CoolException("鐧诲綍閲戣澏澶辫触");
+                log.error("鑾峰彇Token澶辫触锛岄敊璇俊鎭細{}", jsonResponse.getString("message"));
+                callApiLogSaveLog(requestPayload.toJSONString(), false);
             }
+
         } catch (Exception e) {
-            log.error("fail", e);
-            callApiLogSaveLog(JSON.toJSONString(loginParam),false);
-            log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", URL+loginaddress, JSON.toJSONString(loginParam), response);
-//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            log.error("鑾峰彇Token澶辫触锛屽紓甯镐俊鎭細", e);
+            callApiLogSaveLog(requestPayload.toJSONString(), false);
             return FAIL.setMsg(e.getMessage());
-        } finally {
-//            try {
-//                // 淇濆瓨鎺ュ彛鏃ュ織
-//                apiLogService.save(
-//                        "鐧诲綍閲戣澏",
-//                        URL + loginaddress,
-//                        null,
-//                        "127.0.0.1",
-//                        JSON.toJSONString(loginParam),
-//                        response,
-//                        success
-//                );
-//            } catch (Exception e) { log.error("", e); }
         }
-        return SUCCESS.setContent(cookie);
+
+        if (!success) {
+            return FAIL.setMsg("Token鑾峰彇澶辫触");
+        }
+
+        return SUCCESS.setContent(accessToken);
     }
 
 
+    /**
+     * 閫掑綊鏌ユ壘JSON涓殑鎸囧畾瀛楁
+     */
     public static Object findValueByKey(JSONObject json, String key) {
         Set<String> keySet = json.keySet();
         for (String k : keySet) {
@@ -117,15 +136,15 @@
                 return v;
             } else if (v instanceof JSONArray) {
                 int size = ((JSONArray) v).size();
-                for (int i = 0; i <= size - 1; i++) {
+                for (int i = 0; i < size; i++) {
                     Object result = findValueByKey((JSONObject) ((JSONArray) v).get(i), key);
                     if (result != null){
                         return result;
                     }
                 }
-            } else if (v instanceof JSONObject){
+            } else if (v instanceof JSONObject) {
                 Object result = findValueByKey((JSONObject) v, key);
-                if (result != null){
+                if (result != null) {
                     return result;
                 }
             }
@@ -133,14 +152,12 @@
         return null;
     }
 
+    /**
+     * 淇濆瓨API鏃ュ織
+     */
     public void callApiLogSaveLog(String response, Boolean bool) {
-        apiLogService.save("鐧诲綍閲戣澏澶辫触", URL, "null", loginaddress,
-                "濂楄处ID锛�"+acctID+"銆佽处鍙凤細"+username+"銆佸瘑鐮侊細"+password,
+        apiLogService.save("鐧诲綍閲戣澏澶辫触", URL, "绔彛", loginaddress,
+                "璐﹀彿Id锛�"+accountId+"銆佺敤鎴风Id锛�"+clientId+"銆佺敤鎴峰瘑閽ワ細"+clientSecret+"銆乽sername锛�"+username+"銆乺efresh_token锛�",
                 response, bool);
     }
-
-
 }
-
-
-
diff --git a/src/main/java/com/zy/common/CodeBuilder.java b/src/main/java/com/zy/common/CodeBuilder.java
index c53bbee..76fe5fb 100644
--- a/src/main/java/com/zy/common/CodeBuilder.java
+++ b/src/main/java/com/zy/common/CodeBuilder.java
@@ -20,7 +20,7 @@
         generator.url="10.10.10.235:1433;databasename=jshdasrs";
         generator.username="sa";
         generator.password="sa@123";
-        generator.table="asr_bas_rgv_error_log";
+        generator.table="sys_erp_secret";
         generator.packagePath="com.zy.asrs";
         generator.build();
     }
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index f0c187c..9db3ac8 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -166,10 +166,10 @@
             int[] params = Utils.LocNecessaryParameters(rowLastno, curRow, crnNumber);
             curRow = params[1];
             int crnNo = params[2];
-            if (!basCrnpService.checkSiteError(crnNo, true)) {
-                attempt++;
-                continue;
-            }
+//            if (!basCrnpService.checkSiteError(crnNo, true)) {
+//                attempt++;
+//                continue;
+//            }
             int rowCount = params[0];
             int nearRow = params[3];
 
diff --git a/src/main/java/com/zy/erp/kingdee/entity/param/InFormIdParam.java b/src/main/java/com/zy/erp/kingdee/entity/param/InFormIdParam.java
deleted file mode 100644
index 89c6f06..0000000
--- a/src/main/java/com/zy/erp/kingdee/entity/param/InFormIdParam.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.zy.erp.kingdee.entity.param;
-
-import lombok.Data;
-
-@Data
-public class InFormIdParam {
-
-    //鏌ユ壘琛ㄥ崟鍞竴鏍囪瘑
-    private String FormId;
-
-    //鏈�澶氬厑璁告煡璇㈢殑鏁伴噺锛�0鎴栬�呬笉瑕佹灞炴�ф爣璇嗕笉闄愬埗
-    private String TopRowCount;
-
-    private Integer Limit;
-
-    private String StartRow;
-
-    //杩囨护鏉′欢锛坋g:\"FNumber>'0301010120001' and FCreateDate>'2023-07-05' \"锛�
-    //1銆丩eft锛氬乏鎷彿
-    //3銆丆ompare锛氭瘮杈冭繍绠楃锛屽銆�澶т簬">"銆佸皬浜�"<"銆佺瓑浜�"="銆佸寘鍚�"like"銆佸乏鍖呭惈"llike"銆佸彸鍖呭惈"rlike"
-    //4銆乂alue锛氭瘮杈冨��
-    //5銆丷ight锛氬彸鎷彿
-    //6銆丩ogic锛氶�昏緫杩愮畻绗︼紝濡� "and"銆�"or"
-    private Integer Filterstring;
-
-    //鎺掑簭鏉′欢
-    private Integer OrderString;
-
-    //寰呮煡璇㈣〃鍗曠殑瀛楁鍒楋紙鏈熸湜杩斿洖鍊硷級
-    private Integer FieldKeys;
-
-
-
-
-
-
-
-}
diff --git a/src/main/java/com/zy/erp/kingdee/entity/param/LoginParam.java b/src/main/java/com/zy/erp/kingdee/entity/param/LoginParam.java
index 1eb3ee4..044c3e2 100644
--- a/src/main/java/com/zy/erp/kingdee/entity/param/LoginParam.java
+++ b/src/main/java/com/zy/erp/kingdee/entity/param/LoginParam.java
@@ -4,16 +4,16 @@
 
 @Data
 public class LoginParam {
-    //璐﹀彿ID
-    private String acctID;
+    //鏈嶅姟绔�
+    private String appId;
 
-    //璐﹀彿
-    private String username;
+    //璐﹀彿瀵嗛挜
+    private String appSecret;
 
-    //瀵嗙爜
-    private String password;
+    //璐︽埛id
+    private String accountId;
 
     //
-    private Integer lcid;
+    private String tenantid;
 
 }
diff --git a/src/main/java/com/zy/erp/kingdee/entity/param/MatLoadParam.java b/src/main/java/com/zy/erp/kingdee/entity/param/MatLoadParam.java
new file mode 100644
index 0000000..8841de8
--- /dev/null
+++ b/src/main/java/com/zy/erp/kingdee/entity/param/MatLoadParam.java
@@ -0,0 +1,59 @@
+package com.zy.erp.kingdee.entity.param;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.Date;
+
+@Data
+public class MatLoadParam {
+
+    // id 瀛楁锛屽寘鍚涓� id
+    private ArrayList<String> id;
+
+    // 缂栫爜瀛楁锛屽寘鍚涓紪鐮�
+    private ArrayList<String> number;
+
+    // 鍒涘缓缁勭粐缂栫爜锛屽寘鍚涓粍缁囩紪鐮�
+    private ArrayList<String> createorgNumber;
+
+    // 鍒涘缓璧峰鏃ユ湡
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startCreatetime;
+
+    // 鍒涘缓鎴鏃ユ湡
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endCreatetime;
+
+    // 淇敼璧峰鏃ユ湡
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startModifytime;
+
+    // 淇敼鎴鏃ユ湡
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endModifytime;
+
+    // 瀹℃牳璧峰鏃ユ湡
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date startApprovedate;
+
+    // 瀹℃牳鎴鏃ユ湡
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date endApprovedate;
+
+    // 鏁版嵁鐘舵�� [A:鏆傚瓨, B:宸叉彁浜�, C:宸插鏍竇锛屽寘鍚涓姸鎬�
+    private ArrayList<String> status;
+
+    // 鍒嗛〉鍙傛暟锛屽垎椤垫暟閲�
+    private Integer pageSize;
+
+    // 鍒嗛〉鍙傛暟锛屾煡璇㈤〉鐮�
+    private Integer pageNo;
+
+    public MatLoadParam() {
+        this.pageSize = 10; // 榛樿鍒嗛〉鏁伴噺
+        this.pageNo = 1;    // 榛樿鏌ヨ椤电爜
+    }
+
+}
diff --git a/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java b/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java
index 77d827b..1065f81 100644
--- a/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java
+++ b/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java
@@ -2,7 +2,9 @@
 
 public enum KingDeeUtilType {
     BD_MATERIAL(0, "鐗╂枡妗f","BD_MATERIAL","","","",1),
-//    STK_InStock(1, "閲囪喘鍏ュ簱鍗�","STK_InStock","FRealQty","","",1),
+//    BD_RRGANIZATION(1, "璐т富","BD_MATERIAL","","","",1),
+
+    //    STK_InStock(1, "閲囪喘鍏ュ簱鍗�","STK_InStock","FRealQty","","",1),
 //    PUR_MRB(2, "閲囪喘閫�鏂欏崟","PUR_MRB","FRMREALQTY","","",1),
 //    PRD_PickMtrl(3, "鐢熶骇棰嗘枡鍗�","PRD_PickMtrl","FActualQty","","",1),
 //    PRD_ReturnMtrl(4, "鐢熶骇閫�鏂欏崟","PRD_ReturnMtrl","FQty","","",1),
@@ -15,14 +17,14 @@
 //    SP_ReturnMtrl(11, "绠�鍗曠敓浜ч��鏂欏崟","SP_ReturnMtrl","FQty","","",1),
 //    SAL_OUTSTOCK(12, "閿�鍞嚭搴撳崟","SAL_OUTSTOCK","FRealQty","","",1),
 //    SAL_RETURNSTOCK(13, "閿�鍞��璐у崟","SAL_RETURNSTOCK","FRealQty","","",1),
-    SAL_DELIVERYNOTICE(14, "鍙戣揣閫氱煡鍗�","SAL_DELIVERYNOTICE","FQty","閿�鍞嚭搴撳崟","SAL_OUTSTOCK",0),
-    STK_MISCELLANEOUS(15, "鍏朵粬鍏ュ簱鍗�","STK_MISCELLANEOUS","FQty","鍏朵粬鍏ュ簱鍗�","STK_MISCELLANEOUS",1),
+//    SAL_DELIVERYNOTICE(14, "鍙戣揣閫氱煡鍗�","SAL_DELIVERYNOTICE","FQty","閿�鍞嚭搴撳崟","SAL_OUTSTOCK",0),
+//    STK_MISCELLANEOUS(15, "鍏朵粬鍏ュ簱鍗�","STK_MISCELLANEOUS","FQty","鍏朵粬鍏ュ簱鍗�","STK_MISCELLANEOUS",1),
 //    BD_Supplier(16, "渚涘簲鍟�","BD_Supplier","","","",1),
-    PUR_ReceiveBill(17, "鏀舵枡閫氱煡鍗�","PUR_ReceiveBill","FPOQTY","閲囪喘鍏ュ簱鍗�","STK_InStock",1),
-    PRD_MORPT(18, "鐢熶骇姹囨姤鍗�","PRD_MORPT","FFinishQty","鐢熶骇鍏ュ簱鍗�","PRD_INSTOCK",1),
+//    PUR_ReceiveBill(17, "鏀舵枡閫氱煡鍗�","PUR_ReceiveBill","FPOQTY","閲囪喘鍏ュ簱鍗�","STK_InStock",1),
+//    PRD_MORPT(18, "鐢熶骇姹囨姤鍗�","PRD_MORPT","FFinishQty","鐢熶骇鍏ュ簱鍗�","PRD_INSTOCK",1),
 //    PRD_INSTOCK(19, "鐢熶骇鍏ュ簱鍗�","PRD_INSTOCK","","","",1),
-    SAL_RETURNNOTICE(20, "閫�璐ч�氱煡鍗�","SAL_RETURNNOTICE","FBaseJunkedQty","閿�鍞��璐у崟","SAL_RETURNSTOCK",1),
-    STK_OutStockApply(21, "鍑哄簱鐢宠鍗�","STK_OutStockApply","FTotalSecQty","鍏朵粬鍑哄簱鍗�","STK_MisDelivery",0),
+//    SAL_RETURNNOTICE(20, "閫�璐ч�氱煡鍗�","SAL_RETURNNOTICE","FBaseJunkedQty","閿�鍞��璐у崟","SAL_RETURNSTOCK",1),
+//    STK_OutStockApply(21, "鍑哄簱鐢宠鍗�","STK_OutStockApply","FTotalSecQty","鍏朵粬鍑哄簱鍗�","STK_MisDelivery",0),
     ;
     public Integer id;
     public String desc;
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 53cb1df..0637844 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -10,8 +10,8 @@
     enabled: false
   datasource:
     driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
-#    url: jdbc:sqlserver://127.0.0.1:49847;databasename=jshdasrs
-    url: jdbc:sqlserver://127.0.0.1:1433;databasename=jshdasrs
+#    url: jdbc:sqlserver://127.0.0.1:1433;databasename=jshdasrs
+    url: jdbc:sqlserver://10.10.10.235;databasename=jshdasrs
 #    url: jdbc:sqlserver://192.168.4.191:50948;databasename=jshdasrs
     username: sa
     password: sa@123
@@ -92,20 +92,20 @@
   #  寮�鍏�
   switch:
     #璁℃椂鍣ㄤ笂鎶ュ紑鍏�
-    ErpReportOld: true
+    ErpReportOld: false
     #鑾峰彇鍗曟嵁寮�鍏�
-    InboundOrderSwitch: false
+    InboundOrderSwitch: true
     #鐧诲綍鎺ュ彛寮�鍏�
-    LoginAuthenticationSwitch: false
+    LoginAuthenticationSwitch: true
     #涓婃姤銆佸鏍稿崟鎹紑鍏�
     ReviewOrderSwitch: false
   #  鍦板潃
   address:
-    URL: http://58.210.10.90:28090
+    URL: https://shyucheng.test.kdgalaxy.com/
     #鐧诲綍鍦板潃
-    loginaddress: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc
-    #鍗曟嵁锛屽晢鍝佹。妗堝湴鍧�
-    inaddress: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc
+    loginaddress: /kapi/oauth2/getToken
+    #鍟嗗搧妗f鍦板潃
+    inaddress: /kapi/v2/basedata/bd_material/batchQuery
     #缁撴灉涓婃姤锛堜繚瀛橈級鍗曞湴鍧�
     outaddressSave: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc
     #缁撴灉涓婃姤锛堟彁浜わ級鍗曞湴鍧�
@@ -114,7 +114,8 @@
     outaddressAudit: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit.common.kdsvc
   #  鐧诲綍璐﹀彿绠$悊
   login :
-    acctID: "647e849ab6fa0f"
-    username: "llw"
-    password: "666666"
-    lcid: 2052
\ No newline at end of file
+    xAcfwIdentity: "djF8MTlhNTNhZjJhOWEwMWRlODhlMDF8NDkxNTk0MDU4MTQxNXwus9WaEHKRh0daJe1TWmVoMkv3zQY2knNTZRzaOhRgwnw"
+    clientId: "WMS"
+    clientSecret: "123456789Asd!@123456789"
+    accountId: "2182793143735298048"
+    username: "admin"
\ No newline at end of file

--
Gitblit v1.9.1