diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusSalesOrderLoancontractFeign.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusSalesOrderLoancontractFeign.java index f81bf8abd6..7c29d16704 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusSalesOrderLoancontractFeign.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusSalesOrderLoancontractFeign.java @@ -99,4 +99,9 @@ public interface BusSalesOrderLoancontractFeign { @PostMapping("/pushLoanOrder") @ResponseBody ResultBean pushLoanOrder(@RequestBody LoanContractPush loanContractPush); + + @ApiOperation("推送融资放款的其他应收单应收") + @PostMapping("/pushOtherReceivable") + @ResponseBody + ResultBean pushOtherReceivable(@RequestBody LoanContractPush loanContractPush); } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusSalesOrderLoancontractFeignFallback.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusSalesOrderLoancontractFeignFallback.java index ac6ebff43f..fbbac24777 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusSalesOrderLoancontractFeignFallback.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusSalesOrderLoancontractFeignFallback.java @@ -94,4 +94,9 @@ public class BusSalesOrderLoancontractFeignFallback implements BusSalesOrderLoan public ResultBean pushLoanOrder(LoanContractPush loanContractPush) { return null; } + + @Override + public ResultBean pushOtherReceivable(LoanContractPush loanContractPush) { + return null; + } } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractRest.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractRest.java index b883a12873..1b47510605 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractRest.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractRest.java @@ -123,4 +123,9 @@ public class BusSalesOrderLoancontractRest implements BusSalesOrderLoancontractF public ResultBean pushLoanOrder(LoanContractPush loanContractPush) { return busSalesOrderLoancontractService.pushLoanOrder(loanContractPush); } + + @Override + public ResultBean pushOtherReceivable(LoanContractPush loanContractPush) { + return busSalesOrderLoancontractService.pushOtherReceivable(loanContractPush); + } } diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java index 9bd79dc9bd..783188a6a7 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java @@ -26,16 +26,29 @@ package com.yxt.anrui.buscenter.biz.bussalesorderloancontract; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo; +import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign; import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; +import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerDetailsVo; +import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign; import com.yxt.anrui.buscenter.api.bussalesorderloancontract.*; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; import com.yxt.anrui.buscenter.biz.bussalesorder.BusSalesOrderService; +import com.yxt.anrui.buscenter.biz.bussalesorderborrower.BusSalesOrderBorrowerService; import com.yxt.anrui.buscenter.biz.bussalesordervehicle.BusSalesOrderVehicleService; import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedFeign; import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.UnCollectionDto; +import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; +import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer; +import com.yxt.anrui.fin.api.kingdee.capitalcreditresult.CapitalCreditResult; +import com.yxt.anrui.fin.api.kingdee.capitalcreditresult.CwSystemYT; +import com.yxt.anrui.fin.api.kingdee.otherarreceivable.OtherReceivable; +import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; +import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameter; @@ -44,6 +57,8 @@ import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterVo; import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions; import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsFeign; import com.yxt.anrui.riskcenter.api.loansolutions.PushVo; +import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo; +import com.yxt.anrui.riskcenter.api.loansolutionsdetail.LoanSolutionsDetailFeign; import org.apache.commons.lang3.StringUtils; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.PagerUtil; @@ -55,7 +70,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Collections; +import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -83,9 +100,19 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService createQueryWrapper(BusSalesOrderLoancontractQuery query) { // todo: 这里根据具体业务调整查询条件 @@ -260,14 +287,14 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService resultBean = loanSolutionsFeign.selectMoney(saleOrderSid); - if(resultBean.getData() != null){ + if (resultBean.getData() != null) { PushVo pushVo = resultBean.getData(); UnCollectionDto unCollectionDto = new UnCollectionDto(); unCollectionDto.setContractNo(busSalesOrder.getContractNo()); @@ -309,4 +336,144 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService bdCustomers = new ArrayList<>(); + BdCustomer bdCustomer = new BdCustomer(); + bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo()); + bdCustomer.setFShortName(salesOrder.getContractNo()); + BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData(); + bdCustomer.setTOrgIds(data.getOrgCode()); + if (StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) { + bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getLinkNo()); + } else { + bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo()); + } + bdCustomers.add(bdCustomer); + ResultBean resultBean = finKingDeeFeign.draftBdCustomers(bdCustomers); + if (resultBean.getSuccess()) { + customerNumber = bdCustomer.getFNumber(); + } + } else { + customerNumber = busSalesOrderVehicle.getTemporaryNo(); + } + creditResult.setCommUnit(customerNumber); + SysOrganizationVo sysOrganizationVo1 = sysOrganizationFeign.fetchBySid(salesOrder.getUseOrgSid()).getData(); + creditResult.setCollectionOrg(sysOrganizationVo1.getOrgCode()); + creditResult.setBussDate(DateUtil.formatDate(new Date())); + List collectionDetailDtoListOne = new ArrayList<>(); + SysOrganizationVo sysOrganizationVo2 = sysOrganizationFeign.fetchBySid(salesOrder.getOrgSid()).getData(); + //这是生成业务系统融资放款应收的逻辑: + // 融资放款=融资项目总额-融资首付-[贷款保证金]-[厂家贴息],根据选择的产品政策来判断,若贷款保证金为固定的,需要减去,若为敞口的,不需要减;差额放款需要减厂家贴息,全额放款不需要。差额放款的厂家贴息金额存入“其他应收”字段中, + //计算融资放款的金额以及厂家贴息金额 + ResultBean resultBean = loanSolutionsFeign.selectMoney(saleOrderSid); + if (null != resultBean.getData()) { + CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto(); + creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode()); + creditResultDetailDto.setExTaxMoney("-" + resultBean.getData().getMoney()); + creditResultDetailDto.setUseTo(CwSystemYT.RONGZI_FANGKUAN.getType()); + collectionDetailDtoListOne.add(creditResultDetailDto); + } + SolutionsDetailsVo solutions = loanSolutionsFeign.selectDetails(saleOrderSid).getData(); + if (null != solutions) { + //贷款保证金 + if (StringUtils.isNotBlank(solutions.getBondAmounts()) && !("0").equals(solutions.getBondAmounts())) { + CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto(); + creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode()); + creditResultDetailDto.setExTaxMoney(solutions.getBondAmounts()); + creditResultDetailDto.setUseTo(CwSystemYT.BOND_AMOUNTS.getType()); + collectionDetailDtoListOne.add(creditResultDetailDto); + } + //保险保证金 + if (StringUtils.isNotBlank(solutions.getDepositPremium()) && !("0").equals(solutions.getDepositPremium())) { + CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto(); + creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode()); + creditResultDetailDto.setExTaxMoney(solutions.getDepositPremium()); + creditResultDetailDto.setUseTo(CwSystemYT.DEPOSIT_PREMIUM.getType()); + collectionDetailDtoListOne.add(creditResultDetailDto); + } + //落户保证金 + if (StringUtils.isNotBlank(solutions.getDepositSettle()) && !("0").equals(solutions.getDepositSettle())) { + CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto(); + creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode()); + creditResultDetailDto.setExTaxMoney(solutions.getDepositSettle()); + creditResultDetailDto.setUseTo(CwSystemYT.DEPOSIT_SETTLE.getType()); + collectionDetailDtoListOne.add(creditResultDetailDto); + } + //服务费 + if (StringUtils.isNotBlank(solutions.getServiceAmount()) && !("0").equals(solutions.getServiceAmount())) { + CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto(); + creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode()); + creditResultDetailDto.setUseTo(CwSystemYT.SERVICE_AMOUNT_DANBAO.getType()); + creditResultDetailDto.setExTaxMoney(solutions.getServiceAmount()); + collectionDetailDtoListOne.add(creditResultDetailDto); + } + //代收意外险 + if (StringUtils.isNotBlank(solutions.getProxyAccidentPremium()) && !("0").equals(solutions.getProxyAccidentPremium())) { + CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto(); + creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode()); + creditResultDetailDto.setUseTo(CwSystemYT.PROXY_ACCIDENT_PREMIUM.getType()); + creditResultDetailDto.setExTaxMoney(solutions.getProxyAccidentPremium()); + collectionDetailDtoListOne.add(creditResultDetailDto); + } + //上牌费、运管费 + if ((StringUtils.isNotBlank(solutions.getRegisterAmount()) && !("0").equals(solutions.getRegisterAmount())) || + (StringUtils.isNotBlank(solutions.getOperationAmount()) && !("0").equals(solutions.getOperationAmount()))) { + CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto(); + BigDecimal registerAmount = new BigDecimal(solutions.getRegisterAmount()); + BigDecimal opertionAmount = new BigDecimal(solutions.getOperationAmount()); + BigDecimal add = registerAmount.add(opertionAmount); + creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode()); + creditResultDetailDto.setUseTo(CwSystemYT.SHANGPAI_YUNGUAN.getType()); + creditResultDetailDto.setExTaxMoney(add.toString()); + collectionDetailDtoListOne.add(creditResultDetailDto); + } + //其它费用 + if (StringUtils.isNotBlank(solutions.getOtherAmount()) && !("0").equals(solutions.getOtherAmount())) { + CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto(); + creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode()); + creditResultDetailDto.setExTaxMoney(solutions.getOtherAmount()); + creditResultDetailDto.setUseTo(CwSystemYT.OTHER_AMOUNT.getType()); + collectionDetailDtoListOne.add(creditResultDetailDto); + } + //补车价 + if (StringUtils.isNotBlank(solutions.getVehOtherPrice()) && !("0").equals(solutions.getVehOtherPrice())) { + CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto(); + creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode()); + creditResultDetailDto.setExTaxMoney(solutions.getVehOtherPrice()); + creditResultDetailDto.setUseTo(CwSystemYT.VEH_OTHER_PRICE.getType()); + collectionDetailDtoListOne.add(creditResultDetailDto); + } + //留购价 + if (StringUtils.isNotBlank(solutions.getNominalPrice()) && !("0").equals(solutions.getNominalPrice())) { + CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto(); + creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode()); + creditResultDetailDto.setExTaxMoney(solutions.getNominalPrice()); + creditResultDetailDto.setUseTo(CwSystemYT.NOMINAL_PRICE.getType()); + collectionDetailDtoListOne.add(creditResultDetailDto); + } + } + creditResult.setResultDetails(collectionDetailDtoListOne); + finKingDeeFeign.pushOtherReceivableBill(creditResult); + } + } + } + return rb.success(); + } } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java index 487da0c730..07802be177 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java @@ -11,6 +11,7 @@ import com.yxt.anrui.fin.api.kingdee.bdempinfo.BDEmpinfo; import com.yxt.anrui.fin.api.kingdee.bdmaterial.BdMaterial; import com.yxt.anrui.fin.api.kingdee.bdstock.BDStock; import com.yxt.anrui.fin.api.kingdee.bdsupplier.BdSupplier; +import com.yxt.anrui.fin.api.kingdee.capitalcreditresult.CapitalCreditResult; import com.yxt.anrui.fin.api.kingdee.cnbankcnt.CNBankacnt; import com.yxt.anrui.fin.api.kingdee.cnrecpaypurpose.CNRecpaypurpose; import com.yxt.anrui.fin.api.kingdee.orgorganizations.OrgOrganizations; @@ -66,6 +67,12 @@ public interface FinKingDeeFeign { @ResponseBody ResultBean draftOtherReceivableBill(@RequestBody @Valid OtherReceivable otherReceivable); + @ApiOperation("暂存其他应收单的接口(资方信审终审通过后推送)") + @PostMapping("/pushOtherReceivableBill") + @ResponseBody + ResultBean pushOtherReceivableBill(@RequestBody @Valid CapitalCreditResult creditResult); + + @ApiOperation("暂存付款单的接口") @PostMapping("/draftArReceivebill") @ResponseBody diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java index 160bb6647c..ea444aa8e7 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java @@ -11,6 +11,7 @@ import com.yxt.anrui.fin.api.kingdee.bdempinfo.BDEmpinfo; import com.yxt.anrui.fin.api.kingdee.bdmaterial.BdMaterial; import com.yxt.anrui.fin.api.kingdee.bdstock.BDStock; import com.yxt.anrui.fin.api.kingdee.bdsupplier.BdSupplier; +import com.yxt.anrui.fin.api.kingdee.capitalcreditresult.CapitalCreditResult; import com.yxt.anrui.fin.api.kingdee.cnbankcnt.CNBankacnt; import com.yxt.anrui.fin.api.kingdee.cnrecpaypurpose.CNRecpaypurpose; import com.yxt.anrui.fin.api.kingdee.orgorganizations.OrgOrganizations; @@ -42,6 +43,11 @@ implements FinKingDeeFeign{ return null; } + @Override + public ResultBean pushOtherReceivableBill(CapitalCreditResult creditResult) { + return null; + } + @Override public ResultBean draftArReceivebill(ARReceivebill arReceivebill) { return null; diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/capitalcreditresult/CapitalCreditResult.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/capitalcreditresult/CapitalCreditResult.java new file mode 100644 index 0000000000..cc94e3c095 --- /dev/null +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/capitalcreditresult/CapitalCreditResult.java @@ -0,0 +1,47 @@ +package com.yxt.anrui.fin.api.kingdee.capitalcreditresult; + +import com.yxt.anrui.fin.api.kingdee.otherarreceivable.OtherReceivable; +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author Administrator + * @description + * @date 2023/9/12 18:13 + */ +@Data +public class CapitalCreditResult { + @ApiModelProperty("单据编号") + public String billNo; + @ApiModelProperty("单据类型") + public String billType = "QTYSD01_SYS"; + @ApiModelProperty("往来单位类型") + public String commUnitType = "BD_Customer"; + @ApiModelProperty("往来单位") + public String commUnit; + @ApiModelProperty("收款组织") + public String collectionOrg; + @ApiModelProperty("币别") + public String currency = "PRE001"; + @ApiModelProperty("业务日期") + public String bussDate; + @ApiModelProperty("收款明细") + public List resultDetails; + + @Data + public static class CapitalCreditResultDetailDto implements Dto { + + + @ApiModelProperty("承担部门") + public String dearDept; + @ApiModelProperty("发票类型") + public String invoiceType; + @ApiModelProperty("不含税金额") + public String exTaxMoney; + @ApiModelProperty("用途") + public String useTo; + } +} diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/capitalcreditresult/CwSystemYT.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/capitalcreditresult/CwSystemYT.java new file mode 100644 index 0000000000..7904d0e944 --- /dev/null +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/capitalcreditresult/CwSystemYT.java @@ -0,0 +1,52 @@ +package com.yxt.anrui.fin.api.kingdee.capitalcreditresult; + +/** + * @author Administrator + * @description + * @date 2023/9/13 17:00 + */ +public enum CwSystemYT { + + BOND_AMOUNTS("YT001", "贷款保证金"), + DEPOSIT_SETTLE("YT002", "落户保证金"), + DEPOSIT_PREMIUM("YT003", "保险保证金"), + SHANGPAI_YUNGUAN("YT004", "上牌费、运管费"), + PROXY_ACCIDENT_PREMIUM("YT005", "代收意外险"), + SERVICE_AMOUNT_DANBAO("YT006", "服务费(担保/非担保业务)"), + VEH_OTHER_PRICE("YT007", "补车价"), + OTHER_AMOUNT("YT009", "其他费用"), + RONGZI_FANGKUAN("YT010", "融资放款"), + DIANKUAN("YT011", "垫款"), + DIANKUAN_LIXI("YT012", "垫款利息"), + NOMINAL_PRICE("YT013", "留购价"), + PEIZHI_SHOUXUFEI("YT014", "加装配置手续费"), + FANLI_DICHEKUAN("YT015", "返利抵车款"), + SERVICE_AMOUNT_SANFANG("YT016", "服务费(三方金融)"), + SANFANG_TIEXI_DIECHEKUAN("YT017", "三方金融厂家贴息抵车款"), + TZSQ("YT018", "款项结转-调账申请"); + + + /** + * 附件类型 + */ + private final String type; + + /** + * 代号 + */ + private final String mark; + + CwSystemYT(String type, String mark) { + this.type = type; + this.mark = mark; + } + + public String getType() { + return type; + } + + public String getMark() { + return mark; + } + +} diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java index aa9047b2ba..c0b8d1ddf8 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java @@ -13,6 +13,7 @@ import com.yxt.anrui.fin.api.kingdee.bdempinfo.BDEmpinfo; import com.yxt.anrui.fin.api.kingdee.bdmaterial.BdMaterial; import com.yxt.anrui.fin.api.kingdee.bdstock.BDStock; import com.yxt.anrui.fin.api.kingdee.bdsupplier.BdSupplier; +import com.yxt.anrui.fin.api.kingdee.capitalcreditresult.CapitalCreditResult; import com.yxt.anrui.fin.api.kingdee.cnbankcnt.CNBankacnt; import com.yxt.anrui.fin.api.kingdee.cnrecpaypurpose.CNRecpaypurpose; import com.yxt.anrui.fin.api.kingdee.kingdeeUtils.KingDeeOrgAndDeptCode; @@ -35,6 +36,7 @@ import com.yxt.anrui.fin.biz.kingdee.bdempinfo.BDEmpinfoService; import com.yxt.anrui.fin.biz.kingdee.bdmaterial.BdMaterialService; import com.yxt.anrui.fin.biz.kingdee.bdstock.BDStockService; import com.yxt.anrui.fin.biz.kingdee.bdsupplier.BdSupplierService; +import com.yxt.anrui.fin.biz.kingdee.capitalcreditresult.OtherReceivableBillCreditResultService; import com.yxt.anrui.fin.biz.kingdee.cnbankcnt.CNBankcntService; import com.yxt.anrui.fin.biz.kingdee.cnrecpaypurpose.CNRecpaypurposeService; import com.yxt.anrui.fin.biz.kingdee.orgorganizations.OrgOrganizationsService; @@ -168,6 +170,12 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign { @Autowired private OtherReceivableBillService otherReceivableBillService; + /** + * 暂存其他应收单的接口(资方信审终审通过后推送) + */ + @Autowired + private OtherReceivableBillCreditResultService creditResultService; + /** * 销售退货单 */ @@ -198,6 +206,12 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign { return otherReceivableBillService.otherReceivableBillService(otherReceivable); } + @Override + public ResultBean pushOtherReceivableBill(CapitalCreditResult creditResult) { + log.info("FinKingDeeFeignRest-pushOtherReceivableBill:{}", JSONObject.toJSONString(creditResult)); + return creditResultService.pushOtherReceivableBill(creditResult); + } + @Override public ResultBean draftSalesReturnOrders(SalesReturn salesReturn) { log.info("FinKingDeeFeignRest-draftSalesReturnOrders:{}", JSONObject.toJSONString(salesReturn)); diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/OtherReceivableBillCreditResultCastToKingDeeBillFields.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/OtherReceivableBillCreditResultCastToKingDeeBillFields.java new file mode 100644 index 0000000000..fd8ce6bc73 --- /dev/null +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/OtherReceivableBillCreditResultCastToKingDeeBillFields.java @@ -0,0 +1,59 @@ +package com.yxt.anrui.fin.biz.kingdee.capitalcreditresult; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.parser.Feature; +import com.yxt.anrui.fin.biz.kingdee.KingDeeUtils; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 封装转换的类 + */ +public class OtherReceivableBillCreditResultCastToKingDeeBillFields { + /** + * 构造金蝶需要的数据结构 并对字段赋值 + * + * @param map_fEntityModel_ + * @param vehicleList + * @return + */ + public static String getKingDeeData(Map map_fEntityModel_,List> vehicleList){ + /** + * 取模板 + */ + String readJsonFile = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/data.json"); + String fEntityData_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/data_data.json"); + String fEntityModel_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/data_model.json"); + + //模板字符创转json + JSONObject jsonObj= JSONObject.parseObject(readJsonFile, Feature.OrderedField); + JSONObject jsonFEntityData_= JSONObject.parseObject(fEntityData_,Feature.OrderedField); + fEntityModel_ =KingDeeUtils.replaceTemplateParams(fEntityModel_, map_fEntityModel_); + JSONObject jsonFEntityModel_= JSONObject.parseObject(fEntityModel_,Feature.OrderedField); + + List list_fEntity_=new ArrayList<>(); + + //对模板字段赋值 根据传递进来的map数据的集合进行赋值 + for(int i=0;i params=vehicleList.get(i); + Map map_fEntity_=new HashMap<>(); + for (Map.Entry entry : params.entrySet()) { + map_fEntity_.put(entry.getKey(),entry.getValue()); + } + fEntity_ =KingDeeUtils.replaceTemplateParams(fEntity_, map_fEntity_); + list_fEntity_.add(JSONObject.parseObject(fEntity_,Feature.OrderedField)); + } + + jsonFEntityModel_.put("FEntity", JSONArray.parseArray(JSON.toJSONString(list_fEntity_))); + jsonFEntityData_.put("Model",JSONObject.parseObject(JSON.toJSONString(jsonFEntityModel_),Feature.OrderedField)); + jsonObj.put("data",jsonFEntityData_.toJSONString()); + + return jsonObj.toJSONString(); + } +} \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/OtherReceivableBillCreditResultService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/OtherReceivableBillCreditResultService.java new file mode 100644 index 0000000000..171f331bd7 --- /dev/null +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/OtherReceivableBillCreditResultService.java @@ -0,0 +1,107 @@ +package com.yxt.anrui.fin.biz.kingdee.capitalcreditresult; + +import com.yxt.anrui.fin.api.kingdee.KingDeeBillId; +import com.yxt.anrui.fin.api.kingdee.KingDeeBillUrl; +import com.yxt.anrui.fin.api.kingdee.capitalcreditresult.CapitalCreditResult; +import com.yxt.anrui.fin.api.kingdee.otherarreceivable.OtherReceivable; +import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService; +import com.yxt.common.base.utils.StringUtils; +import com.yxt.common.core.result.ResultBean; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class OtherReceivableBillCreditResultService extends FinKingDeeService { + + /** + * 生成的其他应收单的数据,推送到金蝶的平台中 + * + * @param creditResult + * @return + */ + public ResultBean pushOtherReceivableBill(CapitalCreditResult creditResult) { + ResultBean rb = ResultBean.fireFail(); + //业务表的主表数据集合 + Map map_fEntityModel_ = new HashMap<>(); + //物料的数组集合 + //单据编号 +// if (creditResult.getBillNo() == null) { +// return rb.setMsg("单据编号不能为空"); +// } +// map_fEntityModel_.put("FBillNo", creditResult.getBillNo()); + //业务日期 + if (creditResult.getBussDate() == null) { + return rb.setMsg("业务日期不能为空"); + } + map_fEntityModel_.put("FDATE", creditResult.getBussDate()); + //到期日期 + map_fEntityModel_.put("FENDDATE_H", creditResult.getBussDate()); + //客户 + if (creditResult.getCommUnit() == null) { + return rb.setMsg("客户编码不能为空"); + } + map_fEntityModel_.put("FCONTACTUNIT", creditResult.getCommUnit()); + //收款组织 + if (creditResult.getCollectionOrg() == null) { + return rb.setMsg("收款组织不能为空"); + } + map_fEntityModel_.put("FPAYORGID", creditResult.getCollectionOrg()); + //收款组织 + map_fEntityModel_.put("FSETTLEORGID", creditResult.getCollectionOrg()); + //销售组织 + map_fEntityModel_.put("FSALEORGID", creditResult.getCollectionOrg()); + //销售部门 + map_fEntityModel_.put("FSALEDEPTID", creditResult.getResultDetails().get(0).getDearDept()); + //申请部门 + map_fEntityModel_.put("FDEPARTMENTID", creditResult.getResultDetails().get(0).getDearDept()); + List collectionDetails = creditResult.getResultDetails() == null ? new ArrayList<>() : creditResult.getResultDetails(); + //准备 物料列表的数据 + ResultBean>> vehicleListMap = createVehicleListsForReceivableBill(collectionDetails); + if (!vehicleListMap.getSuccess()) { + return rb.setMsg(vehicleListMap.getMsg()); + } + String kingDeeData = OtherReceivableBillCreditResultCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_, vehicleListMap.getData()); + try { + ResultBean resultBean1 = accessKingDeeInterface(KingDeeBillId.AR_OTHERRECEIVABLE.getID(), kingDeeData, KingDeeBillUrl.DRAFT_URL.getURL()); + if (!resultBean1.getSuccess()) { + log.info("其他应收单保存失败!"); + return rb.setMsg("其他应收单保存失败!"); + } + log.info("其他应收单保存成功!"); +// String submitKD = getSubmitKD(resultBean1.getData(),KingDeeBillId.AR_OTHERRECEIVABLE.getID()); +// ResultBean resultBean2 = accessKingDeeInterface(KingDeeBillId.AR_OTHERRECEIVABLE.getID(), submitKD, KingDeeBillUrl.SUBMIT_URL.getURL()); +// if(!resultBean2.getSuccess()){ +// log.info("其他应收单提交失败!"); +// return rb.setMsg("其他应收单提交失败!"); +// } +// log.info("其他应收单提交成功!"); + } catch (Exception e) { + e.printStackTrace(); + } + return rb; + } + + public ResultBean>> createVehicleListsForReceivableBill(List collectionDetails) { + ResultBean>> rb = ResultBean.fireFail(); + List> collectionDetailMap = new ArrayList<>(); + for (int i = 0; i < collectionDetails.size(); i++) { + CapitalCreditResult.CapitalCreditResultDetailDto c = collectionDetails.get(i); + Map m = new HashMap<>(); + if (StringUtils.isBlank(c.getDearDept())) { + return rb.setMsg("承担部门不能为空"); + } + if (StringUtils.isBlank(c.getExTaxMoney())) { + return rb.setMsg("不含税金额不能为空"); + } + m.put("FCOSTDEPARTMENTID", c.getDearDept()); + m.put("FNOTAXAMOUNTFOR", c.getExTaxMoney()); + m.put("F_PAEZ_Assistant1", c.getUseTo()); + collectionDetailMap.add(m); + } + return rb.success().setData(collectionDetailMap); + } +} diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/data.json b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/data.json new file mode 100644 index 0000000000..dbd8ac9f92 --- /dev/null +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/data.json @@ -0,0 +1,4 @@ +{ + "formId": "AR_OtherRecAble", + "data": "@KD_data" +} \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/data_FEntity.json b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/data_FEntity.json new file mode 100644 index 0000000000..7ba1c2d80c --- /dev/null +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/data_FEntity.json @@ -0,0 +1,33 @@ +{ + "FEntryID": "0", + "FCOSTID": { + "FNumber": "" + }, + "FCOSTDEPARTMENTID": { + "FNumber": "@KD_FCOSTDEPARTMENTID" + }, + "FINVOICETYPE": "", + "FNOTAXAMOUNTFOR": "@KD_FNOTAXAMOUNTFOR", + "FTAXAMOUNTFOR": "0", + "FAMOUNTFOR_D": "0", + "F_PAEZ_Assistant1": { + "FNumber": "@KD_F_PAEZ_Assistant1" + }, + "F_PAEZ_Amount": "0", + "FNOTAXAMOUNT_D": "0", + "FTAXAMOUNT_D": "0", + "F_PMZC_Assistant": { + "FNumber": "" + }, + "F_PMZC_Base": { + "FNUMBER": "" + }, + "F_PMZC_Assistant2": { + "FNumber": "" + }, + "FCOMMENT": "", + "FSourceBillNo": "", + "FCREATEINVOICE": "false", + "FIVAmountFor": "0", + "FEntryTaxRate": "0" +} \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/data_data.json b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/data_data.json new file mode 100644 index 0000000000..f8b9dc071d --- /dev/null +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/data_data.json @@ -0,0 +1,13 @@ +{ + "Creator": "", + "NeedUpDateFields": [], + "NeedReturnFields": [], + "IsDeleteEntry": "True", + "SubSystemId": "", + "IsVerifyBaseDataField": "false", + "IsEntryBatchFill": "True", + "ValidateFlag": "True", + "NumberSearch": "True", + "InterationFlags": "", + "Model": {} +} \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/data_model.json b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/data_model.json new file mode 100644 index 0000000000..0010f593fc --- /dev/null +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/data_model.json @@ -0,0 +1,67 @@ +{ + "FID": "0", + "FBillTypeID": { + "FNUMBER": "QTYSD01_SYS" + }, + "FBillNo": "", + "FDATE": "@KD_FDATE", + "FENDDATE_H": "@KD_FENDDATE_H", + "FISINIT": "false", + "FCONTACTUNITTYPE": "BD_Customer", + "FCONTACTUNIT": { + "FNumber": "@KD_FCONTACTUNIT" + }, + "FAMOUNTFOR": "0", + "FCURRENCYID": { + "FNumber": "PRE001" + }, + "FDEPARTMENTID": { + "FNumber": "@KD_FDEPARTMENTID" + }, + "FSETTLEORGID": { + "FNumber": "@KD_FSETTLEORGID" + }, + "FPAYORGID": { + "FNumber": "@KD_FPAYORGID" + }, + "FSALEDEPTID": { + "FNumber": "@KD_FSALEDEPTID" + }, + "FSALEORGID": { + "FNumber": "@KD_FSALEORGID" + }, + "FSALEGROUPID": { + "FNumber": "" + }, + "FSALEERID": { + "FNumber": "" + }, + "FACCNTTIMEJUDGETIME": "1900-01-01", + "FSettleTypeID": { + "FNumber": "" + }, + "FMAINBOOKSTDCURRID": { + "FNumber": "PRE001" + }, + "FEXCHANGETYPE": { + "FNumber": "HLTX01_SYS" + }, + "FExchangeRate": "1", + "FNOTAXAMOUNT": "0", + "FTAXAMOUNT": "0", + "FCancelStatus": "", + "FAR_OtherRemarks": "", + "FScanPoint": { + "FNUMBER": "" + }, + "F_PAEZ_Base": { + "FNUMBER": "" + }, + "F_PAEZ_Base1": { + "FNUMBER": "" + }, + "F_PMZC_Assistant1": { + "FNumber": "" + }, + "FEntity": [] +} \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/remarks.txt b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/remarks.txt new file mode 100644 index 0000000000..dc5da5cd07 --- /dev/null +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/remarks.txt @@ -0,0 +1,87 @@ +请求参数说明: +formid:业务对象表单Id,字符串类型(必录) +data:Json格式数据(详情参考Json格式数据)(必录) + 2.1.Creator:创建者内码(非必录) + 2.2.NeedUpDateFields:需要更新的字段,数组类型,格式:[key1,key2,...](非必录),注(更新单据体字段得加上单据体key) + 2.3.NeedReturnFields:需返回结果的字段集合,数组类型,格式:[key,entitykey.key,...](非必录),注(返回单据体字段格式:entitykey.key) + 2.4.IsDeleteEntry:是否删除已存在的分录,布尔类型,默认true(非必录) + 2.5.SubSystemId:表单所在的子系统内码,字符串类型(非必录) + 2.6.IsVerifyBaseDataField:是否验证所有的基础资料有效性,布尔类,默认false(非必录) + 2.7.IsEntryBatchFill:是否批量填充分录,默认true(非必录) + 2.8.ValidateFlag:是否验证标志,布尔类型,默认true(非必录) + 2.9.NumberSearch:是否用编码搜索基础资料,布尔类型,默认true(非必录) + 2.10.InterationFlags:交互标志集合,字符串类型,分号分隔,格式:"flag1;flag2;..."(非必录),例如(允许负库存标识:STK_InvCheckResult) + 2.11.Model:表单数据包,Json类型(必录) + +字段说明: +银行:F_PAEZ_Base +银行帐号:F_PAEZ_Base1 +转出往来单位类型:FOUTCONTACTTYPE +转出往来单位:FOUTCONTACTID +项目类别:F_PMZC_Assistant1 +备注:FCOMMENT +费用项目名称:FCOSTNAME +费用项目编码:FCOSTID +总金额:FAMOUNTFOR_D +备注:FAR_OtherRemarks +扫描点:FScanPoint +表头-付款申请关联金额:FAPPLYAMOUNT_H +销售组织:FSALEORGID +转销:FIsWriteOff +销售组:FSALEGROUPID +销售部门:FSALEDEPTID +收(退)款单关联金额本位币:FWRITTENOFFAMOUNT +销售员:FSALEERID +税率(%):FEntryTaxRate +已开票金额:FIVAmountFor +发票类型:FINVOICETYPE (必填项) +已生成发票:FCREATEINVOICE +利息:F_PAEZ_Amount +物流车辆:F_PMZC_Base +油卡号码:F_PMZC_Assistant2 +用途:F_PAEZ_Assistant1 (必填项) +运输编号:F_PMZC_Assistant +税额:FTAXAMOUNTFOR +不含税金额本位币:FNOTAXAMOUNT_D +总金额本位币:FAMOUNT_D +不含税金额:FNOTAXAMOUNTFOR +税额本位币:FTAXAMOUNT_D +源单类型:FSOURCETYPE +源单编号:FSourceBillNo +费用承担部门:FCOSTDEPARTMENTID (必填项) +付款申请关联金额:FAPPLYAMOUNT +汇率类型:FEXCHANGETYPE (必填项) +汇率:FExchangeRate +收款条件:FPayConditon +本位币:FMAINBOOKSTDCURRID (必填项) +作废日期:FCancelDate +修改日期:FModifyDate +审核人:FAPPROVERID +创建日期:FCreateDate +作废状态:FCancelStatus (必填项) +单据类型:FBillTypeID (必填项) +业务日期:FDATE (必填项) +单据编号:FBillNo +单据状态:FDocumentStatus +到期日:FENDDATE_H +币别:FCURRENCYID (必填项) +结算组织:FSETTLEORGID (必填项) +往来单位:FCONTACTUNIT (必填项) +往来单位类型:FCONTACTUNITTYPE (必填项) +结算方式:FSettleTypeID +已收款核销金额:FWRITTENOFFAMOUNTFOR +来源系统:FSOURCESYSTEM +申请部门:FDEPARTMENTID +是否期初单据:FISINIT +税额本位币:FTAXAMOUNT +收款组织:FPAYORGID (必填项) +到期日计算日期:FACCNTTIMEJUDGETIME +不含税金额本位币:FNOTAXAMOUNT +修改人:FModifierId +创建人:FCreatorId +审核日期:FAPPROVEDATE +作废人:FCancellerId +总金额:FAMOUNTFOR +总金额本位币:FAMOUNT +表头基本 - 收款核销状态:FWRITTENOFFSTATUS +表头基本 - 收(退)款单的关联金额:FRelateHadPayAmount \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancapitalcreditresult/LoanCapitalCreditResultService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancapitalcreditresult/LoanCapitalCreditResultService.java index 9ebb3fe443..55a64aed67 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancapitalcreditresult/LoanCapitalCreditResultService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancapitalcreditresult/LoanCapitalCreditResultService.java @@ -181,6 +181,8 @@ public class LoanCapitalCreditResultService extends MybatisBaseService details(String salesOrderSid) { ResultBean rb = ResultBean.fireFail(); @@ -89,7 +94,7 @@ public class LoanNoGuaranteeCreditReviewService extends MybatisBaseService saveReviewInfo(LoanNoGuaranteeCreditReviewDto dto) { ResultBean rb = ResultBean.fireFail(); String salesOrderSid = dto.getSalesOrderSid(); @@ -131,6 +136,19 @@ public class LoanNoGuaranteeCreditReviewService extends MybatisBaseService saleOrderInputLender(@PathVariable("saleOrderSid")String saleOrderSid,@PathVariable("sid")String sid); + ResultBean saleOrderInputLender(@PathVariable("saleOrderSid") String saleOrderSid, @PathVariable("sid") String sid); + @ApiOperation("确定贷款人分页列表") + @PostMapping("/getPreLoanList") + @ResponseBody + ResultBean> getPreLoanList(@RequestBody PagerQuery pagerQuery); } \ No newline at end of file diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeignFallback.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeignFallback.java index e473aa4ecb..0d95e37add 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeignFallback.java +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeignFallback.java @@ -315,4 +315,9 @@ public class AppBusSalesOrderFeignFallback implements AppBusSalesOrderFeign { public ResultBean saleOrderInputLender(String saleOrderSid, String sid) { return null; } + + @Override + public ResultBean> getPreLoanList(PagerQuery pagerQuery) { + return null; + } } \ No newline at end of file diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/LoanPreloansQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/LoanPreloansQuery.java new file mode 100644 index 0000000000..fcbcf0aaa2 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/LoanPreloansQuery.java @@ -0,0 +1,29 @@ +package com.yxt.anrui.terminal.api.autoservice.saleOrders; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/9/13 + **/ +@Data +public class LoanPreloansQuery implements Query { + private static final long serialVersionUID = 4677306476460284056L; + + @ApiModelProperty("姓名") + private String custName; + @ApiModelProperty("身份证号码") + private String idCard; + @ApiModelProperty("手机号码") + private String phone; + @ApiModelProperty("用户sid,即销售专员的用户sid") + private String userSid; + + @ApiModelProperty("移动端:姓名、身份证、手机号") + private String name; + @ApiModelProperty("销售订单sid") + private String orderSid; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/LoanPreloansVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/LoanPreloansVo.java new file mode 100644 index 0000000000..afa7447573 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/LoanPreloansVo.java @@ -0,0 +1,40 @@ +package com.yxt.anrui.terminal.api.autoservice.saleOrders; + +import com.yxt.anrui.terminal.api.base.common.CarModelVo; +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/9/13 + **/ +@Data +public class LoanPreloansVo implements Vo { + private static final long serialVersionUID = -6577382635622047300L; + + @ApiModelProperty("客户sid") + private String custSid; + @ApiModelProperty("客户名称") + private String custName; + @ApiModelProperty("手机号码") + private String phone; + + @ApiModelProperty("公司风控结果") + private String gsfkjg; + @ApiModelProperty("资方名称") + private String capitalName; + @ApiModelProperty("资方风控结果") + private String zffkjg; + @ApiModelProperty("担保人") + private String peoName; + @ApiModelProperty("申请日期") + private String createTime; + + private String sid; + + @ApiModelProperty("页面地址") + private CarModelVo pluginPage; + +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/base/common/CommonFeign.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/base/common/CommonFeign.java index cc317a0dc1..32890bf777 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/base/common/CommonFeign.java +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/base/common/CommonFeign.java @@ -68,4 +68,14 @@ public interface CommonFeign { @GetMapping("/getLoanSs") ResultBean getLoanSs(@RequestParam("orderSid") String orderSid); + + @ApiOperation(value = "信用审核新增页面") + @ResponseBody + @GetMapping("/getInsertPreloan") + ResultBean getInsertPreloan(@RequestParam("customerTypeKey") String customerTypeKey,@RequestParam("customerTypeValue")String customerTypeValue); + + @ApiOperation(value = "信用审核详情页面") + @ResponseBody + @GetMapping("/getDetailsPreloan") + ResultBean getDetailsPreloan(@RequestParam("sid") String sid); } diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderRest.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderRest.java index 75abf8c68a..d025bc4552 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderRest.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderRest.java @@ -25,9 +25,9 @@ *********************************************************/ package com.yxt.anrui.terminal.biz.autoservice.saleOrders; -import com.yxt.anrui.terminal.api.autoservice.saleOrders.AppBusSalesOrderFeign; -import com.yxt.anrui.terminal.api.autoservice.saleOrders.InputLenderVo; -import com.yxt.anrui.terminal.api.autoservice.saleOrders.OrderLoanVo; +import com.yxt.anrui.riskcenter.api.loanpreloancreditapply.LoanPreloanQuery; +import com.yxt.anrui.riskcenter.api.loanpreloancreditapply.LoanPreloanVo; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.*; import com.yxt.anrui.terminal.api.autoservice.saleOrders.depositinfo.DepositInfoDto; import com.yxt.anrui.terminal.api.autoservice.saleOrders.depositinfo.DepositInfoQuery; import com.yxt.anrui.terminal.api.autoservice.saleOrders.depositinfo.DepositInfoVo; @@ -409,4 +409,9 @@ public class AppBusSalesOrderRest implements AppBusSalesOrderFeign { return appBusSalesOrderService.saleOrderInputLender(saleOrderSid,sid); } + @Override + public ResultBean> getPreLoanList(PagerQuery pagerQuery) { + return appBusSalesOrderService.getPreLoanList(pagerQuery); + } + } diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderService.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderService.java index 6219f02ff7..0e8adf84e6 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderService.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderService.java @@ -27,6 +27,8 @@ package com.yxt.anrui.terminal.biz.autoservice.saleOrders; import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSON; +import com.yxt.anrui.base.api.basemiddleman.BaseMiddlemanQuery; +import com.yxt.anrui.base.api.basemiddleman.BaseMiddlemanVo; import com.yxt.anrui.base.api.basepurchasesystem.AppBasePurchSystemVo; import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign; import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign; @@ -71,13 +73,19 @@ import com.yxt.anrui.buscenter.api.bussalesorderprice.app.AppBusSalesOrderPriceV import com.yxt.anrui.crm.api.crmvehicledemand.AppCrmOrderVehicleDemandQuery; import com.yxt.anrui.crm.api.crmvehicledemand.AppOrderCrmVehicleDemandVo; import com.yxt.anrui.crm.api.crmvehicledemand.CrmVehicledemandFeign; +import com.yxt.anrui.portal.api.appsubsetversion.AppSubVersionVo; +import com.yxt.anrui.portal.api.appsubsetversion.AppSubsetVersionFeign; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserVo; import com.yxt.anrui.riskcenter.api.loanpreloancreditapply.LoanOrderPreloanVo; import com.yxt.anrui.riskcenter.api.loanpreloancreditapply.LoanPreloanCreditApplyFeign; +import com.yxt.anrui.riskcenter.api.loanpreloancreditapply.LoanPreloanQuery; +import com.yxt.anrui.riskcenter.api.loanpreloancreditapply.LoanPreloanVo; import com.yxt.anrui.terminal.api.autoservice.saleOrders.InputLenderVo; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.LoanPreloansQuery; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.LoanPreloansVo; import com.yxt.anrui.terminal.api.autoservice.saleOrders.OrderLoanVo; import com.yxt.anrui.terminal.api.autoservice.saleOrders.flowable.*; import com.yxt.anrui.terminal.api.autoservice.saleOrders.order.FlowOrderVo; @@ -168,6 +176,8 @@ public class AppBusSalesOrderService { private LoanPreloanCreditApplyFeign loanPreloanCreditApplyFeign; @Autowired private CommonService commonService; + @Autowired + private AppSubsetVersionFeign appSubsetVersionFeign; /************************************* 销售订单接口 *********************************************/ @@ -767,7 +777,7 @@ public class AppBusSalesOrderService { } public ResultBean saleOrderInputLenderNum(String sid, String num) { - return busSalesOrderFeign.saveBorrowNum(sid,num); + return busSalesOrderFeign.saveBorrowNum(sid, num); } public ResultBean saleOrderInputLenderOwn(String saleOrderSid) { @@ -777,9 +787,29 @@ public class AppBusSalesOrderService { public ResultBean saleOrderInputLender(String saleOrderSid, String sid) { ResultBean rb = ResultBean.fireFail(); InputLenderVo inputLenderVo = new InputLenderVo(); - ResultBean resultBean = busSalesOrderFeign.saveSaleOrderInputLender(saleOrderSid,sid); + ResultBean resultBean = busSalesOrderFeign.saveSaleOrderInputLender(saleOrderSid, sid); SalesLenderVo vinVo = resultBean.getData(); BeanUtil.copyProperties(vinVo, inputLenderVo); return rb.success().setData(inputLenderVo); } + + public ResultBean> getPreLoanList(PagerQuery pagerQuery) { + ResultBean> rb = ResultBean.fireFail(); + PagerQuery pq = CoverUtils.getPagerQuery(pagerQuery); + ResultBean> resultBean = loanPreloanCreditApplyFeign.getOrderLoanPagerList(pq); + List voList = Optional.ofNullable(resultBean.getData().getRecords()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanPreloansVo.class)).collect(Collectors.toList()); + PagerVo v = new PagerVo<>(); + BeanUtil.copyProperties(resultBean.getData(), v); + String appSid = "fec4e243-491a-11ec-94cd-fa163e0cb33c"; + String moduleAction = "com.anrui.android.plugin.riskcontrol.activity.DetailCreditReviewActivity"; + ResultBean voResultBean = appSubsetVersionFeign.getLastRiskByAppSid(appSid, moduleAction); + AppSubVersionVo appSubVersionVo = voResultBean.getData(); + for (int i = 0; i < voList.size(); i++) { + LoanPreloansVo loanPreloansVo = voList.get(i); + CarModelVo finPage1 = commonService.getDetailsPreloan(loanPreloansVo.getSid(), appSubVersionVo).getData(); + loanPreloansVo.setPluginPage(finPage1); + } + v.setRecords(voList); + return rb.success().setMsg("当前共查询到" + v.getTotal() + "条记录").setData(v); + } } \ No newline at end of file diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonRest.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonRest.java index 0d894b5d8b..610277a0f3 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonRest.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonRest.java @@ -68,4 +68,14 @@ public class CommonRest implements CommonFeign { public ResultBean getLoanSs(String orderSid) { return commonService.getLoanSs(orderSid); } + + @Override + public ResultBean getInsertPreloan(String customerTypeKey, String customerTypeValue) { + return commonService.getInsertPreloan(customerTypeKey,customerTypeValue); + } + + @Override + public ResultBean getDetailsPreloan(String sid) { + return commonService.getDetailsPreloan(sid,null); + } } diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonService.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonService.java index ab6189cc14..10532d3f46 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonService.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonService.java @@ -199,4 +199,61 @@ public class CommonService { carModelVo.setARouterParamValue(aRouterParamValue); return rb.success().setData(carModelVo); } + + public ResultBean getInsertPreloan(String customerTypeKey, String customerTypeValue) { + ResultBean rb = ResultBean.fireFail(); + String appSid = "fec4e243-491a-11ec-94cd-fa163e0cb33c"; + String moduleAction = "com.anrui.android.plugin.riskcontrol.activity.EditCreditReviewActivity"; + ResultBean voResultBean = appSubsetVersionFeign.getLastRiskByAppSid(appSid, moduleAction); + AppSubVersionVo appSubVersionVo = voResultBean.getData(); + CarModelVo carModelVo = new CarModelVo(); + Map map = new HashMap<>(); + map.put("creditType", 0); + map.put("createSource", 0); + map.put("customerTypeKey", customerTypeKey); + map.put("customerTypeValue", customerTypeValue); + appSubVersionVo.setJson(JSONObject.toJSONString(map)); + BeanUtil.copyProperties(appSubVersionVo, carModelVo); + carModelVo.setRequestCode("1004"); + carModelVo.setARouterClass("com.anrui.android.plugin.riskcontrol.manager.ARouterManager"); + carModelVo.setARouterMethod("EDIT_CREDIT_REVIEW_ACTIVITY"); + List aRouterParamType = new ArrayList<>(); + aRouterParamType.add("INT"); + aRouterParamType.add("INT"); + aRouterParamType.add("STRING"); + aRouterParamType.add("STRING"); + List aRouterParamValue = new ArrayList<>(); + aRouterParamValue.add("0"); + aRouterParamValue.add("0"); + aRouterParamValue.add(customerTypeKey); + aRouterParamValue.add(customerTypeValue); + carModelVo.setARouterParamType(aRouterParamType); + carModelVo.setARouterParamValue(aRouterParamValue); + return rb.success().setData(carModelVo); + } + + public ResultBean getDetailsPreloan(String sid,AppSubVersionVo appSubVersionVo) { + ResultBean rb = ResultBean.fireFail(); + if(appSubVersionVo != null){ + String appSid = "fec4e243-491a-11ec-94cd-fa163e0cb33c"; + String moduleAction = "com.anrui.android.plugin.riskcontrol.activity.DetailCreditReviewActivity"; + ResultBean voResultBean = appSubsetVersionFeign.getLastRiskByAppSid(appSid, moduleAction); + appSubVersionVo = voResultBean.getData(); + } + CarModelVo carModelVo = new CarModelVo(); + Map map = new HashMap<>(); + map.put("sid", sid); + appSubVersionVo.setJson(JSONObject.toJSONString(map)); + BeanUtil.copyProperties(appSubVersionVo, carModelVo); + carModelVo.setRequestCode("1006"); + carModelVo.setARouterClass("com.anrui.android.plugin.riskcontrol.manager.ARouterManager"); + carModelVo.setARouterMethod("DETAIL_CREDIT_REVIEW_ACTIVITY"); + List aRouterParamType = new ArrayList<>(); + aRouterParamType.add("STRING"); + List aRouterParamValue = new ArrayList<>(); + aRouterParamValue.add(sid); + carModelVo.setARouterParamType(aRouterParamType); + carModelVo.setARouterParamValue(aRouterParamValue); + return rb.success().setData(carModelVo); + } }