From 059a32e8f159561d917a2e750d962439c8f1a8af Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期五, 19 十二月 2025 09:42:29 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java | 80 ++++++++++++++++++++++++--
src/main/java/com/zy/asrs/task/kingdee/handler/SubmitOrderSyncHandler.java | 7 ++
src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java | 10 +-
src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java | 27 ++++----
src/main/java/com/zy/asrs/task/kingdee/handler/ReviewOrderSyncHandler.java | 6 +-
5 files changed, 103 insertions(+), 27 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java b/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
index b5c3bd5..be3ece9 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
@@ -174,7 +174,7 @@
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");//鍗曟嵁绫诲瀷
+ jsonObject.put("billtype_number", "im_SalOutBill_STD_BT_S_R");//鍗曟嵁绫诲瀷 閫�璐х被鍨嬪緟瀹�
break;
case "PRD_PickMtrl"://鐢熶骇棰嗘枡鍗�
path = imMdcMftproorder;
@@ -876,9 +876,7 @@
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 anfme = 1.0;//绠辨暟
-
+ Double anfme = entry.getDouble("eap7_decimalfield");//绠辨暟
Double totalNumItems = entry.getDouble("eap7_decimalfield1");//鎬讳欢鏁�
Double totalVolume = entry.getDouble("eap7_decimalfield2");//鎬讳綋绉�
String warehouse = entry.getString("warehouse_number");//浠撳簱缂栫爜
@@ -1198,7 +1196,8 @@
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 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");//浠撳簱缂栫爜
@@ -1223,6 +1222,7 @@
"鐗╂枡妗f涓嶅瓨鍦細" + matnr, false);
continue;
}
+ anfmeBox = anfme/mat.getSafeQty();
// ========= 鏄庣粏鍘婚噸 =========
List<OrderDetl> orderDetls =
orderDetlService.selectByOrderId(order.getId());
@@ -1241,7 +1241,7 @@
orderDetl.sync(mat);
orderDetl.setThreeCode(detlId);
orderDetl.setLineNumber(seq);
- orderDetl.setAnfme(anfme);
+ orderDetl.setAnfme(anfmeBox);
orderDetl.setErpAnfme(anfme);
orderDetl.setOrderId(order.getId());
orderDetl.setOrderNo(order.getOrderNo());
@@ -1364,9 +1364,8 @@
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 anfme = 1.0;//绠辨暟
-
+ 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");//浠撳簱缂栫爜
@@ -1390,6 +1389,7 @@
"鍟嗗搧涓嶅瓨鍦細" + matnr, false);
continue;
}
+ anfmeBox = anfme/mat.getSafeQty();
// ========= 鏄庣粏鍘婚噸 =========
List<OrderDetl> orderDetls =
orderDetlService.selectByOrderId(order.getId());
@@ -1408,7 +1408,7 @@
orderDetl.sync(mat);
orderDetl.setThreeCode(detlId);
orderDetl.setLineNumber(seq);
- orderDetl.setAnfme(anfme);
+ orderDetl.setAnfme(anfmeBox);
orderDetl.setErpAnfme(anfme);
orderDetl.setOrderId(order.getId());
orderDetl.setOrderNo(order.getOrderNo());
@@ -1530,7 +1530,8 @@
for (int k = 0; k < billEntryArray.size(); k++) {
JSONObject entry = billEntryArray.getJSONObject(k);
String matnr = entry.getString("material_number"); //鐗╂枡缂栫爜锛屽唴閮⊿KU
- Double anfme = entry.getDouble("completqty");//绠辨暟
+ Double anfmeBox = entry.getDouble("eap7_integerfield");//绠辨暟
+ Double anfme = entry.getDouble("completqty");//涓暟
Double totalNumItems = entry.getDouble("eap7_decimalfield1");//鎬讳欢鏁�
Double totalVolume = entry.getDouble("eap7_decimalfield2");//鎬讳綋绉�
String warehouse = entry.getString("warehouse_number");//浠撳簱缂栫爜
@@ -1573,8 +1574,8 @@
orderDetl.sync(mat);
orderDetl.setThreeCode(detlId);
orderDetl.setLineNumber(seq);
- orderDetl.setAnfme(anfme);
- orderDetl.setErpAnfme(anfme);
+ orderDetl.setAnfme(anfmeBox);
+ orderDetl.setErpAnfme(anfme);//姹囨姤鍗曚釜鏁�
orderDetl.setOrderId(order.getId());
orderDetl.setOrderNo(order.getOrderNo());
orderDetl.setSupp(supp);
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
index 3c76f7e..e5023ae 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/ReviewOrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/handler/ReviewOrderSyncHandler.java
@@ -56,9 +56,9 @@
@Value("${erp.address.imMdcMftfeedorderReport}")
//鐢熶骇琛ユ枡鍗曚笂鎶�
private String imMdcMftfeedorderReport;
- @Value("${erp.address.imProductinbillReport}")
+ @Value("${erp.address.imProductinbillBatchAudit}")
//鐢熶骇姹囨姤鍗曚笂鎶�
- private String imProductinbillReport;
+ private String imProductinbillBatchAudit;
@Value("${erp.address.imOtheroutbillAudi}")
//鍏朵粬鍑哄簱瀹℃牳涓婃姤
private String imOtheroutbillAudi;
@@ -141,7 +141,7 @@
dataObj.fluentPut("id", idArray);
return new JSONObject().fluentPut("data", dataObj);
case "PRD_MORPT"://鐢熶骇姹囨姤鍗�
- path = imProductinbillReport;
+ path = imProductinbillBatchAudit;
idArray.add(order.getNumber());
dataObj.fluentPut("id", idArray);
return new JSONObject().fluentPut("data", dataObj);
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 69f920a..026457d 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
@@ -9,6 +9,7 @@
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;
@@ -40,6 +41,8 @@
private String imOtheroutbill;
@Value("${erp.address.imOtherinbill}")
private String imOtherinbill;
+ @Value("${erp.address.imProductinbillReport}")
+ private String imProductinbillReport;
@Autowired
private OrderService orderService;
@@ -61,6 +64,9 @@
@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");
@@ -97,15 +103,16 @@
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 瀵硅薄
@@ -115,8 +122,8 @@
.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.getErpAnfme()) // ERP鏁伴噺
- .fluentPut("billentry_lk_baseqty", orderDetl.getQty()); // 浣滀笟鏁伴噺
+ .fluentPut("billentry_lk_baseqty_old", qtytotal) // ERP鏁伴噺
+ .fluentPut("billentry_lk_baseqty", qty); // 浣滀笟鏁伴噺
billentryLkArray.add(billentryLk);
// 鍒涘缓 billentry 瀵硅薄锛屽~鍏呯己澶辩殑瀛楁
JSONObject billentry = new JSONObject()
@@ -126,7 +133,7 @@
.fluentPut("invtype_number", "110") // 搴撳瓨绫诲瀷
.fluentPut("outinvstatus_number", "110")
.fluentPut("linetype_number", "010") // 琛屽彿绫诲瀷
- .fluentPut("qty", orderDetl.getQty()) // 鏁伴噺
+ .fluentPut("qty", qty) // 鏁伴噺
.fluentPut("material_number", orderDetl.getMatnr()) // 鐗╂枡缂栧彿
.fluentPut("billentry_lk", billentryLkArray);
@@ -149,6 +156,65 @@
.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", 677270092232273922L)
+ .fluentPut("billentry_lk_sbillid", Long.parseLong(order.getItemName())) // 涓诲崟ID
+ .fluentPut("billentry_lk_sid", Long.parseLong(orderDetl.getThreeCode())) // 鏄庣粏ID
+ .fluentPut("billentry_lk_baseqty_old", qtytotal) // ERP鏁伴噺
+ .fluentPut("billentry_lk_baseqty", qty); // 浣滀笟鏁伴噺
+ billentryLkArray1.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", 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("billtype_number", "im_PurInBill_STD_BT_S")
+ .fluentPut("biztime", sdf1.format(now1))
+ .fluentPut("exratedate", sdf1.format(now1))
+ .fluentPut("bizorg_number", boxType21)
+ .fluentPut("biztype_number", "110") // 璐т富/璐ф簮
+ .fluentPut("org_number", boxType21) // 璐т富/璐ф簮
+ .fluentPut("paymode", "CREDIT")
+ .fluentPut("invscheme_number", "110")
+ .fluentPut("billtype_number", "im_PurInBill_STD_BT_S")
+ .fluentPut("supplier_number", suppCode1) // 渚涘簲鍟嗙紪鍙�
+ .fluentPut("billentry", billentryArray1) // 灏� billentry 鏁扮粍娣诲姞鍒拌姹傚弬鏁�
+ )));
case "STK_MISCELLANEOUS": // 鍏朵粬鍏ュ簱鍗�
path = imOtherinbill;
billentryArray = new JSONArray();
@@ -156,10 +222,12 @@
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", orderDetl.getQty()) // 鏁伴噺
+ .fluentPut("qty", qty) // 鏁伴噺
.fluentPut("warehouse_number", "CK001") // 浠撳簱
.fluentPut("invstatus_number", "110")
.fluentPut("invtype_number", "110")
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
index df659b8..e87f24c 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/SubmitOrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/handler/SubmitOrderSyncHandler.java
@@ -44,6 +44,8 @@
private String imOtheroutbillSubmit;
@Value("${erp.address.imOtherinbillSubmit}")
private String imOtherinbillSubmit;
+ @Value("${erp.address.imProductinbillBatchSubmit}")
+ private String imProductinbillBatchSubmit;
@Autowired
private LoginAuthenticationHandler loginAuthenticationHandler;
@Autowired
@@ -92,6 +94,11 @@
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("id", idArray);
+ return new JSONObject().fluentPut("data", dataObj);
case "STK_MISCELLANEOUS"://鍏朵粬鍏ュ簱鍗�
path = imOtherinbillSubmit;
idArray.add(order.getOrderNo());
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 babd798..1fde2e6 100644
--- a/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java
+++ b/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java
@@ -3,16 +3,16 @@
public enum KingDeeUtilType {
BD_MATERIAL(0, "鐗╂枡妗f","BD_MATERIAL","","","",1),
BD_RRGANIZATION(2, "渚涘簲鍟�","BD_RRGANIZATION","","","",1),
- PUR_RECEIVEBIll(3, "鏀舵枡鍗�","PUR_RECEIVEBIll","","","",1),
- SAL_OUTSTOCK(7, "閿�鍞嚭搴撳崟","SAL_OUTSTOCK","FRealQty","","",0),
+// PUR_RECEIVEBIll(3, "鏀舵枡鍗�","PUR_RECEIVEBIll","","","",1),
+// SAL_OUTSTOCK(7, "閿�鍞嚭搴撳崟","SAL_OUTSTOCK","FRealQty","","",0),
// STK_MisDelivery(19, "鍏朵粬鍑哄簱鍗�","STK_MisDelivery","FQty","","",0),
// STK_MISCELLANEOUS(18, "鍏朵粬鍏ュ簱鍗�","STK_MISCELLANEOUS","FQty","鍏朵粬鍏ュ簱鍗�","STK_MISCELLANEOUS",1),
// SAL_RETURNSTOCK(9, "閿�鍞��璐у崟","SAL_RETURNSTOCK","FRealQty","","",1),
- PRD_PickMtrl(10, "鐢熶骇棰嗘枡鍗�","PRD_PickMtrl","","","",0),
-// PRD_ReturnMtrl(12, "鐢熶骇閫�鏂欏崟","PRD_ReturnMtrl","FQty","","",1),
+// PRD_PickMtrl(10, "鐢熶骇棰嗘枡鍗�","PRD_PickMtrl","","","",0),
+ PRD_ReturnMtrl(12, "鐢熶骇閫�鏂欏崟","PRD_ReturnMtrl","FQty","","",1),
// PRD_FeedMtrl(14, "鐢熶骇琛ユ枡鍗�","PRD_FeedMtrl","FActualQty","","",0),
- PRD_MORPT(16, "鐢熶骇姹囨姤鍗�","PRD_MORPT","FFinishQty","鐢熶骇鍏ュ簱鍗�","PRD_INSTOCK",1),
+// PRD_MORPT(16, "鐢熶骇姹囨姤鍗�","PRD_MORPT","FFinishQty","鐢熶骇鍏ュ簱鍗�","PRD_INSTOCK",1),
// STK_InspectionForm(20, "浜у搧妫�楠屽崟","STK_InspectionForm","","","",0),
// PUR_MRB(2, "閲囪喘閫�鏂欏崟","PUR_MRB","FRMREALQTY","","",1),
--
Gitblit v1.9.1