From de0e53cc5b26f8d217b15eab502a0d2709bb8ac9 Mon Sep 17 00:00:00 2001 From: djz236 Date: Fri, 19 Aug 2022 14:44:46 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E9=87=91=E8=9D=B6=20=E7=89=A9=E6=96=99?= =?UTF-8?q?=E7=9A=84=E6=96=B0=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fin/api/kingdee/appayable/APPayable.java | 105 +++++++++++++++++ .../fin/api/kingdee/auditKd/AuditKD.java | 14 +-- .../api/kingdee/bdmaterial/BdMaterial.java | 41 +++++++ .../fin/api/kingdee/submitkd/SubmitKD.java | 12 +- .../fin/biz/kingdee/FinKingDeeService.java | 48 +++++++- .../anrui/fin/biz/kingdee/KingDeeSaveSKD.java | 87 +++++++++++--- .../anrui/fin/biz/kingdee/KingDeeUtils.java | 3 +- .../APPayableCastToKingDeeBillFields.java | 105 +---------------- .../fin/biz/kingdee/appayable/testParams.txt | 15 --- .../fin/biz/kingdee/appaybill/testParams.txt | 15 --- .../BdMaterialCastToKingDeeBillFields.java | 3 - .../kingdee/bdmaterial/BdMaterialService.java | 110 +++++++++++++++++- .../biz/kingdee/bdmaterial/data_model.json | 4 +- .../fin/biz/kingdee/bdmaterial/testParams.txt | 0 .../物料的参数必填备注.xlsx | Bin 9518 -> 10099 bytes .../fin/biz/kingdee/purmrb/testParams.txt | 0 .../biz/kingdee/receivablebill/testParams.txt | 15 --- .../kingdee/receivablebill/testParams2.txt | 2 - .../biz/kingdee/saloutstock/testParams.txt | 0 .../fin/biz/kingdee/stkinstock/testParams.txt | 0 20 files changed, 380 insertions(+), 199 deletions(-) delete mode 100644 anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appayable/testParams.txt delete mode 100644 anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/testParams.txt delete mode 100644 anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/testParams.txt delete mode 100644 anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/testParams.txt delete mode 100644 anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/testParams.txt delete mode 100644 anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/testParams2.txt delete mode 100644 anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/saloutstock/testParams.txt delete mode 100644 anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/testParams.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 73008a0647..9d9d7b774e 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 @@ -107,4 +107,109 @@ public class APPayable { @ApiModelProperty("物料名称") private String remarks; } + + /** + * 业务实体类按照模板进行装换 + * @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; + }*/ } diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/auditKd/AuditKD.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/auditKd/AuditKD.java index 7087166deb..be4ae7c758 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/auditKd/AuditKD.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/auditKd/AuditKD.java @@ -1,5 +1,6 @@ package com.yxt.anrui.fin.api.kingdee.auditKd; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; /** @@ -7,21 +8,16 @@ import lombok.Data; */ @Data public class AuditKD { - // 1.formid:业务对象表单Id,字符串类型(必录) - private String formid; - // 2.data:Json格式数据(详情参考Json格式数据)(必录) - private DataKD data; - // 2.data:Json格式数据(详情参考Json格式数据)(必录) - @Data - public static class DataKD{ // 2.1.CreateOrgId:创建者组织内码,字符串类型(非必录) + @JsonProperty("CreateOrgId") private String CreateOrgId; //2.2.Numbers:单据编码集合,数组类型,格式:[No1,No2,...](使用编码时必录) + @JsonProperty("Numbers") private String[] Numbers; //2.3.Ids:单据内码集合,字符串类型,格式:"Id1,Id2,..."(使用内码时必录) + @JsonProperty("Ids") private String Ids; //2.4.InterationFlags:交互标志集合,字符串类型,分号分隔,格式:"flag1;flag2;..."(非必录),例如(允许负库存标识:STK_InvCheckResult) + @JsonProperty("InterationFlags") private String InterationFlags; - } - } diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/bdmaterial/BdMaterial.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/bdmaterial/BdMaterial.java index 8b06320684..d948d1a22b 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/bdmaterial/BdMaterial.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/bdmaterial/BdMaterial.java @@ -1,13 +1,25 @@ package com.yxt.anrui.fin.api.kingdee.bdmaterial; import com.fasterxml.jackson.annotation.JsonProperty; +import com.yxt.anrui.fin.api.kingdee.purmrb.PurMrb; import lombok.Data; +import javax.validation.constraints.NotBlank; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + /** * 物料 */ @Data public class BdMaterial { + /** + * 目标组织:TOrgId + */ + @JsonProperty("TOrgIds") + private String TOrgIds; /** *创建组织:FCreateOrgId (必填项) */ @@ -21,11 +33,40 @@ public class BdMaterial { /** *名称:FName (必填项) */ + @NotBlank(message = "名称:FName (必填项)") @JsonProperty("FName") private String FName; /** *物料分组:FMaterialGroup (必填项) */ + @NotBlank(message = "物料分组:FMaterialGroup (必填项)") @JsonProperty("FMaterialGroup") private String FMaterialGroup; + private final static BdMaterial bdMaterial = new BdMaterial(); + static { + /** + *物料分组:FMaterialGroup (必填项) + */ + bdMaterial.setFMaterialGroup("01"); + /** + *名称:FName (必填项) + */ + bdMaterial.setFName("物料名称1911"); + /** + *使用组织:FUseOrgId (必填项) + */ + bdMaterial.setFUseOrgId("100"); + /** + *创建组织:FCreateOrgId (必填项) + */ + bdMaterial.setFCreateOrgId("100"); + /** + * 目标组织:TOrgId + */ + bdMaterial.setTOrgIds("101"); + } + public static BdMaterial createBdMaterial() { + return bdMaterial; + } + } diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/submitkd/SubmitKD.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/submitkd/SubmitKD.java index b860329664..33661dd8f3 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/submitkd/SubmitKD.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/submitkd/SubmitKD.java @@ -1,5 +1,6 @@ package com.yxt.anrui.fin.api.kingdee.submitkd; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; /** @@ -7,18 +8,13 @@ import lombok.Data; */ @Data public class SubmitKD { - //1.formid:业务对象表单Id,字符串类型(必录) - private String formid; - //2.data:Json格式数据(详情参考Json格式数据)(必录) - private DataKD data; - //2.data:Json格式数据(详情参考Json格式数据)(必录) - @Data - public static class DataKD{ //2.1.CreateOrgId:创建者组织内码,字符串类型(非必录) + @JsonProperty("CreateOrgId") private String CreateOrgId; // 2.2.Numbers:单据编码集合,数组类型,格式:[No1,No2,...](使用编码时必录) + @JsonProperty("Numbers") private String[] Numbers; //2.3.Ids:单据内码集合,字符串类型,格式:"Id1,Id2,..."(使用内码时必录) + @JsonProperty("Ids") private String Ids; - } } diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeService.java index 066e8285ac..a6499db7a8 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeService.java @@ -20,7 +20,7 @@ public class FinKingDeeService { * @param data * @return */ - public ResultBean saveBill(String formId,String data) throws Exception { + public ResultBean> saveBill(String formId,String data) throws Exception { KingDeeParams kdp=new KingDeeParams(); kdp.setData(data); kdp.setFormId(formId); @@ -29,7 +29,51 @@ public class FinKingDeeService { log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean)); return listResultBean; } - + /** + * 调用提交金蝶的数据接口 + * @param formId + * @param data + * @return + */ + public ResultBean> submitKingDeeBillData(String formId,String data) throws Exception { + KingDeeParams kdp=new KingDeeParams(); + kdp.setData(data); + kdp.setFormId(formId); + log.info("kdp:{}",JSONObject.toJSONString(kdp)); + ResultBean> listResultBean = KingDeeSaveSKD.submitKingDeeBillData(kdp); + log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean)); + return listResultBean; + } + /** + * 调用审核金蝶的数据接口 + * @param formId + * @param data + * @return + */ + public ResultBean> auditKingDeeBillData(String formId,String data) throws Exception { + KingDeeParams kdp=new KingDeeParams(); + kdp.setData(data); + kdp.setFormId(formId); + log.info("kdp:{}",JSONObject.toJSONString(kdp)); + ResultBean> listResultBean = KingDeeSaveSKD.auditKingDeeBillData(kdp); + log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean)); + return listResultBean; + } + /** + * 调用分配金蝶的数据接口 + * @param formId + * @param data + * @return + */ + public ResultBean> allocateKingDeeBillData(String formId, String data) { + KingDeeParams kdp=new KingDeeParams(); + kdp.setData(data); + kdp.setFormId(formId); + log.info("kdp:{}",JSONObject.toJSONString(kdp)); + ResultBean> listResultBean = KingDeeSaveSKD.allocateKingDeeBillData(kdp); + log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean)); + return listResultBean; + } /** * 调用金蝶接口的数据格式 */ diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeSaveSKD.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeSaveSKD.java index 127ede3001..3c941cc869 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeSaveSKD.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeSaveSKD.java @@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.yxt.anrui.fin.api.kingdee.KingDeeResult; +import com.yxt.anrui.fin.api.kingdee.auditKd.AuditKD; +import com.yxt.anrui.fin.api.kingdee.submitkd.SubmitKD; import com.yxt.common.base.utils.StringUtils; import com.yxt.common.core.result.ResultBean; import org.apache.http.Header; @@ -47,18 +49,17 @@ public class KingDeeSaveSKD { * 登录金蝶的账户信息 */ private static String lcid = "2052"; + private static String url="http://121.36.43.55/k3cloud/Kingdee.BOS.WebApi.ServicesStub."; // 数据保存接口地址 - private static String Save_URL = "http://121.36.43.55/k3cloud/Kingdee.BOS.WebApi.ServicesStub." + - "DynamicFormService.Save.common.kdsvc"; + private static String Save_URL = url+"DynamicFormService.Save.common.kdsvc"; //数据提交接口的地址 - private static String Submit_URL = "http://121.36.43.55/k3cloud/Kingdee.BOS.WebApi.ServicesStub." + - "DynamicFormService.Submit"; + private static String Submit_URL = url+"DynamicFormService.Submit.common.kdsvc"; //数据审核接口的地址 - private static String Audit_URL = "http://121.36.43.55/k3cloud/Kingdee.BOS.WebApi.ServicesStub." + - "DynamicFormService.Audit"; + private static String Audit_URL = url+"DynamicFormService.Audit.common.kdsvc"; + //数据分配接口的地址 + private static String Allocate_URL = url+"DynamicFormService.Allocate.common.kdsvc"; //登录,校验用户的API接口地址 - private static String Login_URL = "http://121.36.43.55/k3cloud/Kingdee.BOS.WebApi.ServicesStub." + - "AuthService.ValidateUser.common.kdsvc"; + private static String Login_URL = url+"AuthService.ValidateUser.common.kdsvc"; /** @@ -90,7 +91,6 @@ public class KingDeeSaveSKD { try { URI save_uri = new URI(Save_URL); HttpPost method = new HttpPost(save_uri); - //采购入库单保存参数 log.info(jsonParam.getData()); /*String ss="{\"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\\\",\\\"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}]}}\"}"; log.info("ss-:{}",ss);*/ @@ -133,16 +133,21 @@ public class KingDeeSaveSKD { /** * 调用提交金蝶的数据接口 * @param jsonParam - * @param httpclient * @return */ - public static ResultBean> submitKingDeeBillData(FinKingDeeService.KingDeeParams jsonParam, HttpClient httpclient) { + public static ResultBean> submitKingDeeBillData(FinKingDeeService.KingDeeParams jsonParam) { + // 定义httpClient的实例 + HttpClient httpclient = new DefaultHttpClient(); + /********** 用户登录Begin ************************/ + ResultBean> rb1 = loginKingDeeSystem(httpclient); + if (!rb1.getSuccess()) return rb1; ResultBean > rb= ResultBean.fireFail(); try { - URI save_uri = new URI(Save_URL); + URI save_uri = new URI(Submit_URL); HttpPost method = new HttpPost(save_uri); - //采购入库单保存参数 log.info(jsonParam.getData()); + //String ss= "{\"formId\":\"BD_MATERIAL\",\"data\":\"{\\\"CreateOrgId\\\":\\\"\\\",\\\"Numbers\\\":[],\\\"Ids\\\":\\\"6263811\\\"}\"}"; + //StringEntity entity = new StringEntity(ss, "utf-8"); StringEntity entity = new StringEntity(jsonParam.getData(), "utf-8"); log.info(JSON.toJSONString(entity)); entity.setContentEncoding("UTF-8"); @@ -162,7 +167,6 @@ public class KingDeeSaveSKD { return rb.setMsg("操作失败"); } log.info(str); - // auditKingDeeBillData(); return createResultBean(str); } } catch (Exception e) { @@ -173,16 +177,63 @@ public class KingDeeSaveSKD { /** * 调用审核金蝶的数据接口 * @param jsonParam - * @param httpclient * @return */ - public static ResultBean> auditKingDeeBillData(FinKingDeeService.KingDeeParams jsonParam, HttpClient httpclient) { + public static ResultBean> auditKingDeeBillData(FinKingDeeService.KingDeeParams jsonParam) { + // 定义httpClient的实例 + HttpClient httpclient = new DefaultHttpClient(); + /********** 用户登录Begin ************************/ + ResultBean> rb1 = loginKingDeeSystem(httpclient); + if (!rb1.getSuccess()) return rb1; ResultBean > rb= ResultBean.fireFail(); try { - URI save_uri = new URI(Save_URL); + URI save_uri = new URI(Audit_URL); HttpPost method = new HttpPost(save_uri); //采购入库单保存参数 - log.info(jsonParam.getData()); + log.info("jsonParam:{}",jsonParam); + StringEntity entity = new StringEntity(jsonParam.getData(), "utf-8"); + log.info(JSON.toJSONString(entity)); + entity.setContentEncoding("UTF-8"); + entity.setContentType("application/json"); + //把成功登录的Session信息传进去,获取连接信息 + method.setHeader(sessionkey, sessionValue); + method.setHeader(aspnetsessionkey, aspnetsessionValue); + //方法参数 + method.setEntity(entity); + HttpResponse result = httpclient.execute(method); + // 请求发送成功,并得到响应 + if (result.getStatusLine().getStatusCode() == 200) { + log.info("请求成功"); + // 读取服务器返回过来的json字符串数据 + String str = EntityUtils.toString(result.getEntity()); + if(StringUtils.isBlank(str)){ + return rb.setMsg("操作失败"); + } + log.info(str); + return createResultBean(str); + } + } catch (Exception e) { + e.printStackTrace(); + } + return rb; + } + /** + * 分配金蝶返回的数据 + * @param jsonParam + * @return + */ + public static ResultBean> allocateKingDeeBillData(FinKingDeeService.KingDeeParams jsonParam) { + // 定义httpClient的实例 + HttpClient httpclient = new DefaultHttpClient(); + /********** 用户登录Begin ************************/ + ResultBean> rb1 = loginKingDeeSystem(httpclient); + if (!rb1.getSuccess()) return rb1; + ResultBean > rb= ResultBean.fireFail(); + try { + URI save_uri = new URI(Allocate_URL); + HttpPost method = new HttpPost(save_uri); + //采购入库单保存参数 + log.info("jsonParam:{}",JSON.toJSON(jsonParam.getData())); StringEntity entity = new StringEntity(jsonParam.getData(), "utf-8"); log.info(JSON.toJSONString(entity)); entity.setContentEncoding("UTF-8"); diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeUtils.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeUtils.java index 89f0cbf538..a1b83ae146 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeUtils.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeUtils.java @@ -8,13 +8,12 @@ import java.util.Map; public class KingDeeUtils { public static String readJsonFile(String filename) { //#传文件的路径 - String jsonStr = ""; try { BufferedReader br= FileUtil.getUtf8Reader(filename); StringBuffer sb = new StringBuffer(); String data = null; while((data = br.readLine()) != null) { - sb.append((String) data); + sb.append(data); } return sb.toString(); } catch (IOException e) { diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appayable/APPayableCastToKingDeeBillFields.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appayable/APPayableCastToKingDeeBillFields.java index 110bf47bbc..d2a62b50c1 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appayable/APPayableCastToKingDeeBillFields.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appayable/APPayableCastToKingDeeBillFields.java @@ -56,109 +56,6 @@ public class APPayableCastToKingDeeBillFields { 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/appayable/testParams.txt b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appayable/testParams.txt deleted file mode 100644 index 1716118f09..0000000000 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appayable/testParams.txt +++ /dev/null @@ -1,15 +0,0 @@ -{ - "sid": "63", - "userSid": "73", - "applicationDate": "2022-08-01 06:22:08", - "applicationCode": "1659335563", - "vehicleList": [ - { - "sid": "25", - "applySid": "11", - "modelSid": " JX091054", - "vinNo": " JX091054", - "remarks": "X牵引6*4-550超" - } - ] -} \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/testParams.txt b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/testParams.txt deleted file mode 100644 index 1716118f09..0000000000 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/testParams.txt +++ /dev/null @@ -1,15 +0,0 @@ -{ - "sid": "63", - "userSid": "73", - "applicationDate": "2022-08-01 06:22:08", - "applicationCode": "1659335563", - "vehicleList": [ - { - "sid": "25", - "applySid": "11", - "modelSid": " JX091054", - "vinNo": " JX091054", - "remarks": "X牵引6*4-550超" - } - ] -} \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/BdMaterialCastToKingDeeBillFields.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/BdMaterialCastToKingDeeBillFields.java index b6edd3f38e..618ad37cbf 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/BdMaterialCastToKingDeeBillFields.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/BdMaterialCastToKingDeeBillFields.java @@ -41,9 +41,6 @@ public class BdMaterialCastToKingDeeBillFields { fEntityModel_ =KingDeeUtils.replaceTemplateParams(fEntityModel_, map_fEntityModel_); JSONObject jsonFEntityModel_= JSONObject.parseObject(fEntityModel_,Feature.OrderedField); - List list_fEntityDetail_=new ArrayList<>(); - - jsonFEntityModel_.put("FEntity", JSONArray.parseArray(JSON.toJSONString(list_fEntityDetail_))); jsonFEntityData_.put("Model",JSONObject.parseObject(JSON.toJSONString(jsonFEntityModel_),Feature.OrderedField)); jsonObj.put("data",jsonFEntityData_.toJSONString()); diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/BdMaterialService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/BdMaterialService.java index 42855811de..1efba642b8 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/BdMaterialService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/BdMaterialService.java @@ -2,13 +2,15 @@ package com.yxt.anrui.fin.biz.kingdee.bdmaterial; import cn.hutool.core.bean.BeanUtil; import com.yxt.anrui.fin.api.kingdee.KingDeeBillId; +import com.yxt.anrui.fin.api.kingdee.KingDeeResult; import com.yxt.anrui.fin.api.kingdee.bdmaterial.BdMaterial; -import com.yxt.anrui.fin.api.kingdee.saloutstock.SalOutStock; import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService; +import com.yxt.common.base.utils.StringUtils; import com.yxt.common.core.result.ResultBean; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -18,7 +20,7 @@ import java.util.Map; */ @Service public class BdMaterialService extends FinKingDeeService { - + private static Logger log= LoggerFactory.getLogger("BdMaterialService"); /** * 保存采购出库单 * @param bdMaterial @@ -28,8 +30,10 @@ public class BdMaterialService extends FinKingDeeService { // bdMaterial=BdMaterial.createBdMaterial(); ResultBean rb=ResultBean.fireFail(); Map map_fEntityModel_=new HashMap<>(); + //物料信息转map参数 Map stringObjectMap = BeanUtil.beanToMap(bdMaterial); for (Map.Entry entry : stringObjectMap.entrySet()) { + //物料信息转map参数 需要按照不同的字段类型进行处理 if (entry.getValue() instanceof String) { map_fEntityModel_.put(entry.getKey(), (String) entry.getValue()); }else if(entry.getValue() instanceof Double){ @@ -38,10 +42,108 @@ public class BdMaterialService extends FinKingDeeService { } String kingDeeData = BdMaterialCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_); try { - return saveBill(KingDeeBillId.BD_MATERIAL.getID(),kingDeeData); + ResultBean> resultBean = saveBill(KingDeeBillId.BD_MATERIAL.getID(), kingDeeData); + if(!resultBean.getSuccess()){ + log.info("物料保存失败!"); + return rb.setMsg("物料保存失败!"); + } + log.info("物料保存成功!"); + String submitKD = getSubmitKD(resultBean); + ResultBean> resultBean1 = submitKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(), submitKD); + if(!resultBean1.getSuccess()){ + log.info("物料提交失败!"); + return rb.setMsg("物料提交失败!"); + } + log.info("物料提交成功!"); + + String auditKD = getAuditKD(resultBean); + ResultBean> resultBean2 = auditKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(), auditKD); + if(!resultBean2.getSuccess()){ + log.info("物料审核失败!"); + return rb.setMsg("物料审核失败!"); + } + log.info("物料审核成功!"); + String tOrgIds = bdMaterial.getTOrgIds(); + + if(StringUtils.isBlank(tOrgIds)){ + //没有分配目标的组织架构的内码 不再调用分配的接口 + return resultBean2; + } + + String allocate = getAllocate(resultBean1,bdMaterial.getTOrgIds()); + ResultBean> resultBean3 = allocateKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(), allocate); + if(!resultBean3.getSuccess()){ + log.info("物料分配失败!"); + return rb.setMsg("物料分配失败!"); + } + log.info("物料分配成功!"); + return resultBean3; } catch (Exception e) { e.printStackTrace(); } return rb; } + + + /** + * 构造分配接口的数据格式 + * @param resultBean + * @return + */ + private String getAllocate(ResultBean> resultBean,String tOrgIds) { + /* 2.1.PkIds:被分配的基础资料内码集合,字符串类型,格式:"PkId1,PkId2,..."(必录) + 2.2.TOrgIds:目标组织内码集合,字符串类型,格式:"TOrgId1,TOrgId2,..."(必录) + 2.3.IsAutoSubmitAndAudit:是否自动提交与审核,布尔类型,默认false(非必录)*/ + List data = resultBean.getData(); + StringBuilder Ids=new StringBuilder(); + for (int i=0;i> resultBean) { + //2.1.CreateOrgId:创建者组织内码,字符串类型(非必录) + //2.2.Numbers:单据编码集合,数组类型,格式:[No1,No2,...](使用编码时必录) + //2.3.Ids:单据内码集合,字符串类型,格式:"Id1,Id2,..."(使用内码时必录) + List data = resultBean.getData(); + StringBuilder Ids=new StringBuilder(); + for (int i=0;i> resultBean) { + //2.1.CreateOrgId:创建者组织内码,字符串类型(非必录) + //2.2.Numbers:单据编码集合,数组类型,格式:[No1,No2,...](使用编码时必录) + //2.3.Ids:单据内码集合,字符串类型,格式:"Id1,Id2,..."(使用内码时必录) + List data = resultBean.getData(); + StringBuilder Ids=new StringBuilder(); + for (int i=0;igV7VJPX2p}V^!1nKUO?v#@H(I_p$H*|?~ch}GeQqmm?NF!1rJiqtW zTQBY(XPvw5J?Gqi?p}NE8kL_Kb!jMQR0<)-@C+0#z{kDtNY;)8BZ7FyRJq4(h#BWq z(<)W~Sx+RXM^H`uV%<@PxVB`>lT7bJ56@Tt8`c?d!lbH@oRw?}MqE0*;ZOXIDdtDe z+XX%*BW-rFLSiF9jj1Vu8a5uBwJe=TFEOK9W;WG!n!@NeS=O$1V8+H5>sr2|9Er9y z(ph2)6bUkoVq5Q0q!C*guamZ=rWdL4o0a<|K85nZEx_b}K}TNsyp$bQD5Udx_Pcp~ zMMc36A&O?;9c`(I|72Nc&2{Ha*zBKBsQr4A#Wzk2uXdHzqvVr)`QBh$+dn&_dT z6Uu5uutXjfjdx12D*;arH&<9%s;Fp0AP@)wiq+VW-5juvVL<_baKRuDAqbvNPfS(( z!CZBKmni1!*^~TeNLF%sQ)2-ZaQsRsrT$~X&Qx&>K<$t%PABAe$Z;03580Caw$D1}5o4$+pG zsLznq<9UuWr9H9yQ0@H1&%RYkT|*>MW}9U?vBiV%)&T9THX5UBRf4wy=A_o15{H7E zoYC+l`_4BBv^lW}x|ClB6`S8AM#NWs@ph9{&Lwz#Nl*LEWXy>m-R>W`VC(!KxGyR!onvk!OBYpKiJ&g`4yd3e#Dvqn0#AEIh6}^T36E z#Ff?&Q$F2LQ0LC=`LTW|4#%_f;L_Ptkxcay-+w;4ij_68S>h`SSHgDgmby`QaN~lk zg>(V6_VlQ-OUaPU(h!!p1}O&s-}QN(gPvQm&c*jU)(Byjx$s*0)hZ73&N9<{NC(F> zM%Ri43xp)$v*ybna!HmrNvYW^M4UkZaT@DJNQp#qu`kY6a1udv9Ltw{p({dBbstgG znHS3COYco?Bp_*{o6I$#F$J0N6w;Rb0lX^r?5T05qxA-+7Ejjyh!Z&i@3~t%x}KDm z9}DQZjk7ijqG+53dj$Ww8FAey4vpNz?RT=-o@yyf0lY4x}vtQj450c zCDSKL$9Np3i-A^&YKedpiJAG>a! z&9g(K=bD9=<0ct~vJA3bkm@G~?g`~?-#uNA2HHeNXFLbVE;Ue$Ie&cAZ?aT6d71Sx zNXbdg4I@@gAY$PqE?N>6(FD3Lm-cSxBMG)(ocss$nQE2#^uy=G0+s;Be(=Iv+u2HEQvKDNK#@T8y+P2h^pqJ~iCPA!9=_88Po z3a7>VVG+wOMmkUeXKuD1hSxOe(T*|LIYXCnt9iVdaEKh}kKsTBo5YAtW3~=RnA;5MC$jNBTu+6A?4E?+qlG-zY09X z-|uP^Kggm|K`Ol6o-$9F@7@F9A_6TA!x9_5@PI|9Pc@4Y9viJwK-bN1==DlsWFg0T zedP2-cT!c=g5B74VCd$BpTwoVdnSjQF_hu+k!j7@GWFdw?l;OK%g0$0GU|@&NvYK& z#tbBu#H9t%iDm6PawAWw38@ckUT>v`(_&XcdeA$YJ!R^uL*KoNaaXTi%x*6H7I1l= zB|?!kz?v5LI2tbwG$8U)M|n1n2VN;6MqSN&@jk90dYH|B-#5GbTAejLxc$v>+*hvI`z=j1eaHy1e=W->*F{lj4A&ghbU97QP`1x)?3oy+aW^Zp=7l+a)V1rl&8m@|3 zmF`*TqZgacFw#qM)<}Zclr^bc z8D<5FQh90rNtGHQC!Ff$bypj<{%BYvX`>+^C}IMbGDYb2O)ETc6LJe6mv)+hisFj4 z`11?NY^lF_uM0VOjE7IWum*wS1r&_muUMNvF zj-vvaEX!+Kum>DDCjC0y9C4nJ7D-&Z9ywaY5O#f?b?cL;{jsdi__01$y>V5@v)_ci zHb9@Z<3~Z|j3cEwv0jah0Ae)%$I1_P2HNyd7n4QwvX$9iEj45nC24L)dWL(;LkAVQ z*gOV{OAB>8>I>64x2=dFnTuv;q~%yo(pxv+;GovlqTUk6d2wiXI0IOA9%eofZk?PR z&;b*_37Rv~G79?~I@Vwo_j~+H!Q70)E9Vk>3s(bm!&l<~+r7ZD1KYg_DIvCLymh0Q z2Y&XYV?C$+tIRhW%|xr1h{jkxMw$9}iqtSD1>L$+ zw33%DUOPKFP888SLtw<~rhw2i_qdf`q;+K^WwYPQzi25-!dB#?CXa{^=O-$doXC9rS+bv*#4mj_qyQn5WY;XqNoqe8BABbHtG6g-MDUYOy-hQ! zmQ9{j0?$60b!Pz?oZG(LIQVXW3+*iLq(ekI+*#5BX8gyePN-igLl!Po1VGm9*&J@XXv4}H}q>K z+8Eo_wh(9V`y84MtW8vC_L{g1nXQ7|l|1#c`cOKVO4<)st3}&M)ERA0k>gE9{niCr8FFkDQDqp_%@L$il~shqkMY$OEb~{}7TB7aO{~ zWn)b==lhV!o;AQ<#&6SqVZ<%M$f|~Ku8p5r_Uu)mqimV-S1_91;9LT^c0zR-btXGS zv_3o2mQM^!)q=6=M6{fwXC7^esW}IkmJe-xg~7l*X`nVLkDo36oG~Bv)jFNyXlmS@ zwGj3y=Un!l9ARdAtp(syDTN2WahpqUGmlOW2 zA&+ggwG+T)u-#?1&3XAZa~Ugk$e{=d%3X7HIBh)I@0bL*sj&xdR#8L_am5_`!SV#o z4eBt`ZTO_*8@?CqOXfZ$6;sH!eBg;T`#^4#P$Hw>t;eX2I&|tZjV6#328Eyjwxj(O z(?J{?%;|wE*K=x0wgtv3RzD>gnIOOWJ*nYc35JpA>l-2|aY!<$zcn&SC~UGzaYE91aeZa32D7*EL{M zCg|4t^5`qWZ3kO1!TtFj9#4M7UMc7fbNAg1hqUa84!} z0Dhuyrj3mN>X>hD2d54lqL|lo2x#Oy-zqgJ1`+fBS_xJ`W1tfa5+UoAAE&F5S|dKXm#i_qk|u z1qZ%Yl6=G)x!MFN77E@ErSM%PHcUKfppBWCE;HEA|8itx7o(SYvsdJ9FFp;Sga_d) zm`t3NrBZUD(eB{oh9D(C-m}k%pC5p+ppGn0qFHNyJm`69Qpq{64Et^` z;(a9X==C96jh!;UpJOK#q`We*9P47kmX5V?9U7&YAj~1$PWNFTUU~^r&x#6|_$N|h zAQBs!mDk(7rfBXwATlxRb(WcvPMcsr*N5~>TTtXeEME_Ew_sBe@Diy^f*PO^dd!Je7#-%cjJ$F?0xQM1ww1>H0^Hl@u{ zTa_MoRUatVRef$V zBORMDG_P+X!{-`HH{%_?ChScH@Q(eOj@Eur<;wY>9$3R5VEOJAG9mOl`yu(Cvgkv~ z-wRK8|5x9~=Vf@E{}r$Me_1UN2%f?~0(2X=X;LaZf3zrn+V=V9ve4W6D9mYhDTzI` z(lJ{nS|KjYV18&LLwCx5&o4KIj&aT!0v&#t7G)q@TCTXSgwxE=iloG)MH6tmomTMRDvNYFAIzi+ z-p@t!@Ngs9DKp|{upZreH(+_ABX$^nbdW>)4E;vub6wXdw`={$d|@(%CI-0d+LB_F z)6g4O-oo)!Yh-&L;@9rM#Xm{ukRGu%c;q5h;u-zE}5Gl;{+??rh z^|A&>=+^JpAk4p4^4#n$8TsWr8_1KA2 z4xcw$i#LMBp;RH1r}K(}VbgtDo8JR}60+k~XcjPRHT>SO+l&eNH3#747NpbI`$zhf z=2#tOn$&YXH>Z=@x__^Tlyw9|jKVKO{BvjXU}p z>`J>Zm+(A0^EbUkHamJJFPjNIOL?3PXuKWMH3=DFpL+4>%Yx%f1WxKfnr`!*;f^E* z9Aa5}KGN7X`F-}3R-g}KW&I@fd~^H)<>qU7^20$FV}VgLz~;or{1{2&b~V1gnY`jP z`Sr|+=sW+ctImn{ukdfGl7}Zkiu#21Wckj_gd+7PsNcNSbx)7#DkzCoZNA3v)z0~m z>K6G`Ic!ue3=$uW3_o8iC-v2qd?}O-{(X^Sd5D?oXXg?i#Pw>LOOZqYip&40uYlr? z_P=qV5kXn}4BP{QOTlEo%(U=O7(bp0EeK@kZRh%ihx^|M-)3NkAHq!k%U)Hcmq7d1 zCWOb*zXN;I!SNY{z?pP#PZ}z?EyHul|BEnxMf2Z<0;2mH>*2`^ER_FWQ~%HT6?}$4 k9HktN%_xjA4VPz>11^jDdB(>*I(_!{7$?7v&d1hBb+?IHQ{r1D2y- z(jpw1sZRI;aCv`Tn$<1T?6->RNJc!!bl!FF4%tEpj*}@kzq2+D9r}qNgLnYPE2rqw3vNd&!{N{M`cv{xXNbb)T+Nsgp*Hz&{l?b(Zy5OGv6jDw? zkKq1R!3wGry`haWILJIqO2Bh&v@ntKxxB&G^f-Oij1Kpco@Kg2%cLr&@pr{b*|3sK z#oQB$J>}(Q{(uoQ*F@kZt3en|L0B=nS(vjTSl(#3PGI}H1lEk$C{yCaUiq5cCmZ@h z`!tK#IkjQYT~77-4_v7g$?iFn%)C*SI9x`!#$lcHWF6vnGxi>hEo^|FJ9N3F_SXst z9C}V7rW_E#ezBq=rB3C1nMov_`}=fo8#9p>`4&qKe*Jj7uiF5G4(N)?(;^JLUo0tm7*K2L!+yCmz2Ja3S~n*kXLlpUIV}<&6$LdZcI>x9_5B#@l>F2%ZHjEUl%=P~q|M0}`Cx0<$0o;O(+4+EsgeudKvjvV zBRd2#ds4g_SfTHFrB;cW#mg>%01;;*zBpgQONjE7ew26O{ht+I|m%G`UtAu zmKS_rTx^;3H@+tgm$n0JU*0wXc30^!TWShEF{16PNs{}zvv&lYC*-6w{5hV+VD7sF z4ve~wsvMV2K@uA2<6BSi-s&|~K%)7@NAIFT);R5h08FIOdzgevw`+whRfuGM7`*r7 zWRfUc9rg8^j36_K@+WWG58)PBe$Q*nSWN3*e(Nh3R&y9-n6$vO*1d)J&*i`VZ<|Ft z@r=bkmc5Ov=4~tEZ1}!XQy4TE!!*$2{zCpXtcjU;PmL*FqL)9+RZn@DbU~bTiLnJf%)8Rz(NeN=L1teS^xxfbQ#&T#vRr&K z{WL9CY?I8ZL1O2vhHDkC(?Kegtj|JUB&vKfeWq>T??t*sjfxplFm9ZZbN#20m&EQu z2{$B8yX;E|2KGoXRcKy6yQMS(K4boIXi$G?jmhgACV-Qx*PAUX}Z7J;!CyXPu^wvd}O))H~yQJS#D;j6_KIVCh(QzgF_Ly zyTtRoS7yI;5pSZ3t(l4) za+-G~fvXimr>z~G3B4on(5{QWafqhsl*c7&mlCc(r_OCR+`q~~_e0Ixaf4*%v7q{Z zrgm$~&6t}D)<*5_inx20HpUZlo{l(PZ!ZMpIVtV#SM_>T#_RSZwOVGcQT|$Vkr($P zX35;6NbL#E{c;oTD-+kwhL$PD%L5B)b~vyIkU*f%TRtlSzU`PIV+e9b=UaMrRQ%~- z^T(j;CBRZDo~N2~q2ujgMr(EX`{V^S0R3m_yi>(wzQ9t%O&7Y>UYI;w3oO#G9=;g9 z^@iFViNAfXi8hG{`mJA(6-X|bd(@mW4;d>R*-ja-=Zu* zhZ!KO;(5C74Gj12r72hPk(blF%W3`K9#&nRdMBOJxP$NH$t!=~4ShWK5rE4IoQ7Os zi|aOW@X<5Lfl~-lseN+nr?k+k%lkI@diRuj#mRs(Mm{M%5KKMPl9NifP9)wGDv=5K zSjFds69|!JKe)a8!yJ2X%a_j-#YHis8ZTDZ!F4{P z?M60(!gG#u+$?VS3x>yUlSYd#rp5U>(LA|g?DqkO1Ig3yYh!`W)~4_39j9p4$UW?u znmD%K40+TBVR^8x{qD7f8@xZf8YDY%sT+nqWZ9qY_dna=i%aU9is9p2xs3-2t|?goQ8yg#9G$8A#=_4%Kdrtd=R zb*JAoS7oWwntwNzE-FP?sG)|-o-1OrSnlxcu>4KsBK1N%npu(pCPNPS!w+8=^A*Or z!d-ndMZ%2dyH;hGIst`;#L<>JzH@)~DG$@XL7k{>JF%2VKr1P1Rd~_JIoVHhfc~;8 zqo$7Hr5-D!{$*cl4`%BSrK2@G_DjpBC=sq$F{s0!;HDThD3dxv47w9Xw*Cpq)P%sc z5s2p-q8q79cN(kQ(-%Ju_DZ4~PjDMxJo42mHW%#~5%z%57`Ummuqno#t*HJkZ!12IXv4WvPDb?PZ!mkfO7J{8h;Dk5I`y|#q{W}nW;Xvro7B?X`}H>YIw3Lcpu zBj6i{>F25yDW02xoN~04*-!Aa`ZP9;51=bK3u+R_)5J=WN38}W6d&}H^}8siFsv#b zdE?{vB#T2Y|7z^zCdPaYBxxpb?7n~j!1xI$D|fR{^s$j^0e>u*Dh8`CqBZd4 z3Av9r_8>}LMKY?5ZK`7BX=Wcq6JdVR_i&#?!i9jlN8zW#HS$U(R9PJ4W7?+d2M6*h zMWGrw=6ia@wjvV<`C*Sy*={9=@7NwX3S|+!fDT?i%b%o%WNKCOG>OMU8nX>Uk*Uw? zR5c3%sDxMXRNHH0S)O9dSi>MUs>;OS?{#@y+(I+rER5J{k(`N#J)4o4FRhk^HQ!k+ zl#?RF&8X@@R&0jMs}X!DT+{2|&&%uwx>)MX9;oLv0zb_YE|;c+C44bd7x_Ng4$PQ( z0_nAc0kfannpuBUrazJ-*HF<*cDSKuD50Qih|e>3rJ#@7>n_%&rrZZ9QS&L`()8I7 zs^L67HE}2u^t-=17;3}&*q*=N9rX)qrlIRcXHIO+!=1`+Eo&P2Kpq9l6!nq4-_6NF zcIT*=`pz}Rha=nb^QoH>#@zO+7VtsrCh&B2TRnCUJ#x*C^Y-EZgj4ktIqr18+(SGk`H?dk6C_sd}Wh*NKX-b6QQc?Zx$t& zU|8H3+u=j$uK^3X^GL&0-|Ri=_q5IGM(si7969IGI}pBjhStN~=&R5(5{q~s8?X)I ziST&lNUZg6LOx0VaM-(O?q?QCFx6~6eIMU(eRuGq;!I^iQ^xPgrKen#{#oS~aF4p% zM)wt|(z~02;V|XbJOy0lvgC=QP`raX4U7L{8f$1<1rOb2t+e(B_ z=ovlVcl)Og*2`o|`zJ?6&W7l-L=9fo`)|oeGf3SX?scR8Jhg}!U0R@L`)#f zi%BSK{20BtzpF(-mL$(-o)T%xLhvju5t|JQUyWNM@#Qs%CC`T^UFy?Hck51y2#jEI zq4Yp{L)KHGh=G5?QZ_GuU$H~UG7sT8oBq>X=-K>`BcGiYI9mvZY6TI-I;5$~oQL}z ze|KM)A@v5n}Ri*%_{MP|_u8?x3l$|FbLXaaltRttlZ_eQh#*kay%Yh*18mc`LOV#KvIqnQf%Y(wLo^UTPtKV_?r{gf{YN_zhN45)qGz=4n{hSrK3KTqFF++= zF+Y9?K2M6qD?`l6PP6qb;?319S%(X9s#m#^|Fx-mo|$t?6(Anjk8cs3ntszE;_6Bcv|LlYkd*)=v5Yb)q=AX&OTh*vOXTah&R9487ny#cpD?zZl8 z4|+8!uv0Cxme`$Fh3VOV*YYo{v&d(-6(iGgR!F_u`0uA}v_@PO<2jD6&!`Hm64nb>sOntYRYnm z=O?~YZqxrRKH}zik##LHl27JSMMZ3?O%=P&d+ef&_VhXUR-Hi*m(F-t-W4?NxKHBpP{e92KzE1Kd{PxH|UVPtO8(cdgK)=;(xGK9Ge8zf8&`^ zwn#8H1JVF01b)SUjDvDP{ Date: Fri, 19 Aug 2022 14:45:41 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E7=AE=80=E6=98=93=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/busmaindeposit/BusMainDepositMapper.xml | 15 ++++++++++----- .../vehicle/DepositVehicleDetailVo.java | 7 +++++-- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busmaindeposit/BusMainDepositMapper.xml b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busmaindeposit/BusMainDepositMapper.xml index 23f279cfe5..81fcbb10f7 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busmaindeposit/BusMainDepositMapper.xml +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busmaindeposit/BusMainDepositMapper.xml @@ -37,7 +37,8 @@ - SELECT * FROM common_contract - ${ew.sqlSegment} + SELECT * + FROM common_contract + + ${ew.sqlSegment} + @@ -102,4 +106,10 @@ #{item} + + \ No newline at end of file diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java index 7079efbfb8..fcaede70b5 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java @@ -11,6 +11,10 @@ import com.yxt.anrui.base.biz.basetrailer.BaseTrailerService; import com.yxt.anrui.base.biz.basevehiclebrand.BaseVehicleBrandService; import com.yxt.anrui.base.biz.basevehiclemodel.BaseVehicleModelService; import com.yxt.anrui.base.biz.commonappendix.CommonAppendixService; +import com.yxt.anrui.base.common.enums.BillTypeEnum; +import com.yxt.anrui.base.common.enums.CommonContractEnum; +import com.yxt.anrui.base.common.utils.Rule; +import com.yxt.anrui.base.common.utils.domain.BillNo; import com.yxt.anrui.buscenter.api.busdeposit.BusDepositFeign; import com.yxt.anrui.buscenter.api.busdepositfictitious.BusDepositFictitiousDetailsVo; import com.yxt.anrui.buscenter.api.busdepositfictitious.BusDepositFictitiousFeign; @@ -26,6 +30,7 @@ import com.yxt.anrui.flowable.api.sysformlink.SysFormStateVo; import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign; import com.yxt.anrui.portal.api.dictcommon.DictCommonVo; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; +import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo; import com.yxt.anrui.portal.api.sysuser.SysUserFeign; @@ -49,6 +54,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.File; +import java.math.BigDecimal; import java.text.MessageFormat; import java.text.SimpleDateFormat; import java.util.*; @@ -1186,6 +1192,9 @@ public class CommonContractService extends MybatisBaseService future3 = pool.submit(() -> { + //新增合同信息 + CommonContract commonContract = new CommonContract(); + //合同编号 + commonContract.setContractNo(contractNo); + //合同类型 + commonContract.setContractTypeKey(CommonContractEnum.contractType.XC_CONTRACT.getCode()); + commonContract.setContractType(CommonContractEnum.contractType.XC_CONTRACT.getRemarks()); + //客户sid + commonContract.setCustomerSid(appOrderDetailsVo.getCustomerSid()); + //业务员sid、业务员 + commonContract.setStaffSid(appOrderDetailsVo.getUserSid()); + commonContract.setStaffName(appOrderDetailsVo.getSellerName()); + //分公司sid + commonContract.setOrgSid(appOrderDetailsVo.getOrgSid()); + //业务表sid + commonContract.setBusSid(dto.getBusSid()); + //甲方名称、乙方名称、其他方名称、 + commonContract.setPartyA(createOrgName); + commonContract.setPartyB(customerName); + //签订日期、签订地点 + //订金、合同金额 + commonContract.setDeposit(new BigDecimal(depositTotal)); + //合同附件 + //身份证信息附件 + //车型sid + commonContract.setModelSid(appOrderModelInfoVo.getModelSid()); + //车型名称 + commonContract.setModelName(appOrderModelInfoVo.getModelName()); + //车辆台数 + commonContract.setNum(Integer.valueOf(num).intValue()); + //车辆单价 + commonContract.setPrice(new BigDecimal(transactionPrice)); + //单台订金 + commonContract.setOneDeposit(new BigDecimal(depositInfo.getDeposit())); + save(commonContract); + return commonContract.getSid(); + }); } catch (Exception e) { e.printStackTrace(); return rb.setMsg("生成文件失败"); } - return rb.success().setData(list); } + + public String getApplyCode(String userSid) { + //获取分公司sid + ResultBean resultBean = sysStaffOrgFeign.getPathSidByUserSid(userSid); + ResultBean resultBean1 = sysOrganizationFeign.fetchBySid(resultBean.getData()); + String orgCode = resultBean1.getData().getOrgCode(); + BillNo b = new BillNo(); + b.setOrgCode(orgCode); + b.setBillType(BillTypeEnum.XSDD.getBillType()); + String bill = Rule.getBill(b); + int i = baseMapper.selectNum(bill); + String billNo = Rule.getBillNo(bill, i); + return billNo; + } } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.xml b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.xml index a3b7f62478..05a760e6cd 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.xml +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.xml @@ -74,6 +74,7 @@ , '%') + order by bo.id