diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivered/BusDeliveredMapper.xml b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivered/BusDeliveredMapper.xml
index 024d58d78b..84d17362e0 100644
--- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivered/BusDeliveredMapper.xml
+++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivered/BusDeliveredMapper.xml
@@ -632,7 +632,7 @@
+
\ No newline at end of file
diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsRest.java
index aa4ce8f78c..560a7649a3 100644
--- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsRest.java
+++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsRest.java
@@ -1,10 +1,7 @@
package com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails;
-import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails;
-import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsDto;
-import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsFeign;
-import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.MonRepayDetails;
+import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.*;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
@@ -54,4 +51,9 @@ public class LoanRepaymentPlanDetailsRest implements LoanRepaymentPlanDetailsFei
loanRepaymentPlanDetailsService.updateById(entity);
return rb.success();
}
+
+ @Override
+ public ResultBean checkOverDue(String sid) {
+ return loanRepaymentPlanDetailsService.checkOverDue(sid);
+ }
}
diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java
index ec3418c640..cbc7fdf480 100644
--- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java
+++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java
@@ -177,5 +177,11 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService checkOverDue(String sid) {
+ ResultBean rb = ResultBean.fireFail();
+ LoanRepaymentPlanDetailsForOverDue data = baseMapper.checkOverDue(sid);
+ return rb.success().setData(data);
+ }
+
+
}
diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java
index cd751be1a3..5a0062b0f4 100644
--- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java
+++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java
@@ -7,13 +7,26 @@ 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.common.enums.BillTypeEnum;
import com.yxt.anrui.base.common.utils.Rule;
import com.yxt.anrui.base.common.utils.domain.BillNo;
+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.bussalesordervehicle.BusSalesOrderVehicle;
+import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBank;
import com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBankFeign;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordFeign;
+import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
+import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer;
+import com.yxt.anrui.fin.api.kingdee.voucher.GeneralVoucher;
+import com.yxt.anrui.fin.api.kingdee.voucher.PaymentVoucher;
+import com.yxt.anrui.fin.api.kingdee.voucher.SceneCodeEnum;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery;
@@ -30,6 +43,7 @@ import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
+import com.yxt.anrui.riskcenter.api.loanbuckleapplyrecord.LoanBuckleApplyRecord;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFile;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.AppAccrualRecordVo;
@@ -43,6 +57,7 @@ import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.flow.*;
import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord;
import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService;
import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService;
+import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService;
import com.yxt.anrui.riskcenter.biz.loantransferpaymentrecord.LoanTransferPaymentRecordService;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
@@ -100,6 +115,18 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService paymentInit(String[] sids) {
ResultBean rb = ResultBean.fireFail();
@@ -730,6 +757,22 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService(1024), namedThreadFactory, new org.apache.tomcat.util.threads.ThreadPoolExecutor.AbortPolicy());
+ //推送划扣凭证
+ Future future = pool.submit(() -> {
+ pushPaymentVoucher(businessSid);
+ });
+ } catch (Exception e) {
+ e.printStackTrace();
+ log.error("推送数据失败=========================" + e.getMessage());
+ return rb.setMsg("推送数据失败");
+ }
+
}
return rb.success().setData(resultBean.getData());
} else {
@@ -737,6 +780,69 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService records = loanTransferPaymentRecordService.selByMainSid(businessSid);
+ if (!records.isEmpty()) {
+ PaymentVoucher paymentVoucher = new PaymentVoucher();
+ List voucherDetails = new ArrayList<>();
+ for (LoanTransferPaymentRecord v : records) {
+ LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(v.getRepaymentHistorySid());
+ if (null != repaymentHistory) {
+ String planDetailSid = repaymentHistory.getPlanDetailSid();
+ LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(planDetailSid);
+ if (null != planDetails) {
+ PaymentVoucher.PaymentVoucherDetail voucherDetail = new PaymentVoucher.PaymentVoucherDetail();
+ if (null != planDetails.getPaymentMoney()) {
+ if (planDetails.getPaymentMoney().compareTo(BigDecimal.ZERO) > 0) {
+ voucherDetail.setSceneCode(SceneCodeEnum.TRANSFER_VOUCHER2.getCode());
+ } else {
+ voucherDetail.setSceneCode(SceneCodeEnum.TRANSFER_VOUCHER1.getCode());
+ }
+ } else {
+ voucherDetail.setSceneCode(SceneCodeEnum.TRANSFER_VOUCHER1.getCode());
+ }
+ String bankName = loanRepaymentPlanDetailsService.getBankNameByMainOrOtherPolicy(planDetails);
+ if (StringUtils.isNotBlank(bankName)) {
+ voucherDetail.setBankName(bankName);
+ }
+ String useOrgSid = planDetails.getUseOrgSid();
+ SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
+ if (null != organizationVo) {
+ paymentVoucher.setUseOrgCode(organizationVo.getOrgCode());
+ }
+ if (StringUtils.isNotBlank(v.getAccountNumber())) {
+ String accountNumber = v.getAccountNumber();
+ paymentVoucher.setBankAccount(v.getAccountNumber());
+ FinManufacturerBank manufacturerBank = finManufacturerBankFeign.selOneByBankNo(accountNumber, useOrgSid).getData();
+ if (null != manufacturerBank) {
+ paymentVoucher.setPayTypeCode(manufacturerBank.getDueBankKey());
+ }
+ }
+ String deptSid = planDetails.getDeptSid();
+ SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData();
+ if (null != organizationDeptVo) {
+ voucherDetail.setDeptCode(organizationDeptVo.getOrgCode());
+ }
+ String[] split = planDetails.getLoanContractNo().split("-");
+ voucherDetail.setCustomerCode(split[0] + split[1]);
+ BigDecimal money = new BigDecimal(0);
+ if (null != v.getTransferPrincipal()) {
+ money = v.getTransferPrincipal();
+ }
+ if (null != v.getDefaultInterest()) {
+ money = v.getDefaultInterest().add(money);
+ }
+ voucherDetail.setAmount(money);
+ voucherDetails.add(voucherDetail);
+
+ }
+ }
+ }
+ paymentVoucher.setVoucherDetails(voucherDetails);
+ finKingDeeFeign.savePaymentVoucher(paymentVoucher);
+ }
+ }
+
public ResultBean revokeProcess(TransferTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
diff --git a/doc/databases/报表中心.sql b/doc/databases/报表中心.sql
index 8ba08a7e2d..8d3beaf9b7 100644
--- a/doc/databases/报表中心.sql
+++ b/doc/databases/报表中心.sql
@@ -705,6 +705,15 @@ update daily_report r inner join (SELECT SUM(cc.scount) AS scount,
WHERE fd.kxState = '01'
AND fs.auditState = 3
GROUP BY fd.sid
+ UNION ALL
+ SELECT
+ fd.reveivableMoney,
+ fd.busVinSid,0 AS subscriptionMoney
+ FROM anrui_fin.fin_uncollected_receivables_detailed fd
+ left join (select fs.* from anrui_fin.fin_selected_receivables_detailed fs where fs.auditState = 3) s on s.receivablesSid = fd.sid
+ WHERE fd.kxState = '01' and s.id is null
+ GROUP BY
+ fd.sid
) s ON s.busVinSid = bv.sid
LEFT JOIN anrui_portal.sys_organization so ON so.sid = ba.useOrgSid
WHERE ba.nodeState = '已办结'
@@ -747,7 +756,17 @@ update daily_report r inner join (SELECT SUM(cc.scount) AS scount,
ON fs.receivablesSid = fd.sid
WHERE fd.kxState = '01'
AND fs.auditState = 3
- GROUP BY fd.sid) s ON s.busVinSid = bv.sid
+ GROUP BY fd.sid
+ UNION ALL
+ SELECT
+ fd.reveivableMoney,
+ fd.busVinSid,0 AS subscriptionMoney
+ FROM anrui_fin.fin_uncollected_receivables_detailed fd
+ left join (select fs.* from anrui_fin.fin_selected_receivables_detailed fs where fs.auditState = 3) s on s.receivablesSid = fd.sid
+ WHERE fd.kxState = '01' and s.id is null
+ GROUP BY
+ fd.sid
+ ) s ON s.busVinSid = bv.sid
LEFT JOIN anrui_portal.sys_organization so ON so.sid = ba.useOrgSid
WHERE ba.nodeState = '已办结'
AND ba.paymentMethodKey = 1
@@ -817,6 +836,15 @@ update daily_report r inner join (SELECT
AND fs.auditState = 3
GROUP BY
fd.sid
+ UNION ALL
+ SELECT
+ fd.reveivableMoney,
+ fd.busVinSid,0 AS subscriptionMoney
+ FROM anrui_fin.fin_uncollected_receivables_detailed fd
+ left join (select fs.* from anrui_fin.fin_selected_receivables_detailed fs where fs.auditState = 3) s on s.receivablesSid = fd.sid
+ WHERE fd.kxState = '01' and s.id is null
+ GROUP BY
+ fd.sid
) s ON s.busVinSid = bv.sid
LEFT JOIN anrui_portal.sys_organization so ON so.sid = ba.useOrgSid
WHERE
@@ -873,6 +901,15 @@ update daily_report r inner join (SELECT
AND fs.auditState = 3
GROUP BY
fd.sid
+ UNION ALL
+ SELECT
+ fd.reveivableMoney,
+ fd.busVinSid,0 AS subscriptionMoney
+ FROM anrui_fin.fin_uncollected_receivables_detailed fd
+ left join (select fs.* from anrui_fin.fin_selected_receivables_detailed fs where fs.auditState = 3) s on s.receivablesSid = fd.sid
+ WHERE fd.kxState = '01' and s.id is null
+ GROUP BY
+ fd.sid
) s ON s.busVinSid = bv.sid
LEFT JOIN anrui_portal.sys_organization so ON so.sid = ba.useOrgSid
WHERE
@@ -939,6 +976,13 @@ update daily_report r inner join (
and fd.receivablesName = '融资放款'
GROUP BY
fd.sid
+ UNION ALL
+ SELECT
+ fd.reveivableMoney,
+ fd.busVinSid,0 AS subscriptionMoney
+ FROM anrui_fin.fin_uncollected_receivables_detailed fd WHERE fd.kxState = '01' AND fd.receivablesName = '融资放款' AND fd.sid NOT IN (SELECT fs.`receivablesSid` FROM anrui_fin.fin_selected_receivables_detailed fs WHERE fs.`auditState` = 3 AND fs.`receivablesName` = '融资放款')
+ GROUP BY
+ fd.sid
) s ON s.busVinSid = bv.sid
LEFT JOIN anrui_portal.sys_organization so ON so.sid = bo.useOrgSid
where bo.payTypeKey = 2
@@ -995,6 +1039,13 @@ update daily_report r inner join (
AND fd.receivablesName = '融资放款'
GROUP BY
fd.sid
+ UNION ALL
+ SELECT
+ fd.reveivableMoney,
+ fd.busVinSid,0 AS subscriptionMoney
+ FROM anrui_fin.fin_uncollected_receivables_detailed fd WHERE fd.kxState = '01' AND fd.receivablesName = '融资放款' AND fd.sid NOT IN (SELECT fs.`receivablesSid` FROM anrui_fin.fin_selected_receivables_detailed fs WHERE fs.`auditState` = 3 AND fs.`receivablesName` = '融资放款')
+ GROUP BY
+ fd.sid
) s ON s.busVinSid = bv.sid
LEFT JOIN anrui_portal.sys_organization so ON so.sid = bo.useOrgSid
WHERE bo.payTypeKey = 2
diff --git a/doc/databases/报表新增修改.sql b/doc/databases/报表新增修改.sql
index fcab35f8fa..42dd00c09f 100644
--- a/doc/databases/报表新增修改.sql
+++ b/doc/databases/报表新增修改.sql
@@ -24,7 +24,7 @@ UPDATE daily_report r INNER JOIN (SELECT COUNT(id) AS scount, `useOrgSid`, `mode
AND vehicleState <> '0004'
AND vehicleState <> '0007'
AND isDelete <> 1
- AND lockedState <> '04'
+ AND lockedState <> '02'
GROUP BY `useOrgSid`, `modelSid`, `modelConfigSid`) AS s ON
r.useOrgSid = s.useOrgSid AND r.vehModelSid = s.modelSid AND r.vehMConfigSid = s.modelConfigSid
SET r.`stock_unreserve`=s.scount
@@ -36,7 +36,7 @@ UPDATE daily_report r INNER JOIN (SELECT COUNT(id) AS scount, `useOrgSid`, `mode
AND vehicleState <> '0004'
AND vehicleState <> '0007'
AND isDelete <> 1
- AND lockedState = '04'
+ AND lockedState = '02'
GROUP BY `useOrgSid`, `modelSid`, `modelConfigSid`) AS s ON
r.useOrgSid = s.useOrgSid AND r.vehModelSid = s.modelSid AND r.vehMConfigSid = s.modelConfigSid
SET r.`stock_reserve`=s.scount
@@ -52,7 +52,7 @@ UPDATE daily_report r INNER JOIN (SELECT COUNT(id) AS scount, `useOrgSid`, `mode
AND vehicleState <> '0004'
AND vehicleState <> '0007'
AND isDelete <> 1
- AND lockedState <> '04'
+ AND lockedState <> '02'
AND settlementStatus = '2'
GROUP BY `useOrgSid`, `modelSid`, `modelConfigSid`) AS s ON
r.useOrgSid = s.useOrgSid AND r.vehModelSid = s.modelSid AND r.vehMConfigSid = s.modelConfigSid
@@ -65,7 +65,7 @@ UPDATE daily_report r INNER JOIN (SELECT COUNT(id) AS scount, `useOrgSid`, `mode
AND vehicleState <> '0004'
AND vehicleState <> '0007'
AND isDelete <> 1
- AND lockedState = '04'
+ AND lockedState = '02'
AND settlementStatus = '2'
GROUP BY `useOrgSid`, `modelSid`, `modelConfigSid`) AS s ON
r.useOrgSid = s.useOrgSid AND r.vehModelSid = s.modelSid AND r.vehMConfigSid = s.modelConfigSid