Browse Source

Merge remote-tracking branch 'origin/master'

master
yunuo970428 1 year ago
parent
commit
046ea957d7
  1. 1
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusLoancontractForRepayVo.java
  2. 9
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java
  3. 1
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java
  4. 4
      anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportListVo.java
  5. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyDto.java
  6. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleHistoryRecord.java
  7. 3
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapplyrecord/LoanBuckleApplyRecord.java
  8. 7
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/LoanOverdueBankAppDetailsVo.java
  9. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/LoanOverdueFinAppVo.java
  10. 49
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/RepaymentHistoryVoForBuckle.java
  11. 18
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/TransferRecordVo.java
  12. 90
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/utils/CollectorsUtil.java
  13. 8
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/utils/ToBigDecimalFunction.java
  14. 8
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeign.java
  15. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeignFallback.java
  16. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrestorereportapply/LoanRestoreReportApplyDetailsVo.java
  17. 12
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/InboundVo.java
  18. 103
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApply.java
  19. 24
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyDetailsQuery.java
  20. 109
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyDetailsVo.java
  21. 100
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyDto.java
  22. 79
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyFeign.java
  23. 12
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyFeignFallback.java
  24. 60
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyQuery.java
  25. 69
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyVo.java
  26. 21
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnQuery.java
  27. 27
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/ReturnInboundVo.java
  28. 35
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/CompleteReturnInboundDto.java
  29. 26
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/ReturnInboundApplyDelegateQuery.java
  30. 18
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/ReturnInboundApplyNodeQuery.java
  31. 24
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/ReturnInboundApplyNodeVo.java
  32. 43
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/ReturnInboundApplyTaskQuery.java
  33. 19
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/SubmitReturnInbondApplyDto.java
  34. 30
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundtrailer/LoanReturnInboundTrailer.java
  35. 27
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundtrailer/LoanReturnInboundTrailerDto.java
  36. 76
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/LoanReturnVehLedger.java
  37. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionrecord/LoanBeCollectionRecordMapper.xml
  38. 5
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml
  39. 65
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java
  40. 340
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java
  41. 1
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryMapper.java
  42. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryMapper.xml
  43. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryService.java
  44. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfundday/ScheduledLoanFundDayService.java
  45. 12
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebank/LoanOverdueBankMapper.xml
  46. 12
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinMapper.xml
  47. 15
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinService.java
  48. 53
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.xml
  49. 5
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java
  50. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java
  51. 37
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml
  52. 140
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java
  53. 1
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml
  54. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java
  55. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml
  56. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleRest.java
  57. 7
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java
  58. 59
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyMapper.xml
  59. 10
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyService.java
  60. 40
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyMapper.java
  61. 158
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyMapper.xml
  62. 101
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyRest.java
  63. 721
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyService.java
  64. 17
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundtrailer/LoanReturnInboundTrailerMapper.java
  65. 16
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundtrailer/LoanReturnInboundTrailerMapper.xml
  66. 31
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundtrailer/LoanReturnInboundTrailerService.java
  67. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyMapper.xml
  68. 4
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/becollection/AppBeCollectionVehDetailsVo.java
  69. 6
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/overduebank/OverdueBankFeign.java
  70. 10
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/overduebank/OverdueBankVo.java
  71. 25
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/overduebank/flowable/BankDelegateQuery.java
  72. 10
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/overduefin/OverDueFnAppVo.java
  73. 7
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/overduefin/OverdueFinFeign.java
  74. 25
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/overduefin/flowable/FinDelegateQuery.java
  75. 8
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/becollection/BeCollectionService.java
  76. 6
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/overduebank/OverdueBankRest.java
  77. 17
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/overduebank/OverdueBankService.java
  78. 6
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/overduefin/OverdueFinRest.java
  79. 17
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/overduefin/OverdueFinService.java
  80. 138
      doc/databases/risk_center.sql
  81. 19
      doc/databases/统计报表更新.sql

1
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusLoancontractForRepayVo.java

@ -34,4 +34,5 @@ public class BusLoancontractForRepayVo implements Vo {
private String policyName; // 金融产品名称 private String policyName; // 金融产品名称
private String orderSid; private String orderSid;
private String builded; //是否生成还款计划表 private String builded; //是否生成还款计划表
private boolean handleBtn; //ture 可以办理 false 不能
} }

9
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java

@ -65,6 +65,7 @@ import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicyVo;
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameter; import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameter;
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterQuery; import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterQuery;
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterVo; import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterVo;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentSchedule; import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentSchedule;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleFeign; import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleFeign;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions; import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
@ -281,6 +282,7 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService<BusSale
records.removeAll(Collections.singleton(null)); records.removeAll(Collections.singleton(null));
if (!records.isEmpty()) { if (!records.isEmpty()) {
for (BusLoancontractForRepayVo record : records) { for (BusLoancontractForRepayVo record : records) {
record.setHandleBtn(false);
if (StringUtils.isNotBlank(record.getSalesOrderSid())) { if (StringUtils.isNotBlank(record.getSalesOrderSid())) {
List<BusSalesOrderVehicle> busSalesOrderVehicles = busSalesOrderVehicleService.selByLoanContractSid(record.getSalesOrderSid()); List<BusSalesOrderVehicle> busSalesOrderVehicles = busSalesOrderVehicleService.selByLoanContractSid(record.getSalesOrderSid());
busSalesOrderVehicles.removeAll(Collections.singleton(null)); busSalesOrderVehicles.removeAll(Collections.singleton(null));
@ -293,8 +295,15 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService<BusSale
ResultBean<LoanRepaymentSchedule> repaymentSchedule = repaymentScheduleFeign.selByLoanContractSid(record.getSalesOrderSid()); ResultBean<LoanRepaymentSchedule> repaymentSchedule = repaymentScheduleFeign.selByLoanContractSid(record.getSalesOrderSid());
if (repaymentSchedule.getData() != null) { if (repaymentSchedule.getData() != null) {
record.setBuilded("是"); record.setBuilded("是");
List<LoanRepaymentHistory> histories = repaymentScheduleFeign.selHistoryBySid(repaymentSchedule.getData().getSid()).getData();
if (histories.isEmpty() || histories == null) {
record.setHandleBtn(true);
}
} else { } else {
record.setBuilded("否"); record.setBuilded("否");
if (StringUtils.isNotBlank(record.getBankContractNo())) {
record.setHandleBtn(true);
}
} }
} }
} }

1
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java

@ -71,6 +71,7 @@ public enum ProcDefEnum {
LOANVEHCLEARANCEAPPLY("车辆远程解控申请", "process_zbzenr9b:2:7782504"), LOANVEHCLEARANCEAPPLY("车辆远程解控申请", "process_zbzenr9b:2:7782504"),
LOANRESTOREREPORTAPPLY("车辆交回事前报备申请", "process_w796wtt7:1:7822504"), LOANRESTOREREPORTAPPLY("车辆交回事前报备申请", "process_w796wtt7:1:7822504"),
LOANREDEMPTIONAPPLY("车辆交回赎回申请", "process_qu4fq4r6:1:7820004"), LOANREDEMPTIONAPPLY("车辆交回赎回申请", "process_qu4fq4r6:1:7820004"),
LOANRETUENINBOUNDAPPLY("交回车辆入库申请", "process_h0i1vnn8:1:7945004"),
/******************************测试流程id*********************************************/ /******************************测试流程id*********************************************/

4
anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportListVo.java

@ -26,9 +26,9 @@ public class DailyReportListVo {
@ApiModelProperty("本日销售") @ApiModelProperty("本日销售")
private int sale_subtotal_day; private int sale_subtotal_day;
@ApiModelProperty("欠款出库金额") @ApiModelProperty("欠款出库金额")
private int arrears_carry_veh_amount; private String arrears_carry_veh_amount;
@ApiModelProperty("金融未放款金额") @ApiModelProperty("金融未放款金额")
private int loan_not_amount; private String loan_not_amount;
@ApiModelProperty("本日买断") @ApiModelProperty("本日买断")
private int buyout_day; private int buyout_day;

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyDto.java

@ -25,5 +25,5 @@ public class LoanBuckleApplyDto implements Dto {
private String orgPath; private String orgPath;
private List<LoanBuckleFile> files = new ArrayList<>(); private List<LoanBuckleFile> files = new ArrayList<>();
private List<LoanBuckleHistoryRecord> records = new ArrayList<>(); private List<LoanBuckleHistoryRecord> records = new ArrayList<>();
private List<String> historySids = new ArrayList<>();
} }

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleHistoryRecord.java

@ -42,6 +42,6 @@ public class LoanBuckleHistoryRecord {
@ApiModelProperty("实还日期") @ApiModelProperty("实还日期")
private String actualDate; private String actualDate;
private List<List> historySids = new ArrayList<>(); private List<String> historySids = new ArrayList<>();
} }

3
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapplyrecord/LoanBuckleApplyRecord.java

@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/** /**
@ -23,5 +24,7 @@ public class LoanBuckleApplyRecord extends BaseEntity {
private String mainSid; private String mainSid;
@ApiModelProperty("还款记录sid") @ApiModelProperty("还款记录sid")
private String repaymentHistorySid; private String repaymentHistorySid;
@ApiModelProperty("实还金额")
private BigDecimal actualMoney;
} }

7
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/LoanOverdueBankAppDetailsVo.java

@ -1,5 +1,6 @@
package com.yxt.anrui.riskcenter.api.loanoverduebank; package com.yxt.anrui.riskcenter.api.loanoverduebank;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.anrui.riskcenter.api.loanoverduebankdetails.LoanOverdueBankDetailsDto; import com.yxt.anrui.riskcenter.api.loanoverduebankdetails.LoanOverdueBankDetailsDto;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -36,4 +37,10 @@ public class LoanOverdueBankAppDetailsVo {
//逾期客户列表 //逾期客户列表
private List<LoanOverdueBankDetailsAppVo> detailsVoList = new ArrayList<>(); private List<LoanOverdueBankDetailsAppVo> detailsVoList = new ArrayList<>();
@ApiModelProperty(value = "实例id")
private String procInstId;
@ApiModelProperty(value = "taskId")
private String taskId;
} }

6
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/LoanOverdueFinAppVo.java

@ -1,5 +1,6 @@
package com.yxt.anrui.riskcenter.api.loanoverduefin; package com.yxt.anrui.riskcenter.api.loanoverduefin;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.anrui.riskcenter.api.loanoverduefindetails.LoanOverdueFinAppDetailsVo; import com.yxt.anrui.riskcenter.api.loanoverduefindetails.LoanOverdueFinAppDetailsVo;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -34,4 +35,9 @@ public class LoanOverdueFinAppVo {
@ApiModelProperty("逾期客户列表") @ApiModelProperty("逾期客户列表")
private List<LoanOverdueFinAppDetailsVo> detailsVoList = new ArrayList<>(); private List<LoanOverdueFinAppDetailsVo> detailsVoList = new ArrayList<>();
@ApiModelProperty(value = "实例id")
private String procInstId;
@ApiModelProperty(value = "taskId")
private String taskId;
} }

49
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/RepaymentHistoryVoForBuckle.java

@ -0,0 +1,49 @@
package com.yxt.anrui.riskcenter.api.loanrepaymenthistory;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author Fan
* @description
* @date 2024/1/16 13:43
*/
@Data
public class RepaymentHistoryVoForBuckle {
private String sid;
@ApiModelProperty("消贷合同编号")
private String loanContractNo;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("资方合同")
private String bankContractNo;
@ApiModelProperty("资方名称")
private String bankName;
@ApiModelProperty("客户")
private String customer;
@ApiModelProperty("期数")
private String period;
@ApiModelProperty("借款人名称")
private String borrowerName;
@ApiModelProperty("应还日期")
private String dueDate;
@ApiModelProperty("应还金额")
private String dueMoney;
@ApiModelProperty("实还日期")
private String actualDate;
@ApiModelProperty("数据日期")
private String dataTime;
@ApiModelProperty("实还金额")
private BigDecimal actualMoney;
@ApiModelProperty("本期未还金额")
private String outstandingMoney;
@ApiModelProperty("划扣状态")
private String buckle;
@ApiModelProperty("还款方式")
private String returnWay;
private String planDetailSid;
private String updateState; //更新状态
private String updateTime; //更新日期
}

18
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/TransferRecordVo.java

@ -0,0 +1,18 @@
package com.yxt.anrui.riskcenter.api.loanrepaymenthistory;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/1/16 14:30
*/
@Data
public class TransferRecordVo {
private String spread; //息差
private String transferPrincipal; //转付本金
private String defaultInterest; //转付罚息
private String accountType; //转付账户类型
private String account; //转付账户
private String accountNumber; //转付账户账号
}

90
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/utils/CollectorsUtil.java

@ -0,0 +1,90 @@
package com.yxt.anrui.riskcenter.api.loanrepaymenthistory.utils;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.Set;
import java.util.function.BiConsumer;
import java.util.function.BinaryOperator;
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.Collector;
public class CollectorsUtil {
static final Set<Collector.Characteristics> CH_NOID = Collections.emptySet();
private CollectorsUtil() {
}
@SuppressWarnings("unchecked")
private static <I, R> Function<I, R> castingIdentity() {
return i -> (R) i;
}
/**
* Simple implementation class for {@code Collector}.
*
* @param <T>
* the type of elements to be collected
* @param <R>
* the type of the result
*/
static class CollectorImpl<T, A, R> implements Collector<T, A, R> {
private final Supplier<A> supplier;
private final BiConsumer<A, T> accumulator;
private final BinaryOperator<A> combiner;
private final Function<A, R> finisher;
private final Set<Characteristics> characteristics;
CollectorImpl(Supplier<A> supplier, BiConsumer<A, T> accumulator, BinaryOperator<A> combiner,
Function<A, R> finisher, Set<Characteristics> characteristics) {
this.supplier = supplier;
this.accumulator = accumulator;
this.combiner = combiner;
this.finisher = finisher;
this.characteristics = characteristics;
}
CollectorImpl(Supplier<A> supplier, BiConsumer<A, T> accumulator, BinaryOperator<A> combiner,
Set<Characteristics> characteristics) {
this(supplier, accumulator, combiner, castingIdentity(), characteristics);
}
@Override
public BiConsumer<A, T> accumulator() {
return accumulator;
}
@Override
public Supplier<A> supplier() {
return supplier;
}
@Override
public BinaryOperator<A> combiner() {
return combiner;
}
@Override
public Function<A, R> finisher() {
return finisher;
}
@Override
public Set<Characteristics> characteristics() {
return characteristics;
}
}
public static <T> Collector<T, ?, BigDecimal> summingBigDecimal(ToBigDecimalFunction<? super T> mapper) {
return new CollectorImpl<>(() -> new BigDecimal[1], (a, t) -> {
if (a[0] == null) {
a[0] = BigDecimal.ZERO;
}
a[0] = a[0].add(mapper.applyAsBigDecimal(t));
}, (a, b) -> {
a[0] = a[0].add(b[0]);
return a;
}, a -> a[0], CH_NOID);
}
}

8
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/utils/ToBigDecimalFunction.java

@ -0,0 +1,8 @@
package com.yxt.anrui.riskcenter.api.loanrepaymenthistory.utils;
import java.math.BigDecimal;
@FunctionalInterface
public interface ToBigDecimalFunction<T> {
BigDecimal applyAsBigDecimal(T value);
}

8
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeign.java

@ -1,5 +1,6 @@
package com.yxt.anrui.riskcenter.api.loanrepaymentschedule; package com.yxt.anrui.riskcenter.api.loanrepaymentschedule;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationQuery; import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationQuery;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationVo; import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationVo;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
@ -47,11 +48,16 @@ public interface LoanRepaymentScheduleFeign {
@ResponseBody @ResponseBody
public ResultBean<List<LoanCreateScheduleVinOneVo>> viewVinOneSchedule(@RequestParam("salesOrderSid") String salesOrderSid); public ResultBean<List<LoanCreateScheduleVinOneVo>> viewVinOneSchedule(@RequestParam("salesOrderSid") String salesOrderSid);
@ApiOperation("查看单台还款计划表") @ApiOperation("查看还款计划表")
@GetMapping("/selByLoanContractSid") @GetMapping("/selByLoanContractSid")
@ResponseBody @ResponseBody
ResultBean<LoanRepaymentSchedule> selByLoanContractSid(@RequestParam("loanContractSid") String loanContractSid); ResultBean<LoanRepaymentSchedule> selByLoanContractSid(@RequestParam("loanContractSid") String loanContractSid);
@ApiOperation("查看还款计划表")
@GetMapping("/selHistoryBySid")
@ResponseBody
ResultBean<List<LoanRepaymentHistory>> selHistoryBySid(@RequestParam("sid") String sid);
//-------------------------app接口-------------------- //-------------------------app接口--------------------
/** /**

6
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeignFallback.java

@ -1,5 +1,6 @@
package com.yxt.anrui.riskcenter.api.loanrepaymentschedule; package com.yxt.anrui.riskcenter.api.loanrepaymentschedule;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
@ -40,6 +41,11 @@ public class LoanRepaymentScheduleFeignFallback implements LoanRepaymentSchedule
return null; return null;
} }
@Override
public ResultBean<List<LoanRepaymentHistory>> selHistoryBySid(String sid) {
return null;
}
@Override @Override
public ResultBean<PagerVo<AppRepaymentPlanVo>> getRepaymentPlanList(PagerQuery<AppRepaymentPlanQuery> pq) { public ResultBean<PagerVo<AppRepaymentPlanVo>> getRepaymentPlanList(PagerQuery<AppRepaymentPlanQuery> pq) {
return null; return null;

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrestorereportapply/LoanRestoreReportApplyDetailsVo.java

@ -84,6 +84,7 @@ public class LoanRestoreReportApplyDetailsVo implements Vo {
private String bankName; // 资方 private String bankName; // 资方
@ApiModelProperty("资方合同编号") @ApiModelProperty("资方合同编号")
private String bankContractNo; // 资方合同编号 private String bankContractNo; // 资方合同编号
@ApiModelProperty("已还金额") @ApiModelProperty("已还金额")
private String alRepaidMoney; // 已还金额 private String alRepaidMoney; // 已还金额
@ApiModelProperty("当前逾期金额") @ApiModelProperty("当前逾期金额")
@ -100,6 +101,7 @@ public class LoanRestoreReportApplyDetailsVo implements Vo {
private String alRepaidMoneyConPeriod; // 已还金额换算期数 private String alRepaidMoneyConPeriod; // 已还金额换算期数
@ApiModelProperty("逾期金额换算期数") @ApiModelProperty("逾期金额换算期数")
private String beOverdueMoneyAndPeriod; // 逾期金额换算期数 private String beOverdueMoneyAndPeriod; // 逾期金额换算期数
@ApiModelProperty("交回方式key") @ApiModelProperty("交回方式key")
private String restoreTypeKey; // 交回方式key private String restoreTypeKey; // 交回方式key
@ApiModelProperty("交回方式value") @ApiModelProperty("交回方式value")

12
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/InboundVo.java

@ -0,0 +1,12 @@
package com.yxt.anrui.riskcenter.api.loanreturninboundapply;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/16
**/
@Data
public class InboundVo {
}

103
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApply.java

@ -0,0 +1,103 @@
package com.yxt.anrui.riskcenter.api.loanreturninboundapply;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/16
**/
@Data
public class LoanReturnInboundApply extends BaseEntity {
private static final long serialVersionUID = 3057964075133950895L;
@ApiModelProperty("申请部门")
private String createDept;
@ApiModelProperty("申请部门sid")
private String createDeptSid;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车辆sid")
private String vinSid;
@ApiModelProperty("车牌号")
private String vehMark;
@ApiModelProperty("首次登记日期")
private String firstDate;
@ApiModelProperty("车型名称")
private String modelName;
@ApiModelProperty("车型sid")
private String modelSid;
@ApiModelProperty("配置sid")
private String configSid;
@ApiModelProperty("配置名称")
private String configName;
@ApiModelProperty("是否带挂车")
private String tralier;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("客户sid")
private String customerSid;
@ApiModelProperty("贷款人sid")
private String loanSid;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同编号")
private String bankContractNo;
@ApiModelProperty("入库价")
private int inboundMoney;
@ApiModelProperty("停放地点")
private String locationName;
@ApiModelProperty("停放地点sid")
private String locationSid;
@ApiModelProperty("停车收费标准")
private BigDecimal parkFees;
@ApiModelProperty("已还金额")
private BigDecimal alRepaidMoney;
@ApiModelProperty("当前逾期金额")
private BigDecimal currentBeMoney;
@ApiModelProperty("其中资金占用费")
private BigDecimal wheFundOccMoney;
@ApiModelProperty("未到期金额")
private BigDecimal unexpiredMoney;
@ApiModelProperty("总期数")
private String nper;
@ApiModelProperty("当前期数")
private String currentPeriod;
@ApiModelProperty("已还金额换算期数")
private String alRepaidMoneyConPeriod;
@ApiModelProperty("逾期金额换算期数")
private String beOverdueMoneyAndPeriod;
@ApiModelProperty("流程状态")
private String nodeState;
@ApiModelProperty("分公司sid")
private String useOrgSid;
@ApiModelProperty("分公司名称")
private String useOrgName;
@ApiModelProperty("办结日期")
private String closeDate;
@ApiModelProperty("实例id")
private String procInstId;
@ApiModelProperty("流程定义id")
private String procDefId;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("环节id")
private String taskDefKey;
@ApiModelProperty("机构全路径sid")
private String orgSidPath;
private String files;
private String busVinSid;
}

24
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyDetailsQuery.java

@ -0,0 +1,24 @@
package com.yxt.anrui.riskcenter.api.loanreturninboundapply;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/16
**/
@Data
public class LoanReturnInboundApplyDetailsQuery {
@ApiModelProperty("sid")
private String sid;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("机构全路径sid")
private String orgPath;
@ApiModelProperty("选择的要交回的车辆事前报备申请sid")
private String chooseSid;
}

109
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyDetailsVo.java

@ -0,0 +1,109 @@
package com.yxt.anrui.riskcenter.api.loanreturninboundapply;
import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery;
import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailerDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/16
**/
@Data
public class LoanReturnInboundApplyDetailsVo {
private String sid;
@ApiModelProperty("申请部门")
private String createDept;
@ApiModelProperty("申请部门sid")
private String createDeptSid;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("发起日期")
private String createDate;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车辆sid")
private String vinSid;
@ApiModelProperty("车牌号")
private String vehMark;
@ApiModelProperty("首次登记日期")
private String firstDate;
@ApiModelProperty("车型名称")
private String modelName;
@ApiModelProperty("车型sid")
private String modelSid;
@ApiModelProperty("配置sid")
private String configSid;
@ApiModelProperty("配置名称")
private String configName;
@ApiModelProperty("是否带挂车")
private String tralier;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("客户sid")
private String customerSid;
@ApiModelProperty("贷款人sid")
private String loanSid;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同编号")
private String bankContractNo;
@ApiModelProperty("入库价")
private int inboundMoney;
@ApiModelProperty("停放地点")
private String locationName;
@ApiModelProperty("停放地点sid")
private String locationSid;
@ApiModelProperty("停车收费标准")
private String parkFees;
@ApiModelProperty("已还金额")
private String alRepaidMoney;
@ApiModelProperty("当前逾期金额")
private String currentBeMoney;
@ApiModelProperty("其中资金占用费")
private String wheFundOccMoney;
@ApiModelProperty("未到期金额")
private String unexpiredMoney;
@ApiModelProperty("总期数")
private String nper;
@ApiModelProperty("当前期数")
private String currentPeriod;
@ApiModelProperty("已还金额换算期数")
private String alRepaidMoneyConPeriod;
@ApiModelProperty("逾期金额换算期数")
private String beOverdueMoneyAndPeriod;
private String busVinSid;
private String remarks;
private List<UrlQuery> filesList = new ArrayList<>();
private LoanReturnInboundTrailerDto loanReturnInboundTrailer = new LoanReturnInboundTrailerDto();
private String files;
private String orgPath;
private String userSid;
private String useOrgSid;
@ApiModelProperty("车型和配置sid")
private String modelConfigSid;
@ApiModelProperty("销售指导价")
private String guildPrice;
@ApiModelProperty(value = "任务id")
private String taskId;
@ApiModelProperty(value = "流程实例id")
private String procInstId;
}

100
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyDto.java

@ -0,0 +1,100 @@
package com.yxt.anrui.riskcenter.api.loanreturninboundapply;
import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery;
import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailerDto;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/16
**/
@Data
public class LoanReturnInboundApplyDto implements Dto {
private static final long serialVersionUID = 4255302388803244120L;
private String sid;
@ApiModelProperty("申请部门")
private String createDept;
@ApiModelProperty("申请部门sid")
private String createDeptSid;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车辆sid")
private String vinSid;
@ApiModelProperty("车牌号")
private String vehMark;
@ApiModelProperty("首次登记日期")
private String firstDate;
@ApiModelProperty("车型名称")
private String modelName;
@ApiModelProperty("车型sid")
private String modelSid;
@ApiModelProperty("配置sid")
private String configSid;
@ApiModelProperty("配置名称")
private String configName;
@ApiModelProperty("是否带挂车")
private String tralier;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("客户sid")
private String customerSid;
@ApiModelProperty("贷款人sid")
private String loanSid;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同编号")
private String bankContractNo;
@ApiModelProperty("入库价")
private int inboundMoney;
@ApiModelProperty("停放地点")
private String locationName;
@ApiModelProperty("停放地点sid")
private String locationSid;
@ApiModelProperty("停车收费标准")
private String parkFees;
@ApiModelProperty("已还金额")
private String alRepaidMoney;
@ApiModelProperty("当前逾期金额")
private String currentBeMoney;
@ApiModelProperty("其中资金占用费")
private String wheFundOccMoney;
@ApiModelProperty("未到期金额")
private String unexpiredMoney;
@ApiModelProperty("总期数")
private String nper;
@ApiModelProperty("当前期数")
private String currentPeriod;
@ApiModelProperty("已还金额换算期数")
private String alRepaidMoneyConPeriod;
@ApiModelProperty("逾期金额换算期数")
private String beOverdueMoneyAndPeriod;
private String remarks;
@ApiModelProperty("分公司sid")
private String useOrgSid;
@ApiModelProperty("分公司名称")
private String useOrgName;
private List<UrlQuery> filesList = new ArrayList<>();
private LoanReturnInboundTrailerDto loanReturnInboundTrailer;
private String orgPath;
private String userSid;
}

79
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyFeign.java

@ -0,0 +1,79 @@
package com.yxt.anrui.riskcenter.api.loanreturninboundapply;
import com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/16
**/
@FeignClient(
contextId = "anrui-riskcenter-LoanReturnInboundApply",
name = "anrui-riskcenter",
path = "v1/LoanReturnInboundApply",
fallback = LoanReturnInboundApplyFeignFallback.class)
public interface LoanReturnInboundApplyFeign {
@ApiOperation("分页列表")
@PostMapping("/listPage")
ResultBean<PagerVo<LoanReturnInboundApplyVo>> listPage(@RequestBody PagerQuery<LoanReturnInboundApplyQuery> pq);
@ApiOperation("新增或修改")
@PostMapping("/saveOrUpdate")
ResultBean<String> saveOrUpdate(@RequestBody LoanReturnInboundApplyDto dto);
@ApiOperation("详情初始化")
@PostMapping("/details")
ResultBean<LoanReturnInboundApplyDetailsVo> details(LoanReturnInboundApplyDetailsQuery query);
@ApiOperation("可入库交回车辆列表")
@PostMapping("/getInboundList")
ResultBean<PagerVo<ReturnInboundVo>> getInboundList(@RequestBody PagerQuery<LoanReturnQuery> pagerQuery);
@ApiOperation("删除/批量删除")
@DeleteMapping("/delBySids")
ResultBean delBySids(@RequestBody String[] sids);
@ApiOperation("提交")
@PostMapping("/submitApply")
public ResultBean submitApply(@Valid @RequestBody SubmitReturnInbondApplyDto dto);
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody CompleteReturnInboundDto query);
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
ResultBean<List<ReturnInboundApplyNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap ReturnInboundApplyNodeQuery query);
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
ResultBean<List<ReturnInboundApplyNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap ReturnInboundApplyNodeQuery query);
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean taskReject(@Valid @RequestBody ReturnInboundApplyTaskQuery query);
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(@Valid @RequestBody ReturnInboundApplyTaskQuery query);
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@Valid @RequestBody ReturnInboundApplyTaskQuery query);
@ApiOperation(value = "加签")
@PostMapping(value = "/delegate")
public ResultBean delegate(@RequestBody ReturnInboundApplyDelegateQuery query);
}

12
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyFeignFallback.java

@ -0,0 +1,12 @@
package com.yxt.anrui.riskcenter.api.loanreturninboundapply;
import org.springframework.stereotype.Component;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/16
**/
@Component
public class LoanReturnInboundApplyFeignFallback {
}

60
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyQuery.java

@ -0,0 +1,60 @@
package com.yxt.anrui.riskcenter.api.loanreturninboundapply;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/16
**/
@Data
public class LoanReturnInboundApplyQuery implements Query {
private static final long serialVersionUID = -3762567916510710852L;
//分公司
private String useOrgName;
//申请部门
@ApiModelProperty("申请部门")
private String createDept;
//申请人
@ApiModelProperty("申请人")
private String createByName;
//办结日期
@ApiModelProperty("办结日期")
private String closeDateStart;
private String closeDateEnd;
@ApiModelProperty("申请日期")
private String createDateStart;
private String createDateEnd;
//贷款合同编号
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
//车架号
@ApiModelProperty("车架号")
private String vinNo;
//车牌号
@ApiModelProperty("车牌号")
private String vehMark;
//贷款人
@ApiModelProperty("贷款人")
private String loanName;
//资方
@ApiModelProperty("资方")
private String bankName;
//资方合同编号
@ApiModelProperty("资方合同编号")
private String bankContractNo;
//客户名称
@ApiModelProperty("客户名称")
private String customerName;
//是否带挂车
@ApiModelProperty("是否带挂车")
private String tralier;
private String menuUrl;
private String orgPath;
private String userSid;
}

69
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyVo.java

@ -0,0 +1,69 @@
package com.yxt.anrui.riskcenter.api.loanreturninboundapply;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/16
**/
@Data
public class LoanReturnInboundApplyVo {
private String sid;
//流程状态
@ApiModelProperty("流程状态")
private String nodeState;
//分公司
@ApiModelProperty("分公司名称")
private String useOrgName;
//申请部门
@ApiModelProperty("申请部门")
private String createDept;
//申请人
@ApiModelProperty("申请人")
private String createByName;
//申请日期
@ApiModelProperty("申请日期")
private String createDate;
//办结日期
@ApiModelProperty("办结日期")
private String closeDate;
//贷款合同编号
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
//车架号
@ApiModelProperty("车架号")
private String vinNo;
//车牌号
@ApiModelProperty("车牌号")
private String vehMark;
//资方
@ApiModelProperty("资方")
private String bankName;
//资方合同编号
@ApiModelProperty("资方合同编号")
private String bankContractNo;
//客户名称
@ApiModelProperty("客户名称")
private String customerName;
//贷款人
@ApiModelProperty("贷款人")
private String loanName;
//入库价
@ApiModelProperty("入库价")
private int inboundMoney;
//是否带挂车
@ApiModelProperty("是否带挂车")
private String tralier;
@ApiModelProperty("是否允许点击办理,true允许,false不允许")
private boolean allowModify;
private String createBySid;
@ApiModelProperty("流程定义id")
private String procDefId;
@ApiModelProperty("流程实例id")
private String procInstId;
}

21
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnQuery.java

@ -0,0 +1,21 @@
package com.yxt.anrui.riskcenter.api.loanreturninboundapply;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/17
**/
@Data
public class LoanReturnQuery implements Query {
private static final long serialVersionUID = 7803623528380694122L;
private String orgPath;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车牌号")
private String vehMark;
}

27
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/ReturnInboundVo.java

@ -0,0 +1,27 @@
package com.yxt.anrui.riskcenter.api.loanreturninboundapply;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/16
**/
@Data
public class ReturnInboundVo {
private String sid;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车牌号")
private String vehMark;
@ApiModelProperty("车型")
private String modelName;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("贷款人")
private String loanName;
}

35
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/CompleteReturnInboundDto.java

@ -0,0 +1,35 @@
package com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/16
**/
@Data
public class CompleteReturnInboundDto {
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "用户全路径sid")
private String orgSidPath;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id")
@NotBlank(message = "参数错误:instanceId")
private String instanceId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
}

26
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/ReturnInboundApplyDelegateQuery.java

@ -0,0 +1,26 @@
package com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/16
**/
@Data
public class ReturnInboundApplyDelegateQuery {
@ApiModelProperty
private String userSid;
@ApiModelProperty("流程实例id")
// @JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty("任务Id")
private String taskId;
@ApiModelProperty("审批人sid")
private String assignee;
@ApiModelProperty("填写意见")
private String views;
}

18
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/ReturnInboundApplyNodeQuery.java

@ -0,0 +1,18 @@
package com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/16
**/
@Data
public class ReturnInboundApplyNodeQuery {
@ApiModelProperty(value = "环节定义id")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
}

24
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/ReturnInboundApplyNodeVo.java

@ -0,0 +1,24 @@
package com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/16
**/
@Data
public class ReturnInboundApplyNodeVo {
@ApiModelProperty(value = "节点名称")
private String name;
@ApiModelProperty(value = "节点id")
private String id;
@ApiModelProperty(value = "审批组")
private List<String> candidateGroups;
@ApiModelProperty(value = "是否是最后环节")
private String endTask;
}

43
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/ReturnInboundApplyTaskQuery.java

@ -0,0 +1,43 @@
package com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/16
**/
@Data
public class ReturnInboundApplyTaskQuery {
/**
* 终止驳回撤回
*/
@ApiModelProperty("任务Id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
/**
* 终止驳回撤回
*/
@ApiModelProperty("业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
/**
* 终止驳回
*/
@ApiModelProperty("任务意见")
private String comment;
/**
* 终止撤回驳回
*/
@ApiModelProperty("用户Sid")
private String userSid;
/**
* 终止
*/
@ApiModelProperty("流程实例Id")
private String instanceId;
}

19
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/SubmitReturnInbondApplyDto.java

@ -0,0 +1,19 @@
package com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable;
import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/16
**/
@Data
public class SubmitReturnInbondApplyDto extends LoanReturnInboundApplyDto {
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务id")
private String taskId;
}

30
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundtrailer/LoanReturnInboundTrailer.java

@ -0,0 +1,30 @@
package com.yxt.anrui.riskcenter.api.loanreturninboundtrailer;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/16
**/
@Data
public class LoanReturnInboundTrailer extends BaseEntity {
private static final long serialVersionUID = -368716582343073366L;
private String mainSid;
@ApiModelProperty("车辆sid")
private String vinSid;
@ApiModelProperty("车架号")
private String vinNo;
private String vehMark;
@ApiModelProperty("挂车类型")
private String trailerType;
@ApiModelProperty("挂车类型key")
private String trailerTypeKey;
@ApiModelProperty("入库价")
private int inboundMoney;
}

27
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundtrailer/LoanReturnInboundTrailerDto.java

@ -0,0 +1,27 @@
package com.yxt.anrui.riskcenter.api.loanreturninboundtrailer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/16
**/
@Data
public class LoanReturnInboundTrailerDto {
@ApiModelProperty("车辆sid")
private String vinSid;
@ApiModelProperty("车架号")
private String vinNo;
private String vehMark;
@ApiModelProperty("挂车类型")
private String trailerType;
@ApiModelProperty("挂车类型key")
private String trailerTypeKey;
@ApiModelProperty("入库价")
private int inboundMoney;
@ApiModelProperty("备注")
private String remarks;
}

76
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/LoanReturnVehLedger.java

@ -0,0 +1,76 @@
package com.yxt.anrui.riskcenter.api.loanreturnvehledger;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/17
**/
@Data
public class LoanReturnVehLedger extends BaseEntity {
private static final long serialVersionUID = -2097285949752704911L;
@ApiModelProperty("车辆sid")
private String vinSid;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车牌号")
private String vehMark;
@ApiModelProperty("车辆类型")
private String vehType;
@ApiModelProperty("车辆类型key")
private String vehTypeKey;
@ApiModelProperty("车型")
private String vehModel;
@ApiModelProperty("车型sid")
private String vehModelSid;
@ApiModelProperty("配置sid")
private String configSid;
@ApiModelProperty("配置")
private String configName;
@ApiModelProperty("客户名称")
private String customer;
@ApiModelProperty("客户sid")
private String customerSid;
@ApiModelProperty("贷款人")
private String borrowerName;
@ApiModelProperty("贷款人sid")
private String borrowerSid;
@ApiModelProperty("存放地点")
private String location;
@ApiModelProperty("存放地点sid")
private String locationSid;
@ApiModelProperty("处置方式key")
private String disposalKey;
@ApiModelProperty("处置方式")
private String disposal;
@ApiModelProperty("入库价")
private int inboundMoney;
@ApiModelProperty("入库日期")
private Date inboundDate;
@ApiModelProperty("出库日期")
private Date outboundDate;
@ApiModelProperty("分公司sid")
private String useOrgSid;
@ApiModelProperty("分公司名称")
private String useOrgName;
@ApiModelProperty("组织全路径")
private String orgSidPath;
@ApiModelProperty("逾期金额")
private BigDecimal overMoney;
@ApiModelProperty("未到期金额")
private BigDecimal notBecomeDueMoney;
private String pSid;
@ApiModelProperty("销售订单sid")
private String saleOrderSid;
@ApiModelProperty("销售订单车辆sid")
private String busVinSid;
}

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionrecord/LoanBeCollectionRecordMapper.xml

@ -85,7 +85,7 @@
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE())), WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE())),
0 0
) )
), 1) AS beOverdueMoneyAndPeriod ) / a1.dueMoney, 1) AS beOverdueMoneyAndPeriod
FROM FROM
(SELECT (SELECT
lrpd.sid, lrpd.sid,

5
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml

@ -61,7 +61,7 @@
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE())), WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE())),
0 0
) )
), 1) AS beOverdueMoneyAndPeriod, ) / a1.dueMoney, 1) AS beOverdueMoneyAndPeriod,
SUM(a1.yd_dkje) AS advMoney, SUM(a1.yd_dkje) AS advMoney,
SUM(a1.yd_zjzyf) AS fundPossCostMoney, SUM(a1.yd_zjzyf) AS fundPossCostMoney,
a1.riskStaffUserSid, a1.riskStaffUserSid,
@ -192,7 +192,7 @@
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE())), WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE())),
0 0
) )
), 1) AS beOverdueMoneyAndPeriod, ) / a1.dueMoney, 1) AS beOverdueMoneyAndPeriod,
a1.busVinSid AS saleVehSid, a1.busVinSid AS saleVehSid,
a1.salesOrderSid, a1.salesOrderSid,
a1.lockCarState a1.lockCarState
@ -207,6 +207,7 @@
lrpd.borrowerName, lrpd.borrowerName,
lrpd.dueDate, lrpd.dueDate,
lrpd.vehMark, lrpd.vehMark,
lrpd.dueMoney,
( (
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0)) lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))
) AS yq_total, ) AS yq_total,

65
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java

@ -554,11 +554,11 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
checkWord.add("期数不能为空"); checkWord.add("期数不能为空");
break; break;
} }
if (StringUtils.isNotBlank(excelInfo.getPeriod())){ if (StringUtils.isNotBlank(excelInfo.getPeriod())) {
String period = excelInfo.getPeriod(); String period = excelInfo.getPeriod();
Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$"); Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
boolean matches = pattern.matcher(period).matches(); boolean matches = pattern.matcher(period).matches();
if (!matches){ if (!matches) {
checkWord.add("期数必须为数字"); checkWord.add("期数必须为数字");
break; break;
} }
@ -567,11 +567,11 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
checkWord.add("逾期本金不能为空"); checkWord.add("逾期本金不能为空");
break; break;
} }
if (StringUtils.isNotBlank(excelInfo.getBePrincipal())){ if (StringUtils.isNotBlank(excelInfo.getBePrincipal())) {
String bePrincipal = excelInfo.getBePrincipal(); String bePrincipal = excelInfo.getBePrincipal();
Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$"); Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
boolean matches = pattern.matcher(bePrincipal).matches(); boolean matches = pattern.matcher(bePrincipal).matches();
if (!matches){ if (!matches) {
checkWord.add("逾期本金必须为数字"); checkWord.add("逾期本金必须为数字");
break; break;
} }
@ -580,11 +580,11 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
checkWord.add("逾期罚息不能为空"); checkWord.add("逾期罚息不能为空");
break; break;
} }
if (StringUtils.isNotBlank(excelInfo.getBeDefInter())){ if (StringUtils.isNotBlank(excelInfo.getBeDefInter())) {
String beDefInter = excelInfo.getBeDefInter(); String beDefInter = excelInfo.getBeDefInter();
Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$"); Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
boolean matches = pattern.matcher(beDefInter).matches(); boolean matches = pattern.matcher(beDefInter).matches();
if (!matches){ if (!matches) {
checkWord.add("逾期罚息必须为数字"); checkWord.add("逾期罚息必须为数字");
break; break;
} }
@ -848,6 +848,7 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid(); String businessSid = bv.getBusinessSid();
LoanBePadsincereApply loanBePadsincereApply = fetchBySid(businessSid); LoanBePadsincereApply loanBePadsincereApply = fetchBySid(businessSid);
List<LoanBePadsincereVehDetailsVo> loanBePadsincereVehDetailsVos = loanBePadsincereVehService.selByMainSid(loanBePadsincereApply.getSid());
Map<String, Object> variables = new HashMap<>(); Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>(); Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid); appMap.put("sid", businessSid);
@ -871,31 +872,33 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
UpdateFlowFieldVo ufVo = resultBean.getData(); UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
FinPaymentrecordDto finPaymentrecordDto = new FinPaymentrecordDto(); for (LoanBePadsincereVehDetailsVo loanBePadsincereVehDetailsVo : loanBePadsincereVehDetailsVos) {
finPaymentrecordDto.setApplySid(""); FinPaymentrecordDto finPaymentrecordDto = new FinPaymentrecordDto();
finPaymentrecordDto.setPayCompanySid(""); finPaymentrecordDto.setApplySid(loanBePadsincereApply.getSid());
finPaymentrecordDto.setPayType(0); finPaymentrecordDto.setPayCompanySid("");
finPaymentrecordDto.setCreateOrgSid(loanBePadsincereApply.getUseOrgSid()); finPaymentrecordDto.setPayType(1);
finPaymentrecordDto.setUseOrgSid(loanBePadsincereApply.getUseOrgSid()); finPaymentrecordDto.setCreateOrgSid(loanBePadsincereApply.getUseOrgSid());
finPaymentrecordDto.setCostTypeKey(""); finPaymentrecordDto.setUseOrgSid(loanBePadsincereApply.getUseOrgSid());
finPaymentrecordDto.setCostTypeValue(""); finPaymentrecordDto.setCostTypeKey("007");
finPaymentrecordDto.setCostTitleKey(""); finPaymentrecordDto.setCostTypeValue("垫款");
finPaymentrecordDto.setCostTitleValue(""); finPaymentrecordDto.setCostTitleKey("008");
finPaymentrecordDto.setReceiveBank(""); finPaymentrecordDto.setCostTitleValue("月还");
finPaymentrecordDto.setReceiveBankAccount(""); finPaymentrecordDto.setReceiveBank(loanBePadsincereVehDetailsVo.getBankCollectionAcc());
finPaymentrecordDto.setReceiveCompany(""); finPaymentrecordDto.setReceiveBankAccount(loanBePadsincereVehDetailsVo.getBankCollectionNum());
finPaymentrecordDto.setCost(0); finPaymentrecordDto.setReceiveCompany("");
finPaymentrecordDto.setAccountsReceive(0); finPaymentrecordDto.setCost(Integer.parseInt(loanBePadsincereVehDetailsVo.getPadMoney()));
finPaymentrecordDto.setBusSid(""); finPaymentrecordDto.setAccountsReceive(Integer.parseInt(loanBePadsincereVehDetailsVo.getPadMoney()));
finPaymentrecordDto.setPayRemark(loanBePadsincereApply.getPaymentRemarks()); finPaymentrecordDto.setBusSid(loanBePadsincereApply.getSid());
finPaymentrecordDto.setPayCode(""); finPaymentrecordDto.setPayRemark(loanBePadsincereApply.getPaymentRemarks());
finPaymentrecordDto.setCreateBySid(loanBePadsincereApply.getCreateBySid()); finPaymentrecordDto.setPayCode("");
finPaymentrecordDto.setUpdateBySid(loanBePadsincereApply.getCreateBySid()); finPaymentrecordDto.setCreateBySid(loanBePadsincereApply.getCreateBySid());
finPaymentrecordDto.setRemarks(loanBePadsincereApply.getRemarks()); finPaymentrecordDto.setUpdateBySid(loanBePadsincereApply.getCreateBySid());
finPaymentrecordDto.setPurchaseSystemSid(""); finPaymentrecordDto.setRemarks(loanBePadsincereApply.getRemarks());
finPaymentrecordDto.setPurchaseSystemName(""); finPaymentrecordDto.setPurchaseSystemSid("");
finPaymentrecordDto.setBusRemarks(loanBePadsincereApply.getPaymentRemarks()); finPaymentrecordDto.setPurchaseSystemName("");
finPaymentrecordFeign.save(finPaymentrecordDto); finPaymentrecordDto.setBusRemarks(loanBePadsincereApply.getPaymentRemarks());
finPaymentrecordFeign.save(finPaymentrecordDto);
}
} else { } else {
//极光推送 //极光推送
loanBePadsincereApply = fetchBySid(businessSid); loanBePadsincereApply = fetchBySid(businessSid);

340
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java

@ -44,6 +44,7 @@ import com.yxt.anrui.riskcenter.api.loanbuckleapply.app.AppBuckleDetailsVo;
import com.yxt.anrui.riskcenter.api.loanbuckleapply.app.AppRecordVo; import com.yxt.anrui.riskcenter.api.loanbuckleapply.app.AppRecordVo;
import com.yxt.anrui.riskcenter.api.loanbuckleapply.flow.*; import com.yxt.anrui.riskcenter.api.loanbuckleapply.flow.*;
import com.yxt.anrui.riskcenter.api.loanbuckleapplyrecord.LoanBuckleApplyRecord; import com.yxt.anrui.riskcenter.api.loanbuckleapplyrecord.LoanBuckleApplyRecord;
import com.yxt.anrui.riskcenter.api.loanbuckleplanhistory.LoanBucklePlanHistory;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFile; import com.yxt.anrui.riskcenter.api.loanfile.LoanFile;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum; import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualrecord.LoanMonthlyAccrualRecord; import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualrecord.LoanMonthlyAccrualRecord;
@ -51,6 +52,7 @@ import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistoryRecordVo; import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistoryRecordVo;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails;
import com.yxt.anrui.riskcenter.biz.loanbuckleapplyrecord.LoanBuckleApplyRecordService; import com.yxt.anrui.riskcenter.biz.loanbuckleapplyrecord.LoanBuckleApplyRecordService;
import com.yxt.anrui.riskcenter.biz.loanbuckleplanhistory.LoanBucklePlanHistoryService;
import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService; import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService;
import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService; import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService;
import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService;
@ -68,6 +70,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.concurrent.*; import java.util.concurrent.*;
@ -115,6 +118,8 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
private BusSalesOrderFeign busSalesOrderFeign; private BusSalesOrderFeign busSalesOrderFeign;
@Autowired @Autowired
private BasePurchaseSystemFeign basePurchaseSystemFeign; private BasePurchaseSystemFeign basePurchaseSystemFeign;
@Autowired
private LoanBucklePlanHistoryService loanBucklePlanHistoryService;
public PagerVo<LoanBuckleApplyVo> listPage(PagerQuery<LoanBuckleApplyQuery> pq) { public PagerVo<LoanBuckleApplyVo> listPage(PagerQuery<LoanBuckleApplyQuery> pq) {
IPage<LoanBuckleApply> page = PagerUtil.queryToPage(pq); IPage<LoanBuckleApply> page = PagerUtil.queryToPage(pq);
@ -256,7 +261,20 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
LoanBuckleApplyRecord applyRecord = new LoanBuckleApplyRecord(); LoanBuckleApplyRecord applyRecord = new LoanBuckleApplyRecord();
applyRecord.setMainSid(sid); applyRecord.setMainSid(sid);
applyRecord.setRepaymentHistorySid(record.getRecordSid()); applyRecord.setRepaymentHistorySid(record.getRecordSid());
if (StringUtils.isNotBlank(record.getActualMoney())) {
applyRecord.setActualMoney(new BigDecimal(record.getActualMoney()));
}
loanBuckleApplyRecordService.insert(applyRecord); loanBuckleApplyRecordService.insert(applyRecord);
List<String> historySids = record.getHistorySids();
if (!historySids.isEmpty()) {
for (String historySid : historySids) {
LoanBucklePlanHistory loanBucklePlanHistory = new LoanBucklePlanHistory();
loanBucklePlanHistory.setMainSid(sid);
loanBucklePlanHistory.setPlanSid(record.getRecordSid());
loanBucklePlanHistory.setRecordSid(historySid);
loanBucklePlanHistoryService.insert(loanBucklePlanHistory);
}
}
} }
} }
} }
@ -288,12 +306,25 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
LoanBuckleApplyRecord applyRecord = new LoanBuckleApplyRecord(); LoanBuckleApplyRecord applyRecord = new LoanBuckleApplyRecord();
applyRecord.setMainSid(sid); applyRecord.setMainSid(sid);
applyRecord.setRepaymentHistorySid(record.getRecordSid()); applyRecord.setRepaymentHistorySid(record.getRecordSid());
if (StringUtils.isNotBlank(record.getActualMoney())) {
applyRecord.setActualMoney(new BigDecimal(record.getActualMoney()));
}
loanBuckleApplyRecordService.insert(applyRecord); loanBuckleApplyRecordService.insert(applyRecord);
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(record.getRecordSid()); List<String> historySids = record.getHistorySids();
if (null != repaymentHistory) { if (!historySids.isEmpty()) {
repaymentHistory.setBuckle("申请中"); for (String historySid : historySids) {
repaymentHistory.setBuckleKey("002"); LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(historySid);
loanRepaymentHistoryService.updateById(repaymentHistory); if (null != repaymentHistory) {
repaymentHistory.setBuckle("申请中");
repaymentHistory.setBuckleKey("002");
loanRepaymentHistoryService.updateById(repaymentHistory);
}
LoanBucklePlanHistory loanBucklePlanHistory = new LoanBucklePlanHistory();
loanBucklePlanHistory.setMainSid(sid);
loanBucklePlanHistory.setPlanSid(record.getRecordSid());
loanBucklePlanHistory.setRecordSid(historySid);
loanBucklePlanHistoryService.insert(loanBucklePlanHistory);
}
} }
} }
} }
@ -342,14 +373,45 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
List<LoanBuckleApplyRecord> records = loanBuckleApplyRecordService.selByMainSid(sid); List<LoanBuckleApplyRecord> records = loanBuckleApplyRecordService.selByMainSid(sid);
List<LoanBuckleHistoryRecord> recordList = new ArrayList<>(); List<LoanBuckleHistoryRecord> recordList = new ArrayList<>();
if (!records.isEmpty()) { if (!records.isEmpty()) {
for (LoanBuckleApplyRecord record : records) { for (LoanBuckleApplyRecord r : records) {
String historySid = record.getRepaymentHistorySid(); LoanBuckleHistoryRecord record = new LoanBuckleHistoryRecord();
LoanBuckleHistoryRecord historyRecord = new LoanBuckleHistoryRecord(); LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(r.getRepaymentHistorySid());
LoanRepaymentHistoryRecordVo recordVo = loanRepaymentHistoryService.buckleInfo(historySid).getData(); if (null != planDetails) {
if (null != recordVo) { if (StringUtils.isNotBlank(planDetails.getLoanContractNo())) {
BeanUtil.copyProperties(recordVo, historyRecord); record.setLoanContractNo(planDetails.getLoanContractNo());
}
if (StringUtils.isNotBlank(planDetails.getVinNo())) {
record.setVinNo(planDetails.getVinNo());
}
if (StringUtils.isNotBlank(planDetails.getBankName())) {
record.setBankName(planDetails.getBankName());
}
if (StringUtils.isNotBlank(planDetails.getBankContractNo())) {
record.setBankContractNo(planDetails.getBankContractNo());
}
if (StringUtils.isNotBlank(planDetails.getCustomer())) {
record.setCustomer(planDetails.getCustomer());
}
if (StringUtils.isNotBlank(planDetails.getBorrowerName())) {
record.setBorrowerName(planDetails.getBorrowerName());
}
if (StringUtils.isNotBlank(planDetails.getPeriod())) {
record.setPeriod(planDetails.getPeriod());
}
}
if (r.getActualMoney() != null) {
record.setActualMoney(r.getActualMoney().toString());
} }
recordList.add(historyRecord); List<String> strings = loanBucklePlanHistoryService.fetchByMainSidAndPlanSid(sid, r.getRepaymentHistorySid());
record.setHistorySids(strings);
recordList.add(record);
// String historySid = record.getRepaymentHistorySid();
// LoanBuckleHistoryRecord historyRecord = new LoanBuckleHistoryRecord();
// LoanRepaymentHistoryRecordVo recordVo = loanRepaymentHistoryService.buckleInfo(historySid).getData();
// if (null != recordVo) {
// BeanUtil.copyProperties(recordVo, historyRecord);
// }
// recordList.add(historyRecord);
} }
} }
initVo.setRecords(recordList); initVo.setRecords(recordList);
@ -571,15 +633,34 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
List<LoanBuckleApplyRecord> applyRecords = loanBuckleApplyRecordService.selByMainSid(businessSid); List<LoanBuckleApplyRecord> applyRecords = loanBuckleApplyRecordService.selByMainSid(businessSid);
if (!applyRecords.isEmpty()) { if (!applyRecords.isEmpty()) {
for (LoanBuckleApplyRecord applyRecord : applyRecords) { for (LoanBuckleApplyRecord applyRecord : applyRecords) {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid()); List<String> historySids = loanBucklePlanHistoryService.fetchByMainSidAndPlanSid(businessSid, applyRecord.getRepaymentHistorySid());
if (null != repaymentHistory) { if (!historySids.isEmpty()) {
repaymentHistory.setBuckle("审核通过"); historySids.stream().forEach(
repaymentHistory.setBuckleKey("003"); v -> {
repaymentHistory.setClosingDate(new DateTime()); LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(v);
loanRepaymentHistoryService.updateById(repaymentHistory); if (null != repaymentHistory) {
repaymentHistory.setBuckle("审核通过");
repaymentHistory.setBuckleKey("003");
repaymentHistory.setClosingDate(new DateTime());
loanRepaymentHistoryService.updateById(repaymentHistory);
}
}
);
} }
} }
} }
// List<LoanBuckleApplyRecord> applyRecords = loanBuckleApplyRecordService.selByMainSid(businessSid);
// if (!applyRecords.isEmpty()) {
// for (LoanBuckleApplyRecord applyRecord : applyRecords) {
// LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid());
// if (null != repaymentHistory) {
// repaymentHistory.setBuckle("审核通过");
// repaymentHistory.setBuckleKey("003");
// repaymentHistory.setClosingDate(new DateTime());
// loanRepaymentHistoryService.updateById(repaymentHistory);
// }
// }
// }
try { try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build(); .setNameFormat("demo-pool-%d").build();
@ -608,81 +689,77 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
GeneralVoucher generalVoucher = new GeneralVoucher(); GeneralVoucher generalVoucher = new GeneralVoucher();
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>(); List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>();
for (LoanBuckleApplyRecord v : records) { for (LoanBuckleApplyRecord v : records) {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(v.getRepaymentHistorySid()); LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(v.getRepaymentHistorySid());
if (null != repaymentHistory) { if (null != planDetails) {
String planDetailSid = repaymentHistory.getPlanDetailSid(); GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(planDetailSid); String state = loanRepaymentPlanDetailsService.selForPushBuckleVoucher(v.getRepaymentHistorySid());
if (null != planDetails) { if (StringUtils.isNotBlank(state)) {
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); if (state.equals("0")) {
String state = loanRepaymentPlanDetailsService.selForPushBuckleVoucher(planDetailSid); voucherDetail.setSceneCode("03");
if (StringUtils.isNotBlank(state)) { } else if (state.equals("1")) {
if (state.equals("0")) { voucherDetail.setSceneCode("02");
voucherDetail.setSceneCode("03"); } else if (state.equals("2")) {
} else if (state.equals("1")) { voucherDetail.setSceneCode("01");
voucherDetail.setSceneCode("02");
} else if (state.equals("2")) {
voucherDetail.setSceneCode("01");
}
}
String bankName = loanRepaymentPlanDetailsService.getBankNameByMainOrOtherPolicy(planDetails);
if (StringUtils.isNotBlank(bankName)) {
voucherDetail.setBankName(bankName);
} }
String useOrgSid = planDetails.getUseOrgSid(); }
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); String bankName = loanRepaymentPlanDetailsService.getBankNameByMainOrOtherPolicy(planDetails);
if (null != organizationVo) { if (StringUtils.isNotBlank(bankName)) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode()); voucherDetail.setBankName(bankName);
} }
String deptSid = planDetails.getDeptSid(); String useOrgSid = planDetails.getUseOrgSid();
SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData(); SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationDeptVo) { if (null != organizationVo) {
voucherDetail.setDeptCode(organizationDeptVo.getOrgCode()); generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
} }
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(planDetails.getBusVinSid()).getData(); String deptSid = planDetails.getDeptSid();
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(planDetails.getSalesOrderSid()).getData(); SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData();
if (null != salesOrder) { if (null != organizationDeptVo) {
if (null != busSalesOrderVehicle) { voucherDetail.setDeptCode(organizationDeptVo.getOrgCode());
String customerNumber = ""; }
//判断财务系统是否有客户 BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(planDetails.getBusVinSid()).getData();
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData(); BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(planDetails.getSalesOrderSid()).getData();
String linkNo = ""; if (null != salesOrder) {
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData(); if (null != busSalesOrderVehicle) {
if (!aBoolean) { String customerNumber = "";
// List<BdCustomer> bdCustomers = new ArrayList<>(); //判断财务系统是否有客户
BdCustomer bdCustomer = new BdCustomer(); Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo()); String linkNo = "";
bdCustomer.setFShortName(salesOrder.getContractNo()); BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData(); if (!aBoolean) {
bdCustomer.setTOrgIds(data.getOrgCode()); // List<BdCustomer> bdCustomers = new ArrayList<>();
if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) { BdCustomer bdCustomer = new BdCustomer();
String vinNo = busSalesOrderVehicle.getLinkNo(); bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo());
if (vinNo.length() > 8) { bdCustomer.setFShortName(salesOrder.getContractNo());
linkNo = vinNo.substring(vinNo.length() - 8); BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData();
} else { bdCustomer.setTOrgIds(data.getOrgCode());
linkNo = busSalesOrderVehicle.getLinkNo(); if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
} String vinNo = busSalesOrderVehicle.getLinkNo();
if (null != borrowerDetailsVo) { if (vinNo.length() > 8) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo); linkNo = vinNo.substring(vinNo.length() - 8);
}
} else { } else {
if (null != borrowerDetailsVo) { linkNo = busSalesOrderVehicle.getLinkNo();
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo());
}
} }
// bdCustomers.add(bdCustomer); if (null != borrowerDetailsVo) {
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer); bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
} }
} else { } else {
customerNumber = busSalesOrderVehicle.getTemporaryNo(); if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo());
}
} }
voucherDetail.setCustomerCode(customerNumber); // bdCustomers.add(bdCustomer);
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
}
} else {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
} }
voucherDetail.setCustomerCode(customerNumber);
} }
voucherDetail.setAmount(repaymentHistory.getActualMoney());
voucherDetails.add(voucherDetail);
} }
voucherDetail.setAmount(v.getActualMoney());
voucherDetails.add(voucherDetail);
} }
} }
generalVoucher.setVoucherDetails(voucherDetails); generalVoucher.setVoucherDetails(voucherDetails);
@ -817,14 +894,32 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
List<LoanBuckleApplyRecord> applyRecords = loanBuckleApplyRecordService.selByMainSid(query.getBusinessSid()); List<LoanBuckleApplyRecord> applyRecords = loanBuckleApplyRecordService.selByMainSid(query.getBusinessSid());
if (!applyRecords.isEmpty()) { if (!applyRecords.isEmpty()) {
for (LoanBuckleApplyRecord applyRecord : applyRecords) { for (LoanBuckleApplyRecord applyRecord : applyRecords) {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid()); List<String> historySids = loanBucklePlanHistoryService.fetchByMainSidAndPlanSid(query.getBusinessSid(), applyRecord.getRepaymentHistorySid());
if (null != repaymentHistory) { if (!historySids.isEmpty()) {
repaymentHistory.setBuckle("审核未通过"); historySids.stream().forEach(
repaymentHistory.setBuckleKey("004"); v -> {
loanRepaymentHistoryService.updateById(repaymentHistory); LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(v);
if (null != repaymentHistory) {
repaymentHistory.setBuckle("审核未通过");
repaymentHistory.setBuckleKey("004");
loanRepaymentHistoryService.updateById(repaymentHistory);
}
}
);
} }
} }
} }
// List<LoanBuckleApplyRecord> applyRecords = loanBuckleApplyRecordService.selByMainSid(query.getBusinessSid());
// if (!applyRecords.isEmpty()) {
// for (LoanBuckleApplyRecord applyRecord : applyRecords) {
// LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid());
// if (null != repaymentHistory) {
// repaymentHistory.setBuckle("审核未通过");
// repaymentHistory.setBuckleKey("004");
// loanRepaymentHistoryService.updateById(repaymentHistory);
// }
// }
// }
} }
return rb.success().setData(resultBean.getData()); return rb.success().setData(resultBean.getData());
} else { } else {
@ -843,16 +938,22 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
List<LoanBuckleApplyRecord> applyRecords = loanBuckleApplyRecordService.selByMainSid(query.getBusinessSid()); List<LoanBuckleApplyRecord> applyRecords = loanBuckleApplyRecordService.selByMainSid(query.getBusinessSid());
if (!applyRecords.isEmpty()) { if (!applyRecords.isEmpty()) {
for (LoanBuckleApplyRecord applyRecord : applyRecords) { for (LoanBuckleApplyRecord applyRecord : applyRecords) {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid()); List<String> historySids = loanBucklePlanHistoryService.fetchByMainSidAndPlanSid(query.getBusinessSid(), applyRecord.getRepaymentHistorySid());
if (null != repaymentHistory) { if (!historySids.isEmpty()) {
repaymentHistory.setBuckle("审核未通过"); historySids.stream().forEach(
repaymentHistory.setBuckleKey("004"); v -> {
loanRepaymentHistoryService.updateById(repaymentHistory); LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(v);
if (null != repaymentHistory) {
repaymentHistory.setBuckle("审核未通过");
repaymentHistory.setBuckleKey("004");
loanRepaymentHistoryService.updateById(repaymentHistory);
}
}
);
} }
} }
} }
} }
return rb.success().setData(resultBean.getData()); return rb.success().setData(resultBean.getData());
} }
} }
@ -964,8 +1065,8 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
List<AppRecordVo> records = new ArrayList<>(); List<AppRecordVo> records = new ArrayList<>();
if (!applyRecords.isEmpty()) { if (!applyRecords.isEmpty()) {
for (LoanBuckleApplyRecord applyRecord : applyRecords) { for (LoanBuckleApplyRecord applyRecord : applyRecords) {
String historySid = applyRecord.getRepaymentHistorySid(); String planSid = applyRecord.getRepaymentHistorySid();
LoanRepaymentHistoryRecordVo data = loanRepaymentHistoryService.buckleInfo(historySid).getData(); LoanRepaymentPlanDetails data = loanRepaymentPlanDetailsService.fetchBySid(planSid);
if (null != data) { if (null != data) {
AppRecordVo appRecordVo = new AppRecordVo(); AppRecordVo appRecordVo = new AppRecordVo();
if (StringUtils.isNotBlank(data.getLoanContractNo())) { if (StringUtils.isNotBlank(data.getLoanContractNo())) {
@ -977,9 +1078,7 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
if (StringUtils.isNotBlank(data.getVinNo())) { if (StringUtils.isNotBlank(data.getVinNo())) {
appRecordVo.setVin("车架号:" + data.getVinNo()); appRecordVo.setVin("车架号:" + data.getVinNo());
} }
if (StringUtils.isNotBlank(data.getReturnWay())) { appRecordVo.setType("");
appRecordVo.setType(data.getReturnWay());
}
if (StringUtils.isNotBlank(data.getBankName())) { if (StringUtils.isNotBlank(data.getBankName())) {
appRecordVo.setZf(data.getBankName()); appRecordVo.setZf(data.getBankName());
} }
@ -992,27 +1091,11 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
if (StringUtils.isNotBlank(data.getBorrowerName())) { if (StringUtils.isNotBlank(data.getBorrowerName())) {
appRecordVo.setLoanName(data.getBorrowerName()); appRecordVo.setLoanName(data.getBorrowerName());
} }
// if (StringUtils.isNotBlank(data.getDueDate())) {
// appRecordVo.setRepaymentDate(data.getDueDate());
// }
String yinghuan = "";
String weihuan = "";
String shihuan = "";
String shihuandate = "";
// if (StringUtils.isNotBlank(data.getDueMoney())) {
// yinghuan = data.getDueMoney();
// }
// if (StringUtils.isNotBlank(data.getOutstandingMoney())) {
// weihuan = data.getOutstandingMoney();
// }
if (StringUtils.isNotBlank(data.getActualDate())) {
shihuandate = data.getActualDate();
}
if (StringUtils.isNotBlank(data.getActualMoney())) {
shihuan = data.getActualMoney();
}
appRecordVo.setInfo1(""); appRecordVo.setInfo1("");
appRecordVo.setInfo2("实还日期:" + shihuandate + ",实还金额:" + shihuan); if (applyRecord.getActualMoney() != null) {
String shihuan = applyRecord.getActualMoney().toString();
appRecordVo.setInfo2("实还金额:" + shihuan);
}
records.add(appRecordVo); records.add(appRecordVo);
} }
} }
@ -1039,11 +1122,18 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
List<LoanBuckleApplyRecord> applyRecords = loanBuckleApplyRecordService.selByMainSid(sid); List<LoanBuckleApplyRecord> applyRecords = loanBuckleApplyRecordService.selByMainSid(sid);
if (!applyRecords.isEmpty()) { if (!applyRecords.isEmpty()) {
for (LoanBuckleApplyRecord applyRecord : applyRecords) { for (LoanBuckleApplyRecord applyRecord : applyRecords) {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid()); List<String> historySids = loanBucklePlanHistoryService.fetchByMainSidAndPlanSid(sid, applyRecord.getRepaymentHistorySid());
if (null != repaymentHistory) { if (!historySids.isEmpty()) {
repaymentHistory.setBuckle("未申请"); historySids.stream().forEach(
repaymentHistory.setBuckleKey("001"); v -> {
loanRepaymentHistoryService.updateById(repaymentHistory); LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(v);
if (null != repaymentHistory) {
repaymentHistory.setBuckle("未申请");
repaymentHistory.setBuckleKey("001");
loanRepaymentHistoryService.updateById(repaymentHistory);
}
}
);
} }
} }
} }

1
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryMapper.java

@ -12,4 +12,5 @@ import java.util.List;
@Mapper @Mapper
public interface LoanBucklePlanHistoryMapper extends BaseMapper<LoanBucklePlanHistory> { public interface LoanBucklePlanHistoryMapper extends BaseMapper<LoanBucklePlanHistory> {
List<String> fetchByMainSidAndPlanSid(@Param("sid") String sid, @Param("repaymentHistorySid") String repaymentHistorySid);
} }

6
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryMapper.xml

@ -3,4 +3,10 @@
<mapper namespace="com.yxt.anrui.riskcenter.biz.loanbuckleplanhistory.LoanBucklePlanHistoryMapper"> <mapper namespace="com.yxt.anrui.riskcenter.biz.loanbuckleplanhistory.LoanBucklePlanHistoryMapper">
<select id="fetchByMainSidAndPlanSid" resultType="java.lang.String">
SELECT recordSid
FROM loan_buckle_plan_history
WHERE mainSid = #{sid}
AND planSid = #{repaymentHistorySid}
</select>
</mapper> </mapper>

3
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryService.java

@ -16,4 +16,7 @@ import java.util.List;
public class LoanBucklePlanHistoryService extends MybatisBaseService<LoanBucklePlanHistoryMapper, LoanBucklePlanHistory> { public class LoanBucklePlanHistoryService extends MybatisBaseService<LoanBucklePlanHistoryMapper, LoanBucklePlanHistory> {
public List<String> fetchByMainSidAndPlanSid(String sid, String repaymentHistorySid) {
return baseMapper.fetchByMainSidAndPlanSid(sid,repaymentHistorySid);
}
} }

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfundday/ScheduledLoanFundDayService.java

@ -33,7 +33,7 @@ public class ScheduledLoanFundDayService {
private FinUncollectedReceivablesDetailedJRFeign finUncollectedReceivablesDetailedJRFeign; private FinUncollectedReceivablesDetailedJRFeign finUncollectedReceivablesDetailedJRFeign;
// @Scheduled(cron = "0 0 0 * * ?") @Scheduled(cron = "0 0 0 * * ?")
public void loanFundDayScheduled() { public void loanFundDayScheduled() {
/** /**
* 每天晚上12点遍历还款计划表中的公司垫款余额按照以下规则计算 * 每天晚上12点遍历还款计划表中的公司垫款余额按照以下规则计算

12
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebank/LoanOverdueBankMapper.xml

@ -106,11 +106,13 @@
<select id="getAppDetails" resultType="com.yxt.anrui.riskcenter.api.loanoverduebank.LoanOverdueBankAppDetailsVo"> <select id="getAppDetails" resultType="com.yxt.anrui.riskcenter.api.loanoverduebank.LoanOverdueBankAppDetailsVo">
select lb.createDept, select lb.createDept,
lb.createByName, lb.createByName,
DATE_FORMAT(lb.createTime, '%Y-%m-%d') as createDate, DATE_FORMAT(lb.createTime, '%Y-%m-%d') as createDate,
lb.stopDate, lb.stopDate,
lb.remarks, lb.remarks,
lb.files lb.files,
lb.procInstId,
lb.taskId
from loan_overdue_bank lb from loan_overdue_bank lb
where lb.sid = #{sid} where lb.sid = #{sid}
</select> </select>

12
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinMapper.xml

@ -96,11 +96,13 @@
<select id="getAppDetails" resultType="com.yxt.anrui.riskcenter.api.loanoverduefin.LoanOverdueFinAppVo"> <select id="getAppDetails" resultType="com.yxt.anrui.riskcenter.api.loanoverduefin.LoanOverdueFinAppVo">
select lf.createDept, select lf.createDept,
lf.createByName, lf.createByName,
date_format(lf.createTime, '%Y-%m-%d') as createDate, date_format(lf.createTime, '%Y-%m-%d') as createDate,
lf.stopDate, lf.stopDate,
lf.remarks, lf.remarks,
lf.files lf.files,
lf.procInstId,
lf.taskId
from loan_overdue_fin lf from loan_overdue_fin lf
where lf.sid = #{sid} where lf.sid = #{sid}
</select> </select>

15
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinService.java

@ -223,15 +223,22 @@ public class LoanOverdueFinService extends MybatisBaseService<LoanOverdueFinMapp
BeanUtil.copyProperties(dto, loanOverdueFin, "sid"); BeanUtil.copyProperties(dto, loanOverdueFin, "sid");
// List<String> filesList = dto.getFilesList(); // List<String> filesList = dto.getFilesList();
List<UrlQuery> filss = dto.getFilesList(); List<UrlQuery> filss = dto.getFilesList();
List<String> filesList = filss.stream().map(v -> v.getUrl()).collect(Collectors.toList()); if (!filss.isEmpty()) {
if (!filesList.isEmpty()) { List<String> filesList = filss.stream().map(v -> v.getUrl()).collect(Collectors.toList());
String files = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); if (!filesList.isEmpty()) {
loanOverdueFin.setFiles(files); String files = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), "");
loanOverdueFin.setFiles(files);
}
} else {
loanOverdueFin.setFiles("");
} }
List<LoanOverdueFinDetailsDto> detailsVoList = dto.getDetailsVoList(); List<LoanOverdueFinDetailsDto> detailsVoList = dto.getDetailsVoList();
detailsVoList.removeAll(Collections.singleton(null)); detailsVoList.removeAll(Collections.singleton(null));
if (!detailsVoList.isEmpty()) { if (!detailsVoList.isEmpty()) {
loanOverdueFinDetailsService.saveOrUpdateDetails(detailsVoList, loanOverdueFin.getSid()); loanOverdueFinDetailsService.saveOrUpdateDetails(detailsVoList, loanOverdueFin.getSid());
}else{
loanOverdueFinDetailsService.deleteByMainSid(sid);
} }
baseMapper.updateById(loanOverdueFin); baseMapper.updateById(loanOverdueFin);
} }

53
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.xml

@ -53,38 +53,31 @@
v.borrowerName, v.borrowerName,
v.vehType, v.vehType,
(SELECT c.bankName FROM anrui_buscenter.bus_sales_order_loancontract as c WHERE c.sid = (SELECT c.bankName FROM anrui_buscenter.bus_sales_order_loancontract as c WHERE c.sid =
(SELECT b.loanContractSid FROM anrui_buscenter.bus_sales_order_vehicle as b WHERE b.linkSid = v.vinSid and (SELECT b.loanContractSid FROM anrui_buscenter.bus_sales_order_vehicle as b WHERE b.sid = v.busVinSid)) as
b.borrowerSid = v.borrowerSid)) as bankName bankName
FROM loan_return_veh_ledger as v FROM loan_return_veh_ledger as v
<where> <where>
${ew.sqlSegment} ${ew.sqlSegment}
</where> </where>
</select> </select>
<select id="redemptionInit" resultType="com.yxt.anrui.riskcenter.api.loanredemptionapply.RedemptionInitVo"> <select id="redemptionInit" resultType="com.yxt.anrui.riskcenter.api.loanredemptionapply.RedemptionInitVo">
SELECT a.*, SELECT v.sid ledgerSid,
c.bankName, v.vinNo,
c.bankContractNo, v.vinSid,
c.loanContractNo v.vehMark,
FROM (SELECT v.sid ledgerSid, v.vehModel,
v.vinNo, v.customer,
v.vinSid, v.vehType,
v.vehMark, v.location,
v.vehModel, v.borrowerName,
v.customer, v.busVinSid,
v.vehType, l.bankContractNo,
v.location, l.loanContractNo,
v.borrowerName, l.bankName
(SELECT b.sid FROM loan_return_veh_ledger as v
FROM anrui_buscenter.bus_sales_order_vehicle as b LEFT JOIN anrui_buscenter.bus_sales_order_vehicle as b ON v.busVinSid = b.sid
WHERE b.linkSid = v.vinSid LEFT JOIN anrui_buscenter.bus_sales_order_loancontract as l ON l.sid = b.loanContractSid
and b.borrowerSid = v.borrowerSid) as busVinSid, WHERE v.sid = #{ledgerSid}
(SELECT b.loanContractSid
FROM anrui_buscenter.bus_sales_order_vehicle as b
WHERE b.linkSid = v.vinSid
and b.borrowerSid = v.borrowerSid) as loanContractSid
FROM loan_return_veh_ledger as v) a
LEFT JOIN anrui_buscenter.bus_sales_order_loancontract as c ON c.sid = a.loanContractSid
WHERE a.ledgerSid = #{ledgerSid}
</select> </select>
<select id="selTrailerByLedgerSid" <select id="selTrailerByLedgerSid"
resultType="com.yxt.anrui.riskcenter.api.loanredemptionapply.RedemptionVinList"> resultType="com.yxt.anrui.riskcenter.api.loanredemptionapply.RedemptionVinList">
@ -93,12 +86,12 @@
vehMark, vehMark,
vehType, vehType,
vehModel vehModel
FROM loan_return_trailer_ledger as t FROM loan_return_veh_ledger as t
WHERE t.mainSid = #{ledgerSid} WHERE t.pSid = #{ledgerSid}
</select> </select>
<select id="selTrailerByMainLedgerSid" resultType="java.lang.String"> <select id="selTrailerByMainLedgerSid" resultType="java.lang.String">
SELECT sid SELECT sid
FROM loan_return_trailer_ledger as t FROM loan_return_veh_ledger as t
WHERE t.mainSid = #{ledgerSid} WHERE t.pSid = #{ledgerSid}
</select> </select>
</mapper> </mapper>

5
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java

@ -214,7 +214,7 @@ public class LoanRedemptionApplyService extends MybatisBaseService<LoanRedemptio
); );
qw.eq("a.isDelete", 0); qw.eq("a.isDelete", 0);
qw.orderByDesc("a.createTime"); qw.orderByDesc("a.createTime");
qw.eq("v.vehType", "0"); qw.eq("v.vehType", "主车");
IPage<LoanRedemptionApplyVo> pagging = baseMapper.listPage(page, qw); IPage<LoanRedemptionApplyVo> pagging = baseMapper.listPage(page, qw);
PagerVo<LoanRedemptionApplyVo> p = PagerUtil.pageToVo(pagging, null); PagerVo<LoanRedemptionApplyVo> p = PagerUtil.pageToVo(pagging, null);
return p; return p;
@ -241,7 +241,8 @@ public class LoanRedemptionApplyService extends MybatisBaseService<LoanRedemptio
qw.eq("v.isDelete", 0); qw.eq("v.isDelete", 0);
qw.orderByDesc("v.createTime"); qw.orderByDesc("v.createTime");
qw.eq("v.stockState", "库存"); qw.eq("v.stockState", "库存");
qw.eq("disposal", "未处置"); qw.eq("v.disposal", "未处置");
qw.eq("v.vehType","主车");
IPage<VinListVo> pagging = baseMapper.getVinList(page, qw); IPage<VinListVo> pagging = baseMapper.getVinList(page, qw);
PagerVo<VinListVo> p = PagerUtil.pageToVo(pagging, null); PagerVo<VinListVo> p = PagerUtil.pageToVo(pagging, null);
return p; return p;

4
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java

@ -38,7 +38,7 @@ public interface LoanRepaymentHistoryMapper extends BaseMapper<LoanRepaymentHist
List<String> selUpdateStateList(@Param(Constants.WRAPPER) QueryWrapper<LoanRepaymentHistory> qw); List<String> selUpdateStateList(@Param(Constants.WRAPPER) QueryWrapper<LoanRepaymentHistory> qw);
List<LoanRepaymentHistoryVo> selbuckleNewInitList(@Param(Constants.WRAPPER) QueryWrapper<LoanRepaymentHistory> qw); List<RepaymentHistoryVoForBuckle> selbuckleNewInitList(@Param(Constants.WRAPPER) QueryWrapper<LoanRepaymentHistory> qw);
IPage<TransferPaymentVo> transferPaymentList(IPage<LoanRepaymentHistory> page, @Param(Constants.WRAPPER) QueryWrapper<LoanRepaymentHistory> qw); IPage<TransferPaymentVo> transferPaymentList(IPage<LoanRepaymentHistory> page, @Param(Constants.WRAPPER) QueryWrapper<LoanRepaymentHistory> qw);
@ -51,4 +51,6 @@ public interface LoanRepaymentHistoryMapper extends BaseMapper<LoanRepaymentHist
List<RepaymentStatisticsExportVo> repaymentStatisticsExport(@Param(Constants.WRAPPER) QueryWrapper<LoanRepaymentHistory> qw); List<RepaymentStatisticsExportVo> repaymentStatisticsExport(@Param(Constants.WRAPPER) QueryWrapper<LoanRepaymentHistory> qw);
String getMaxUpdateTimeByBankContractNo(@Param("bankContractNo") String bankContractNo); String getMaxUpdateTimeByBankContractNo(@Param("bankContractNo") String bankContractNo);
TransferRecordVo selTransferRecord(@Param("sid") String sid);
} }

37
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml

@ -101,6 +101,7 @@
from loan_repayment_history from loan_repayment_history
where planDetailSid = #{planSid} where planDetailSid = #{planSid}
and returnWayKey != '02' and returnWayKey != '02'
and updateState = '1'
</select> </select>
<select id="selUpdateStateList" resultType="java.lang.String"> <select id="selUpdateStateList" resultType="java.lang.String">
SELECT SELECT
@ -113,7 +114,7 @@
</where> </where>
</select> </select>
<select id="selbuckleNewInitList" <select id="selbuckleNewInitList"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistoryVo"> resultType="com.yxt.anrui.riskcenter.api.loanrepaymenthistory.RepaymentHistoryVoForBuckle">
SELECT SELECT
h.sid, h.sid,
p.loanContractNo, p.loanContractNo,
@ -155,18 +156,18 @@
date_format(h.actualDate, '%Y-%m-%d') AS actualDate, date_format(h.actualDate, '%Y-%m-%d') AS actualDate,
h.actualMoney, h.actualMoney,
h.planDetailSid, h.planDetailSid,
r.spread, -- r.spread,
r.transferPrincipal, -- r.transferPrincipal,
r.defaultInterest, -- r.defaultInterest,
r.accountType, -- r.accountType,
r.account, -- r.account,
r.accountNumber, -- r.accountNumber,
date_format(h.transferDate, '%Y-%m-%d') AS transferDate, date_format(h.transferDate, '%Y-%m-%d') AS transferDate,
date_format(h.prepareDate, '%Y-%m-%d') AS prepareDate date_format(h.prepareDate, '%Y-%m-%d') AS prepareDate
FROM FROM
loan_repayment_history AS h loan_repayment_history AS h
LEFT JOIN loan_repayment_plan_details AS p ON h.planDetailSid = p.sid LEFT JOIN loan_repayment_plan_details AS p ON h.planDetailSid = p.sid
LEFT JOIN loan_transfer_payment_record AS r ON h.sid = r.repaymentHistorySid -- LEFT JOIN loan_transfer_payment_record AS r ON h.sid = r.repaymentHistorySid
LEFT JOIN loan_solutions as s ON p.salesOrderSid = s.salesOrderSid LEFT JOIN loan_solutions as s ON p.salesOrderSid = s.salesOrderSid
LEFT JOIN loan_fin_policy as po ON s.policySid = po.sid LEFT JOIN loan_fin_policy as po ON s.policySid = po.sid
LEFT JOIN loan_fin_bank as b ON b.sid = po.bankSid LEFT JOIN loan_fin_bank as b ON b.sid = po.bankSid
@ -178,7 +179,8 @@
resultType="com.yxt.anrui.riskcenter.api.loanrepaymenthistory.RepaymentStatisticsVo"> resultType="com.yxt.anrui.riskcenter.api.loanrepaymenthistory.RepaymentStatisticsVo">
SELECT DISTINCT SELECT DISTINCT
a.*, a.*,
(SELECT c.bankBeInter FROM loan_be_padsincere_veh as c WHERE c.saleVehSid = a.busVinSid AND c.period = a.period) as bankBeInter (SELECT c.bankBeInter FROM loan_be_padsincere_veh as c WHERE c.saleVehSid = a.busVinSid AND c.period = a.period)
as bankBeInter
FROM FROM
( (
SELECT SELECT
@ -354,9 +356,8 @@
</where> </where>
</select> </select>
<select id="getMaxUpdateTimeByBankContractNo" resultType="java.lang.String"> <select id="getMaxUpdateTimeByBankContractNo" resultType="java.lang.String">
SELECT SELECT MAX(h.actualDate)
MAX(h.actualDate) as updateTime
as updateTime
FROM loan_repayment_history AS h FROM loan_repayment_history AS h
LEFT JOIN loan_repayment_plan_details AS p LEFT JOIN loan_repayment_plan_details AS p
ON h.planDetailSid = p.sid ON h.planDetailSid = p.sid
@ -364,5 +365,17 @@
AND h.returnWayKey = '01' AND h.returnWayKey = '01'
AND p.bankContractNo = #{bankContractNo} AND p.bankContractNo = #{bankContractNo}
</select> </select>
<select id="selTransferRecord"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymenthistory.TransferRecordVo">
SELECT r.spread,
r.transferPrincipal,
r.defaultInterest,
r.accountType,
r.account,
r.accountNumber
FROM loan_transfer_payment_record AS r
where r.repaymentHistorySid = #{sid}
and r.state = 1
</select>
</mapper> </mapper>

140
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java

@ -2,6 +2,7 @@ package com.yxt.anrui.riskcenter.biz.loanrepaymenthistory;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.math.Money;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.google.common.util.concurrent.ThreadFactoryBuilder;
@ -38,6 +39,7 @@ import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameter;
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterQuery; import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterQuery;
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterVo; import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterVo;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.*; import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.*;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.utils.CollectorsUtil;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForLateVoucher; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForLateVoucher;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsDto; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsDto;
@ -74,6 +76,7 @@ import java.util.concurrent.*;
import java.util.function.Predicate; import java.util.function.Predicate;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collector;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -932,6 +935,7 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
} }
} }
public ResultBean<LoanBuckleApplyInit> buckleNewInit(String orgPath) { public ResultBean<LoanBuckleApplyInit> buckleNewInit(String orgPath) {
ResultBean<LoanBuckleApplyInit> rb = ResultBean.fireFail(); ResultBean<LoanBuckleApplyInit> rb = ResultBean.fireFail();
LoanBuckleApplyInit vo = new LoanBuckleApplyInit(); LoanBuckleApplyInit vo = new LoanBuckleApplyInit();
@ -951,42 +955,95 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
qw.ne("h.buckleKey", "002"); qw.ne("h.buckleKey", "002");
qw.ne("h.buckleKey", "003"); qw.ne("h.buckleKey", "003");
qw.eq("h.updateState", "1"); qw.eq("h.updateState", "1");
List<LoanRepaymentHistoryVo> histories = baseMapper.selbuckleNewInitList(qw); List<RepaymentHistoryVoForBuckle> histories = baseMapper.selbuckleNewInitList(qw);
Map<String, BigDecimal> countMoney = new HashMap<>();
Map<String, List<String>> sids = new HashMap<>();
Map<String, BigDecimal> newMap = new HashMap<>();
Map<String, List<String>> stringListMap = new HashMap<>();
Set<String> planSids = new HashSet<>(); Set<String> planSids = new HashSet<>();
if (!histories.isEmpty()) { if (!histories.isEmpty()) {
for (LoanRepaymentHistoryVo history : histories) { countMoney = histories.stream()
String planDetailSid = history.getPlanDetailSid(); .collect(Collectors.groupingBy(RepaymentHistoryVoForBuckle::getPlanDetailSid, CollectorsUtil.summingBigDecimal(RepaymentHistoryVoForBuckle::getActualMoney)));
List<LoanRepaymentHistory> historyList = baseMapper.selByPlanSid(planDetailSid); sids = histories.stream()
if (!historyList.isEmpty()) { .collect(Collectors.groupingBy(RepaymentHistoryVoForBuckle::getPlanDetailSid, Collectors.mapping(RepaymentHistoryVoForBuckle::getSid, Collectors.toList())));
BigDecimal actualMoney = new BigDecimal(0); }
for (LoanRepaymentHistory repaymentHistory : historyList) { for (Map.Entry<String, BigDecimal> entry : countMoney.entrySet()) {
actualMoney = repaymentHistory.getActualMoney().add(actualMoney); if (entry.getValue().compareTo(BigDecimal.ZERO) > 0) {
} newMap.put(entry.getKey(), entry.getValue());
if (actualMoney.compareTo(BigDecimal.ZERO) == -1) {
planSids.add(planDetailSid);
}
}
} }
} }
Iterator<LoanRepaymentHistoryVo> it = histories.iterator(); for (Map.Entry<String, List<String>> entry : sids.entrySet()) {
while (it.hasNext()) { for (Map.Entry<String, BigDecimal> entry2 : newMap.entrySet()) {
LoanRepaymentHistoryVo historyVo = it.next(); if (entry.getKey().equals(entry2.getKey())) {
if (!planSids.isEmpty()) { stringListMap.put(entry.getKey(), entry.getValue());
if (planSids.contains(historyVo.getPlanDetailSid())) {
it.remove();
} }
} }
} }
if (!histories.isEmpty()) { for (Map.Entry<String, List<String>> entry : stringListMap.entrySet()) {
for (LoanRepaymentHistoryVo history : histories) { LoanBuckleHistoryRecord record = new LoanBuckleHistoryRecord();
LoanBuckleHistoryRecord record = new LoanBuckleHistoryRecord(); record.setRecordSid(entry.getKey());
LoanRepaymentHistoryRecordVo recordVo = baseMapper.buckleInfo(history.getSid()); record.setHistorySids(entry.getValue());
if (null != recordVo) { record.setActualMoney(newMap.get(entry.getKey()).toString());
BeanUtil.copyProperties(recordVo, record); LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(entry.getKey());
if (null != planDetails) {
if (StringUtils.isNotBlank(planDetails.getLoanContractNo())) {
record.setLoanContractNo(planDetails.getLoanContractNo());
}
if (StringUtils.isNotBlank(planDetails.getVinNo())) {
record.setVinNo(planDetails.getVinNo());
}
if (StringUtils.isNotBlank(planDetails.getBankName())) {
record.setBankName(planDetails.getBankName());
}
if (StringUtils.isNotBlank(planDetails.getBankContractNo())) {
record.setBankContractNo(planDetails.getBankContractNo());
}
if (StringUtils.isNotBlank(planDetails.getCustomer())) {
record.setCustomer(planDetails.getCustomer());
}
if (StringUtils.isNotBlank(planDetails.getBorrowerName())) {
record.setBorrowerName(planDetails.getBorrowerName());
}
if (StringUtils.isNotBlank(planDetails.getPeriod())) {
record.setPeriod(planDetails.getPeriod());
} }
historyRecords.add(record);
} }
} historyRecords.add(record);
}
// if (!histories.isEmpty()) {
// for (LoanRepaymentHistoryVo history : histories) {
// String planDetailSid = history.getPlanDetailSid();
// List<LoanRepaymentHistory> historyList = baseMapper.selByPlanSid(planDetailSid);
// if (!historyList.isEmpty()) {
// BigDecimal actualMoney = new BigDecimal(0);
// for (LoanRepaymentHistory repaymentHistory : historyList) {
// actualMoney = repaymentHistory.getActualMoney().add(actualMoney);
// }
// if (actualMoney.compareTo(BigDecimal.ZERO) == -1) {
// planSids.add(planDetailSid);
// }
// }
// }
// }
// Iterator<LoanRepaymentHistoryVo> it = histories.iterator();
// while (it.hasNext()) {
// LoanRepaymentHistoryVo historyVo = it.next();
// if (!planSids.isEmpty()) {
// if (planSids.contains(historyVo.getPlanDetailSid())) {
// it.remove();
// }
// }
// }
// if (!histories.isEmpty()) {
// for (LoanRepaymentHistoryVo history : histories) {
// LoanBuckleHistoryRecord record = new LoanBuckleHistoryRecord();
// LoanRepaymentHistoryRecordVo recordVo = baseMapper.buckleInfo(history.getSid());
// if (null != recordVo) {
// BeanUtil.copyProperties(recordVo, record);
// }
// historyRecords.add(record);
// }
// }
vo.setRecords(historyRecords); vo.setRecords(historyRecords);
return rb.success().setData(vo); return rb.success().setData(vo);
} }
@ -1077,7 +1134,6 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
if (StringUtils.isNotBlank(pagerQuery.getAccountTypeKey())) { if (StringUtils.isNotBlank(pagerQuery.getAccountTypeKey())) {
qw.like("r.accountTypeKey", pagerQuery.getAccountTypeKey()); qw.like("r.accountTypeKey", pagerQuery.getAccountTypeKey());
} }
qw.eq("r.state", 0);
String dueStartDate = pagerQuery.getDueStartDate(); String dueStartDate = pagerQuery.getDueStartDate();
String dueEndDate = pagerQuery.getDueEndDate(); String dueEndDate = pagerQuery.getDueEndDate();
qw.apply(StringUtils.isNotEmpty(dueStartDate), "date_format (p.dueDate,'%Y-%m-%d') >= date_format('" + dueStartDate + "','%Y-%m-%d')"). qw.apply(StringUtils.isNotEmpty(dueStartDate), "date_format (p.dueDate,'%Y-%m-%d') >= date_format('" + dueStartDate + "','%Y-%m-%d')").
@ -1090,6 +1146,34 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
); );
qw.apply("(b.reAdvances = '1' OR IFNULL(p.paymentMoney,0) <= 0)"); qw.apply("(b.reAdvances = '1' OR IFNULL(p.paymentMoney,0) <= 0)");
IPage<TransferPaymentVo> pagging = baseMapper.transferPaymentList(page, qw); IPage<TransferPaymentVo> pagging = baseMapper.transferPaymentList(page, qw);
if (pagerQuery.getType().equals("1")) {
List<TransferPaymentVo> records = pagging.getRecords();
if (!records.isEmpty()) {
for (TransferPaymentVo record : records) {
TransferRecordVo transferRecordVo = baseMapper.selTransferRecord(record.getSid());
if (null != transferRecordVo) {
if (StringUtils.isNotBlank(transferRecordVo.getTransferPrincipal())) {
record.setTransferPrincipal(transferRecordVo.getTransferPrincipal());
}
if (StringUtils.isNotBlank(transferRecordVo.getAccount())) {
record.setAccount(transferRecordVo.getAccount());
}
if (StringUtils.isNotBlank(transferRecordVo.getAccountNumber())) {
record.setAccountNumber(transferRecordVo.getAccountNumber());
}
if (StringUtils.isNotBlank(transferRecordVo.getAccountType())) {
record.setAccountType(transferRecordVo.getAccountType());
}
if (StringUtils.isNotBlank(transferRecordVo.getSpread())) {
record.setSpread(transferRecordVo.getSpread());
}
if (StringUtils.isNotBlank(transferRecordVo.getDefaultInterest())) {
record.setDefaultInterest(transferRecordVo.getDefaultInterest());
}
}
}
}
}
PagerVo<TransferPaymentVo> p = PagerUtil.pageToVo(pagging, null); PagerVo<TransferPaymentVo> p = PagerUtil.pageToVo(pagging, null);
return p; return p;
} }

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

@ -53,6 +53,7 @@
AND lrpd.period = #{period} AND lrpd.period = #{period}
AND lrpd.bankContractNo = #{bankContractNo} AND lrpd.bankContractNo = #{bankContractNo}
AND DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE() AND DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
AND lrh.`updateState` = '1'
GROUP BY lrpd.`sid` GROUP BY lrpd.`sid`
HAVING (yq_total > 0) HAVING (yq_total > 0)
</select> </select>

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.*; import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.*;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformation; import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformation;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -32,4 +33,5 @@ public interface LoanRepaymentScheduleMapper extends BaseMapper<LoanRepaymentSch
LoanRepaymentSchedule selByLoanContractSid(@Param("loanContractSid") String loanContractSid); LoanRepaymentSchedule selByLoanContractSid(@Param("loanContractSid") String loanContractSid);
List<LoanRepaymentHistory> selHistoryBySid(@Param("sid") String sid);
} }

6
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml

@ -58,4 +58,10 @@
from loan_repayment_schedule from loan_repayment_schedule
where loanContractSid = #{loanContractSid} where loanContractSid = #{loanContractSid}
</select> </select>
<select id="selHistoryBySid"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory">
SELECT sid
FROM loan_repayment_history
WHERE scheduleSid = #{sid}
</select>
</mapper> </mapper>

6
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleRest.java

@ -1,6 +1,7 @@
package com.yxt.anrui.riskcenter.biz.loanrepaymentschedule; package com.yxt.anrui.riskcenter.biz.loanrepaymentschedule;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.*; import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.*;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationVo; import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationVo;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
@ -51,6 +52,11 @@ public class LoanRepaymentScheduleRest implements LoanRepaymentScheduleFeign {
return loanRepaymentScheduleService.selByLoanContractSid(loanContractSid); return loanRepaymentScheduleService.selByLoanContractSid(loanContractSid);
} }
@Override
public ResultBean<List<LoanRepaymentHistory>> selHistoryBySid(String sid) {
return loanRepaymentScheduleService.selHistoryBySid(sid);
}
@Override @Override
public ResultBean<PagerVo<AppRepaymentPlanVo>> getRepaymentPlanList(PagerQuery<AppRepaymentPlanQuery> pq) { public ResultBean<PagerVo<AppRepaymentPlanVo>> getRepaymentPlanList(PagerQuery<AppRepaymentPlanQuery> pq) {
ResultBean<PagerVo<AppRepaymentPlanVo>> rb = ResultBean.fireFail(); ResultBean<PagerVo<AppRepaymentPlanVo>> rb = ResultBean.fireFail();

7
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java

@ -40,6 +40,7 @@ import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.LoanFinOtherPolicy;
import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy; import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy;
import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicyVo; import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicyVo;
import com.yxt.anrui.riskcenter.api.loanmortgageinformationtransact.LoanMortgageInformationTransactDto; import com.yxt.anrui.riskcenter.api.loanmortgageinformationtransact.LoanMortgageInformationTransactDto;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsDto; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsDto;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.*; import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.*;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions; import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
@ -2414,4 +2415,10 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
LoanRepaymentSchedule repaymentSchedule = baseMapper.selByLoanContractSid(loanContractSid); LoanRepaymentSchedule repaymentSchedule = baseMapper.selByLoanContractSid(loanContractSid);
return rb.success().setData(repaymentSchedule); return rb.success().setData(repaymentSchedule);
} }
public ResultBean<List<LoanRepaymentHistory>> selHistoryBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
List<LoanRepaymentHistory> repaymentHistories = baseMapper.selHistoryBySid(sid);
return rb.success().setData(repaymentHistories);
}
} }

59
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyMapper.xml

@ -36,22 +36,22 @@
<select id="getYhje" resultType="java.lang.String"> <select id="getYhje" resultType="java.lang.String">
SELECT SELECT
SUM(lrh.`actualMoney`) IFNULL(SUM(lrh.`actualMoney`),0)
FROM FROM
loan_repayment_history lrh (SELECT DISTINCT
LEFT JOIN loan_repayment_plan_details lrpd scheduleSid
ON lrh.`planDetailSid` = lrpd.`sid` FROM
loan_repayment_plan_details
WHERE busVinSid = #{saleVehSid}) lrpd
LEFT JOIN loan_repayment_history lrh
ON lrpd.`scheduleSid` = lrh.`scheduleSid`
WHERE lrh.updateState = '1' WHERE lrh.updateState = '1'
AND lrpd.`busVinSid` = #{saleVehSid}
</select> </select>
<select id="getWdqje" resultType="java.lang.String"> <select id="getWdqje" resultType="java.lang.String">
SELECT SELECT
SUM(lrh.`actualMoney`) IFNULL(SUM(lrpd.`dueMoney`),0)
FROM FROM loan_repayment_plan_details lrpd
loan_repayment_history lrh
LEFT JOIN loan_repayment_plan_details lrpd
ON lrh.`planDetailSid` = lrpd.`sid`
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &gt;= CURDATE() WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &gt;= CURDATE()
AND lrpd.`busVinSid` = #{saleVehSid} AND lrpd.`busVinSid` = #{saleVehSid}
</select> </select>
@ -78,28 +78,33 @@
<select id="getYhjehsqs" resultType="java.lang.String"> <select id="getYhjehsqs" resultType="java.lang.String">
SELECT SELECT
ROUND( ROUND(
SUM(lrh.`actualMoney`) / lrs.mainMidRepay, IFNULL(SUM(lrh.`actualMoney`), 0) / lrs.mainMidRepay,
1 1
) )
FROM FROM
loan_repayment_history lrh (SELECT DISTINCT
LEFT JOIN loan_repayment_plan_details lrpd scheduleSid
ON lrh.`planDetailSid` = lrpd.`sid` FROM
loan_repayment_plan_details
WHERE busVinSid = #{saleVehSid}) lrpd
LEFT JOIN loan_repayment_history lrh
ON lrpd.`scheduleSid` = lrh.`scheduleSid`
LEFT JOIN loan_repayment_schedule lrs LEFT JOIN loan_repayment_schedule lrs
ON lrpd.scheduleSid = lrs.sid ON lrpd.scheduleSid = lrs.sid
WHERE lrh.updateState = '1' WHERE lrh.updateState = '1'
AND lrpd.`busVinSid` = #{saleVehSid}
</select> </select>
<select id="getDqyqje" resultType="java.lang.String"> <select id="getDqyqje" resultType="java.lang.String">
SELECT SELECT
( (IFNULL(SUM(ss.yq_total), 0)
SUM(ss.yq_total) + + IFNULL(
(SELECT (SELECT
SUM(lbpv.`bankBeInter`) SUM(lbpv.`bankBeInter`)
FROM FROM
loan_be_padsincere_veh lbpv loan_be_padsincere_veh lbpv
WHERE lbpv.saleVehSid = ss.busVinSid) + WHERE lbpv.saleVehSid = ss.busVinSid),
0
) + IFNULL(
(SELECT (SELECT
SUM(fund) SUM(fund)
FROM FROM
@ -110,7 +115,9 @@
FROM FROM
loan_repayment_plan_details lrpd loan_repayment_plan_details lrpd
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE() WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
AND lrpd.`busVinSid` = #{saleVehSid})) AND lrpd.`busVinSid` = #{saleVehSid})),
0
)
) AS beMoney ) AS beMoney
FROM FROM
(SELECT (SELECT
@ -130,7 +137,7 @@
<select id="getQzzjzyf" resultType="java.lang.String"> <select id="getQzzjzyf" resultType="java.lang.String">
SELECT SELECT
SUM(fund) IFNULL(SUM(fund),0)
FROM FROM
loan_fund_day loan_fund_day
WHERE busSid IN WHERE busSid IN
@ -146,12 +153,14 @@
SELECT SELECT
ROUND( ROUND(
( (
SUM(ss.yq_total) + IFNULL(SUM(ss.yq_total), 0) + IFNULL(
(SELECT (SELECT
SUM(lbpv.`bankBeInter`) SUM(lbpv.`bankBeInter`)
FROM FROM
loan_be_padsincere_veh lbpv loan_be_padsincere_veh lbpv
WHERE lbpv.saleVehSid = ss.busVinSid) + WHERE lbpv.saleVehSid = ss.busVinSid),
0
) + IFNULL(
(SELECT (SELECT
SUM(fund) SUM(fund)
FROM FROM
@ -162,7 +171,9 @@
FROM FROM
loan_repayment_plan_details lrpd loan_repayment_plan_details lrpd
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE() WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
AND lrpd.`busVinSid` = #{saleVehSid})) AND lrpd.`busVinSid` = #{saleVehSid})),
0
)
) / ss.mainMidRepay, ) / ss.mainMidRepay,
1 1
) AS yqjehsqs ) AS yqjehsqs

10
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyService.java

@ -351,8 +351,16 @@ public class LoanRestoreReportApplyService extends MybatisBaseService<LoanRestor
LoanSolutions loanSolutions = loanSolutionsService.selectBySaleOrderSid(busSalesOrderVehicle.getSalesOrderSid()); LoanSolutions loanSolutions = loanSolutionsService.selectBySaleOrderSid(busSalesOrderVehicle.getSalesOrderSid());
loanRestoreReportApplyDetailsVo.setJrfaSid(loanSolutions.getSid()); loanRestoreReportApplyDetailsVo.setJrfaSid(loanSolutions.getSid());
loanRestoreReportApplyDetailsVo.setCurrentBeMoney(loanVehClearanceVehInit.getBeOverdueMoney()); loanRestoreReportApplyDetailsVo.setCurrentBeMoney(loanVehClearanceVehInit.getBeOverdueMoney());
loanRestoreReportApplyDetailsVo.setBeOverdueMoneyAndPeriod(loanVehClearanceVehInit.getBeOverdueMoneyAndPeriod());
loanRestoreReportApplyDetailsVo.setSaleVehSid(saleVehSid); loanRestoreReportApplyDetailsVo.setSaleVehSid(saleVehSid);
AlrepaidAndArrVo alrepaidAndArr = getAlrepaidAndArr(saleVehSid);
loanRestoreReportApplyDetailsVo.setAlRepaidMoney(alrepaidAndArr.getAlRepaidMoney());
loanRestoreReportApplyDetailsVo.setCurrentBeMoney(alrepaidAndArr.getCurrentBeMoney());
loanRestoreReportApplyDetailsVo.setWheFundOccMoney(alrepaidAndArr.getWheFundOccMoney());
loanRestoreReportApplyDetailsVo.setUnexpiredMoney(alrepaidAndArr.getUnexpiredMoney());
loanRestoreReportApplyDetailsVo.setNper(alrepaidAndArr.getNper());
loanRestoreReportApplyDetailsVo.setCurrentPeriod(alrepaidAndArr.getCurrentPeriod());
loanRestoreReportApplyDetailsVo.setAlRepaidMoneyConPeriod(alrepaidAndArr.getAlRepaidMoneyConPeriod());
loanRestoreReportApplyDetailsVo.setBeOverdueMoneyAndPeriod(alrepaidAndArr.getBeOverdueMoneyAndPeriod());
return loanRestoreReportApplyDetailsVo; return loanRestoreReportApplyDetailsVo;
} }

40
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyMapper.java

@ -0,0 +1,40 @@
package com.yxt.anrui.riskcenter.biz.loanreturninboundapply;
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.riskcenter.api.loanreturninboundapply.LoanReturnInboundApply;
import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyDetailsVo;
import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyVo;
import com.yxt.anrui.riskcenter.api.loanreturninboundapply.ReturnInboundVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/16
**/
@Mapper
public interface LoanReturnInboundApplyMapper extends BaseMapper<LoanReturnInboundApply> {
IPage<LoanReturnInboundApplyVo> selectPageVo(IPage<LoanReturnInboundApply> page, @Param(Constants.WRAPPER) QueryWrapper<LoanReturnInboundApply> qw);
int selectBySid(String join);
int updateFlowFiled(Map<String, Object> beanToMap);
List<String> selectVehInbound(String useOrgSid);
LoanReturnInboundApplyDetailsVo selectSidOne(String chooseSid);
LoanReturnInboundApplyDetailsVo selectDetails(String sid);
IPage<ReturnInboundVo> getInboundList(IPage<LoanReturnInboundApply> page, @Param(Constants.WRAPPER) QueryWrapper<LoanReturnInboundApply> qw, @Param("list") List<String> busVinSid);
BusSalesOrder selectOrder(String busVinSid);
}

158
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyMapper.xml

@ -0,0 +1,158 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.riskcenter.biz.loanreturninboundapply.LoanReturnInboundApplyMapper">
<select id="selectPageVo" resultType="com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyVo">
select la.sid,
if(length(la.nodeState) > 0, la.nodeState, '待提交') as nodeState,
la.useOrgName,
la.createDept,
la.createByName,
DATE_FORMAT(la.createTime, '%Y-%m-%d') as createDate,
la.closeDate,
la.loanContractNo,
la.vinNo,
la.vehMark,
la.bankName,
la.bankContractNo,
la.customerName,
la.loanName,
la.inboundMoney,
la.tralier,
la.procInstId,
la.procDefId,
la.createBySid
from loan_return_inbound_apply la
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectBySid" resultType="int">
select count(*)
from loan_return_inbound_apply
where length(nodeState) > 0
and find_in_set(sid, #{list})
</select>
<update id="updateFlowFiled">
UPDATE loan_return_inbound_apply
SET nodeState=#{nodeState}
<if test="taskDefKey != null and taskDefKey != ''">
, taskDefKey=#{taskDefKey}
</if>
<if test="procDefId != null and procDefId != ''">
, procDefId=#{procDefId}
</if>
<if test="procInsId != null and procInsId != ''">
, procInstId=#{procInsId}
</if>
<if test="taskId != null and taskId != ''">
, taskId=#{taskId}
</if>
WHERE sid = #{sid}
</update>
<select id="getInboundList" resultType="com.yxt.anrui.riskcenter.api.loanreturninboundapply.ReturnInboundVo">
select la.sid,
la.vinNo,
la.carNum vehMark,
bm.modelName,
la.bankName,
la.custName customerName,
la.borrName loanName
from loan_restore_report_apply la
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.sid = la.saleVehSid
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bv.salesOrderSid
<where>
${ew.sqlSegment}
<if test="list != null and list.size() != 0">
and la.saleVehSid not in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
</select>
<select id="selectVehInbound" resultType="java.lang.String">
select busVinSid
from loan_return_veh_ledger
where useOrgSid = #{useOrgSid}
and vehType = '主车'
</select>
<select id="selectSidOne"
resultType="com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyDetailsVo">
select la.vinNo,
bv.linkSid vinSid,
la.carNum vehMark,
bm.modelName,
bm.modelSid,
bm.modelConfigSid configSid,
bm.config configName,
la.custName customerName,
bo.customerSid,
bv.borrowerSid,
la.borrName loanName,
la.loanContractNo,
la.bankName,
la.bankContractNo,
la.saleVehSid busVinSid
<!--(la.currentBeMoney + la.unexpiredMoney) as inboundMoney-->
from loan_restore_report_apply la
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.sid = la.saleVehSid
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bv.salesOrderSid
left join anrui_buscenter.bus_sales_order bo on bo.sid = bv.salesOrderSid
where la.sid = #{chooseSid}
</select>
<select id="selectDetails"
resultType="com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyDetailsVo">
select la.sid,
la.createDept,
la.createDeptSid,
la.createByName,
DATE_FORMAT(la.createTime, '%Y-%m-%d') as createDate,
la.vinNo,
la.vinSid,
la.vehMark,
la.firstDate,
la.modelSid,
la.modelName,
la.configName,
la.configSid,
la.tralier,
la.customerSid,
la.customerName,
la.loanSid,
la.loanName,
la.loanContractNo,
la.bankName,
la.bankContractNo,
la.inboundMoney,
la.locationName,
la.locationSid,
la.parkFees,
la.alRepaidMoney,
la.currentBeMoney,
la.wheFundOccMoney,
la.nper,
la.currentPeriod,
la.unexpiredMoney,
la.alRepaidMoneyConPeriod,
la.beOverdueMoneyAndPeriod,
la.busVinSid,
la.files,
la.remarks
from loan_return_inbound_apply la
where sid = #{sid}
</select>
<select id="selectOrder" resultType="com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder">
select bo.*
from anrui_buscenter.bus_sales_order bo
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.salesOrderSid = bo.sid
where bv.sid = #{busVinSid}
</select>
</mapper>

101
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyRest.java

@ -0,0 +1,101 @@
package com.yxt.anrui.riskcenter.biz.loanreturninboundapply;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.riskcenter.api.loanreturninboundapply.*;
import com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/16
**/
@RestController
@RequestMapping("v1/LoanReturnInboundApply")
@Api(tags = "交回车辆入库申请")
public class LoanReturnInboundApplyRest implements LoanReturnInboundApplyFeign {
@Autowired
private LoanReturnInboundApplyService loanReturnInboundApplyService;
@Override
public ResultBean<PagerVo<LoanReturnInboundApplyVo>> listPage(PagerQuery<LoanReturnInboundApplyQuery> pq) {
ResultBean<PagerVo<LoanReturnInboundApplyVo>> rb = ResultBean.fireFail();
PagerVo<LoanReturnInboundApplyVo> pv = loanReturnInboundApplyService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean<String> saveOrUpdate(LoanReturnInboundApplyDto dto) {
return loanReturnInboundApplyService.saveOrUpdateReturnInbound(dto);
}
@Override
public ResultBean<LoanReturnInboundApplyDetailsVo> details(LoanReturnInboundApplyDetailsQuery query) {
return loanReturnInboundApplyService.details(query);
}
@Override
public ResultBean<PagerVo<ReturnInboundVo>> getInboundList(PagerQuery<LoanReturnQuery> pq) {
ResultBean<PagerVo<ReturnInboundVo>> rb = ResultBean.fireFail();
PagerVo<ReturnInboundVo> pv = loanReturnInboundApplyService.getInboundList(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean delBySids(String[] sids) {
return loanReturnInboundApplyService.delAllBySids(sids);
}
@Override
public ResultBean submitApply(SubmitReturnInbondApplyDto dto) {
return loanReturnInboundApplyService.submitApply(dto);
}
@Override
public ResultBean complete(CompleteReturnInboundDto query) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId("");
return loanReturnInboundApplyService.complete(bv);
}
@Override
public ResultBean<List<ReturnInboundApplyNodeVo>> getPreviousNodesForReject(ReturnInboundApplyNodeQuery query) {
return loanReturnInboundApplyService.getPreviousNodesForReject(query);
}
@Override
public ResultBean<List<ReturnInboundApplyNodeVo>> getNextNodesForSubmit(ReturnInboundApplyNodeQuery query) {
return loanReturnInboundApplyService.getNextNodesForSubmit(query);
}
@Override
public ResultBean taskReject(ReturnInboundApplyTaskQuery query) {
return loanReturnInboundApplyService.taskReject(query);
}
@Override
public ResultBean revokeProcess(ReturnInboundApplyTaskQuery query) {
return loanReturnInboundApplyService.revokeProcess(query);
}
@Override
public ResultBean breakProcess(ReturnInboundApplyTaskQuery query) {
return loanReturnInboundApplyService.breakProcess(query);
}
@Override
public ResultBean delegate(ReturnInboundApplyDelegateQuery query) {
return loanReturnInboundApplyService.delegate(query);
}
}

721
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyService.java

@ -0,0 +1,721 @@
package com.yxt.anrui.riskcenter.biz.loanreturninboundapply;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
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.basevehmodelconfig.BaseVehmodelConfigFeign;
import com.yxt.anrui.base.api.basevehmodelconfig.BaseVehmodelVo;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery;
import com.yxt.anrui.flowable.api.flow2.FlowFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
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.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.loanoverduefin.UrlQuery;
import com.yxt.anrui.riskcenter.api.loanrestorereportapply.AlrepaidAndArrVo;
import com.yxt.anrui.riskcenter.api.loanreturninboundapply.*;
import com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable.*;
import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailer;
import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailerDto;
import com.yxt.anrui.riskcenter.biz.loanrestorereportapply.LoanRestoreReportApplyService;
import com.yxt.anrui.riskcenter.biz.loanreturninboundtrailer.LoanReturnInboundTrailerService;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowVo;
import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import org.apache.commons.lang3.StringUtils;
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;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/16
**/
@Service
public class LoanReturnInboundApplyService extends MybatisBaseService<LoanReturnInboundApplyMapper, LoanReturnInboundApply> {
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private LoanReturnInboundTrailerService loanReturnInboundTrailerService;
@Autowired
private FlowFeign flowFeign;
@Autowired
private MessageFeign messageFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private LoanRestoreReportApplyService loanRestoreReportApplyService;
@Autowired
private BaseVehmodelConfigFeign baseVehmodelConfigFeign;
public PagerVo<LoanReturnInboundApplyVo> listPageVo(PagerQuery<LoanReturnInboundApplyQuery> pq) {
LoanReturnInboundApplyQuery query = pq.getParams();
QueryWrapper<LoanReturnInboundApply> qw = new QueryWrapper<>();
if (query != null) {
//分公司
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("la.useOrgName", query.getUseOrgName());
}
//申请人
if (StringUtils.isNotBlank(query.getCreateByName())) {
qw.like("la.createByName", query.getCreateByName());
}
//申请部门
if (StringUtils.isNotBlank(query.getCreateDept())) {
qw.like("la.createDept", query.getCreateDept());
}
//贷款合同编号
if (StringUtils.isNotBlank(query.getLoanContractNo())) {
qw.like("la.loanContractNo", query.getLoanContractNo());
}
//车架号
if (StringUtils.isNotBlank(query.getVinNo())) {
qw.like("la.vinNo", query.getVinNo());
}
//车牌号
if (StringUtils.isNotBlank(query.getVehMark())) {
qw.like("la.vehMark", query.getVehMark());
}
//贷款人
if (StringUtils.isNotBlank(query.getLoanName())) {
qw.like("la.loanName", query.getLoanName());
}
//资方
if (StringUtils.isNotBlank(query.getBankName())) {
qw.like("la.bankName", query.getBankName());
}
//资方合同编号
if (StringUtils.isNotBlank(query.getBankContractNo())) {
qw.like("la.bankContractNo", query.getBankContractNo());
}
//客户名称
if (StringUtils.isNotBlank(query.getCustomerName())) {
qw.like("la.customerName", query.getCustomerName());
}
if (StringUtils.isNotBlank(query.getTralier())) {
qw.like("la.tralier", query.getTralier());
}
//办结日期
qw.apply(StringUtils.isNotBlank(query.getCloseDateStart()), "date_format (la.closeDate,'%Y-%m-%d') >= date_format('" + query.getCloseDateStart() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(query.getCloseDateEnd()), "date_format (la.closeDate,'%Y-%m-%d') <= date_format('" + query.getCloseDateEnd() + "','%Y-%m-%d')"
);
//申请日期
qw.apply(StringUtils.isNotBlank(query.getCreateDateStart()), "date_format (la.createTime,'%Y-%m-%d') >= date_format('" + query.getCreateDateStart() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(query.getCreateDateEnd()), "date_format (la.createTime,'%Y-%m-%d') <= date_format('" + query.getCreateDateEnd() + "','%Y-%m-%d')"
);
//========================================数据授权开始
if (StringUtils.isNotBlank(query.getMenuUrl())) {
//=======================
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(query.getOrgPath());
privilegeQuery.setMenuUrl(query.getMenuUrl());
privilegeQuery.setUserSid(query.getUserSid());
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
String orgSidPath = query.getOrgPath();
orgSidPath = orgSidPath + "/";
int i1 = orgSidPath.indexOf("/");
int i2 = orgSidPath.indexOf("/", i1 + 1);
int i3 = orgSidPath.indexOf("/", i2 + 1);
int i4 = orgSidPath.indexOf("/", i3 + 1);
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i1);
qw.like("la.orgSidPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("la.orgSidPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("la.orgSidPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("la.orgSidPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("la.createBySid", query.getUserSid());
} else {
PagerVo<LoanReturnInboundApplyVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<LoanReturnInboundApplyVo> p = new PagerVo<>();
return p;
}
}
}
qw.orderByDesc("la.createTime");
IPage<LoanReturnInboundApply> page = PagerUtil.queryToPage(pq);
IPage<LoanReturnInboundApplyVo> pagging = baseMapper.selectPageVo(page, qw);
List<LoanReturnInboundApplyVo> paggingRecords = pagging.getRecords();
paggingRecords.removeAll(Collections.singleton(null));
if (!paggingRecords.isEmpty()) {
for (LoanReturnInboundApplyVo record : pagging.getRecords()) {
if (query.getUserSid().equals(record.getCreateBySid())) {
record.setAllowModify(true);
} else {
record.setAllowModify(false);
}
}
}
PagerVo<LoanReturnInboundApplyVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean taskReject(ReturnInboundApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
String businessSid = query.getBusinessSid();
LoanReturnInboundApply loanReturnInboundApply = fetchBySid(businessSid);
if (loanReturnInboundApply == null) {
return rb.setMsg("该申请不存在");
}
String businessTaskId = loanReturnInboundApply.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
Map<String, Object> map = BeanUtil.beanToMap(ufVo);
//更新业务中的流程相关的参数
updateFlowFiled(map);
//极光推送
loanReturnInboundApply = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
String procId = loanReturnInboundApply.getProcInstId();
messageFlowVo.setProcInsId(procId);
messageFlowVo.setProcDefId(loanReturnInboundApply.getProcDefId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("交回车辆入库申请");
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId);
String nextName = listResultBean.getData().get(0).getName_();
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
if ("发起申请".equals(nextName)) {
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交");
} else {
messageFlowableQuery.setMsgContent(loanReturnInboundApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
}
messageFlowableQuery.setMsgTitle("交回车辆入库申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
return rb.success();
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean<String> saveOrUpdateReturnInbound(LoanReturnInboundApplyDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
String sid = dto.getSid();
String orgPath = dto.getOrgPath();
if (StringUtils.isBlank(sid)) {
LoanReturnInboundApply loanReturnInboundApply = new LoanReturnInboundApply();
BeanUtil.copyProperties(dto, loanReturnInboundApply, "sid");
loanReturnInboundApply.setCreateBySid(dto.getUserSid());
loanReturnInboundApply.setOrgSidPath(dto.getOrgPath());
String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()).getData();
loanReturnInboundApply.setUseOrgSid(useOrgSid);
//创建组织使用组织
ResultBean<SysOrganizationVo> organizationResultBean = sysOrganizationFeign.fetchBySid(useOrgSid);
if (organizationResultBean.getData() != null) {
loanReturnInboundApply.setUseOrgName(organizationResultBean.getData().getName());
}
//申请部门
List<String> orgList = Arrays.asList(orgPath.split("/"));
String deptSid = orgList.get(orgList.size() - 1);
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(deptSid);
if (sysOrganizationVoResultBean.getData() != null) {
loanReturnInboundApply.setCreateDept(sysOrganizationVoResultBean.getData().getName());
loanReturnInboundApply.setCreateDeptSid(deptSid);
}
//根据用户sid查询人员姓名
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid());
if (!userVoResultBean.getSuccess()) {
return rb.setMsg(userVoResultBean.getMsg());
}
loanReturnInboundApply.setCreateByName(userVoResultBean.getData().getName());
List<UrlQuery> filss = dto.getFilesList();
List<String> filesList = filss.stream().map(v -> v.getUrl()).collect(Collectors.toList());
if (!filesList.isEmpty()) {
String files = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), "");
loanReturnInboundApply.setFiles(files);
}
if ("是".equals(dto.getTralier())) {
loanReturnInboundTrailerService.saveOrInsert(dto.getLoanReturnInboundTrailer(), loanReturnInboundApply.getSid());
}
baseMapper.insert(loanReturnInboundApply);
sid = loanReturnInboundApply.getSid();
} else {
LoanReturnInboundApply loanReturnInboundApply = fetchBySid(sid);
if (loanReturnInboundApply == null) {
return rb.setMsg("该申请不存在");
}
BeanUtil.copyProperties(dto, loanReturnInboundApply, "sid");
List<UrlQuery> filss = dto.getFilesList();
if (!filss.isEmpty()) {
List<String> filesList = filss.stream().map(v -> v.getUrl()).collect(Collectors.toList());
if (!filesList.isEmpty()) {
String files = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), "");
loanReturnInboundApply.setFiles(files);
}
} else {
loanReturnInboundApply.setFiles("");
}
if ("是".equals(dto.getTralier())) {
loanReturnInboundTrailerService.saveOrInsert(dto.getLoanReturnInboundTrailer(), loanReturnInboundApply.getSid());
} else {
loanReturnInboundTrailerService.deleteByMainSid(sid);
}
baseMapper.updateById(loanReturnInboundApply);
}
return rb.success().setData(sid);
}
public ResultBean<LoanReturnInboundApplyDetailsVo> details(LoanReturnInboundApplyDetailsQuery query) {
ResultBean<LoanReturnInboundApplyDetailsVo> rb = ResultBean.fireFail();
LoanReturnInboundApplyDetailsVo loanReturnInboundApplyDetailsVo = new LoanReturnInboundApplyDetailsVo();
String sid = query.getSid();
String userSid = query.getUserSid();
String orgPath = query.getOrgPath();
String chooseSid = query.getChooseSid();
if (StringUtils.isBlank(sid)) {//新增初始化
//根据用户查询发起人、发起部门、发起日期为当前日期
String deptName = "";
String deptSid = "";
String useOrgSid = "";
if (StringUtils.isNotBlank(orgPath)) {
List<String> split = Arrays.asList(orgPath.split("/"));
if (split.size() > 1) {
//获取本级sid获取本级部门信息
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(split.size() - 2)).getData();
SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData();
deptName = sysOrganization.getName() + "/" + sysOrganization1.getName();
deptName = sysOrganization1.getName();
deptSid = sysOrganization1.getSid();
} else {
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData();
deptName = sysOrganization.getName();
deptName = sysOrganization.getName();
deptSid = sysOrganization.getSid();
}
useOrgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData();
}
//根据用户sid查询人员姓名
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(userSid);
if (!userVoResultBean.getSuccess()) {
return rb.setMsg(userVoResultBean.getMsg());
}
//根据交回车辆事前报备申请sid查询数据
loanReturnInboundApplyDetailsVo = baseMapper.selectSidOne(chooseSid);
AlrepaidAndArrVo alrepaidAndArrVo = loanRestoreReportApplyService.getAlrepaidAndArr(loanReturnInboundApplyDetailsVo.getBusVinSid());
if (alrepaidAndArrVo != null) {
BeanUtil.copyProperties(alrepaidAndArrVo, loanReturnInboundApplyDetailsVo);
}
loanReturnInboundApplyDetailsVo.setCreateDept(deptName);
loanReturnInboundApplyDetailsVo.setCreateDeptSid(deptSid);
loanReturnInboundApplyDetailsVo.setCreateByName(userVoResultBean.getData().getName());
loanReturnInboundApplyDetailsVo.setCreateDate(DateUtil.today());
loanReturnInboundApplyDetailsVo.setOrgPath(query.getOrgPath());
loanReturnInboundApplyDetailsVo.setUserSid(query.getUserSid());
loanReturnInboundApplyDetailsVo.setUseOrgSid(useOrgSid);
ResultBean<BaseVehmodelVo> baseVehmodelVoResultBean = baseVehmodelConfigFeign.selectOne(loanReturnInboundApplyDetailsVo.getModelSid(), loanReturnInboundApplyDetailsVo.getConfigSid(), loanReturnInboundApplyDetailsVo.getUseOrgSid());
if (baseVehmodelVoResultBean.getSuccess()) {
BaseVehmodelVo baseVehmodelVo = baseVehmodelVoResultBean.getData();
if (baseVehmodelVo != null) {
loanReturnInboundApplyDetailsVo.setModelConfigSid(baseVehmodelVo.getModelConfigSid());
BusSalesOrder busSalesOrder = baseMapper.selectOrder(loanReturnInboundApplyDetailsVo.getBusVinSid());
if (busSalesOrder != null) {
loanReturnInboundApplyDetailsVo.setGuildPrice("2".equals(busSalesOrder.getPayTypeKey()) ? baseVehmodelVo.getManufactorSettlementPrice() : baseVehmodelVo.getGuidedPrice());
}
}
}
} else {//编辑初始化
LoanReturnInboundApply loanReturnInboundApply = fetchBySid(sid);
if (loanReturnInboundApply == null) {
return rb.setMsg("该申请不存在");
}
loanReturnInboundApplyDetailsVo = baseMapper.selectDetails(sid);
String files = loanReturnInboundApplyDetailsVo.getFiles();
List<UrlQuery> list = new ArrayList<>();
if (StringUtils.isNotBlank(files)) {
List<String> fileList = Arrays.asList(files.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList());
for (int i = 0; i < fileList.size(); i++) {
UrlQuery urlQuery = new UrlQuery();
urlQuery.setUrl(fileList.get(i));
list.add(urlQuery);
}
loanReturnInboundApplyDetailsVo.setFilesList(list);
}
if ("是".equals(loanReturnInboundApplyDetailsVo.getTralier())) {
LoanReturnInboundTrailerDto loanReturnInboundTrailerDto = new LoanReturnInboundTrailerDto();
LoanReturnInboundTrailer loanReturnInboundTrailer = loanReturnInboundTrailerService.selectByMainSid(sid);
if (loanReturnInboundTrailer != null) {
BeanUtil.copyProperties(loanReturnInboundTrailer, loanReturnInboundTrailerDto);
}
loanReturnInboundApplyDetailsVo.setLoanReturnInboundTrailer(loanReturnInboundTrailerDto);
}
loanReturnInboundApplyDetailsVo.setOrgPath(loanReturnInboundApply.getOrgSidPath());
loanReturnInboundApplyDetailsVo.setUserSid(loanReturnInboundApply.getCreateBySid());
ResultBean<BaseVehmodelVo> baseVehmodelVoResultBean = baseVehmodelConfigFeign.selectOne(loanReturnInboundApplyDetailsVo.getModelSid(), loanReturnInboundApplyDetailsVo.getConfigSid(), loanReturnInboundApplyDetailsVo.getUseOrgSid());
if (baseVehmodelVoResultBean.getSuccess()) {
BaseVehmodelVo baseVehmodelVo = baseVehmodelVoResultBean.getData();
if (baseVehmodelVo != null) {
loanReturnInboundApplyDetailsVo.setModelConfigSid(baseVehmodelVo.getModelConfigSid());
BusSalesOrder busSalesOrder = baseMapper.selectOrder(loanReturnInboundApplyDetailsVo.getBusVinSid());
if (busSalesOrder != null) {
loanReturnInboundApplyDetailsVo.setGuildPrice("2".equals(busSalesOrder.getPayTypeKey()) ? baseVehmodelVo.getManufactorSettlementPrice() : baseVehmodelVo.getGuidedPrice());
}
}
}
loanReturnInboundApplyDetailsVo.setSid(sid);
loanReturnInboundApplyDetailsVo.setProcInstId(loanReturnInboundApply.getProcInstId());
loanReturnInboundApplyDetailsVo.setTaskId(loanReturnInboundApply.getTaskId());
}
return rb.success().setData(loanReturnInboundApplyDetailsVo);
}
public ResultBean delAllBySids(String[] sids) {
ResultBean rb = ResultBean.fireFail();
//查询该sid中是否有流程不是待提交的
int count = baseMapper.selectBySid(StringUtils.join(sids, ","));
if (count > 0) {
return rb.setMsg("删除的数据中包含已经提交审批的数据,删除失败");
}
List<String> sidss = Arrays.asList(sids);
for (int i = 0; i < sidss.size(); i++) {
loanReturnInboundTrailerService.deleteByMainSid(sidss.get(i));
}
delBySids(sids);
return rb.success().setMsg("删除成功");
}
public ResultBean submitApply(SubmitReturnInbondApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
LoanReturnInboundApply loanReturnInboundApply = fetchBySid(dto.getSid());
int r = submitBusinessData(dto, loanReturnInboundApply);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
//根据busVinSid查询车辆是否已入库
ResultBean<String> resultBean = saveOrUpdateReturnInbound(dto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
String businessSid = resultBean.getData();
loanReturnInboundApply = fetchBySid(businessSid);
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
//用户的部门全路径sid
bv.setOrgSidPath(loanReturnInboundApply.getOrgSidPath());
bv.setBusinessSid(businessSid);
bv.setUserSid(dto.getUserSid());
bv.setFormVariables(variables);
if (r == 1) {
//ToDo:流程定义id
bv.setModelId(ProcDefEnum.LOANRETUENINBOUNDAPPLY.getProDefId());
ResultBean<UpdateFlowFieldVo> voResultBean = flowFeign.startProcess(bv);
if (!voResultBean.getSuccess()) {
return rb.setMsg(voResultBean.getMsg());
}
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
loanReturnInboundApply = fetchBySid(businessSid);
//==================================添加线程
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
LoanReturnInboundApply finalLoanReturnInboundApply = loanReturnInboundApply;
Future future1 = pool.submit(() -> {
//极光推送
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("交回车辆入库申请");
messageFlowableQuery.setMsgContent(finalLoanReturnInboundApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("交回车辆入库申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
//==================================添加线程
return voResultBean;
}
if (r == 2) {
// ToDo:驳回到发起人后再次提交
if (StringUtils.isBlank(dto.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
bv.setTaskId(loanReturnInboundApply.getTaskId());
bv.setTaskDefKey(loanReturnInboundApply.getTaskDefKey());
bv.setComment("重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return rb;
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
LoanReturnInboundApply loanReturnInboundApply = fetchBySid(businessSid);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
bv.setFormVariables(variables);
bv.setOrgSidPath(loanReturnInboundApply.getOrgSidPath());
bv.setModelId(loanReturnInboundApply.getProcDefId());
if (bv.getTaskId().equals(loanReturnInboundApply.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
loanReturnInboundApply = fetchBySid(businessSid);
loanReturnInboundApply.setCloseDate(DateUtil.today());
baseMapper.updateById(loanReturnInboundApply);
//
} else {
//极光推送
loanReturnInboundApply = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowVo.setProcDefId(loanReturnInboundApply.getProcDefId());
messageFlowVo.setProcInsId(loanReturnInboundApply.getProcInstId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("交回车辆入库申请");
messageFlowableQuery.setMsgContent(loanReturnInboundApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("交回车辆入库申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
private int submitBusinessData(SubmitReturnInbondApplyDto dto, LoanReturnInboundApply loanReturnInboundApply) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
if (loanReturnInboundApply != null) {
String businessTaskId = loanReturnInboundApply.getTaskId();
if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) {
//新提交
r = 1;
} else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) {
//二次提交//只有数据一致的时候才能进行下一步
r = 2;
}
} else {
r = 3;
}
}
return r;
}
private int updateFlowFiled(Map<String, Object> beanToMap) {
return baseMapper.updateFlowFiled(beanToMap);
}
public ResultBean<List<ReturnInboundApplyNodeVo>> getPreviousNodesForReject(ReturnInboundApplyNodeQuery query) {
ResultBean<List<ReturnInboundApplyNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
LoanReturnInboundApply loanReturnInboundApply = fetchBySid(query.getBusinessSid());
bv.setModelId(loanReturnInboundApply.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
List<ReturnInboundApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), ReturnInboundApplyNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean<List<ReturnInboundApplyNodeVo>> getNextNodesForSubmit(ReturnInboundApplyNodeQuery query) {
ResultBean<List<ReturnInboundApplyNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
LoanReturnInboundApply loanReturnInboundApply = fetchBySid(query.getBusinessSid());
bv.setModelId(loanReturnInboundApply.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
List<ReturnInboundApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), ReturnInboundApplyNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean revokeProcess(ReturnInboundApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
LoanReturnInboundApply loanReturnInboundApply = fetchBySid(query.getBusinessSid());
String businessTaskId = loanReturnInboundApply.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
return rb.success().setData(resultBean.getData());
}
}
return rb.setMsg("操作失败,提交的数据不一致!");
}
public ResultBean breakProcess(ReturnInboundApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
LoanReturnInboundApply loanReturnInboundApply = fetchBySid(query.getBusinessSid());
String businessTaskId = loanReturnInboundApply.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (query.getUserSid().equals(loanReturnInboundApply.getCreateBySid())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(map);
return rb.success().setData(resultBean.getData());
} else {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(map);
return rb.success().setData(resultBean.getData());
}
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean delegate(ReturnInboundApplyDelegateQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowDelegateQuery delegateQuery = new FlowDelegateQuery();
BeanUtil.copyProperties(query, delegateQuery);
flowFeign.delegate(delegateQuery);
return rb.success();
}
public PagerVo<ReturnInboundVo> getInboundList(PagerQuery<LoanReturnQuery> pq) {
LoanReturnQuery query = pq.getParams();
QueryWrapper<LoanReturnInboundApply> qw = new QueryWrapper<>();
List<String> busVinSid = new ArrayList<>();
if (query != null) {
if (StringUtils.isNotBlank(query.getOrgPath())) {
String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(query.getOrgPath()).getData();
qw.eq("la.useOrgSid", useOrgSid);
busVinSid = baseMapper.selectVehInbound(useOrgSid);
busVinSid.removeAll(Collections.singleton(null));
}
qw.eq("la.nodeState", "已办结");
}
IPage<LoanReturnInboundApply> page = PagerUtil.queryToPage(pq);
IPage<ReturnInboundVo> pagging = baseMapper.getInboundList(page, qw, busVinSid);
PagerVo<ReturnInboundVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
/* public ResultBean<List<ReturnInboundVo>> getInboundList(String useOrgSid) {
ResultBean<List<ReturnInboundVo>> rb = ResultBean.fireFail();
List<String> busVinSid = baseMapper.selectVehInbound(useOrgSid);
busVinSid.removeAll(Collections.singleton(null));
List<ReturnInboundVo> list = baseMapper.getInboundList(useOrgSid, busVinSid);
list.removeAll(Collections.singleton(null));
return rb.success().setData(list);
}*/
}

17
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundtrailer/LoanReturnInboundTrailerMapper.java

@ -0,0 +1,17 @@
package com.yxt.anrui.riskcenter.biz.loanreturninboundtrailer;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailer;
import org.apache.ibatis.annotations.Mapper;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/16
**/
@Mapper
public interface LoanReturnInboundTrailerMapper extends BaseMapper<LoanReturnInboundTrailer> {
int deleteByMainSid(String sid);
LoanReturnInboundTrailer selectByMainSid(String sid);
}

16
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundtrailer/LoanReturnInboundTrailerMapper.xml

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.riskcenter.biz.loanreturninboundtrailer.LoanReturnInboundTrailerMapper">
<delete id="deleteByMainSid">
delete
from loan_return_inbound_trailer
where mainSid = #{sid}
</delete>
<select id="selectByMainSid"
resultType="com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailer">
select *
from loan_return_inbound_trailer
where mainSid = #{sid}
</select>
</mapper>

31
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundtrailer/LoanReturnInboundTrailerService.java

@ -0,0 +1,31 @@
package com.yxt.anrui.riskcenter.biz.loanreturninboundtrailer;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailer;
import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailerDto;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/16
**/
@Service
public class LoanReturnInboundTrailerService extends MybatisBaseService<LoanReturnInboundTrailerMapper, LoanReturnInboundTrailer> {
public void saveOrInsert(LoanReturnInboundTrailerDto dto, String sid) {
baseMapper.deleteByMainSid(sid);
LoanReturnInboundTrailer loanReturnInboundTrailer = new LoanReturnInboundTrailer();
BeanUtil.copyProperties(dto, loanReturnInboundTrailer, "sid");
loanReturnInboundTrailer.setMainSid(sid);
baseMapper.insert(loanReturnInboundTrailer);
}
public void deleteByMainSid(String sid) {
baseMapper.deleteByMainSid(sid);
}
public LoanReturnInboundTrailer selectByMainSid(String sid) {
return baseMapper.selectByMainSid(sid);
}
}

3
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyMapper.xml

@ -98,7 +98,7 @@
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE())), WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE())),
0 0
) )
), 1) AS beOverdueMoneyAndPeriod, ) / a1.dueMoney, 1) AS beOverdueMoneyAndPeriod,
a1.busVinSid AS saleVehSid, a1.busVinSid AS saleVehSid,
a1.salesOrderSid, a1.salesOrderSid,
a1.lockCarMoney a1.lockCarMoney
@ -113,6 +113,7 @@
lrpd.borrowerName, lrpd.borrowerName,
lrpd.dueDate, lrpd.dueDate,
lrpd.vehMark, lrpd.vehMark,
lrpd.dueMoney,
( (
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0)) lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))
) AS yq_total, ) AS yq_total,

4
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/becollection/AppBeCollectionVehDetailsVo.java

@ -56,6 +56,10 @@ public class AppBeCollectionVehDetailsVo implements Vo {
@ApiModelProperty("是否有担保人") @ApiModelProperty("是否有担保人")
private Boolean showDbr = false; private Boolean showDbr = false;
@ApiModelProperty("是否有还款协议")
private Boolean showXy = false;
@ApiModelProperty("是否有远程控制")
private Boolean showYckz = false;
@ApiModelProperty("销售订单车辆sid") @ApiModelProperty("销售订单车辆sid")
private String saleVehSid; private String saleVehSid;
@ApiModelProperty("贷款合同编号") @ApiModelProperty("贷款合同编号")

6
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/overduebank/OverdueBankFeign.java

@ -1,5 +1,6 @@
package com.yxt.anrui.terminal.api.risk.overduebank; package com.yxt.anrui.terminal.api.risk.overduebank;
import com.yxt.anrui.terminal.api.risk.overduebank.flowable.BankDelegateQuery;
import com.yxt.anrui.terminal.api.risk.overduebank.flowable.OverdueBankDto; import com.yxt.anrui.terminal.api.risk.overduebank.flowable.OverdueBankDto;
import com.yxt.anrui.terminal.api.risk.overduebank.flowable.OverdueBankQuery; import com.yxt.anrui.terminal.api.risk.overduebank.flowable.OverdueBankQuery;
import com.yxt.anrui.terminal.api.risk.overduebank.flowable.OverdueBankTaskQuery; import com.yxt.anrui.terminal.api.risk.overduebank.flowable.OverdueBankTaskQuery;
@ -50,4 +51,9 @@ public interface OverdueBankFeign {
@GetMapping("/getOverdueBankApply/{sid}") @GetMapping("/getOverdueBankApply/{sid}")
@ResponseBody @ResponseBody
ResultBean<OverdueBankVo> getOverdueBankApply(@PathVariable("sid") String sid); ResultBean<OverdueBankVo> getOverdueBankApply(@PathVariable("sid") String sid);
@ApiOperation(value = "加签")
@PutMapping(value = "/delegate")
@ResponseBody
public ResultBean delegate(@RequestBody BankDelegateQuery delegateQuery);
} }

10
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/overduebank/OverdueBankVo.java

@ -1,5 +1,6 @@
package com.yxt.anrui.terminal.api.risk.overduebank; package com.yxt.anrui.terminal.api.risk.overduebank;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -33,4 +34,13 @@ public class OverdueBankVo {
private List<String> filesList = new ArrayList<>(); private List<String> filesList = new ArrayList<>();
//逾期客户列表 //逾期客户列表
private List<OverdueBankDetailsAppVo> detailsVoList = new ArrayList<>(); private List<OverdueBankDetailsAppVo> detailsVoList = new ArrayList<>();
@ApiModelProperty(value = "实例id")
@JsonProperty("procInsId")
private String procInstId;
@ApiModelProperty(value = "taskId")
private String taskId;
private String publishInso;
} }

25
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/overduebank/flowable/BankDelegateQuery.java

@ -0,0 +1,25 @@
package com.yxt.anrui.terminal.api.risk.overduebank.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/17
**/
@Data
public class BankDelegateQuery {
private String userSid;
@ApiModelProperty("流程实例id")
@JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty("任务Id")
private String taskId;
@ApiModelProperty("审批人sid")
private String assignee;
@ApiModelProperty("填写意见")
private String views;
}

10
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/overduefin/OverDueFnAppVo.java

@ -1,5 +1,6 @@
package com.yxt.anrui.terminal.api.risk.overduefin; package com.yxt.anrui.terminal.api.risk.overduefin;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -32,5 +33,14 @@ public class OverDueFnAppVo {
@ApiModelProperty("逾期客户列表") @ApiModelProperty("逾期客户列表")
private List<OverdueFinAppDetailsVo> detailsVoList = new ArrayList<>(); private List<OverdueFinAppDetailsVo> detailsVoList = new ArrayList<>();
@ApiModelProperty(value = "实例id")
@JsonProperty("procInsId")
private String procInstId;
@ApiModelProperty(value = "taskId")
private String taskId;
private String publishInso;
} }

7
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/overduefin/OverdueFinFeign.java

@ -1,5 +1,7 @@
package com.yxt.anrui.terminal.api.risk.overduefin; package com.yxt.anrui.terminal.api.risk.overduefin;
import com.yxt.anrui.terminal.api.risk.overduebank.flowable.BankDelegateQuery;
import com.yxt.anrui.terminal.api.risk.overduefin.flowable.FinDelegateQuery;
import com.yxt.anrui.terminal.api.risk.overduefin.flowable.OverdueFinDto; import com.yxt.anrui.terminal.api.risk.overduefin.flowable.OverdueFinDto;
import com.yxt.anrui.terminal.api.risk.overduefin.flowable.OverdueFinQuery; import com.yxt.anrui.terminal.api.risk.overduefin.flowable.OverdueFinQuery;
import com.yxt.anrui.terminal.api.risk.overduefin.flowable.OverdueFinTaskQuery; import com.yxt.anrui.terminal.api.risk.overduefin.flowable.OverdueFinTaskQuery;
@ -50,4 +52,9 @@ public interface OverdueFinFeign {
@GetMapping("/getOverdueFinApply/{sid}") @GetMapping("/getOverdueFinApply/{sid}")
@ResponseBody @ResponseBody
ResultBean<OverDueFnAppVo> getOverdueFinApply(@PathVariable("sid") String sid); ResultBean<OverDueFnAppVo> getOverdueFinApply(@PathVariable("sid") String sid);
@ApiOperation(value = "加签")
@PutMapping(value = "/delegate")
@ResponseBody
public ResultBean delegate(@RequestBody FinDelegateQuery delegateQuery);
} }

25
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/overduefin/flowable/FinDelegateQuery.java

@ -0,0 +1,25 @@
package com.yxt.anrui.terminal.api.risk.overduefin.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/17
**/
@Data
public class FinDelegateQuery {
private String userSid;
@ApiModelProperty("流程实例id")
@JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty("任务Id")
private String taskId;
@ApiModelProperty("审批人sid")
private String assignee;
@ApiModelProperty("填写意见")
private String views;
}

8
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/becollection/BeCollectionService.java

@ -307,9 +307,15 @@ public class BeCollectionService {
AppBeCollectionVehDetailsVo appBeCollectionVehDetailsVo = new AppBeCollectionVehDetailsVo(); AppBeCollectionVehDetailsVo appBeCollectionVehDetailsVo = new AppBeCollectionVehDetailsVo();
appBeCollectionVehDetailsVo.setSaleVehSid(loanBeCollectionVehDetail.getSaleVehSid()); appBeCollectionVehDetailsVo.setSaleVehSid(loanBeCollectionVehDetail.getSaleVehSid());
LoanBeCollectionVehDbrDetailsVo loanBeCollectionVehDbrDetailsVo = loanBeCollectionVehFeign.initDbr(loanBeCollectionVehDetail.getSaleVehSid()).getData(); LoanBeCollectionVehDbrDetailsVo loanBeCollectionVehDbrDetailsVo = loanBeCollectionVehFeign.initDbr(loanBeCollectionVehDetail.getSaleVehSid()).getData();
if (StringUtils.isNotBlank(loanBeCollectionVehDbrDetailsVo.getPeoName())) { if (StringUtils.isNotBlank(loanBeCollectionVehDbrDetailsVo.getPeoName()) && collMeasures.contains("增加担保人")) {
appBeCollectionVehDetailsVo.setShowDbr(true); appBeCollectionVehDetailsVo.setShowDbr(true);
} }
if (collMeasures.contains("远程控制")){
appBeCollectionVehDetailsVo.setShowYckz(true);
}
if (collMeasures.contains("签订还款协议")){
appBeCollectionVehDetailsVo.setShowXy(true);
}
appBeCollectionVehDetailsVo.setContractId(loanBeCollectionVehDetail.getLoanContractNo()); appBeCollectionVehDetailsVo.setContractId(loanBeCollectionVehDetail.getLoanContractNo());
appBeCollectionVehDetailsVo.setVin(loanBeCollectionVehDetail.getVinNo()); appBeCollectionVehDetailsVo.setVin(loanBeCollectionVehDetail.getVinNo());
appBeCollectionVehDetailsVo.setCarNum(loanBeCollectionVehDetail.getCarNum()); appBeCollectionVehDetailsVo.setCarNum(loanBeCollectionVehDetail.getCarNum());

6
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/overduebank/OverdueBankRest.java

@ -2,6 +2,7 @@ package com.yxt.anrui.terminal.biz.risk.overduebank;
import com.yxt.anrui.terminal.api.risk.overduebank.OverdueBankFeign; import com.yxt.anrui.terminal.api.risk.overduebank.OverdueBankFeign;
import com.yxt.anrui.terminal.api.risk.overduebank.OverdueBankVo; import com.yxt.anrui.terminal.api.risk.overduebank.OverdueBankVo;
import com.yxt.anrui.terminal.api.risk.overduebank.flowable.BankDelegateQuery;
import com.yxt.anrui.terminal.api.risk.overduebank.flowable.OverdueBankDto; import com.yxt.anrui.terminal.api.risk.overduebank.flowable.OverdueBankDto;
import com.yxt.anrui.terminal.api.risk.overduebank.flowable.OverdueBankQuery; import com.yxt.anrui.terminal.api.risk.overduebank.flowable.OverdueBankQuery;
import com.yxt.anrui.terminal.api.risk.overduebank.flowable.OverdueBankTaskQuery; import com.yxt.anrui.terminal.api.risk.overduebank.flowable.OverdueBankTaskQuery;
@ -53,4 +54,9 @@ public class OverdueBankRest implements OverdueBankFeign {
public ResultBean<OverdueBankVo> getOverdueBankApply(String sid) { public ResultBean<OverdueBankVo> getOverdueBankApply(String sid) {
return overdueBankService.getOverdueBankApply(sid); return overdueBankService.getOverdueBankApply(sid);
} }
@Override
public ResultBean delegate(BankDelegateQuery delegateQuery) {
return overdueBankService.delegate(delegateQuery);
}
} }

17
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/overduebank/OverdueBankService.java

@ -1,17 +1,16 @@
package com.yxt.anrui.terminal.biz.risk.overduebank; package com.yxt.anrui.terminal.biz.risk.overduebank;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.riskcenter.api.loandiff.flowable.DelegateQuery;
import com.yxt.anrui.riskcenter.api.loanoverduebank.LoanOverdueBankAppDetailsVo; import com.yxt.anrui.riskcenter.api.loanoverduebank.LoanOverdueBankAppDetailsVo;
import com.yxt.anrui.riskcenter.api.loanoverduebank.LoanOverdueBankFeign; import com.yxt.anrui.riskcenter.api.loanoverduebank.LoanOverdueBankFeign;
import com.yxt.anrui.riskcenter.api.loanoverduebank.flowable.CompleteBankDto; import com.yxt.anrui.riskcenter.api.loanoverduebank.flowable.*;
import com.yxt.anrui.riskcenter.api.loanoverduebank.flowable.OverdueBankApplyNodeQuery;
import com.yxt.anrui.riskcenter.api.loanoverduebank.flowable.OverdueBankApplyNodeVo;
import com.yxt.anrui.riskcenter.api.loanoverduebank.flowable.OverdueBankApplyTaskQuery;
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyNodeQuery; import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyNodeQuery;
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyNodeVo; import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyNodeVo;
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyTaskQuery; import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyTaskQuery;
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateCompleteDto; import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateCompleteDto;
import com.yxt.anrui.terminal.api.risk.overduebank.OverdueBankVo; import com.yxt.anrui.terminal.api.risk.overduebank.OverdueBankVo;
import com.yxt.anrui.terminal.api.risk.overduebank.flowable.BankDelegateQuery;
import com.yxt.anrui.terminal.api.risk.overduebank.flowable.OverdueBankDto; import com.yxt.anrui.terminal.api.risk.overduebank.flowable.OverdueBankDto;
import com.yxt.anrui.terminal.api.risk.overduebank.flowable.OverdueBankQuery; import com.yxt.anrui.terminal.api.risk.overduebank.flowable.OverdueBankQuery;
import com.yxt.anrui.terminal.api.risk.overduebank.flowable.OverdueBankTaskQuery; import com.yxt.anrui.terminal.api.risk.overduebank.flowable.OverdueBankTaskQuery;
@ -116,6 +115,16 @@ public class OverdueBankService {
} }
LoanOverdueBankAppDetailsVo loanOverdueBankAppDetailsVo = resultBean.getData(); LoanOverdueBankAppDetailsVo loanOverdueBankAppDetailsVo = resultBean.getData();
BeanUtil.copyProperties(loanOverdueBankAppDetailsVo, overdueBankVo); BeanUtil.copyProperties(loanOverdueBankAppDetailsVo, overdueBankVo);
overdueBankVo.setPublishInso(loanOverdueBankAppDetailsVo.getCreateDept() + "-" + loanOverdueBankAppDetailsVo.getCreateByName());
return rb.success().setData(overdueBankVo); return rb.success().setData(overdueBankVo);
} }
public ResultBean delegate(BankDelegateQuery delegateQuery) {
ResultBean rb = ResultBean.fireFail();
OverBankApplyDelegateQuery delegateQuery1 = new
OverBankApplyDelegateQuery();
BeanUtil.copyProperties(delegateQuery, delegateQuery1);
ResultBean delegate = loanOverdueBankFeign.delegate(delegateQuery1);
return rb.success();
}
} }

6
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/overduefin/OverdueFinRest.java

@ -2,6 +2,7 @@ package com.yxt.anrui.terminal.biz.risk.overduefin;
import com.yxt.anrui.terminal.api.risk.overduefin.OverDueFnAppVo; import com.yxt.anrui.terminal.api.risk.overduefin.OverDueFnAppVo;
import com.yxt.anrui.terminal.api.risk.overduefin.OverdueFinFeign; import com.yxt.anrui.terminal.api.risk.overduefin.OverdueFinFeign;
import com.yxt.anrui.terminal.api.risk.overduefin.flowable.FinDelegateQuery;
import com.yxt.anrui.terminal.api.risk.overduefin.flowable.OverdueFinDto; import com.yxt.anrui.terminal.api.risk.overduefin.flowable.OverdueFinDto;
import com.yxt.anrui.terminal.api.risk.overduefin.flowable.OverdueFinQuery; import com.yxt.anrui.terminal.api.risk.overduefin.flowable.OverdueFinQuery;
import com.yxt.anrui.terminal.api.risk.overduefin.flowable.OverdueFinTaskQuery; import com.yxt.anrui.terminal.api.risk.overduefin.flowable.OverdueFinTaskQuery;
@ -53,4 +54,9 @@ public class OverdueFinRest implements OverdueFinFeign {
public ResultBean<OverDueFnAppVo> getOverdueFinApply(String sid) { public ResultBean<OverDueFnAppVo> getOverdueFinApply(String sid) {
return overdueFinService.getOverdueFinApply(sid); return overdueFinService.getOverdueFinApply(sid);
} }
@Override
public ResultBean delegate(FinDelegateQuery delegateQuery) {
return overdueFinService.delegate(delegateQuery);
}
} }

17
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/overduefin/OverdueFinService.java

@ -1,13 +1,12 @@
package com.yxt.anrui.terminal.biz.risk.overduefin; package com.yxt.anrui.terminal.biz.risk.overduefin;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.riskcenter.api.loanoverduebank.flowable.OverBankApplyDelegateQuery;
import com.yxt.anrui.riskcenter.api.loanoverduefin.LoanOverdueFinAppVo; import com.yxt.anrui.riskcenter.api.loanoverduefin.LoanOverdueFinAppVo;
import com.yxt.anrui.riskcenter.api.loanoverduefin.LoanOverdueFinFeign; import com.yxt.anrui.riskcenter.api.loanoverduefin.LoanOverdueFinFeign;
import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.CompleteDto; import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.*;
import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.OverdueApplyNodeQuery;
import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.OverdueApplyNodeVo;
import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.OverdueApplyTaskQuery;
import com.yxt.anrui.terminal.api.risk.overduefin.OverDueFnAppVo; import com.yxt.anrui.terminal.api.risk.overduefin.OverDueFnAppVo;
import com.yxt.anrui.terminal.api.risk.overduefin.flowable.FinDelegateQuery;
import com.yxt.anrui.terminal.api.risk.overduefin.flowable.OverdueFinDto; import com.yxt.anrui.terminal.api.risk.overduefin.flowable.OverdueFinDto;
import com.yxt.anrui.terminal.api.risk.overduefin.flowable.OverdueFinQuery; import com.yxt.anrui.terminal.api.risk.overduefin.flowable.OverdueFinQuery;
import com.yxt.anrui.terminal.api.risk.overduefin.flowable.OverdueFinTaskQuery; import com.yxt.anrui.terminal.api.risk.overduefin.flowable.OverdueFinTaskQuery;
@ -111,6 +110,16 @@ public class OverdueFinService {
} }
LoanOverdueFinAppVo loanOverdueFinAppVo = resultBean.getData(); LoanOverdueFinAppVo loanOverdueFinAppVo = resultBean.getData();
BeanUtil.copyProperties(loanOverdueFinAppVo, overDueFnAppVo); BeanUtil.copyProperties(loanOverdueFinAppVo, overDueFnAppVo);
overDueFnAppVo.setPublishInso(loanOverdueFinAppVo.getCreateDept() + "-" + loanOverdueFinAppVo.getCreateByName());
return rb.success().setData(overDueFnAppVo); return rb.success().setData(overDueFnAppVo);
} }
public ResultBean delegate(FinDelegateQuery delegateQuery) {
ResultBean rb = ResultBean.fireFail();
OverFinApplyDelegateQuery delegateQuery1 = new
OverFinApplyDelegateQuery();
BeanUtil.copyProperties(delegateQuery, delegateQuery1);
ResultBean delegate = loanOverdueFinFeign.delegate(delegateQuery1);
return rb.success();
}
} }

138
doc/databases/risk_center.sql

@ -1388,56 +1388,97 @@ CREATE TABLE `loan_overdue_bank_details`
DEFAULT CHARSET = utf8 COMMENT ='逾期对账申请(资方)管理-明细'; DEFAULT CHARSET = utf8 COMMENT ='逾期对账申请(资方)管理-明细';
DROP TABLE IF EXISTS `loan_return_veh_ledger`; DROP TABLE IF EXISTS `loan_return_inbound_apply`;
CREATE TABLE `loan_return_veh_ledger` CREATE TABLE `loan_return_inbound_apply`
( (
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id', `id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid', `sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(32) DEFAULT '0' COMMENT '版本锁', `lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', `modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用', `isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
`state` int(32) DEFAULT '1' COMMENT '状态', `state` int(32) DEFAULT '1' COMMENT '状态',
`isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除', `isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注', `remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid', `createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid', `updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`vinSid` varchar(64) DEFAULT NULL COMMENT '车辆sid', `createDept` varchar(64) DEFAULT NULL COMMENT '申请部门',
`vinNo` varchar(64) DEFAULT NULL COMMENT '车架号', `createDeptSid` varchar(64) DEFAULT NULL COMMENT '申请部门sid',
`vehMark` varchar(64) DEFAULT NULL COMMENT '车牌号', `createByName` varchar(64) DEFAULT NULL COMMENT '申请人',
`vehType` varchar(64) DEFAULT NULL COMMENT '车辆类型', `vinNo` varchar(64) DEFAULT NULL COMMENT '车架号',
`vehModel` varchar(64) DEFAULT NULL COMMENT '车型', `vinSid` varchar(64) DEFAULT NULL COMMENT '车辆sid',
`vehModelSid` varchar(64) DEFAULT NULL COMMENT '车型sid', `vehMark` varchar(64) DEFAULT NULL COMMENT '车牌号',
`configSid` varchar(64) DEFAULT NULL COMMENT '配置sid', `firstDate` varchar(64) DEFAULT NULL COMMENT '首次登记日期',
`configName` varchar(64) DEFAULT NULL COMMENT '配置', `modelName` varchar(64) DEFAULT NULL COMMENT '车型',
`customer` varchar(64) DEFAULT NULL COMMENT '客户名称', `modelSid` varchar(64) DEFAULT NULL COMMENT '车型sid',
`customerSid` varchar(64) DEFAULT NULL COMMENT '客户sid', `configSid` varchar(64) DEFAULT NULL COMMENT '配置sid',
`borrowerName` varchar(64) DEFAULT NULL COMMENT '贷款人', `configName` text DEFAULT NULL COMMENT '配置',
`borrowerSid` varchar(64) DEFAULT NULL COMMENT '贷款人sid', `tralier` varchar(64) DEFAULT NULL COMMENT '是否带挂车',
`location` varchar(64) DEFAULT NULL COMMENT '存放地点', `customerName` varchar(64) DEFAULT NULL COMMENT '客户名称',
`locationSid` varchar(64) DEFAULT NULL COMMENT '存放地点sid', `customerSid` varchar(64) DEFAULT NULL COMMENT '客户sid',
`disposalKey` varchar(64) DEFAULT NULL COMMENT '处置方式key', `loanSid` varchar(64) DEFAULT NULL COMMENT '贷款人sid',
`stockState` varchar(64) DEFAULT NULL COMMENT '库存状态', `loanName` varchar(64) DEFAULT NULL COMMENT '贷款人',
`stockStateKey` varchar(64) DEFAULT NULL COMMENT '库存状态key', `loanContractNo` varchar(64) DEFAULT NULL COMMENT '贷款合同编号',
`disposal` varchar(64) DEFAULT NULL COMMENT '处置方式(未处置/客户赎回/二次销售/二次转租)', `bankName` varchar(64) DEFAULT NULL COMMENT '资方',
`inboundMoney` int(32) DEFAULT NULL COMMENT '入库价', `bankContractNo` varchar(64) DEFAULT NULL COMMENT '资方合同编号',
`inboundDate` date DEFAULT NULL COMMENT '入库日期', `inboundMoney` int(32) DEFAULT NULL COMMENT '入库价',
`outboundDate` date DEFAULT NULL COMMENT '出库日期', `locationName` varchar(64) DEFAULT NULL COMMENT '停放地点',
`useOrgSid` varchar(64) DEFAULT NULL COMMENT '分公司sid', `locationSid` varchar(64) DEFAULT NULL COMMENT '停放地点sid',
`useOrgName` varchar(64) DEFAULT NULL COMMENT '分公司名称', `parkFees` decimal(10, 0) DEFAULT NULL COMMENT '停车收费标准',
`orgSidPath` varchar(64) DEFAULT NULL COMMENT '组织全路径', `alRepaidMoney` decimal(10, 0) DEFAULT NULL COMMENT '已还金额',
`overMoney` decimal(10, 2) DEFAULT NULL COMMENT '逾期金额', `currentBeMoney` decimal(10, 0) DEFAULT NULL COMMENT '当前逾期金额',
`notBecomeDueMoney` decimal(10, 2) DEFAULT NULL COMMENT '未到期金额', `wheFundOccMoney` decimal(10, 0) DEFAULT NULL COMMENT '其中资金占用费',
`unexpiredMoney` decimal(10, 0) DEFAULT NULL COMMENT '未到期金额',
`nper` varchar(64) DEFAULT NULL COMMENT '总期数',
`currentPeriod` varchar(64) DEFAULT NULL COMMENT '当前期数',
`alRepaidMoneyConPeriod` varchar(64) DEFAULT NULL COMMENT '已还金额换算期数',
`beOverdueMoneyAndPeriod` varchar(64) DEFAULT NULL COMMENT '逾期金额换算期数',
`nodeState` varchar(64) DEFAULT NULL COMMENT '流程状态',
`useOrgSid` varchar(64) DEFAULT NULL COMMENT '分公司sid',
`useOrgName` varchar(64) DEFAULT NULL COMMENT '分公司',
`closeDate` varchar(64) DEFAULT NULL COMMENT '办结日期',
`procInstId` varchar(64) DEFAULT NULL COMMENT '实例id',
`procDefId` varchar(64) DEFAULT NULL COMMENT '流程定义id',
`taskId` varchar(64) DEFAULT NULL COMMENT '任务id',
`busVinSid` varchar(64) DEFAULT NULL COMMENT '销售订单车辆sid',
`taskDefKey` varchar(64) DEFAULT NULL COMMENT '环节id',
`orgSidPath` text DEFAULT NULL COMMENT '机构全路径sid',
`files` text DEFAULT NULL COMMENT '附件',
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
KEY `id` (`id`) KEY `id` (`id`)
) ENGINE = INNODB ) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='交回车辆台账'; DEFAULT CHARSET = utf8 COMMENT ='交回车辆入库申请';
DROP TABLE IF EXISTS `loan_return_inbound_trailer`;
CREATE TABLE `loan_return_inbound_trailer`
(
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
`state` int(32) DEFAULT '1' COMMENT '状态',
`isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`mainSid` varchar(64) DEFAULT NULL COMMENT '交回车辆主车sid',
`vinSid` varchar(64) DEFAULT NULL COMMENT '车辆sid',
`vinNo` varchar(64) DEFAULT NULL COMMENT '车架号',
`vehMark` varchar(64) DEFAULT NULL COMMENT '车牌号',
`trailerType` varchar(64) DEFAULT NULL COMMENT '挂车类型',
`trailerTypeKey` varchar(64) DEFAULT NULL COMMENT '挂车类型key',
`inboundMoney` int(32) DEFAULT NULL COMMENT '入库价',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='交回车辆入库挂车';
DROP TABLE IF EXISTS `loan_return_trailer_ledger`; DROP TABLE IF EXISTS `loan_return_veh_ledger`;
CREATE TABLE `loan_return_trailer_ledger` CREATE TABLE `loan_return_veh_ledger`
( (
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id', `id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid', `sid` varchar(64) NOT NULL COMMENT 'sid',
@ -1450,15 +1491,15 @@ CREATE TABLE `loan_return_trailer_ledger`
`remarks` varchar(255) DEFAULT NULL COMMENT '备注', `remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid', `createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid', `updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`mainSid` varchar(64) DEFAULT NULL COMMENT '交回车辆主车sid',
`vinSid` varchar(64) DEFAULT NULL COMMENT '车辆sid', `vinSid` varchar(64) DEFAULT NULL COMMENT '车辆sid',
`vinNo` varchar(64) DEFAULT NULL COMMENT '车架号', `vinNo` varchar(64) DEFAULT NULL COMMENT '车架号',
`vehMark` varchar(64) DEFAULT NULL COMMENT '车牌号', `vehMark` varchar(64) DEFAULT NULL COMMENT '车牌号',
`vehType` varchar(64) DEFAULT NULL COMMENT '车辆类型', `vehType` varchar(64) DEFAULT NULL COMMENT '车辆类型',
`vehTypeKey` varchar(64) DEFAULT NULL COMMENT '车辆类型Key',
`vehModel` varchar(64) DEFAULT NULL COMMENT '车型', `vehModel` varchar(64) DEFAULT NULL COMMENT '车型',
`vehModelSid` varchar(64) DEFAULT NULL COMMENT '车型sid', `vehModelSid` varchar(64) DEFAULT NULL COMMENT '车型sid',
`configSid` varchar(64) DEFAULT NULL COMMENT '配置sid', `configSid` varchar(64) DEFAULT NULL COMMENT '配置sid',
`configName` varchar(64) DEFAULT NULL COMMENT '配置', `configName` text DEFAULT NULL COMMENT '配置',
`customer` varchar(64) DEFAULT NULL COMMENT '客户名称', `customer` varchar(64) DEFAULT NULL COMMENT '客户名称',
`customerSid` varchar(64) DEFAULT NULL COMMENT '客户sid', `customerSid` varchar(64) DEFAULT NULL COMMENT '客户sid',
`borrowerName` varchar(64) DEFAULT NULL COMMENT '贷款人', `borrowerName` varchar(64) DEFAULT NULL COMMENT '贷款人',
@ -1474,14 +1515,17 @@ CREATE TABLE `loan_return_trailer_ledger`
`outboundDate` date DEFAULT NULL COMMENT '出库日期', `outboundDate` date DEFAULT NULL COMMENT '出库日期',
`useOrgSid` varchar(64) DEFAULT NULL COMMENT '分公司sid', `useOrgSid` varchar(64) DEFAULT NULL COMMENT '分公司sid',
`useOrgName` varchar(64) DEFAULT NULL COMMENT '分公司名称', `useOrgName` varchar(64) DEFAULT NULL COMMENT '分公司名称',
`orgSidPath` varchar(64) DEFAULT NULL COMMENT '组织全路径', `orgSidPath` text DEFAULT NULL COMMENT '组织全路径',
`overMoney` decimal(10, 2) DEFAULT NULL COMMENT '逾期金额', `overMoney` decimal(10, 2) DEFAULT NULL COMMENT '逾期金额',
`notBecomeDueMoney` decimal(10, 2) DEFAULT NULL COMMENT '未到期金额', `notBecomeDueMoney` decimal(10, 2) DEFAULT NULL COMMENT '未到期金额',
`pSid` varchar(64) DEFAULT NULL COMMENT '父sid',
`saleOrderSid` varchar(64) DEFAULT NULL COMMENT '销售订单sid',
`busVinSid` varchar(64) DEFAULT NULL COMMENT '销售订单车辆表sid',
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
KEY `id` (`id`) KEY `id` (`id`)
) ENGINE = INNODB ) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='交回车辆台账(挂车)'; DEFAULT CHARSET = utf8 COMMENT ='交回车辆台账';

19
doc/databases/统计报表更新.sql

@ -64,38 +64,41 @@ BEGIN
-- 更新库存-排产-未定(排产订单中未入库,且未被销售订单锁定) -- 更新库存-排产-未定(排产订单中未入库,且未被销售订单锁定)
UPDATE daily_report r UPDATE daily_report r
INNER JOIN ( INNER JOIN (
select sum(v.scount) as scount, v.useOrgSid, v.modelSid, v.modelConfigSid select sum(v.scount) as scount, v.useOrgSid, v.modelSid, v.modelConfigSid,v.carBrand
from ( from (
select ifnull(sum(si.num), 0) as scount, si.useOrgSid, si.modelSid, si.configSid modelConfigSid select ifnull(si.num, 0) as scount, si.useOrgSid, si.modelSid, si.configSid modelConfigSid,bbm.carBrand
from anrui_base.bus_vehicle_apply bo from anrui_base.bus_vehicle_apply bo
left join anrui_scm.scm_apply_inbound si on bo.sid = si.vehicleOrderSid left join anrui_scm.scm_apply_inbound si on bo.sid = si.vehicleOrderSid
left join anrui_base.bus_vehicle_order bbo on bbo.purchaseRequisitionSid = bo.sid left join anrui_base.bus_vehicle_order bbo on bbo.purchaseRequisitionSid = bo.sid
left join anrui_base.base_vehicle_model bbm on bbm.sid = si.modelSid
where (si.nodeState != '已办结' and si.nodeState != '终止') where (si.nodeState != '已办结' and si.nodeState != '终止')
and bo.isDelete <> 1 and bo.isDelete <> 1
and bo.applyTypeKey = '001' and bo.applyTypeKey = '001'
and bo.sid not in (select bbbbo.linkSid from anrui_buscenter.bus_sales_vehicle_order bbbbo) and bo.sid not in (select bbbbo.linkSid from anrui_buscenter.bus_sales_vehicle_order bbbbo)
group by bo.createOrgSid group by si.applicationCode,bo.createOrgSid,si.modelSid,si.configSid
union all union all
select ifnull(sum(bo.platformNo), 0) as scount, select ifnull(sum(bo.platformNo), 0) as scount,
bo.useOrgSid, bo.useOrgSid,
bd.vehicleSid, bd.vehicleSid,
bd.configSid modelConfigSid bd.configSid modelConfigSid,bbm.carBrand
from anrui_base.bus_vehicle_order bo from anrui_base.bus_vehicle_order bo
left join anrui_base.bus_vehicle_apply_detail bd left join anrui_base.bus_vehicle_apply_detail bd
on bd.sid = bo.purchaseApplyMediumModelSid on bd.sid = bo.purchaseApplyMediumModelSid
left join anrui_base.base_vehicle_model bbm on bbm.sid = bd.vehicleSid
where bo.isDelete <> 1 where bo.isDelete <> 1
and LENGTH(offlineDate) = 0 and LENGTH(offlineDate) = 0
and bo.orderStatus != '已作废' and bo.orderStatus != '已作废'
and bo.sid not in (select bbbbo.linkSid from anrui_buscenter.bus_sales_vehicle_order bbbbo) and bo.sid not in (select bbbbo.linkSid from anrui_buscenter.bus_sales_vehicle_order bbbbo)
group by bo.createOrgSid group by bo.createOrgSid,bd.vehicleSid,bd.configSid
union all union all
(select ifnull(sum(si.num), 0) as scount, si.useOrgSid, si.modelSid, si.configSid modelConfigSid select ifnull(si.num, 0) as scount, si.useOrgSid, si.modelSid, si.configSid modelConfigSid,bbm.carBrand
from anrui_base.bus_vehicle_apply bo from anrui_base.bus_vehicle_apply bo
left join anrui_scm.scm_apply_inbound si on bo.sid = si.vehicleOrderSid left join anrui_scm.scm_apply_inbound si on bo.sid = si.vehicleOrderSid
left join anrui_base.base_vehicle_model bbm on bbm.sid = si.modelSid
where (si.nodeState != '已办结' and si.nodeState != '终止') where (si.nodeState != '已办结' and si.nodeState != '终止')
and bo.isDelete <> 1 and bo.isDelete <> 1
and bo.applyTypeKey = '004' and bo.applyTypeKey = '004'
group by bo.createOrgSid) group by si.applicationCode,bo.createOrgSid,si.modelSid,si.configSid
) as v ) as v
GROUP BY v.`useOrgSid`, GROUP BY v.`useOrgSid`,
v.`modelSid`, v.`modelSid`,
@ -129,7 +132,7 @@ BEGIN
) ab ON ab.linkSid = bo.sid ) ab ON ab.linkSid = bo.sid
WHERE (si.nodeState != '已办结' AND si.nodeState != '终止') WHERE (si.nodeState != '已办结' AND si.nodeState != '终止')
AND bo.isDelete <> 1 AND bo.isDelete <> 1
group by bo.createOrgSid group by si.applicationCode,bo.createOrgSid,si.modelSid,si.configSid
) as v ) as v
GROUP BY v.`useOrgSid`, GROUP BY v.`useOrgSid`,
v.`modelSid`, v.`modelSid`,

Loading…
Cancel
Save