From d9211c902b9472bc930fb0b191cd4367d12a7b14 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期五, 28 三月 2025 10:18:09 +0800
Subject: [PATCH] 取消整理订单
---
src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java | 376 +++++++++++++++++++++++++++++++----------------------
1 files changed, 220 insertions(+), 156 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 ca000fd..68229e4 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
@@ -26,6 +26,7 @@
import java.lang.reflect.Field;
import java.text.SimpleDateFormat;
+import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
@@ -70,76 +71,135 @@
@Transactional
public synchronized ReturnT<String> start() {
- SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//鐧诲綍閲戣澏
ReturnT<String> start = loginAuthenticationHandler.start();
- for(int i=0;i<14;i++) {
+ for (int i = 0; i < 14; i++) {
InFormIdParam inFormIdParam = new InFormIdParam();
//瀵瑰簲璁㈠崟绫诲瀷ID
- int docName=0;
+ int docName = 0;
//鏁伴噺瀛楁
- String anfme =null;
- switch (i){
+ String anfme = null;
+ switch (i) {
//鐗╂枡妗f
- case 0 : inFormIdParam.setFormId("BD_MATERIAL"); break;
+ case 0:
+ inFormIdParam.setFormId("BD_MATERIAL");
+ break;
//閲囪喘鍏ュ簱
- case 1 : inFormIdParam.setFormId("STK_InStock");docName=13;anfme ="FRealQty"; break;
+ case 1:
+ inFormIdParam.setFormId("STK_InStock");
+ docName = 13;
+ anfme = "FRealQty";
+ break;
//閲囪喘閫�鏂�
- case 2 : inFormIdParam.setFormId("PUR_MRB");docName=21;anfme ="FRMREALQTY"; break;
+ case 2:
+ inFormIdParam.setFormId("PUR_MRB");
+ docName = 21;
+ anfme = "FRMREALQTY";
+ break;
//鐢熶骇棰嗘枡
- case 3 : inFormIdParam.setFormId("PRD_PickMtrl");docName=22;anfme ="FActualQty"; break;
+ case 3:
+ inFormIdParam.setFormId("PRD_PickMtrl");
+ docName = 22;
+ anfme = "FActualQty";
+ break;
//鐢熶骇閫�鏂�
- case 4 : inFormIdParam.setFormId("PRD_ReturnMtrl");docName=24;anfme ="FQty"; break;
+ case 4:
+ inFormIdParam.setFormId("PRD_ReturnMtrl");
+ docName = 24;
+ anfme = "FQty";
+ break;
//鐢熶骇琛ユ枡
- case 5 : inFormIdParam.setFormId("PRD_FeedMtrl");docName=25;anfme ="FActualQty"; break;
+ case 5:
+ inFormIdParam.setFormId("PRD_FeedMtrl");
+ docName = 25;
+ anfme = "FActualQty";
+ break;
//鐩存帴璋冩嫧鍗�
- case 6 : inFormIdParam.setFormId("STK_TransferDirect");docName=26;anfme ="FQty"; break;
+ case 6:
+ inFormIdParam.setFormId("STK_TransferDirect");
+ docName = 26;
+ anfme = "FQty";
+ break;
//鐩樼泩鍗�
- case 7 : inFormIdParam.setFormId("STK_StockCountGain");docName=28;anfme ="FGainQty"; break;
+ case 7:
+ inFormIdParam.setFormId("STK_StockCountGain");
+ docName = 28;
+ anfme = "FGainQty";
+ break;
//鐩樹簭鍗�
- case 8 : inFormIdParam.setFormId("STK_StockCountLoss");docName=29;anfme ="FLossQty"; break;
+ case 8:
+ inFormIdParam.setFormId("STK_StockCountLoss");
+ docName = 29;
+ anfme = "FLossQty";
+ break;
//鍏朵粬鍑哄簱
- case 9 : inFormIdParam.setFormId("STK_MisDelivery");docName=30;anfme ="FQty"; break;
+ case 9:
+ inFormIdParam.setFormId("STK_MisDelivery");
+ docName = 30;
+ anfme = "FQty";
+ break;
//绠�鍗曠敓浜ч鏂�
- case 10 : inFormIdParam.setFormId("SP_PickMtrl");docName=31;anfme ="FActualQty"; break;
+ case 10:
+ inFormIdParam.setFormId("SP_PickMtrl");
+ docName = 31;
+ anfme = "FActualQty";
+ break;
//绠�鍗曠敓浜ч��鏂�
- case 11 : inFormIdParam.setFormId("SP_ReturnMtrl");docName=32;anfme ="FQty"; break;
+ case 11:
+ inFormIdParam.setFormId("SP_ReturnMtrl");
+ docName = 32;
+ anfme = "FQty";
+ break;
//閿�鍞嚭搴�
- case 12 : inFormIdParam.setFormId("SAL_OUTSTOCK");docName=14;anfme ="FRealQty"; break;
+ case 12:
+ inFormIdParam.setFormId("SAL_OUTSTOCK");
+ docName = 14;
+ anfme = "FRealQty";
+ break;
//閿�鍞��璐�
- case 13 : inFormIdParam.setFormId("SAL_RETURNSTOCK");docName=33;anfme ="FRealQty"; break;
+ case 13:
+ inFormIdParam.setFormId("SAL_RETURNSTOCK");
+ docName = 33;
+ anfme = "FRealQty";
+ break;
}
- inFormIdParam.setLimit(100);
+ inFormIdParam.setLimit(10000000);
inFormIdParam.setStartRow("0");
- Date time=new Date();
- String FDocumentStatus=null;
+ Date time = new Date();
+ String FDocumentStatus = null;
//鏉′欢鍜岄渶瑕佽幏寰楃殑缁撴灉鎷兼帴
JSONObject jsonObject = new JSONObject();
jsonObject.put("FormId", inFormIdParam.getFormId());
jsonObject.put("Limit", inFormIdParam.getLimit());
jsonObject.put("StartRow", inFormIdParam.getStartRow());
+ // 鑾峰彇褰撳墠鏃ユ湡
+ LocalDate currentDate = LocalDate.now();
+ // 鑾峰彇鍓嶄竴涓湀鐨勫悓涓�澶�
+ LocalDate previousMonthDate = currentDate.minusMonths(1);
+
+ // 鏍煎紡鍖栨棩鏈熶负 "yyyyMMdd" 鏍煎紡
+ DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+ String formattedDate2 = previousMonthDate.format(formatter1);
//鐗╂枡妗f鏌ヨ
- if(i==0){
- Tag tag = tagService.selectById(20);
- //鏈�鏂版椂闂�
- time=tag.getCreateTime();
+ if (i == 0) {
//鐗╂枡鐘舵�� FUseOrgId .FNumber
- FDocumentStatus="C";
- jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(time)+"' and FDocumentStatus='"+FDocumentStatus+"' and FUseOrgId .FNumber='201'");
- jsonObject.put("FieldKeys", "FName,FNumber,FCreateDate,FSpecification,FDocumentStatus");
+ FDocumentStatus = "C";
+ jsonObject.put("FilterString", "FCreateDate>'" + formattedDate2 + "' and FDocumentStatus='" + FDocumentStatus + "' and FUseOrgId .FNumber='201'");
+ jsonObject.put("FieldKeys", "FName,FNumber,FCreateDate,FSpecification,FDocumentStatus,FTuhao");
// FName : 鐗╂枡鍚嶇О 锛�
// FNumber 锛氱墿鏂欑紪鍙凤紱
// FCreateDate 锛氱墿鏂欏垱寤烘椂闂达紱
// FSpecification 锛氱墿鏂欒鏍硷紱
// FDocumentStatus 锛氱墿鏂欑姸鎬�
- }else{
+ } else {
//鑾峰彇鏈�鏂版椂闂�
- DocType docType= docTypeService.selectById(docName);
+ DocType docType = docTypeService.selectById(docName);
//鍗曟嵁鐘舵��
- FDocumentStatus="B";
- jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(docType.getCreateTime())+"' and FDocumentStatus='"+FDocumentStatus+"'");
- jsonObject.put("FieldKeys", "FBillNo,FCreateDate,FMaterialId.FNumber,FMaterialId.FName,FMaterialId.FSpecification,"+anfme+",FDocumentStatus");
+ FDocumentStatus = "B";
+ jsonObject.put("FilterString", "FCreateDate>'" + formattedDate2 + "' and FStockId.Fname='绔嬪簱'" + " and FDocumentStatus='" + FDocumentStatus + "'");
+ jsonObject.put("FieldKeys", "FBillNo,FCreateDate,FMaterialId.FNumber,FMaterialId.FName,FMaterialId.FSpecification," + anfme + ",FDocumentStatus");
// FBillNo :鍗曟嵁缂栧彿锛�
// FCreateDate 锛氬崟鎹垱寤烘椂闂达紱
// FMaterialId.FNumber : 鐗╂枡缂栫爜锛�
@@ -167,131 +227,135 @@
.build()
.doPost();
JSONArray data = JSON.parseArray(response);
- if(data.size()>0){
- success = true;
- }
- if(i==0){
- for (int j = 0; j < data.size(); j++) {
- JSONArray jsonArray = data.getJSONArray(j);
- //鐢熸垚鍟嗗搧妗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.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("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+ if (data.size() > 0) {
+ if (data.getJSONArray(0).get(0).toString().length() < 20) {
+ if (i == 0) {
+ for (int j = 0; j < data.size(); j++) {
+ JSONArray jsonArray = data.getJSONArray(j);
+ //鐢熸垚鍟嗗搧妗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.setModel(jsonArray.get(5).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.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("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+ } else {
+ log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr());
+ }
+ }
+ }
} else {
- log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr());
+ for (int j = 0; j < data.size(); j++) {
+ JSONArray jsonArray = data.getJSONArray(j);
+ Order order = orderService.selectByNo(jsonArray.get(0).toString());
+ if (Cools.isEmpty(order)) {
+ DocType docType = docTypeService.selectById(docName);
+ Date now = new Date();
+ // 鍗曟嵁涓绘。
+ order = new Order(
+ String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
+ jsonArray.get(0).toString(), // 璁㈠崟缂栧彿
+ DateUtils.convert(now), // 鍗曟嵁鏃ユ湡
+ docType.getDocId(), // 鍗曟嵁绫诲瀷
+ null, // 椤圭洰缂栧彿
+ null, //
+ null, // 璋冩嫧椤圭洰缂栧彿
+ null, // 鍒濆绁ㄦ嵁鍙�
+ null, // 绁ㄦ嵁鍙�
+ null, // 瀹㈡埛缂栧彿
+ null, // 瀹㈡埛
+ null, // 鑱旂郴鏂瑰紡
+ null, // 鎿嶄綔浜哄憳
+ null, // 鍚堣閲戦
+ null, // 浼樻儬鐜�
+ null, // 浼樻儬閲戦
+ null, // 閿�鍞垨閲囪喘璐圭敤鍚堣
+ null, // 瀹炰粯閲戦
+ null, // 浠樻绫诲瀷
+ null, // 涓氬姟鍛�
+ null, // 缁撶畻澶╂暟
+ null, // 閭垂鏀粯绫诲瀷
+ null, // 閭垂
+ null, // 浠樻鏃堕棿
+ null, // 鍙戣揣鏃堕棿
+ null, // 鐗╂祦鍚嶇О
+ null, // 鐗╂祦鍗曞彿
+ 1L, // 璁㈠崟鐘舵��
+ 1, // 鐘舵��
+ 9527L, // 娣诲姞浜哄憳
+ now, // 娣诲姞鏃堕棿
+ 9527L, // 淇敼浜哄憳
+ 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.update(docType, new EntityWrapper<DocType>().eq("doc_id", docName));
+ if (!orderService.insert(order)) {
+ throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+ }
+ //鐗╂枡缂栫爜
+ Mat mat = matService.selectByMatnr(jsonArray.get(2).toString());
+ if (Cools.isEmpty(mat)) {
+ throw new CoolException(jsonArray.get(2).toString() + "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧");
+ }
+ 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;
+ }
+ DocType docType = docTypeService.selectById(docName);
+ 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);
+ 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("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+ }
}
- }
+ } else {
}
- }else {
- for(int j=0;j<data.size();j++){
- JSONArray jsonArray = data.getJSONArray(j);
- Order order = orderService.selectByNo(jsonArray.get(0).toString());
- if (Cools.isEmpty(order)) {
- DocType docType = docTypeService.selectById(docName);
- Date now = new Date();
- // 鍗曟嵁涓绘。
- order = new Order(
- String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
- jsonArray.get(0).toString(), // 璁㈠崟缂栧彿
- DateUtils.convert(now), // 鍗曟嵁鏃ユ湡
- docType.getDocId(), // 鍗曟嵁绫诲瀷
- null, // 椤圭洰缂栧彿
- null, //
- null, // 璋冩嫧椤圭洰缂栧彿
- null, // 鍒濆绁ㄦ嵁鍙�
- null, // 绁ㄦ嵁鍙�
- null, // 瀹㈡埛缂栧彿
- null, // 瀹㈡埛
- null, // 鑱旂郴鏂瑰紡
- null, // 鎿嶄綔浜哄憳
- null, // 鍚堣閲戦
- null, // 浼樻儬鐜�
- null, // 浼樻儬閲戦
- null, // 閿�鍞垨閲囪喘璐圭敤鍚堣
- null, // 瀹炰粯閲戦
- null, // 浠樻绫诲瀷
- null, // 涓氬姟鍛�
- null, // 缁撶畻澶╂暟
- null, // 閭垂鏀粯绫诲瀷
- null, // 閭垂
- null, // 浠樻鏃堕棿
- null, // 鍙戣揣鏃堕棿
- null, // 鐗╂祦鍚嶇О
- null, // 鐗╂祦鍗曞彿
- 1L, // 璁㈠崟鐘舵��
- 1, // 鐘舵��
- 9527L, // 娣诲姞浜哄憳
- now, // 娣诲姞鏃堕棿
- 9527L, // 淇敼浜哄憳
- 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.update(docType,new EntityWrapper<DocType>().eq("doc_id",docName));
- if (!orderService.insert(order)) {
- throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�");
- }
- }
- //鐗╂枡缂栫爜
- Mat mat = matService.selectByMatnr(jsonArray.get(2).toString());
- if (Cools.isEmpty(mat)) {
- throw new CoolException(jsonArray.get(2).toString() + "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧");
- }
- 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;
- }
- DocType docType = docTypeService.selectById(docName);
- 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);
- 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("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
- }
- }
+ } else {
}
} catch (Exception e) {
log.error("fail", e);
--
Gitblit v1.9.1