From 8d15a90edbf860de951c7981ef8a5b22e4f95151 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 14 一月 2026 12:44:08 +0800
Subject: [PATCH] #
---
/dev/null | 238 -----------------------------
src/main/java/com/zy/asrs/task/handler/AutomaticallyIssueWCSTasksHandler.java | 94 +++++++++++
src/main/resources/application.yml | 89 +---------
src/main/java/com/zy/asrs/task/AutomaticallyIssueWCSTasksScheduler.java | 15 -
4 files changed, 110 insertions(+), 326 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/AutomaticallyIssueWCSTasksScheduler.java b/src/main/java/com/zy/asrs/task/AutomaticallyIssueWCSTasksScheduler.java
index ae73b41..0a2c7a9 100644
--- a/src/main/java/com/zy/asrs/task/AutomaticallyIssueWCSTasksScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AutomaticallyIssueWCSTasksScheduler.java
@@ -3,6 +3,7 @@
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.task.handler.AutomaticallyIssueWCSTasksHandler;
import com.zy.asrs.task.handler.WorkMastHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -19,7 +20,7 @@
@Autowired
private WrkMastService wrkMastService;
@Autowired
- private WorkMastHandler workMastHandler;
+ private AutomaticallyIssueWCSTasksHandler automaticallyIssueWCSTasksHandler;
@Scheduled(cron = "0/3 * * * * ? ")
private void execute(){
@@ -27,16 +28,6 @@
if (wrkMasts.isEmpty()) {
return;
}
- for (WrkMast wrkMast : wrkMasts) {
- ReturnT<String> returnT = workMastHandler.start(wrkMast);
- if (!returnT.isSuccess()) {
- wrkMast.setUpdMk("X");
- wrkMast.setErrorMemo(returnT.getMsg());
- wrkMast.setErrorTime(new Date());
- if (!wrkMastService.updateById(wrkMast)) {
- log.error("宸ヤ綔妗workNo={}]鏍囪寰呭鐞嗗け璐�", wrkMast.getWrkNo());
- }
- }
- }
+ ReturnT<String> returnT = automaticallyIssueWCSTasksHandler.start(wrkMasts);
}
}
diff --git a/src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java b/src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java
deleted file mode 100644
index 1a18b10..0000000
--- a/src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java
+++ /dev/null
@@ -1,249 +0,0 @@
-package com.zy.asrs.task;
-
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.core.common.Cools;
-import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.OrderToLine;
-import com.zy.asrs.service.*;
-import com.zy.asrs.task.core.ReturnT;
-import com.zy.asrs.utils.ToSortLineUtils;
-import com.zy.asrs.utils.param.ItemUtilParam;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@Slf4j
-@Component
-//璁㈠崟涓嬪彂鑷冲垎鎷g嚎
-public class OrderToSortLineScheduler {
- @Autowired
- private OrderPakinService orderPakinService;
- @Autowired
- private OrderDetlPakinService orderDetlPakinService;
- @Autowired
- private BasArmRulesService basArmRulesService;
- @Autowired
- private OrderToLineHandler orderToLineHandler;
- @Autowired
- private MatService matService;
- @Autowired
- private BasArmMastSignService basArmMastSignService;
-
-// @Scheduled(cron = "0/3 * * * * ? ")
- private void orderToSortLine() {
- //鑾峰彇鏈笅鍙戝崟鎹�
- List<String> orderNos = orderPakinService.AllStatusSatisfyOrder(0);
- if(orderNos == null || orderNos.isEmpty()) {
-// log.info("鏈湁鏂拌鍗�");
- return;
- }
-
- //閬嶅巻鍗曟嵁
- for (String orderNo : orderNos) {
- OrderPakin orderPakin = orderPakinService.selectOne(new EntityWrapper<OrderPakin>().eq("order_no",orderNo));
- if(orderPakin.getDocType() == 16){
- orderPakin.setMoveStatus(1);
- orderPakinService.updateById(orderPakin);
- continue;
- }
-
- try{
- List<OrderDetlPakin> orderDetlPakinListAll = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>().eq("order_no",orderNo).eq("inspect",0));
- if (orderDetlPakinListAll.size()<1){
- orderPakinService.updateOrderStatus(orderNo); //鏇存柊璁㈠崟鐘舵�� 0 -> 1
- continue;
- }
- List<String> boxType3List = new ArrayList<>();
- for (OrderDetlPakin orderDetl:orderDetlPakinListAll){
- if (!boxType3List.contains(orderDetl.getBoxType3())){
- boxType3List.add(orderDetl.getBoxType3());
- }
- }
- for (String boxType3 : boxType3List){
- List<OrderDetlPakin> orderDetlPakinList = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>().eq("order_no",orderNo).eq("box_type3",boxType3).eq("inspect",0));
- if (orderDetlPakinList.size()<1){
- continue;
- }
- List<ItemUtilParam.Item> items = new ArrayList<>();
- for (OrderDetlPakin orderDetl:orderDetlPakinList){
- Mat mat = matService.selectByMatnr(orderDetl.getMatnr());
- Integer number = basArmRulesService.getNumber(mat.getWeight(),mat.getVolume(),mat.getManLength(),mat.getWidth(),mat.getHeight());
- if (number == null) {
- BasArmRules basArmRules = new BasArmRules();
- basArmRules.setMaterialHeight(mat.getHeight());
- basArmRules.setMaterialWeight(mat.getWeight());
- basArmRules.setMaterialLength(mat.getManLength());
- basArmRules.setMaterialWidth(mat.getWidth());
- basArmRulesService.insert(basArmRules);
- return;
- } else if (number == 0){
-
- Integer status = basArmRulesService.getStatus(mat.getWeight(),mat.getVolume(),mat.getManLength(),mat.getWidth(),mat.getHeight());
- if (!Cools.isEmpty(status) && status == 2){
- continue;
- } else {
- return;
- }
- }
- String name = ToSortLineUtils.MergerParameter(orderDetl.getMatnr(),orderDetl.getStandby3(),orderDetl.getStandby1(),orderDetl.getStandby2());
- int maxCapacity = number;
- int stock = orderDetl.getAnfme().intValue();
- items.add(new ItemUtilParam.Item(name, maxCapacity, stock));
- }
-
- OrderToLine orderToLine = new OrderToLine();
- orderToLine.setOrderNo(boxType3); //鍗曟嵁缂栧彿
- orderToLine.setCreateTime(System.currentTimeMillis()); //鍒涘缓鏃堕棿
- OrderToLine orderToLineR = ToSortLineUtils.GetOrderToLine(items, orderToLine,"Opt3");
-
- try{
- ReturnT<String> returnT = orderToLineHandler.start(orderToLineR);
- if (!returnT.isSuccess()) {
-// log.error("涓嬪彂鍗曟嵁澶辫触===>"+ JSON.toJSON(orderToLineR));
- } else {
- try{
- for (OrderToLine.MatList matList:orderToLineR.getMatList()){
- BasArmMastSign basArmMastSign = new BasArmMastSign();
- basArmMastSign.setMatnr(matList.getItem());
- basArmMastSign.setOrderNo(boxType3);//b3
- basArmMastSign.setSku(matList.getSku());//s3
- basArmMastSign.setPo(matList.getPo());//s1
- basArmMastSign.setUpc(matList.getUpc());//s2
-// basArmMastSign.setSupplier(matList.getSupplier());
- basArmMastSign.setStatus(0);
- basArmMastSign.setAnfme(matList.getCtns());
- basArmMastSign.setCreateTime(matList.getBindingTags());
- basArmMastSignService.insert(basArmMastSign);
- }
- for (OrderDetlPakin orderDetl:orderDetlPakinList){
- orderDetl.setInspect(1);
- orderDetlPakinService.updateById(orderDetl);
- }
- }catch (Exception e){}
- }
- } catch (Exception e){
- log.error("涓嬪彂鍗曟嵁寮傚父===>"+e.getMessage());
- }
- }
-
- } catch (Exception e){
- log.error("涓嬪彂鍗曟嵁寮傚父,璺宠浆涓嬩竴涓鍗�===>"+e.getMessage());
- }
- }
- }
-
- @Scheduled(cron = "0/3 * * * * ? ")
- private void orderToSortLine2() {
- //鑾峰彇鏈笅鍙戝崟鎹�
- List<String> orderNos = orderPakinService.AllStatusSatisfyOrder(1);
- if(orderNos == null || orderNos.isEmpty()) {
-// log.info("鏈湁鏂拌鍗�");
- return;
- }
-
- //閬嶅巻鍗曟嵁
- for (String orderNo : orderNos) {
- OrderPakin orderPakin = orderPakinService.selectOne(new EntityWrapper<OrderPakin>().eq("order_no",orderNo));
- if(orderPakin.getDocType() == 16){
- orderPakin.setMoveStatus(0);
- orderPakinService.updateById(orderPakin);
- continue;
- }
-
- try{
- List<OrderDetlPakin> orderDetlPakinListAll = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>().eq("order_no",orderNo).eq("inspect",1));
- if (orderDetlPakinListAll.size()<1){
- orderPakinService.updateOrderStatus0(orderNo); //鏇存柊璁㈠崟鐘舵�� 1 -> 0
- continue;
- }
- List<String> boxType3List = new ArrayList<>();
- for (OrderDetlPakin orderDetl:orderDetlPakinListAll){
- if (!boxType3List.contains(orderDetl.getBoxType3())){
- boxType3List.add(orderDetl.getBoxType3());
- }
- }
- for (String boxType3 : boxType3List){
- List<OrderDetlPakin> orderDetlPakinList = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>().eq("order_no",orderNo).eq("box_type3",boxType3).eq("inspect",1));
- if (orderDetlPakinList.size()<1){
- continue;
- }
- List<ItemUtilParam.Item> items = new ArrayList<>();
- for (OrderDetlPakin orderDetl:orderDetlPakinList){
- Mat mat = matService.selectByMatnr(orderDetl.getMatnr());
- Integer number = basArmRulesService.getNumber(mat.getWeight(),mat.getVolume(),mat.getManLength(),mat.getWidth(),mat.getHeight());
- if (number == null) {
- BasArmRules basArmRules = new BasArmRules();
- basArmRules.setMaterialHeight(mat.getHeight());
- basArmRules.setMaterialWeight(mat.getWeight());
- basArmRules.setMaterialLength(mat.getManLength());
- basArmRules.setMaterialWidth(mat.getWidth());
- basArmRulesService.insert(basArmRules);
- return;
- } else if (number == 0){
-
- Integer status = basArmRulesService.getStatus(mat.getWeight(),mat.getVolume(),mat.getManLength(),mat.getWidth(),mat.getHeight());
- if (!Cools.isEmpty(status) && status == 2){
- continue;
- } else {
- return;
- }
- }
- String name = ToSortLineUtils.MergerParameter(orderDetl.getMatnr(),orderDetl.getStandby3(),orderDetl.getStandby1(),orderDetl.getStandby2());
- int maxCapacity = number;
- if (orderDetl.getSortingAnfme()<1){
- continue;
- }
- int stock = orderDetl.getSortingAnfme().intValue();
- items.add(new ItemUtilParam.Item(name, maxCapacity, stock));
- }
-
- OrderToLine orderToLine = new OrderToLine();
- orderToLine.setOrderNo(boxType3); //鍗曟嵁缂栧彿
- orderToLine.setCreateTime(System.currentTimeMillis()); //鍒涘缓鏃堕棿
- if(items.size() < 1){
- continue;
- }
- OrderToLine orderToLineR = ToSortLineUtils.GetOrderToLine(items, orderToLine,"Opt3");
-
- try{
- ReturnT<String> returnT = orderToLineHandler.start(orderToLineR);
- if (!returnT.isSuccess()) {
-// log.error("涓嬪彂鍗曟嵁澶辫触===>"+ JSON.toJSON(orderToLineR));
- } else {
- try{
- for (OrderToLine.MatList matList:orderToLineR.getMatList()){
- BasArmMastSign basArmMastSign = new BasArmMastSign();
- basArmMastSign.setMatnr(matList.getItem());
- basArmMastSign.setOrderNo(boxType3);//b3
- basArmMastSign.setSku(matList.getSku());//s3
- basArmMastSign.setPo(matList.getPo());//s1
- basArmMastSign.setUpc(matList.getUpc());//s2
-// basArmMastSign.setSupplier(matList.getSupplier());
- basArmMastSign.setStatus(0);
- basArmMastSign.setAnfme(matList.getCtns());
- basArmMastSign.setCreateTime(matList.getBindingTags());
- basArmMastSignService.insert(basArmMastSign);
- }
- for (OrderDetlPakin orderDetl:orderDetlPakinList){
- orderDetl.setSortingAnfme(0.0);
- orderDetl.setInspect(0);
- orderDetlPakinService.updateById(orderDetl);
- }
- }catch (Exception e){}
- }
- } catch (Exception e){
- log.error("涓嬪彂鍗曟嵁寮傚父===>"+e.getMessage());
- }
- }
-
- } catch (Exception e){
- log.error("涓嬪彂鍗曟嵁寮傚父,璺宠浆涓嬩竴涓鍗�===>"+e.getMessage());
- }
- }
- }
-
-}
diff --git a/src/main/java/com/zy/asrs/task/handler/AutomaticallyIssueWCSTasksHandler.java b/src/main/java/com/zy/asrs/task/handler/AutomaticallyIssueWCSTasksHandler.java
index cf507db..76018f9 100644
--- a/src/main/java/com/zy/asrs/task/handler/AutomaticallyIssueWCSTasksHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AutomaticallyIssueWCSTasksHandler.java
@@ -1,20 +1,112 @@
package com.zy.asrs.task.handler;
import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
+import com.zy.common.utils.HttpHandler;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
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.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.concurrent.TimeUnit;
@Slf4j
@Service
@Transactional
public class AutomaticallyIssueWCSTasksHandler extends AbstractHandler<String> {
+ @Value("${wcs.switch}")
+ private String switchValue;
+ @Value("${wcs.address.URL}")
+ private String urlValue;
+ @Value("${wcs.address.createInTask}")
+ private String createInTaskValue;
+ @Value("${wcs.address.createOutTask}")
+ private String createOutTaskValue;
+ @Value("${wcs.address.createLocMoveTask}")
+ private String createLocMoveTaskValue;
+ public ReturnT<String> start(List<WrkMast> wrkMast) {
+ try {
+ if (!Boolean.parseBoolean(String.valueOf(switchValue))) {
+ return SUCCESS;
+ }
+ if (wrkMast == null || wrkMast.isEmpty()) {
+ return SUCCESS;
+ }
+ List<WrkMast> toSend = new ArrayList<>();
+ for (WrkMast m : wrkMast) {
+ if (m == null) { continue; }
+ if (Objects.equals(m.getWrkSts(), 11L)) {
+ if (m.getUpdMk() != null && "WCS_SENT".equalsIgnoreCase(m.getUpdMk())) {
+ continue;
+ }
+ toSend.add(m);
+ }
+ }
+ if (toSend.isEmpty()) {
+ return SUCCESS;
+ }
+ List<Map<String, Object>> tasks = new ArrayList<>();
+ for (WrkMast m : toSend) {
+ Map<String, Object> t = new HashMap<>();
+ t.put("taskNo", String.valueOf(m.getWrkNo()));
+ t.put("staNo", String.valueOf(m.getStaNo()));
+ t.put("locNo", m.getSourceLocNo());
+ if (m.getIoPri() != null) {
+ t.put("taskPri", m.getIoPri().intValue());
+ }
+ t.put("seq",m.getPltType());
+ t.put("orderId",m.getUserNo());
+ tasks.add(t);
+ }
+ Map<String, Object> payload = new HashMap<>();
+ payload.put("tasks", tasks);
- public ReturnT<String> start(WrkMast wrkMast) {
+ String response = new HttpHandler.Builder()
+ .setUri(urlValue)
+ .setPath(createOutTaskValue)
+ .setHttps(urlValue != null && urlValue.startsWith("https://"))
+ .setTimeout(10, TimeUnit.SECONDS)
+ .setJson(JSON.toJSONString(payload))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response == null ? "{}" : response);
+ Integer code = jsonObject.getInteger("code");
+ if (code == null || !Objects.equals(code, 200)) {
+ log.error("WCS涓嬪彂鍑哄簱浠诲姟澶辫触, url:{}, path:{}, request:{}, response:{}",
+ urlValue, createOutTaskValue, JSON.toJSONString(payload), response);
+ return FAIL.setMsg("WCS涓嬪彂鍑哄簱浠诲姟澶辫触");
+ }
+
+ Date now = new Date();
+ for (WrkMast m : toSend) {
+ m.setUpdMk("WCS_SENT");
+ m.setModiTime(now);
+ m.setWrkSts(12L);
+ }
+ // 寤惰繜娉ㄥ叆锛岄伩鍏嶅惊鐜緷璧�
+ WrkMastService wrkMastService = com.core.common.SpringUtils.getBean(WrkMastService.class);
+ for (WrkMast m : toSend) {
+ try {
+ wrkMastService.updateById(m);
+ } catch (Exception ignore) {}
+ }
+ } catch (Exception e) {
+ log.error("WCS鍑哄簱浠诲姟涓嬪彂寮傚父", e);
+ return FAIL.setMsg(e.getMessage());
+ }
return SUCCESS;
}
}
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 e448f59..0000000
--- a/src/main/java/com/zy/asrs/task/kingdee/InboundOrderScheduler.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package com.zy.asrs.task.kingdee;
-
-import com.core.common.Cools;
-import com.zy.asrs.task.kingdee.handler.InboundOrderHandler;
-import com.zy.common.entity.Parameter;
-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;
- // 姣�15鍒嗛挓鍚屾涓�娆$墿鏂欐。妗�,闃叉妗f浣嶅悓姝ュ崟鎹厛鑾峰彇
- @Scheduled(cron = "0 */15 * * * ?")
-// @Scheduled(cron = "0/5 * * * * ?")
- void syncMaterialData() {
- if (!InboundOrderSwitch) {
- return;
- }
- inboundOrderHandler.syncMaterialData(); // 鍚屾鐗╂枡妗f
- }
-
- @Scheduled(cron = "0 */30 * * * ?")
-// @Scheduled(cron = "0/5 * * * * ?")
- void login(){
- if(!InboundOrderSwitch){
- return;
- }
- String erpReport = Parameter.get().getErpReport();
- if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
- 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 4ec5fac..0000000
--- a/src/main/java/com/zy/asrs/task/kingdee/LoginAuthenticationScheduler.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.zy.asrs.task.kingdee;
-
-import com.core.common.Cools;
-import com.zy.asrs.task.kingdee.handler.LoginAuthenticationHandler;
-import com.zy.common.entity.Parameter;
-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 LoginAuthenticationScheduler {
-
- @Autowired
- private LoginAuthenticationHandler loginAuthenticationHandler;
- @Value("${erp.switch.LoginAuthenticationSwitch}")
- private boolean LoginAuthenticationSwitch;
-
-// @Scheduled(cron = "0/3 * * * * ? ")
- void login(){
- if(!LoginAuthenticationSwitch){
- return;
- }
- String erpReport = Parameter.get().getErpReport();
- if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
- 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 0a88985..0000000
--- a/src/main/java/com/zy/asrs/task/kingdee/ReviewOrderSyncScheduler.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package com.zy.asrs.task.kingdee;
-
-import com.core.common.Cools;
-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.utils.OrderInAndOutUtil;
-import com.zy.common.entity.Parameter;
-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/20 * * * * ?")
- @Async("orderThreadPool")
- public void completeAndReport(){
- if(!ReviewOrderSwitch){
- return;
- }
- String erpReport = Parameter.get().getErpReport();
- if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
-// List<Order> orders = OrderInAndOutUtil.selectComplete9(null);//鏌ヨ9鎻愪氦瀹屾垚鐨�
- List<Order> orders = orderService.selectComplete9();
- if(orders.size() > 0){
- 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 6e4d79e..0000000
--- a/src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package com.zy.asrs.task.kingdee;
-
-import com.core.common.Cools;
-import com.zy.asrs.entity.Order;
-import com.zy.asrs.entity.OrderDetlPakin;
-import com.zy.asrs.service.OrderDetlPakinService;
-import com.zy.asrs.service.OrderService;
-import com.zy.asrs.task.core.ReturnT;
-import com.zy.asrs.task.kingdee.handler.SaveOrderSyncHandler;
-import com.zy.asrs.task.kingdee.handler.SubmitOrderSyncHandler;
-import com.zy.asrs.utils.OrderInAndOutUtil;
-import com.zy.common.entity.Parameter;
-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 SaveOrderSyncHandler saveOrderSyncHandler;
- @Autowired
- private OrderService orderService;
- @Autowired
- private OrderDetlPakinService orderDetlPakinService;
- @Value("${erp.switch.ReviewOrderSwitch}")
- private boolean ReviewOrderSwitch;
-
- @Scheduled(cron = "0/30 * * * * ? ")
- @Async("orderThreadPool")
- public void completeAndReport(){
- if(!ReviewOrderSwitch){
- return;
- }
- String erpReport = Parameter.get().getErpReport();
- if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
-// List<Order> orders = OrderInAndOutUtil.selectComplete(null);
- List<Order> orders = orderService.selectComplete();
- if(orders.size() > 0){
- for (Order order : orders) {
- if((order.getDocType() == 3 || order.getDocType() == 16 || order.getDocType() == 23 || order.getDocType() == 24) && order.getPayType() == null){ //璧版柊澧炴彁浜ゅ鏍告祦绋�
- ReturnT<String> result = saveOrderSyncHandler.start(order);//4宸插畬鎴�
- if (!result.isSuccess()) {
- log.error("鍗曟嵁[orderNo={}]鏂板淇濆瓨鑷砮rp澶辫触", order.getOrderNo());
- }
-// order.setSettle(8L);
-// orderService.updateById(order);
- }else if( order.getDocType() == 21){ //瀵煎叆璁㈠崟鍑哄簱锛堥鏂欙級
- order.setSettle(8L);
- orderService.updateById(order);
- }else if((order.getPayType() != null && order.getPayType() == 1) && order.getSalesman() != null){
- Order order1 = orderService.selectByNo(order.getSalesman());
- if(orderDetlPakinService.morpt(order.getSalesman(),order.getOrderNo())){
- order.setSettle(11L); //yu/cheng/dan/deng/dai/chu/ku/dan
- orderService.updateById(order);
- }
- }
- else{
- order.setSettle(9L);//涓嶉渶瑕佹柊澧炵洿鎺ュ鏍�
- orderService.updateById(order);
- }
- }
- }
- }
- }
-
-}
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 f1c8d8e..0000000
--- a/src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package com.zy.asrs.task.kingdee;
-
-import com.core.common.Cools;
-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 com.zy.asrs.utils.OrderInAndOutUtil;
-import com.zy.common.entity.Parameter;
-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 SubmitOrderSyncHandler submitOrderSyncHandler;
- @Autowired
- private OrderService orderService;
-
- @Value("${erp.switch.ReviewOrderSwitch}")
- private boolean ReviewOrderSwitch;
-
- @Scheduled(cron = "0/20 * * * * ?")
- @Async("orderThreadPool")
- public void completeAndReport(){
- if(!ReviewOrderSwitch){
- return;
- }
- String erpReport = Parameter.get().getErpReport();
- if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
-// List<Order> orders = OrderInAndOutUtil.selectComplete10(null); //鏌ヨ10鏂板涓婃姤瀹屾垚
- List<Order> orders = orderService.selectComplete10();
- if(orders.size() > 0){
- 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/handler/InboundOrderHandler.java b/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
deleted file mode 100644
index 2ba70a1..0000000
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
+++ /dev/null
@@ -1,1897 +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.service.impl.ErpSecretServiceImpl;
-import com.zy.asrs.task.AbstractHandler;
-import com.zy.asrs.task.core.ReturnT;
-import com.zy.asrs.utils.OrderInAndOutUtil;
-import com.zy.erp.kingdee.entity.param.MatLoadParam;
-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.math.BigDecimal;
-import java.text.SimpleDateFormat;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-
-@Service
-@Slf4j
-public class InboundOrderHandler extends AbstractHandler<String> {
- @Value("${erp.address.URL}")
- //绔彛
- private String URL;
-
- @Value("${erp.address.mataddress}")
- //鍟嗗搧妗f鍦板潃
- private String matAddress;
- @Value("${erp.address.orgaddress}")
- //璐т富妗f鍦板潃
- private String orgAddress;
- @Value("${erp.address.impurreceivebilladdress}")
- //鏀舵枡鍗曟煡璇�
- private String imPurreceiveBillAddress;
- @Value("${erp.address.impurreceivebilldetl}")
- //杩涗粨閫氱煡鍗�
- private String imPurreceiveBillDetlAddress;
- @Value("${erp.address.imSaloutbill}")
- //閿�鍞嚭搴撳崟
- private String imSaloutbill;
- @Value("${erp.address.scpSalreturn}")
- //閿�鍞��璐у崟
- private String scpSalreturn;
- @Value("${erp.address.imMdcMftproorder}")
- //鐢熶骇棰嗘枡鍗�
- private String imMdcMftproorder;
- @Value("${erp.address.imMdcMftreturnorder}")
- //鐢熶骇閫�鏂欏崟
- private String imMdcMftreturnorder;
- @Value("${erp.address.imMdcMftfeedorder}")
- //鐢熶骇琛ユ枡鍗�
- private String imMdcMftfeedorder;
- @Value("${erp.address.imProductinbill}")
- //鐢熶骇杩涗粨鍗�
- private String imProductinbill;
- @Value("${erp.address.qcppManuinspec}")
- //浜у搧妫�楠屽崟
- private String qcppManuinspec;
- @Value("${erp.address.omOutsourcereceiptQuery}")
- //濮斿鍏ュ簱鍗�
- private String omOutsourcereceiptQuery;
- @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;
-
- @Autowired
- private LocOwnerService locOwnerService;
- @Autowired
- private LocSuppService locSuppService;
- @Autowired
- private ErpSecretServiceImpl erpSecretService;
- @Value("${erp.login.accountId}")
- private String accountId;
- @Value("${erp.login.xAcfwIdentity}")
- private String xAcfwIdentity;
- @Transactional
- public synchronized ReturnT<String> start() {
- SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd");
- //璇诲彇token
- ErpSecret erpSecret = erpSecretService.selectOne(new EntityWrapper<ErpSecret>().eq("account_id", accountId));
-
-
- for(KingDeeUtilType kingDeeUtilType : KingDeeUtilType.values()) {
-// MatLoadParam matLoadParam = new MatLoadParam();
- DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", kingDeeUtilType.desc));
- if (Cools.isEmpty(docType) && !kingDeeUtilType.formId.equals("BD_MATERIAL")){
- docType = docTypeService.selectOrAdd(kingDeeUtilType.desc, kingDeeUtilType.pakIn.equals(1));
- }
- String FDocumentStatus=null;
- if (Arrays.asList("INR").contains(kingDeeUtilType.formId)) {
- continue;
- }
- //鏉′欢鍜岄渶瑕佽幏寰楃殑缁撴灉鎷兼帴
- JSONObject jsonObject = new JSONObject();
- String path = null;
- Date now = new Date();
- String latestUpdateTime = sdf1.format(docType.getUpdateTime());
- switch (kingDeeUtilType.formId) {
- case "BD_MATERIAL": //鐗╂枡鍚屾
- jsonObject.put("id", null);//id
- jsonObject.put("number", null);//缂栫爜
- jsonObject.put("createorg_number", null);//鍒涘缓缁勭粐
- jsonObject.put("start_createtime", "2025-01-01 00:00:00");//鍒涘缓璧峰
- jsonObject.put("end_createtime", sdf1.format(now));//鍒涘缓鎴
- jsonObject.put("start_modifytime", latestUpdateTime);//鏇存柊璧峰
- jsonObject.put("end_modifytime", sdf1.format(now));//鏇存柊鎴
- jsonObject.put("start_approvedate", "2025-01-01");//瀹℃牳璧峰
- jsonObject.put("end_approvedate", sdf2.format(now));//瀹℃牳鎴
- jsonObject.put("status", Arrays.asList("C"));//鏁版嵁鐘舵�� [A:鏆傚瓨, B:宸叉彁浜�, C:宸插鏍竇
- path = matAddress;
- break;
- case "BD_RRGANIZATION": //渚涘簲鍟嗗悓姝�
- jsonObject.put("start_createtime", "2025-01-01 00:00:00");//id
- jsonObject.put("end_createtime", sdf1.format(now));
- jsonObject.put("id", null);
- jsonObject.put("number", null);
- jsonObject.put("createorg_number", null);
- jsonObject.put("status", Arrays.asList("B", "C"));//鏁版嵁鐘舵�� [A:鏆傚瓨, B:宸叉彁浜�, C:宸插鏍竇
- path = orgAddress;
- break;
- case "PUR_RECEIVEBIll": //宸插鏍告敹鏂欏崟鏌ヨ
- jsonObject.put("start_biztime", latestUpdateTime);//涓氬姟璧峰鏃ユ湡
- jsonObject.put("end_biztime", sdf1.format(now));//涓氬姟缁撴潫鏃ユ湡
- jsonObject.put("billno", null);
- jsonObject.put("billstatus", Arrays.asList("C"));//鏁版嵁鐘舵�� [A:鏆傚瓨, B:宸叉彁浜�, C:宸插鏍竇
- jsonObject.put("start_auditdate", latestUpdateTime);
- jsonObject.put("end_auditdate", sdf1.format(now));
- jsonObject.put("org_number", null);
- jsonObject.put("supplier_number", null);
- path = imPurreceiveBillAddress;
- break;
- case "OUI_RECEIVEBIll"://濮斿鍏ュ簱鍗�
- jsonObject.put("billstatus", Arrays.asList("C"));//鏁版嵁鐘舵�� [A:鏆傚瓨, B:宸叉彁浜�, C:宸插鏍竇
- jsonObject.put("auditdate_start", latestUpdateTime);
- jsonObject.put("auditdate_end", sdf1.format(now));
- path = omOutsourcereceiptQuery;
- break;
- case "SAL_OUTSTOCK"://閿�鍞嚭搴撳崟鏌ヨ
- path = imSaloutbill;
- jsonObject.put("modify_starttime", latestUpdateTime);//涓氬姟璧峰鏃ユ湡
- jsonObject.put("billstatus", "B");//鍗曟嵁鐘舵��
- jsonObject.put("modify_endtime", sdf1.format(now));//涓氬姟璧峰鏃ユ湡
- break;
- case "SAL_RETURNSTOCK"://閿�鍞��璐�
- path = scpSalreturn;
- jsonObject.put("modify_starttime", latestUpdateTime);//涓氬姟璧峰鏃ユ湡
- jsonObject.put("billstatus", "B");//鍗曟嵁鐘舵��
- jsonObject.put("modify_endtime", sdf1.format(now));//涓氬姟璧峰鏃ユ湡
- jsonObject.put("billtype_number", "im_SalOutBill_STD_BT_S_R");//鍗曟嵁绫诲瀷
- break;
- case "PRD_PickMtrl"://鐢熶骇棰嗘枡鍗�
- path = imMdcMftproorder;
-// jsonObject.put("start_modifytime", "2025-11-25 00:00:00");
-// jsonObject.put("start_auditdate", "2025-11-25 00:00:00");
- jsonObject.put("start_createtime", latestUpdateTime);
- jsonObject.put("end_createtime", sdf1.format(now));
-// jsonObject.put("end_auditdate", sdf1.format(now));
-// jsonObject.put("end_modifytime", sdf1.format(now));
- jsonObject.put("billno", null);
- jsonObject.put("billstatus", Arrays.asList("B","C"));//鏁版嵁鐘舵�� [A:鏆傚瓨, B:宸叉彁浜�, C:宸插鏍竇
- jsonObject.put("org_number", null);
- jsonObject.put("id", null);
- break;
- case "PRD_ReturnMtrl"://鐢熶骇閫�鏂欏崟
- path = imMdcMftreturnorder;
- jsonObject.put("id", null);
- jsonObject.put("billno", null);
- jsonObject.put("org_number", null);
- jsonObject.put("billstatus", Arrays.asList("C"));//鏁版嵁鐘舵�� [A:鏆傚瓨, B:宸叉彁浜�, C:宸插鏍竇
- jsonObject.put("start_createtime", latestUpdateTime);
- jsonObject.put("end_createtime", sdf1.format(now));
-// jsonObject.put("start_modifytime", "2025-11-25 00:00:00");
-// jsonObject.put("end_modifytime", sdf1.format(now));
-// jsonObject.put("start_auditdate", "2025-11-25 00:00:00");
-// jsonObject.put("end_auditdate", sdf1.format(now));
- break;
- case "PRD_FeedMtrl"://鐢熶骇琛ユ枡鍗�
- path = imMdcMftfeedorder;
- jsonObject.put("id", null);
- jsonObject.put("billno", null);
- jsonObject.put("org_number", null);
- jsonObject.put("billstatus", Arrays.asList("C"));//鏁版嵁鐘舵�� [A:鏆傚瓨, B:宸叉彁浜�, C:宸插鏍竇
- jsonObject.put("start_createtime", latestUpdateTime);
- jsonObject.put("end_createtime", sdf1.format(now));
-// jsonObject.put("start_modifytime", "2025-11-25 00:00:00");
-// jsonObject.put("end_modifytime", sdf1.format(now));
-// jsonObject.put("start_auditdate", "2025-11-25 00:00:00");
-// jsonObject.put("end_auditdate", sdf1.format(now));
- break;
- case "PRD_MORPT"://鐢熶骇杩涗粨鍗�
- path = imProductinbill;
- jsonObject.put("billstatus", Arrays.asList("C"));//鏁版嵁鐘舵�� [A:鏆傚瓨, B:宸叉彁浜�, C:宸插鏍竇
- jsonObject.put("modifytime_start",latestUpdateTime);
- jsonObject.put("modifytime_end", sdf1.format(now));
- break;
- case "STK_InspectionForm"://浜у搧妫�楠�
- path = qcppManuinspec;
- jsonObject.put("billstatus", Arrays.asList("C"));//鏁版嵁鐘舵�� [A:鏆傚瓨, B:宸叉彁浜�, C:宸插鏍竇
- jsonObject.put("auditdate_start", latestUpdateTime);
- jsonObject.put("auditdate_end", sdf1.format(now));
- break;
- }
- if(path == null){
- continue;
- }
- JSONObject jsonObject1 = new JSONObject();
- jsonObject1.put("data", jsonObject);
- jsonObject1.put("pageSize", 20);
- jsonObject1.put("pageNo", 1);
- String add = jsonObject1.toJSONString();
- //涓婃姤
- String response = "";
- boolean success = false;
- if(path == null){
- continue;
- }
- try {
- //鑾峰彇Cookie鍊�
- HashMap<String, Object> headers = new HashMap<>();
- headers.put("accesstoken", erpSecret.getAccessToken());
- headers.put("x-acgw-identity", xAcfwIdentity); // 鑷畾涔夎姹傚ご
- response = new HttpHandler.Builder()
- .setHeaders(headers)
- .setUri(URL)
- .setPath(path)
- .setJson(add)
- .build()
- .doPost();
- JSONObject jsonResponse = JSON.parseObject(response);
- if(jsonResponse.getString("errorCode").equals("401")){
- log.error("妫�绱㈠け璐ラ敊璇俊鎭細{}", jsonResponse.getString("message"));
- loginAuthenticationHandler.start();
- continue;
- }
- JSONArray data = jsonResponse.getJSONObject("data").getJSONArray("rows");
- if(data.size()<=0) continue;
- //鍟嗗搧妗f鍚屾
- if(kingDeeUtilType.formId.equals("BD_MATERIAL")) {
- Tag tag = tagService.selectByName("鍏ㄩ儴", 1);
- // 澶勭悊鍒嗛〉锛氭牴鎹繑鍥炵殑totalCount鍜宲ageSize璁$畻椤垫暟
- int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
- int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
- int totalPages = (int) Math.ceil((double) totalCount / pageSize);
-
- for (int page = 1; page <= totalPages; page++) {
- jsonObject1.put("pageNo", page);
- add = jsonObject1.toJSONString();
- // 閲嶆柊鍙戣捣璇锋眰浠ヨ幏鍙栬椤电殑鏁版嵁
- response = new HttpHandler.Builder()
- .setHeaders(headers)
- .setUri(URL)
- .setPath(path)
- .setJson(add)
- .build()
- .doPost();
-
- jsonResponse = JSON.parseObject(response);
- data = jsonResponse.getJSONObject("data").getJSONArray("rows");
- for (int j = 0; j < data.size(); j++) {
- JSONObject jsonObjectNew = data.getJSONObject(j);
- Date modifyTime = sdf1.parse(jsonObjectNew.get("modifytime").toString());
- String matnr = jsonObjectNew.get("number").toString();
- String name = jsonObjectNew.get("name").toString();
- String createTime = jsonObjectNew.get("createtime").toString();
- String memo = jsonObjectNew.get("eap7_textfield1").toString();
- Double height = getDecimalFieldAsDouble(jsonObjectNew, "eap7_decimalfield9");
- Double width = getDecimalFieldAsDouble(jsonObjectNew, "eap7_decimalfield8");
- Double length = getDecimalFieldAsDouble(jsonObjectNew, "eap7_decimalfield7");
- Double grossweight= getDecimalFieldAsDouble(jsonObjectNew, "eap7_decimalfield6");
- Double netweight = getDecimalFieldAsDouble(jsonObjectNew, "eap7_decimalfield");
- Double unit = getDecimalFieldAsDouble(jsonObjectNew, "eap7_decimalfield2");
- // 鐢熸垚鍟嗗搧妗f
- Double height1 = height*10;
- Double width1 = width*10;
- Double length1 = length*10;
- Mat mat = matService.selectByMatnr(matnr);
- if (mat == null) {
- mat = new Mat();
- mat.setMatnr(matnr);
- mat.setMaktx(name);
- mat.setTagId(tag.getId());
- mat.setWeight(grossweight);//鍑�閲�
- mat.setUnits(netweight);//姣涢噸
- mat.setSafeQty(unit);//
- mat.setManLength(length1);
- mat.setHeight(height1);
- mat.setWidth(width1);
- mat.setCreateTime(sdf1.parse(createTime));
- mat.setUpdateTime(modifyTime);
- mat.setStatus(1);
- if (!matService.insert(mat)) {
- callApiLogSaveMat(mat, kingDeeUtilType, "鍚屾鏂扮墿鏂欏嚭閿欙紒" + mat, false);
- log.info("鍚屾鏂扮墿鏂欏嚭閿欙紒鍙傛暟锛歔{}]銆乕{}]", mat, jsonObjectNew);
- } else {
- callApiLogSaveMat(mat, kingDeeUtilType, "鍚屾鏂扮墿鏂欐垚鍔燂紒", true);
- success = true;
- }
- } else {
- boolean isUpdated = false;
- if (mat.getUpdateTime().compareTo(modifyTime) != 0) {
- // 鏇存柊瀛楁
- if (!mat.getMaktx().equals(name)) mat.setMaktx(name);
- if (!mat.getMemo().equals(memo)) mat.setMemo(memo);
- if (mat.getWeight().compareTo(grossweight) != 0) mat.setWeight(grossweight);
- if (mat.getUnits().compareTo(netweight) != 0) mat.setUnits(netweight);
- if (mat.getSafeQty().compareTo(unit) != 0) mat.setSafeQty(unit);
- if (mat.getManLength().compareTo(length) != 0) mat.setManLength(length1);
- if (mat.getHeight().compareTo(height) != 0) mat.setHeight(height1);
- if (mat.getWidth().compareTo(width) != 0) mat.setWidth(width1);
- if (mat.getCreateTime().compareTo(sdf1.parse(createTime)) != 0)
- mat.setCreateTime(sdf1.parse(createTime));
- mat.setUpdateTime(modifyTime);
- isUpdated = true;
- }
- // 鎵ц鏇存柊鎿嶄綔
- if (isUpdated) {
- if (!matService.updateById(mat)) {
- callApiLogSaveMat(mat, kingDeeUtilType, "鏇存柊鐗╂枡鍑洪敊锛�" + mat, false);
- log.info("鏇存柊鐗╂枡[鍟嗗搧缂栧彿锛歿}], 鏇存柊澶辫触锛�", mat.getMatnr());
- } else {
- callApiLogSaveMat(mat, kingDeeUtilType, "鏇存柊鐗╂枡鎴愬姛锛�", true);
- success = true;
- log.info("鏇存柊鐗╂枡[鍟嗗搧缂栧彿锛歿}]", mat.getMatnr());
- }
- }
- }
- }
- }
- if(success){
- docType.setUpdateTime(now);
- docTypeService.updateById(docType);
- }
- }
- //渚涘簲鍟�
- else if(kingDeeUtilType.formId.equals("BD_RRGANIZATION")){//渚涘簲鍟嗗悓姝�
- int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
- int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
- int totalPages = (int) Math.ceil((double) totalCount / pageSize);
-
- for (int page = 1; page <= totalPages; page++) {
- jsonObject1.put("pageNo", page);
- add = jsonObject1.toJSONString();
- // 閲嶆柊鍙戣捣璇锋眰浠ヨ幏鍙栬椤电殑鏁版嵁
- response = new HttpHandler.Builder()
- .setHeaders(headers)
- .setUri(URL)
- .setPath(path)
- .setJson(add)
- .build()
- .doPost();
-
- jsonResponse = JSON.parseObject(response);
- data = jsonResponse.getJSONObject("data").getJSONArray("rows");
- for (int j = 0; j < data.size(); j++) {
- JSONObject jsonObjectNew = data.getJSONObject(j);
- Date updateTime = sdf1.parse(jsonObjectNew.get("modifytime").toString());
- String ownerUuid = jsonObjectNew.get("number").toString();
- String owner = jsonObjectNew.get("name").toString();
- Date createTime = sdf1.parse(jsonObjectNew.get("createtime").toString());
- // 鐢熸垚鍟嗗搧妗f
- LocSupp locSupp = locSuppService.selectByUuid(ownerUuid);
- if (locSupp == null) {
- locSupp = new LocSupp();
- locSupp.setOwner(owner);
- locSupp.setOwnerUuid(ownerUuid);
- locSupp.setCreateTime(createTime);
- locSupp.setUpdateTime(updateTime);
- locSupp.setStatus(1);
- if (!locSuppService.insert(locSupp)) {
- callApiLogSaveSupp(locSupp, kingDeeUtilType, "鍚屾鏂颁緵搴斿晢鍑洪敊锛�" + locSupp, false);
- log.info("鍚屾鏂颁緵搴斿晢鍑洪敊锛佸弬鏁帮細[{}]銆乕{}]", locSupp, jsonObjectNew);
- } else {
- callApiLogSaveSupp(locSupp, kingDeeUtilType, "鍚屾鏂颁緵搴斿晢鎴愬姛锛�", true);
- }
- } else {
- boolean isUpdated = false;
- if (locSupp.getUpdateTime().compareTo(updateTime) != 0) {
- // 鏇存柊瀛楁
- if (!locSupp.getOwner().equals(owner)) locSupp.setOwner(owner);
- if (!locSupp.getOwnerUuid().equals(ownerUuid)) locSupp.setOwnerUuid(ownerUuid);
-
- if (locSupp.getCreateTime().compareTo(createTime) != 0)
- locSupp.setCreateTime(createTime);
- locSupp.setUpdateTime(updateTime);
- isUpdated = true;
- }
- // 鎵ц鏇存柊鎿嶄綔
- if (isUpdated) {
- if (!locSuppService.updateById(locSupp)) {
- callApiLogSaveSupp(locSupp, kingDeeUtilType, "鏇存柊渚涘簲鍟嗗嚭閿欙紒" + locSupp, false);
- log.info("鏇存柊渚涘簲鍟哰渚涘簲鍟嗙紪鍙凤細{}], 鏇存柊澶辫触锛�", locSupp.getOwnerUuid());
- } else {
- callApiLogSaveSupp(locSupp, kingDeeUtilType, "鏇存柊渚涘簲鍟嗘垚鍔燂紒", true);
- log.info("鏇存柊渚涘簲鍟哰渚涘簲鍟嗙紪鍙凤細{}]", locSupp.getOwnerUuid());
- }
- }
- }
- }
- }
- docType.setUpdateTime(now);
- docTypeService.updateById(docType);
- }
- //鏀舵枡鍗�
- else if(kingDeeUtilType.formId.equals("PUR_RECEIVEBIll")){
- int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
- int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
- int totalPages = (int) Math.ceil((double) totalCount / pageSize);
- for (int page = 1; page <= totalPages; page++) {
- jsonObject1.put("pageNo", page);
- add = jsonObject1.toJSONString();
- // 閲嶆柊鍙戣捣璇锋眰浠ヨ幏鍙栬椤电殑鏁版嵁
- response = new HttpHandler.Builder()
- .setHeaders(headers)
- .setUri(URL)
- .setPath(path)
- .setJson(add)
- .build()
- .doPost();
-
- jsonResponse = JSON.parseObject(response);
- data = jsonResponse.getJSONObject("data").getJSONArray("rows");
- for (int j = 0; j < data.size(); j++) {
- JSONObject jsonObjectNew = data.getJSONObject(j);
- Date createTime = sdf1.parse(jsonObjectNew.get("createtime").toString());
- String billNo = jsonObjectNew.get("billno").toString();//鍗曟嵁缂栧彿
- String owner = jsonObjectNew.get("org_name").toString();//璐т富鍚嶇О
- String ownerUuid = jsonObjectNew.get("org_number").toString();//erp璐т富缂栧彿
- String orderId = jsonObjectNew.get("id").toString();
- JSONObject detailParam = new JSONObject();
- JSONObject dataObj = new JSONObject();
- dataObj.put("billno", billNo);
- detailParam.put("pageNo", 1);
- detailParam.put("pageSize", 100);
- detailParam.put("data", dataObj);
- boolean hasNext = true;
- while (hasNext) {
- String reqJson = detailParam.toJSONString();
- String detailResp = new HttpHandler.Builder()
- .setHeaders(headers)
- .setUri(URL)
- .setPath(imPurreceiveBillDetlAddress)
- .setJson(reqJson)
- .build()
- .doPost();
- JSONObject detailJson = JSON.parseObject(detailResp);
- JSONObject detData = detailJson.getJSONObject("data");
- if(detData == null){
- continue;
- }
- JSONArray rows = detData.getJSONArray("rows");
- // ====== 澶勭悊鏄庣粏 ======
- for (int i = 0; i < rows.size(); i++) {
- JSONObject jsonObjectNew2 = rows.getJSONObject(i);
- Order order = orderService.selectByNo(billNo);//妫�绱㈠崟鎹�
- LocOwner locOwner = null;
- if (ownerUuid != null) {
- locOwner = locOwnerService.selectByUuid(ownerUuid);
- if (locOwner == null) {
- callApiLogSaveOwner(locOwner,kingDeeUtilType, "璐т富妫�绱㈠け璐ワ紝璇峰厛娣诲姞瀵瑰簲璐т富缂栧彿锛�"+ownerUuid+"鍚嶇О"+owner, false);continue;
- }
- } else{
- callApiLogSaveOwner(locOwner,kingDeeUtilType, "璐т富妫�绱㈠け璐ワ紝鏈煡璇㈠埌璐т富缂栧彿锛�", false);continue;
- }
- if (Cools.isEmpty(order)) {
- // 鍗曟嵁涓绘。
- order = new Order(
- String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
- billNo, // 璁㈠崟缂栧彿
- createTime.toString(), // 鍗曟嵁鏃ユ湡
- docType.getDocId(), // 鍗曟嵁绫诲瀷
- null, // 椤圭洰缂栧彿
- orderId, //鏀舵枡鍗昳d
- null, // 璋冩嫧椤圭洰缂栧彿
- null, // 鍒濆绁ㄦ嵁鍙�
- null, // 绁ㄦ嵁鍙�
- null, // 椤圭洰id
- owner, // 璐т富
- null, // 鑱旂郴鏂瑰紡
- null, // 鎿嶄綔浜哄憳
- null, // 鍚堣閲戦
- null, // 浼樻儬鐜�
- null, // 浼樻儬閲戦
- null, // 閿�鍞垨閲囪喘璐圭敤鍚堣
- null, // 瀹炰粯閲戦
- null, // 浠樻绫诲瀷
- null, // 涓氬姟鍛�
- null, // 缁撶畻澶╂暟
- null, // 閭垂鏀粯绫诲瀷
- null, // 閭垂
- null, // 浠樻鏃堕棿
- null, // 鍙戣揣鏃堕棿
- null, // 鐗╂祦鍚嶇О
- null, // 鐗╂祦鍗曞彿
- 1L, // 璁㈠崟鐘舵��
- 1, // 鐘舵��
- 9527L, // 娣诲姞浜哄憳
- now, // 娣诲姞鏃堕棿
- 9527L, // 淇敼浜哄憳
- now, // 淇敼鏃堕棿
- null, // 澶囨敞
- kingDeeUtilType.pakIn !=1?2:1
- );
- if( orderService.insert(order)){
- callApiLogSaveOrder(order, kingDeeUtilType, "鍒涘缓鍏ュ簱鍗曟垚鍔燂紒鍗曞彿锛�" + billNo, true);
- }
- }
- String suppCode = jsonObjectNew2.getString("supplier_number"); //渚涘簲鍟�
-
- JSONArray billEntryArray = jsonObjectNew2.getJSONArray("billentry");
- for (int k = 0; k < billEntryArray.size(); k++) {
- JSONObject entry = billEntryArray.getJSONObject(k);
- String matnr = entry.getString("material_number"); //鐗╂枡缂栫爜锛屽唴閮⊿KU
- Double anfme = entry.getDouble("eap7_decimalfield");//绠辨暟
- Double totalNumItems = entry.getDouble("eap7_decimalfield1");//鎬讳欢鏁�
- Double Totalvolume = entry.getDouble("eap7_decimalfield2");//鎬讳綋绉�
- String warehouse = entry.getString("warehouse_number");//浠撳簱缂栫爜
- String pOrderNo = entry.getString("eap7_textfield3");//閲囪喘鍗曞彿
- String s3 = entry.getString("eap7_textfield4");//瀹㈡埛sku锛堝鎴风紪鍙凤級
- String s2 = entry.getString("eap7_textfield5"); //鏉$爜UPC
- String memo = entry.getString("eap7_textfield6"); //澶囨敞锛堣嫳鏂囨弿杩帮級
- String s1 = entry.getString("eap7_textfield7"); //瀹㈡埛PO
- String detlId = entry.getString("id"); //鏄庣粏id
- Long seq = entry.getLong("seq"); //鍒嗗綍琛屽彿
-// String
- if(anfme == 0){
- callApiLogSaveOrder(order,kingDeeUtilType, "鍗曟嵁鏁伴噺寮傚父"+matnr, false);
- continue;
- }
- //鐗╂枡缂栫爜
- Mat mat = matService.selectByMatnr(matnr);
- if (Cools.isEmpty(mat)) {
- callApiLogSaveOrder(order,kingDeeUtilType, "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧"+matnr, false);
- continue;
- }
- if (mat.getSafeQty() == null || mat.getSafeQty() == 0) {
- callApiLogSaveOrder(order, kingDeeUtilType,
- "妗f绠辨暟閲忓紓甯革細" + matnr, false);
- continue;
- }
- Double erpAnfme = anfme*mat.getSafeQty();
- Order order1 = orderService.selectByNo( billNo);
- List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order1.getId());
- boolean sign = false;
- for (OrderDetl orderDetl : orderDetls){
- if (orderDetl.getMatnr().equals(matnr)){
- sign = true;
- break;
- }
- }
- if (sign){
- continue;
- }
- LocSupp locSupp = null;
- String supp =null;
- locSupp = locSuppService.selectByUuid(suppCode);
- if(locSupp != null){supp = locSupp.getOwner();}
- OrderDetl orderDetl = new OrderDetl();
- orderDetl.sync(mat);
- orderDetl.setThreeCode(detlId);//ERP鏄庣粏id
- orderDetl.setLineNumber(seq);//鍒嗗綍琛屽彿
- orderDetl.setAnfme(anfme);//鎬荤鏁�
- orderDetl.setErpAnfme(erpAnfme);//erp鏁版嵁
- orderDetl.setOrderId(order.getId());
- orderDetl.setOrderNo(order.getOrderNo());//琛ㄥご鍗曟嵁
- orderDetl.setSupp(supp);//渚涘簲鍟嗗悕绉帮紙璐ф簮锛�
- orderDetl.setSuppCode(suppCode);//渚涘簲鍟嗙紪鐮�
- orderDetl.setSku(matnr);//鍐呴儴SKU
- orderDetl.setStandby1(s1);//瀹㈡埛PO
- orderDetl.setStandby2(s2);//鏉$爜UPC
- orderDetl.setStandby3(s3);//瀹㈡埛SKU
- orderDetl.setBoxType1(owner); //璐т富鍚嶇О
- orderDetl.setBoxType2(ownerUuid);//璐т富缂栧彿锛坋rp缁勭粐锛�
- orderDetl.setBoxType3(pOrderNo);//閲囪喘鍗曞彿
- orderDetl.setMemo(memo);//鑻辨枃澶囨敞
- orderDetl.setVolume(Totalvolume);//鎬讳綋绉�
- orderDetl.setPrice(totalNumItems);//鎬讳欢鏁�
- orderDetl.setManu(warehouse);//浠撳簱缂栫爜
- orderDetl.setCreateBy(9527L);
- orderDetl.setCreateTime(new Date());
- orderDetl.setUpdateBy(9527L);
- orderDetl.setUpdateTime(new Date());
- orderDetl.setStatus(1);
- orderDetl.setQty(0.0D);
- orderDetlService.insert(orderDetl);
- }
- }
- // 鏄惁杩樻湁涓嬩竴椤�
- boolean lastPage = detData.getBoolean("lastPage");
- if (lastPage) {
- hasNext = false;
- } else {
- // 涓嬩竴椤�
- int currPage = detData.getIntValue("pageNo");
- detailParam.put("pageNo", currPage + 1);
- }
- }
- }
- }
- docType.setUpdateTime(now);
- docTypeService.updateById(docType);
- }
- //閿�鍞嚭搴�
- else if(kingDeeUtilType.formId.equals("SAL_OUTSTOCK")){
- int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
- int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
- int totalPages = (int) Math.ceil((double) totalCount / pageSize);
-
- for (int page = 1; page <= totalPages; page++) {
- jsonObject1.put("pageNo", page);
- add = jsonObject1.toJSONString();
-
- response = new HttpHandler.Builder()
- .setHeaders(headers)
- .setUri(URL)
- .setPath(path)
- .setJson(add)
- .build()
- .doPost();
-
- jsonResponse = JSON.parseObject(response);
- data = jsonResponse.getJSONObject("data").getJSONArray("rows");
-
- for (int j = 0; j < data.size(); j++) {
- JSONObject jsonObjectNew = data.getJSONObject(j);
- Date createTime = sdf1.parse(jsonObjectNew.getString("createtime"));
- String billNo = jsonObjectNew.getString("billno");
- String owner = jsonObjectNew.getString("org_name");
- String ownerUuid = jsonObjectNew.getString("org_number");
- String orderId = jsonObjectNew.getString("id");
- // ========= 璐т富鏍¢獙 =========
- LocOwner locOwner = locOwnerService.selectByUuid(ownerUuid);
-// if (locOwner == null) {
-// callApiLogSaveOwner(null, kingDeeUtilType,
-// "璐т富妫�绱㈠け璐ワ細" + ownerUuid + " 鍚嶇О锛�" + owner, false);
-// continue;
-// }
-
- // ========= 鍒涘缓璁㈠崟涓昏〃 =========
- Order order = orderService.selectByNo(billNo);
- if (Cools.isEmpty(order)) {
- order = new Order(
- // 鍗曟嵁涓绘。
- String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
- billNo, // 璁㈠崟缂栧彿
- createTime.toString(), // 鍗曟嵁鏃ユ湡
- docType.getDocId(), // 鍗曟嵁绫诲瀷
- null, // 椤圭洰缂栧彿
- orderId, //鏀舵枡鍗昳d
- null, // 璋冩嫧椤圭洰缂栧彿
- null, // 鍒濆绁ㄦ嵁鍙�
- null, // 绁ㄦ嵁鍙�
- null, // 椤圭洰id
- owner, // 璐т富
- null, // 鑱旂郴鏂瑰紡
- null, // 鎿嶄綔浜哄憳
- null, // 鍚堣閲戦
- null, // 浼樻儬鐜�
- null, // 浼樻儬閲戦
- null, // 閿�鍞垨閲囪喘璐圭敤鍚堣
- null, // 瀹炰粯閲戦
- null, // 浠樻绫诲瀷
- null, // 涓氬姟鍛�
- null, // 缁撶畻澶╂暟
- null, // 閭垂鏀粯绫诲瀷
- null, // 閭垂
- null, // 浠樻鏃堕棿
- null, // 鍙戣揣鏃堕棿
- null, // 鐗╂祦鍚嶇О
- null, // 鐗╂祦鍗曞彿
- 1L, // 璁㈠崟鐘舵��
- 1, // 鐘舵��
- 9527L, // 娣诲姞浜哄憳
- now, // 娣诲姞鏃堕棿
- 9527L, // 淇敼浜哄憳
- now, // 淇敼鏃堕棿
- null, // 澶囨敞
- kingDeeUtilType.pakIn !=1?2:1
- );
- if (orderService.insert(order)) {
- callApiLogSaveOrder(order, kingDeeUtilType,
- "鍒涘缓閿�鍞嚭搴撳崟鎴愬姛锛佸崟鍙凤細" + billNo, true);
- }
- }
-
- // ========= 鐩存帴浠庝富鎺ュ彛鍙栨槑缁� billentry =========
- JSONArray billEntryArray = jsonObjectNew.getJSONArray("billentry");
- if (billEntryArray == null || billEntryArray.isEmpty()) {
- continue;
- }
- for (int k = 0; k < billEntryArray.size(); k++) {
- JSONObject entry = billEntryArray.getJSONObject(k);
- String matnr = entry.getString("material_number"); //鐗╂枡缂栫爜锛屽唴閮⊿KU
- Double qty = entry.getDouble("qty");
- Double anfme = entry.getDouble("eap7_decimalfield");//绠辨暟
- Double totalNumItems = entry.getDouble("eap7_decimalfield1");//鎬讳欢鏁�
- Double totalVolume = entry.getDouble("eap7_decimalfield2");//鎬讳綋绉�
- String warehouse = entry.getString("warehouse_number");//浠撳簱缂栫爜
- String pOrderNo = entry.getString("eap7_textfield3");//閲囪喘鍗曞彿
- String s3 = entry.getString("eap7_textfield4");//瀹㈡埛sku锛堝鎴风紪鍙凤級
- String s2 = entry.getString("eap7_textfield5"); //鏉$爜UPC
- String memo = entry.getString("eap7_textfield6"); //澶囨敞锛堣嫳鏂囨弿杩帮級
- String s1 = entry.getString("eap7_textfield7"); //瀹㈡埛PO
- String detlId = entry.getString("id"); //鏄庣粏id
- Long seq = entry.getLong("seq"); //鍒嗗綍琛屽彿
-// String suppCode = entry.getString("supplier_number");
- String suppCode = null;
- if (qty == null || qty == 0) {
- callApiLogSaveOrder(order, kingDeeUtilType,
- "鍗曟嵁鏁伴噺寮傚父锛�" + matnr, false);
- continue;
- }
- // ========= 鐗╂枡鏍¢獙 =========
- Mat mat = matService.selectByMatnr(matnr);
- if (Cools.isEmpty(mat)) {
- callApiLogSaveOrder(order, kingDeeUtilType,
- "鍟嗗搧涓嶅瓨鍦細" + matnr, false);
- continue;
- }
- if (mat.getSafeQty() == null || mat.getSafeQty() == 0) {
- callApiLogSaveOrder(order, kingDeeUtilType,
- "妗f绠辨暟閲忓紓甯革細" + matnr, false);
- continue;
- }
- Double anfmeBox = qty/mat.getSafeQty();
- // ========= 鏄庣粏鍘婚噸 =========
- List<OrderDetl> orderDetls =
- orderDetlService.selectByOrderId(order.getId());
-
- boolean exists = orderDetls.stream()
- .anyMatch(o -> o.getMatnr().equals(matnr));
- if (exists) continue;
-// // ========= 渚涘簲鍟� =========
- String supp = null;
-// LocSupp locSupp = locSuppService.selectByUuid(suppCode);
-// if (locSupp != null) {
-// supp = locSupp.getOwner();
-// }
- // ========= 淇濆瓨鏄庣粏 =========
- OrderDetl orderDetl = new OrderDetl();
- orderDetl.sync(mat);
- orderDetl.setThreeCode(detlId);
- orderDetl.setLineNumber(seq);
- orderDetl.setAnfme(anfmeBox != anfme?anfme : anfmeBox);
- orderDetl.setErpAnfme(qty);
- orderDetl.setOrderId(order.getId());
- orderDetl.setOrderNo(order.getOrderNo());
- orderDetl.setSupp(supp);
- orderDetl.setSuppCode(suppCode);
- orderDetl.setSku(matnr);
- orderDetl.setStandby1(s1);
- orderDetl.setStandby2(s2);
- orderDetl.setStandby3(s3);
- orderDetl.setBoxType1(owner);
- orderDetl.setBoxType2(ownerUuid);
- orderDetl.setBoxType3(pOrderNo);
- orderDetl.setMemo(memo);
- orderDetl.setVolume(totalVolume);
- orderDetl.setSafeQty(totalNumItems);
- orderDetl.setManu(warehouse);
- orderDetl.setCreateBy(9527L);
- orderDetl.setCreateTime(new Date());
- orderDetl.setUpdateBy(9527L);
- orderDetl.setUpdateTime(new Date());
- orderDetl.setStatus(1);
- orderDetl.setQty(0.0D);
-
- orderDetlService.insert(orderDetl);
- }
- }
- docType.setUpdateTime(now);
- docTypeService.updateById(docType);
- }
-
- }
- //閿�鍞��璐�
- else if(kingDeeUtilType.formId.equals("SAL_RETURNSTOCK")){
- int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
- int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
- int totalPages = (int) Math.ceil((double) totalCount / pageSize);
-
- for (int page = 1; page <= totalPages; page++) {
- jsonObject1.put("pageNo", page);
- add = jsonObject1.toJSONString();
-
- response = new HttpHandler.Builder()
- .setHeaders(headers)
- .setUri(URL)
- .setPath(path)
- .setJson(add)
- .build()
- .doPost();
-
- jsonResponse = JSON.parseObject(response);
- data = jsonResponse.getJSONObject("data").getJSONArray("rows");
-
- for (int j = 0; j < data.size(); j++) {
- JSONObject jsonObjectNew = data.getJSONObject(j);
- Date createTime = sdf1.parse(jsonObjectNew.getString("createtime"));
- String billNo = jsonObjectNew.getString("billno");
- String owner = jsonObjectNew.getString("org_name");
- String ownerUuid = jsonObjectNew.getString("org_number");
- String orderId = jsonObjectNew.getString("id");
- // ========= 璐т富鏍¢獙 =========
- LocOwner locOwner = locOwnerService.selectByUuid(ownerUuid);
-// if (locOwner == null) {
-// callApiLogSaveOwner(null, kingDeeUtilType,
-// "璐т富妫�绱㈠け璐ワ細" + ownerUuid + " 鍚嶇О锛�" + owner, false);
-// continue;
-// }
-
- // ========= 鍒涘缓璁㈠崟涓昏〃 =========
- Order order = orderService.selectByNo(billNo);
- if (Cools.isEmpty(order)) {
- order = new Order(
- // 鍗曟嵁涓绘。
- String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
- billNo, // 璁㈠崟缂栧彿
- createTime.toString(), // 鍗曟嵁鏃ユ湡
- docType.getDocId(), // 鍗曟嵁绫诲瀷
- null, // 椤圭洰缂栧彿
- orderId, //鏀舵枡鍗昳d
- null, // 璋冩嫧椤圭洰缂栧彿
- null, // 鍒濆绁ㄦ嵁鍙�
- null, // 绁ㄦ嵁鍙�
- null, // 椤圭洰id
- owner, // 璐т富
- null, // 鑱旂郴鏂瑰紡
- null, // 鎿嶄綔浜哄憳
- null, // 鍚堣閲戦
- null, // 浼樻儬鐜�
- null, // 浼樻儬閲戦
- null, // 閿�鍞垨閲囪喘璐圭敤鍚堣
- null, // 瀹炰粯閲戦
- null, // 浠樻绫诲瀷
- null, // 涓氬姟鍛�
- null, // 缁撶畻澶╂暟
- null, // 閭垂鏀粯绫诲瀷
- null, // 閭垂
- null, // 浠樻鏃堕棿
- null, // 鍙戣揣鏃堕棿
- null, // 鐗╂祦鍚嶇О
- null, // 鐗╂祦鍗曞彿
- 1L, // 璁㈠崟鐘舵��
- 1, // 鐘舵��
- 9527L, // 娣诲姞浜哄憳
- now, // 娣诲姞鏃堕棿
- 9527L, // 淇敼浜哄憳
- now, // 淇敼鏃堕棿
- null, // 澶囨敞
- kingDeeUtilType.pakIn !=1?2:1
- );
- if (orderService.insert(order)) {
- callApiLogSaveOrder(order, kingDeeUtilType,
- "鍒涘缓鍑哄簱閫�璐у崟鎴愬姛锛佸崟鍙凤細" + billNo, true);
- }
- }
-
- // ========= 鐩存帴浠庝富鎺ュ彛鍙栨槑缁� billentry =========
- JSONArray billEntryArray = jsonObjectNew.getJSONArray("billentry");
- if (billEntryArray == null || billEntryArray.isEmpty()) {
- continue;
- }
- for (int k = 0; k < billEntryArray.size(); k++) {
- JSONObject entry = billEntryArray.getJSONObject(k);
- String matnr = entry.getString("material_number"); //鐗╂枡缂栫爜锛屽唴閮⊿KU
- Double anfme = entry.getDouble("eap7_decimalfield");//绠辨暟
- Double totalNumItems = entry.getDouble("eap7_decimalfield1");//鎬讳欢鏁�
- Double totalVolume = entry.getDouble("eap7_decimalfield2");//鎬讳綋绉�
- String warehouse = entry.getString("warehouse_number");//浠撳簱缂栫爜
- String pOrderNo = entry.getString("eap7_textfield3");//閲囪喘鍗曞彿
- String s3 = entry.getString("eap7_textfield4");//瀹㈡埛sku锛堝鎴风紪鍙凤級
- String s2 = entry.getString("eap7_textfield5"); //鏉$爜UPC
- String memo = entry.getString("eap7_textfield6"); //澶囨敞锛堣嫳鏂囨弿杩帮級
- String s1 = entry.getString("eap7_textfield7"); //瀹㈡埛PO
- String detlId = entry.getString("id"); //鏄庣粏id
- Long seq = entry.getLong("seq"); //鍒嗗綍琛屽彿
-// String suppCode = entry.getString("supplier_number");
- String suppCode = null;
- if (anfme == null || anfme == 0) {
- callApiLogSaveOrder(order, kingDeeUtilType,
- "鍗曟嵁鏁伴噺寮傚父锛�" + matnr, false);
- continue;
- }
- // ========= 鐗╂枡鏍¢獙 =========
- Mat mat = matService.selectByMatnr(matnr);
- if (Cools.isEmpty(mat)) {
- callApiLogSaveOrder(order, kingDeeUtilType,
- "鍟嗗搧涓嶅瓨鍦細" + matnr, false);
- continue;
- }
- if (mat.getSafeQty() == null || mat.getSafeQty() == 0) {
- callApiLogSaveOrder(order, kingDeeUtilType,
- "妗f绠辨暟閲忓紓甯革細" + matnr, false);
- continue;
- }
- Double erpAnfme = anfme*mat.getSafeQty();
- // ========= 鏄庣粏鍘婚噸 =========
- List<OrderDetl> orderDetls =
- orderDetlService.selectByOrderId(order.getId());
-
- boolean exists = orderDetls.stream()
- .anyMatch(o -> o.getMatnr().equals(matnr));
- if (exists) continue;
-// // ========= 渚涘簲鍟� =========
- String supp = null;
-// LocSupp locSupp = locSuppService.selectByUuid(suppCode);
-// if (locSupp != null) {
-// supp = locSupp.getOwner();
-// }
- // ========= 淇濆瓨鏄庣粏 =========
- OrderDetl orderDetl = new OrderDetl();
- orderDetl.sync(mat);
- orderDetl.setThreeCode(detlId);
- orderDetl.setLineNumber(seq);
- orderDetl.setAnfme(anfme);
- orderDetl.setErpAnfme(erpAnfme);
- orderDetl.setOrderId(order.getId());
- orderDetl.setOrderNo(order.getOrderNo());
- orderDetl.setSupp(supp);
- orderDetl.setSuppCode(suppCode);
- orderDetl.setSku(matnr);
- orderDetl.setStandby1(s1);
- orderDetl.setStandby2(s2);
- orderDetl.setStandby3(s3);
- orderDetl.setBoxType1(owner);
- orderDetl.setBoxType2(ownerUuid);
- orderDetl.setBoxType3(pOrderNo);
- orderDetl.setMemo(memo);
- orderDetl.setVolume(totalVolume);
- orderDetl.setSafeQty(totalNumItems);
- orderDetl.setManu(warehouse);
- orderDetl.setCreateBy(9527L);
- orderDetl.setCreateTime(new Date());
- orderDetl.setUpdateBy(9527L);
- orderDetl.setUpdateTime(new Date());
- orderDetl.setStatus(1);
- orderDetl.setQty(0.0D);
-
- orderDetlService.insert(orderDetl);
- }
- }
- }
- docType.setUpdateTime(now);
- docTypeService.updateById(docType);
- }
- //浜у搧妫�楠屽崟
- else if(kingDeeUtilType.formId.equals("STK_InspectionForm")){
- int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
- int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
- int totalPages = (int) Math.ceil((double) totalCount / pageSize);
-
- for (int page = 1; page <= totalPages; page++) {
- jsonObject1.put("pageNo", page);
- add = jsonObject1.toJSONString();
-
- response = new HttpHandler.Builder()
- .setHeaders(headers)
- .setUri(URL)
- .setPath(path)
- .setJson(add)
- .build()
- .doPost();
-
- jsonResponse = JSON.parseObject(response);
- data = jsonResponse.getJSONObject("data").getJSONArray("rows");
-
- for (int j = 0; j < data.size(); j++) {
- JSONObject jsonObjectNew = data.getJSONObject(j);
- Date createTime = sdf1.parse(jsonObjectNew.getString("createtime"));
- String billNo = jsonObjectNew.getString("billno");
- String owner = jsonObjectNew.getString("org_name");
- String ownerUuid = jsonObjectNew.getString("org_number");
- String orderId = jsonObjectNew.getString("id");
- // ========= 璐т富鏍¢獙 =========
- LocOwner locOwner = locOwnerService.selectByUuid(ownerUuid);
-// if (locOwner == null) {
-// callApiLogSaveOwner(null, kingDeeUtilType,
-// "璐т富妫�绱㈠け璐ワ細" + ownerUuid + " 鍚嶇О锛�" + owner, false);
-// continue;
-// }
-
- // ========= 鍒涘缓璁㈠崟涓昏〃 =========
- Order order = orderService.selectByNo(billNo);
- if (Cools.isEmpty(order)) {
- order = new Order(
- // 鍗曟嵁涓绘。
- String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
- billNo, // 璁㈠崟缂栧彿
- createTime.toString(), // 鍗曟嵁鏃ユ湡
- docType.getDocId(), // 鍗曟嵁绫诲瀷
- null, // 椤圭洰缂栧彿
- orderId, //鏀舵枡鍗昳d
- null, // 璋冩嫧椤圭洰缂栧彿
- null, // 鍒濆绁ㄦ嵁鍙�
- null, // 绁ㄦ嵁鍙�
- null, // 椤圭洰id
- owner, // 璐т富
- null, // 鑱旂郴鏂瑰紡
- null, // 鎿嶄綔浜哄憳
- null, // 鍚堣閲戦
- null, // 浼樻儬鐜�
- null, // 浼樻儬閲戦
- null, // 閿�鍞垨閲囪喘璐圭敤鍚堣
- null, // 瀹炰粯閲戦
- null, // 浠樻绫诲瀷
- null, // 涓氬姟鍛�
- null, // 缁撶畻澶╂暟
- null, // 閭垂鏀粯绫诲瀷
- null, // 閭垂
- null, // 浠樻鏃堕棿
- null, // 鍙戣揣鏃堕棿
- null, // 鐗╂祦鍚嶇О
- null, // 鐗╂祦鍗曞彿
- 1L, // 璁㈠崟鐘舵��
- 1, // 鐘舵��
- 9527L, // 娣诲姞浜哄憳
- now, // 娣诲姞鏃堕棿
- 9527L, // 淇敼浜哄憳
- now, // 淇敼鏃堕棿
- null, // 澶囨敞
- kingDeeUtilType.pakIn !=1?2:1
- );
- if (orderService.insert(order)) {
- callApiLogSaveOrder(order, kingDeeUtilType,
- "鍒涘缓閿�鍞嚭搴撳崟鎴愬姛锛佸崟鍙凤細" + billNo, true);
- }
- }
-
- // ========= 鐩存帴浠庝富鎺ュ彛鍙栨槑缁� billentry =========
- JSONArray billEntryArray = jsonObjectNew.getJSONArray("billentry");
- if (billEntryArray == null || billEntryArray.isEmpty()) {
- continue;
- }
- for (int k = 0; k < billEntryArray.size(); k++) {
- JSONObject entry = billEntryArray.getJSONObject(k);
- String matnr = entry.getString("material_number"); //鐗╂枡缂栫爜锛屽唴閮⊿KU
- Double anfme = entry.getDouble("eap7_decimalfield");//绠辨暟
- Double totalNumItems = entry.getDouble("eap7_decimalfield1");//鎬讳欢鏁�
- Double totalVolume = entry.getDouble("eap7_decimalfield2");//鎬讳綋绉�
- String warehouse = entry.getString("warehouse_number");//浠撳簱缂栫爜
- String pOrderNo = entry.getString("eap7_textfield3");//閲囪喘鍗曞彿
- String s3 = entry.getString("eap7_textfield4");//瀹㈡埛sku锛堝鎴风紪鍙凤級
- String s2 = entry.getString("eap7_textfield5"); //鏉$爜UPC
- String memo = entry.getString("eap7_textfield6"); //澶囨敞锛堣嫳鏂囨弿杩帮級
- String s1 = entry.getString("eap7_textfield7"); //瀹㈡埛PO
- String detlId = entry.getString("id"); //鏄庣粏id
- Long seq = entry.getLong("seq"); //鍒嗗綍琛屽彿
-// String suppCode = entry.getString("supplier_number");
- String suppCode = null;
- if (anfme == null || anfme == 0) {
- callApiLogSaveOrder(order, kingDeeUtilType,
- "鍗曟嵁鏁伴噺寮傚父锛�" + matnr, false);
- continue;
- }
- // ========= 鐗╂枡鏍¢獙 =========
- Mat mat = matService.selectByMatnr(matnr);
- if (Cools.isEmpty(mat)) {
- callApiLogSaveOrder(order, kingDeeUtilType,
- "鍟嗗搧涓嶅瓨鍦細" + matnr, false);
- continue;
- }
- // ========= 鏄庣粏鍘婚噸 =========
- List<OrderDetl> orderDetls =
- orderDetlService.selectByOrderId(order.getId());
-
- boolean exists = orderDetls.stream()
- .anyMatch(o -> o.getMatnr().equals(matnr));
- if (exists) continue;
-// // ========= 渚涘簲鍟� =========
- String supp = null;
-// LocSupp locSupp = locSuppService.selectByUuid(suppCode);
-// if (locSupp != null) {
-// supp = locSupp.getOwner();
-// }
- // ========= 淇濆瓨鏄庣粏 =========
- OrderDetl orderDetl = new OrderDetl();
- orderDetl.sync(mat);
- orderDetl.setThreeCode(detlId);
- orderDetl.setLineNumber(seq);
- orderDetl.setAnfme(anfme);
- orderDetl.setErpAnfme(anfme);
- orderDetl.setOrderId(order.getId());
- orderDetl.setOrderNo(order.getOrderNo());
- orderDetl.setSupp(supp);
- orderDetl.setSuppCode(suppCode);
- orderDetl.setSku(matnr);
- orderDetl.setStandby1(s1);
- orderDetl.setStandby2(s2);
- orderDetl.setStandby3(s3);
- orderDetl.setBoxType1(owner);
- orderDetl.setBoxType2(ownerUuid);
- orderDetl.setBoxType3(pOrderNo);
- orderDetl.setMemo(memo);
- orderDetl.setVolume(totalVolume);
- orderDetl.setSafeQty(totalNumItems);
- orderDetl.setManu(warehouse);
- orderDetl.setCreateBy(9527L);
- orderDetl.setCreateTime(new Date());
- orderDetl.setUpdateBy(9527L);
- orderDetl.setUpdateTime(new Date());
- orderDetl.setStatus(1);
- orderDetl.setQty(0.0D);
-
- orderDetlService.insert(orderDetl);
- }
- }
- }
- docType.setUpdateTime(now);
- docTypeService.updateById(docType);
-
- }
- //鐢熶骇棰嗘枡锛岀敓浜цˉ鏂�
- else if(kingDeeUtilType.formId.equals("PRD_PickMtrl") || kingDeeUtilType.formId.equals("PRD_FeedMtrl")){
- int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
- int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
- int totalPages = (int) Math.ceil((double) totalCount / pageSize);
- for (int page = 1; page <= totalPages; page++) {
- jsonObject1.put("pageNo", page);
- add = jsonObject1.toJSONString();
- response = new HttpHandler.Builder()
- .setHeaders(headers)
- .setUri(URL)
- .setPath(path)
- .setJson(add)
- .build()
- .doPost();
-
- jsonResponse = JSON.parseObject(response);
- data = jsonResponse.getJSONObject("data").getJSONArray("rows");
-
- for (int j = 0; j < data.size(); j++) {
- JSONObject jsonObjectNew = data.getJSONObject(j);
- Date createTime = sdf1.parse(jsonObjectNew.getString("createtime"));
- String billNo = jsonObjectNew.getString("billno");
- String owner = jsonObjectNew.getString("org_name");
- String ownerUuid = jsonObjectNew.getString("org_number");
- String orderId = jsonObjectNew.getString("id");
- // ========= 鍒涘缓璁㈠崟涓昏〃 =========
- Order order = orderService.selectByNo(billNo);
- if (Cools.isEmpty(order)) {
- order = new Order(
- // 鍗曟嵁涓绘。
- String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
- billNo, // 璁㈠崟缂栧彿
- createTime.toString(), // 鍗曟嵁鏃ユ湡
- docType.getDocId(), // 鍗曟嵁绫诲瀷
- null, // 椤圭洰缂栧彿
- orderId, //鏀舵枡鍗昳d
- null, // 璋冩嫧椤圭洰缂栧彿
- null, // 鍒濆绁ㄦ嵁鍙�
- null, // 绁ㄦ嵁鍙�
- null, // 椤圭洰id
- owner, // 璐т富
- null, // 鑱旂郴鏂瑰紡
- null, // 鎿嶄綔浜哄憳
- null, // 鍚堣閲戦
- null, // 浼樻儬鐜�
- null, // 浼樻儬閲戦
- null, // 閿�鍞垨閲囪喘璐圭敤鍚堣
- null, // 瀹炰粯閲戦
- null, // 浠樻绫诲瀷
- null, // 涓氬姟鍛�
- null, // 缁撶畻澶╂暟
- null, // 閭垂鏀粯绫诲瀷
- null, // 閭垂
- null, // 浠樻鏃堕棿
- null, // 鍙戣揣鏃堕棿
- null, // 鐗╂祦鍚嶇О
- null, // 鐗╂祦鍗曞彿
- 1L, // 璁㈠崟鐘舵��
- 1, // 鐘舵��
- 9527L, // 娣诲姞浜哄憳
- now, // 娣诲姞鏃堕棿
- 9527L, // 淇敼浜哄憳
- now, // 淇敼鏃堕棿
- null, // 澶囨敞
- kingDeeUtilType.pakIn !=1?2:1
- );
- if (orderService.insert(order)) {
- callApiLogSaveOrder(order, kingDeeUtilType,
- "鍒涘缓鐢熶骇棰嗘枡鍑哄簱鍗曟垚鍔燂紒鍗曞彿锛�" + billNo, true);
- }
- }
- // ========= 鐩存帴浠庝富鎺ュ彛鍙栨槑缁� billentry =========
- JSONArray billEntryArray = jsonObjectNew.getJSONArray("billentry");
- if (billEntryArray == null || billEntryArray.isEmpty()) {
- continue;
- }
- for (int k = 0; k < billEntryArray.size(); k++) {
- JSONObject entry = billEntryArray.getJSONObject(k);
- String matnr = entry.getString("material_number"); //鐗╂枡缂栫爜锛屽唴閮⊿KU
- Double anfme = entry.getDouble("qty");//涓暟
- Double anfmeBox = 0.0;//绠辨暟
- Double totalNumItems = entry.getDouble("eap7_decimalfield1");//鎬讳欢鏁�
- Double totalVolume = entry.getDouble("eap7_decimalfield2");//鎬讳綋绉�
- String warehouse = entry.getString("warehouse_number");//浠撳簱缂栫爜
- String pOrderNo = entry.getString("eap7_textfield3");//閲囪喘鍗曞彿
- String s3 = entry.getString("eap7_textfield4");//瀹㈡埛sku锛堝鎴风紪鍙凤級
- String s2 = entry.getString("eap7_textfield5"); //鏉$爜UPC
- String memo = entry.getString("eap7_textfield6"); //澶囨敞锛堣嫳鏂囨弿杩帮級
- String s1 = entry.getString("eap7_textfield7"); //瀹㈡埛PO
- String detlId = entry.getString("id"); //鏄庣粏id
- Long seq = entry.getLong("seq"); //鍒嗗綍琛屽彿
-// String suppCode = entry.getString("supplier_number");
- if(anfme == 0){
- callApiLogSaveOrder(order,kingDeeUtilType, "鍗曟嵁鏁伴噺寮傚父"+matnr, false);
- continue;
- }
- String suppCode = null;
- if (anfme == null || anfme == 0) {
- callApiLogSaveOrder(order, kingDeeUtilType,
- "鍗曟嵁鏁伴噺寮傚父锛�" + matnr, false);
- continue;
- }
- // ========= 鐗╂枡鏍¢獙 =========
- Mat mat = matService.selectByMatnr(matnr);
- if (Cools.isEmpty(mat)) {
- callApiLogSaveOrder(order, kingDeeUtilType,
- "鐗╂枡妗f涓嶅瓨鍦細" + matnr, false);
- continue;
- }
- if (mat.getSafeQty() == null || mat.getSafeQty() == 0) {
- callApiLogSaveOrder(order, kingDeeUtilType,
- "妗f绠辨暟閲忓紓甯革細" + matnr, false);
- continue;
- }
- anfmeBox = Math.floor(anfme / mat.getSafeQty());
- // ========= 鏄庣粏鍘婚噸 =========
- List<OrderDetl> orderDetls =
- orderDetlService.selectByOrderId(order.getId());
-
-
- boolean exists = orderDetls.stream()
- .anyMatch(o -> o.getMatnr().equals(matnr));
- if (exists) continue;
-// // ========= 渚涘簲鍟� =========
- String supp = null;
-// LocSupp locSupp = locSuppService.selectByUuid(suppCode);
-// if (locSupp != null) {
-// supp = locSupp.getOwner();
-// }
- // ========= 淇濆瓨鏄庣粏 =========
- OrderDetl orderDetl = new OrderDetl();
- orderDetl.sync(mat);
- orderDetl.setThreeCode(detlId);
- orderDetl.setLineNumber(seq);
- orderDetl.setAnfme(anfmeBox);
- orderDetl.setErpAnfme(anfme);
- orderDetl.setOrderId(order.getId());
- orderDetl.setOrderNo(order.getOrderNo());
- orderDetl.setSupp(supp);
- orderDetl.setSuppCode(suppCode);
- orderDetl.setSku(matnr);
- orderDetl.setStandby1(s1);
- orderDetl.setStandby2(s2);
- orderDetl.setStandby3(s3);
- orderDetl.setBoxType1(owner);
- orderDetl.setBoxType2(ownerUuid);
- orderDetl.setBoxType3(pOrderNo);
- orderDetl.setMemo(memo);
- orderDetl.setVolume(totalVolume);
- orderDetl.setSafeQty(totalNumItems);
- orderDetl.setManu(warehouse);
- orderDetl.setCreateBy(9527L);
- orderDetl.setCreateTime(new Date());
- orderDetl.setUpdateBy(9527L);
- orderDetl.setUpdateTime(new Date());
- orderDetl.setStatus(1);
- orderDetl.setQty(0.0D);
-
- orderDetlService.insert(orderDetl);
-
- }
- }
-
- }
- docType.setUpdateTime(now);
- docTypeService.updateById(docType);
- }
- //鐢熶骇閫�鏂欏崟PRD_ReturnMtrl
- else if(kingDeeUtilType.formId.equals("PRD_ReturnMtrl") ) {
- int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
- int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
- int totalPages = (int) Math.ceil((double) totalCount / pageSize);
-
- for (int page = 1; page <= totalPages; page++) {
- jsonObject1.put("pageNo", page);
- add = jsonObject1.toJSONString();
-
- response = new HttpHandler.Builder()
- .setHeaders(headers)
- .setUri(URL)
- .setPath(path)
- .setJson(add)
- .build()
- .doPost();
-
- jsonResponse = JSON.parseObject(response);
- data = jsonResponse.getJSONObject("data").getJSONArray("rows");
-
- for (int j = 0; j < data.size(); j++) {
- JSONObject jsonObjectNew = data.getJSONObject(j);
- Date createTime = sdf1.parse(jsonObjectNew.getString("createtime"));
- String billNo = jsonObjectNew.getString("billno");
- String owner = jsonObjectNew.getString("org_name");
- String ownerUuid = jsonObjectNew.getString("org_number");
- String orderId = jsonObjectNew.getString("id");
- // ========= 璐т富鏍¢獙 =========
- LocOwner locOwner = locOwnerService.selectByUuid(ownerUuid);
- if (locOwner == null) {
- callApiLogSaveOwner(null, kingDeeUtilType,
- "璐т富妫�绱㈠け璐ワ細" + ownerUuid + " 鍚嶇О锛�" + owner, false);
- continue;
- }
-
- // ========= 鍒涘缓璁㈠崟涓昏〃 =========
- Order order = orderService.selectByNo(billNo);
- if (Cools.isEmpty(order)) {
- order = new Order(
- // 鍗曟嵁涓绘。
- String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
- billNo, // 璁㈠崟缂栧彿
- createTime.toString(), // 鍗曟嵁鏃ユ湡
- docType.getDocId(), // 鍗曟嵁绫诲瀷
- null, // 椤圭洰缂栧彿
- orderId, //鏀舵枡鍗昳d
- null, // 璋冩嫧椤圭洰缂栧彿
- null, // 鍒濆绁ㄦ嵁鍙�
- null, // 绁ㄦ嵁鍙�
- null, // 椤圭洰id
- owner, // 璐т富
- null, // 鑱旂郴鏂瑰紡
- null, // 鎿嶄綔浜哄憳
- null, // 鍚堣閲戦
- null, // 浼樻儬鐜�
- null, // 浼樻儬閲戦
- null, // 閿�鍞垨閲囪喘璐圭敤鍚堣
- null, // 瀹炰粯閲戦
- null, // 浠樻绫诲瀷
- null, // 涓氬姟鍛�
- null, // 缁撶畻澶╂暟
- null, // 閭垂鏀粯绫诲瀷
- null, // 閭垂
- null, // 浠樻鏃堕棿
- null, // 鍙戣揣鏃堕棿
- null, // 鐗╂祦鍚嶇О
- null, // 鐗╂祦鍗曞彿
- 1L, // 璁㈠崟鐘舵��
- 1, // 鐘舵��
- 9527L, // 娣诲姞浜哄憳
- now, // 娣诲姞鏃堕棿
- 9527L, // 淇敼浜哄憳
- now, // 淇敼鏃堕棿
- null, // 澶囨敞
- kingDeeUtilType.pakIn !=1?2:1
- );
- if (orderService.insert(order)) {
- callApiLogSaveOrder(order, kingDeeUtilType,
- "鍒涘缓鐢熶骇琛ユ枡鍗曟垚鍔燂紒鍗曞彿锛�" + billNo, true);
- }
- }
-
- // ========= 鐩存帴浠庝富鎺ュ彛鍙栨槑缁� billentry =========
- JSONArray billEntryArray = jsonObjectNew.getJSONArray("billentry");
- if (billEntryArray == null || billEntryArray.isEmpty()) {
- continue;
- }
- for (int k = 0; k < billEntryArray.size(); k++) {
- JSONObject entry = billEntryArray.getJSONObject(k);
- String matnr = entry.getString("material_number"); //鐗╂枡缂栫爜锛屽唴閮⊿KU
- Double anfme = entry.getDouble("qty");//涓暟
- Double anfmeBox = 0.0;
- Double totalNumItems = entry.getDouble("eap7_decimalfield1");//鎬讳欢鏁�
- Double totalVolume = entry.getDouble("eap7_decimalfield2");//鎬讳綋绉�
- String warehouse = entry.getString("warehouse_number");//浠撳簱缂栫爜
- String pOrderNo = entry.getString("eap7_textfield3");//閲囪喘鍗曞彿
- String s3 = entry.getString("eap7_textfield4");//瀹㈡埛sku锛堝鎴风紪鍙凤級
- String s2 = entry.getString("eap7_textfield5"); //鏉$爜UPC
- String memo = entry.getString("eap7_textfield6"); //澶囨敞锛堣嫳鏂囨弿杩帮級
- String s1 = entry.getString("eap7_textfield7"); //瀹㈡埛PO
- String detlId = entry.getString("id"); //鏄庣粏id
- Long seq = entry.getLong("seq"); //鍒嗗綍琛屽彿
- String suppCode = entry.getString("supplier_number");
- if (anfme == null || anfme == 0) {
- callApiLogSaveOrder(order, kingDeeUtilType,
- "鍗曟嵁鏁伴噺寮傚父锛�" + matnr, false);
- continue;
- }
- // ========= 鐗╂枡鏍¢獙 =========
- Mat mat = matService.selectByMatnr(matnr);
- if (Cools.isEmpty(mat)) {
- callApiLogSaveOrder(order, kingDeeUtilType,
- "鍟嗗搧涓嶅瓨鍦細" + matnr, false);
- continue;
- }
- if (mat.getSafeQty() == null || mat.getSafeQty() == 0) {
- callApiLogSaveOrder(order, kingDeeUtilType,
- "妗f绠辨暟閲忓紓甯革細" + matnr, false);
- continue;
- }
- anfmeBox = Math.floor(anfme / mat.getSafeQty());
- // ========= 鏄庣粏鍘婚噸 =========
- List<OrderDetl> orderDetls =
- orderDetlService.selectByOrderId(order.getId());
-
- boolean exists = orderDetls.stream()
- .anyMatch(o -> o.getMatnr().equals(matnr));
- if (exists) continue;
-// // ========= 渚涘簲鍟� =========
- String supp = null;
- LocSupp locSupp = locSuppService.selectByUuid(suppCode);
- if (locSupp != null) {
- supp = locSupp.getOwner();
- }
- // ========= 淇濆瓨鏄庣粏 =========
-
- OrderDetl orderDetl = new OrderDetl();
- orderDetl.sync(mat);
- orderDetl.setThreeCode(detlId);
- orderDetl.setLineNumber(seq);
- orderDetl.setAnfme(anfmeBox);
- orderDetl.setErpAnfme(anfme);
- orderDetl.setOrderId(order.getId());
- orderDetl.setOrderNo(order.getOrderNo());
- orderDetl.setSupp(supp);
- orderDetl.setSuppCode(suppCode);
- orderDetl.setSku(matnr);
- orderDetl.setStandby1(s1);
- orderDetl.setStandby2(s2);
- orderDetl.setStandby3(s3);
- orderDetl.setBoxType1(owner);
- orderDetl.setBoxType2(ownerUuid);
- orderDetl.setBoxType3(pOrderNo);
- orderDetl.setMemo(memo);
- orderDetl.setVolume(totalVolume);
- orderDetl.setSafeQty(totalNumItems);
- orderDetl.setManu(warehouse);
- orderDetl.setCreateBy(9527L);
- orderDetl.setCreateTime(new Date());
- orderDetl.setUpdateBy(9527L);
- orderDetl.setUpdateTime(new Date());
- orderDetl.setStatus(1);
- orderDetl.setQty(0.0D);
-
- orderDetlService.insert(orderDetl);
- }
- }
- }
- docType.setUpdateTime(now);
- docTypeService.updateById(docType);
- }
- //鐢熶骇姹囨姤鍗�
- else if(kingDeeUtilType.formId.equals("PRD_MORPT") || kingDeeUtilType.formId.equals("OUI_RECEIVEBIll")) {
- int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
- int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
- int totalPages = (int) Math.ceil((double) totalCount / pageSize);
-
- for (int page = 1; page <= totalPages; page++) {
- jsonObject1.put("pageNo", page);
- add = jsonObject1.toJSONString();
-
- response = new HttpHandler.Builder()
- .setHeaders(headers)
- .setUri(URL)
- .setPath(path)
- .setJson(add)
- .build()
- .doPost();
-
- jsonResponse = JSON.parseObject(response);
- data = jsonResponse.getJSONObject("data").getJSONArray("rows");
-
- for (int j = 0; j < data.size(); j++) {
- JSONObject jsonObjectNew = data.getJSONObject(j);
- Date createTime = sdf1.parse(jsonObjectNew.getString("createtime"));
- String billNo = jsonObjectNew.getString("billno");
- String owner = "鍜屽緱绉戞妧";
- String ownerUuid = "BU-00001";
- String orderId = jsonObjectNew.getString("id");
- String manuBill = jsonObjectNew.getString("manufacturenun");
- // ========= 璐т富鏍¢獙 =========
- LocOwner locOwner = locOwnerService.selectByUuid(ownerUuid);
-// if (locOwner == null) {
-// callApiLogSaveOwner(null, kingDeeUtilType,
-// "璐т富妫�绱㈠け璐ワ細" + ownerUuid + " 鍚嶇О锛�" + owner, false);
-// continue;
-// }
-
- // ========= 鍒涘缓璁㈠崟涓昏〃 =========
- Order order = orderService.selectByNo(billNo);
- if (Cools.isEmpty(order)) {
- order = new Order(
- // 鍗曟嵁涓绘。
- String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
- billNo, // 璁㈠崟缂栧彿
- createTime.toString(), // 鍗曟嵁鏃ユ湡
- docType.getDocId(), // 鍗曟嵁绫诲瀷
- null, // 椤圭洰缂栧彿
- orderId, //鏀舵枡鍗昳d
- null, // 璋冩嫧椤圭洰缂栧彿
- manuBill, // 鍒濆绁ㄦ嵁鍙�
- null, // 绁ㄦ嵁鍙�
- null, // 椤圭洰id
- owner, // 璐т富
- null, // 鑱旂郴鏂瑰紡
- null, // 鎿嶄綔浜哄憳
- null, // 鍚堣閲戦
- null, // 浼樻儬鐜�
- null, // 浼樻儬閲戦
- null, // 閿�鍞垨閲囪喘璐圭敤鍚堣
- null, // 瀹炰粯閲戦
- null, // 浠樻绫诲瀷
- null, // 涓氬姟鍛�
- null, // 缁撶畻澶╂暟
- null, // 閭垂鏀粯绫诲瀷
- null, // 閭垂
- null, // 浠樻鏃堕棿
- null, // 鍙戣揣鏃堕棿
- null, // 鐗╂祦鍚嶇О
- null, // 鐗╂祦鍗曞彿
- 1L, // 璁㈠崟鐘舵��
- 1, // 鐘舵��
- 9527L, // 娣诲姞浜哄憳
- now, // 娣诲姞鏃堕棿
- 9527L, // 淇敼浜哄憳
- now, // 淇敼鏃堕棿
- null, // 澶囨敞
- kingDeeUtilType.pakIn !=1?2:1
- );
- if (orderService.insert(order)) {
- callApiLogSaveOrder(order, kingDeeUtilType,
- "鍒涘缓鐢熶骇姹囨姤鍗曟垚鍔燂紒鍗曞彿锛�" + billNo, true);
- }
- }
-
- // ========= 鐩存帴浠庝富鎺ュ彛鍙栨槑缁� billentry =========
- JSONArray billEntryArray = jsonObjectNew.getJSONArray("sumentry");
- if (billEntryArray == null || billEntryArray.isEmpty()) {
- continue;
- }
- for (int k = 0; k < billEntryArray.size(); k++) {
- JSONObject entry = billEntryArray.getJSONObject(k);
- String matnr = entry.getString("material_number"); //鐗╂枡缂栫爜锛屽唴閮⊿KU
- Double anfmeBox = 0.0;//绠辨暟
- Double anfme = entry.getDouble("completqty");//涓暟
- Double totalNumItems = entry.getDouble("eap7_decimalfield1");//鎬讳欢鏁�
- Double totalVolume = entry.getDouble("eap7_decimalfield2");//鎬讳綋绉�
- String warehouse = entry.getString("warehouse_number");//浠撳簱缂栫爜
- String pOrderNo = entry.getString("eap7_textfield");//閲囪喘鍗曞彿
- String s3 = entry.getString("eap7_textfield4");//瀹㈡埛sku锛堝鎴风紪鍙凤級
- String s2 = entry.getString("eap7_textfield1"); //鏉$爜UPC
- String memo = entry.getString("eap7_textfield6"); //澶囨敞锛堣嫳鏂囨弿杩帮級
- String s1 = entry.getString("eap7_textfield7"); //瀹㈡埛PO
- String detlId = entry.getString("id"); //鏄庣粏id
- Long seq = entry.getLong("seq"); //鍒嗗綍琛屽彿
- String manubill = entry.getString("manufacturenun");
- String manubillid = entry.getString("orderfid_id");
- String manuentryid = null;
- String manuentry = null;
- if(kingDeeUtilType.formId.equals("PRD_MORPT")){
- manuentryid = entry.getString("mftentryid");
-
- }else{
- manuentryid = entry.getString("osentryid");
- manuentry = entry.getString("manufacturerow");
- }
- String suppCode = null;
- if (anfme == null || anfme == 0) {
- callApiLogSaveOrder(order, kingDeeUtilType,
- "鍗曟嵁鏁伴噺寮傚父锛�" + matnr, false);
- continue;
- }
- // ========= 鐗╂枡鏍¢獙 =========
- Mat mat = matService.selectByMatnr(matnr);
- if (Cools.isEmpty(mat)) {
- callApiLogSaveOrder(order, kingDeeUtilType,
- "鍟嗗搧涓嶅瓨鍦細" + matnr, false);
- continue;
- }
- anfmeBox = Math.floor(anfme / mat.getSafeQty());
- // ========= 鏄庣粏鍘婚噸 =========
- List<OrderDetl> orderDetls =
- orderDetlService.selectByOrderId(order.getId());
-
- boolean exists = orderDetls.stream()
- .anyMatch(o -> o.getMatnr().equals(matnr));
- if (exists) continue;
-// // ========= 渚涘簲鍟� =========
- String supp = null;
-// LocSupp locSupp = locSuppService.selectByUuid(suppCode);
-// if (locSupp != null) {
-// supp = locSupp.getOwner();
-// }
- // ========= 淇濆瓨鏄庣粏 =========
- OrderDetl orderDetl = new OrderDetl();
- orderDetl.sync(mat);
- orderDetl.setModel(manubillid);//orderid_id
- orderDetl.setBrand(manuentryid);//manuentryid
- orderDetl.setSpecs(manuentry);//manufacturerow
- orderDetl.setColor(manubill);//manufacturenun
- orderDetl.setThreeCode(detlId);
- orderDetl.setLineNumber(seq);
- orderDetl.setAnfme(anfmeBox);
- orderDetl.setErpAnfme(anfme);//姹囨姤鍗曚釜鏁�
- orderDetl.setOrderId(order.getId());
- orderDetl.setOrderNo(order.getOrderNo());
- orderDetl.setSupp(supp);
- orderDetl.setSuppCode(suppCode);
- orderDetl.setSku(matnr);
- orderDetl.setStandby1(s1 != null? s1:"1");
- orderDetl.setStandby2(s2 != null? s2:"1");
- orderDetl.setStandby3(s3 != null? s3:"1");
- orderDetl.setBoxType1(owner);
- orderDetl.setBoxType2(ownerUuid);
- orderDetl.setBoxType3(pOrderNo);
- orderDetl.setMemo(memo);
- orderDetl.setVolume(totalVolume);
- orderDetl.setSafeQty(totalNumItems);
- orderDetl.setManu(warehouse);
- orderDetl.setCreateBy(9527L);
- orderDetl.setCreateTime(new Date());
- orderDetl.setUpdateBy(9527L);
- orderDetl.setUpdateTime(new Date());
- orderDetl.setStatus(1);
- orderDetl.setQty(0.0D);
-
- orderDetlService.insert(orderDetl);
- }
- }
- }
- docType.setUpdateTime(now);
- docTypeService.updateById(docType);
- }
-
-
- } catch (Exception e) {
- log.error("fail", e);
-// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg(e.getMessage());
- } finally {
-
- }
- }
- return SUCCESS;
- }
-
- public synchronized ReturnT<String> syncMaterialData(){
- SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd");
- //璇诲彇token
- ErpSecret erpSecret = erpSecretService.selectOne(new EntityWrapper<ErpSecret>().eq("account_id", accountId));
- for(KingDeeUtilType kingDeeUtilType : KingDeeUtilType.values()) {
- if (!kingDeeUtilType.formId.equals("BD_MATERIAL")) {
- continue;
- }
- 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));
- }
- //鏉′欢鍜岄渶瑕佽幏寰楃殑缁撴灉鎷兼帴
- JSONObject jsonObject = new JSONObject();
- String path = null;
- Date now = new Date();
- String latestUpdateTime = sdf1.format(docType.getUpdateTime());
- switch (kingDeeUtilType.formId) {
- case "BD_MATERIAL": //鐗╂枡鍚屾
- jsonObject.put("id", null);//id
- jsonObject.put("number", null);//缂栫爜
- jsonObject.put("createorg_number", null);//鍒涘缓缁勭粐
- jsonObject.put("start_createtime", "2025-01-01 00:00:00");//鍒涘缓璧峰
- jsonObject.put("end_createtime", sdf1.format(now));//鍒涘缓鎴
- jsonObject.put("start_modifytime", latestUpdateTime);//鏇存柊璧峰
- jsonObject.put("end_modifytime", sdf1.format(now));//鏇存柊鎴
- jsonObject.put("start_approvedate", "2025-01-01");//瀹℃牳璧峰
- jsonObject.put("end_approvedate", sdf2.format(now));//瀹℃牳鎴
- jsonObject.put("status", Arrays.asList("C"));//鏁版嵁鐘舵�� [A:鏆傚瓨, B:宸叉彁浜�, C:宸插鏍竇
- path = matAddress;
- break;
- }
- if (path == null) {
- continue;
- }
- JSONObject jsonObject1 = new JSONObject();
- jsonObject1.put("data", jsonObject);
- jsonObject1.put("pageSize", 20);
- jsonObject1.put("pageNo", 1);
- String add = jsonObject1.toJSONString();
- //涓婃姤
- String response = "";
- boolean success = false;
- if (path == null) {
- continue;
- }
- try {
- //鑾峰彇Cookie鍊�
- HashMap<String, Object> headers = new HashMap<>();
- headers.put("accesstoken", erpSecret.getAccessToken());
- headers.put("x-acgw-identity", xAcfwIdentity); // 鑷畾涔夎姹傚ご
- response = new HttpHandler.Builder()
- .setHeaders(headers)
- .setUri(URL)
- .setPath(path)
- .setJson(add)
- .build()
- .doPost();
- JSONObject jsonResponse = JSON.parseObject(response);
- if (jsonResponse.getString("errorCode").equals("401")) {
- log.error("妫�绱㈠け璐ラ敊璇俊鎭細{}", jsonResponse.getString("message"));
- loginAuthenticationHandler.start();
- continue;
- }
- JSONArray data = jsonResponse.getJSONObject("data").getJSONArray("rows");
- if (data.size() <= 0) continue;
- //鍟嗗搧妗f鍚屾
- if (kingDeeUtilType.formId.equals("BD_MATERIAL")) {
- Tag tag = tagService.selectByName("鍏ㄩ儴", 1);
- // 澶勭悊鍒嗛〉锛氭牴鎹繑鍥炵殑totalCount鍜宲ageSize璁$畻椤垫暟
- int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
- int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
- int totalPages = (int) Math.ceil((double) totalCount / pageSize);
-
- for (int page = 1; page <= totalPages; page++) {
- jsonObject1.put("pageNo", page);
- add = jsonObject1.toJSONString();
- // 閲嶆柊鍙戣捣璇锋眰浠ヨ幏鍙栬椤电殑鏁版嵁
- response = new HttpHandler.Builder()
- .setHeaders(headers)
- .setUri(URL)
- .setPath(path)
- .setJson(add)
- .build()
- .doPost();
-
- jsonResponse = JSON.parseObject(response);
- data = jsonResponse.getJSONObject("data").getJSONArray("rows");
- for (int j = 0; j < data.size(); j++) {
- JSONObject jsonObjectNew = data.getJSONObject(j);
- Date modifyTime = sdf1.parse(jsonObjectNew.get("modifytime").toString());
- String matnr = jsonObjectNew.get("number").toString();
- String name = jsonObjectNew.get("name").toString();
- String createTime = jsonObjectNew.get("createtime").toString();
- String memo = jsonObjectNew.get("eap7_textfield1").toString();
- Double height = getDecimalFieldAsDouble(jsonObjectNew, "eap7_decimalfield9");
- Double width = getDecimalFieldAsDouble(jsonObjectNew, "eap7_decimalfield8");
- Double length = getDecimalFieldAsDouble(jsonObjectNew, "eap7_decimalfield7");
- Double grossweight = getDecimalFieldAsDouble(jsonObjectNew, "eap7_decimalfield6");
- Double netweight = getDecimalFieldAsDouble(jsonObjectNew, "eap7_decimalfield");
- Double unit = getDecimalFieldAsDouble(jsonObjectNew, "eap7_decimalfield2");
- // 鐢熸垚鍟嗗搧妗f
- Double height1 = height * 10;
- Double width1 = width * 10;
- Double length1 = length * 10;
- Mat mat = matService.selectByMatnr(matnr);
- if (mat == null) {
- mat = new Mat();
- mat.setMatnr(matnr);
- mat.setMaktx(name);
- mat.setTagId(tag.getId());
- mat.setWeight(grossweight);//鍑�閲�
- mat.setUnits(netweight);//姣涢噸
- mat.setSafeQty(unit);//
- mat.setManLength(length1);
- mat.setHeight(height1);
- mat.setWidth(width1);
- mat.setMemo(memo);
- mat.setCreateTime(sdf1.parse(createTime));
- mat.setUpdateTime(modifyTime);
- mat.setStatus(1);
- if (!matService.insert(mat)) {
- callApiLogSaveMat(mat, kingDeeUtilType, "鍚屾鏂扮墿鏂欏嚭閿欙紒" + mat, false);
- log.info("鍚屾鏂扮墿鏂欏嚭閿欙紒鍙傛暟锛歔{}]銆乕{}]", mat, jsonObjectNew);
- } else {
- callApiLogSaveMat(mat, kingDeeUtilType, "鍚屾鏂扮墿鏂欐垚鍔燂紒", true);
- success = true;
- }
- } else {
- boolean isUpdated = false;
- if (mat.getUpdateTime().compareTo(modifyTime) != 0) {
- // 鏇存柊瀛楁
- if (!mat.getMaktx().equals(name)) mat.setMaktx(name);
- if (!mat.getMemo().equals(memo)) mat.setMemo(memo);
- if (mat.getWeight().compareTo(grossweight) != 0) mat.setWeight(grossweight);
- if (mat.getUnits().compareTo(netweight) != 0) mat.setUnits(netweight);
- if (mat.getSafeQty().compareTo(unit) != 0) mat.setSafeQty(unit);
- if (mat.getManLength().compareTo(length) != 0) mat.setManLength(length1);
- if (mat.getHeight().compareTo(height) != 0) mat.setHeight(height1);
- if (mat.getWidth().compareTo(width) != 0) mat.setWidth(width1);
- if (mat.getCreateTime().compareTo(sdf1.parse(createTime)) != 0)
- mat.setCreateTime(sdf1.parse(createTime));
- mat.setUpdateTime(modifyTime);
- isUpdated = true;
- }
- // 鎵ц鏇存柊鎿嶄綔
- if (isUpdated) {
- if (!matService.updateById(mat)) {
- callApiLogSaveMat(mat, kingDeeUtilType, "鏇存柊鐗╂枡鍑洪敊锛�" + mat, false);
- log.info("鏇存柊鐗╂枡[鍟嗗搧缂栧彿锛歿}], 鏇存柊澶辫触锛�", mat.getMatnr());
- } else {
- callApiLogSaveMat(mat, kingDeeUtilType, "鏇存柊鐗╂枡鎴愬姛锛�", true);
- success = true;
- log.info("鏇存柊鐗╂枡[鍟嗗搧缂栧彿锛歿}]", mat.getMatnr());
- }
- }
- }
- }
- }
- if (success) {
- docType.setUpdateTime(now);
- docTypeService.updateById(docType);
- }
- }
- }catch (Exception e) {
- log.error("fail", e);
- return FAIL.setMsg(e.getMessage());
- }
- }
- return SUCCESS;
- }
-
- public void callApiLogSaveMat(Mat mat, KingDeeUtilType kingDeeUtilType, String response, Boolean bool) {
- apiLogService.save("鑾峰彇"+kingDeeUtilType.desc, kingDeeUtilType.formId, "null", URL,
- "鐗╂枡缂栧彿锛�" + mat.getMatnr() + "銆佺墿鏂欏悕绉帮細" + mat.getMaktx() + "銆佹瘺閲嶏細" + mat.getWeight()
- + "銆侀暱锛�" + mat.getManLength()
- + "銆佸锛�" + mat.getWidth()
- + "銆侀珮锛�" + mat.getHeight()
- + "銆佺姸鎬侊細" + mat.getStatus$(),
- response, bool);
- }
-
- public void callApiLogSaveSupp(LocSupp locSupp, KingDeeUtilType kingDeeUtilType, String response, Boolean bool) {
- apiLogService.save("鑾峰彇"+kingDeeUtilType.desc, kingDeeUtilType.formId, "null", URL,
- "渚涘簲鍟嗙紪鍙凤細" + locSupp.getOwnerUuid() + "銆佷緵搴斿晢鍚嶇О锛�" + locSupp.getOwner(),
- response, bool);
- }
- public void callApiLogSaveOwner(LocOwner locOwner, KingDeeUtilType kingDeeUtilType, String response, Boolean bool) {
- apiLogService.save("鑾峰彇"+kingDeeUtilType.desc, kingDeeUtilType.formId, "null", URL,
- "璐т富缂栧彿锛�" + locOwner.getOwnerUuid() + "銆佽揣涓诲悕绉帮細" + locOwner.getOwner(),
- response, bool);
- }
-
- public void callApiLogSaveOrder(Order order, KingDeeUtilType kingDeeUtilType, String response, Boolean bool) {
- apiLogService.save("鑾峰彇"+kingDeeUtilType.desc, kingDeeUtilType.formId, "null", URL,
- "鍗曟嵁缂栧彿锛�" + order.getOrderNo() + "銆佺姸鎬侊細" + order.getStatus$(),
- response, bool);
- }
- public Double getDecimalFieldAsDouble(JSONObject jsonObject, String fieldName) {
- Object field = jsonObject.get(fieldName);
-
- if (field instanceof BigDecimal) {
- return ((BigDecimal) field).doubleValue();
- } else if (field instanceof Integer) {
- return ((Integer) field).doubleValue();
- } else if (field instanceof Double) {
- return (Double) field;
- } else {
- return 0.0; // 榛樿鍊�
- }
- }
-
-
-}
\ 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 74a5da9..0000000
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/LoginAuthenticationHandler.java
+++ /dev/null
@@ -1,163 +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.exception.CoolException;
-import com.zy.asrs.entity.ErpSecret;
-import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.service.ApiLogService;
-import com.zy.asrs.service.impl.ErpSecretServiceImpl;
-import com.zy.asrs.task.AbstractHandler;
-import com.zy.asrs.task.core.ReturnT;
-import com.zy.common.utils.HttpHandler;
-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.HashMap;
-import java.util.Map;
-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.clientId}")
- //WMS绔疘D
- private String clientId;
-
- @Value("${erp.login.clientSecret}")
- //璐﹀彿瀵嗛挜
- private String clientSecret;
-
- @Value("${erp.login.username}")
- private String username;
-
- @Value("${erp.login.accountId}")
- private String accountId;
-
- @Value("${erp.login.xAcfwIdentity}")
- private String xAcfwIdentity;
-
- @Autowired
- private ApiLogService apiLogService;
- @Autowired
- private ErpSecretServiceImpl erpSecretService;
-
- /**
- * 45鍒嗛挓鐧诲綍涓�娆¢噾铦剁郴缁�
- * @return
- */
- @Transactional
- public synchronized ReturnT<String> start() {
- ErpSecret erpSecret = erpSecretService.selectOne(new EntityWrapper<ErpSecret>().eq("account_id", accountId));
- String time = String.valueOf(System.currentTimeMillis());
- // 鍒涘缓璇锋眰鍙傛暟
- JSONObject requestPayload = new JSONObject();
- requestPayload.put("client_id", clientId);
- requestPayload.put("client_secret", clientSecret);
- requestPayload.put("username", username);
- requestPayload.put("accountId", accountId);
- requestPayload.put("nonce", erpSecret.getRefreshToken());//鍒锋柊token
- requestPayload.put("timestamp", time);
- requestPayload.put("language", "zh_CN");
-
- // 鍒涘缓璇锋眰澶�
- Map<String, Object> headers = new HashMap<>();
- headers.put("x-acgw-identity", xAcfwIdentity); // 鑷畾涔夎姹傚ご
- headers.put("Content-Type", "application/json;charset=UTF-8");
- String response = "";
- boolean success = false;
- String accessToken = "";
- try {
- // 浣跨敤 HttpHandler 鍙戣捣璇锋眰
- response = new HttpHandler.Builder()
- .setUri(URL)
- .setPath(loginaddress) // 鐧诲綍鎺ュ彛璺緞
- .setJson(requestPayload.toJSONString()) // 璇锋眰浣�
- .setHeaders(headers) // 璁剧疆璇锋眰澶�
- .build()
- .doPost(); // 鎵цPOST璇锋眰
- // 瑙f瀽杩斿洖缁撴灉
- JSONObject jsonResponse = JSON.parseObject(response);
- // 鍒ゆ柇璇锋眰鏄惁鎴愬姛
- if (jsonResponse.getBooleanValue("status")) {
- accessToken = jsonResponse.getJSONObject("data").getString("access_token");
- String refreshToken = jsonResponse.getJSONObject("data").getString("refresh_token");
- success = true;
- erpSecret.setRefreshToken(refreshToken);
- erpSecret.setAccessToken(accessToken);
- if(erpSecretService.saveErpSecret(erpSecret)){
- log.info("鑾峰彇鏇存柊Token鎴愬姛: {}", accessToken);
- }
- } else {
- log.error("鑾峰彇Token澶辫触锛岄敊璇俊鎭細{}", jsonResponse.getString("message"));
- callApiLogSaveLog(requestPayload.toJSONString(), false);
- }
-
- } catch (Exception e) {
- log.error("鑾峰彇Token澶辫触锛屽紓甯镐俊鎭細", e);
- callApiLogSaveLog(requestPayload.toJSONString(), false);
- return FAIL.setMsg(e.getMessage());
- }
-
- if (!success) {
- return FAIL.setMsg("Token鑾峰彇澶辫触");
- }
-
- return SUCCESS.setContent(accessToken);
- }
-
-
- /**
- * 閫掑綊鏌ユ壘JSON涓殑鎸囧畾瀛楁
- */
- public static Object findValueByKey(JSONObject json, String key) {
- Set<String> keySet = json.keySet();
- for (String k : keySet) {
- 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; 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;
- }
-
- /**
- * 淇濆瓨API鏃ュ織
- */
- public void callApiLogSaveLog(String response, Boolean bool) {
- apiLogService.save("鐧诲綍閲戣澏澶辫触", URL, "绔彛", loginaddress,
- "璐﹀彿Id锛�"+accountId+"銆佺敤鎴风Id锛�"+clientId+"銆佺敤鎴峰瘑閽ワ細"+clientSecret+"銆乽sername锛�"+username+"銆乺efresh_token锛�",
- 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 ef4ef37..0000000
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/ReviewOrderSyncHandler.java
+++ /dev/null
@@ -1,288 +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.ErpSecret;
-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.service.impl.ErpSecretServiceImpl;
-import com.zy.asrs.task.AbstractHandler;
-import com.zy.asrs.task.core.ReturnT;
-import com.zy.asrs.utils.OrderInAndOutUtil;
-import com.zy.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.text.SimpleDateFormat;
-import java.util.Arrays;
-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.imPurinbillBatchAudit}")
- //瀹℃牳鍦板潃
- private String imPurinbillBatchAudit;
- @Value("${erp.address.imSaloutbillReport}")
- //閿�鍞嚭搴撳崟瀹℃牳鍦板潃
- private String imSaloutbillReport;
- @Value("${erp.address.scpSalreturnReport}")
- //閿�鍞��璐у崟瀹℃牳鍦板潃
- private String scpSalreturnReport;
-
- @Value("${erp.address.imMdcMftproorderReport}")
- //鐢熶骇棰嗘枡鍗曚笂鎶�
- private String imMdcMftproorderReport;
- @Value("${erp.address.imMdcMftreturnorderReport}")
- //鐢熶骇閫�鏂欏崟涓婃姤
- private String imMdcMftreturnorderReport;
- @Value("${erp.address.imMdcMftfeedorderReport}")
- //鐢熶骇琛ユ枡鍗曚笂鎶�
- private String imMdcMftfeedorderReport;
- @Value("${erp.address.imProductinbillBatchAudit}")
- //鐢熶骇姹囨姤鍗曚笂鎶�
- private String imProductinbillBatchAudit;
- @Value("${erp.address.imOtheroutbillAudi}")
- //鍏朵粬鍑哄簱瀹℃牳涓婃姤
- private String imOtheroutbillAudi;
- @Value("${erp.address.imOtherinbillAudit}")
- //鍏朵粬鍏ュ簱瀹℃牳涓婃姤
- private String imOtherinbillAudit;
-
- @Value("${erp.address.imMdcOmprdinbillBatchAudit}")
- //鍏朵粬鍏ュ簱瀹℃牳涓婃姤
- private String imMdcOmprdinbillBatchAudit;
- @Autowired
- private OrderService orderService;
- @Autowired
- private ApiLogService apiLogService;
- @Autowired
- private DocTypeService docTypeService;
- @Autowired
- private ErpSecretServiceImpl erpSecretService;
- @Autowired
- private LoginAuthenticationHandler loginAuthenticationHandler;
- @Value("${erp.login.accountId}")
- private String accountId;
- @Value("${erp.login.xAcfwIdentity}")
- private String xAcfwIdentity;
- private String path;
- @Transactional
- public ReturnT<String> start(Order order) {
- SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
-
- // 鑾峰彇 Token
- ErpSecret erpSecret = erpSecretService.selectOne(new EntityWrapper<ErpSecret>().eq("account_id", accountId));
-
- // 鑾峰彇 DocType
- DocType docType = docTypeService.selectById(order.getDocType());
- if (docType == null) return SUCCESS;
-
- // 鑾峰彇 KingDee 绫诲瀷
- KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get(docType.getDocName());
-
- // 鏋勫缓璇锋眰鍙傛暟
- JSONObject add = buildRequestParams(order, kingDeeUtilType, sdf1, sdf2);
- if (add == null) return FAIL.setMsg("璇锋眰鍙傛暟鏋勫缓澶辫触");
-
- // 鍙戦�佽姹傚苟澶勭悊鍝嶅簲
- return sendRequestAndProcessResponse(order, erpSecret, add);
- }
-
- private JSONObject buildRequestParams(Order order, KingDeeUtilType kingDeeUtilType,
- SimpleDateFormat sdf1, SimpleDateFormat sdf2) {
- JSONArray idArray = new JSONArray();
- JSONObject dataObj = new JSONObject();
- if(kingDeeUtilType == null){
- return null;
- }
- switch(kingDeeUtilType.formId) {
- case "PUR_RECEIVEBIll": // 杩涗粨閫氱煡鍗曟彁浜�
- path = imPurinbillBatchAudit;
- idArray.add(order.getNumber());
- dataObj.fluentPut("id", idArray);
- return new JSONObject().fluentPut("data", dataObj);
- case "SAL_OUTSTOCK"://閿�鍞嚭搴撲笂鎶�
- path = imSaloutbillReport;
- idArray.add(order.getOrderNo());
- dataObj.fluentPut("billno", idArray);
- return new JSONObject().fluentPut("data", dataObj);
- case "STK_imSaloutbill":
- path = imSaloutbillReport;
- idArray.add(order.getShipCode());
- dataObj.fluentPut("billno", idArray);
- return new JSONObject().fluentPut("data", dataObj);
- case "OUI_RECEIVEBIll":
- path = imMdcOmprdinbillBatchAudit;
- idArray.add(order.getShipCode());
- dataObj.fluentPut("billno", idArray);
- return new JSONObject().fluentPut("data", dataObj);
- case "SAL_RETURNSTOCK"://閿�鍞��鏂欏崟
- path = scpSalreturnReport;
- dataObj.fluentPut("billno", order.getOrderNo());
- return new JSONObject().fluentPut("data", dataObj);
- case "PRD_PickMtrl"://鐢熶骇棰嗘枡鍗曚笂鎶�
- path = imMdcMftproorderReport;
- idArray.add(order.getNumber());
- dataObj.fluentPut("ids", idArray);
- return new JSONObject().fluentPut("data", dataObj);
- case "PRD_ReturnMtrl"://鐢熶骇閫�鏂欏崟涓婃姤
- path = imMdcMftreturnorderReport;
- idArray.add(order.getNumber());
- dataObj.fluentPut("id", idArray);
- return new JSONObject().fluentPut("data", dataObj);
- case "PRD_FeedMtrl": //鐢熶骇琛ユ枡鍗�
- path = imMdcMftfeedorderReport;
- idArray.add(order.getNumber());
- dataObj.fluentPut("id", idArray);
- return new JSONObject().fluentPut("data", dataObj);
- case "PRD_MORPT"://鐢熶骇姹囨姤鍗�
- path = imProductinbillBatchAudit;
- idArray.add(order.getNumber());
- dataObj.fluentPut("ids", idArray);
- return new JSONObject().fluentPut("data", dataObj);
-
- case "STK_MISCELLANEOUS"://鍏朵粬鍏ュ簱鍗�
- path = imOtheroutbillAudi;
- idArray.add(order.getId());
- dataObj.fluentPut("id", idArray);
- return new JSONObject().fluentPut("data", dataObj);
- case "STK_MisDelivery"://鍏朵粬鍑哄簱鍗�
- path = imOtherinbillAudit;
- idArray.add(order.getId());
- dataObj.fluentPut("id", idArray);
- return new JSONObject().fluentPut("data", dataObj);
- default:
- throw new IllegalArgumentException("Unsupported formId: " + kingDeeUtilType.formId);
- }
- }
-
- private ReturnT<String> sendRequestAndProcessResponse(Order order, ErpSecret erpSecret, JSONObject add) {
- String response = "";
- boolean success = false;
-
- try {
- // 璁剧疆璇锋眰澶�
- HashMap<String, Object> headers = buildRequestHeaders(erpSecret);
-
- // 鍙戦�佽姹傦紝灏� JSONObject 杞崲涓� String
- response = new HttpHandler.Builder()
- .setHeaders(headers)
- .setUri(URL)
- .setPath(path)
- .setJson(add.toJSONString()) // 灏� JSONObject 杞崲涓� String
- .build()
- .doPost();
-
- // 瑙f瀽鍝嶅簲
- JSONObject jsonResponse = JSON.parseObject(response);
-
- // 鍒ゆ柇鏄惁鍥犱负 token 杩囨湡 (errorCode = 401)
- if ("401".equals(jsonResponse.getString("errorCode"))) {
- log.error("璁よ瘉澶辫触锛屽皾璇曢噸鏂拌幏鍙� Token");
- loginAuthenticationHandler.start(); // 鍒锋柊 token
- // 閲嶆柊鑾峰彇鏂扮殑 token
- erpSecret = erpSecretService.selectOne(new EntityWrapper<ErpSecret>().eq("account_id", accountId)); // 閲嶆柊浠庢暟鎹簱鑾峰彇鏂扮殑 token
- // 浣跨敤鏂扮殑 token 閲嶈瘯璇锋眰
- headers.put("accesstoken", erpSecret.getAccessToken());
- response = new HttpHandler.Builder()
- .setHeaders(headers)
- .setUri(URL)
- .setPath(path)
- .setJson(add.toJSONString()) // 灏� JSONObject 杞崲涓� String
- .build()
- .doPost();
- }
- // 瑙f瀽杩斿洖鐨勫搷搴�
- JSONObject data = jsonResponse.getJSONObject("data");
- boolean status = jsonResponse.getBooleanValue("status");
- if (status) {
- // 鑾峰彇鎴愬姛涓庡け璐ョ殑鏁伴噺
- int successCount = data.getInteger("successCount");
- int failCount = data.getInteger("failCount");
-
- if (failCount == 0) {
- success = true;
- log.info("鎺ュ彛璋冪敤鎴愬姛锛屾垚鍔熺殑鎿嶄綔鏁伴噺: {}", successCount);
- } else {
- log.error("鎺ュ彛璋冪敤澶辫触锛屽け璐ョ殑鎿嶄綔鏁伴噺: {}", failCount);
- // 濡傛灉鏈夊け璐ョ殑鍗曟嵁锛岄亶鍘� result 鏁扮粍鏌ョ湅澶辫触鐨勮缁嗕俊鎭�
- JSONArray resultArray = data.getJSONArray("result");
- for (int i = 0; i < resultArray.size(); i++) {
- JSONObject resultItem = resultArray.getJSONObject(i);
- if (!resultItem.getBoolean("billStatus")) {
- // 鍗曟嵁澶勭悊澶辫触锛岃褰曢敊璇俊鎭�
- String billNo = resultItem.getString("number"); // 鑾峰彇杩斿洖鐨勫崟鎹彿
- JSONArray errors = resultItem.getJSONArray("errors"); // 鑾峰彇閿欒淇℃伅
-
- // 鎵撳嵃鍗曟嵁鍙峰拰閿欒淇℃伅
- log.error("鍗曟嵁鍙�: {}, 閿欒淇℃伅: {}", billNo, errors);
- }
- }
- }
- if((order.getDocType() == 16L || order.getDocType() == 24L || order.getDocType() == 3) && order.getCstmrName().equals("鍜屽緱绉戞妧")){
- order.setDocType(23L);
- order.setSettle(4L);//杞负鍑哄簱鍗曟嵁涓婃姤
- }else{
- if(order.getDocType() == 23L){
- Order order1 = orderService.selectOne(new EntityWrapper<Order>().eq("salesman",order.getOrderNo()));
- orderService.updateOrderStatus4(order1.getOrderNo());
- }
- order.setSettle(8L); // 鏇存柊鐘舵�佷负宸蹭笂鎶ュ鏍� 9->8
- }
- orderService.updateById(order);
- } else {
- log.error("鎺ュ彛璋冪敤澶辫触锛岄敊璇俊鎭�: {}", jsonResponse.getString("message"));
- }
- } catch (Exception e) {
- log.error("璇锋眰澶辫触", e);
- return FAIL.setMsg(e.getMessage());
- } finally {
- // 淇濆瓨鎺ュ彛鏃ュ織
- saveApiLog(add, response, success);
- }
-
- return success ? SUCCESS : FAIL;
- }
-
- private HashMap<String, Object> buildRequestHeaders(ErpSecret erpSecret) {
- HashMap<String, Object> headers = new HashMap<>();
- headers.put("accesstoken", erpSecret.getAccessToken());
- headers.put("x-acgw-identity", xAcfwIdentity); // 鑷畾涔夎姹傚ご
- return headers;
- }
-
- private void saveApiLog(JSONObject add, String response, boolean success) {
- try {
- apiLogService.save(
- "鍗曟嵁涓婃姤瀹℃牳",
- URL + imPurinbillBatchAudit,
- null,
- "127.0.0.1",
- add.toJSONString(),
- response,
- success
- );
- } catch (Exception e) {
- log.error("鎺ュ彛鏃ュ織淇濆瓨澶辫触", e);
- }
- }
-}
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 32e427d..0000000
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java
+++ /dev/null
@@ -1,556 +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.*;
-import com.zy.asrs.service.ApiLogService;
-import com.zy.asrs.service.DocTypeService;
-import com.zy.asrs.service.OrderService;
-import com.zy.asrs.service.impl.ErpSecretServiceImpl;
-import com.zy.asrs.service.impl.MatServiceImpl;
-import com.zy.asrs.service.impl.OrderDetlPakinServiceImpl;
-import com.zy.asrs.service.impl.OrderDetlServiceImpl;
-import com.zy.asrs.task.AbstractHandler;
-import com.zy.asrs.task.core.ReturnT;
-import com.zy.asrs.utils.OrderInAndOutUtil;
-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.text.SimpleDateFormat;
-import java.util.*;
-
-/**
- * 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.imPurinbillAdd}")
- private String imPurinbillAdd;
- @Value("${erp.address.imOtheroutbill}")
- private String imOtheroutbill;
- @Value("${erp.address.imOtherinbill}")
- private String imOtherinbill;
- @Value("${erp.address.imProductinbillReport}")
- private String imProductinbillReport;
- @Value("${erp.address.imSaloutbillSave}")
- private String imSaloutbillSave;
- @Value("${erp.address.imMdcOmprdinbillSave}")
- private String imMdcOmprdinbillSave;
- @Autowired
- private OrderService orderService;
- @Autowired
- private ApiLogService apiLogService;
- @Autowired
- private DocTypeService docTypeService;
- @Autowired
- private LoginAuthenticationHandler loginAuthenticationHandler;
- @Autowired
- private ErpSecretServiceImpl erpSecretService;
- @Autowired
- private OrderDetlPakinServiceImpl orderDetlPakinService;
- @Autowired
- private OrderDetlServiceImpl orderDetlService;
-
- @Value("${erp.login.accountId}")
- private String accountId;
- @Value("${erp.login.xAcfwIdentity}")
- private String xAcfwIdentity;
- String path;
- @Autowired
- private MatServiceImpl matService;
-
- @Transactional
- public ReturnT<String> start(Order order) {
- SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
-
- // 鑾峰彇 Token
- ErpSecret erpSecret = erpSecretService.selectOne(new EntityWrapper<ErpSecret>().eq("account_id", accountId));
-
- // 鑾峰彇 DocType
- DocType docType = docTypeService.selectById(order.getDocType());
- if (docType == null) return SUCCESS;
-
- // 鑾峰彇 KingDee 绫诲瀷
- KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get(docType.getDocName());
-
- // 鏋勫缓璇锋眰鍙傛暟
- JSONObject add = buildRequestParams(order, kingDeeUtilType, sdf1, sdf2);
- if (add == null) return FAIL.setMsg("璇锋眰鍙傛暟鏋勫缓澶辫触");
-
- // 鍙戦�佽姹傚苟澶勭悊鍝嶅簲
- return sendRequestAndProcessResponse(order, erpSecret, add);
- }
-
- private JSONObject buildRequestParams(Order order, KingDeeUtilType kingDeeUtilType, SimpleDateFormat sdf1, SimpleDateFormat sdf2) {
- List<OrderDetl> orderDetlList = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no",order.getOrderNo()));
- if (kingDeeUtilType == null || kingDeeUtilType.formId == null) {
- log.warn("kingDeeUtilType 涓虹┖锛屽凡璺宠繃鏈鍚屾锛�");
- return null;
- }
- switch (kingDeeUtilType.formId) {
- case "PUR_RECEIVEBIll": // 杩涗粨閫氱煡鍗�
- path = imPurinbillAdd;
- JSONArray billentryLkArray = new JSONArray();
- JSONArray billentryArray = new JSONArray(); // 鐢ㄤ簬瀛樺偍 billentry 瀵硅薄
- String suppCode = null; // 渚涘簲鍟�
- String boxType2 = null; // 璐т富/璐ф簮
- Date now = new Date();
- for (OrderDetl orderDetl : orderDetlList) {
- suppCode = orderDetl.getSuppCode();
- boxType2 = orderDetl.getBoxType2();
- if (orderDetl.getQty() == 0) {
- continue;
- }
- Mat mat = matService.selectByMatnr(orderDetl.getMatnr());
- Double qty = orderDetl.getQty()*mat.getSafeQty();
-// Double qtytotal = orderDetl.getAnfme()*mat.getSafeQty();
-// JSONArray idArr = new JSONArray();
-// idArr.add(0L);
- // 鍒涘缓 billentry_lk 瀵硅薄
- JSONObject billentryLk = new JSONObject()
- .fluentPut("id", 0L)
- .fluentPut("seq", orderDetl.getLineNumber())
- .fluentPut("billentry_lk_stableid", 677270092232273922L)
- .fluentPut("billentry_lk_sbillid", Long.parseLong(order.getItemName())) // 涓诲崟ID
- .fluentPut("billentry_lk_sid", Long.parseLong(orderDetl.getThreeCode())) // 鏄庣粏ID
- .fluentPut("billentry_lk_baseqty_old", orderDetl.getAnfme()) // ERP鏁伴噺
- .fluentPut("billentry_lk_baseqty", qty); // 浣滀笟鏁伴噺
- billentryLkArray.add(billentryLk);
- // 鍒涘缓 billentry 瀵硅薄锛屽~鍏呯己澶辩殑瀛楁
- JSONObject billentry = new JSONObject()
- .fluentPut("id", 0L)
- .fluentPut("warehouse_number", orderDetl.getManu()) // 浠撳簱缂栧彿
- .fluentPut("invstatus_number", "110") // 搴撳瓨鐘舵��
- .fluentPut("invtype_number", "110") // 搴撳瓨绫诲瀷
- .fluentPut("outinvstatus_number", "110")
- .fluentPut("linetype_number", "010") // 琛屽彿绫诲瀷
- .fluentPut("qty", qty) // 鏁伴噺
- .fluentPut("material_number", orderDetl.getMatnr()) // 鐗╂枡缂栧彿
- .fluentPut("billentry_lk", billentryLkArray);
-
- billentryArray.add(billentry);
- }
- return new JSONObject()
- .fluentPut("data", new JSONArray(Arrays.asList(
- new JSONObject()
- .fluentPut("billno", UUID.randomUUID().toString().replace("-", "").substring(0, 16))
- .fluentPut("trdbillno", UUID.randomUUID().toString().replace("-", ""))
- .fluentPut("billtype_number", "im_PurInBill_STD_BT_S")
- .fluentPut("biztime", sdf1.format(now))
- .fluentPut("exratedate", sdf1.format(now))
- .fluentPut("bizorg_number", boxType2)
- .fluentPut("biztype_number", "110") // 璐т富/璐ф簮
- .fluentPut("org_number", boxType2) // 璐т富/璐ф簮
- .fluentPut("paymode", "CREDIT")
- .fluentPut("invscheme_number", "110")
- .fluentPut("billtype_number", "im_PurInBill_STD_BT_S")
- .fluentPut("supplier_number", suppCode) // 渚涘簲鍟嗙紪鍙�
- .fluentPut("billentry", billentryArray) // 灏� billentry 鏁扮粍娣诲姞鍒拌姹傚弬鏁�
- )));
- case "PRD_MORPT": // 鐢熶骇姹囨姤鍗�
- JSONArray billentryLkArray1 = new JSONArray();
- JSONArray billentryArray1 = new JSONArray(); // 鐢ㄤ簬瀛樺偍 billentry 瀵硅薄
- String suppCode1 = null; // 渚涘簲鍟�
- String boxType21 = null; // 璐т富/璐ф簮
- Date now1 = new Date();
- path = imProductinbillReport;
- for (OrderDetl orderDetl : orderDetlList) {
- suppCode1 = orderDetl.getSuppCode();
- boxType21 = orderDetl.getBoxType2();
- if (orderDetl.getQty() == 0) {
- continue;
- }
- Mat mat = matService.selectByMatnr(orderDetl.getMatnr());
- Double qty = orderDetl.getQty()*mat.getSafeQty();
-// Double qtytotal = orderDetl.getAnfme()*mat.getSafeQty();
-// JSONArray idArr = new JSONArray();
-// idArr.add(0L);
- // 鍒涘缓 billentry_lk 瀵硅薄
- JSONObject billentryLk = new JSONObject()
- .fluentPut("id", 0L)
- .fluentPut("seq", orderDetl.getLineNumber())
- .fluentPut("billentry_lk_stableid", 1014628189722381313L)
- .fluentPut("billentry_lk_sbillid", Long.parseLong(order.getItemName())) // 涓诲崟ID
- .fluentPut("billentry_lk_sid", Long.parseLong(orderDetl.getThreeCode())); // 鏄庣粏ID
-// .fluentPut("billentry_lk_baseqty_old", orderDetl.getErpAnfme()) // ERP鏁伴噺
-// .fluentPut("billentry_lk_baseqty", qty); // 浣滀笟鏁伴噺
- billentryLkArray1.add(billentryLk);
- // 鍒涘缓 billentry 瀵硅薄锛屽~鍏呯己澶辩殑瀛楁
- JSONObject billentry = new JSONObject()
- .fluentPut("id", 0L)
- .fluentPut("warehouse_number", orderDetl.getManu()) // 浠撳簱缂栧彿
- .fluentPut("qty", qty) // 鏁伴噺
- .fluentPut("baseqty", orderDetl.getErpAnfme())
- .fluentPut("ownertype", "bos_org")
- .fluentPut("keepertype", "bos_org")
- .fluentPut("keeper_number", "BU-00001")
- .fluentPut("owner_number", "BU-00001")
- .fluentPut("manuentry", orderDetl.getLineNumber())
-
- .fluentPut("prdunitid_number", "涓�")
- .fluentPut("warehouse_number", "CK-002")
- .fluentPut("srcbillentity", "pom_mftorderreport")
- .fluentPut("srcbillid", Long.parseLong(order.getItemName()))
- .fluentPut("srcbillentryid", Long.parseLong(orderDetl.getThreeCode()))
- .fluentPut("srcbillnumber", order.getOrderNo())
- .fluentPut("srcbillentryseq", orderDetl.getLineNumber())
- .fluentPut("outownertype", "bos_org")
- .fluentPut("outkeepertype", "bos_org")
- .fluentPut("prdqty", qty)
- .fluentPut("manubill", order.getDefNumber())
- .fluentPut("manubillid", orderDetl.getModel())
- .fluentPut("manuentryid", orderDetl.getBrand())
- .fluentPut("producttype", "C")
- .fluentPut("qualitystatus", "A")
- .fluentPut("eap7_textfield", orderDetl.getMaktx())
- .fluentPut("material_number", orderDetl.getMatnr())
- .fluentPut("invtype_number", "110")
- .fluentPut("qualitystatus", "A")
-
- .fluentPut("billentry_lk", billentryLkArray1);
-
- billentryArray1.add(billentry);
- }
- return new JSONObject()
- .fluentPut("data", new JSONArray(Arrays.asList(
- new JSONObject()
- .fluentPut("billno", UUID.randomUUID().toString().replace("-", "").substring(0, 16))
- .fluentPut("trdbillno", UUID.randomUUID().toString().replace("-", ""))
- .fluentPut("billstatus", "A")
- .fluentPut("invscheme_number", "331")
- .fluentPut("biztype_number", "330")
- .fluentPut("org_number", "BU-00001")
- .fluentPut("bizorg_number", "BU-00001")
- .fluentPut("biztime", sdf1.format(now1))
- .fluentPut("productionorg_number", "BU-00001")
- .fluentPut("dept_number", "Org-00002")
-
- .fluentPut("billentry", billentryArray1) // 灏� billentry 鏁扮粍娣诲姞鍒拌姹傚弬鏁�
- )));
- case "OUI_RECEIVEBIll":
- JSONArray billentryLkArray2 = new JSONArray();
- JSONArray billentryArray2 = new JSONArray(); // 鐢ㄤ簬瀛樺偍 billentry 瀵硅薄
- String suppCode2 = null; // 渚涘簲鍟�
- String boxType22 = null; // 璐т富/璐ф簮
- Date now2 = new Date();
- path = imMdcOmprdinbillSave;
- for (OrderDetl orderDetl : orderDetlList) {
- suppCode2 = orderDetl.getSuppCode();
- boxType22 = orderDetl.getBoxType2();
- if (orderDetl.getQty() == 0) {
- continue;
- }
- Mat mat = matService.selectByMatnr(orderDetl.getMatnr());
- Double qty = orderDetl.getQty()*mat.getSafeQty();
-// Double qtytotal = orderDetl.getAnfme()*mat.getSafeQty();
-// JSONArray idArr = new JSONArray();
-// idArr.add(0L);
- // 鍒涘缓 billentry_lk 瀵硅薄
- JSONObject billentryLk = new JSONObject()
- .fluentPut("id", 0L)
- .fluentPut("seq", orderDetl.getLineNumber())
- .fluentPut("billentry_lk_stableid", 1828884569948973056L)
- .fluentPut("billentry_lk_sbillid", Long.parseLong(order.getItemName())) // 涓诲崟ID
- .fluentPut("billentry_lk_sid", Long.parseLong(orderDetl.getThreeCode())); // 鏄庣粏ID
-// .fluentPut("billentry_lk_baseqty_old", orderDetl.getErpAnfme()) // ERP鏁伴噺
-// .fluentPut("billentry_lk_baseqty", qty); // 浣滀笟鏁伴噺
- billentryLkArray2.add(billentryLk);
- // 鍒涘缓 billentry 瀵硅薄锛屽~鍏呯己澶辩殑瀛楁
- JSONObject billentry = new JSONObject()
- .fluentPut("id", 0L)
- .fluentPut("warehouse_number", orderDetl.getManu()) // 浠撳簱缂栧彿
- .fluentPut("qty", qty) // 鏁伴噺
- .fluentPut("baseqty", orderDetl.getErpAnfme())
- .fluentPut("ownertype", "bos_org")
- .fluentPut("keepertype", "bos_org")
- .fluentPut("outownertype", "bos_org")
- .fluentPut("outkeepertype", "bos_org")
- .fluentPut("keeper_number", "BU-00001")
- .fluentPut("owner_number", "BU-00001")
- .fluentPut("manuentry", orderDetl.getSpecs())
- .fluentPut("manubill", orderDetl.getColor())
- .fluentPut("manubillid", Long.parseLong(orderDetl.getModel()))
- .fluentPut("manuentryid", orderDetl.getBrand())
- .fluentPut("producttype", "C")
- .fluentPut("eap7_textfield", orderDetl.getBoxType3())
-
- .fluentPut("unit_number", "pcs")
- .fluentPut("baseunit_number", "pcs")
- .fluentPut("warehouse_number", "CK-002")
- .fluentPut("owner_number", "BU-00001")
- .fluentPut("keeper_number", "BU-00001")
- .fluentPut("invtype_number", "110")
- .fluentPut("outowner_number", "BU-00001")
- .fluentPut("outkeeper_number", "BU-00001")
- .fluentPut("shipper_number", "BU-00001")
- .fluentPut("entrysettleorg_number", "BU-00001")
- .fluentPut("material_masterid_number", orderDetl.getMatnr())
-
- .fluentPut("billentry_lk", billentryLkArray2);
-
- billentryArray2.add(billentry);
- }
- return new JSONObject()
- .fluentPut("data", new JSONArray(Arrays.asList(
- new JSONObject()
- .fluentPut("billno", UUID.randomUUID().toString().replace("-", "").substring(0, 16))
- .fluentPut("billstatus", "A")
- .fluentPut("id", 0L)
- .fluentPut("biztime", sdf1.format(now2))
- .fluentPut("org_number", "BU-00001")
- .fluentPut("billtype_number", "im_mdc_omprdinbill_BT_S")
- .fluentPut("bizorg_number", "BU-00001")
- .fluentPut("bizdept_number", "Org-00001")
- .fluentPut("dept_number", "Org-00001")
- .fluentPut("biztype_number", "605")
- .fluentPut("invscheme_number", "601")
- .fluentPut("purorg_number", "BU-00001")
- .fluentPut("productionorg_number", "BU-00001")
- .fluentPut("supplier_number", "272")
-
- .fluentPut("billentry", billentryArray2) // 灏� billentry 鏁扮粍娣诲姞鍒拌姹傚弬鏁�
- )));
- case "STK_imSaloutbill":
- path = imSaloutbillSave;
- billentryArray = new JSONArray();
- for (OrderDetl orderDetl : orderDetlList) {
- if (orderDetl.getQty() == 0) {
- continue;
- }
- Mat mat = matService.selectByMatnr(orderDetl.getMatnr());
- Double qty = orderDetl.getQty()*mat.getSafeQty();
- JSONObject billentry = new JSONObject()
- .fluentPut("id", 0L)
- .fluentPut("material_number", orderDetl.getMatnr()) // 鐗╂枡缂栫爜
- .fluentPut("qty", qty) // 鏁伴噺
- .fluentPut("outkeepertype", "bos_org") // 浠撳簱
- .fluentPut("outkeeper_number", "BU-00001")
- .fluentPut("outinvtype_number", "110")
- .fluentPut("warehouse_number", "CK-002")
- .fluentPut("outinvstatus_number", "110")
- .fluentPut("outownertype", "bos_org")
- .fluentPut("outowner_number", "BU-00001")
- .fluentPut("keepertype", "bos_org")
- .fluentPut("eap7_textfield3", orderDetl.getBoxType3())
- .fluentPut("ownertype", "bos_org")
- .fluentPut("eap7_decimalfield", orderDetl.getQty())
- .fluentPut("seq", orderDetl.getLineNumber());
- billentryArray.add(billentry);
- }
- Date nowMis = new Date();
- return new JSONObject()
- .fluentPut("data", new JSONArray(Arrays.asList(
- new JSONObject()
- .fluentPut("id", 0L)
- .fluentPut("billno", UUID.randomUUID().toString().replace("-", "").substring(0, 16))
- .fluentPut("bizorg_number", "BU-00001")
- .fluentPut("dept_number", "Org-00002")
- .fluentPut("billstatus", "A")
- .fluentPut("customer_number", "Cus-000004")
- .fluentPut("biztime", sdf1.format(nowMis))
- .fluentPut("biztype_number", "210")
- .fluentPut("bizdept_number", "Org-00002")
- .fluentPut("org_number", "BU-00001")
- .fluentPut("invscheme_number", "210")
- .fluentPut("settlecurrency_number", "CNY")
- .fluentPut("exchangerate", 1L)
-
- .fluentPut("billentry", billentryArray)
- )));
-// case "STK_MISCELLANEOUS": // 鍏朵粬鍏ュ簱鍗�
-// path = imOtherinbill;
-// billentryArray = new JSONArray();
-// for (OrderDetl orderDetl : orderDetlList) {
-// if (orderDetl.getQty() == 0) {
-// continue;
-// }
-// Mat mat = matService.selectByMatnr(orderDetl.getMatnr());
-// Double qty = orderDetl.getQty()*mat.getSafeQty();
-// JSONObject billentry = new JSONObject()
-// .fluentPut("id", 0L)
-// .fluentPut("material_number", orderDetl.getMatnr()) // 鐗╂枡缂栫爜
-// .fluentPut("qty", qty) // 鏁伴噺
-// .fluentPut("warehouse_number", "CK001") // 浠撳簱
-// .fluentPut("invstatus_number", "110")
-// .fluentPut("invtype_number", "110")
-// .fluentPut("outinvstatus_number", "110")
-// .fluentPut("outinvtype_number", "110")
-// .fluentPut("linetype_number", "010");
-// billentryArray.add(billentry);
-// }
-// Date nowMis = new Date();
-// return new JSONObject()
-// .fluentPut("data", new JSONArray(Arrays.asList(
-// new JSONObject()
-//// .fluentPut("id", 0L)
-// .fluentPut("billno", order.getOrderNo())
-//// .fluentPut("bookdate", sdf1.format(nowMis))
-// .fluentPut("biztime", sdf1.format(nowMis))
-//// .fluentPut("biztype_number", "354")
-//// .fluentPut("billtype_number", "im_OtherInBill_STD_BT_S")
-//// .fluentPut("org_number", "BU-00001")
-//// .fluentPut("invscheme_number", "354")
-// .fluentPut("billentry", billentryArray)
-// )));
- case "STK_MisDelivery": // 鍏朵粬鍑哄簱鍗�
- path = imOtheroutbill;
- billentryArray = new JSONArray();
- Date nowOut = new Date();
- for (OrderDetl orderDetl : orderDetlList) {
- if (orderDetl.getQty() == 0) {
- continue;
- }
- JSONObject billentry = new JSONObject()
- .fluentPut("id", 0L)
- .fluentPut("material_number", orderDetl.getMatnr()) // 鐗╂枡缂栫爜
- .fluentPut("qty", orderDetl.getQty()) // 鏁伴噺
- .fluentPut("warehouse_number", "CK001") // 浠撳簱
- .fluentPut("invstatus_number", "110")
- .fluentPut("invtype_number", "110")
- .fluentPut("outinvstatus_number", "110")
- .fluentPut("outinvtype_number", "110")
- .fluentPut("linetype_number", "010");
- billentryArray.add(billentry);
- }
- return new JSONObject()
- .fluentPut("data", new JSONArray(Arrays.asList(
- new JSONObject()
-// .fluentPut("id", 0L)
- .fluentPut("billno", order.getOrderNo())
-// .fluentPut("bookdate", sdf1.format(nowMis))
- .fluentPut("biztime", sdf1.format(nowOut))
- .fluentPut("biztype_number", "354")
- .fluentPut("billtype_number", "im_OtherInBill_STD_BT_S")
- .fluentPut("org_number", "BU-00001")
- .fluentPut("invscheme_number", "354")
- .fluentPut("billentry", billentryArray)
- )));
- default:
- throw new IllegalArgumentException("Unsupported formId: " + kingDeeUtilType.formId);
- }
- }
-
-
- private ReturnT<String> sendRequestAndProcessResponse(Order order, ErpSecret erpSecret, JSONObject add) {
- String response = "";
- boolean success = false;
- try {
- // 璁剧疆璇锋眰澶�
- HashMap<String, Object> headers = buildRequestHeaders(erpSecret);
- // 鍙戦�佽姹傦紝灏� JSONObject 杞崲涓� String
- response = new HttpHandler.Builder()
- .setHeaders(headers)
- .setUri(URL)
- .setPath(path)
- .setJson(add.toJSONString()) // 灏� JSONObject 杞崲涓� String
- .build()
- .doPost();
- // 瑙f瀽鍝嶅簲
- JSONObject jsonResponse = JSON.parseObject(response);
- // 鍒ゆ柇鏄惁鍥犱负 token 杩囨湡 (errorCode = 401)
- if ("401".equals(jsonResponse.getString("errorCode"))) {
- log.error("璁よ瘉澶辫触锛屽皾璇曢噸鏂拌幏鍙� Token");
- loginAuthenticationHandler.start(); // 鍒锋柊 token
- // 閲嶆柊鑾峰彇鏂扮殑 token
- erpSecret = erpSecretService.selectOne(new EntityWrapper<ErpSecret>().eq("account_id", accountId)); // 閲嶆柊浠庢暟鎹簱鑾峰彇鏂扮殑 token
- // 浣跨敤鏂扮殑 token 閲嶈瘯璇锋眰
- headers.put("accesstoken", erpSecret.getAccessToken());
- response = new HttpHandler.Builder()
- .setHeaders(headers)
- .setUri(URL)
- .setPath(path)
- .setJson(add.toJSONString()) // 灏� JSONObject 杞崲涓� String
- .build()
- .doPost();
- }
- // 瑙f瀽杩斿洖鐨勫搷搴�
- JSONObject data = jsonResponse.getJSONObject("data");
- String errorCode = jsonResponse.getString("errorCode");
- boolean status = jsonResponse.getBooleanValue("status");
- // 妫�鏌ユ帴鍙h皟鐢ㄧ殑鏁翠綋鐘舵��
- if ("0".equals(errorCode) && status) {
- // 鑾峰彇鎴愬姛涓庡け璐ョ殑鏁伴噺
- int successCount = data.getInteger("successCount");
- int failCount = data.getInteger("failCount");
- if (failCount == 0) {
- success = true;
- log.info("鎺ュ彛璋冪敤鎴愬姛锛屾垚鍔熺殑鎿嶄綔鏁伴噺: {}", successCount);
- // 鑾峰彇杩斿洖鐨勫崟鎹彿鍜孖D
- JSONArray resultArray = data.getJSONArray("result");
- for (int i = 0; i < resultArray.size(); i++) {
- JSONObject resultItem = resultArray.getJSONObject(i);
- String billNo = resultItem.getString("number"); // 鑾峰彇杩斿洖鐨勫崟鎹彿
- String billId = resultItem.getString("id"); // 鑾峰彇杩斿洖鐨処D
- order.setNumber(billId);
- String jsonString = add.toJSONString();
- JSONObject jsonObject = JSONObject.parseObject(jsonString);
- String billno = jsonObject.getJSONArray("data")
- .getJSONObject(0)
- .getString("billno");
-
- order.setShipCode(billno); // 璁剧疆鍒� order 瀵硅薄涓�
- }
- } else {
- log.error("鎺ュ彛璋冪敤澶辫触锛屽け璐ョ殑鎿嶄綔鏁伴噺: {}", failCount);
- // 濡傛灉鏈夊け璐ョ殑鍗曟嵁锛岄亶鍘� result 鏁扮粍鏌ョ湅澶辫触鐨勮缁嗕俊鎭�
- JSONArray resultArray = data.getJSONArray("result");
- for (int i = 0; i < resultArray.size(); i++) {
- JSONObject resultItem = resultArray.getJSONObject(i);
- if (!resultItem.getBoolean("billStatus")) {
- // 鍗曟嵁澶勭悊澶辫触锛岃褰曢敊璇俊鎭�
- String billNo = resultItem.getString("billno");
- JSONArray errors = resultItem.getJSONArray("errors");
- log.error("鍗曟嵁鍙�: {}, 閿欒淇℃伅: {}", billNo, errors);
- }
- }
- }
- order.setSettle(10L); // 鏇存柊鐘舵�佷负 "宸蹭笂鎶�"
- orderService.updateById(order);
- } else {
- log.error("鎺ュ彛璋冪敤澶辫触锛岄敊璇俊鎭�: {}", jsonResponse.getString("message"));
- }
- } catch (Exception e) {
- log.error("璇锋眰澶辫触", e);
- return FAIL.setMsg(e.getMessage());
- } finally {
- // 淇濆瓨鎺ュ彛鏃ュ織
- saveApiLog(add, response, success);
- }
- return success ? SUCCESS : FAIL;
- }
-
-
- private HashMap<String, Object> buildRequestHeaders(ErpSecret erpSecret) {
- HashMap<String, Object> headers = new HashMap<>();
- headers.put("accesstoken", erpSecret.getAccessToken());
- headers.put("x-acgw-identity", xAcfwIdentity); // 鑷畾涔夎姹傚ご
- return headers;
- }
- private void saveApiLog(JSONObject add, String response, boolean success) {
- try {
- apiLogService.save(
- "鍏ュ簱涓婃姤鏂板",
- URL + path,
- null,
- "127.0.0.1",
- add.toJSONString(),
- response,
- success
- );
- } catch (Exception e) {
- log.error("鎺ュ彛鏃ュ織淇濆瓨澶辫触", e);
- }
- }
-}
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 870e6c9..0000000
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/SubmitOrderSyncHandler.java
+++ /dev/null
@@ -1,238 +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.ErpSecret;
-import com.zy.asrs.entity.Order;
-import com.zy.asrs.entity.OrderDetlPakin;
-import com.zy.asrs.service.ApiLogService;
-import com.zy.asrs.service.DocTypeService;
-import com.zy.asrs.service.OrderService;
-import com.zy.asrs.service.impl.ErpSecretServiceImpl;
-import com.zy.asrs.task.AbstractHandler;
-import com.zy.asrs.task.core.ReturnT;
-import com.zy.asrs.utils.OrderInAndOutUtil;
-import com.zy.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.text.SimpleDateFormat;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-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.imPurinbillBatchSubmit}")
- private String imPurinbillBatchSubmit;
- @Value("${erp.address.imOtheroutbillSubmit}")
- private String imOtheroutbillSubmit;
- @Value("${erp.address.imOtherinbillSubmit}")
- private String imOtherinbillSubmit;
- @Value("${erp.address.imProductinbillBatchSubmit}")
- private String imProductinbillBatchSubmit;
- @Value("${erp.address.imSaloutbillSaveSubmit}")
- private String imSaloutbillSaveSubmit;
- @Value("${erp.address.imMdcOmprdinbillBatchSubmit}")
- private String imMdcOmprdinbillBatchSubmit;
- @Autowired
- private LoginAuthenticationHandler loginAuthenticationHandler;
- @Autowired
- private ErpSecretServiceImpl erpSecretService;
- @Autowired
- private OrderService orderService;
- @Autowired
- private ApiLogService apiLogService;
- @Autowired
- private DocTypeService docTypeService;
- @Value("${erp.login.accountId}")
- private String accountId;
- @Value("${erp.login.xAcfwIdentity}")
- private String xAcfwIdentity;
- private String path;
- @Transactional
- public ReturnT<String> start(Order order) {
- SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
-
- // 鑾峰彇 Token
- ErpSecret erpSecret = erpSecretService.selectOne(new EntityWrapper<ErpSecret>().eq("account_id", accountId));
-
- // 鑾峰彇 DocType
- DocType docType = docTypeService.selectById(order.getDocType());
- if (docType == null) return SUCCESS;
-
- // 鑾峰彇 KingDee 绫诲瀷
- KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get(docType.getDocName());
-
- // 鏋勫缓璇锋眰鍙傛暟
- JSONObject add = buildRequestParams(order, kingDeeUtilType, sdf1, sdf2);
- if (add == null) return FAIL.setMsg("璇锋眰鍙傛暟鏋勫缓澶辫触");
-
- // 鍙戦�佽姹傚苟澶勭悊鍝嶅簲
- return sendRequestAndProcessResponse(order, erpSecret, add);
- }
-
- private JSONObject buildRequestParams(Order order, KingDeeUtilType kingDeeUtilType,
- SimpleDateFormat sdf1, SimpleDateFormat sdf2) {
- JSONObject dataObj = new JSONObject();
- JSONArray idArray = new JSONArray();
- switch (kingDeeUtilType.formId) {
- case "PUR_RECEIVEBIll": // 杩涗粨閫氱煡鍗曟彁浜�
- path = imPurinbillBatchSubmit;
- idArray.add(order.getNumber());
- dataObj.fluentPut("id", idArray);
- return new JSONObject().fluentPut("data", dataObj);
- case "PRD_MORPT": // 杩涗粨閫氱煡鍗曟彁浜�
- path = imProductinbillBatchSubmit;
- idArray.add(order.getNumber());
- dataObj.fluentPut("ids", idArray);
- return new JSONObject().fluentPut("data", dataObj);
- case "STK_imSaloutbill":
- path = imSaloutbillSaveSubmit;
- idArray.add(order.getShipCode());
- dataObj.fluentPut("billno", idArray);
- return new JSONObject().fluentPut("data", dataObj);
- case "OUI_RECEIVEBIll":
- path = imMdcOmprdinbillBatchSubmit;
- idArray.add(order.getShipCode());
- dataObj.fluentPut("billno", idArray);
- return new JSONObject().fluentPut("data", dataObj);
- case "STK_MISCELLANEOUS"://鍏朵粬鍏ュ簱鍗�
- path = imOtherinbillSubmit;
- idArray.add(order.getOrderNo());
- dataObj.fluentPut("billno", idArray);
- return new JSONObject().fluentPut("data", dataObj);
- case "STK_MisDelivery"://鍏朵粬鍑哄簱鍗�
- path = imOtheroutbillSubmit;
- idArray.add(order.getOrderNo());
- dataObj.fluentPut("billno", idArray);
- return new JSONObject().fluentPut("data", dataObj);
- default:
- throw new IllegalArgumentException("Unsupported formId: " + kingDeeUtilType.formId);
- }
- }
-
-
- private ReturnT<String> sendRequestAndProcessResponse(Order order, ErpSecret erpSecret, JSONObject add) {
- String response = "";
- boolean success = false;
-
- try {
- // 璁剧疆璇锋眰澶�
- HashMap<String, Object> headers = buildRequestHeaders(erpSecret);
-
- // 鍙戦�佽姹傦紝灏� JSONObject 杞崲涓� String
- response = new HttpHandler.Builder()
- .setHeaders(headers)
- .setUri(URL)
- .setPath(path)
- .setJson(add.toJSONString()) // 灏� JSONObject 杞崲涓� String
- .build()
- .doPost();
-
- // 瑙f瀽鍝嶅簲
- JSONObject jsonResponse = JSON.parseObject(response);
-
- // 鍒ゆ柇鏄惁鍥犱负 token 杩囨湡 (errorCode = 401)
- if ("401".equals(jsonResponse.getString("errorCode"))) {
- log.error("璁よ瘉澶辫触锛屽皾璇曢噸鏂拌幏鍙� Token");
- loginAuthenticationHandler.start(); // 鍒锋柊 token
- // 閲嶆柊鑾峰彇鏂扮殑 token
- erpSecret = erpSecretService.selectOne(new EntityWrapper<ErpSecret>().eq("account_id", accountId)); // 閲嶆柊浠庢暟鎹簱鑾峰彇鏂扮殑 token
- // 浣跨敤鏂扮殑 token 閲嶈瘯璇锋眰
- headers.put("accesstoken", erpSecret.getAccessToken());
- response = new HttpHandler.Builder()
- .setHeaders(headers)
- .setUri(URL)
- .setPath(path)
- .setJson(add.toJSONString()) // 灏� JSONObject 杞崲涓� String
- .build()
- .doPost();
- }
-
- // 瑙f瀽杩斿洖鐨勫搷搴�
- JSONObject data = jsonResponse.getJSONObject("data");
- String errorCode = jsonResponse.getString("errorCode");
- boolean status = jsonResponse.getBooleanValue("status");
-
-// 妫�鏌ユ帴鍙h皟鐢ㄧ殑鏁翠綋鐘舵��
- if ("0".equals(errorCode) && status) {
- // 鑾峰彇鎴愬姛涓庡け璐ョ殑鏁伴噺
- int successCount = data.getInteger("successCount");
- int failCount = data.getInteger("failCount");
-
- if (failCount == 0) {
- success = true;
- log.info("鎺ュ彛璋冪敤鎴愬姛锛屾垚鍔熺殑鎿嶄綔鏁伴噺: {}", successCount);
- } else {
- log.error("鎺ュ彛璋冪敤澶辫触锛屽け璐ョ殑鎿嶄綔鏁伴噺: {}", failCount);
- // 濡傛灉鏈夊け璐ョ殑鍗曟嵁锛岄亶鍘� result 鏁扮粍鏌ョ湅澶辫触鐨勮缁嗕俊鎭�
- JSONArray resultArray = data.getJSONArray("result");
- for (int i = 0; i < resultArray.size(); i++) {
- JSONObject resultItem = resultArray.getJSONObject(i);
- if (!resultItem.getBoolean("billStatus")) {
- // 鍗曟嵁澶勭悊澶辫触锛岃褰曢敊璇俊鎭�
- String billNo = resultItem.getString("number"); // 鑾峰彇杩斿洖鐨勫崟鎹彿
- JSONArray errors = resultItem.getJSONArray("errors"); // 鑾峰彇閿欒淇℃伅
-
- // 鎵撳嵃鍗曟嵁鍙峰拰閿欒淇℃伅
- log.error("鍗曟嵁鍙�: {}, 閿欒淇℃伅: {}", billNo, errors);
- }
- }
- }
-
- order.setSettle(9L); // 鏇存柊鐘舵�佷负宸叉彁浜ゅ畬鎴� 10->9
- orderService.updateById(order);
- } else {
- log.error("鎺ュ彛璋冪敤澶辫触锛岄敊璇俊鎭�: {}", jsonResponse.getString("message"));
- }
- } catch (Exception e) {
- log.error("璇锋眰澶辫触", e);
- return FAIL.setMsg(e.getMessage());
- } finally {
- // 淇濆瓨鎺ュ彛鏃ュ織
- saveApiLog(add, response, success);
- }
-
- return success ? SUCCESS : FAIL;
- }
-
- private HashMap<String, Object> buildRequestHeaders(ErpSecret erpSecret) {
- HashMap<String, Object> headers = new HashMap<>();
- headers.put("accesstoken", erpSecret.getAccessToken());
- headers.put("x-acgw-identity", xAcfwIdentity); // 鑷畾涔夎姹傚ご
- return headers;
- }
-
- private void saveApiLog(JSONObject add, String response, boolean success) {
- try {
- apiLogService.save(
- "鍗曟嵁涓婃姤鎻愪氦",
- URL + path,
- null,
- "127.0.0.1",
- add.toJSONString(),
- response,
- success
- );
- } catch (Exception e) {
- log.error("鎺ュ彛鏃ュ織淇濆瓨澶辫触", e);
- }
- }
-}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index a719724..179e900 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -91,12 +91,6 @@
switch:
#璁℃椂鍣ㄤ笂鎶ュ紑鍏�
ErpReportOld: true
- #鑾峰彇鍗曟嵁寮�鍏�
- InboundOrderSwitch: true
- #鐧诲綍鎺ュ彛寮�鍏�
- LoginAuthenticationSwitch: true
- #涓婃姤銆佸鏍稿崟鎹紑鍏�
- ReviewOrderSwitch: true
# 鍦板潃
address:
URL: https://shyucheng.test.kdgalaxy.com
@@ -104,72 +98,17 @@
loginaddress: /kapi/oauth2/getToken
#鍟嗗搧妗f鍦板潃
mataddress: /kapi/v2/eap7/basedata/bd_material/batchQuery
- #璐т富妗f鍦板潃
- orgaddress: /kapi/v2/basedata/bd_supplier/query
- #鏀舵枡鍗�-鏌ヨ
- impurreceivebilladdress: /kapi/v2/im/im_purreceivebill/getList
- #杩涗粨閫氱煡鍗�
- impurreceivebilldetl: kapi/v2/eap7/im/im_purreceivebill/query
- #杩涗粨鍏ュ簱鍗曟柊澧�
- imPurinbillAdd: /kapi/v2/im/im_purinbill/add
- #杩涗粨鍏ュ簱鍗曟彁浜�
- imPurinbillBatchSubmit: /kapi/v2/im/im_purinbill/batchSubmit
- #杩涗粨鍏ュ簱鍗曞鏍�
- imPurinbillBatchAudit: /kapi/v2/im/im_purinbill/batchAudit
- #閿�鍞嚭搴撳崟鏌ヨ
- imSaloutbill: /kapi/v2/eap7/im/im_saloutbill/query
- #閿�鍞嚭搴撳崟涓婃姤
- imSaloutbillReport: /kapi/v2/im/im_saloutbill/batchAudit
- #閿�鍞��璐ф煡璇�
- scpSalreturn: /kapi/v2/eap7/im/im_saloutbill/query
-# #閿�鍞��璐ц繘浠撳崟
-# scpSalreturnDetl: /kapi/v2/eap7/scp/scp_salreturn/query
- #閿�鍞��璐т笂鎶�
- scpSalreturnReport: /kapi/v2/im/im_saloutbill/batchAudit
- #鐢熶骇棰嗘枡鏌ヨ
- imMdcMftproorder: /kapi/v2/im/im_mdc_mftproorder/batchQuery
- #鐢熶骇棰嗘枡姹囨姤
- imMdcMftproorderReport: /kapi/v2/im/im_mdc_mftproorder/batchAudit
- #鐢熶骇閫�鏂欏崟鏌ヨ
- imMdcMftreturnorder: /kapi/v2/eap7/im/im_mdc_mftreturnorder/batchQuery
- #鐢熶骇閫�鏂欏崟涓婃姤
- imMdcMftreturnorderReport: /kapi/v2/im/im_mdc_mftreturnorder/batchAudit
- #鐢熶骇琛ユ枡鍗�
- imMdcMftfeedorder: /kapi/v2/im/im_mdc_mftfeedorder/batcheQuery
- #鐢熶骇琛ユ枡鍗曟眹鎶�
- imMdcMftfeedorderReport: /kapi/v2/im/im_mdc_mftfeedorder/batchAudit
- #鐢熶骇杩涗粨鍗曟煡璇�
- imProductinbill: /kapi/v2/eap7/pom/pom_mftorderreport/query
- #鐢熶骇杩涗粨鍗曟煡璇笂鎶�
- imProductinbillReport: /kapi/v2/eap7/im/im_mdc_mftmanuinbill/add
- imProductinbillBatchSubmit: /kapi/v2/im/im_mdc_mftmanuinbill/batchSubmit
- imProductinbillBatchAudit: /kapi/v2/im/im_mdc_mftmanuinbill/batchAudit
- #鍏朵粬鍑哄簱鍗曚笂鎶�
- imOtheroutbill: /kapi/v2/im/im_otheroutbill/batchSave
- #鍏朵粬鍑哄簱鍗曟彁浜�
- imOtheroutbillSubmit: /kapi/v2/im/im_otheroutbill/batchSubmit
- #鍏朵粬鍑哄簱鍗曞鏍�
- imOtheroutbillAudi: /kapi/v2/im/im_otheroutbill/batchAudit
- #鍏朵粬鍏ュ簱鏂板
- imOtherinbill: /kapi/v2/im/im_otherinbill/batchAdd
- #鍏朵粬鍏ュ簱鎻愪氦
- imOtherinbillSubmit: /kapi/v2/im/im_otherinbill/batchSubmit
- #鍏朵粬鍏ュ簱瀹℃牳
- imOtherinbillAudit: /kapi/v2/im/im_otherinbill/batchAudit
- #浜у搧妫�楠屽崟鏌ヨ
- qcppManuinspec: /kapi/v2/eap7/qcpp/qcpp_manuinspec/query
- #姹囨姤鍗�->鑷敓鎴愬嚭搴撳崟涓婃姤
- imSaloutbillSave: /kapi/v2/eap7/im/im_saloutbill/save
- imSaloutbillSaveSubmit: kapi/v2/im/im_saloutbill/batchSubmit
- #濮斿鍏ュ簱鎸囦护
- omOutsourcereceiptQuery: /kapi/v2/eap7/om/om_outsourcereceipt/query
- imMdcOmprdinbillSave: /kapi/v2/eap7/im/im_mdc_omprdinbill/save
- imMdcOmprdinbillBatchSubmit: /kapi/v2/im/im_mdc_omprdinbill/batchSubmit
- imMdcOmprdinbillBatchAudit: /kapi/v2/im/im_mdc_omprdinbill/batchAudit
- # 鐧诲綍璐﹀彿绠$悊
- login :
- xAcfwIdentity: "djF8MTlhNTNhZjJhOWEwMWRlODhlMDF8NDkxNTk0MDU4MTQxNXwus9WaEHKRh0daJe1TWmVoMkv3zQY2knNTZRzaOhRgwnw"
- clientId: "WMS"
- clientSecret: "123456789Asd!@123456789"
- accountId: "2182793143735298048"
- username: "admin"
\ No newline at end of file
+
+#wcs浠诲姟涓嬪彂
+wcs:
+ # 寮�鍏�
+ switch: true
+ # 鍦板潃
+ address:
+ URL: https://127.0.0.1:9090
+ #鍏ュ簱浠诲姟涓嬪彂鍦板潃
+ createInTask : /openapi/createInTask
+ #鍑哄簱浠诲姟涓嬪彂鍦板潃
+ createOutTask: /openapi/createOutTask
+ #绉诲簱浠诲姟涓嬪彂鍦板潃
+ createLocMoveTask: /openapi/createLocMoveTask
--
Gitblit v1.9.1