From a374f2b69941b4b391b2735e6afc9ba943efc6b1 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期三, 27 十二月 2023 19:17:16 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java | 16 +++-
src/main/java/com/zy/erp/kingdee/entity/param/SaceOrderOtherParam.java | 18 ++++++
src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java | 104 +++++++++++++++++++++++++++++++---
src/main/webapp/static/js/order/order.js | 7 ++
src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java | 2
src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java | 6 +-
src/main/java/com/zy/asrs/task/kingdee/handler/PushDowmOrderSyncHandler.java | 5 +
src/main/resources/application.yml | 20 ++++--
8 files changed, 152 insertions(+), 26 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java
index 99911fa..2ffb8de 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java
@@ -11,6 +11,7 @@
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
+import java.util.Date;
import java.util.List;
/**
@@ -27,18 +28,23 @@
@Value("${erp.switch.SaveOrderSwitch}")
private boolean SaveOrderSwitch;
-// @Scheduled(cron = "0/3 * * * * ? ")
+ @Scheduled(cron = "0/3 * * * * ? ")
@Async("orderThreadPool")
public void completeAndReport(){
- if (1==1) return;
if(!SaveOrderSwitch){
return;
}
List<Order> orders = orderService.selectComplete();
for (Order order : orders) {
- ReturnT<String> result = saveOrderSyncHandler.start(order);
- if (!result.isSuccess()) {
- log.error("鍗曟嵁[orderNo={}]鎻愪氦鑷砮rp澶辫触", order.getOrderNo());
+ try{
+ ReturnT<String> result = saveOrderSyncHandler.start(order);
+ if (!result.isSuccess()) {
+ log.error("鍗曟嵁[orderNo={}]鎻愪氦鑷砮rp澶辫触", order.getOrderNo());
+ }
+ }catch (Exception e){
+ Order order1 = orderService.selectById(order.getId());
+ order1.setUpdateTime(new Date());
+ orderService.updateById(order1);
}
}
}
diff --git a/src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java
index de43a20..1c4e3c6 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java
@@ -30,7 +30,7 @@
@Value("${erp.switch.SubmitOrderSwitch}")
private boolean SubmitOrderSwitch;
- @Scheduled(cron = "0/3 * * * * ? ")
+// @Scheduled(cron = "0/3 * * * * ? ")
@Async("orderThreadPool")
public void completeAndReport(){
if(!SubmitOrderSwitch){
diff --git a/src/main/java/com/zy/asrs/task/kingdee/handler/PushDowmOrderSyncHandler.java b/src/main/java/com/zy/asrs/task/kingdee/handler/PushDowmOrderSyncHandler.java
index 859e1da..67bc964 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/PushDowmOrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/handler/PushDowmOrderSyncHandler.java
@@ -138,6 +138,11 @@
order.setUpdateTime(new Date());
orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
}
+ } else {
+ success = false;
+ order.setSettle(7L);
+ order.setUpdateTime(new Date());
+ orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
}
} catch (Exception e) {
log.info("涓嬫帹error:"+response);
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
index a05c7ca..20975cc 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java
@@ -4,10 +4,16 @@
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.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.zy.asrs.entity.DocType;
import com.zy.asrs.entity.Order;
+import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.DocTypeService;
+import com.zy.asrs.service.OrderDetlService;
import com.zy.asrs.service.OrderService;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
@@ -19,8 +25,8 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.util.HashMap;
-import java.util.Set;
+import java.text.SimpleDateFormat;
+import java.util.*;
/**
* Created by Monkey D. Luffy on 2023.10.21
@@ -43,10 +49,16 @@
@Autowired
private DocTypeService docTypeService;
@Autowired
+ private OrderDetlService orderDetlService;
+ @Autowired
private LoginAuthenticationHandler loginAuthenticationHandler;
@Transactional
public ReturnT<String> start(Order order) {
+ List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
+ if (Cools.isEmpty(orderDetls) || orderDetls.size()==0){
+ return SUCCESS;
+ }
//鐧诲綍閲戣澏r
ReturnT<String> start = loginAuthenticationHandler.start();
DocType docType = docTypeService.selectById(order.getDocType());
@@ -54,12 +66,72 @@
return SUCCESS;
}
KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get(docType.getDocName());
-
+ if (kingDeeUtilType.entryId!=2){
+ return SUCCESS;
+ }
+ Date now = new Date();
//鏉′欢鎷兼帴
+ JSONObject jsonObjectFBillTypeID = new JSONObject();
+ JSONObject jsonObjectFPickerId = new JSONObject();
+ if (kingDeeUtilType.pakIn==1){
+ jsonObjectFBillTypeID.put("FNUMBER","QTRKD01_SYS");
+ }else {
+ jsonObjectFBillTypeID.put("FNUMBER","QTCKD01_SYS");
+ jsonObjectFPickerId.put("FStaffNumber","X0103_GLGW074_1");
+ }
+
+ JSONObject jsonObjectFStockOrgId = new JSONObject();
+ jsonObjectFStockOrgId.put("FNUMBER","100");
+
+ JSONObject jsonObjectFOwnerIdHead = new JSONObject();
+ jsonObjectFOwnerIdHead.put("FNUMBER","100");
+
+ JSONObject jsonObjectFDEPTID = new JSONObject();
+ jsonObjectFDEPTID.put("FNUMBER","CX");
+
+ List<JSONObject> jsonObjects = new ArrayList<>();
+
+ for (OrderDetl orderDetl:orderDetls){
+ JSONObject jsonObjectFMATERIALID = new JSONObject();
+ jsonObjectFMATERIALID.put("FNUMBER",orderDetl.getMatnr());
+
+ JSONObject jsonObjectFSTOCKID = new JSONObject();
+ jsonObjectFSTOCKID.put("FNUMBER","CK001");
+
+ JSONObject jsonObjectFLOT = new JSONObject();
+ jsonObjectFLOT.put("FNUMBER",orderDetl.getBatch());
+
+ // 浣跨敤LinkedHashMap鏉ヤ繚鎸佹彃鍏ラ『搴�
+ Map<String, Object> orderedMap = new LinkedHashMap<>();
+
+ // 鎸夌収鏈熸湜鐨勯『搴忔坊鍔犻敭鍊煎
+ orderedMap.put("FMATERIALID", jsonObjectFMATERIALID);
+ orderedMap.put("FSTOCKID", jsonObjectFSTOCKID);
+ orderedMap.put("FLOT", jsonObjectFLOT);
+ orderedMap.put("FQty", orderDetl.getQty()); // 灏�"FQty"鏀惧埌鏈�鍚�
+
+ JSONObject jsonObjectEnd = new JSONObject(orderedMap);
+
+ jsonObjects.add(jsonObjectEnd);
+ }
+
JSONObject jsonObject = new JSONObject();
- jsonObject.put("Numbers",order.getOrderNo());
+ jsonObject.put("FBillTypeID",jsonObjectFBillTypeID);
+ if (kingDeeUtilType.pakIn==0){
+ jsonObject.put("FPickerId",jsonObjectFPickerId);
+ }
+ jsonObject.put("FDate",DateUtils.convert(now, DateUtils.yyyyMMdd_F));
+ jsonObject.put("FStockOrgId",jsonObjectFStockOrgId);
+ jsonObject.put("FOwnerTypeIdHead","BD_OwnerOrg");
+ jsonObject.put("FOwnerIdHead",jsonObjectFOwnerIdHead);
+ jsonObject.put("FDEPTID",jsonObjectFDEPTID);
+ jsonObject.put("FEntity",jsonObjects);
+
+ JSONObject jsonObjectModel = new JSONObject();
+ jsonObjectModel.put("Model",jsonObject);
+
JSONObject jsonObject1 = new JSONObject();
- jsonObject1.put("data", jsonObject);
+ jsonObject1.put("data", jsonObjectModel);
jsonObject1.put("FormId",kingDeeUtilType.correspondingFormId);
String add = jsonObject1.toJSONString();
//涓婃姤
@@ -74,15 +146,29 @@
.setUri(URL)
.setPath(outaddressSave)
.setJson(add)
+ .setHttps(true)
.build()
.doPost();
JSONObject data = JSON.parseObject(response);
Object IsSuccess = findValueByKey(JSON.parseObject(response), "IsSuccess");
- String bool=IsSuccess.toString();
+ String bool1=IsSuccess.toString();
//淇濆瓨瀹屾垚鍘熻鍗�8杞�6
- if(bool.equals("true")){
- success = true;
- order.setSettle(6L);
+ if(bool1.equals("true")){
+ ObjectMapper objectMapper = new ObjectMapper();
+ JsonNode rootNode = objectMapper.readTree(response);
+ boolean bool = rootNode.get("Result").get("ResponseStatus").get("IsSuccess").asBoolean();
+ log.info("瀹℃牳bool:"+bool);
+ //鎻愪氦瀹屾垚鍘熻鍗�4杞�6 6.涓婃姤瀹屾垚
+ if(bool){
+ success = true;
+ order.setSettle(6L);
+ order.setUpdateTime(new Date());
+ orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
+ }
+ }else {
+ success = false;
+ order.setSettle(7L);
+ order.setUpdateTime(new Date());
orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
}
} catch (Exception e) {
diff --git a/src/main/java/com/zy/erp/kingdee/entity/param/SaceOrderOtherParam.java b/src/main/java/com/zy/erp/kingdee/entity/param/SaceOrderOtherParam.java
new file mode 100644
index 0000000..c7312b3
--- /dev/null
+++ b/src/main/java/com/zy/erp/kingdee/entity/param/SaceOrderOtherParam.java
@@ -0,0 +1,18 @@
+package com.zy.erp.kingdee.entity.param;
+
+import lombok.Data;
+
+@Data
+public class SaceOrderOtherParam {
+ //璐﹀彿ID
+ private String FMATERIALID;
+
+ //璐﹀彿
+ private String FSTOCKID;
+
+ //瀵嗙爜
+ private String FLOT;
+
+ //
+ private Integer FQty;
+}
diff --git a/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java b/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java
index 4943493..6bf8b04 100644
--- a/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java
+++ b/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java
@@ -36,9 +36,9 @@
STK_OutStockApply337(12, "鐮斿彂棰嗘枡鍑哄簱鐢宠鍗�-鐮斿彂棰嗘枡鍑哄簱鍗�","STK_OUTSTOCKAPPLY","","鐮斿彂棰嗘枡鍑哄簱鍗�","",0,"STK_OutstockApplyTosTK_MisDelivery",0),
STK_ASSEMBLY1(13, "缁勮鎷嗗嵏鍗�1","STK_ASSEMBLY","","","",1,"",0),
STK_ASSEMBLY2(14, "缁勮鎷嗗嵏鍗�2","STK_ASSEMBLY","","","",0,"",0),
- SAL_RETURNNOTICE1(15, "鍏朵粬鍏ュ簱鍗�","SAL_RETURNNOTICE","","鍏朵粬鍏ュ簱鍗�","STK_MISCELLANEOUS",1,"",2),
- SAL_DELIVERYNOTICE2(16, "鍏朵粬鍑哄簱鍗�","SAL_DELIVERYNOTICE","","鍏朵粬鍑哄簱鍗�","SAL_DELIVERYNOTICE",0,"",2),
- PRD_PPBOM(17, "鐢熶骇鐢ㄦ枡娓呭崟-鐢熶骇鐢ㄦ枡娓呭崟鍙樻洿鍗�","PRD_PPBOM","","鐢熶骇棰嗘枡鍗�","PRD_PPBOMChange",1,"PRD_PPBOM2PPBOMCHANGE",2),
+ SAL_RETURNNOTICE1(15, "鍏跺畠鍏ュ簱鍗�","STK_MISCELLANEOUS","","鍏跺畠鍏ュ簱鍗�","STK_MISCELLANEOUS",1,"",2),
+ SAL_DELIVERYNOTICE2(16, "鍏跺畠鍑哄簱鍗�","STK_MisDelivery","","鍏朵粬鍑哄簱鍗�","STK_MisDelivery",0,"",2),
+ PRD_PPBOM(17, "鐢熶骇鐢ㄦ枡娓呭崟-鐢熶骇鐢ㄦ枡娓呭崟鍙樻洿鍗�","PRD_PPBOM","","鐢熶骇棰嗘枡鍗�","PRD_PPBOMChange",1,"PRD_PPBOM2PPBOMCHANGE",10),
STK_TRANSFERAPPLY2(18, "璋冩嫧鐢宠鍗�2-鐩存帴璋冩嫧鍗�","STK_TRANSFERAPPLY","","鐩存帴璋冩嫧鍗�","STK_TransferDirect",0,"StkTransferApphy-StkTransferDirect",1),
STK_TRANSFERAPPLY3(19, "璋冩嫧鐢宠鍗�3-鐩存帴璋冩嫧鍗�","STK_TRANSFERAPPLY","","鐩存帴璋冩嫧鍗�","STK_TransferDirect",0,"StkTransferApphy-StkTransferDirect",1),
;
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index eb2298c..4fefab9 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -17,12 +17,12 @@
# url: jdbc:sqlserver://10.10.10.100:1433;databasename=mdqdasrs
# username: sa
# password: Dtzhcy101+
- url: jdbc:sqlserver://127.0.0.1:1433;databasename=mdqdasrs
- username: sa
- password: sa@123
-# url: jdbc:sqlserver://127.0.0.1:51433;databasename=mdqdasrs
+# url: jdbc:sqlserver://127.0.0.1:1433;databasename=mdqdasrs
# username: sa
-# password: Zoneyung@zy56$
+# password: sa@123
+ url: jdbc:sqlserver://47.97.1.152:51433;databasename=mdqdasrs
+ username: sa
+ password: Zoneyung@zy56$
mvc:
static-path-pattern: /**
redis:
@@ -68,8 +68,12 @@
InboundOrderSwitch: false
#鐧诲綍鎺ュ彛寮�鍏�
LoginAuthenticationSwitch: true
- #涓婃姤鍗曟嵁寮�鍏� 绫冲鏃犵敤
+ #瀹℃牳鍗曟嵁寮�鍏� 绫冲鏃犵敤
ReviewOrderSwitch: false
+ #淇濆瓨鍗曟嵁寮�鍏�
+ SaveOrderSwitch: true
+ #鎻愪氦鍗曟嵁寮�鍏� 绫冲鏃犵敤
+ SubmitOrderSwitch: false
#涓嬫帹鍗曟嵁寮�鍏�
PushDowmOrderSwitch: true
# 鍦板潃
@@ -81,11 +85,11 @@
inaddress: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc
#鍗曟嵁涓嬫帹鍦板潃
pushDowmAudit: K3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Push.common.kdsvc
- #缁撴灉涓婃姤锛堜繚瀛橈級鍗曞湴鍧� 绫冲鏃犵敤
+ #缁撴灉涓婃姤锛堜繚瀛橈級鍗曞湴鍧�
outaddressSave: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc
#缁撴灉涓婃姤锛堟彁浜わ級鍗曞湴鍧� 绫冲鏃犵敤
outaddressSubmit: K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit.common.kdsvc
- #缁撴灉涓婃姤锛堝鏍革級鍗曞湴鍧�
+ #缁撴灉涓婃姤锛堝鏍革級鍗曞湴鍧� 绫冲鏃犵敤
outaddressAudit: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit.common.kdsvc
# 鐧诲綍璐﹀彿绠$悊
login :
diff --git a/src/main/webapp/static/js/order/order.js b/src/main/webapp/static/js/order/order.js
index abe7000..90c1539 100644
--- a/src/main/webapp/static/js/order/order.js
+++ b/src/main/webapp/static/js/order/order.js
@@ -197,6 +197,7 @@
{field: 'payment$', title: '璐х墿鐗瑰緛', width: 160},
// {field: 'batch', title: '鎵瑰彿'},
{field: 'anfme', title: '鏁伴噺'},
+ {field: 'batch', title: '鎵规'},
{field: 'workQty', title: '浣滀笟鏁伴噺'},
{field: 'qty', title: '瀹屾垚鏁伴噺', style: 'font-weight: bold'},
// {field: 'unit', title: '鍗曚綅'},
@@ -271,6 +272,11 @@
layer.msg('鏁伴噺涓嶈兘灏忎簬宸蹭綔涓氭暟閲�', {icon: 2});
return false;
}
+
+ if (nList[xi].batch === ""){
+ layer.msg('鎵规涓嶈兘涓虹┖', {icon: 2});
+ return false;
+ }
}
for (let xi = 0; xi < nList.length; xi++) {
if (nList[xi].owner <= 0){
@@ -321,6 +327,7 @@
{field: 'specs', title: '瑙勬牸'},
{field: 'weight', title: '閲嶉噺', edit: true},
{field: 'anfme', title: '鏁伴噺(淇敼)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110},
+ {field: 'batch', title: '鎵规(淇敼)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110},
{field: 'owner', title: '璐т富缂栧彿', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110},
{field: 'payment', title: '璐х墿鐘舵��', style: 'color: blue;font-weight: bold', templet: '#payment'},
// {field: 'payment', title: '璐х墿鐘舵��',align: 'center', templet: '#payment'},
--
Gitblit v1.9.1