Browse Source

Merge remote-tracking branch 'origin/master'

master
God 2 years ago
parent
commit
f9663c5321
  1. 5
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusSalesOrderLoancontractFeign.java
  2. 5
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusSalesOrderLoancontractFeignFallback.java
  3. 5
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractRest.java
  4. 171
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java
  5. 7
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java
  6. 6
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java
  7. 47
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/capitalcreditresult/CapitalCreditResult.java
  8. 52
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/capitalcreditresult/CwSystemYT.java
  9. 14
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java
  10. 59
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/OtherReceivableBillCreditResultCastToKingDeeBillFields.java
  11. 107
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/OtherReceivableBillCreditResultService.java
  12. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/data.json
  13. 33
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/data_FEntity.json
  14. 13
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/data_data.json
  15. 67
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/data_model.json
  16. 87
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/remarks.txt
  17. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancapitalcreditresult/LoanCapitalCreditResultService.java
  18. 20
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewService.java
  19. 10
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeign.java
  20. 5
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeignFallback.java
  21. 29
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/LoanPreloansQuery.java
  22. 40
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/LoanPreloansVo.java
  23. 10
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/base/common/CommonFeign.java
  24. 11
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderRest.java
  25. 34
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderService.java
  26. 10
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonRest.java
  27. 57
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonService.java

5
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);
}

5
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;
}
}

5
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);
}
}

171
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<BusSale
@Autowired
private LoanSolutionsFeign loanSolutionsFeign;
@Autowired
private LoanSolutionsDetailFeign loanSolutionsDetailFeign;
@Autowired
private BusSalesOrderService busSalesOrderService;
@Autowired
private FinUncollectedReceivablesDetailedFeign finUncollectedDetailedFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private FinKingDeeFeign finKingDeeFeign;
@Autowired
private BusSalesOrderBorrowerService busSalesOrderBorrowerService;
@Autowired
private BasePurchaseSystemFeign basePurchaseSystemFeign;
private QueryWrapper<BusSalesOrderLoancontract> createQueryWrapper(BusSalesOrderLoancontractQuery query) {
// todo: 这里根据具体业务调整查询条件
@ -260,14 +287,14 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService<BusSale
BusSalesOrder busSalesOrder = busSalesOrderService.fetchBySid(saleOrderSid);
//根据消贷合同查询贷款人
BusSalesOrderLoancontract busSalesOrderLoancontract = fetchBySid(loanContractSid);
if(busSalesOrderLoancontract != null){
if (busSalesOrderLoancontract != null) {
//根据销售订单的贷款人sid查询车辆表中的数据
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleService.selectByBorrowSid(busSalesOrderLoancontract.getBorrowerSid());
//这是生成业务系统融资放款应收的逻辑:
// 融资放款=融资项目总额-融资首付-[贷款保证金]-[厂家贴息],根据选择的产品政策来判断,若贷款保证金为固定的,需要减去,若为敞口的,不需要减;差额放款需要减厂家贴息,全额放款不需要。差额放款的厂家贴息金额存入“其他应收”字段中,
//计算融资放款的金额以及厂家贴息金额
ResultBean<PushVo> 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<BusSale
}
return rb.success();
}
public ResultBean pushOtherReceivable(LoanContractPush loanContractPush) {
ResultBean rb = ResultBean.fireFail();
String saleOrderSid = loanContractPush.getSaleOrderSid();
// String loanContractSid = loanContractPush.getLoanContractSid();
BusSalesOrder salesOrder = busSalesOrderService.fetchBySid(saleOrderSid);
if (null != salesOrder) {
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerService.fetchDetailsByOrderSid(saleOrderSid).getData();
if (null != borrowerDetailsVo) {
//-----------获取其他应收单对象----------------
CapitalCreditResult creditResult = new CapitalCreditResult();
//根据销售订单的贷款人sid查询车辆表中的数据
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleService.selectByBorrowSid(borrowerDetailsVo.getSid());
if (null != busSalesOrderVehicle) {
String customerNumber = "";
//判断财务系统是否有客户
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
if (!aBoolean) {
List<BdCustomer> 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<String> 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<CapitalCreditResult.CapitalCreditResultDetailDto> collectionDetailDtoListOne = new ArrayList<>();
SysOrganizationVo sysOrganizationVo2 = sysOrganizationFeign.fetchBySid(salesOrder.getOrgSid()).getData();
//这是生成业务系统融资放款应收的逻辑:
// 融资放款=融资项目总额-融资首付-[贷款保证金]-[厂家贴息],根据选择的产品政策来判断,若贷款保证金为固定的,需要减去,若为敞口的,不需要减;差额放款需要减厂家贴息,全额放款不需要。差额放款的厂家贴息金额存入“其他应收”字段中,
//计算融资放款的金额以及厂家贴息金额
ResultBean<PushVo> 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();
}
}

7
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<String> draftOtherReceivableBill(@RequestBody @Valid OtherReceivable otherReceivable);
@ApiOperation("暂存其他应收单的接口(资方信审终审通过后推送)")
@PostMapping("/pushOtherReceivableBill")
@ResponseBody
ResultBean<String> pushOtherReceivableBill(@RequestBody @Valid CapitalCreditResult creditResult);
@ApiOperation("暂存付款单的接口")
@PostMapping("/draftArReceivebill")
@ResponseBody

6
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<String> pushOtherReceivableBill(CapitalCreditResult creditResult) {
return null;
}
@Override
public ResultBean<String> draftArReceivebill(ARReceivebill arReceivebill) {
return null;

47
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<CapitalCreditResult.CapitalCreditResultDetailDto> resultDetails;
@Data
public static class CapitalCreditResultDetailDto implements Dto {
@ApiModelProperty("承担部门")
public String dearDept;
@ApiModelProperty("发票类型")
public String invoiceType;
@ApiModelProperty("不含税金额")
public String exTaxMoney;
@ApiModelProperty("用途")
public String useTo;
}
}

52
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;
}
}

14
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<String> pushOtherReceivableBill(CapitalCreditResult creditResult) {
log.info("FinKingDeeFeignRest-pushOtherReceivableBill:{}", JSONObject.toJSONString(creditResult));
return creditResultService.pushOtherReceivableBill(creditResult);
}
@Override
public ResultBean<String> draftSalesReturnOrders(SalesReturn salesReturn) {
log.info("FinKingDeeFeignRest-draftSalesReturnOrders:{}", JSONObject.toJSONString(salesReturn));

59
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<String,String> map_fEntityModel_,List<Map<String,String>> 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<JSONObject> list_fEntity_=new ArrayList<>();
//对模板字段赋值 根据传递进来的map数据的集合进行赋值
for(int i=0;i<vehicleList.size();i++){
String fEntity_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/capitalcreditresult/data_FEntity.json");
Map<String,String> params=vehicleList.get(i);
Map<String,String> map_fEntity_=new HashMap<>();
for (Map.Entry<String, String> 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();
}
}

107
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<String, String> 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<CapitalCreditResult.CapitalCreditResultDetailDto> collectionDetails = creditResult.getResultDetails() == null ? new ArrayList<>() : creditResult.getResultDetails();
//准备 物料列表的数据
ResultBean<List<Map<String, String>>> vehicleListMap = createVehicleListsForReceivableBill(collectionDetails);
if (!vehicleListMap.getSuccess()) {
return rb.setMsg(vehicleListMap.getMsg());
}
String kingDeeData = OtherReceivableBillCreditResultCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_, vehicleListMap.getData());
try {
ResultBean<String> 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<String> 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<List<Map<String, String>>> createVehicleListsForReceivableBill(List<CapitalCreditResult.CapitalCreditResultDetailDto> collectionDetails) {
ResultBean<List<Map<String, String>>> rb = ResultBean.fireFail();
List<Map<String, String>> collectionDetailMap = new ArrayList<>();
for (int i = 0; i < collectionDetails.size(); i++) {
CapitalCreditResult.CapitalCreditResultDetailDto c = collectionDetails.get(i);
Map<String, String> 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);
}
}

4
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"
}

33
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"
}

13
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": {}
}

67
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": []
}

87
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

2
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<LoanCapit
loanContractPush.setLoanContractSid(loanCapitalCreditResult.getLoanContractSid());
loanContractPush.setSaleOrderSid(loanCapitalCreditResult.getSaleOrderSid());
ResultBean resultBean = busSalesOrderLoancontractFeign.pushLoanOrder(loanContractPush);
//资方信审终审通过后推送财务的融资放款及金融方案中各项费用其他应收单
ResultBean pushOtherReceivable = busSalesOrderLoancontractFeign.pushOtherReceivable(loanContractPush);
}
return rb.success();
}

20
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewService.java

@ -5,6 +5,8 @@ import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign;
import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusSalesOrderLoancontractFeign;
import com.yxt.anrui.buscenter.api.bussalesorderloancontract.LoanContractPush;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFile;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum;
import com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview.LoanNoGuaranteeCreditReview;
@ -17,6 +19,7 @@ import com.yxt.common.core.result.ResultBean;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collections;
import java.util.List;
@ -39,6 +42,8 @@ public class LoanNoGuaranteeCreditReviewService extends MybatisBaseService<LoanN
private LoanFileService loanFileService;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private BusSalesOrderLoancontractFeign busSalesOrderLoancontractFeign;
public ResultBean<LoanNoGuaranteeCreditReviewDetailsVo> details(String salesOrderSid) {
ResultBean<LoanNoGuaranteeCreditReviewDetailsVo> rb = ResultBean.fireFail();
@ -89,7 +94,7 @@ public class LoanNoGuaranteeCreditReviewService extends MybatisBaseService<LoanN
return rb.success().setData(vo);
}
@Transactional(rollbackFor = Exception.class)
public ResultBean<String> saveReviewInfo(LoanNoGuaranteeCreditReviewDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
String salesOrderSid = dto.getSalesOrderSid();
@ -131,6 +136,19 @@ public class LoanNoGuaranteeCreditReviewService extends MybatisBaseService<LoanN
if (!loanReviewFiles.isEmpty()) {
loanFileService.saveAll(sid, loanReviewFiles, LoanFileEnum.LOAN_REVIEW_FILES.getAttachType());
}
//推送其他应收单
LoanNoGuaranteeCreditReview creditReview = fetchBySid(sid);
if (null != creditReview) {
if (StringUtils.isNotBlank(creditReview.getCreditReview())) {
if ("通过".equals(creditReview.getCreditReview())) {
//资方信审终审通过后推送财务的融资放款及金融方案中各项费用其他应收单
LoanContractPush loanContractPush = new LoanContractPush();
loanContractPush.setSaleOrderSid(creditReview.getSalesOrderSid());
ResultBean pushOtherReceivable = busSalesOrderLoancontractFeign.pushOtherReceivable(loanContractPush);
}
}
}
}
return rb.success().setData(salesOrderSid);
}

10
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeign.java

@ -338,16 +338,20 @@ public interface AppBusSalesOrderFeign {
@ApiOperation("保存销售订单贷款人数量")
@PostMapping("/save/saleOrderInputLenderNum/{sid}/{num}")
@ResponseBody
ResultBean saleOrderInputLenderNum(@PathVariable("sid") String sid,@PathVariable("num")String num);
ResultBean saleOrderInputLenderNum(@PathVariable("sid") String sid, @PathVariable("num") String num);
@ApiOperation("保存销售订单贷款人自己")
@PostMapping("/save/saleOrderInputLenderOwn/{saleOrderSid}")
@ResponseBody
ResultBean saleOrderInputLenderOwn(@PathVariable("saleOrderSid")String saleOrderSid);
ResultBean saleOrderInputLenderOwn(@PathVariable("saleOrderSid") String saleOrderSid);
@ApiOperation("保存销售订单贷款人")
@PostMapping("/save/saleOrderInputLender/{saleOrderSid}/{sid}")
@ResponseBody
ResultBean<InputLenderVo> saleOrderInputLender(@PathVariable("saleOrderSid")String saleOrderSid,@PathVariable("sid")String sid);
ResultBean<InputLenderVo> saleOrderInputLender(@PathVariable("saleOrderSid") String saleOrderSid, @PathVariable("sid") String sid);
@ApiOperation("确定贷款人分页列表")
@PostMapping("/getPreLoanList")
@ResponseBody
ResultBean<PagerVo<LoanPreloansVo>> getPreLoanList(@RequestBody PagerQuery<LoanPreloansQuery> pagerQuery);
}

5
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<InputLenderVo> saleOrderInputLender(String saleOrderSid, String sid) {
return null;
}
@Override
public ResultBean<PagerVo<LoanPreloansVo>> getPreLoanList(PagerQuery<LoanPreloansQuery> pagerQuery) {
return null;
}
}

29
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;
}

40
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;
}

10
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<CarModelVo> getLoanSs(@RequestParam("orderSid") String orderSid);
@ApiOperation(value = "信用审核新增页面")
@ResponseBody
@GetMapping("/getInsertPreloan")
ResultBean<CarModelVo> getInsertPreloan(@RequestParam("customerTypeKey") String customerTypeKey,@RequestParam("customerTypeValue")String customerTypeValue);
@ApiOperation(value = "信用审核详情页面")
@ResponseBody
@GetMapping("/getDetailsPreloan")
ResultBean<CarModelVo> getDetailsPreloan(@RequestParam("sid") String sid);
}

11
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<PagerVo<LoanPreloansVo>> getPreLoanList(PagerQuery<LoanPreloansQuery> pagerQuery) {
return appBusSalesOrderService.getPreLoanList(pagerQuery);
}
}

34
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<InputLenderVo> saleOrderInputLender(String saleOrderSid, String sid) {
ResultBean<InputLenderVo> rb = ResultBean.fireFail();
InputLenderVo inputLenderVo = new InputLenderVo();
ResultBean<SalesLenderVo> resultBean = busSalesOrderFeign.saveSaleOrderInputLender(saleOrderSid,sid);
ResultBean<SalesLenderVo> resultBean = busSalesOrderFeign.saveSaleOrderInputLender(saleOrderSid, sid);
SalesLenderVo vinVo = resultBean.getData();
BeanUtil.copyProperties(vinVo, inputLenderVo);
return rb.success().setData(inputLenderVo);
}
public ResultBean<PagerVo<LoanPreloansVo>> getPreLoanList(PagerQuery<LoanPreloansQuery> pagerQuery) {
ResultBean<PagerVo<LoanPreloansVo>> rb = ResultBean.fireFail();
PagerQuery<LoanPreloanQuery> pq = CoverUtils.getPagerQuery(pagerQuery);
ResultBean<PagerVo<LoanPreloanVo>> resultBean = loanPreloanCreditApplyFeign.getOrderLoanPagerList(pq);
List<LoanPreloansVo> voList = Optional.ofNullable(resultBean.getData().getRecords()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanPreloansVo.class)).collect(Collectors.toList());
PagerVo<LoanPreloansVo> 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<AppSubVersionVo> 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);
}
}

10
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<CarModelVo> getLoanSs(String orderSid) {
return commonService.getLoanSs(orderSid);
}
@Override
public ResultBean<CarModelVo> getInsertPreloan(String customerTypeKey, String customerTypeValue) {
return commonService.getInsertPreloan(customerTypeKey,customerTypeValue);
}
@Override
public ResultBean<CarModelVo> getDetailsPreloan(String sid) {
return commonService.getDetailsPreloan(sid,null);
}
}

57
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<CarModelVo> getInsertPreloan(String customerTypeKey, String customerTypeValue) {
ResultBean<CarModelVo> rb = ResultBean.fireFail();
String appSid = "fec4e243-491a-11ec-94cd-fa163e0cb33c";
String moduleAction = "com.anrui.android.plugin.riskcontrol.activity.EditCreditReviewActivity";
ResultBean<AppSubVersionVo> voResultBean = appSubsetVersionFeign.getLastRiskByAppSid(appSid, moduleAction);
AppSubVersionVo appSubVersionVo = voResultBean.getData();
CarModelVo carModelVo = new CarModelVo();
Map<String, Object> 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<String> aRouterParamType = new ArrayList<>();
aRouterParamType.add("INT");
aRouterParamType.add("INT");
aRouterParamType.add("STRING");
aRouterParamType.add("STRING");
List<String> 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<CarModelVo> getDetailsPreloan(String sid,AppSubVersionVo appSubVersionVo) {
ResultBean<CarModelVo> rb = ResultBean.fireFail();
if(appSubVersionVo != null){
String appSid = "fec4e243-491a-11ec-94cd-fa163e0cb33c";
String moduleAction = "com.anrui.android.plugin.riskcontrol.activity.DetailCreditReviewActivity";
ResultBean<AppSubVersionVo> voResultBean = appSubsetVersionFeign.getLastRiskByAppSid(appSid, moduleAction);
appSubVersionVo = voResultBean.getData();
}
CarModelVo carModelVo = new CarModelVo();
Map<String, Object> 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<String> aRouterParamType = new ArrayList<>();
aRouterParamType.add("STRING");
List<String> aRouterParamValue = new ArrayList<>();
aRouterParamValue.add(sid);
carModelVo.setARouterParamType(aRouterParamType);
carModelVo.setARouterParamValue(aRouterParamValue);
return rb.success().setData(carModelVo);
}
}

Loading…
Cancel
Save