From f8f52b8643104a47ebc19d0cfcadec8e421cee17 Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期四, 03 八月 2023 17:02:26 +0800
Subject: [PATCH] erp轮询,登录,查询创建物料,查询创建订单

---
 /dev/null                                                                      |    8 
 src/main/java/com/zy/asrs/task/kingdee/handler/OutboundOrderHandler.java       |   17 +
 src/main/java/com/zy/asrs/entity/param/InFormIdParam.java                      |   38 +++
 src/main/java/com/zy/asrs/task/kingdee/LoginAuthenticationScheduler.java       |   23 ++
 src/main/java/com/zy/asrs/entity/param/MaterielParam.java                      |   15 +
 src/main/java/com/zy/asrs/task/kingdee/OutboundOrderScheduler.java             |    4 
 src/main/java/com/zy/asrs/task/kingdee/handler/LoginAuthenticationHandler.java |  134 ++++++++++++
 src/main/java/com/zy/asrs/entity/param/LoginParam.java                         |   20 +
 src/main/java/com/zy/asrs/task/kingdee/InboundOrderScheduler.java              |   25 ++
 src/main/resources/application.yml                                             |   22 +
 .idea/misc.xml                                                                 |    3 
 src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java        |  306 +++++++++++++++++++++++++++
 12 files changed, 604 insertions(+), 11 deletions(-)

diff --git a/.idea/misc.xml b/.idea/misc.xml
index 11ca1b5..afca537 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
+  <component name="ExternalStorageConfigurationManager" enabled="true" />
   <component name="FrameworkDetectionExcludesConfiguration">
     <file type="web" url="file://$PROJECT_DIR$" />
   </component>
@@ -13,7 +14,7 @@
       </list>
     </option>
   </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/out" />
   </component>
 </project>
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index 160eb6e..0000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ProjectModuleManager">
-    <modules>
-      <module fileurl="file://$PROJECT_DIR$/.idea/zy-asrs.iml" filepath="$PROJECT_DIR$/.idea/zy-asrs.iml" />
-    </modules>
-  </component>
-</project>
\ No newline at end of file
diff --git a/src/main/java/com/zy/asrs/entity/param/InFormIdParam.java b/src/main/java/com/zy/asrs/entity/param/InFormIdParam.java
new file mode 100644
index 0000000..08a9a79
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/InFormIdParam.java
@@ -0,0 +1,38 @@
+package com.zy.asrs.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/asrs/entity/param/LoginParam.java b/src/main/java/com/zy/asrs/entity/param/LoginParam.java
new file mode 100644
index 0000000..c388979
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/LoginParam.java
@@ -0,0 +1,20 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Value;
+
+@Data
+public class LoginParam {
+    //璐﹀彿ID
+    private String acctID;
+
+    //璐﹀彿
+    private String username;
+
+    //瀵嗙爜
+    private String password;
+
+    //
+    private Integer lcid;
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/MaterielParam.java b/src/main/java/com/zy/asrs/entity/param/MaterielParam.java
new file mode 100644
index 0000000..d9e9a76
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/MaterielParam.java
@@ -0,0 +1,15 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+@Data
+public class MaterielParam {
+    //鍟嗗搧缂栧彿
+    private String matnr;
+
+    //鍟嗗搧鍚嶇О
+    private String maktx;
+
+    //瑙勬牸
+    private String specs;
+}
diff --git a/src/main/java/com/zy/asrs/task/kingdee/InboundOrderScheduler.java b/src/main/java/com/zy/asrs/task/kingdee/InboundOrderScheduler.java
new file mode 100644
index 0000000..d8b3d13
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/kingdee/InboundOrderScheduler.java
@@ -0,0 +1,25 @@
+package com.zy.asrs.task.kingdee;
+
+import com.zy.asrs.task.kingdee.handler.InboundOrderHandler;
+import com.zy.asrs.task.kingdee.handler.LoginAuthenticationHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+public class InboundOrderScheduler {
+
+    @Autowired
+    private InboundOrderHandler inboundOrderHandler;
+    @Scheduled(cron = "0/3 * * * * ? ")
+    void login(){
+        Boolean fig=false;
+        if(fig){
+            return;
+        }
+        inboundOrderHandler.start();
+    }
+
+}
diff --git a/src/main/java/com/zy/asrs/task/kingdee/LoginAuthenticationScheduler.java b/src/main/java/com/zy/asrs/task/kingdee/LoginAuthenticationScheduler.java
new file mode 100644
index 0000000..b8df8ef
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/kingdee/LoginAuthenticationScheduler.java
@@ -0,0 +1,23 @@
+package com.zy.asrs.task.kingdee;
+
+import com.zy.asrs.task.kingdee.handler.LoginAuthenticationHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+public class LoginAuthenticationScheduler {
+
+    @Autowired
+    private LoginAuthenticationHandler loginAuthenticationHandler;
+    //@Scheduled(cron = "0/3 * * * * ? ")
+    void login(){
+        Boolean fig=false;
+        if(fig){
+            return;
+        }
+        loginAuthenticationHandler.start();
+    }
+}
diff --git a/src/main/java/com/zy/asrs/task/kingdee/OutboundOrderScheduler.java b/src/main/java/com/zy/asrs/task/kingdee/OutboundOrderScheduler.java
new file mode 100644
index 0000000..1e4b8b7
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/kingdee/OutboundOrderScheduler.java
@@ -0,0 +1,4 @@
+package com.zy.asrs.task.kingdee;
+
+public class OutboundOrderScheduler {
+}
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
new file mode 100644
index 0000000..d7b1150
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
@@ -0,0 +1,306 @@
+package com.zy.asrs.task.kingdee.handler;
+
+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.common.DateUtils;
+import com.core.common.SnowflakeIdWorker;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.InFormIdParam;
+import com.zy.asrs.entity.param.MaterielParam;
+import com.zy.asrs.service.*;
+import com.zy.asrs.task.AbstractHandler;
+import com.zy.asrs.task.core.ReturnT;
+import com.zy.common.constant.MesConstant;
+import com.zy.common.utils.HttpHandler;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import netscape.javascript.JSObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.lang.reflect.Field;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Set;
+
+@Service
+@Slf4j
+public class InboundOrderHandler extends AbstractHandler<String> {
+    @Value("${erp.address.URL}")
+    //绔彛
+    private String URL;
+
+    @Value("${erp.address.inaddress}")
+    //鍗曟嵁锛屽晢鍝佹。妗堝湴鍧�
+    private String inaddress;
+
+    @Autowired
+    private ApiLogService apiLogService;
+
+    @Autowired
+    private LoginAuthenticationHandler loginAuthenticationHandler;
+
+    @Autowired
+    private MatService matService;
+
+    @Autowired
+    private TagService tagService;
+
+    @Autowired
+    private DocTypeService docTypeService;
+
+    @Autowired
+    private OrderService orderService;
+
+    @Autowired
+    private OrderDetlService orderDetlService;
+
+    @Autowired
+    private SnowflakeIdWorker snowflakeIdWorker;
+
+    @Transactional
+    public synchronized ReturnT<String> start() {
+        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        //鐧诲綍閲戣澏r
+        ReturnT<String> start = loginAuthenticationHandler.start();
+        for(int i=0;i<14;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("BD_MATERIAL");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;
+            }
+            inFormIdParam.setLimit(10);
+            inFormIdParam.setStartRow("0");
+            Date time=new Date();
+            String FDocumentStatus=null;
+
+            //鏉′欢鍜岄渶瑕佽幏寰楃殑缁撴灉鎷兼帴
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.put("FormId", inFormIdParam.getFormId());
+            jsonObject.put("Limit", inFormIdParam.getLimit());
+            jsonObject.put("StartRow", inFormIdParam.getStartRow());
+            //鐗╂枡妗f鏌ヨ
+            if(i==0){
+                Tag tag = tagService.selectById(20);
+                //鏈�鏂版椂闂�
+                time=tag.getCreateTime();
+                //鐗╂枡鐘舵��
+                FDocumentStatus="C";
+                jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(time)+"' and FDocumentStatus='"+FDocumentStatus+"'");
+                jsonObject.put("FieldKeys", "FName,FNumber,FCreateDate,FSpecification,FDocumentStatus");
+                // FName : 鐗╂枡鍚嶇О 锛�
+                // FNumber 锛氱墿鏂欑紪鍙凤紱
+                // FCreateDate 锛氱墿鏂欏垱寤烘椂闂达紱
+                // FSpecification 锛氱墿鏂欒鏍硷紱
+                // FDocumentStatus 锛氱墿鏂欑姸鎬�
+            }else{
+                //鑾峰彇鏈�鏂版椂闂�
+                DocType docType= docTypeService.selectById(docName);
+                //鍗曟嵁鐘舵��
+                FDocumentStatus="C";
+                jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(docType.getCreateTime())+"' and FDocumentStatus='"+FDocumentStatus+"'");
+                jsonObject.put("FieldKeys", "FBillNo,FCreateDate,FMaterialId.FNumber,FMaterialId.FName,FMaterialId.FSpecification,"+anfme+",FDocumentStatus");
+                // FBillNo :鍗曟嵁缂栧彿锛�
+                // FCreateDate 锛氬崟鎹垱寤烘椂闂达紱
+                // FMaterialId.FNumber : 鐗╂枡缂栫爜锛�
+                // FMaterialName 锛氱墿鏂欏悕绉帮紱
+                // FMaterialId.FSpecification锛氱墿鏂欒鏍�
+                // anfme : 鐗╂枡鏁伴噺
+                // FDocumentStatus 锛氬崟鎹姸鎬侊紱
+
+            }
+            JSONObject jsonObject1 = new JSONObject();
+            jsonObject1.put("data", jsonObject);
+            String add = jsonObject1.toJSONString();
+            System.out.println(add);
+
+            //涓婃姤
+            String response = "";
+            boolean success = false;
+            try {
+                //鑾峰彇Cookie鍊�
+                HashMap<String, Object> headers = new HashMap<>();
+                headers.put("Cookie", start.getContent());
+                response = new HttpHandler.Builder()
+                        .setHeaders(headers)
+                        .setUri(URL)
+                        .setPath(inaddress)
+                        .setJson(add)
+                        .build()
+                        .doPost();
+                JSONArray data = JSON.parseArray(response);
+                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());//瑙勬牸
+                            //瀵圭編鍥芥椂闂磋繘琛岃浆鎹�
+                            DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+                            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");
+                        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 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);
+//                        if (!orderDetlService.insert(orderDetl)) {
+//                            throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
+//                        }
+                    }
+                }
+            } catch (Exception e) {
+                log.error("fail", e);
+//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return FAIL.setMsg(e.getMessage());
+            } finally {
+                try {
+                    // 淇濆瓨鎺ュ彛鏃ュ織
+                    apiLogService.save(
+                            "鐧诲綍閲戣澏",
+                            MesConstant.URL + MesConstant.PAKIN_URL,
+                            null,
+                            "127.0.0.1",
+                            add,
+                            response,
+                            success
+                    );
+                } catch (Exception e) {
+                    log.error("", e);
+                }
+            }
+        }
+        return SUCCESS;
+    }
+
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..8e32b46
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/kingdee/handler/LoginAuthenticationHandler.java
@@ -0,0 +1,134 @@
+package com.zy.asrs.task.kingdee.handler;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.core.common.Cools;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.param.LoginParam;
+import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.task.AbstractHandler;
+import com.zy.asrs.task.core.ReturnT;
+import com.zy.common.constant.MesConstant;
+import com.zy.common.utils.HttpHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.util.Set;
+
+@Service
+@Slf4j
+@Transactional
+public class LoginAuthenticationHandler extends AbstractHandler<String> {
+
+    @Value("${erp.address.URL}")
+    //绔彛
+    private String URL;
+
+    @Value("${erp.address.loginaddress}")
+    //鐧诲綍鍦板潃
+    private String loginaddress;
+
+    @Value("${erp.login.acctID}")
+    //璐﹀彿ID
+    private String acctID;
+
+    @Value("${erp.login.username}")
+    //璐﹀彿
+    private String username;
+
+    @Value("${erp.login.password}")
+    //瀵嗙爜
+    private String password;
+
+    @Value("${erp.login.lcid}")
+    //
+    private Integer lcid;
+
+    @Autowired
+    private ApiLogService apiLogService;
+
+    /**
+     * 45鍒嗛挓鐧诲綍涓�娆¢噾铦剁郴缁�
+     * @return
+     */
+    @Transactional
+    public synchronized ReturnT<String> start() {
+
+        LoginParam loginParam =new LoginParam();
+        loginParam.setAcctID(acctID);
+        loginParam.setUsername(username);
+        loginParam.setPassword(password);
+        loginParam.setLcid(lcid);
+        //涓婃姤
+        String response = "";
+        String cookie = "";
+        boolean success = false;
+        try {
+            response = new HttpHandler.Builder()
+                    .setUri(URL)
+                    .setPath(loginaddress)
+                    .setJson(JSON.toJSONString(loginParam))
+                    .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"))) {
+                success = true;
+            } else {
+                log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", URL+loginaddress, JSON.toJSONString(loginParam), response);
+                throw new CoolException("鐧诲綍閲戣澏澶辫触");
+            }
+        } catch (Exception e) {
+            log.error("fail", e);
+//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return FAIL.setMsg(e.getMessage());
+        } finally {
+            try {
+                // 淇濆瓨鎺ュ彛鏃ュ織
+                apiLogService.save(
+                        "鐧诲綍閲戣澏",
+                        MesConstant.URL + MesConstant.PAKIN_URL,
+                        null,
+                        "127.0.0.1",
+                        JSON.toJSONString(loginParam),
+                        response,
+                        success
+                );
+            } catch (Exception e) { log.error("", e); }
+        }
+        return SUCCESS.setContent(cookie);
+    }
+
+
+        public static Object findValueByKey(JSONObject json, String key) {
+            Set<String> keySet = json.keySet();
+            for (String k : keySet) {
+                Object v = json.get(k);
+                if (k.equals(key)) {
+                    return v;
+                } else if (v instanceof JSONArray) {
+                    int size = ((JSONArray) v).size();
+                    for (int i = 0; i <= size - 1; i++) {
+                        Object result = findValueByKey((JSONObject) ((JSONArray) v).get(i), key);
+                        if (result != null){
+                            return result;
+                        }
+                    }
+                } else if (v instanceof JSONObject){
+                    Object result = findValueByKey((JSONObject) v, key);
+                    if (result != null){
+                        return result;
+                    }
+                }
+            }
+            return null;
+        }
+
+}
+
+
+
diff --git a/src/main/java/com/zy/asrs/task/kingdee/handler/OutboundOrderHandler.java b/src/main/java/com/zy/asrs/task/kingdee/handler/OutboundOrderHandler.java
new file mode 100644
index 0000000..f3df4a7
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/kingdee/handler/OutboundOrderHandler.java
@@ -0,0 +1,17 @@
+package com.zy.asrs.task.kingdee.handler;
+
+import com.zy.asrs.task.AbstractHandler;
+import com.zy.asrs.task.core.ReturnT;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+@Service
+@Slf4j
+public class OutboundOrderHandler extends AbstractHandler<String> {
+    @Transactional
+    public synchronized ReturnT<String> start() {
+
+        return SUCCESS;
+    }
+
+}
\ No newline at end of file
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 6b503e1..3f6f4f6 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://localhost:1433;databasename=tzhtasrs
+    url: jdbc:sqlserver://192.168.4.15:1433;databasename=tzhtasrs
     username: sa
     password: sa@123
   mvc:
@@ -48,4 +48,22 @@
   # 鍙屾繁搴撲綅鎺掑彿
   doubleLocs: 1,4,5,8
   # 涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁�
-  groupCount: 4
\ No newline at end of file
+  groupCount: 4
+
+#erp瀵规帴
+erp:
+  #鍦板潃
+  address:
+    URL: http://ht01.wlgear.com:16001
+    #鐧诲綍鍦板潃
+    loginaddress: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc
+    #鍗曟嵁锛屽晢鍝佹。妗堝湴鍧�
+    inaddress: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc
+    #缁撴灉涓婃姤锛堝鏍革級鍗曞湴鍧�
+    outaddress: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit.common.kdsvc
+  #鐧诲綍璐﹀彿绠$悊
+  login :
+    acctID: "64c7666b20caf2"
+    username: "cs"
+    password: "123456"
+    lcid: 2052
\ No newline at end of file

--
Gitblit v1.9.1