From 598c9d63f68a8c92b264328c88c1cb4ef25af044 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期二, 02 九月 2025 14:32:26 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/kingdee/entity/GatewayDto.java | 28 +
src/main/java/com/zy/common/properties/SystemProperties.java | 2
src/main/resources/lib/kingdee-xw-openapi-1.0.0-jar-with-dependencies.jar | 0
src/main/java/com/zy/kingdee/entity/ReqParam.java | 19
src/main/webapp/views/erpReceiving/erpReceiving.html | 51 +
src/main/java/com/zy/asrs/controller/MobileController.java | 78 ++-
pom.xml | 14
src/main/java/com/zy/kingdee/entity/AcctDto.java | 59 ++
/dev/null | 119 -----
src/main/java/com/zy/kingdee/utils/K3ApiUtil.java | 502 +++++++++++++++++++++++++
src/main/java/com/zy/kingdee/utils/KingDeeUtils.java | 118 +++++
src/main/java/com/zy/kingdee/controller/KingdeeContorller.java | 114 +++++
src/main/java/com/zy/kingdee/entity/ResDto.java | 14
src/main/resources/lib/apigwclient-0.1.5.jar | 0
src/main/resources/application.yml | 6
src/main/java/com/zy/kingdee/entity/ResParam.java | 63 +++
16 files changed, 1,013 insertions(+), 174 deletions(-)
diff --git a/pom.xml b/pom.xml
index aa3af82..b7bd3f6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -121,6 +121,20 @@
<artifactId>hutool-all</artifactId>
<version>5.8.26</version>
</dependency>
+ <dependency>
+ <groupId>apigwclient</groupId>
+ <artifactId>apigwclient</artifactId>
+ <version>1.0.0</version>
+ <scope>system</scope>
+ <systemPath>${project.basedir}/src/main/resources/lib/apigwclient-0.1.5.jar</systemPath>
+ </dependency>
+<!-- <dependency>-->
+<!-- <groupId>kingdee-xw-openapi</groupId>-->
+<!-- <artifactId>kingdee-xw-openapi</artifactId>-->
+<!-- <version>1.0.0</version>-->
+<!-- <scope>system</scope>-->
+<!-- <systemPath>${project.basedir}/src/main/resources/lib/kingdee-xw-openapi-1.0.0-jar-with-dependencies.jar</systemPath>-->
+<!-- </dependency>-->
</dependencies>
<build>
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 37835f9..1242a8c 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -8,6 +8,7 @@
import com.core.common.Cools;
import com.core.common.R;
import com.core.exception.CoolException;
+
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.entity.result.MobileAdjustResult;
@@ -17,6 +18,7 @@
import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
import com.zy.common.web.BaseController;
+import com.zy.kingdee.utils.K3ApiUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
@@ -594,47 +596,53 @@
@RequestMapping("/ddd/ddd")
@ManagerAuth()
public R ddd() {
- int w = 99999;
- for (int i = 17; i <= 37; i++) {
- for (int j = 8;j<=14;j++){
- LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", j).eq("lev1", 1));
- LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", j).eq("lev1", 2));
- LocMast locMast3 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", j).eq("lev1", 3));
-// LocMast locMast4 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", 26).eq("bay1", i).eq("lev1", 1));
- if (locMast.getGro1() == 999){
- continue;
- }
-// locMast.setGro1(w);
-// locMast.setGro1(locMast.getGro1()+1000);
- locMast2.setGro1(locMast.getGro1()+1000);
- locMast3.setGro1(locMast.getGro1()+2000);
-// locMast4.setGro1(w);
-// locMastService.updateById(locMast);
- locMastService.updateById(locMast2);
- locMastService.updateById(locMast3);
-// locMastService.updateById(locMast4);
- w++;
- }
- }
-// for (int i = 17; i <=37; i++) {
-// LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 3).eq("lev1", 1));
-// LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 8).eq("lev1", 1));
-// LocMast locMast3 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 13).eq("lev1", 1));
-//// LocMast locMast4 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 12).eq("lev1", 1));
-// if (!Cools.isEmpty(locMast)) {
-// locMast.setGro1(w);
-// locMastService.updateById(locMast);
+
+
+
+
+
+
+// int w = 99999;
+// for (int i = 17; i <= 37; i++) {
+// for (int j = 8;j<=14;j++){
+// LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", j).eq("lev1", 1));
+// LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", j).eq("lev1", 2));
+// LocMast locMast3 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", j).eq("lev1", 3));
+//// LocMast locMast4 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", 26).eq("bay1", i).eq("lev1", 1));
+// if (locMast.getGro1() == 999){
+// continue;
// }
-//
-// locMast2.setGro1(w);
-// locMast3.setGro1(w);
+//// locMast.setGro1(w);
+//// locMast.setGro1(locMast.getGro1()+1000);
+// locMast2.setGro1(locMast.getGro1()+1000);
+// locMast3.setGro1(locMast.getGro1()+2000);
//// locMast4.setGro1(w);
-//
+//// locMastService.updateById(locMast);
// locMastService.updateById(locMast2);
// locMastService.updateById(locMast3);
//// locMastService.updateById(locMast4);
-//// w++;
+// w++;
// }
+// }
+//// for (int i = 17; i <=37; i++) {
+//// LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 3).eq("lev1", 1));
+//// LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 8).eq("lev1", 1));
+//// LocMast locMast3 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 13).eq("lev1", 1));
+////// LocMast locMast4 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 12).eq("lev1", 1));
+//// if (!Cools.isEmpty(locMast)) {
+//// locMast.setGro1(w);
+//// locMastService.updateById(locMast);
+//// }
+////
+//// locMast2.setGro1(w);
+//// locMast3.setGro1(w);
+////// locMast4.setGro1(w);
+////
+//// locMastService.updateById(locMast2);
+//// locMastService.updateById(locMast3);
+////// locMastService.updateById(locMast4);
+////// w++;
+//// }
return R.ok();
}
diff --git a/src/main/java/com/zy/asrs/task/kingdee/InboundOrderScheduler.java b/src/main/java/com/zy/asrs/task/kingdee/InboundOrderScheduler.java
deleted file mode 100644
index 2955277..0000000
--- a/src/main/java/com/zy/asrs/task/kingdee/InboundOrderScheduler.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.zy.asrs.task.kingdee;
-
-import com.zy.asrs.task.kingdee.handler.InboundOrderHandler;
-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
-@Component
-public class InboundOrderScheduler {
-
- @Autowired
- private InboundOrderHandler inboundOrderHandler;
- @Value("${erp.switch.InboundOrderSwitch}")
- private boolean InboundOrderSwitch;
-
- @Scheduled(cron = "0/3 * * * * ? ")
- void login(){
- if(!InboundOrderSwitch){
- 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
deleted file mode 100644
index 8b7be90..0000000
--- a/src/main/java/com/zy/asrs/task/kingdee/LoginAuthenticationScheduler.java
+++ /dev/null
@@ -1,25 +0,0 @@
-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.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
-
-@Slf4j
-@Component
-public class LoginAuthenticationScheduler {
-
- @Autowired
- private LoginAuthenticationHandler loginAuthenticationHandler;
- @Value("${erp.switch.LoginAuthenticationSwitch}")
- private boolean LoginAuthenticationSwitch;
-
- //@Scheduled(cron = "0/3 * * * * ? ")
- void login(){
- if(!LoginAuthenticationSwitch){
- return;
- }
- loginAuthenticationHandler.start();
- }
-}
diff --git a/src/main/java/com/zy/asrs/task/kingdee/ReviewOrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/kingdee/ReviewOrderSyncScheduler.java
deleted file mode 100644
index 2767e9f..0000000
--- a/src/main/java/com/zy/asrs/task/kingdee/ReviewOrderSyncScheduler.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.zy.asrs.task.kingdee;
-
-import com.zy.asrs.entity.Order;
-import com.zy.asrs.service.ApiLogService;
-import com.zy.asrs.service.OrderService;
-import com.zy.asrs.task.core.ReturnT;
-import com.zy.asrs.task.kingdee.handler.ReviewOrderSyncHandler;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-/**
- * Created by vincent on 2023/10/21
- */
-@Slf4j
-@Component
-public class ReviewOrderSyncScheduler {
-
- @Autowired
- private ReviewOrderSyncHandler reviewOrderSyncHandler;
- @Autowired
- private OrderService orderService;
-
- @Value("${erp.switch.ReviewOrderSwitch}")
- private boolean ReviewOrderSwitch;
-
- @Scheduled(cron = "0/3 * * * * ? ")
- @Async("orderThreadPool")
- public void completeAndReport(){
- if(!ReviewOrderSwitch){
- return;
- }
- List<Order> orders = orderService.selectComplete();
- for (Order order : orders) {
- ReturnT<String> result = reviewOrderSyncHandler.start(order);
- if (!result.isSuccess()) {
- log.error("鍗曟嵁[orderNo={}]鍚慹rp瀹℃牳澶辫触", order.getOrderNo());
- }
- }
- }
-
-}
diff --git a/src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java
deleted file mode 100644
index 932bca7..0000000
--- a/src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.zy.asrs.task.kingdee;
-
-import com.zy.asrs.entity.Order;
-import com.zy.asrs.service.OrderService;
-import com.zy.asrs.task.core.ReturnT;
-import com.zy.asrs.task.kingdee.handler.SubmitOrderSyncHandler;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-/**
- * Created by Monkey D. Luffy on 2023.10.21
- */
-@Slf4j
-@Component
-public class SaveOrderSyncScheduler {
-
- @Autowired
- private SubmitOrderSyncHandler submitOrderSyncHandler;
- @Autowired
- private OrderService orderService;
-
- @Value("${erp.switch.ReviewOrderSwitch}")
- private boolean ReviewOrderSwitch;
-
-// @Scheduled(cron = "0/3 * * * * ? ")
- @Async("orderThreadPool")
- public void completeAndReport(){
- if (1==1) return;
- if(!ReviewOrderSwitch){
- return;
- }
- List<Order> orders = orderService.selectComplete8();
- for (Order order : orders) {
- ReturnT<String> result = submitOrderSyncHandler.start(order);
- if (!result.isSuccess()) {
- log.error("鍗曟嵁[orderNo={}]鎻愪氦鑷砮rp澶辫触", order.getOrderNo());
- }
- }
- }
-
-}
diff --git a/src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java
deleted file mode 100644
index 069489a..0000000
--- a/src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package com.zy.asrs.task.kingdee;
-
-import com.zy.asrs.entity.Order;
-import com.zy.asrs.service.ApiLogService;
-import com.zy.asrs.service.OrderService;
-import com.zy.asrs.task.core.ReturnT;
-import com.zy.asrs.task.kingdee.handler.ReviewOrderSyncHandler;
-import com.zy.asrs.task.kingdee.handler.SaveOrderSyncHandler;
-import com.zy.asrs.task.kingdee.handler.SubmitOrderSyncHandler;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-/**
- * Created by Monkey D. Luffy on 2023.10.21
- */
-@Slf4j
-@Component
-public class SubmitOrderSyncScheduler {
-
- @Autowired
- private SaveOrderSyncHandler saveOrderSyncHandler;
- @Autowired
- private OrderService orderService;
-
- @Value("${erp.switch.ReviewOrderSwitch}")
- private boolean ReviewOrderSwitch;
-
- @Scheduled(cron = "0/3 * * * * ? ")
- @Async("orderThreadPool")
- public void completeAndReport(){
- if(!ReviewOrderSwitch){
- return;
- }
- List<Order> orders = orderService.selectComplete8();
- for (Order order : orders) {
- ReturnT<String> result = saveOrderSyncHandler.start(order);
- if (!result.isSuccess()) {
- log.error("鍗曟嵁[orderNo={}]淇濆瓨鑷砮rp澶辫触", order.getOrderNo());
- }
- }
- }
-
-}
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
deleted file mode 100644
index c98e298..0000000
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
+++ /dev/null
@@ -1,290 +0,0 @@
-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.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 com.zy.erp.kingdee.utils.KingDeeUtil;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-
-@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");
- //鐧诲綍閲戣澏
- ReturnT<String> start = loginAuthenticationHandler.start();
- for(KingDeeUtilType kingDeeUtilType : KingDeeUtilType.values()) {
- InFormIdParam inFormIdParam = new InFormIdParam();
- 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 锛氱墿鏂欑姸鎬�
- }else{
- //鑾峰彇鏈�鏂版椂闂�
- //鍗曟嵁鐘舵��
- 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,"+kingDeeUtilType.anfme+",FDocumentStatus");
- // FBillNo :鍗曟嵁缂栧彿锛�
- // FCreateDate 锛氬崟鎹垱寤烘椂闂达紱
- // FMaterialId.FNumber : 鐗╂枡缂栫爜锛�
- // FMaterialName 锛氱墿鏂欏悕绉帮紱
- // FMaterialId.FSpecification锛氱墿鏂欒鏍�
- // anfme : 鐗╂枡鏁伴噺
- // FDocumentStatus 锛氬崟鎹姸鎬侊紱
-
- }
- JSONObject jsonObject1 = new JSONObject();
- jsonObject1.put("data", jsonObject);
- String add = jsonObject1.toJSONString();
- //涓婃姤
- 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(data.size()<=0) continue;
- if (data.getJSONArray(0).get(0).toString().length()>=20) continue;
- if (kingDeeUtilType.formId.equals("BD_MATERIAL")) {//鐗╂枡妗f
- Tag tag = tagService.selectByName("鍏ㄩ儴", 1);
- for (int j = 0; j < data.size(); j++) {
- JSONArray jsonArray = data.getJSONArray(j);
- //瀵圭編鍥芥椂闂磋繘琛岃浆鎹�
- Date 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);
- } 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());
- }
- }
- tag.setUpdateTime(jsonDate);
- }
- tagService.updateById(tag);
- } else {
- for (int j = 0; j < data.size(); j++) {
- JSONArray jsonArray = data.getJSONArray(j);
- //鏈�鏂版姄鍙栨椂闂�
- Date jsonDate = KingDeeUtil.KingDeeDate(jsonArray.get(1).toString());
- docType.setCreateTime(jsonDate);
- 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 // 澶囨敞
- );
-
- if (!orderService.insert(order)) {
- if (!jsonDate.equals(docType.getCreateTime())){
- callApiLogSaveOrder(order,kingDeeUtilType, "鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�"+order, false);
- }
- continue;
-// throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�");
- }
- }
- //鐗╂枡缂栫爜
- Mat mat = matService.selectByMatnr(jsonArray.get(2).toString());
- if (Cools.isEmpty(mat)) {
- if (!jsonDate.equals(docType.getCreateTime())){
- callApiLogSaveOrder(order,kingDeeUtilType, "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧"+jsonArray.get(2).toString(), false);
- }
- continue;
- }
- 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);
- if (!orderDetlService.insert(orderDetl)) {
- callApiLogSaveOrder(order,kingDeeUtilType, "鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�!璁㈠崟鍙凤細"+order.getOrderNo(), false);
-// throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
- }
- }
- docTypeService.updateById(docType);
- }
- } catch (Exception e) {
- log.error("fail", e);
-// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg(e.getMessage());
- } finally {
-// try {
-// // 淇濆瓨鎺ュ彛鏃ュ織
-// apiLogService.save(
-// "杞鏁版嵁",
-// URL + inaddress,
-// null,
-// "127.0.0.1",
-// add,
-// response,
-// success
-// );
-// } catch (Exception e) {
-// log.error("", e);
-// }
- }
- }
- return SUCCESS;
- }
-
- public void callApiLogSaveMat(Mat mat, KingDeeUtilType kingDeeUtilType, String response, Boolean bool) {
- apiLogService.save("鑾峰彇"+kingDeeUtilType.desc, kingDeeUtilType.formId, "null", URL,
- "鐗╂枡缂栧彿锛�" + mat.getMatnr() + "銆佺墿鏂欏悕绉帮細" + mat.getName() + "銆佺被鍨嬶細" + mat.getTagId$() + "銆佺姸鎬侊細" + mat.getStatus$(),
- response, bool);
- }
-
- public void callApiLogSaveOrder(Order order, KingDeeUtilType kingDeeUtilType, String response, Boolean bool) {
- apiLogService.save("鑾峰彇"+kingDeeUtilType.desc, kingDeeUtilType.formId, "null", URL,
- "鍗曟嵁缂栧彿锛�" + order.getId() + "銆佺姸鎬侊細" + order.getStatus$(),
- response, bool);
- }
-
-}
\ No newline at end of file
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
deleted file mode 100644
index 3530b48..0000000
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/LoginAuthenticationHandler.java
+++ /dev/null
@@ -1,146 +0,0 @@
-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.Order;
-import com.zy.asrs.service.ApiLogService;
-import com.zy.asrs.task.AbstractHandler;
-import com.zy.asrs.task.core.ReturnT;
-import com.zy.common.utils.HttpHandler;
-import com.zy.erp.kingdee.entity.param.LoginParam;
-import com.zy.erp.kingdee.enums.KingDeeUtilType;
-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 {
- callApiLogSaveLog(JSON.toJSONString(loginParam),false);
- log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", URL+loginaddress, JSON.toJSONString(loginParam), response);
-// throw new CoolException("鐧诲綍閲戣澏澶辫触");
- }
- } 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();
- 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);
- }
-
-
- 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;
- }
-
- public void callApiLogSaveLog(String response, Boolean bool) {
- apiLogService.save("鐧诲綍閲戣澏澶辫触", URL, "null", loginaddress,
- "濂楄处ID锛�"+acctID+"銆佽处鍙凤細"+username+"銆佸瘑鐮侊細"+password,
- response, bool);
- }
-
-
-}
-
-
-
diff --git a/src/main/java/com/zy/asrs/task/kingdee/handler/ReviewOrderSyncHandler.java b/src/main/java/com/zy/asrs/task/kingdee/handler/ReviewOrderSyncHandler.java
deleted file mode 100644
index 313ebc8..0000000
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/ReviewOrderSyncHandler.java
+++ /dev/null
@@ -1,133 +0,0 @@
-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.zy.asrs.entity.DocType;
-import com.zy.asrs.entity.Order;
-import com.zy.asrs.service.ApiLogService;
-import com.zy.asrs.service.DocTypeService;
-import com.zy.asrs.service.OrderService;
-import com.zy.asrs.task.AbstractHandler;
-import com.zy.asrs.task.core.ReturnT;
-import com.zy.common.utils.HttpHandler;
-import com.zy.erp.kingdee.enums.KingDeeUtilType;
-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.HashMap;
-import java.util.Set;
-
-/**
- * Created by vincent on 2023/10/21
- */
-@Slf4j
-@Service
-public class ReviewOrderSyncHandler extends AbstractHandler<String> {
- @Value("${erp.address.URL}")
- //绔彛
- private String URL;
-
- @Value("${erp.address.outaddressAudit}")
- //瀹℃牳鍦板潃
- private String outaddressAudit;
-
- @Autowired
- private OrderService orderService;
- @Autowired
- private ApiLogService apiLogService;
- @Autowired
- private DocTypeService docTypeService;
- @Autowired
- private LoginAuthenticationHandler loginAuthenticationHandler;
-
- @Transactional
- public ReturnT<String> start(Order order) {
- //鐧诲綍閲戣澏r
- ReturnT<String> start = loginAuthenticationHandler.start();
- DocType docType = docTypeService.selectById(order.getDocType());
- if (null == docType) {
- return SUCCESS;
- }
- KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get(docType.getDocName());
-
- //鏉′欢鎷兼帴
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("Numbers",order.getOrderNo());
- JSONObject jsonObject1 = new JSONObject();
- jsonObject1.put("data", jsonObject);
- jsonObject1.put("FormId",kingDeeUtilType.formId);
- String add = jsonObject1.toJSONString();
- //涓婃姤
- 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(outaddressAudit)
- .setJson(add)
- .build()
- .doPost();
- JSONObject data = JSON.parseObject(response);
- Object IsSuccess = findValueByKey(JSON.parseObject(response), "IsSuccess");
- String bool=IsSuccess.toString();
- //瀹℃牳瀹屾垚鍘熻鍗�4杞�8 8.瀹℃牳瀹屾垚
- if(bool.equals("true")){
- success = true;
- order.setSettle(8L);
- orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
- }
- } catch (Exception e) {
- log.error("fail", e);
-// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg(e.getMessage());
- } finally {
- try {
- // 淇濆瓨鎺ュ彛鏃ュ織
- apiLogService.save(
- "瀹℃牳",
- URL+ outaddressAudit,
- null,
- "127.0.0.1",
- add,
- response,
- success
- );
- } catch (Exception e) {
- log.error("", e);
- }
- }
- return SUCCESS;
- }
- 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/SaveOrderSyncHandler.java b/src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java
deleted file mode 100644
index 88134a3..0000000
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java
+++ /dev/null
@@ -1,133 +0,0 @@
-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.zy.asrs.entity.DocType;
-import com.zy.asrs.entity.Order;
-import com.zy.asrs.service.ApiLogService;
-import com.zy.asrs.service.DocTypeService;
-import com.zy.asrs.service.OrderService;
-import com.zy.asrs.task.AbstractHandler;
-import com.zy.asrs.task.core.ReturnT;
-import com.zy.common.utils.HttpHandler;
-import com.zy.erp.kingdee.enums.KingDeeUtilType;
-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.HashMap;
-import java.util.Set;
-
-/**
- * Created by Monkey D. Luffy on 2023.10.21
- */
-@Slf4j
-@Service
-public class SaveOrderSyncHandler extends AbstractHandler<String> {
- @Value("${erp.address.URL}")
- //绔彛
- private String URL;
-
- @Value("${erp.address.outaddressSave}")
- //瀹℃牳鍦板潃
- private String outaddressSave;
-
- @Autowired
- private OrderService orderService;
- @Autowired
- private ApiLogService apiLogService;
- @Autowired
- private DocTypeService docTypeService;
- @Autowired
- private LoginAuthenticationHandler loginAuthenticationHandler;
-
- @Transactional
- public ReturnT<String> start(Order order) {
- //鐧诲綍閲戣澏r
- ReturnT<String> start = loginAuthenticationHandler.start();
- DocType docType = docTypeService.selectById(order.getDocType());
- if (null == docType) {
- return SUCCESS;
- }
- KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get(docType.getDocName());
-
- //鏉′欢鎷兼帴
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("Numbers",order.getOrderNo());
- JSONObject jsonObject1 = new JSONObject();
- jsonObject1.put("data", jsonObject);
- jsonObject1.put("FormId",kingDeeUtilType.correspondingFormId);
- String add = jsonObject1.toJSONString();
- //涓婃姤
- 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(outaddressSave)
- .setJson(add)
- .build()
- .doPost();
- JSONObject data = JSON.parseObject(response);
- Object IsSuccess = findValueByKey(JSON.parseObject(response), "IsSuccess");
- String bool=IsSuccess.toString();
- //淇濆瓨瀹屾垚鍘熻鍗�8杞�6
- if(bool.equals("true")){
- success = true;
- order.setSettle(6L);
- orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
- }
- } catch (Exception e) {
- log.error("fail", e);
-// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg(e.getMessage());
- } finally {
- try {
- // 淇濆瓨鎺ュ彛鏃ュ織
- apiLogService.save(
- "淇濆瓨",
- URL+ outaddressSave,
- null,
- "127.0.0.1",
- add,
- response,
- success
- );
- } catch (Exception e) {
- log.error("", e);
- }
- }
- return SUCCESS;
- }
- 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/SubmitOrderSyncHandler.java b/src/main/java/com/zy/asrs/task/kingdee/handler/SubmitOrderSyncHandler.java
deleted file mode 100644
index 7e922d6..0000000
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/SubmitOrderSyncHandler.java
+++ /dev/null
@@ -1,133 +0,0 @@
-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.zy.asrs.entity.DocType;
-import com.zy.asrs.entity.Order;
-import com.zy.asrs.service.ApiLogService;
-import com.zy.asrs.service.DocTypeService;
-import com.zy.asrs.service.OrderService;
-import com.zy.asrs.task.AbstractHandler;
-import com.zy.asrs.task.core.ReturnT;
-import com.zy.common.utils.HttpHandler;
-import com.zy.erp.kingdee.enums.KingDeeUtilType;
-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.HashMap;
-import java.util.Set;
-
-/**
- * Created by Monkey D. Luffy on 2023.10.21
- */
-@Slf4j
-@Service
-public class SubmitOrderSyncHandler extends AbstractHandler<String> {
- @Value("${erp.address.URL}")
- //绔彛
- private String URL;
-
- @Value("${erp.address.outaddressSubmit}")
- //瀹℃牳鍦板潃
- private String outaddressSubmit;
-
- @Autowired
- private OrderService orderService;
- @Autowired
- private ApiLogService apiLogService;
- @Autowired
- private DocTypeService docTypeService;
- @Autowired
- private LoginAuthenticationHandler loginAuthenticationHandler;
-
- @Transactional
- public ReturnT<String> start(Order order) {
- //鐧诲綍閲戣澏r
- ReturnT<String> start = loginAuthenticationHandler.start();
- DocType docType = docTypeService.selectById(order.getDocType());
- if (null == docType) {
- return SUCCESS;
- }
- KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get(docType.getDocName());
-
- //鏉′欢鎷兼帴
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("Numbers",order.getOrderNo());
- JSONObject jsonObject1 = new JSONObject();
- jsonObject1.put("data", jsonObject);
- jsonObject1.put("FormId",kingDeeUtilType.correspondingFormId);
- String add = jsonObject1.toJSONString();
- //涓婃姤
- 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(outaddressSubmit)
- .setJson(add)
- .build()
- .doPost();
- JSONObject data = JSON.parseObject(response);
- Object IsSuccess = findValueByKey(JSON.parseObject(response), "IsSuccess");
- String bool=IsSuccess.toString();
- //瀹℃牳瀹屾垚鍘熻鍗�8杞�6
- if(bool.equals("true")){
- success = true;
- order.setSettle(6L);
- orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
- }
- } catch (Exception e) {
- log.error("fail", e);
-// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg(e.getMessage());
- } finally {
- try {
- // 淇濆瓨鎺ュ彛鏃ュ織
- apiLogService.save(
- "鎻愪氦",
- URL+ outaddressSubmit,
- null,
- "127.0.0.1",
- add,
- response,
- success
- );
- } catch (Exception e) {
- log.error("", e);
- }
- }
- return SUCCESS;
- }
- 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/common/properties/SystemProperties.java b/src/main/java/com/zy/common/properties/SystemProperties.java
index b693d42..3e9e1ea 100644
--- a/src/main/java/com/zy/common/properties/SystemProperties.java
+++ b/src/main/java/com/zy/common/properties/SystemProperties.java
@@ -64,7 +64,7 @@
// 鐢熸垚婵�娲荤爜
public static void main(String[] args) {
- String timeStr = "2021-08-01 17:48:35";
+ String timeStr = "2026-08-12 08:00:00";
Date exprTime = DateUtils.convert(timeStr);
String code = AesUtils.encrypt(DateUtils.convert(exprTime, DateUtils.yyyyMMddHHmmss), SystemProperties.SALT);
System.out.println("婵�娲荤爜锛�"+code);
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
deleted file mode 100644
index 1eb3ee4..0000000
--- a/src/main/java/com/zy/erp/kingdee/entity/param/LoginParam.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.zy.erp.kingdee.entity.param;
-
-import lombok.Data;
-
-@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/erp/kingdee/enums/KingDeeUtilType.java b/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java
deleted file mode 100644
index 77d827b..0000000
--- a/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package com.zy.erp.kingdee.enums;
-
-public enum KingDeeUtilType {
- BD_MATERIAL(0, "鐗╂枡妗f","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),
-// PRD_FeedMtrl(5, "鐢熶骇琛ユ枡鍗�","PRD_FeedMtrl","FActualQty","","",1),
-// STK_TransferDirect(6, "鐩存帴璋冩嫧鍗�","STK_TransferDirect","","FQty","",1),
-// STK_StockCountGain(7, "鐩樼泩鍗�","STK_StockCountGain","FGainQty","","",1),
-// STK_StockCountLoss(8, "鐩樹簭鍗�","STK_StockCountLoss","FLossQty","","",1),
-// STK_MisDelivery(9, "鍏朵粬鍑哄簱鍗�","STK_MisDelivery","FQty","","",1),
-// SP_PickMtrl(10, "绠�鍗曠敓浜ч鏂欏崟","SP_PickMtrl","FActualQty","","",1),
-// 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),
-// BD_Supplier(16, "渚涘簲鍟�","BD_Supplier","","","",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),
- ;
- public Integer id;
- public String desc;
- public String formId;
- public String anfme;
- public String correspondingName;
- public String correspondingFormId;
- public Integer pakIn;
-
- KingDeeUtilType(Integer id, String desc,String formId,String anfme,String correspondingName,String correspondingFormId,int pakIn){
- this.id = id;
- this.desc = desc;
- this.formId = formId;
- this.anfme = anfme;
- this.correspondingName = correspondingName;
- this.correspondingFormId = correspondingFormId;
- this.pakIn = pakIn; //1鍏ュ簱 0鍑哄簱
- }
-
- public static KingDeeUtilType get(Short id) {
- if (null == id) {
- return null;
- }
- for (KingDeeUtilType type : KingDeeUtilType.values()) {
- if (type.id.equals(id.intValue())) {
- return type;
- }
- }
- return null;
- }
-
- public static KingDeeUtilType get(String desc) {
- if (null == desc) {
- return null;
- }
- for (KingDeeUtilType type : KingDeeUtilType.values()) {
- if (type.desc.equals(desc)) {
- return type;
- }
- }
- return null;
- }
-
- public static KingDeeUtilType get(KingDeeUtilType type) {
- if (null == type) {
- return null;
- }
- for (KingDeeUtilType crnLiftPosType : KingDeeUtilType.values()) {
- if (crnLiftPosType == type) {
- return crnLiftPosType;
- }
- }
- return null;
- }
-}
diff --git a/src/main/java/com/zy/erp/kingdee/timer/LoginAuthenticationScheduler.java b/src/main/java/com/zy/erp/kingdee/timer/LoginAuthenticationScheduler.java
deleted file mode 100644
index ccdada9..0000000
--- a/src/main/java/com/zy/erp/kingdee/timer/LoginAuthenticationScheduler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.zy.erp.kingdee.timer;
-
-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/erp/kingdee/timer/handler/LoginAuthenticationHandler.java b/src/main/java/com/zy/erp/kingdee/timer/handler/LoginAuthenticationHandler.java
deleted file mode 100644
index 98e9dc2..0000000
--- a/src/main/java/com/zy/erp/kingdee/timer/handler/LoginAuthenticationHandler.java
+++ /dev/null
@@ -1,135 +0,0 @@
-package com.zy.erp.kingdee.timer.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.service.ApiLogService;
-import com.zy.asrs.task.AbstractHandler;
-import com.zy.asrs.task.core.ReturnT;
-import com.zy.common.utils.HttpHandler;
-import com.zy.erp.kingdee.entity.param.LoginParam;
-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(
- "鐧诲綍閲戣澏",
- URL + loginaddress,
- 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/erp/kingdee/utils/KingDeeUtil.java b/src/main/java/com/zy/erp/kingdee/utils/KingDeeUtil.java
deleted file mode 100644
index 3373421..0000000
--- a/src/main/java/com/zy/erp/kingdee/utils/KingDeeUtil.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.zy.erp.kingdee.utils;
-
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.Date;
-
-public class KingDeeUtil {
-
- //瀵圭編鍥芥椂闂磋繘琛岃浆鎹�
- public static Date KingDeeDate(String jsonArrayDate) throws ParseException {
- SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-
- DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
- DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
- LocalDateTime dateTime = LocalDateTime.parse(jsonArrayDate, formatter);
- String format = dateFormat.format(dateTime);
- return sdf.parse(format);
- }
-
-
-
-}
diff --git a/src/main/java/com/zy/erp/kingdee/utils/PostMesDataUtils.java b/src/main/java/com/zy/erp/kingdee/utils/PostMesDataUtils.java
deleted file mode 100644
index 1b89571..0000000
--- a/src/main/java/com/zy/erp/kingdee/utils/PostMesDataUtils.java
+++ /dev/null
@@ -1,119 +0,0 @@
-package com.zy.erp.kingdee.utils;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.core.common.SpringUtils;
-import com.core.exception.CoolException;
-import com.zy.asrs.service.ApiLogService;
-import com.zy.asrs.task.AbstractHandler;
-import com.zy.asrs.task.core.ReturnT;
-import com.zy.common.utils.HttpHandler;
-import lombok.extern.slf4j.Slf4j;
-
-import java.util.Map;
-
-@Slf4j
-public class PostMesDataUtils extends AbstractHandler<String> {
-
- public ReturnT<String> postMesData(String name, String URL, String mesPath, Object combParam){
-// if (true){
-// System.out.println("name:"+name+",URL:"+URL+",mesPath:"+mesPath+",combParam:"+combParam);
-// return SUCCESS;
-// }
- if(combParam != null){
- String response = "";
- boolean success = false;
- try {
-// Map<String, Object> map = new HashMap<>()
-// map.put("appkey","ea1f0459efc02a79f046f982767939ae");
- response = new HttpHandler.Builder()
-// .setHeaders(map)
- .setUri(URL)
- .setPath(mesPath)
- .setJson(JSON.toJSONString(combParam))
- .build()
- .doPost();
- System.out.println("response:"+response);
- JSONObject jsonObject = JSON.parseObject(response);
-
- if (jsonObject.getInteger("code").equals(200)) {
- success = true;
- } else {
- log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", URL+"/"+mesPath, JSON.toJSONString(combParam), response);
- throw new CoolException("涓婃姤"+name);
- }
- } catch (Exception e) {
- log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", URL+"/"+mesPath, JSON.toJSONString(combParam), response);
-// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg(e.getMessage());
- } finally {
- try {
- // 淇濆瓨鎺ュ彛鏃ュ織
- ApiLogService apiLogService = SpringUtils.getBean(ApiLogService.class);
- apiLogService.save(
- "涓婃姤"+name,
- URL +"/"+ mesPath,
- null,
- "127.0.0.1",
- JSON.toJSONString(combParam),
- response,
- success
- );
- } catch (Exception e) {
- log.error("", e); }
- }
- }
- return SUCCESS;
- }
-
- public ReturnT<String> postMesData(String name, String URL, String mesPath, Object combParam,Map<String, Object> map){
-// if (true){
-// System.out.println("name:"+name+",URL:"+URL+",mesPath:"+mesPath+",combParam:"+combParam);
-// return SUCCESS;
-// }
- if(combParam != null){
- String response = "";
- boolean success = false;
- try {
-// Map<String, Object> map = new HashMap<>();
-// map.put("appkey","ea1f0459efc02a79f046f982767939ae");
- response = new HttpHandler.Builder()
- .setHeaders(map)
- .setUri(URL)
- .setPath(mesPath)
- .setJson(JSON.toJSONString(combParam))
- .build()
- .doPost();
- System.out.println("response:"+response);
- JSONObject jsonObject = JSON.parseObject(response);
-
- if (jsonObject.getInteger("code").equals(200)) {
- success = true;
- } else {
- log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", URL+"/"+mesPath, JSON.toJSONString(combParam), response);
- throw new CoolException("涓婃姤"+name);
- }
- } catch (Exception e) {
- log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", URL+"/"+mesPath, JSON.toJSONString(combParam), response);
-// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg(e.getMessage());
- } finally {
- try {
- // 淇濆瓨鎺ュ彛鏃ュ織
- ApiLogService apiLogService = SpringUtils.getBean(ApiLogService.class);
- apiLogService.save(
- "涓婃姤"+name,
- URL +"/"+ mesPath,
- null,
- "127.0.0.1",
- JSON.toJSONString(combParam),
- response,
- success
- );
- } catch (Exception e) {
- log.error("", e); }
- }
- }
- return SUCCESS;
- }
-}
diff --git a/src/main/java/com/zy/kingdee/controller/KingdeeContorller.java b/src/main/java/com/zy/kingdee/controller/KingdeeContorller.java
new file mode 100644
index 0000000..a338b04
--- /dev/null
+++ b/src/main/java/com/zy/kingdee/controller/KingdeeContorller.java
@@ -0,0 +1,114 @@
+package com.zy.kingdee.controller;
+
+import cn.hutool.http.HttpRequest;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.core.annotations.ManagerAuth;
+import com.core.common.Cools;
+import com.core.common.R;
+import com.core.exception.CoolException;
+import com.zy.common.constant.ApiInterfaceConstant;
+import com.zy.common.utils.HttpHandler;
+import com.zy.kingdee.entity.ResDto;
+import com.zy.kingdee.utils.K3ApiUtil;
+import com.zy.kingdee.utils.KingDeeUtils;
+
+import lombok.extern.slf4j.Slf4j;
+
+import okhttp3.internal.http.HttpMethod;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+@RestController
+@RequestMapping("kingdee")
+@Slf4j
+public class KingdeeContorller {
+
+ @RequestMapping("/get/manufacturingorder/list")
+ @ManagerAuth()
+ public R getManufacturingorderList(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam(required = false)String condition,
+ @RequestParam Map<String, Object> param) {
+ if (null == K3ApiUtil.TokenRes){
+ K3ApiUtil.init();
+ }
+ Map<String, String> map = new LinkedHashMap<>();
+ map.put("access_token", K3ApiUtil.TokenRes.getAccessToken());
+
+
+ Map<String, Object> jsonMap = new HashMap<>();
+ jsonMap.put("CurrentPage",curr);
+ jsonMap.put("ItemsOfPage",limit);
+ jsonMap.put("AccountDB","002");
+
+ OffsetDateTime time = OffsetDateTime.parse(param.get("time").toString());
+
+ HashMap<Object, Object> map1 = new HashMap<>();
+
+ String s = String.valueOf(time.toLocalDate());
+ map1.put("Property","FPlanCommitDate");
+ map1.put("Type","Desc");
+
+ jsonMap.put("OrderBy",map1);
+// map.put("CurrentPage",1);
+// map.put("ItemsOfPage",10);
+ String resStr = HttpRequest.post("api.kingdee.com" + "/koas/app007107/api/manufacturingorder/list" + K3ApiUtil.getMapStr(map))
+ .header("KIS-Timestamp", Long.toString(System.currentTimeMillis() / 1000L))
+ .header("KIS-State", "TEST" + K3ApiUtil.getNonce(12))
+ .header("KIS-TraceID", "TEST")
+ .header("KIS-Ver", "1.0")
+ .header("KIS-AuthData", K3ApiUtil.gatewayDto.getData().getAuthData())
+ .header("X-Api-SignHeaders", "X-Api-TimeStamp,X-Api-Nonce")
+ .header("X-GW-Router-Addr", K3ApiUtil.gatewayDto.getData().getGwRouterAddr())
+ .contentType("application/json")
+ .body(JSON.toJSONString(jsonMap))
+ .execute()
+ .body();
+
+ JSONObject parseObject = JSON.parseObject(resStr);
+ if (parseObject.get("errcode").hashCode() != 0) {
+ throw new CoolException(parseObject.get("description").toString());
+ }
+
+// Map<String, Object> headers = new HashMap<>();
+//
+// headers.put("KIS-Timestamp",Long.toString(System.currentTimeMillis() / 1000L));
+// headers.put("KIS-State","TEST" + K3ApiUtil.getNonce(12));
+// headers.put("KIS-TraceID","TEST");
+// headers.put("KIS-Ver","1.0");
+// headers.put("KIS-AuthData",K3ApiUtil.kingDeeRes.getAppToken());
+//
+// headers.put("X-GW-Router-Addr",K3ApiUtil.kingDeeRes.getDomain());
+// headers.put("Content-Type", "application/json;charset=utf-8");
+//
+//
+// try {
+// String response = new HttpHandler.Builder()
+// .setUri("api.kingdee.com")
+// .setPath("/koas/app007107/api/manufacturingorder/list")
+// .setHeaders(headers)
+// .setParams(map)
+// .setJson(JSON.toJSONString(jsonMap))
+// .build()
+// .doPost();
+// }catch (Exception e){
+//
+// }
+
+
+
+ return R.ok(parseObject.get("data"));
+ }
+}
diff --git a/src/main/java/com/zy/kingdee/entity/AcctDto.java b/src/main/java/com/zy/kingdee/entity/AcctDto.java
new file mode 100644
index 0000000..58287b2
--- /dev/null
+++ b/src/main/java/com/zy/kingdee/entity/AcctDto.java
@@ -0,0 +1,59 @@
+package com.zy.kingdee.entity;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@NoArgsConstructor
+@Data
+public class AcctDto {
+ private Integer errcode;
+ private String description;
+ private DataDTO data;
+
+ @NoArgsConstructor
+ @Data
+ public static class DataDTO {
+ private String uid;
+ private List<OrglistDTO> orglist;
+
+ @NoArgsConstructor
+ @Data
+ public static class OrglistDTO {
+ private String tid;
+ private String eid;
+ private String orgname;
+ private List<ProdinstlistDTO> prodinstlist;
+
+ @NoArgsConstructor
+ @Data
+ public static class ProdinstlistDTO {
+ private String pid;
+ private String productname;
+ private String productid;
+ private String prodinstname;
+ private String productshortname;
+ private String onlineStatus;
+ private Integer cloudmod;
+ private Integer acctloginnum;
+ private String expire;
+ private String recent;
+ private String openMobappStatus;
+ private List<AccountlistDTO> accountlist;
+
+ @NoArgsConstructor
+ @Data
+ public static class AccountlistDTO {
+ private String acctnumber;
+ private String acctname;
+ private String userid;
+ private String encid;
+ private String acctusername;
+ private String mobile;
+ private String isdemo;
+ }
+ }
+ }
+ }
+}
diff --git a/src/main/java/com/zy/kingdee/entity/GatewayDto.java b/src/main/java/com/zy/kingdee/entity/GatewayDto.java
new file mode 100644
index 0000000..d399b3f
--- /dev/null
+++ b/src/main/java/com/zy/kingdee/entity/GatewayDto.java
@@ -0,0 +1,28 @@
+package com.zy.kingdee.entity;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@NoArgsConstructor
+@Data
+public class GatewayDto {
+ private Integer errcode;
+ private String description;
+ private DataDTO data;
+
+ @NoArgsConstructor
+ @Data
+ public static class DataDTO {
+ private String gateway;
+ private String authData;
+ private String gwRouterAddr;
+ private ExtendDataDTO extendData;
+
+ @NoArgsConstructor
+ @Data
+ public static class ExtendDataDTO {
+ private String refreshAuthDataToken;
+ private Integer refreshAuthDataTokenExpireIn;
+ }
+ }
+}
diff --git a/src/main/java/com/zy/kingdee/entity/ReqParam.java b/src/main/java/com/zy/kingdee/entity/ReqParam.java
new file mode 100644
index 0000000..83d267b
--- /dev/null
+++ b/src/main/java/com/zy/kingdee/entity/ReqParam.java
@@ -0,0 +1,19 @@
+package com.zy.kingdee.entity;
+
+import lombok.Data;
+
+@Data
+public class ReqParam {
+
+ private String msg;
+ private String timeStamp;
+ private String nonce;
+ private String sign;
+
+ public static ReqParam init(String timeStamp,String nonce){
+ ReqParam reqParam = new ReqParam();
+ reqParam.setTimeStamp(timeStamp);
+ reqParam.setNonce(nonce);
+ return reqParam;
+ }
+}
diff --git a/src/main/java/com/zy/kingdee/entity/ResDto.java b/src/main/java/com/zy/kingdee/entity/ResDto.java
new file mode 100644
index 0000000..7eb704c
--- /dev/null
+++ b/src/main/java/com/zy/kingdee/entity/ResDto.java
@@ -0,0 +1,14 @@
+package com.zy.kingdee.entity;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ResDto {
+ private Integer code;
+ private String msg;
+ private Integer errcode;
+ private String description;
+ private List<ResParam> data;
+}
diff --git a/src/main/java/com/zy/kingdee/entity/ResParam.java b/src/main/java/com/zy/kingdee/entity/ResParam.java
new file mode 100644
index 0000000..cc666d4
--- /dev/null
+++ b/src/main/java/com/zy/kingdee/entity/ResParam.java
@@ -0,0 +1,63 @@
+package com.zy.kingdee.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class ResParam {
+ private Long id;
+ private String appKey;
+ private String appSecret;
+ private String oldAppSecret;
+ private Integer status;
+ private String accessToken;
+ private String appToken;
+ private String authCode;
+
+ private String sessionId;
+
+ @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX")
+ private Date expires;
+
+ private String userNumber;
+ private String serviceId;
+ private String clientId;
+ private String externalNumber;
+ private String outerInstanceId;
+ private String agreementCompanyName;
+ private String agreementAuthProductType;
+ private String agreementAdministratorName;
+ private String agreementAdministratorAccountNumber;
+ private String tenantId;
+ private String accountId;
+ private String uid;
+ private Long tid;
+
+ @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX")
+ private Date createTime;
+
+ @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX")
+ private Date openTime;
+
+ @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX")
+ private Date secretUpdateTime;
+
+ private Boolean isBrand;
+ private String brandSupplierId;
+ private String groupName;
+ private String accountName;
+ private String domain;
+ private String instanceId;
+
+ @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX")
+ private Date instanceExpiresTime;
+
+ private Boolean isRetainData;
+ private String trialOrderId;
+ private Boolean isEncryptSensitiveData;
+ private String ebxServiceId;
+ private String ebxAccountId;
+
+}
diff --git a/src/main/java/com/zy/kingdee/utils/K3ApiUtil.java b/src/main/java/com/zy/kingdee/utils/K3ApiUtil.java
new file mode 100644
index 0000000..4c9e68b
--- /dev/null
+++ b/src/main/java/com/zy/kingdee/utils/K3ApiUtil.java
@@ -0,0 +1,502 @@
+package com.zy.kingdee.utils;
+
+import cn.hutool.http.HttpRequest;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.core.common.Cools;
+
+import com.smecloud.apigw.client.ApigwClient;
+import com.smecloud.apigw.codec.GwURLEncoder;
+import com.smecloud.apigw.constant.HttpMethod;
+import com.smecloud.apigw.exception.ApiException;
+import com.smecloud.apigw.model.ApiRequest;
+import com.smecloud.apigw.model.ApigwConfig;
+import com.smecloud.apigw.util.CommontUtil;
+import com.smecloud.apigw.util.SHAUtil;
+import com.zy.kingdee.entity.*;
+import lombok.SneakyThrows;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.security.SecureRandom;
+import java.util.*;
+import java.util.stream.Collectors;
+
+public class K3ApiUtil {
+ private static final String clientId = "320285";
+ private static final String clientSecret = "bd29825057688ef40b1154057961a13b";
+ private static final String HOST = "api.kingdee.com";
+ private static final String instanceId = "436582290097836032";
+ private static final String appKey = "KidEvrK8";
+ private static final String[] DEFAULT_SIGNHEADERS = new String[]{"X-Api-Nonce", "X-Api-TimeStamp"};
+
+ public static ResParam TokenRes = null;
+ public static ResParam userRes = null;
+ public static String authCode = null;
+ public static String sessionId = null;
+ public static AcctDto acctDto = null;
+ public static GatewayDto gatewayDto = null;
+
+
+ /**
+ * 鑾峰彇Nonce
+ *
+ * @param len
+ * @return
+ */
+ public static String getNonce(int len) {
+ StringBuilder rs = new StringBuilder();
+ for (int i = 0; i < len; ++i) {
+ rs.append(new SecureRandom().nextInt(10));
+ }
+ return rs.toString();
+ }
+
+ /**
+ * 鑾峰彇url杞爜鏍煎紡
+ *
+ * @param path
+ * @return
+ */
+ private static String getPathEncode(String path) {
+ try {
+ return GwURLEncoder.encode(path, StandardCharsets.UTF_8.toString());
+ } catch (Exception var3) {
+ Exception e = var3;
+ throw new ApiException(e);
+ }
+ }
+
+ /**
+ * 鑾峰彇鎷兼帴鍙傛暟杞爜鏍煎紡
+ *
+ * @param querys
+ * @return
+ */
+ private static String getQueryEncode(Map<String, String> querys) {
+ try {
+ if (CommontUtil.isEmpty(querys)) {
+ return "";
+ } else {
+ List<String> list = new ArrayList(querys.size());
+ Iterator var3 = querys.entrySet().iterator();
+
+ while (var3.hasNext()) {
+ Map.Entry<String, String> entry = (Map.Entry) var3.next();
+ String key = GwURLEncoder.encode((String) entry.getKey(), StandardCharsets.UTF_8.toString());
+ String value = URLEncoder.encode((String) entry.getValue(), StandardCharsets.UTF_8.toString());
+ list.add(key + "=" + value);
+ }
+
+ Collections.sort(list);
+ String rawQueryString = String.join("&", list);
+ String[] queryStrings = rawQueryString.split("&");
+ list.clear();
+ String[] var16 = queryStrings;
+ int var17 = queryStrings.length;
+
+ for (int var7 = 0; var7 < var17; ++var7) {
+ String param = var16[var7];
+ int index = param.indexOf("=");
+ if (index >= 1) {
+ String key = GwURLEncoder.encode(param.substring(0, index), StandardCharsets.UTF_8.toString());
+ String value = GwURLEncoder.encode(param.substring(index + 1), StandardCharsets.UTF_8.toString());
+ list.add(key + "=" + value);
+ }
+ }
+
+ return String.join("&", list);
+ }
+ } catch (Exception var12) {
+ Exception e = var12;
+ throw new ApiException(e);
+ }
+ }
+
+ /**
+ * 鑾峰彇鍔犲瘑绛惧悕
+ *
+ * @param method
+ * @param path
+ * @param query
+ * @param signatureHeaders
+ * @param headers
+ * @return
+ */
+ private static String getSign(String method, String path, String query, String[] signatureHeaders, Map<String, String> headers) {
+ StringBuilder b = new StringBuilder();
+ b.append(method);
+ b.append("\n");
+ b.append(path);
+ b.append("\n");
+ b.append(query);
+ b.append("\n");
+ String[] var7 = signatureHeaders;
+ int var8 = signatureHeaders.length;
+
+ for (int var9 = 0; var9 < var8; ++var9) {
+ String x = var7[var9];
+ b.append(x.toLowerCase());
+ b.append(":");
+ b.append((String) headers.get(x));
+ b.append("\n");
+ }
+
+ String s = SHAUtil.SHA256HMAC(b.toString(), clientSecret);
+ return s != null ? Base64.getEncoder().encodeToString(s.getBytes()) : "";
+ }
+
+ /**
+ * 鑾峰彇鍔犲瘑鍚庣粨鏋�
+ *
+ * @return
+ */
+ public static String getSecretStr(String key, String secret) {
+ String s = SHAUtil.SHA256HMAC(key, secret);
+ return s != null ? Base64.getEncoder().encodeToString(s.getBytes()) : "";
+ }
+
+ public static String getMapStr(Map<String, String> map) {
+ if (map == null) {
+ return "";
+ }
+ StringBuilder b = new StringBuilder("?");
+ String str = map.keySet().stream().map(key ->
+ {
+ try {
+ return GwURLEncoder.encode(key, StandardCharsets.UTF_8.toString()) + "=" + GwURLEncoder.encode(map.get(key), StandardCharsets.UTF_8.toString());
+ } catch (UnsupportedEncodingException e) {
+ throw new RuntimeException(e);
+ }
+ }).collect(Collectors.joining("&"));
+ b.append(str);
+ return b.toString();
+ }
+
+ /**
+ * 鍒濆鍖栫綉鍏�
+ *
+ * @return
+ */
+ private static ApigwConfig initConfig() {
+ ApigwConfig config = new ApigwConfig();
+ //璁剧疆client_id
+ config.setClientID(clientId);
+ //璁剧疆client_secret
+ config.setClientSecret(clientSecret);
+ ApigwClient apigwClient = ApigwClient.getInstance();
+ //鍒濆鍖朅PI缃戝叧瀹㈡埛绔�
+ apigwClient.init(config);
+ return config;
+ }
+
+ /**
+ * 鑾峰彇绛惧悕
+ *
+ * @param method
+ * @param url
+ * @param querys
+ * @return
+ */
+ public static ReqParam getSignature(HttpMethod method, String url, Map<String, String> querys) {
+ //鍒濆鍖朅PI缃戝叧瀹㈡埛绔�
+ ApigwConfig config = initConfig();
+
+ ApiRequest request = new ApiRequest(method, HOST, url);
+ request.setQuerys(querys);
+ request.setBodyJson(JSONObject.toJSONString("").getBytes());
+ //鍒濆鍥炲弬
+ ReqParam res = ReqParam.init(Long.toString(System.currentTimeMillis()), getNonce(10));
+
+ request.addHeader("X-Api-ClientID", config.getClientID());
+ request.addHeader("X-Api-Auth-Version", "2.0");
+ request.addHeader("X-Api-TimeStamp", res.getTimeStamp());
+ request.addHeader("X-Api-Nonce", res.getNonce());
+ request.addHeader("X-Api-SignHeaders", String.join(",", DEFAULT_SIGNHEADERS));
+ String sign = getSign(request.getMethod().getValue(), getPathEncode(request.getPath()), getQueryEncode(request.getQuerys()), DEFAULT_SIGNHEADERS, request.getHeaders());
+ request.setSignature(sign);
+ request.addHeader("X-Api-Signature", sign);
+ res.setSign(sign);
+
+
+ return res;
+ }
+
+
+ /**
+ * 鑾峰彇楠岃瘉
+ *
+ * @return
+ */
+ @SneakyThrows
+ public static ResParam getAuthorize() {
+ String url = "/jdyconnector/app_management/push_app_authorize";
+ //URL 锛熸嫾鎺ュ瓧娈�
+ Map<String, String> map = new LinkedHashMap<>();
+ map.put("outerInstanceId", instanceId);
+ String pathParamStr = getMapStr(map);
+ //鑾峰彇鎺ュ彛鍙傛暟
+ ReqParam req = K3ApiUtil.getSignature(HttpMethod.POST_BODY, url, map);
+ String resStr = HttpRequest.post(HOST + url + pathParamStr)
+ .header("X-Api-ClientID", clientId)
+ .header("X-Api-Auth-Version", "2.0")
+ .header("X-Api-TimeStamp", req.getTimeStamp())
+ .header("X-Api-Nonce", req.getNonce())
+ .header("X-Api-SignHeaders", "X-Api-TimeStamp,X-Api-Nonce")
+ .header("X-Api-Signature", req.getSign())
+ .execute()
+ .body();
+
+ ResDto res = JSONObject.parseObject(resStr, ResDto.class);
+ if (res.getCode() != 200) {
+ throw new RuntimeException(res.getMsg());
+ }
+// System.out.println("testGetAuth()锛�" + resStr);
+ userRes = res.getData().get(0);
+ return res.getData().get(0);
+
+ }
+
+ /**
+ * 鑾峰彇楠岃瘉
+ *
+ * @return
+ */
+ @SneakyThrows
+ public static ResParam getToken() {
+ //鑾峰彇鎺堟潈
+ ResParam authorizeRes = getAuthorize();
+
+ String url = "/jdyconnector/app_management/kingdee_auth_token";
+ //URL 锛熸嫾鎺ュ瓧娈�
+ Map<String, String> map = new LinkedHashMap<>();
+ map.put("app_key", authorizeRes.getAppKey());
+ String secretStr = getSecretStr(authorizeRes.getAppKey(), authorizeRes.getAppSecret());
+ map.put("app_signature", secretStr);
+ String pathParamStr = getMapStr(map);
+ //鑾峰彇鎺ュ彛鍙傛暟
+ ReqParam req = K3ApiUtil.getSignature(HttpMethod.GET, url, map);
+ String resStr = HttpRequest.get(HOST + url + pathParamStr)
+ .header("X-Api-ClientID", clientId)
+ .header("X-Api-Auth-Version", "2.0")
+ .header("X-Api-TimeStamp", req.getTimeStamp())
+ .header("X-Api-Nonce", req.getNonce())
+ .header("X-Api-SignHeaders", "X-Api-TimeStamp,X-Api-Nonce")
+ .header("X-Api-Signature", req.getSign())
+ .execute()
+ .body();
+ ResDto res = JSONObject.parseObject(resStr, ResDto.class);
+ if (res.getErrcode() != 0) {
+ throw new RuntimeException(res.getDescription());
+ }
+ ResParam resParam = res.getData().get(0);
+ resParam.setDomain(authorizeRes.getDomain());
+// System.out.println("testGetToken()锛�" + resStr);
+ TokenRes = resParam;
+ return resParam;
+ }
+
+ @SneakyThrows
+ public static String getAuthCode() {
+
+ String url = "/koas/user/auth_code";
+ //URL 锛熸嫾鎺ュ瓧娈�
+ Map<String, String> map = new LinkedHashMap<>();
+ map.put("access_token", TokenRes.getAccessToken());
+ String pathParamStr = getMapStr(map);
+ //body
+
+ //璇锋眰
+ String resStr = HttpRequest.post(HOST + url + pathParamStr)
+ .header("KIS-Timestamp", Long.toString(System.currentTimeMillis() / 1000L))
+ .header("KIS-State", "vfun" + getNonce(12))
+ .header("KIS-TraceID", "vfun10086")
+ .header("KIS-Ver", "1.0")
+ .contentType("application/json")
+ .execute()
+ .body();
+ ResDto res = JSONObject.parseObject(resStr, ResDto.class);
+ if (res.getErrcode() != 0) {
+ throw new RuntimeException(res.getDescription());
+ }
+ // System.out.println("testSendMsg()锛�" + resStr);
+ authCode = res.getData().get(0).getAuthCode();
+ return res.getData().get(0).getAuthCode();
+ }
+
+ @SneakyThrows
+ public static String getSessionId() {
+
+ String url = "/koas/user/auth_code_login_access_token";
+ //URL 锛熸嫾鎺ュ瓧娈�
+ Map<String, String> map = new LinkedHashMap<>();
+ map.put("client_id", clientId);
+ map.put("client_secret",clientSecret);
+ String pathParamStr = getMapStr(map);
+ //body
+ HashMap<String, Object> bodyMap = new HashMap<>();
+ bodyMap.put("auth_code",authCode);
+ //璇锋眰
+ String resStr = HttpRequest.post(HOST + url + pathParamStr)
+ .header("KIS-Timestamp", Long.toString(System.currentTimeMillis() / 1000L))
+ .header("KIS-State", "WMS" + getNonce(12))
+ .header("KIS-TraceID", "WMS")
+ .header("KIS-Ver", "1.0")
+ .contentType("application/json")
+ .body(JSON.toJSONString(bodyMap))
+ .execute()
+ .body();
+ ResDto res = JSONObject.parseObject(resStr, ResDto.class);
+ if (res.getErrcode() != 0) {
+ throw new RuntimeException(res.getDescription());
+ }
+ sessionId = res.getData().get(0).getSessionId();
+ return res.getData().get(0).getSessionId();
+ }
+ @SneakyThrows
+ public static AcctDto getAcctNumber() {
+
+ String url = "/koas/user/account";
+ //URL 锛熸嫾鎺ュ瓧娈�
+ Map<String, String> map = new LinkedHashMap<>();
+ map.put("access_token", TokenRes.getAccessToken());
+ String pathParamStr = getMapStr(map);
+ //body
+ HashMap<String, Object> bodyMap = new HashMap<>();
+ bodyMap.put("session_id",sessionId);
+ //璇锋眰
+ String resStr = HttpRequest.post(HOST + url + pathParamStr)
+ .header("KIS-Timestamp", Long.toString(System.currentTimeMillis() / 1000L))
+ .header("KIS-State", "WMS" + getNonce(12))
+ .header("KIS-TraceID", "WMS")
+ .header("KIS-Ver", "1.0")
+ .contentType("application/json")
+ .body(JSON.toJSONString(bodyMap))
+ .execute()
+ .body();
+ AcctDto res = JSONObject.parseObject(resStr, AcctDto.class);
+ if (res.getErrcode() != 0) {
+ throw new RuntimeException(res.getDescription());
+ }
+ acctDto = res;
+ return res;
+ }
+
+ @SneakyThrows
+ public static String getIcrmId() {
+
+ String url = "/koas/user/account_applist";
+ //URL 锛熸嫾鎺ュ瓧娈�
+ Map<String, String> map = new LinkedHashMap<>();
+ map.put("access_token", TokenRes.getAccessToken());
+ String pathParamStr = getMapStr(map);
+ //body
+ HashMap<String, Object> bodyMap = new HashMap<>();
+ bodyMap.put("session_id",sessionId);
+ bodyMap.put("client_id", clientId);
+ bodyMap.put("acctnumber",acctDto.getData().getOrglist().get(0).getProdinstlist().get(0).getAccountlist().get(0).getAcctnumber());
+ //璇锋眰
+ String resStr = HttpRequest.post(HOST + url + pathParamStr)
+ .header("KIS-Timestamp", Long.toString(System.currentTimeMillis() / 1000L))
+ .header("KIS-State", "wmss" + getNonce(12))
+ .header("KIS-TraceID", "wmss")
+ .header("KIS-Ver", "1.0")
+ .contentType("application/json")
+ .body(JSON.toJSONString(bodyMap))
+ .execute()
+ .body();
+ ResDto res = JSONObject.parseObject(resStr, ResDto.class);
+ if (res.getErrcode() != 0) {
+ throw new RuntimeException(res.getDescription());
+ }
+
+ return "";
+ }
+
+ @SneakyThrows
+ public static String getServiceGateway() {
+
+ String url = "/koas/user/get_service_gateway";
+ //URL 锛熸嫾鎺ュ瓧娈�
+ Map<String, String> map = new LinkedHashMap<>();
+ map.put("access_token", TokenRes.getAccessToken());
+ String pathParamStr = getMapStr(map);
+ //body
+ HashMap<String, Object> bodyMap = new HashMap<>();
+ bodyMap.put("session_id",sessionId);
+ bodyMap.put("pid", acctDto.getData().getOrglist().get(0).getProdinstlist().get(0).getPid());
+ bodyMap.put("acctnumber",acctDto.getData().getOrglist().get(0).getProdinstlist().get(0).getAccountlist().get(0).getAcctnumber());
+ bodyMap.put("icrmid","2c9223b083cc0f130183e4c32be01544");
+ //璇锋眰
+ String resStr = HttpRequest.post(HOST + url + pathParamStr)
+ .header("KIS-Timestamp", Long.toString(System.currentTimeMillis() / 1000L))
+ .header("KIS-State", "wmss" + getNonce(12))
+ .header("KIS-TraceID", "wmss")
+ .header("KIS-Ver", "1.0")
+ .contentType("application/json")
+ .body(JSON.toJSONString(bodyMap))
+ .execute()
+ .body();
+ GatewayDto res = JSONObject.parseObject(resStr, GatewayDto.class);
+ if (res.getErrcode() != 0) {
+ throw new RuntimeException(res.getDescription());
+ }
+ gatewayDto = res;
+ return "SUCCESS";
+ }
+
+ public static void init(){
+ getToken();
+ getAuthCode();
+ getSessionId();
+ getAcctNumber();
+ getServiceGateway();
+ }
+
+ public static void main(String[] args) {
+ getToken();
+ getAuthCode();
+ getSessionId();
+ getAcctNumber();
+ getServiceGateway();
+// getIcrmId();
+ }
+
+ /**
+ * 鍗曟嵁瀹℃牳鎺ュ彛
+ * @param FClassTypeID 澶栬喘鍏ュ簱(1001), 閿�鍞嚭搴�(1021),閲囪喘鐢宠(1070) ,閿�鍞鍗�(1081),浜у搧鍏ュ簱(1002),璋冩嫧鍗�(1041) ,鐢熶骇棰嗘枡鍗曪紙1024锛�,閲囪喘璁㈠崟 (1071)
+ * @param FInterID 鍗曟嵁ID
+ * @return
+ */
+// @SneakyThrows
+// @Deprecated
+// public static ResDto checkK3Vouch(Integer FClassTypeID, Integer FInterID) {
+// ResParam tokenRes = getToken();
+// String url = "/koas/APP007720/api/approve/submit";
+// //URL 锛熸嫾鎺ュ瓧娈�
+// Map<String, String> map = new LinkedHashMap<>();
+// map.put("access_token", tokenRes.getAccessToken());
+// String pathParamStr = getMapStr(map);
+// //body
+// String bodyJson = VouchCheckDto.convertToQueryJson(FClassTypeID, FInterID);
+// //璇锋眰
+// String resStr = HttpRequest.post(HOST + url + pathParamStr)
+// .header("KIS-Timestamp", Long.toString(System.currentTimeMillis() / 1000L))
+// .header("KIS-State", "vfun" + getNonce(12))
+// .header("KIS-TraceID", "vfun10086")
+// .header("KIS-Ver", "1.0")
+// .header("KIS-AuthData", tokenRes.getAppToken())
+// .header("X-Api-SignHeaders", "X-Api-TimeStamp,X-Api-Nonce")
+// .header("X-GW-Router-Addr", tokenRes.getDomain())
+// .body(bodyJson)
+// .execute()
+// .body();
+// ResDto res = ObjUtil.parseObject(resStr, ResDto.class);
+// if (res.getErrcode() != 0) {
+// throw new RuntimeException(res.getDescription());
+// }
+//// System.out.println("testSendMsg()锛�" + resStr);
+// return res;
+// }
+}
diff --git a/src/main/java/com/zy/kingdee/utils/KingDeeUtils.java b/src/main/java/com/zy/kingdee/utils/KingDeeUtils.java
new file mode 100644
index 0000000..692b52a
--- /dev/null
+++ b/src/main/java/com/zy/kingdee/utils/KingDeeUtils.java
@@ -0,0 +1,118 @@
+package com.zy.kingdee.utils;
+
+
+import com.smecloud.apigw.util.SHAUtil;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.util.Base64;
+import java.util.Map;
+import java.util.TreeMap;
+
+@Slf4j
+public class KingDeeUtils {
+ public static String generateSignature(String method,
+ String path,
+ Map<String, String> params,
+ Map<String, String> headers,
+ String appSecret) throws Exception {
+ // 1. 澶勭悊璇锋眰鏂规硶锛堣浆澶у啓锛�
+ String processedMethod = method.toUpperCase();
+
+ // 2. 澶勭悊璺緞锛圲RL缂栫爜+澶у啓锛�
+ String processedPath = encodePath(path);
+
+ // 3. 澶勭悊璇锋眰鍙傛暟锛堝弻閲峌RL缂栫爜+ASCII鎺掑簭+澶у啓锛�
+ String processedParams = processParams(params);
+
+ // 4. 澶勭悊璇锋眰澶达紙鎻愬彇鐗瑰畾鍙傛暟锛�
+ String nonce = headers.getOrDefault("x-api-nonce", "");
+ String timestamp = headers.getOrDefault("x-api-timestamp", "");
+
+ // 5. 鏋勫缓绛惧悕鍘熸枃
+ String signSource = buildSignSource(processedMethod, processedPath, processedParams, nonce, timestamp);
+
+ log.info("绛惧悕鍘熸枃锛歕n"+signSource);
+ // 6. 璁$畻HMAC-SHA256绛惧悕
+ return hmacSha256(appSecret, signSource);
+ }
+
+ private static String encodePath(String path) {
+ try {
+ // 鍙璺緞閮ㄥ垎杩涜URL缂栫爜锛堜笉鍖呭惈鍗忚/鍩熷悕锛�
+ String[] parts = path.split("://", 2);
+ String toEncode = parts.length > 1 ? parts[1].substring(parts[1].indexOf('/')) : path;
+ return URLEncoder.encode(toEncode, StandardCharsets.UTF_8.name()).toUpperCase();
+ } catch (Exception e) {
+ throw new RuntimeException("Path encoding failed", e);
+ }
+ }
+
+ private static String processParams(Map<String, String> params) {
+ if (params == null || params.isEmpty()) {
+ return "";
+ }
+
+ // 鎸夊弬鏁板悕ASCII鍗囧簭鎺掑簭
+ TreeMap<String, String> sortedParams = new TreeMap<>(params);
+ StringBuilder sb = new StringBuilder();
+
+ try {
+ for (Map.Entry<String, String> entry : sortedParams.entrySet()) {
+ if (sb.length() > 0) {
+ sb.append('&');
+ }
+ // 鍙岄噸URL缂栫爜锛堟瘡娆$紪鐮佸悗杞ぇ鍐欙級
+ String key = doubleUrlEncode(entry.getKey());
+ String value = doubleUrlEncode(entry.getValue());
+ sb.append(key).append('=').append(value);
+ }
+ } catch (Exception e) {
+ throw new RuntimeException("Parameter encoding failed", e);
+ }
+ return sb.toString();
+ }
+
+ private static String doubleUrlEncode(String s) throws Exception {
+ if (s == null) return "";
+ String firstEncode = URLEncoder.encode(s, StandardCharsets.UTF_8.name());
+ return URLEncoder.encode(firstEncode, StandardCharsets.UTF_8.name());
+ }
+
+ private static String buildSignSource(String method,
+ String path,
+ String params,
+ String nonce,
+ String timestamp) {
+ return method + "\n" +
+ path + "\n" +
+ params + "\n" +
+ "x-api-nonce:" + nonce + "\n" +
+ "x-api-timestamp:" + timestamp + "\n"; // 娉ㄦ剰缁撳熬鐨勬崲琛岀
+ }
+
+ private static String hmacSha256(String secret, String message) throws Exception {
+ Mac sha256 = Mac.getInstance("HmacSHA256");
+ SecretKeySpec secretKey = new SecretKeySpec(secret.getBytes(StandardCharsets.UTF_8), "HmacSHA256");
+ sha256.init(secretKey);
+ byte[] hash = sha256.doFinal(message.getBytes(StandardCharsets.UTF_8));
+ return Base64.getEncoder().encodeToString(hash);
+ }
+
+ private static String hmacSha256_16(String secret, String message) throws Exception {
+ String appSignature = SHAUtil.SHA256HMAC(message, secret);
+ appSignature = Base64.getEncoder().encodeToString(appSignature.getBytes());
+ return appSignature;
+ }
+
+ // 娴嬭瘯绀轰緥
+ public static void main(String[] args) throws Exception {
+ // 绀轰緥鏁版嵁
+
+
+ System.out.println("X-Api-Signature: " + hmacSha256_16("abc123","abc"));
+ }
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 92b084a..93ac966 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -105,4 +105,8 @@
url: ""
taskCreatePath: ""
shuttleWcs:
- url: "10.0.100.140:8088/wcs"
\ No newline at end of file
+ url: "10.0.100.140:8088/wcs"
+kingdee:
+ client_id: 320285
+ client_secret: bd29825057688ef40b1154057961a13b
+ app_key: KidEvrK8
\ No newline at end of file
diff --git a/src/main/resources/lib/apigwclient-0.1.5.jar b/src/main/resources/lib/apigwclient-0.1.5.jar
new file mode 100644
index 0000000..434a22b
--- /dev/null
+++ b/src/main/resources/lib/apigwclient-0.1.5.jar
Binary files differ
diff --git a/src/main/resources/lib/kingdee-xw-openapi-1.0.0-jar-with-dependencies.jar b/src/main/resources/lib/kingdee-xw-openapi-1.0.0-jar-with-dependencies.jar
new file mode 100644
index 0000000..5bf1661
--- /dev/null
+++ b/src/main/resources/lib/kingdee-xw-openapi-1.0.0-jar-with-dependencies.jar
Binary files differ
diff --git a/src/main/webapp/views/erpReceiving/erpReceiving.html b/src/main/webapp/views/erpReceiving/erpReceiving.html
index a46719e..687495e 100644
--- a/src/main/webapp/views/erpReceiving/erpReceiving.html
+++ b/src/main/webapp/views/erpReceiving/erpReceiving.html
@@ -14,9 +14,21 @@
<div id="app">
<el-card>
<el-form :inline="true">
+ <el-form-item label="寮�宸ユ棩鏈�">
+ <el-date-picker
+ v-model="tableSearchParam.time"
+ type="date"
+ placeholder="閫夋嫨鏃ユ湡"
+ :default-value="defaultTime"
+
+ />
+ </el-form-item>
<el-form-item label="鐢熶骇鍗曞彿">
<el-input v-model="tableSearchParam.produce_no" placeholder="璇疯緭鍏ョ敓浜у崟鍙�"></el-input>
</el-form-item>
+ <el-form-item label="杞﹂棿">
+ <el-input v-model="tableSearchParam.produce_no" placeholder="璇疯緭鍏ョ敓浜у崟鍙�"></el-input>
+ </el-form-item>
<el-form-item label="">
<el-button type="primary" @click="page" circle >
<el-icon><Search /></el-icon>
@@ -42,27 +54,27 @@
</el-table-column>
<el-table-column type="index" width="50" >
</el-table-column>
- <el-table-column prop="produceNo" label="鐢熶骇鍗曞彿" >
+ <el-table-column prop="Head.FSourceBillNo" label="鐢熶骇鍗曞彿" >
</el-table-column>
- <el-table-column prop="jobNo" label="浠诲姟鍗曞彿">
+ <el-table-column prop="Head.FBillNo" label="浠诲姟鍗曞彿">
</el-table-column>
- <el-table-column prop="matnr" label="鐗╂枡缂栫爜">
+ <el-table-column prop="Head.FItemID" label="鐗╂枡缂栫爜">
</el-table-column>
- <el-table-column prop="name" label="鐗╂枡鍚嶇О">
+ <el-table-column prop="Head.FItemID" label="鐗╂枡鍚嶇О">
</el-table-column>
- <el-table-column prop="specs" label="瑙勬牸">
+ <el-table-column prop="Head.FSourceBillNo" label="瑙勬牸">
</el-table-column>
- <el-table-column prop="workshop" label="杞﹂棿">
+ <el-table-column prop="Head.FWorkShop" label="杞﹂棿">
</el-table-column>
- <el-table-column prop="anfme" label="鏁伴噺">
+ <el-table-column prop="Head.Fauxqty" label="鏁伴噺">
</el-table-column>
- <el-table-column prop="startTime" label="璁″垝寮�宸ユ椂闂�">
+ <el-table-column prop="Head.FPlanCommitDate" label="璁″垝寮�宸ユ椂闂�">
</el-table-column>
- <el-table-column prop="endTime" label="璁″垝瀹屽伐鏃堕棿">
+ <el-table-column prop="Head.FPlanFinishDate" label="璁″垝瀹屽伐鏃堕棿">
</el-table-column>
- <el-table-column prop="sync" label="鏄惁鍚屾">
+ <el-table-column prop="Head.FSourceBillNo" label="鏄惁鍚屾">
</el-table-column>
- <el-table-column prop="matnrReturn" label="鏄惁閫�鏂�">
+ <el-table-column prop="Head.FSourceBillNo" label="鏄惁閫�鏂�">
</el-table-column>
</el-table>
<div style="margin-top: 10px">
@@ -91,13 +103,15 @@
const app = createApp({
setup() {
const currentPage = ref(1)
- const pageSizes = ref([16, 30, 50, 100, 150, 200])
- const pageSize = ref(16)
+ const pageSizes = ref([10, 20, 30, 50, 100, 200])
+ const pageSize = ref(10)
const pageTotal = ref(0)
const tableSearchParam = ref({
- produce_no: null
+ produce_no: null,
+ time: new Date()
})
const tableData = ref([])
+ const defaultTime = ref(new Date())
function page(){
let data = JSON.parse(JSON.stringify(tableSearchParam.value))
@@ -108,7 +122,7 @@
data.create_time = tableSearchParam.value.datetime[0] + " - " + tableSearchParam.value.datetime[1]
}
$.ajax({
- url: baseUrl + "/erpReceiving/list/auth",
+ url: baseUrl + "/kingdee/get/manufacturingorder/list",
headers: {
'token': localStorage.getItem('token')
},
@@ -118,12 +132,12 @@
method: 'GET',
success: function(res) {
if (res.code == 200) {
- tableData.value = res.data.records
- pageTotal.value = res.data.total
+ tableData.value = res.data.List
+ pageTotal.value = res.data.TotalItems
} else if (res.code === 403) {
top.location.href = baseUrl + "/";
} else {
- ElMessage({
+ ElementPlus.ElMessage({
message: res.msg,
type: 'error'
});
@@ -157,6 +171,7 @@
pageSize,
pageTotal,
tableSearchParam,
+ defaultTime,
page,
handleSizeChange,
handleCurrentChange,
--
Gitblit v1.9.1