Browse Source

完善认款顺序规则和推送计提凭证规则

master
fanzongzhe 1 year ago
parent
commit
e0e6e71611
  1. 16
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  2. 1
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRService.java
  3. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java
  4. 51
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml
  5. 167
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java

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

@ -4567,6 +4567,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
);
}
}
qw.apply("t.noReceivable > 0");
qw.eq("1", "1");
qw.orderBy(true, true, "t.loanContractNo")
.orderBy(true, true, "t.vin")
@ -4722,6 +4723,21 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
}
}
}
for (AppFinSelectedReceivablesDetailedRskDto f : finSelectedReceivablesDetailedDtos) {
if (v.getProjectName().equals("月还") || v.getProjectName().equals("资方逾期利息")) {
if (v.getVin().equals(f.getVin()) && v.getLoanContractNo().equals(f.getLoanContractNo())) {
if (f.getProjectName().equals("月还") || f.getProjectName().equals("资方逾期利息")) {
if (Integer.valueOf(f.getPeriod()) > Integer.valueOf(v.getPeriod())) {
BigDecimal noReceivable = v.getNoReceivable();
BigDecimal confirmMoney = v.getConfirmMoney();
if (confirmMoney.compareTo(noReceivable) < 0) {
return rb.setMsg("您的认款顺序与公司认款规则不一致");
}
}
}
}
}
}
}
//汇款确认书保存
List<String> payConfirmFiles = dto.getPayConfirmFiles();

1
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRService.java

@ -130,6 +130,7 @@ public class FinUncollectedReceivablesDetailedJRService extends MybatisBaseServi
if (StringUtils.isNotBlank(vinNo)) {
qw.eq("t.vin", vinNo);
}
qw.apply("t.noReceivable > 0");
List<AppFinUncollectedReceivablesDetailedRskVo> list = baseMapper.getRskPaymentDetailsListForRule(qw, useOrgSid, purchaseSystemSid);
return list;
}

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java

@ -74,7 +74,7 @@ public interface LoanRepaymentPlanDetailsMapper extends BaseMapper<LoanRepayment
CheckPayStateVo checkPayState(@Param("pSid") String pSid);
LoanPlanDetailsVoForFundVoucher pushFund(@Param("sid") String sid);
LoanPlanDetailsVoForFundVoucher pushFund(@Param("busVinSid") String busVinSid);
List<LoanPlanDetailsVoForLateVoucher> selPushLaterVoucherOnBuckle(@Param("planSids") List<String> planSids);
}

51
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml

@ -656,30 +656,33 @@
</select>
<select id="pushFund"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForFundVoucher">
SELECT c.*,
(c.reveivableMoney - c.fund) AS duePushMoney
FROM (
SELECT b.*
FROM (
SELECT a.*,
IFNULL((SELECT SUM(fund)
FROM loan_push_fund_history AS ph
WHERE ph.busVinSid = a.busVinSid), 0) AS fund
FROM (
SELECT p.sid,
p.busVinSid,
p.useOrgSid,
p.useOrgName,
SUM(j.reveivableMoney) AS reveivableMoney
FROM anrui_fin.fin_uncollected_receivables_detailed_jr AS j
LEFT JOIN loan_repayment_plan_details AS p ON j.busSid = p.sid
WHERE j.payCostTitleKey = '006'
GROUP BY p.busVinSid
) AS a
) AS b
WHERE b.reveivableMoney - b.fund > 0
AND b.sid = #{sid}
) c
SELECT
c.*,
( c.reveivableMoney - c.fund ) AS duePushMoney
FROM
(
SELECT
b.*
FROM
(
SELECT
a.*,
IFNULL(( SELECT SUM( fund ) FROM loan_push_fund_history AS ph WHERE ph.busVinSid = #{busVinSid} ), 0 ) AS fund
FROM
(
SELECT
IFNULL( SUM( jr.reveivableMoney ), 0 ) AS reveivableMoney
FROM
anrui_fin.fin_uncollected_receivables_detailed_jr AS jr
LEFT JOIN loan_repayment_plan_details AS p ON p.sid = jr.busSid
WHERE
jr.payCostTitleKey = '006'
AND p.busVinSid = #{busVinSid}
) AS a
) AS b
WHERE
b.reveivableMoney - b.fund > 0
) c
</select>
<select id="selPushLaterVoucherOnBuckle"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForLateVoucher">

167
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java

@ -206,98 +206,103 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService<LoanRepa
public ResultBean pushFund(String sid) {
ResultBean rb = ResultBean.fireFail();
LoanPlanDetailsVoForFundVoucher v = baseMapper.pushFund(sid);
if (null != v) {
List<LoanPushFundHistory> fundHistoryList = new ArrayList<>();
LoanRepaymentPlanDetails planDetails = fetchBySid(sid);
GeneralVoucher generalVoucher = new GeneralVoucher();
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(planDetails.getUseOrgSid()).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
GeneralVoucher.GeneralVoucherDetail voucherDetail1 = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail1.setTimeFlag("1");
voucherDetail1.setSceneCode("贷方");
voucherDetail1.setDataTime(new DateTime());
voucherDetail1.setAmount(v.getDuePushMoney());
List<SysOrganizationVo> deptVo = sysOrganizationFeign.selectChildrenListBySid(planDetails.getUseOrgSid()).getData();
if (!deptVo.isEmpty()) {
deptVo.stream().forEach(d -> {
if (d.getName().equals("金融服务部")) {
voucherDetail1.setDeptCode(d.getOrgCode());
}
});
}
voucherDetails.add(voucherDetail1);
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(v.getBusVinSid()).getData();
if (null != busSalesOrderVehicle) {
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(busSalesOrderVehicle.getSalesOrderSid()).getData();
String deptSid = salesOrder.getOrgSid();
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail.setSceneCode("借方");
voucherDetail.setTimeFlag("1");
voucherDetail.setDataTime(new DateTime());
SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData();
if (null != organizationDeptVo) {
voucherDetail.setDeptCode(organizationDeptVo.getOrgCode());
LoanRepaymentPlanDetails planDetails = fetchBySid(sid);
if (null != planDetails) {
LoanPlanDetailsVoForFundVoucher v = baseMapper.pushFund(planDetails.getBusVinSid());
if (null != v) {
List<LoanPushFundHistory> fundHistoryList = new ArrayList<>();
GeneralVoucher generalVoucher = new GeneralVoucher();
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(planDetails.getUseOrgSid()).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
if (null != salesOrder) {
if (null != busSalesOrderVehicle) {
String customerNumber = "";
//判断财务系统是否有客户
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
String linkNo = "";
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).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 (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
String vinNo = busSalesOrderVehicle.getLinkNo();
if (vinNo.length() > 8) {
linkNo = vinNo.substring(vinNo.length() - 8);
GeneralVoucher.GeneralVoucherDetail voucherDetail1 = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail1.setTimeFlag("1");
voucherDetail1.setSceneCode("贷方");
voucherDetail1.setDataTime(new DateTime());
voucherDetail1.setAmount(v.getDuePushMoney());
List<SysOrganizationVo> deptVo = sysOrganizationFeign.selectChildrenListBySid(planDetails.getUseOrgSid()).getData();
if (!deptVo.isEmpty()) {
deptVo.stream().forEach(d -> {
if (d.getName().equals("金融服务部")) {
voucherDetail1.setDeptCode(d.getOrgCode());
}
});
}
voucherDetails.add(voucherDetail1);
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(v.getBusVinSid()).getData();
if (null != busSalesOrderVehicle) {
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(busSalesOrderVehicle.getSalesOrderSid()).getData();
String deptSid = salesOrder.getOrgSid();
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail.setSceneCode("借方");
voucherDetail.setTimeFlag("1");
voucherDetail.setDataTime(new DateTime());
SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData();
if (null != organizationDeptVo) {
voucherDetail.setDeptCode(organizationDeptVo.getOrgCode());
}
if (null != salesOrder) {
if (null != busSalesOrderVehicle) {
String customerNumber = "";
//判断财务系统是否有客户
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
String linkNo = "";
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).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 (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
String vinNo = busSalesOrderVehicle.getLinkNo();
if (vinNo.length() > 8) {
linkNo = vinNo.substring(vinNo.length() - 8);
} else {
linkNo = busSalesOrderVehicle.getLinkNo();
}
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo);
}
} else {
linkNo = busSalesOrderVehicle.getLinkNo();
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo());
}
}
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo);
// bdCustomers.add(bdCustomer);
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
}
} else {
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo());
}
}
// bdCustomers.add(bdCustomer);
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
customerNumber = busSalesOrderVehicle.getTemporaryNo();
}
} else {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
voucherDetail.setCustomerCode(customerNumber);
}
voucherDetail.setCustomerCode(customerNumber);
}
voucherDetail.setAmount(v.getDuePushMoney());
voucherDetails.add(voucherDetail);
}
LoanPushFundHistory loanPushFundHistory = new LoanPushFundHistory();
if (null != v.getDuePushMoney()) {
loanPushFundHistory.setFund(v.getDuePushMoney());
}
loanPushFundHistory.setBusVinSid(planDetails.getBusVinSid());
loanPushFundHistory.setUseOrgName(planDetails.getUseOrgName());
loanPushFundHistory.setUseOrgSid(planDetails.getUseOrgSid());
fundHistoryList.add(loanPushFundHistory);
generalVoucher.setVoucherDetails(voucherDetails);
finKingDeeFeign.saveFundVoucher(generalVoucher);
// 生成推送资金占用费历史记录
if (!fundHistoryList.isEmpty()) {
loanPushFundHistoryService.saveLists(fundHistoryList);
}
voucherDetail.setAmount(v.getDuePushMoney());
voucherDetails.add(voucherDetail);
}
LoanPushFundHistory loanPushFundHistory = new LoanPushFundHistory();
BeanUtil.copyProperties(v, loanPushFundHistory, "id", "sid", "fund");
if (null != v.getDuePushMoney()) {
loanPushFundHistory.setFund(v.getDuePushMoney());
}
fundHistoryList.add(loanPushFundHistory);
generalVoucher.setVoucherDetails(voucherDetails);
finKingDeeFeign.saveFundVoucher(generalVoucher);
// 生成推送资金占用费历史记录
if (!fundHistoryList.isEmpty()) {
loanPushFundHistoryService.saveLists(fundHistoryList);
}
}
return rb.success();
}

Loading…
Cancel
Save