From 00d83fc72c84383c506e8a8c0584d1292cafc260 Mon Sep 17 00:00:00 2001 From: 野心家 <1051256694@qq.com> Date: 星期一, 05 八月 2024 08:07:22 +0800 Subject: [PATCH] 完善 --- src/main/java/com/zy/asrs/controller/MatController.java | 130 ++++++++++++++++++------- src/main/resources/application.yml | 4 src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java | 134 +++++++++++++++++++------- 3 files changed, 191 insertions(+), 77 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/MatController.java b/src/main/java/com/zy/asrs/controller/MatController.java index 8719ef1..8ca5caf 100644 --- a/src/main/java/com/zy/asrs/controller/MatController.java +++ b/src/main/java/com/zy/asrs/controller/MatController.java @@ -41,6 +41,7 @@ import java.io.IOException; import java.net.URLEncoder; import java.text.SimpleDateFormat; +import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; @@ -164,10 +165,7 @@ @RequestMapping(value = "/mat/KingDeeadd/auth") @ManagerAuth - public R KingDeeadd(Mat mat) { - if (null != matService.selectByMatnr(mat.getMatnr())) { - return R.error("缂栧彿宸插瓨鍦�"); - } + public R KingDeeadd() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //鐧诲綍閲戣澏 ReturnT<String> start = loginAuthenticationHandler.start(); @@ -177,14 +175,28 @@ inFormIdParam.setLimit(100); inFormIdParam.setStartRow("0"); String FDocumentStatus = "C"; - String FNumber=mat.getMatnr(); + + // 鑾峰彇褰撳墠鏃ユ湡 + LocalDate currentDate = LocalDate.now(); + // 鑾峰彇鍓嶄竴涓湀鐨勫悓涓�澶� + LocalDate previousMonthDate = currentDate.minusMonths(1); + + // 鏍煎紡鍖栨棩鏈熶负 "yyyyMMdd" 鏍煎紡 + DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + String formattedDate2 = previousMonthDate.format(formatter1); + //鏉′欢鍜岄渶瑕佽幏寰楃殑缁撴灉鎷兼帴 JSONObject jsonObject = new JSONObject(); jsonObject.put("FormId", inFormIdParam.getFormId()); jsonObject.put("Limit", inFormIdParam.getLimit()); jsonObject.put("StartRow", inFormIdParam.getStartRow()); - jsonObject.put("FilterString", "FDocumentStatus='" + FDocumentStatus +"' and FNumber='"+FNumber+"' and FUseOrgId .FNumber='201'"); - jsonObject.put("FieldKeys", "FName,FNumber,FCreateDate,FSpecification,FDocumentStatus"); + 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 锛氱墿鏂欑姸鎬� JSONObject jsonObject1 = new JSONObject(); jsonObject1.put("data", jsonObject); String add = jsonObject1.toJSONString(); @@ -203,40 +215,80 @@ .build() .doPost(); JSONArray data = JSON.parseArray(response); - if (data.getJSONArray(0).get(0).toString().length()<20) { - success = true; - JSONArray jsonArray = data.getJSONArray(0); - //鐢熸垚鍟嗗搧妗f - //鍟嗗搧缂栧彿 - 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("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); - } else { - log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr()); + int i = 0; + 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 { - throw new CoolException("娌℃湁鎵惧埌鎸囧畾鐗╂枡妗f锛岃鑱旂郴绠$悊鍛�"); - } + +// if (data.getJSONArray(0).get(0).toString().length() < 20) { +// success = true; +// JSONArray jsonArray = data.getJSONArray(0); +// //鐢熸垚鍟嗗搧妗f +// //鍟嗗搧缂栧彿 +// 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("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); +// } else { +// log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr()); +// } +// } +// } else { +// throw new CoolException("娌℃湁鎵惧埌鎸囧畾鐗╂枡妗f锛岃鑱旂郴绠$悊鍛�"); +// } } catch (Exception e) { log.error("fail", e); // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 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 945997c..1002b2e 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,49 +71,103 @@ @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.setStartRow("0"); - Date time=new Date(); - String FDocumentStatus=null; + Date time = new Date(); + String FDocumentStatus = null; //鏉′欢鍜岄渶瑕佽幏寰楃殑缁撴灉鎷兼帴 JSONObject jsonObject = new JSONObject(); @@ -120,26 +175,33 @@ jsonObject.put("Limit", inFormIdParam.getLimit()); jsonObject.put("StartRow", inFormIdParam.getStartRow()); //鐗╂枡妗f鏌ヨ - if(i==0){ - Tag tag = tagService.selectById(20); - //鏈�鏂版椂闂� - time=tag.getCreateTime(); + if (i == 0) { + // 鑾峰彇褰撳墠鏃ユ湡 + LocalDate currentDate = LocalDate.now(); + // 鑾峰彇鍓嶄竴涓湀鐨勫悓涓�澶� + LocalDate previousMonthDate = currentDate.minusMonths(1); + + // 鏍煎紡鍖栨棩鏈熶负 "yyyyMMdd" 鏍煎紡 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + String formattedDate2 = previousMonthDate.format(formatter); + + //鐗╂枡鐘舵�� FUseOrgId .FNumber - FDocumentStatus="C"; - jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(time)+"' and FDocumentStatus='"+FDocumentStatus+"' and FUseOrgId .FNumber='201'"); + 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>'" + sdf.format(docType.getCreateTime()) + "' 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 +229,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); @@ -293,9 +355,9 @@ } } } - }else { + } else { } - }else { + } else { } } catch (Exception e) { log.error("fail", e); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index e001288..4ca00bd 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -10,7 +10,7 @@ enabled: false datasource: driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver - url: jdbc:sqlserver://10.10.10.215:1433;databasename=tzhtasrs + url: jdbc:sqlserver://127.0.0.1:1433;databasename=tzhtasrs username: sa password: sa@123 mvc: @@ -54,7 +54,7 @@ erp: #鍦板潃 address: - URL: http://ht01.wlgear.com:16001 + URL: http://192.168.3.102:16001 #鐧诲綍鍦板潃 loginaddress: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc #鍗曟嵁锛屽晢鍝佹。妗堝湴鍧� -- Gitblit v1.9.1