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