From 1b43abdddc83ee73315a44481c4abd66ee545ca6 Mon Sep 17 00:00:00 2001
From: ytfl <ytfl@qq.com>
Date: 星期一, 20 十月 2025 08:32:58 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java | 161 +++++++++++++++++++++++++++++++----------------------
1 files changed, 93 insertions(+), 68 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 9c619a2..6443a4b 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
@@ -12,9 +12,11 @@
import com.zy.asrs.service.*;
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.InFormIdParam;
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;
@@ -22,10 +24,9 @@
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.HashMap;
+import java.util.List;
@Service
@Slf4j
@@ -67,17 +68,15 @@
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//鐧诲綍閲戣澏
ReturnT<String> start = loginAuthenticationHandler.start();
- for(int i=0;i<docTypeService.selectCount(new EntityWrapper<>())+2;i++) {
+ for(KingDeeUtilType kingDeeUtilType : KingDeeUtilType.values()) {
InFormIdParam inFormIdParam = new InFormIdParam();
- KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get((short)i);
- if (Cools.isEmpty(kingDeeUtilType)){
- 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));
+ }
inFormIdParam.setFormId(kingDeeUtilType.formId);
inFormIdParam.setLimit(100);
inFormIdParam.setStartRow("0");
- Date time=new Date();
String FDocumentStatus=null;
//鏉′欢鍜岄渶瑕佽幏寰楃殑缁撴灉鎷兼帴
@@ -86,13 +85,11 @@
jsonObject.put("Limit", inFormIdParam.getLimit());
jsonObject.put("StartRow", inFormIdParam.getStartRow());
//鐗╂枡妗f鏌ヨ
- if(inFormIdParam.getFormId().equals("BD_MATERIAL")){
- Tag tag = tagService.selectById(20);
- //鏈�鏂版椂闂�
- time=tag.getCreateTime();
+ if(kingDeeUtilType.formId.equals("BD_MATERIAL")){
+ Tag tag = tagService.selectByName("鍏ㄩ儴", 1);
//鐗╂枡鐘舵�� FUseOrgId .FNumber
FDocumentStatus="C";
- jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(time)+"' and FDocumentStatus='"+FDocumentStatus+"' and FUseOrgId .FNumber='201'");
+ jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(tag.getUpdateTime())+"' and FDocumentStatus='"+FDocumentStatus+"' and FUseOrgId .FNumber='100'");
jsonObject.put("FieldKeys", "FName,FNumber,FCreateDate,FSpecification,FDocumentStatus");
// FName : 鐗╂枡鍚嶇О 锛�
// FNumber 锛氱墿鏂欑紪鍙凤紱
@@ -103,7 +100,7 @@
//鑾峰彇鏈�鏂版椂闂�
//鍗曟嵁鐘舵��
FDocumentStatus="B";
- jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(docType.getCreateTime())+"' and FStockId.Fname='绔嬪簱'"+" and FDocumentStatus='"+FDocumentStatus+"'");
+ jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(docType.getCreateTime())+"'"+" and FStockId.Fname='绔嬪簱'"+" and FDocumentStatus='"+FDocumentStatus+"'");
jsonObject.put("FieldKeys", "FBillNo,FCreateDate,FMaterialId.FNumber,FMaterialId.FName,FMaterialId.FSpecification,"+kingDeeUtilType.anfme+",FDocumentStatus");
// FBillNo :鍗曟嵁缂栧彿锛�
// FCreateDate 锛氬崟鎹垱寤烘椂闂达紱
@@ -134,42 +131,50 @@
JSONArray data = JSON.parseArray(response);
if(data.size()<=0) continue;
if (data.getJSONArray(0).get(0).toString().length()>=20) continue;
- if (i == 0) {
+ if (kingDeeUtilType.formId.equals("BD_MATERIAL")) {//鐗╂枡妗f
+ Tag tag = tagService.selectByName("鍏ㄩ儴", 1);
for (int j = 0; j < data.size(); j++) {
JSONArray jsonArray = data.getJSONArray(j);
+ //瀵圭編鍥芥椂闂磋繘琛岃浆鎹�
+ Date jsonDate = KingDeeUtil.KingDeeDate(jsonArray.get(2).toString());
//鐢熸垚鍟嗗搧妗f
//鍟嗗搧缂栧彿
Mat mat = matService.selectByMatnr(jsonArray.get(1).toString());
if (mat == null) {
mat = new Mat();
- Tag tag = new Tag();
mat.setMatnr(jsonArray.get(1).toString());
mat.setMaktx(jsonArray.get(0).toString());
mat.setSpecs(jsonArray.get(3).toString());//瑙勬牸
- mat.setTagId(20L);
- //瀵圭編鍥芥椂闂磋繘琛岃浆鎹�
- DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
- DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
- LocalDateTime dateTime = LocalDateTime.parse(jsonArray.get(2).toString(), formatter);
- String format = dateFormat.format(dateTime);
- Date date = sdf.parse(format);
- mat.setCreateTime(date);//鍟嗗搧鍒涘缓鏃堕棿
+ mat.setTagId(tag.getId());
+ mat.setCreateTime(jsonDate);//鍟嗗搧鍒涘缓鏃堕棿
mat.setUpdateTime(new Date());
mat.setStatus(1);
//鏈�鏂版姄鍙栧晢鍝佹椂闂�
- tag.setCreateTime(date);
- tagService.update(tag, new EntityWrapper<Tag>().eq("id", 20));
if (!matService.insert(mat)) {
- throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+// throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+ callApiLogSaveMat(mat,kingDeeUtilType, "鍚屾鏂扮墿鏂欏嚭閿欙紒锛侊紒"+mat, false);
+ log.info("鍚屾鏂扮墿鏂欏嚭閿欙紒锛侊紒鍙傛暟锛歔{}]銆乕{}]",mat,jsonArray);
} else {
- log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr());
+ callApiLogSaveMat(mat,kingDeeUtilType, "鍚屾鏂扮墿鏂欙紒", true);
+// log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr());
+ }
+ }else {
+ if (!jsonDate.equals(tag.getUpdateTime())){
+ callApiLogSaveMat(mat,kingDeeUtilType, "鍟嗗搧缂栧彿閲嶅:"+mat.getMatnr(), false);
+ log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}],鍟嗗搧缂栧彿閲嶅锛侊紒锛�", mat.getMatnr());
}
}
+ tag.setUpdateTime(jsonDate);
}
+ tagService.updateById(tag);
} else {
for (int j = 0; j < data.size(); j++) {
JSONArray jsonArray = data.getJSONArray(j);
- Order order = orderService.selectByNo(jsonArray.get(0).toString());
+ //鏈�鏂版姄鍙栨椂闂�
+ Date jsonDate = KingDeeUtil.KingDeeDate(jsonArray.get(1).toString());
+ docType.setCreateTime(jsonDate);
+ Order order = OrderInAndOutUtil.selectByNo(kingDeeUtilType.pakIn == 1, jsonArray.get(0).toString());
+// Order order = orderService.selectByNo(jsonArray.get(0).toString());
if (Cools.isEmpty(order)) {
Date now = new Date();
// 鍗曟嵁涓绘。
@@ -209,26 +214,38 @@
now, // 淇敼鏃堕棿
null // 澶囨敞
);
- //瀵圭編鍥芥椂闂磋繘琛岃浆鎹�
- DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
- DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
- LocalDateTime dateTime = LocalDateTime.parse(jsonArray.get(1).toString(), formatter);
- String format = dateFormat.format(dateTime);
- Date date = sdf.parse(format);
- //鏈�鏂版姄鍙栨椂闂�
- docType.setCreateTime(date);
- docTypeService.updateById(docType);
- if (!orderService.insert(order)) {
- throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�");
- }
+ 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)) {
- throw new CoolException(jsonArray.get(2).toString() + "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧");
+ 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)) {
+// 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();
@@ -243,40 +260,48 @@
orderDetl.setUpdateTime(new Date());
orderDetl.setStatus(1);
orderDetl.setQty(0.0D);
- DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
- DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
- LocalDateTime dateTime = LocalDateTime.parse(jsonArray.get(1).toString(), formatter);
- String format = dateFormat.format(dateTime);
- Date date = sdf.parse(format);
- //鏈�鏂版姄鍙栨椂闂�
- docType.setCreateTime(date);
- if (!orderDetlService.insert(orderDetl)) {
- throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
- }
+// if (!orderDetlService.insert(orderDetl)) {
+// callApiLogSaveOrder(order,kingDeeUtilType, "鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�!璁㈠崟鍙凤細"+order.getOrderNo(), false);
+//// throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
+// }
+ OrderInAndOutUtil.insertOrderDetl(kingDeeUtilType.pakIn == 1,order,orderDetl);
}
+ docTypeService.updateById(docType);
}
} catch (Exception e) {
log.error("fail", e);
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg(e.getMessage());
} finally {
- try {
- // 淇濆瓨鎺ュ彛鏃ュ織
- apiLogService.save(
- "杞鏁版嵁",
- URL + inaddress,
- null,
- "127.0.0.1",
- add,
- response,
- success
- );
- } catch (Exception e) {
- log.error("", e);
- }
+// try {
+// // 淇濆瓨鎺ュ彛鏃ュ織
+// apiLogService.save(
+// "杞鏁版嵁",
+// URL + inaddress,
+// null,
+// "127.0.0.1",
+// add,
+// response,
+// success
+// );
+// } catch (Exception e) {
+// log.error("", e);
+// }
}
}
return SUCCESS;
}
+ public void callApiLogSaveMat(Mat mat, KingDeeUtilType kingDeeUtilType, String response, Boolean bool) {
+ apiLogService.save("鑾峰彇"+kingDeeUtilType.desc, kingDeeUtilType.formId, "null", URL,
+ "鐗╂枡缂栧彿锛�" + mat.getMatnr() + "銆佺墿鏂欏悕绉帮細" + mat.getName() + "銆佺被鍨嬶細" + mat.getTagId$() + "銆佺姸鎬侊細" + mat.getStatus$(),
+ response, bool);
+ }
+
+ public void callApiLogSaveOrder(Order order, KingDeeUtilType kingDeeUtilType, String response, Boolean bool) {
+ apiLogService.save("鑾峰彇"+kingDeeUtilType.desc, kingDeeUtilType.formId, "null", URL,
+ "鍗曟嵁缂栧彿锛�" + order.getId() + "銆佺姸鎬侊細" + order.getStatus$(),
+ response, bool);
+ }
+
}
\ No newline at end of file
--
Gitblit v1.9.1