From 448489ec5ff7ceae4e647410ca90d690000ad684 Mon Sep 17 00:00:00 2001 From: yxt_djz <313618925@qq.com> Date: Tue, 2 Aug 2022 16:06:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=94=E6=94=B6=E5=8D=95=E9=87=91=E8=9D=B6?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=AF=B9=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fin/api/kingdee/appayable/APPayable.java | 13 +-- .../kingdee/arreceivable/ARReceivable.java | 2 + .../biz/kingdee/FinKingDeeFeignService.java | 5 +- .../anrui/fin/biz/kingdee/KingDeeSaveSKD.java | 3 +- ...ReceivableBillCastToKingDeeBillFields.java | 110 +----------------- .../receivablebilldata_FEntityDetail.json | 17 ++- .../receivablebilldata_FEntityPlan.json | 5 + .../receivablebilldata_model.json | 17 +-- .../kingdee/receivablebill/testParams2.txt | 2 + .../应收单的参数必填备注.xlsx | Bin 9958 -> 10060 bytes 10 files changed, 45 insertions(+), 129 deletions(-) create mode 100644 anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/receivablebilldata_FEntityPlan.json create mode 100644 anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/testParams2.txt diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/appayable/APPayable.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/appayable/APPayable.java index 17df9380c3..1cd1d8cf3a 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/appayable/APPayable.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/appayable/APPayable.java @@ -105,19 +105,10 @@ public class APPayable { @Data public static class ScmApplyInboundVehicleDto implements Dto { - @ApiModelProperty("车辆信息sid") - private String sid; - - @ApiModelProperty("车辆入库单sid") - private String applySid; - - @ApiModelProperty("车型sid") - private String modelSid; - - @ApiModelProperty("车架号(VIN)") + @ApiModelProperty("物料编码") private String vinNo; - @ApiModelProperty("备注") + @ApiModelProperty("物料名称") private String remarks; } } diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/ARReceivable.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/ARReceivable.java index c17c64ad76..292101a4b5 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/ARReceivable.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/ARReceivable.java @@ -91,6 +91,8 @@ public class ARReceivable { @ApiModelProperty("车辆台数") private String num; + @ApiModelProperty("客户ID") + private String fcustomerid; @ApiModelProperty("车辆列表") private List vehicleList; diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignService.java index fc0fed2da8..a1949e3179 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignService.java @@ -89,11 +89,12 @@ public class FinKingDeeFeignService { } //业务日期 map_fEntityModel_.put("FDATE",aRReceivable.getApplicationDate()); + map_fEntityModel_.put("FCUSTOMERID",aRReceivable.getFcustomerid()==null?" JXYXB":aRReceivable.getFcustomerid()); //供应商:FSUPPLIERID (必填项) if(aRReceivable.getApplicationDate()==null){ return rb.setMsg("供应商 不能为空"); } - map_fEntityModel_.put("FSUPPLIERID","010001"); + // map_fEntityModel_.put("FSUPPLIERID","010001"); List vehicleList = aRReceivable.getVehicleList()==null?new ArrayList<>(): aRReceivable.getVehicleList(); for(int i=0;i list_fEntityPlan_=new ArrayList<>(); + list_fEntityPlan_.add( jsonFEntityPlan_); + jsonFEntityModel_.put("FEntityPlan", JSONArray.parseArray(JSON.toJSONString(list_fEntityPlan_))); jsonFEntityData_.put("Model",JSONObject.parseObject(JSON.toJSONString(jsonFEntityModel_),Feature.OrderedField)); jsonObj.put("data",jsonFEntityData_.toJSONString()); return jsonObj.toJSONString(); } - /** - * 业务实体类按照模板进行装换 - * @param params - * @param readJsonFile - * @param fEntityDetail_ - * @param fEntityPlan_ - * @return - */ - /* public static String cloneKingDeeParams(Map params, String readJsonFile, String fEntityDetail_, String fEntityPlan_){ - readJsonFile = readJsonFile.replace("@KD_Creator", "zs"); - //单据类型:FBillTypeID (必填项) - readJsonFile = readJsonFile.replace("@KD_FBillTypeID", "YFD01_SYS"); - //业务日期:FDATE (必填项) - readJsonFile = readJsonFile.replace("@KD_FDATE", "2022-07-26"); - //单据状态:FDOCUMENTSTATUS (必填项) - readJsonFile = readJsonFile.replace("@KD_FDOCUMENTSTATUS", "Z"); - //供应商:FSUPPLIERID (必填项) - readJsonFile = readJsonFile.replace("@KD_FSUPPLIERID", "010001"); - //币别:FCURRENCYID (必填项) - readJsonFile = readJsonFile.replace("@KD_FCURRENCYID", "PRE001"); - //付款条件:FPayConditon - readJsonFile = readJsonFile.replace("@KD_FPayConditon", ""); - //业务类型:FBUSINESSTYPE (必填项) - readJsonFile = readJsonFile.replace("@KD_FBUSINESSTYPE", "CG"); - //结算组织:FSETTLEORGID (必填项) - readJsonFile = readJsonFile.replace("@KD_FSETTLEORGID", "101"); - //付款组织:FPAYORGID (必填项) - readJsonFile = readJsonFile.replace("@KD_FPAYORGID", "101"); - //采购部门:FPURCHASEDEPTID (必填项) - readJsonFile = readJsonFile.replace("@KD_FPURCHASEDEPTID", "01"); - //作废状态:FCancelStatus (必填项) - readJsonFile = readJsonFile.replace("@KD_FCancelStatus", "A"); - StringBuilder sb=new StringBuilder(); - for(int i=0;i<1;i++){ - String fEntityDetail=fEntityDetail_.toString(); - //物料编码:FMATERIALID - fEntityDetail = fEntityDetail.replace("@KD_FMATERIALID", " JX091054"); - //物料说明:FMaterialDesc - fEntityDetail = fEntityDetail.replace("@KD_FMaterialDesc", "X牵引6*4-550超"); - //计价单位:FPRICEUNITID - fEntityDetail = fEntityDetail.replace("@KD_FPRICEUNITID", " liang"); - //单价:FPrice - fEntityDetail = fEntityDetail.replace("@KD_FPrice@", "312500.0"); - //计价数量:FPriceQty - fEntityDetail = fEntityDetail.replace("@KD_FPriceQty", "2.0"); - //含税单价:FTaxPrice - fEntityDetail = fEntityDetail.replace("@KD_FTaxPrice@", "350000.0"); - //含税净价:FPriceWithTax - fEntityDetail = fEntityDetail.replace("@KD_FPriceWithTax", "346500.0"); - //税率(%):FEntryTaxRate - fEntityDetail = fEntityDetail.replace("@KD_FEntryTaxRate", "12.0"); - //运输编号:F_PMZC_Assistant - fEntityDetail = fEntityDetail.replace("@KD_F_PMZC_Assistant", "1904110789"); - //物流车辆:F_PMZC_Base - fEntityDetail = fEntityDetail.replace("@KD_F_PMZC_Base", "0001F"); - //物流项目:F_PMZC_Base1 - fEntityDetail = fEntityDetail.replace("@KD_F_PMZC_Base1", "01.001"); - //折扣率(%):FEntryDiscountRate - fEntityDetail = fEntityDetail.replace("@KD_FEntryDiscountRate", "1.0"); - //折扣额:FDISCOUNTAMOUNTFOR - fEntityDetail = fEntityDetail.replace("@KD_FDISCOUNTAMOUNTFOR", "7000.0"); - //不含税金额:FNoTaxAmountFor_D - fEntityDetail = fEntityDetail.replace("@KD_FNoTaxAmountFor_D", "618750.0"); - //税额:FTAXAMOUNTFOR_D - fEntityDetail = fEntityDetail.replace("@KD_FTAXAMOUNTFOR_D", "74250.0"); - //价税合计:FALLAMOUNTFOR_D - fEntityDetail = fEntityDetail.replace("@KD_F_PMZC_Base1", "693000.0"); - //库存单位:FStockUnitId - fEntityDetail = fEntityDetail.replace("@KD_FStockUnitId", "liang"); - //库存数量:FStockQty - fEntityDetail = fEntityDetail.replace("@KD_FStockQty", "2.0"); - //库存基本数量:FStockBaseQty - fEntityDetail = fEntityDetail.replace("@KD_F_PMZC_Base1", "2.0"); - //计价基本分母:FPriceBaseDen - fEntityDetail = fEntityDetail.replace("@KD_FPriceBaseDen", "1.0"); - //库存基本分子:FStockBaseNum - fEntityDetail = fEntityDetail.replace("@KD_FStockBaseNum", "1.0"); - //含税单价:FTaxPrice - fEntityDetail = fEntityDetail.replace("@KD_FTaxPrice@", "350000.0"); - //税率(%):FEntryTaxRate - fEntityDetail = fEntityDetail.replace("@KD_FEntryTaxRate", "12.0"); - //价税合计:FALLAMOUNTFOR_D - fEntityDetail = fEntityDetail.replace("@KD_FALLAMOUNTFOR_D", "693000.0"); - //库存基本数量:FStockBaseQty - fEntityDetail = fEntityDetail.replace("@KD_FStockBaseQty", "2.0"); - sb.append(fEntityDetail).append(","); - } - String sbs=sb.substring(0,sb.length()-1); - readJsonFile=readJsonFile.replace("@KD_FEntityDetail",sbs); - StringBuilder sb_fEntityPlan=new StringBuilder(); - for(int i=0;i<1;i++){ - String fEntityPlan=fEntityPlan_.toString(); - //应付金额:FPAYAMOUNTFOR - fEntityPlan = fEntityPlan.replace("@KD_FPAYAMOUNTFOR", "693000.00"); - //应付比例(%):FPAYRATE - fEntityPlan = fEntityPlan.replace("@KD_FPAYRATE", "100.00000"); - //表头计划 - 到期日:FENDDATE - fEntityPlan = fEntityPlan.replace("@KD_FENDDATE", "2022-07-22 00:00:00"); - sb_fEntityPlan.append(fEntityPlan).append(","); - } - String sb_fEntityPlans=sb_fEntityPlan.substring(0,sb_fEntityPlan.length()-1); - readJsonFile=readJsonFile.replace("@KD_FEntityPlan",sb_fEntityPlans); - return readJsonFile; - }*/ - } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/receivablebilldata_FEntityDetail.json b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/receivablebilldata_FEntityDetail.json index 21f439d018..568513ade2 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/receivablebilldata_FEntityDetail.json +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/receivablebilldata_FEntityDetail.json @@ -4,16 +4,27 @@ }, "FMaterialDesc": "@KD_FMaterialDesc", "FPRICEUNITID": { - "FNumber": "" + "FNumber": "@KD_FPRICEUNITID" }, + "FPriceQty": 1.0, + "FTaxPrice": 12222.0, + "FPrice": 12100.99, + "FEntryTaxRate": 1.0, + "FNoTaxAmountFor_D": 12100.99, + "FTAXAMOUNTFOR_D": 121.01, + "FALLAMOUNTFOR_D": 12222.0, "FDeliveryControl": false, "FStockUnitId": { - "FNumber": "" + "FNumber": "@KD_FPRICEUNITID" }, + "FStockQty": 1.0, "FIsFree": false, + "FStockBaseQty": 1.0, "FSalUnitId": { - "FNumber": "" + "FNumber": "@KD_FPRICEUNITID" }, + "FSalQty": 1.0, + "FSalBaseQty": 1.0, "FPriceBaseDen": 1.0, "FSalBaseNum": 1.0, "FStockBaseNum": 1.0 diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/receivablebilldata_FEntityPlan.json b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/receivablebilldata_FEntityPlan.json new file mode 100644 index 0000000000..be2c097528 --- /dev/null +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/receivablebilldata_FEntityPlan.json @@ -0,0 +1,5 @@ +{ + "FENDDATE": "2022-08-02 00:00:00", + "FPAYRATE": 100.0, + "FPAYAMOUNTFOR": 12222.0 +} \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/receivablebilldata_model.json b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/receivablebilldata_model.json index 7a6de6a2d8..08f145a22c 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/receivablebilldata_model.json +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/receivablebilldata_model.json @@ -5,9 +5,9 @@ }, "FDATE": "@KD_FDATE", "FISINIT": false, - "FENDDATE_H": "", - "FCUSTOMERID":{ - "FNumber":"@KD_FCUSTOMERID" + "FENDDATE_H": "@KD_FDATE", + "FCUSTOMERID": { + "FNumber": "@KD_FCUSTOMERID" }, "FCURRENCYID": { "FNumber": "PRE001" @@ -29,7 +29,7 @@ "FISHookMatch": false, "FISINVOICEARLIER": false, "F_PMZC_Assistant2": { - "FNumber": "" + "FNumber": "01" }, "FsubHeadSuppiler": { "FORDERID": { @@ -43,14 +43,17 @@ } }, "FsubHeadFinc": { - "FACCNTTIMEJUDGETIME": "", + "FACCNTTIMEJUDGETIME": "@KD_FDATE", "FMAINBOOKSTDCURRID": { "FNumber": "PRE001" }, "FEXCHANGETYPE": { "FNumber": "HLTX01_SYS" }, - "FExchangeRate": 0 + "FExchangeRate": 1.0, + "FTaxAmountFor": 121.01, + "FNoTaxAmountFor": 12100.99 }, - "FEntityDetail": [] + "FEntityDetail": [], + "FEntityPlan": [] } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/testParams2.txt b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/testParams2.txt new file mode 100644 index 0000000000..cc5171afc4 --- /dev/null +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/testParams2.txt @@ -0,0 +1,2 @@ +{"formId":"AR_receivable","data":"{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{\"FID\":0,\"FBillTypeID\":{\"FNUMBER\":\"YSD01_SYS\"},\"FDATE\":\"2022-08-02 05:26:28\",\"FENDDATE\":\"2022-08-02 05:26:28\",\"FISINIT\":false,\"FENDDATE_H\":\"2022-08-02 05:26:28\",\"FCUSTOMERID\":{\"FNumber\":\" JXYXB\"},\"FCURRENCYID\":{\"FNumber\":\"PRE001\"},\"FISPRICEEXCLUDETAX\":true,\"FSETTLEORGID\":{\"FNumber\":\"101\"},\"FPAYORGID\":{\"FNumber\":\"101\"},\"FSALEORGID\":{\"FNumber\":\"101\"},\"FISTAX\":true,\"FCancelStatus\":\"A\",\"FBUSINESSTYPE\":\"BZ\",\"FSetAccountType\":\"1\",\"FISHookMatch\":false,\"FISINVOICEARLIER\":false,\"F_PMZC_Assistant2\":{\"FNumber\":\" \"},\"FsubHeadSuppiler\":{\"FORDERID\":{\"FNumber\":\" JXYXB\"},\"FTRANSFERID\":{\"FNumber\":\" JXYXB\"},\"FChargeId\":{\"FNumber\":\" JXYXB\"}},\"FsubHeadFinc\":{\"FACCNTTIMEJUDGETIME\":\"2022-08-02 00:00:00\",\"FMAINBOOKSTDCURRID\":{\"FNumber\":\"PRE001\"},\"FEXCHANGETYPE\":{\"FNumber\":\"HLTX01_SYS\"},\"FExchangeRate\":1.0}, \"FEntityDetail\":[{\"FMaterialDesc\":\"X牵引6*4-550超\",\"FIsFree\":false,\"FSalUnitId\":{\"FNumber\":\"\"},\"FSalBaseNum\":1.0,\"FStockUnitId\":{\"FNumber\":\"\"},\"FMATERIALID\":{\"FNumber\":\" JX091054\"},\"FPRICEUNITID\":{\"FNumber\":\"\"},\"FDeliveryControl\":false,\"FPriceBaseDen\":1.0,\"FStockBaseNum\":1.0},{\"FMaterialDesc\":\"X牵引6*4-550超\",\"FIsFree\":false,\"FSalUnitId\":{\"FNumber\":\"\"},\"FSalBaseNum\":1.0,\"FStockUnitId\":{\"FNumber\":\"\"},\"FMATERIALID\":{\"FNumber\":\" JX091054\"},\"FPRICEUNITID\":{\"FNumber\":\"\"},\"FDeliveryControl\":false,\"FPriceBaseDen\":1.0,\"FStockBaseNum\":1.0}]}}"} +{"formId":"AR_receivable","data":"{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{\"FID\":0,\"FBillTypeID\":{\"FNUMBER\":\"YSD01_SYS\"},\"FDATE\":\"2022-08-02 00:00:00\",\"FENDDATE\":\"2022-08-02 05:26:28\",\"FISINIT\":false,\"FENDDATE_H\":\"2022-08-02 00:00:00\",\"FCUSTOMERID\":{\"FNumber\":\" JXYXB\"},\"FCURRENCYID\":{\"FNumber\":\"PRE001\"},\"FISPRICEEXCLUDETAX\":true,\"FSETTLEORGID\":{\"FNumber\":\"101\"},\"FPAYORGID\":{\"FNumber\":\"101\"},\"FSALEORGID\":{\"FNumber\":\"101\"},\"FISTAX\":true,\"FCancelStatus\":\"A\",\"FBUSINESSTYPE\":\"BZ\",\"FSetAccountType\":\"1\",\"FISHookMatch\":false,\"FISINVOICEARLIER\":false,\"F_PMZC_Assistant2\":{\"FNumber\":\"01\"},\"FsubHeadSuppiler\":{\"FORDERID\":{\"FNumber\":\" JXYXB\"},\"FTRANSFERID\":{\"FNumber\":\" JXYXB\"},\"FChargeId\":{\"FNumber\":\" JXYXB\"}},\"FsubHeadFinc\":{\"FACCNTTIMEJUDGETIME\":\"2022-08-02 00:00:00\",\"FMAINBOOKSTDCURRID\":{\"FNumber\":\"PRE001\"},\"FEXCHANGETYPE\":{\"FNumber\":\"HLTX01_SYS\"},\"FExchangeRate\":1.0,\"FTaxAmountFor\":121.01,\"FNoTaxAmountFor\":12100.99},\"FEntityDetail\":[{\"FMATERIALID\":{\"FNumber\":\" JX091054\"},\"FMaterialDesc\":\"X牵引6*4-550超\",\"FPRICEUNITID\":{\"FNumber\":\"liang\"},\"FPriceQty\":1.0,\"FTaxPrice\":12222.0,\"FPrice\":12100.99,\"FEntryTaxRate\":1.0,\"FNoTaxAmountFor_D\":12100.99,\"FTAXAMOUNTFOR_D\":121.01,\"FALLAMOUNTFOR_D\":12222.0,\"FDeliveryControl\":false,\"FStockUnitId\":{\"FNumber\":\"liang\"},\"FStockQty\":1.0,\"FIsFree\":false,\"FStockBaseQty\":1.0,\"FSalUnitId\":{\"FNumber\":\"liang\"},\"FSalQty\":1.0,\"FSalBaseQty\":1.0,\"FPriceBaseDen\":1.0,\"FSalBaseNum\":1.0,\"FStockBaseNum\":1.0}],\"FEntityPlan\":[{\"FENDDATE\":\"2022-08-02 00:00:00\",\"FPAYRATE\":100.0,\"FPAYAMOUNTFOR\":12222.0}]}}"} \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/应收单的参数必填备注.xlsx b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/应收单的参数必填备注.xlsx index b267de5d3a24438bd515f41f151adc6008cc5cf8..afa999de3d05fbe58f387ef7c3bafaf44142b69d 100644 GIT binary patch delta 2970 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 QoCRY=#Du8Jh5ttW1&nM`!~g&Q