From 0109ab05af46871b3a88c68381e31f55c1459516 Mon Sep 17 00:00:00 2001 From: 野心家 <1051256694@qq.com> Date: 星期四, 27 二月 2025 12:56:24 +0800 Subject: [PATCH] 优化自动出库 --- src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java | 137 +++++++++++++++++++++++++++++++++------------ 1 files changed, 99 insertions(+), 38 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 bd7fc57..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 FStockId.Fname='绔嬪簱'"+"' 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,8 +227,8 @@ .build() .doPost(); JSONArray data = JSON.parseArray(response); - if(data.size()>0) { - if (data.getJSONArray(0).get(0).toString().length()<20) { + 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); @@ -181,6 +241,7 @@ 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"); @@ -292,9 +353,9 @@ } } } - }else { + } else { } - }else { + } else { } } catch (Exception e) { log.error("fail", e); -- Gitblit v1.9.1