src/main/java/com/zy/asrs/controller/MatController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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); //生成商品档案 //商品编号 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); //生成商品档案 //商品编号 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("没有找到指定物料档案,请联系管理员"); } // if (data.getJSONArray(0).get(0).toString().length() < 20) { // success = true; // JSONArray jsonArray = data.getJSONArray(0); // //生成商品档案 // //商品编号 // 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("没有找到指定物料档案,请联系管理员"); // } } catch (Exception e) { log.error("fail", e); // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 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) { //物料档案 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()); //物料档案查询 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); 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 #单据,商品档案地址