From 08d1f864b8b0baf443dca52b6534aab68448081a Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期四, 20 十一月 2025 12:50:29 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jshdasrs' into jshdasrs
---
src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java | 2
src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java | 315 +++++++++++++++++++++++++---------------------------
2 files changed, 153 insertions(+), 164 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 8547d04..2193811 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
@@ -98,42 +98,41 @@
JSONObject jsonObject = new JSONObject();
String path = null;
Date now = new Date();
- //鐗╂枡妗f鏌ヨ
- if(kingDeeUtilType.formId.equals("BD_MATERIAL")){
-// Mat latestMat = matService.selectLatest();
- String latestUpdateTime = sdf1.format(docType.getUpdateTime());
-// Tag tag = tagService.selectByName("鍏ㄩ儴", 1);
- 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("B", "C"));//鏁版嵁鐘舵�� [A:鏆傚瓨, B:宸叉彁浜�, C:宸插鏍竇
- path = matAddress;
- }
- else if(kingDeeUtilType.formId.equals("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;
- }
- else if(kingDeeUtilType.formId.equals("PUR_RECEIVEBIll")){
- jsonObject.put("start_biztime", "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:宸插鏍竇
- jsonObject.put("start_auditdate",null);//id
- jsonObject.put("end_auditdate", null);
- jsonObject.put("org_number", null);
- jsonObject.put("supplier_number", null);
- path = imPurreceiveBillAddress;
+ 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("B", "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", null);//id
+ jsonObject.put("end_auditdate", null);
+ jsonObject.put("org_number", null);
+ jsonObject.put("supplier_number", null);
+ path = imPurreceiveBillAddress;
+ break;
}
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("data", jsonObject);
@@ -319,133 +318,123 @@
}
}
}
-// else {
-// 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());
-// String billNo = jsonObjectNew.get("billno").toString();
-//
-// Order order = OrderInAndOutUtil.selectByNo(kingDeeUtilType.pakIn == 1, billNo);
-//// Order order = orderService.selectByNo(jsonArray.get(0).toString());
-//// LocOwner locOwner = null;
-//// if (!Cools.isEmpty(1)) {
-//// locOwner = locOwnerService.selectById(1);
-//// } else {
-//// locOwner = locOwnerService.selectById(1);
-//// }
-// if (Cools.isEmpty(order)) {
-// // 鍗曟嵁涓绘。
-// order = new Order(
-// String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
-// billNo, // 璁㈠崟缂栧彿
-// createTime, // 鍗曟嵁鏃ユ湡
-// docType.getDocId(), // 鍗曟嵁绫诲瀷
-// null, // 椤圭洰缂栧彿
-// "1", //椤圭洰鍚嶇О 瀹㈡埛PO鍙�
-// null, // 璋冩嫧椤圭洰缂栧彿
-// null, // 鍒濆绁ㄦ嵁鍙�
-// null, // 绁ㄦ嵁鍙�
-// null, // 瀹㈡埛缂栧彿
-// locOwner.getOwner(), // 瀹㈡埛
-// null, // 鑱旂郴鏂瑰紡
-// null, // 鎿嶄綔浜哄憳
-// null, // 鍚堣閲戦
-// null, // 浼樻儬鐜�
-// null, // 浼樻儬閲戦
-// null, // 閿�鍞垨閲囪喘璐圭敤鍚堣
-// null, // 瀹炰粯閲戦
-// null, // 浠樻绫诲瀷
-// null, // 涓氬姟鍛�
-// null, // 缁撶畻澶╂暟
-// null, // 閭垂鏀粯绫诲瀷
-// null, // 閭垂
-// null, // 浠樻鏃堕棿
-// null, // 鍙戣揣鏃堕棿
-// null, // 鐗╂祦鍚嶇О
-// null, // 鐗╂祦鍗曞彿
-// 1L, // 璁㈠崟鐘舵��
-// 1, // 鐘舵��
-// 9527L, // 娣诲姞浜哄憳
-// now, // 娣诲姞鏃堕棿
-// 9527L, // 淇敼浜哄憳
-// now, // 淇敼鏃堕棿
-// null // 澶囨敞
-// );
-// OrderInAndOutUtil.insertOrder(kingDeeUtilType.pakIn == 1, order);
-//
-//// if (!orderService.insert(order)) {
-//// if (!jsonDate.equals(docType.getCreateTime())){
-//// callApiLogSaveOrder(order,kingDeeUtilType, "鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�"+order, false);
-//// }
-//// continue;
-////// throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�");
-//// }
-// }
-// //鐗╂枡缂栫爜
-// Mat mat = matService.selectByMatnr(jsonArray.get(2).toString());
-// if (Cools.isEmpty(mat)) {
-// if (!jsonDate.equals(docType.getCreateTime())){
-// callApiLogSaveOrder(order,kingDeeUtilType, "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧"+jsonArray.get(2).toString(), false);
-// }
-// continue;
-// }
-//// OrderDetl orderDetl1 = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", jsonArray.get(0).toString()).eq("matnr", jsonArray.get(2).toString()));
-//// if (!Cools.isEmpty(orderDetl1)) {
-//// continue;
-//// }
-// Order order1 = OrderInAndOutUtil.selectByNo(kingDeeUtilType.pakIn == 1, jsonArray.get(0).toString());
-// List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(kingDeeUtilType.pakIn == 1, order1.getId());
-// boolean sign = false;
-// for (OrderDetl orderDetl : orderDetls){
-// if (orderDetl.getMatnr().equals( jsonArray.get(2).toString())){
-// sign = true;
-// break;
-// }
-// }
-// if (sign){
-// continue;
-// }
-// OrderDetl orderDetl = new OrderDetl();
-// orderDetl.sync(mat);
-// orderDetl.setBatch(null);
-// orderDetl.setAnfme(Double.parseDouble(jsonArray.get(5).toString()));
-// orderDetl.setOrderId(order.getId());
-// orderDetl.setOrderNo(order.getOrderNo());
-// orderDetl.setCreateBy(9527L);
-// orderDetl.setCreateTime(new Date());
-// orderDetl.setUpdateBy(9527L);
-// orderDetl.setUpdateTime(new Date());
-// orderDetl.setStatus(1);
-// orderDetl.setQty(0.0D);
-//// if (!orderDetlService.insert(orderDetl)) {
-//// callApiLogSaveOrder(order,kingDeeUtilType, "鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�!璁㈠崟鍙凤細"+order.getOrderNo(), false);
-////// throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
-//// }
-// OrderInAndOutUtil.insertOrderDetl(kingDeeUtilType.pakIn == 1,order,orderDetl);
-// }
-// docTypeService.updateById(docType);
-// }
-// }
+ else {
+ 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("supplier_number").toString();//璐т富缂栫爜
+ String owner = jsonObjectNew.get("supplier_name").toString();//璐т富鍚嶇О
+ Date createTime = sdf1.parse(jsonObjectNew.get("createtime").toString());
+ String billNo = jsonObjectNew.get("billno").toString();
+
+ Order order = OrderInAndOutUtil.selectByNo(kingDeeUtilType.pakIn == 1, billNo);//妫�绱㈠崟鎹�
+ LocOwner locOwner = null;
+ if (ownerUuid != null) {
+ locOwner = locOwnerService.selectByUuid(ownerUuid);
+ if (locOwner == null) {
+ callApiLogSaveOrder(order,kingDeeUtilType, "璐т富妫�绱㈠け璐ワ紝璇峰厛娣诲姞瀵瑰簲璐т富缂栧彿锛�"+ownerUuid, false);continue;
+ }
+ } else{
+ callApiLogSaveOrder(order,kingDeeUtilType, "璐т富妫�绱㈠け璐ワ紝鏈煡璇㈠埌璐т富缂栧彿锛�", false);continue;
+ }
+ if (Cools.isEmpty(order)) {
+ // 鍗曟嵁涓绘。
+ order = new Order(
+ String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
+ billNo, // 璁㈠崟缂栧彿
+ createTime.toString(), // 鍗曟嵁鏃ユ湡
+ docType.getDocId(), // 鍗曟嵁绫诲瀷
+ null, // 椤圭洰缂栧彿
+ "1", //椤圭洰鍚嶇О 瀹㈡埛PO鍙� 鏆傛椂涓嶇煡閬撳瓧娈垫槸鍝釜
+ null, // 璋冩嫧椤圭洰缂栧彿
+ null, // 鍒濆绁ㄦ嵁鍙�
+ null, // 绁ㄦ嵁鍙�
+ null, // 椤圭洰id
+ locOwner.getOwner(), // 瀹㈡埛
+ null, // 鑱旂郴鏂瑰紡
+ null, // 鎿嶄綔浜哄憳
+ null, // 鍚堣閲戦
+ null, // 浼樻儬鐜�
+ null, // 浼樻儬閲戦
+ null, // 閿�鍞垨閲囪喘璐圭敤鍚堣
+ null, // 瀹炰粯閲戦
+ null, // 浠樻绫诲瀷
+ null, // 涓氬姟鍛�
+ null, // 缁撶畻澶╂暟
+ null, // 閭垂鏀粯绫诲瀷
+ null, // 閭垂
+ null, // 浠樻鏃堕棿
+ null, // 鍙戣揣鏃堕棿
+ null, // 鐗╂祦鍚嶇О
+ null, // 鐗╂祦鍗曞彿
+ 1L, // 璁㈠崟鐘舵��
+ 1, // 鐘舵��
+ 9527L, // 娣诲姞浜哄憳
+ now, // 娣诲姞鏃堕棿
+ 9527L, // 淇敼浜哄憳
+ now, // 淇敼鏃堕棿
+ null // 澶囨敞
+ );
+ OrderInAndOutUtil.insertOrder(kingDeeUtilType.pakIn == 1, order);
+ }
+ JSONArray billEntryArray = jsonObjectNew.getJSONArray("billentry");
+ for (int k = 0; k < billEntryArray.size(); k++) {
+ JSONObject entry = billEntryArray.getJSONObject(k);
+ String matnr = entry.getString("material_number");
+ Double qty = entry.getDouble("qty");
+ //鐗╂枡缂栫爜
+ Mat mat = matService.selectByMatnr(matnr);
+ if (Cools.isEmpty(mat)) {
+ callApiLogSaveOrder(order,kingDeeUtilType, "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧"+matnr, false);
+ continue;
+ }
+ Order order1 = OrderInAndOutUtil.selectByNo(kingDeeUtilType.pakIn == 1, billNo);
+ List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(kingDeeUtilType.pakIn == 1, order1.getId());
+ boolean sign = false;
+ for (OrderDetl orderDetl : orderDetls){
+ if (orderDetl.getMatnr().equals(matnr)){
+ sign = true;
+ break;
+ }
+ }
+ if (sign){
+ continue;
+ }
+ OrderDetl orderDetl = new OrderDetl();
+ orderDetl.sync(mat);
+ orderDetl.setBatch(null);
+ orderDetl.setAnfme(qty);
+ orderDetl.setOrderId(order.getId());
+ orderDetl.setOrderNo(order.getOrderNo());
+ orderDetl.setCreateBy(9527L);
+ orderDetl.setCreateTime(new Date());
+ orderDetl.setUpdateBy(9527L);
+ orderDetl.setUpdateTime(new Date());
+ orderDetl.setStatus(1);
+ orderDetl.setQty(0.0D);
+ OrderInAndOutUtil.insertOrderDetl(kingDeeUtilType.pakIn == 1,order,orderDetl);
+ }
+ }
+ docTypeService.updateById(docType);
+ }
+ }
} catch (Exception e) {
log.error("fail", e);
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
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 495c94a..ef7b400 100644
--- a/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java
+++ b/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java
@@ -3,7 +3,7 @@
public enum KingDeeUtilType {
BD_MATERIAL(0, "鐗╂枡妗f","BD_MATERIAL","","","",1),
BD_RRGANIZATION(2, "璐т富","BD_RRGANIZATION","","","",1),
-// PUR_RECEIVEBIll(3, "鏀舵枡鍗�","PUR_RECEIVEBIll","","","",1),
+ PUR_RECEIVEBIll(3, "鏀舵枡鍗�","PUR_RECEIVEBIll","","","",1),
// STK_InStock(1, "閲囪喘鍏ュ簱鍗�","STK_InStock","FRealQty","","",1),
// PUR_MRB(2, "閲囪喘閫�鏂欏崟","PUR_MRB","FRMREALQTY","","",1),
--
Gitblit v1.9.1