| | |
| | | |
| | | 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; |
| | |
| | | |
| | | @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(); |
| | |
| | | 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 : 物料编码; |
| | |
| | | .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); |
| | |
| | | } |
| | | } |
| | | } |
| | | }else { |
| | | } else { |
| | | } |
| | | }else { |
| | | } else { |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("fail", e); |