Browse Source

融资放款推送财务收款单

master
dimengzhe 1 year ago
parent
commit
3c34d961ee
  1. 5
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.java
  2. 13
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.xml
  3. 169
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  4. 1
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.java
  5. 21
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml
  6. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedService.java
  7. 1
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedMapper.java
  8. 7
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedMapper.xml
  9. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedService.java
  10. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.java
  11. 8
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.xml
  12. 113
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java
  13. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.java
  14. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.xml
  15. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsService.java

5
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.java

@ -33,6 +33,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.fin.api.fincollectionconfirmation.*;
import com.yxt.anrui.riskcenter.api.loanfinbank.LoanFinBank;
import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.LoanFinOtherPolicy;
import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
@ -146,4 +147,8 @@ public interface FinCollectionConfirmationMapper extends BaseMapper<FinCollectio
LoanFinOtherPolicy selectByOtherSid(String otherPolicySid);
BusSalesOrderVehicle selectByVinSid(String busVinSid);
BusSalesOrder selectByOrderSid(String salesOrderSid);
LoanFinBank selectFinBnk(String contractNo);
}

13
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.xml

@ -281,4 +281,17 @@
<select id="selectByVinSid" resultType="com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle">
select * from anrui_buscenter.bus_sales_order_vehicle where sid = #{busVinSid}
</select>
<select id="selectByOrderSid" resultType="com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder">
select * from anrui_buscenter.bus_sales_order where sid = #{salesOrderSid}
</select>
<select id="selectFinBnk" resultType="com.yxt.anrui.riskcenter.api.loanfinbank.LoanFinBank">
select lb.* from anrui_buscenter.bus_sales_order bo
left join anrui_riskcenter.loan_solutions ls on ls.salesOrderSid = bo.sid
left join anrui_riskcenter.loan_fin_policy lp on lp.sid = ls.policySid
left join anrui_riskcenter.loan_fin_bank lb on lb.sid = lp.bankSid
where bo.contractNo = #{contractNo}
</select>
</mapper>

169
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java

@ -88,6 +88,8 @@ import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.fin.api.kingdee.arreceivable.ARReceivable;
import com.yxt.anrui.fin.api.kingdee.arreceivebill.ARReceivebill;
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.biz.finbillapplication.FinBillApplicationService;
import com.yxt.anrui.fin.biz.finbilltrailer.FinBillTrailerService;
import com.yxt.anrui.fin.biz.finbillvehicle.FinBillVehicleService;
@ -99,6 +101,7 @@ import com.yxt.anrui.fin.biz.finvehicleinvoice.FinVehicleInvoiceService;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
import com.yxt.anrui.fin.biz.kingdee.arreceivebill.ArReceivebillService;
import com.yxt.anrui.fin.biz.kingdee.bdcustomer.BdCustomerService;
import com.yxt.anrui.fin.biz.kingdee.capitalcreditresult.OtherReceivableBillCreditResultService;
import com.yxt.anrui.fin.biz.kingdee.receivablebill.ReceivableBillService;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
@ -110,6 +113,7 @@ import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffFeign;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffsDto;
import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetailssDto;
import com.yxt.anrui.riskcenter.api.loanfinbank.LoanFinBank;
import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.LoanFinOtherPolicy;
import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
@ -192,6 +196,8 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
private BaseVehicleStateFeign baseVehicleStateFeign;
@Autowired
private LoanDiffFeign loanDiffFeign;
@Autowired
private OtherReceivableBillCreditResultService creditResultService;
private QueryWrapper<FinCollectionConfirmation> createQueryWrapper(FinCollectionConfirmationQuery query) {
// todo: 这里根据具体业务调整查询条件
@ -1746,8 +1752,31 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
if(finSelectedReceivablesDetailed.getSubscriptionMoney().compareTo(new BigDecimal(finUncollectedReceivablesDetailed.getReveivableMoney())) != 0){
//有差额
if(isTue){//不一致
//根据busVinSid查询融资放款的是否已认完款,若已认完,则推送,若未认完则不推送
List<FinSelectedReceivablesDetailedVo> voList = finSelectedReceivablesDetailedService.selectListByVin2(finUncollectedReceivablesDetailed.getContractNo(), finUncollectedReceivablesDetailed.getBusVinSid(), 3);
BigDecimal bigDecimalVinAll = voList.stream().map(FinSelectedReceivablesDetailedVo::getSubscriptionMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add);
List<FinUncollectedReceivablesDetailed> unList = finUncollectedReceivablesDetailedService.selectListByBusVinSid2(finUncollectedReceivablesDetailed.getBusVinSid());
BigDecimal unDecimalVinAll = unList.stream().map(FinUncollectedReceivablesDetailed::getReveivableMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add);
if(bigDecimalVinAll.compareTo(unDecimalVinAll) == 0){//认完
if(bigAdd.compareTo(decimalAll) != 0){//不相等,推送放款差额确认待办
LoanDiffDetailssDto loanDiffDetailssDto = new LoanDiffDetailssDto();
loanDiffDetailssDto.setBankSid(loanFinPolicy.getBankSid());
loanDiffDetailssDto.setBankName(loanFinPolicy.getBankShortName());
loanDiffDetailssDto.setBorrowName(busSalesOrderVehicle.getBorrowName());
loanDiffDetailssDto.setBorrowSid(busSalesOrderVehicle.getBorrowerSid());
loanDiffDetailssDto.setMakeLoan(new BigDecimal(finUncollectedReceivablesDetailed.getReveivableMoney()));
loanDiffDetailssDto.setRealityLoan(finSelectedReceivablesDetailed.getSubscriptionMoney());
loanDiffDetailssDto.setDiffLoan(decimalAll);
loanDiffDetailssDto.setMakeDiscount(loanSolutions.getFactoryDiscount());
loanDiffDetailssDto.setMakeLoanMargin(loanSolutions.getBondAmount());
loanDiffDetailssDto.setMakeOtherDiscount(loanSolutionsOtherpolicy.getOtherDiscount());
loanDiffDetailssDto.setReceivedPremium(loanSolutionsDetail.getProxyAccidentPremium());
loanDiffDetailssDto.setVinNo(busSalesOrderVehicle.getLinkNo());
loanDiffDetailssDto.setVinSid(busSalesOrderVehicle.getLinkSid());
loanDiffDetailssDto.setBusVinSid(busSalesOrderVehicle.getSid());
loanDiffDetailssDtos.add(loanDiffDetailssDto);
}
}
}else{
if(bigAdd.compareTo(decimalAll) != 0){//不相等,推送放款差额确认待办
LoanDiffDetailssDto loanDiffDetailssDto = new LoanDiffDetailssDto();
@ -1766,6 +1795,75 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
loanDiffDetailssDto.setVinSid(busSalesOrderVehicle.getLinkSid());
loanDiffDetailssDto.setBusVinSid(busSalesOrderVehicle.getSid());
loanDiffDetailssDtos.add(loanDiffDetailssDto);
}else{
CapitalCreditResult creditResult = new CapitalCreditResult();
//推送其他应收单
BusSalesOrder busSalesOrder = baseMapper.selectByOrderSid(busSalesOrderVehicle.getSalesOrderSid());
String customerNumber = "";
//判断财务系统是否有客户
Boolean aBoolean = bdCustomerService.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
String linkNo = "";
if (!aBoolean) {
BdCustomer bdCustomer = new BdCustomer();
bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo());
bdCustomer.setFShortName(busSalesOrder.getContractNo());
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(busSalesOrder.getPurchaseSystemSid()).getData();
bdCustomer.setTOrgIds(data.getOrgCode());
if (com.yxt.common.base.utils.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
String vinNo = busSalesOrderVehicle.getLinkNo();
if (vinNo.length() > 8) {
linkNo = vinNo.substring(vinNo.length() - 8);
} else {
linkNo = busSalesOrderVehicle.getLinkNo();
}
bdCustomer.setFName(busSalesOrderVehicle.getBorrowName() + linkNo);
} else {
bdCustomer.setFName(busSalesOrderVehicle.getBorrowName() + busSalesOrderVehicle.getTemporaryNo());
}
ResultBean<String> resultBean = bdCustomerService.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
}
} else {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
}
creditResult.setCommUnit(customerNumber);
SysOrganizationVo sysOrganizationVo1 = sysOrganizationFeign.fetchBySid(busSalesOrder.getUseOrgSid()).getData();
creditResult.setCollectionOrg(sysOrganizationVo1.getOrgCode());
creditResult.setBussDate(DateUtil.formatDate(new Date()));
List<CapitalCreditResult.CapitalCreditResultDetailDto> collectionDetailDtoListOne = new ArrayList<>();
SysOrganizationVo sysOrganizationVo2 = sysOrganizationFeign.fetchBySid(busSalesOrder.getOrgSid()).getData();
if (loanSolutions.getBondAmount() != null) {//贷款保证金
CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto();
creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode());
creditResultDetailDto.setExTaxMoney("-" + loanSolutions.getBondAmount().toString());
creditResultDetailDto.setUseTo(CwSystemYT.BOND_AMOUNTS.getType());
collectionDetailDtoListOne.add(creditResultDetailDto);
}
if (loanSolutions.getFactoryDiscount() != null) {//主产品厂家贴息
CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto();
creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode());
creditResultDetailDto.setExTaxMoney("-" + loanSolutions.getFactoryDiscount().toString());
creditResultDetailDto.setUseTo(CwSystemYT.SANFANG_TIEXI_DIECHEKUAN.getType());
collectionDetailDtoListOne.add(creditResultDetailDto);
}
if (loanSolutionsOtherpolicy.getOtherDiscount() != null) {//实扣其他融厂家贴息
CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto();
creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode());
creditResultDetailDto.setExTaxMoney("-" + loanSolutionsOtherpolicy.getOtherDiscount().toString());
creditResultDetailDto.setUseTo(CwSystemYT.SANFANG_TIEXI_DIECHEKUAN.getType());
collectionDetailDtoListOne.add(creditResultDetailDto);
}
if (loanSolutionsDetail.getProxyAccidentPremium() != null) {//已收意外险
CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto();
creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode());
creditResultDetailDto.setExTaxMoney("-" + loanSolutionsDetail.getProxyAccidentPremium().toString());
creditResultDetailDto.setUseTo(CwSystemYT.PROXY_ACCIDENT_PREMIUM.getType());
collectionDetailDtoListOne.add(creditResultDetailDto);
}
creditResult.setResultDetails(collectionDetailDtoListOne);
creditResultService.pushOtherReceivableBill(creditResult);
}
}
@ -1856,6 +1954,8 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
//加装配置手续费(贷款)
List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos3_2 = finSelectedReceivablesDetailedService.fetchByAuditState1_1(sid, "加装配置手续费", "2");
finSelectedReceivablesDetailedVos3_2.removeAll(Collections.singleton(null));
List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos4_1 = finSelectedReceivablesDetailedService.fetchByAuditState1_1(sid, "融资放款", "2");
finSelectedReceivablesDetailedVos4_1.removeAll(Collections.singleton(null));
int carSize = 0;
//全款推送车款
if (finSelectedReceivablesDetailedVos1.size() > 0) {
@ -1980,6 +2080,23 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
carSize = loanInstaConfigFee(confirmation, arReceivebill, carSize, finSelectedReceivablesDetailedVos3_2, freceivebillentry, one, orgCode);
}
//融资放款
if (finSelectedReceivablesDetailedVos4_1.size() > 0) {
boolean one = false;
if (finSelectedReceivablesDetailedVos1.size() == 0 &&
finSelectedReceivablesDetailedVos1_1_1.size() == 0 &&
finSelectedReceivablesDetailedVos2.size() == 0 &&
finSelectedReceivablesDetailedVos1_1.size() == 0 &&
finSelectedReceivablesDetailedVos2_1.size() == 0 &&
finSelectedReceivablesDetailedVos1_1_2.size() == 0 &&
finSelectedReceivablesDetailedVos3_1.size() == 0 &&
finSelectedReceivablesDetailedVos3_2.size() == 0 &&
finSelectedReceivablesDetailedVos4_1.size() == 1) {
one = true;
}
carSize = loanDiff(confirmation, arReceivebill, carSize, finSelectedReceivablesDetailedVos4_1, freceivebillentry, one, orgCode);
}
//简易订单-订金收取
if (finSelectedReceivablesDetailedVos1.isEmpty() &&
finSelectedReceivablesDetailedVos2.isEmpty() &&
@ -2026,6 +2143,54 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
return rb.success();
}
private int loanDiff(FinCollectionConfirmation confirmation, ARReceivebill arReceivebill, int carSize, List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos4_1, ARReceivebill.FRECEIVEBILLENTRY freceivebillentry, boolean one, String orgCode) {
String sid = confirmation.getSid();
List<ARReceivebill.FRECEIVEBILLENTRY> fEntityList = new ArrayList<>();
for (int i = 0; i < finSelectedReceivablesDetailedVos4_1.size(); i++) {
FinSelectedReceivablesDetailedVo vvvv = finSelectedReceivablesDetailedVos4_1.get(i);
//推送客户
String customerNo = createCustomerQuery(2, vvvv, orgCode);
//往来单位
arReceivebill.setFCONTACTUNIT(customerNo);
fEntityList = new ArrayList<>();
String uncollSid = "";
freceivebillentry = new ARReceivebill.FRECEIVEBILLENTRY();
//结算方式
freceivebillentry.setFSETTLETYPEIDKey(confirmation.getCollectionTypeKey());
freceivebillentry.setFSETTLETYPEIDType("customerPayType");
//收款金额
freceivebillentry.setFRECTOTALAMOUNTFOR(vvvv.getSubscriptionMoney());
//登记日期
freceivebillentry.setFPOSTDATE(confirmation.getCollectionDate());
if (vvvv.getVIN().length() >= 8) {
freceivebillentry.setF_PAEZ_Base1(vvvv.getVIN().substring(vvvv.getVIN().length() - 8));
}
//收款用途
freceivebillentry.setFPURPOSEIDKey("001");
freceivebillentry.setFPURPOSEIDType("cw_skyt");
freceivebillentry.setFACCOUNTID(confirmation.getCollectionBankNum());
LoanFinBank loanFinBank = baseMapper.selectFinBnk(vvvv.getContractNo());
if(loanFinBank != null){
freceivebillentry.setF_PAEZ_Base(loanFinBank.getBankNo());//资方编码
}
fEntityList.add(freceivebillentry);
uncollSid = vvvv.getReceivablesSid();
//项目类别key、value
arReceivebill.setF_PAEZ_AssistantType("cw_sklb");
arReceivebill.setF_PAEZ_AssistantKey("062");
arReceivebill.setFRECEIVEBILLENTRY(fEntityList);
if (one) {
arReceivebill.setFBillNo(confirmation.getBillNo());
} else {
//单据编号
carSize = carSize + 1;
arReceivebill.setFBillNo(confirmation.getBillNo() + "-" + carSize);
}
ResultBean resultBean1 = arReceivebillService.draftArReceivebill(arReceivebill);
}
return carSize;
}
//组装客户推送
private BdCustomer createBdCustomer(String useOrgSid, String name, String mobile, String customerSid, String collSid) {
BdCustomer bdCustomer = new BdCustomer();

1
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.java

@ -98,6 +98,7 @@ public interface FinSelectedReceivablesDetailedMapper extends BaseMapper<FinSele
List<FinSelectedReceivablesDetailedVo> selectListByVin(@Param("contractNo") String contractNo, @Param("busVinSid") String busVinSid, @Param("state") int state);
List<FinSelectedReceivablesDetailedVo> selectListByVin1(@Param("contractNo") String contractNo, @Param("busVinSid") String busVinSid, @Param("state") int state);
List<FinSelectedReceivablesDetailedVo> selectListByVin2(@Param("contractNo") String contractNo, @Param("busVinSid") String busVinSid, @Param("state") int state);
List<FinSelectedReceivablesDetailed> getList(@Param("list") List<String> sidsList);

21
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml

@ -209,6 +209,27 @@
GROUP BY d.`sid`) d
</select>
<select id="selectListByVin2"
resultType="com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedVo">
select ifnull(sum(dbalance), 0) as subscriptionMoney
from (SELECT cast((
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0)) AS DECIMAL(10, 2)) AS dbalance
FROM fin_selected_receivables_detailed d
left join fin_uncollected_receivables_detailed ff on ff.sid = d.receivablesSid
LEFT JOIN (
SELECT f.busSid,
f.thisUseMoney
FROM fin_funds_carried_forward_veh f
JOIN `fin_funds_carried_forward_apply` fa ON f.mainSid = fa.sid
WHERE fa.`nodeState` != '终止'
) f ON f.`busSid` = d.`sid`
WHERE d.auditState = #{state}
and ff.busVinSid = #{busVinSid}
and d.contractNo = #{contractNo}
and ff.receivablesName = '融资放款'
GROUP BY d.`sid`) d
</select>
<select id="getList"
resultType="com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailed">
select *

4
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedService.java

@ -285,6 +285,10 @@ public class FinSelectedReceivablesDetailedService extends MybatisBaseService<Fi
return baseMapper.selectListByVin1(contractNo, busVinSid, state);
}
public List<FinSelectedReceivablesDetailedVo> selectListByVin2(String contractNo, String busVinSid, int state) {
return baseMapper.selectListByVin2(contractNo, busVinSid, state);
}
public List<FinSelectedReceivablesDetailed> getList(List<String> sidsList) {
return baseMapper.getList(sidsList);
}

1
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedMapper.java

@ -108,6 +108,7 @@ public interface FinUncollectedReceivablesDetailedMapper extends BaseMapper<FinU
List<FinUncollectedReceivablesDetailed> selectListByBusVinSid(String busVinSid);
List<FinUncollectedReceivablesDetailed> selectListByBusVinSid1(String busVinSid);
List<FinUncollectedReceivablesDetailed> selectListByBusVinSid2(String busVinSid);
/**
* 根据销售订单车辆sid更新应收未收的款项状态

7
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedMapper.xml

@ -11,8 +11,8 @@
from fin_uncollected_receivables_detailed
<where>
${ew.sqlSegment}
ORDER BY createTime DESC, id
</where>
ORDER BY createTime DESC, id
</select>
@ -338,6 +338,11 @@
select * from fin_uncollected_receivables_detailed where busVinSid = #{busVinSid} and receivablesName = '首付款及费用'
</select>
<select id="selectListByBusVinSid2"
resultType="com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailed">
select * from fin_uncollected_receivables_detailed where busVinSid = #{busVinSid} and receivablesName = '融资放款'
</select>
<update id="updateKxState">
update fin_uncollected_receivables_detailed set kxState = #{kxState}
where busVinSid in

4
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedService.java

@ -1021,6 +1021,10 @@ public class FinUncollectedReceivablesDetailedService extends MybatisBaseService
return baseMapper.selectListByBusVinSid1(busVinSid);
}
public List<FinUncollectedReceivablesDetailed> selectListByBusVinSid2(String busVinSid) {
return baseMapper.selectListByBusVinSid2(busVinSid);
}
public ResultBean updateKxState(StateQuery stateQuery) {
ResultBean rb = ResultBean.fireFail();
List<String> busVinSid = stateQuery.getBusVinSid();

6
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.java

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiff;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffVo;
import org.apache.ibatis.annotations.Mapper;
@ -21,4 +23,8 @@ public interface LoanDiffMapper extends BaseMapper<LoanDiff> {
int updateFlowFiled(Map<String, Object> map);
IPage<LoanDiffVo> listPageVo(IPage<LoanDiff> page, @Param(Constants.WRAPPER)QueryWrapper<LoanDiff> qw);
BusSalesOrderVehicle selectByBusVinSid(String busVinSid);
BusSalesOrder selectByOrderSid(String salesOrderSid);
}

8
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.xml

@ -36,4 +36,12 @@
</where>
order by ld.id desc
</select>
<select id="selectByBusVinSid" resultType="com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle">
select * from anrui_buscenter.bus_sales_order_vehicle where sid = #{busVinSid}
</select>
<select id="selectByOrderSid" resultType="com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder">
select * from anrui_buscenter.bus_sales_order where sid = #{salesOrderSid}
</select>
</mapper>

113
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java

@ -6,7 +6,15 @@ import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign;
import com.yxt.anrui.base.api.busvehicleapply.BusVehicleApplyVo;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
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.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery;
@ -16,11 +24,15 @@ import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
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.loandiff.*;
import com.yxt.anrui.riskcenter.api.loandiff.flowable.*;
import com.yxt.anrui.riskcenter.api.loandiffdetails.*;
import com.yxt.anrui.riskcenter.api.loansolutions.PushVo;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo;
import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplate;
import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplateQuery;
import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplateVo;
@ -42,6 +54,7 @@ import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
@ -70,6 +83,12 @@ public class LoanDiffService extends MybatisBaseService<LoanDiffMapper, LoanDiff
private FileUploadComponent fileUploadComponent;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private FinKingDeeFeign finKingDeeFeign;
@Autowired
private BasePurchaseSystemFeign basePurchaseSystemFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
/**
* 判断提交的流程是否被允许
@ -198,7 +217,8 @@ public class LoanDiffService extends MybatisBaseService<LoanDiffMapper, LoanDiff
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
//推送财务其他应收单
pushFinOther(businessSid);
} else {
//极光推送
loanDiff = fetchBySid(businessSid);
@ -221,6 +241,91 @@ public class LoanDiffService extends MybatisBaseService<LoanDiffMapper, LoanDiff
}
}
public void pushFinOther(String sid) {
List<LoanDiffDetails> list = loanDiffDetailsService.selectDetailsByMainSid(sid);
list.removeAll(Collections.singleton(null));
if (!list.isEmpty()) {
for (int i = 0; i < list.size(); i++) {
CapitalCreditResult creditResult = new CapitalCreditResult();
LoanDiffDetails loanDiffDetails = list.get(i);
String busVinSid = loanDiffDetails.getBusVinSid();
BusSalesOrderVehicle busSalesOrderVehicle = baseMapper.selectByBusVinSid(busVinSid);
BusSalesOrder busSalesOrder = baseMapper.selectByOrderSid(busSalesOrderVehicle.getSalesOrderSid());
String customerNumber = "";
//判断财务系统是否有客户
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
String linkNo = "";
if (!aBoolean) {
BdCustomer bdCustomer = new BdCustomer();
bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo());
bdCustomer.setFShortName(busSalesOrder.getContractNo());
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(busSalesOrder.getPurchaseSystemSid()).getData();
bdCustomer.setTOrgIds(data.getOrgCode());
if (StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
String vinNo = busSalesOrderVehicle.getLinkNo();
if (vinNo.length() > 8) {
linkNo = vinNo.substring(vinNo.length() - 8);
} else {
linkNo = busSalesOrderVehicle.getLinkNo();
}
bdCustomer.setFName(busSalesOrderVehicle.getBorrowName() + linkNo);
} else {
bdCustomer.setFName(busSalesOrderVehicle.getBorrowName() + busSalesOrderVehicle.getTemporaryNo());
}
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
}
} else {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
}
creditResult.setCommUnit(customerNumber);
SysOrganizationVo sysOrganizationVo1 = sysOrganizationFeign.fetchBySid(busSalesOrder.getUseOrgSid()).getData();
creditResult.setCollectionOrg(sysOrganizationVo1.getOrgCode());
creditResult.setBussDate(DateUtil.formatDate(new Date()));
List<CapitalCreditResult.CapitalCreditResultDetailDto> collectionDetailDtoListOne = new ArrayList<>();
SysOrganizationVo sysOrganizationVo2 = sysOrganizationFeign.fetchBySid(busSalesOrder.getOrgSid()).getData();
if (loanDiffDetails.getRealityLoan() != null) {//实扣贷款保证金
CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto();
creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode());
creditResultDetailDto.setExTaxMoney("-" + loanDiffDetails.getRealityLoanMargin().toString());
creditResultDetailDto.setUseTo(CwSystemYT.BOND_AMOUNTS.getType());
collectionDetailDtoListOne.add(creditResultDetailDto);
}
if (loanDiffDetails.getRealityDiscount() != null) {//实扣主产品厂家贴息
CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto();
creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode());
creditResultDetailDto.setExTaxMoney("-" + loanDiffDetails.getRealityDiscount().toString());
creditResultDetailDto.setUseTo(CwSystemYT.SANFANG_TIEXI_DIECHEKUAN.getType());
collectionDetailDtoListOne.add(creditResultDetailDto);
}
if (loanDiffDetails.getRealityOtherDiscount() != null) {//实扣其他融厂家贴息
CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto();
creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode());
creditResultDetailDto.setExTaxMoney("-" + loanDiffDetails.getRealityOtherDiscount().toString());
creditResultDetailDto.setUseTo(CwSystemYT.SANFANG_TIEXI_DIECHEKUAN.getType());
collectionDetailDtoListOne.add(creditResultDetailDto);
}
if (loanDiffDetails.getReceivedPremium() != null) {//已收意外险
CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto();
creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode());
creditResultDetailDto.setExTaxMoney("-" + loanDiffDetails.getReceivedPremium().toString());
creditResultDetailDto.setUseTo(CwSystemYT.PROXY_ACCIDENT_PREMIUM.getType());
collectionDetailDtoListOne.add(creditResultDetailDto);
}
if (loanDiffDetails.getDiffPremium() != null) {//意外险差额
CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto();
creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode());
creditResultDetailDto.setExTaxMoney(loanDiffDetails.getDiffPremium().toString());
creditResultDetailDto.setUseTo(CwSystemYT.PROXY_ACCIDENT_PREMIUM.getType());
collectionDetailDtoListOne.add(creditResultDetailDto);
}
creditResult.setResultDetails(collectionDetailDtoListOne);
finKingDeeFeign.pushOtherReceivableBill(creditResult);
}
}
}
public ResultBean<List<DiffApplyNodeVo>> getPreviousNodesForReject(DiffApplyNodeQuery query) {
ResultBean<List<DiffApplyNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
@ -478,7 +583,7 @@ public class LoanDiffService extends MybatisBaseService<LoanDiffMapper, LoanDiff
if (loanDiff == null) {
return rb.setMsg("该申请不存在");
}
BeanUtil.copyProperties(dto,loanDiff,"sid");
BeanUtil.copyProperties(dto, loanDiff, "sid");
List<LoanDiffDetailsDto> loanDiffDetailsList = dto.getLoanDiffDetails();
loanDiffDetailsList.removeAll(Collections.singleton(null));
if (!loanDiffDetailsList.isEmpty()) {
@ -493,9 +598,9 @@ public class LoanDiffService extends MybatisBaseService<LoanDiffMapper, LoanDiff
List<DiffFile> fileLists = dto.getFilesList();
fileLists.removeAll(Collections.singleton(null));
if (!fileLists.isEmpty()) {
List<String> files = fileLists.stream().map(v->v.getUrl()).collect(Collectors.toList());
List<String> files = fileLists.stream().map(v -> v.getUrl()).collect(Collectors.toList());
files.removeAll(Collections.singleton(null));
if(!files.isEmpty()){
if (!files.isEmpty()) {
String filss = String.join(",", files).replaceAll(fileUploadComponent.getUrlPrefix(), "");
loanDiff.setFiles(filss);
baseMapper.updateById(loanDiff);

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.java

@ -18,4 +18,6 @@ public interface LoanDiffDetailsMapper extends BaseMapper<LoanDiffDetails> {
List<LoanDiffDetailssVo> selectByMainSid(String sid);
List<AppRecords> selectByMainSid2(String sid);
List<LoanDiffDetails> selectDetailsByMainSid(String sid);
}

4
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.xml

@ -29,4 +29,8 @@
from anrui_riskcenter.loan_diff_details
where mainSid = #{sid}
</select>
<select id="selectDetailsByMainSid" resultType="com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetails">
select * from anrui_riskcenter.loan_diff_details where mainSid = #{sid}
</select>
</mapper>

4
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsService.java

@ -24,4 +24,8 @@ public class LoanDiffDetailsService extends MybatisBaseService<LoanDiffDetailsMa
public List<AppRecords> selectByMainSid2(String sid) {
return baseMapper.selectByMainSid2(sid);
}
public List<LoanDiffDetails> selectDetailsByMainSid(String sid) {
return baseMapper.selectDetailsByMainSid(sid);
}
}

Loading…
Cancel
Save