From 4881f66b288c535c3b9da41ee07c9609bacb8481 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期一, 22 十二月 2025 17:01:49 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java | 452 +++++++++++++++++++++++++++++--------------------------
1 files changed, 239 insertions(+), 213 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 37c9926..ef2d311 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
@@ -56,9 +56,6 @@
@Value("${erp.address.scpSalreturn}")
//閿�鍞��璐у崟
private String scpSalreturn;
- @Value("${erp.address.scpSalreturnDetl}")
- //閿�鍞��璐у崟
- private String scpSalreturnDetl;
@Value("${erp.address.imMdcMftproorder}")
//鐢熶骇棰嗘枡鍗�
private String imMdcMftproorder;
@@ -157,9 +154,6 @@
break;
case "PUR_RECEIVEBIll": //宸插鏍告敹鏂欏崟鏌ヨ
jsonObject.put("start_biztime", latestUpdateTime);//涓氬姟璧峰鏃ユ湡
-// jsonObject.put("start_biztime", "2025-01-01 00:00:00");//涓氬姟璧峰鏃ユ湡
-// jsonObject.put("start_auditdate", "2025-01-01 00:00:00";
-
jsonObject.put("end_biztime", sdf1.format(now));//涓氬姟缁撴潫鏃ユ湡
jsonObject.put("billno", null);
jsonObject.put("billstatus", Arrays.asList("C"));//鏁版嵁鐘舵�� [A:鏆傚瓨, B:宸叉彁浜�, C:宸插鏍竇
@@ -177,9 +171,10 @@
break;
case "SAL_RETURNSTOCK"://閿�鍞��璐�
path = scpSalreturn;
- jsonObject.put("start_modifytime", "2025-11-25 00:00:00");//涓氬姟璧峰鏃ユ湡
+ jsonObject.put("modify_starttime", latestUpdateTime);//涓氬姟璧峰鏃ユ湡
jsonObject.put("billstatus", "B");//鍗曟嵁鐘舵��
- jsonObject.put("end_starttime", sdf1.format(now));//涓氬姟璧峰鏃ユ湡
+ jsonObject.put("modify_endtime", sdf1.format(now));//涓氬姟璧峰鏃ユ湡
+ jsonObject.put("billtype_number", "im_SalOutBill_STD_BT_S_R");//鍗曟嵁绫诲瀷
break;
case "PRD_PickMtrl"://鐢熶骇棰嗘枡鍗�
path = imMdcMftproorder;
@@ -223,7 +218,7 @@
case "PRD_MORPT"://鐢熶骇杩涗粨鍗�
path = imProductinbill;
jsonObject.put("billstatus", Arrays.asList("C"));//鏁版嵁鐘舵�� [A:鏆傚瓨, B:宸叉彁浜�, C:宸插鏍竇
- jsonObject.put("modifytime_start", latestUpdateTime);
+ jsonObject.put("modifytime_start",latestUpdateTime);
jsonObject.put("modifytime_end", sdf1.format(now));
break;
case "STK_InspectionForm"://浜у搧妫�楠�
@@ -268,7 +263,7 @@
JSONArray data = jsonResponse.getJSONObject("data").getJSONArray("rows");
if(data.size()<=0) continue;
//鍟嗗搧妗f鍚屾
- if (kingDeeUtilType.formId.equals("BD_MATERIAL")) {
+ if(kingDeeUtilType.formId.equals("BD_MATERIAL")) {
Tag tag = tagService.selectByName("鍏ㄩ儴", 1);
// 澶勭悊鍒嗛〉锛氭牴鎹繑鍥炵殑totalCount鍜宲ageSize璁$畻椤垫暟
int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
@@ -295,13 +290,12 @@
String matnr = jsonObjectNew.get("number").toString();
String name = jsonObjectNew.get("name").toString();
String createTime = jsonObjectNew.get("createtime").toString();
- Double grossweight = jsonObjectNew.get("grossweight") != null ? new BigDecimal(jsonObjectNew.get("eap7_decimalfield6").toString()).doubleValue() : 0.0;
- Double height = jsonObjectNew.get("height") != null ? new BigDecimal(jsonObjectNew.get("eap7_decimalfield9").toString()).doubleValue() : 0.0;
- Double width = jsonObjectNew.get("width") != null ? new BigDecimal(jsonObjectNew.get("eap7_decimalfield8").toString()).doubleValue() : 0.0;
- Double length = jsonObjectNew.get("length") != null ? new BigDecimal(jsonObjectNew.get("eap7_decimalfield7").toString()).doubleValue() : 0.0;
- Double netweight = jsonObjectNew.get("netweight") != null ? new BigDecimal(jsonObjectNew.get("eap7_decimalfield").toString()).doubleValue() : 0.0;
- Double unit = jsonObjectNew.get("units") != null ? new BigDecimal(jsonObjectNew.get("eap7_decimalfield2").toString()).doubleValue() : 0.0;
-
+ 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;
@@ -429,6 +423,8 @@
}
}
}
+ docType.setUpdateTime(now);
+ docTypeService.updateById(docType);
}
//鏀舵枡鍗�
else if(kingDeeUtilType.formId.equals("PUR_RECEIVEBIll")){
@@ -562,6 +558,12 @@
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;
@@ -583,7 +585,7 @@
orderDetl.setThreeCode(detlId);//ERP鏄庣粏id
orderDetl.setLineNumber(seq);//鍒嗗綍琛屽彿
orderDetl.setAnfme(anfme);//鎬荤鏁�
- orderDetl.setErpAnfme(anfme);//erp鏁版嵁
+ orderDetl.setErpAnfme(erpAnfme);//erp鏁版嵁
orderDetl.setOrderId(order.getId());
orderDetl.setOrderNo(order.getOrderNo());//琛ㄥご鍗曟嵁
orderDetl.setSupp(supp);//渚涘簲鍟嗗悕绉帮紙璐ф簮锛�
@@ -619,9 +621,9 @@
}
}
}
- docType.setUpdateTime(now);
- docTypeService.updateById(docType);
}
+ docType.setUpdateTime(now);
+ docTypeService.updateById(docType);
}
//閿�鍞嚭搴�
else if(kingDeeUtilType.formId.equals("SAL_OUTSTOCK")){
@@ -739,6 +741,12 @@
"鍟嗗搧涓嶅瓨鍦細" + 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());
@@ -758,7 +766,7 @@
orderDetl.setThreeCode(detlId);
orderDetl.setLineNumber(seq);
orderDetl.setAnfme(anfme);
- orderDetl.setErpAnfme(anfme);
+ orderDetl.setErpAnfme(erpAnfme);
orderDetl.setOrderId(order.getId());
orderDetl.setOrderNo(order.getOrderNo());
orderDetl.setSupp(supp);
@@ -794,10 +802,11 @@
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)
@@ -808,174 +817,156 @@
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 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(scpSalreturnDetl)
- .setJson(reqJson)
- .build()
- .doPost();
- JSONObject detailJson = JSON.parseObject(detailResp);
- JSONObject detData = detailJson.getJSONObject("data");
- 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 (Cools.isEmpty(order)) {
+ 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(
// 鍗曟嵁涓绘。
- order = new Order(
- String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
- billNo, // 璁㈠崟缂栧彿
- createTime.toString(), // 鍗曟嵁鏃ユ湡
- docType.getDocId(), // 鍗曟嵁绫诲瀷
- null, // 椤圭洰缂栧彿
- orderId, //鏀舵枡鍗昳d
- null, // 璋冩嫧椤圭洰缂栧彿
- null, // 鍒濆绁ㄦ嵁鍙�
- null, // 绁ㄦ嵁鍙�
- null, // 椤圭洰id
- null, // 璐т富
- 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"); //渚涘簲鍟�
- String suppCode = null; //渚涘簲鍟�
- JSONArray billEntryArray = jsonObjectNew2.getJSONArray("materialentry");
- 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 totalNumItems = 0.0;
- Double Totalvolume = 0.0;//鎬讳綋绉�
- String warehouse = null;//浠撳簱缂栫爜
- String pOrderNo = "1";//閲囪喘鍗曞彿
- String s3 = "1";//瀹㈡埛sku锛堝鎴风紪鍙凤級
- String s2 = "1"; //鏉$爜UPC
- String memo ="1"; //澶囨敞锛堣嫳鏂囨弿杩帮級
- String s1 = "1"; //瀹㈡埛PO
-// 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;
- }
- 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(anfme);//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(null); //璐т富鍚嶇О
- orderDetl.setBoxType2(null);//璐т富缂栧彿锛坋rp缁勭粐锛�
- 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);
- }
- }
- // 鏄惁杩樻湁涓嬩竴椤�
- boolean lastPage = detData.getBoolean("lastPage");
- if (lastPage) {
- hasNext = false;
- } else {
- // 涓嬩竴椤�
- int currPage = detData.getIntValue("pageNo");
- detailParam.put("pageNo", currPage + 1);
+ 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);
}
+ docType.setUpdateTime(now);
+ docTypeService.updateById(docType);
}
//浜у搧妫�楠屽崟
else if(kingDeeUtilType.formId.equals("STK_InspectionForm")){
@@ -1138,9 +1129,9 @@
orderDetlService.insert(orderDetl);
}
}
- docType.setUpdateTime(now);
- docTypeService.updateById(docType);
}
+ docType.setUpdateTime(now);
+ docTypeService.updateById(docType);
}
//鐢熶骇棰嗘枡锛岀敓浜цˉ鏂�
@@ -1223,7 +1214,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");//浠撳簱缂栫爜
@@ -1235,6 +1227,10 @@
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,
@@ -1248,9 +1244,16 @@
"鐗╂枡妗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));
@@ -1266,7 +1269,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());
@@ -1291,12 +1294,13 @@
orderDetl.setQty(0.0D);
orderDetlService.insert(orderDetl);
+
}
}
- docType.setUpdateTime(now);
- docTypeService.updateById(docType);
- }
+ }
+ docType.setUpdateTime(now);
+ docTypeService.updateById(docType);
}
//鐢熶骇閫�鏂欏崟PRD_ReturnMtrl
else if(kingDeeUtilType.formId.equals("PRD_ReturnMtrl") ) {
@@ -1328,11 +1332,11 @@
String orderId = jsonObjectNew.getString("id");
// ========= 璐т富鏍¢獙 =========
LocOwner locOwner = locOwnerService.selectByUuid(ownerUuid);
-// if (locOwner == null) {
-// callApiLogSaveOwner(null, kingDeeUtilType,
-// "璐т富妫�绱㈠け璐ワ細" + ownerUuid + " 鍚嶇О锛�" + owner, false);
-// continue;
-// }
+ if (locOwner == null) {
+ callApiLogSaveOwner(null, kingDeeUtilType,
+ "璐т富妫�绱㈠け璐ワ細" + ownerUuid + " 鍚嶇О锛�" + owner, false);
+ continue;
+ }
// ========= 鍒涘缓璁㈠崟涓昏〃 =========
Order order = orderService.selectByNo(billNo);
@@ -1389,7 +1393,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 = 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");//浠撳簱缂栫爜
@@ -1400,8 +1405,7 @@
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;
+ String suppCode = entry.getString("supplier_number");
if (anfme == null || anfme == 0) {
callApiLogSaveOrder(order, kingDeeUtilType,
"鍗曟嵁鏁伴噺寮傚父锛�" + matnr, false);
@@ -1414,6 +1418,12 @@
"鍟嗗搧涓嶅瓨鍦細" + 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());
@@ -1423,16 +1433,17 @@
if (exists) continue;
// // ========= 渚涘簲鍟� =========
String supp = null;
-// LocSupp locSupp = locSuppService.selectByUuid(suppCode);
-// if (locSupp != null) {
-// supp = locSupp.getOwner();
-// }
+ 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.setAnfme(anfmeBox);
orderDetl.setErpAnfme(anfme);
orderDetl.setOrderId(order.getId());
orderDetl.setOrderNo(order.getOrderNo());
@@ -1459,10 +1470,9 @@
orderDetlService.insert(orderDetl);
}
}
- docType.setUpdateTime(now);
- docTypeService.updateById(docType);
}
-
+ docType.setUpdateTime(now);
+ docTypeService.updateById(docType);
}
//鐢熶骇姹囨姤鍗�
else if(kingDeeUtilType.formId.equals("PRD_MORPT")) {
@@ -1492,6 +1502,7 @@
String owner = "鍜屽緱绉戞妧";
String ownerUuid = "BU-00001";
String orderId = jsonObjectNew.getString("id");
+ String manuBill = jsonObjectNew.getString("manufacturenun");
// ========= 璐т富鏍¢獙 =========
LocOwner locOwner = locOwnerService.selectByUuid(ownerUuid);
// if (locOwner == null) {
@@ -1512,7 +1523,7 @@
null, // 椤圭洰缂栧彿
orderId, //鏀舵枡鍗昳d
null, // 璋冩嫧椤圭洰缂栧彿
- null, // 鍒濆绁ㄦ嵁鍙�
+ manuBill, // 鍒濆绁ㄦ嵁鍙�
null, // 绁ㄦ嵁鍙�
null, // 椤圭洰id
owner, // 璐т富
@@ -1555,7 +1566,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 = 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");//浠撳簱缂栫爜
@@ -1580,6 +1592,7 @@
"鍟嗗搧涓嶅瓨鍦細" + matnr, false);
continue;
}
+ anfmeBox = Math.floor(anfme / mat.getSafeQty());
// ========= 鏄庣粏鍘婚噸 =========
List<OrderDetl> orderDetls =
orderDetlService.selectByOrderId(order.getId());
@@ -1598,8 +1611,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);
@@ -1625,10 +1638,9 @@
orderDetlService.insert(orderDetl);
}
}
- docType.setUpdateTime(now);
- docTypeService.updateById(docType);
}
-
+ docType.setUpdateTime(now);
+ docTypeService.updateById(docType);
}
@@ -1669,5 +1681,19 @@
"鍗曟嵁缂栧彿锛�" + 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
--
Gitblit v1.9.1