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 orderSid;
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.LoanParameterQuery;
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.LoanRepaymentScheduleFeign;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
@ -281,6 +282,7 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService<BusSale
records.removeAll(Collections.singleton(null));
if (!records.isEmpty()) {
for (BusLoancontractForRepayVo record : records) {
record.setHandleBtn(false);
if (StringUtils.isNotBlank(record.getSalesOrderSid())) {
List<BusSalesOrderVehicle> busSalesOrderVehicles = busSalesOrderVehicleService.selByLoanContractSid(record.getSalesOrderSid());
busSalesOrderVehicles.removeAll(Collections.singleton(null));
@ -293,8 +295,15 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService<BusSale
ResultBean<LoanRepaymentSchedule> repaymentSchedule = repaymentScheduleFeign.selByLoanContractSid(record.getSalesOrderSid());
if (repaymentSchedule.getData() != null) {
record.setBuilded("是");
List<LoanRepaymentHistory> histories = repaymentScheduleFeign.selHistoryBySid(repaymentSchedule.getData().getSid()).getData();
if (histories.isEmpty() || histories == null) {
record.setHandleBtn(true);
}
} else {
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"),
LOANRESTOREREPORTAPPLY("车辆交回事前报备申请", "process_w796wtt7:1:7822504"),
LOANREDEMPTIONAPPLY("车辆交回赎回申请", "process_qu4fq4r6:1:7820004"),
LOANRETUENINBOUNDAPPLY("交回车辆入库申请", "process_h0i1vnn8:1:7945004"),
/******************************测试流程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("本日销售")
private int sale_subtotal_day;
@ApiModelProperty("欠款出库金额")
private int arrears_carry_veh_amount;
private String arrears_carry_veh_amount;
@ApiModelProperty("金融未放款金额")
private int loan_not_amount;
private String loan_not_amount;
@ApiModelProperty("本日买断")
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 List<LoanBuckleFile> files = 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("实还日期")
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 lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
@ -23,5 +24,7 @@ public class LoanBuckleApplyRecord extends BaseEntity {
private String mainSid;
@ApiModelProperty("还款记录sid")
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;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.anrui.riskcenter.api.loanoverduebankdetails.LoanOverdueBankDetailsDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -36,4 +37,10 @@ public class LoanOverdueBankAppDetailsVo {
//逾期客户列表
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;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.anrui.riskcenter.api.loanoverduefindetails.LoanOverdueFinAppDetailsVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -34,4 +35,9 @@ public class LoanOverdueFinAppVo {
@ApiModelProperty("逾期客户列表")
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;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationQuery;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationVo;
import com.yxt.common.core.query.PagerQuery;
@ -47,11 +48,16 @@ public interface LoanRepaymentScheduleFeign {
@ResponseBody
public ResultBean<List<LoanCreateScheduleVinOneVo>> viewVinOneSchedule(@RequestParam("salesOrderSid") String salesOrderSid);
@ApiOperation("查看单台还款计划表")
@ApiOperation("查看还款计划表")
@GetMapping("/selByLoanContractSid")
@ResponseBody
ResultBean<LoanRepaymentSchedule> selByLoanContractSid(@RequestParam("loanContractSid") String loanContractSid);
@ApiOperation("查看还款计划表")
@GetMapping("/selHistoryBySid")
@ResponseBody
ResultBean<List<LoanRepaymentHistory>> selHistoryBySid(@RequestParam("sid") String sid);
//-------------------------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;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -40,6 +41,11 @@ public class LoanRepaymentScheduleFeignFallback implements LoanRepaymentSchedule
return null;
}
@Override
public ResultBean<List<LoanRepaymentHistory>> selHistoryBySid(String sid) {
return null;
}
@Override
public ResultBean<PagerVo<AppRepaymentPlanVo>> getRepaymentPlanList(PagerQuery<AppRepaymentPlanQuery> pq) {
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; // 资方
@ApiModelProperty("资方合同编号")
private String bankContractNo; // 资方合同编号
@ApiModelProperty("已还金额")
private String alRepaidMoney; // 已还金额
@ApiModelProperty("当前逾期金额")
@ -100,6 +101,7 @@ public class LoanRestoreReportApplyDetailsVo implements Vo {
private String alRepaidMoneyConPeriod; // 已还金额换算期数
@ApiModelProperty("逾期金额换算期数")
private String beOverdueMoneyAndPeriod; // 逾期金额换算期数
@ApiModelProperty("交回方式key")
private String restoreTypeKey; // 交回方式key
@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())),
0
)
), 1) AS beOverdueMoneyAndPeriod
) / a1.dueMoney, 1) AS beOverdueMoneyAndPeriod
FROM
(SELECT
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())),
0
)
), 1) AS beOverdueMoneyAndPeriod,
) / a1.dueMoney, 1) AS beOverdueMoneyAndPeriod,
SUM(a1.yd_dkje) AS advMoney,
SUM(a1.yd_zjzyf) AS fundPossCostMoney,
a1.riskStaffUserSid,
@ -192,7 +192,7 @@
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE())),
0
)
), 1) AS beOverdueMoneyAndPeriod,
) / a1.dueMoney, 1) AS beOverdueMoneyAndPeriod,
a1.busVinSid AS saleVehSid,
a1.salesOrderSid,
a1.lockCarState
@ -207,6 +207,7 @@
lrpd.borrowerName,
lrpd.dueDate,
lrpd.vehMark,
lrpd.dueMoney,
(
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))
) 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("期数不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getPeriod())){
if (StringUtils.isNotBlank(excelInfo.getPeriod())) {
String period = excelInfo.getPeriod();
Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
boolean matches = pattern.matcher(period).matches();
if (!matches){
if (!matches) {
checkWord.add("期数必须为数字");
break;
}
@ -567,11 +567,11 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
checkWord.add("逾期本金不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getBePrincipal())){
if (StringUtils.isNotBlank(excelInfo.getBePrincipal())) {
String bePrincipal = excelInfo.getBePrincipal();
Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
boolean matches = pattern.matcher(bePrincipal).matches();
if (!matches){
if (!matches) {
checkWord.add("逾期本金必须为数字");
break;
}
@ -580,11 +580,11 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
checkWord.add("逾期罚息不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getBeDefInter())){
if (StringUtils.isNotBlank(excelInfo.getBeDefInter())) {
String beDefInter = excelInfo.getBeDefInter();
Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
boolean matches = pattern.matcher(beDefInter).matches();
if (!matches){
if (!matches) {
checkWord.add("逾期罚息必须为数字");
break;
}
@ -848,6 +848,7 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
LoanBePadsincereApply loanBePadsincereApply = fetchBySid(businessSid);
List<LoanBePadsincereVehDetailsVo> loanBePadsincereVehDetailsVos = loanBePadsincereVehService.selByMainSid(loanBePadsincereApply.getSid());
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
@ -871,31 +872,33 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
FinPaymentrecordDto finPaymentrecordDto = new FinPaymentrecordDto();
finPaymentrecordDto.setApplySid("");
finPaymentrecordDto.setPayCompanySid("");
finPaymentrecordDto.setPayType(0);
finPaymentrecordDto.setCreateOrgSid(loanBePadsincereApply.getUseOrgSid());
finPaymentrecordDto.setUseOrgSid(loanBePadsincereApply.getUseOrgSid());
finPaymentrecordDto.setCostTypeKey("");
finPaymentrecordDto.setCostTypeValue("");
finPaymentrecordDto.setCostTitleKey("");
finPaymentrecordDto.setCostTitleValue("");
finPaymentrecordDto.setReceiveBank("");
finPaymentrecordDto.setReceiveBankAccount("");
finPaymentrecordDto.setReceiveCompany("");
finPaymentrecordDto.setCost(0);
finPaymentrecordDto.setAccountsReceive(0);
finPaymentrecordDto.setBusSid("");
finPaymentrecordDto.setPayRemark(loanBePadsincereApply.getPaymentRemarks());
finPaymentrecordDto.setPayCode("");
finPaymentrecordDto.setCreateBySid(loanBePadsincereApply.getCreateBySid());
finPaymentrecordDto.setUpdateBySid(loanBePadsincereApply.getCreateBySid());
finPaymentrecordDto.setRemarks(loanBePadsincereApply.getRemarks());
finPaymentrecordDto.setPurchaseSystemSid("");
finPaymentrecordDto.setPurchaseSystemName("");
finPaymentrecordDto.setBusRemarks(loanBePadsincereApply.getPaymentRemarks());
finPaymentrecordFeign.save(finPaymentrecordDto);
for (LoanBePadsincereVehDetailsVo loanBePadsincereVehDetailsVo : loanBePadsincereVehDetailsVos) {
FinPaymentrecordDto finPaymentrecordDto = new FinPaymentrecordDto();
finPaymentrecordDto.setApplySid(loanBePadsincereApply.getSid());
finPaymentrecordDto.setPayCompanySid("");
finPaymentrecordDto.setPayType(1);
finPaymentrecordDto.setCreateOrgSid(loanBePadsincereApply.getUseOrgSid());
finPaymentrecordDto.setUseOrgSid(loanBePadsincereApply.getUseOrgSid());
finPaymentrecordDto.setCostTypeKey("007");
finPaymentrecordDto.setCostTypeValue("垫款");
finPaymentrecordDto.setCostTitleKey("008");
finPaymentrecordDto.setCostTitleValue("月还");
finPaymentrecordDto.setReceiveBank(loanBePadsincereVehDetailsVo.getBankCollectionAcc());
finPaymentrecordDto.setReceiveBankAccount(loanBePadsincereVehDetailsVo.getBankCollectionNum());
finPaymentrecordDto.setReceiveCompany("");
finPaymentrecordDto.setCost(Integer.parseInt(loanBePadsincereVehDetailsVo.getPadMoney()));
finPaymentrecordDto.setAccountsReceive(Integer.parseInt(loanBePadsincereVehDetailsVo.getPadMoney()));
finPaymentrecordDto.setBusSid(loanBePadsincereApply.getSid());
finPaymentrecordDto.setPayRemark(loanBePadsincereApply.getPaymentRemarks());
finPaymentrecordDto.setPayCode("");
finPaymentrecordDto.setCreateBySid(loanBePadsincereApply.getCreateBySid());
finPaymentrecordDto.setUpdateBySid(loanBePadsincereApply.getCreateBySid());
finPaymentrecordDto.setRemarks(loanBePadsincereApply.getRemarks());
finPaymentrecordDto.setPurchaseSystemSid("");
finPaymentrecordDto.setPurchaseSystemName("");
finPaymentrecordDto.setBusRemarks(loanBePadsincereApply.getPaymentRemarks());
finPaymentrecordFeign.save(finPaymentrecordDto);
}
} else {
//极光推送
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.flow.*;
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.LoanFileEnum;
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.loanrepaymentplandetails.LoanRepaymentPlanDetails;
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.loanrepaymenthistory.LoanRepaymentHistoryService;
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.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.*;
@ -115,6 +118,8 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
private BusSalesOrderFeign busSalesOrderFeign;
@Autowired
private BasePurchaseSystemFeign basePurchaseSystemFeign;
@Autowired
private LoanBucklePlanHistoryService loanBucklePlanHistoryService;
public PagerVo<LoanBuckleApplyVo> listPage(PagerQuery<LoanBuckleApplyQuery> pq) {
IPage<LoanBuckleApply> page = PagerUtil.queryToPage(pq);
@ -256,7 +261,20 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
LoanBuckleApplyRecord applyRecord = new LoanBuckleApplyRecord();
applyRecord.setMainSid(sid);
applyRecord.setRepaymentHistorySid(record.getRecordSid());
if (StringUtils.isNotBlank(record.getActualMoney())) {
applyRecord.setActualMoney(new BigDecimal(record.getActualMoney()));
}
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();
applyRecord.setMainSid(sid);
applyRecord.setRepaymentHistorySid(record.getRecordSid());
if (StringUtils.isNotBlank(record.getActualMoney())) {
applyRecord.setActualMoney(new BigDecimal(record.getActualMoney()));
}
loanBuckleApplyRecordService.insert(applyRecord);
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(record.getRecordSid());
if (null != repaymentHistory) {
repaymentHistory.setBuckle("申请中");
repaymentHistory.setBuckleKey("002");
loanRepaymentHistoryService.updateById(repaymentHistory);
List<String> historySids = record.getHistorySids();
if (!historySids.isEmpty()) {
for (String historySid : historySids) {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(historySid);
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<LoanBuckleHistoryRecord> recordList = new ArrayList<>();
if (!records.isEmpty()) {
for (LoanBuckleApplyRecord record : records) {
String historySid = record.getRepaymentHistorySid();
LoanBuckleHistoryRecord historyRecord = new LoanBuckleHistoryRecord();
LoanRepaymentHistoryRecordVo recordVo = loanRepaymentHistoryService.buckleInfo(historySid).getData();
if (null != recordVo) {
BeanUtil.copyProperties(recordVo, historyRecord);
for (LoanBuckleApplyRecord r : records) {
LoanBuckleHistoryRecord record = new LoanBuckleHistoryRecord();
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(r.getRepaymentHistorySid());
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());
}
}
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);
@ -571,15 +633,34 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
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);
List<String> historySids = loanBucklePlanHistoryService.fetchByMainSidAndPlanSid(businessSid, applyRecord.getRepaymentHistorySid());
if (!historySids.isEmpty()) {
historySids.stream().forEach(
v -> {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(v);
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 {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
@ -608,81 +689,77 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
GeneralVoucher generalVoucher = new GeneralVoucher();
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>();
for (LoanBuckleApplyRecord v : records) {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(v.getRepaymentHistorySid());
if (null != repaymentHistory) {
String planDetailSid = repaymentHistory.getPlanDetailSid();
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(planDetailSid);
if (null != planDetails) {
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
String state = loanRepaymentPlanDetailsService.selForPushBuckleVoucher(planDetailSid);
if (StringUtils.isNotBlank(state)) {
if (state.equals("0")) {
voucherDetail.setSceneCode("03");
} else if (state.equals("1")) {
voucherDetail.setSceneCode("02");
} else if (state.equals("2")) {
voucherDetail.setSceneCode("01");
}
}
String bankName = loanRepaymentPlanDetailsService.getBankNameByMainOrOtherPolicy(planDetails);
if (StringUtils.isNotBlank(bankName)) {
voucherDetail.setBankName(bankName);
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(v.getRepaymentHistorySid());
if (null != planDetails) {
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
String state = loanRepaymentPlanDetailsService.selForPushBuckleVoucher(v.getRepaymentHistorySid());
if (StringUtils.isNotBlank(state)) {
if (state.equals("0")) {
voucherDetail.setSceneCode("03");
} else if (state.equals("1")) {
voucherDetail.setSceneCode("02");
} else if (state.equals("2")) {
voucherDetail.setSceneCode("01");
}
String useOrgSid = planDetails.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
String deptSid = planDetails.getDeptSid();
SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData();
if (null != organizationDeptVo) {
voucherDetail.setDeptCode(organizationDeptVo.getOrgCode());
}
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(planDetails.getBusVinSid()).getData();
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(planDetails.getSalesOrderSid()).getData();
if (null != salesOrder) {
if (null != busSalesOrderVehicle) {
String customerNumber = "";
//判断财务系统是否有客户
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
String linkNo = "";
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
if (!aBoolean) {
// List<BdCustomer> bdCustomers = new ArrayList<>();
BdCustomer bdCustomer = new BdCustomer();
bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo());
bdCustomer.setFShortName(salesOrder.getContractNo());
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData();
bdCustomer.setTOrgIds(data.getOrgCode());
if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
String vinNo = busSalesOrderVehicle.getLinkNo();
if (vinNo.length() > 8) {
linkNo = vinNo.substring(vinNo.length() - 8);
} else {
linkNo = busSalesOrderVehicle.getLinkNo();
}
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo);
}
}
String bankName = loanRepaymentPlanDetailsService.getBankNameByMainOrOtherPolicy(planDetails);
if (StringUtils.isNotBlank(bankName)) {
voucherDetail.setBankName(bankName);
}
String useOrgSid = planDetails.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
String deptSid = planDetails.getDeptSid();
SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData();
if (null != organizationDeptVo) {
voucherDetail.setDeptCode(organizationDeptVo.getOrgCode());
}
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(planDetails.getBusVinSid()).getData();
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(planDetails.getSalesOrderSid()).getData();
if (null != salesOrder) {
if (null != busSalesOrderVehicle) {
String customerNumber = "";
//判断财务系统是否有客户
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
String linkNo = "";
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
if (!aBoolean) {
// List<BdCustomer> bdCustomers = new ArrayList<>();
BdCustomer bdCustomer = new BdCustomer();
bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo());
bdCustomer.setFShortName(salesOrder.getContractNo());
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData();
bdCustomer.setTOrgIds(data.getOrgCode());
if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
String vinNo = busSalesOrderVehicle.getLinkNo();
if (vinNo.length() > 8) {
linkNo = vinNo.substring(vinNo.length() - 8);
} else {
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo());
}
linkNo = busSalesOrderVehicle.getLinkNo();
}
// bdCustomers.add(bdCustomer);
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo);
}
} 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);
@ -817,14 +894,32 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
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);
List<String> historySids = loanBucklePlanHistoryService.fetchByMainSidAndPlanSid(query.getBusinessSid(), applyRecord.getRepaymentHistorySid());
if (!historySids.isEmpty()) {
historySids.stream().forEach(
v -> {
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());
} else {
@ -843,16 +938,22 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
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);
List<String> historySids = loanBucklePlanHistoryService.fetchByMainSidAndPlanSid(query.getBusinessSid(), applyRecord.getRepaymentHistorySid());
if (!historySids.isEmpty()) {
historySids.stream().forEach(
v -> {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(v);
if (null != repaymentHistory) {
repaymentHistory.setBuckle("审核未通过");
repaymentHistory.setBuckleKey("004");
loanRepaymentHistoryService.updateById(repaymentHistory);
}
}
);
}
}
}
}
return rb.success().setData(resultBean.getData());
}
}
@ -964,8 +1065,8 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
List<AppRecordVo> records = new ArrayList<>();
if (!applyRecords.isEmpty()) {
for (LoanBuckleApplyRecord applyRecord : applyRecords) {
String historySid = applyRecord.getRepaymentHistorySid();
LoanRepaymentHistoryRecordVo data = loanRepaymentHistoryService.buckleInfo(historySid).getData();
String planSid = applyRecord.getRepaymentHistorySid();
LoanRepaymentPlanDetails data = loanRepaymentPlanDetailsService.fetchBySid(planSid);
if (null != data) {
AppRecordVo appRecordVo = new AppRecordVo();
if (StringUtils.isNotBlank(data.getLoanContractNo())) {
@ -977,9 +1078,7 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
if (StringUtils.isNotBlank(data.getVinNo())) {
appRecordVo.setVin("车架号:" + data.getVinNo());
}
if (StringUtils.isNotBlank(data.getReturnWay())) {
appRecordVo.setType(data.getReturnWay());
}
appRecordVo.setType("");
if (StringUtils.isNotBlank(data.getBankName())) {
appRecordVo.setZf(data.getBankName());
}
@ -992,27 +1091,11 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
if (StringUtils.isNotBlank(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.setInfo2("实还日期:" + shihuandate + ",实还金额:" + shihuan);
if (applyRecord.getActualMoney() != null) {
String shihuan = applyRecord.getActualMoney().toString();
appRecordVo.setInfo2("实还金额:" + shihuan);
}
records.add(appRecordVo);
}
}
@ -1039,11 +1122,18 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
List<LoanBuckleApplyRecord> applyRecords = loanBuckleApplyRecordService.selByMainSid(sid);
if (!applyRecords.isEmpty()) {
for (LoanBuckleApplyRecord applyRecord : applyRecords) {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid());
if (null != repaymentHistory) {
repaymentHistory.setBuckle("未申请");
repaymentHistory.setBuckleKey("001");
loanRepaymentHistoryService.updateById(repaymentHistory);
List<String> historySids = loanBucklePlanHistoryService.fetchByMainSidAndPlanSid(sid, applyRecord.getRepaymentHistorySid());
if (!historySids.isEmpty()) {
historySids.stream().forEach(
v -> {
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
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">
<select id="fetchByMainSidAndPlanSid" resultType="java.lang.String">
SELECT recordSid
FROM loan_buckle_plan_history
WHERE mainSid = #{sid}
AND planSid = #{repaymentHistorySid}
</select>
</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 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;
// @Scheduled(cron = "0 0 0 * * ?")
@Scheduled(cron = "0 0 0 * * ?")
public void loanFundDayScheduled() {
/**
* 每天晚上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 lb.createDept,
lb.createByName,
DATE_FORMAT(lb.createTime, '%Y-%m-%d') as createDate,
lb.stopDate,
lb.remarks,
lb.files
lb.createByName,
DATE_FORMAT(lb.createTime, '%Y-%m-%d') as createDate,
lb.stopDate,
lb.remarks,
lb.files,
lb.procInstId,
lb.taskId
from loan_overdue_bank lb
where lb.sid = #{sid}
</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 lf.createDept,
lf.createByName,
date_format(lf.createTime, '%Y-%m-%d') as createDate,
lf.stopDate,
lf.remarks,
lf.files
lf.createByName,
date_format(lf.createTime, '%Y-%m-%d') as createDate,
lf.stopDate,
lf.remarks,
lf.files,
lf.procInstId,
lf.taskId
from loan_overdue_fin lf
where lf.sid = #{sid}
</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");
// List<String> filesList = dto.getFilesList();
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(), "");
loanOverdueFin.setFiles(files);
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(), "");
loanOverdueFin.setFiles(files);
}
} else {
loanOverdueFin.setFiles("");
}
List<LoanOverdueFinDetailsDto> detailsVoList = dto.getDetailsVoList();
detailsVoList.removeAll(Collections.singleton(null));
if (!detailsVoList.isEmpty()) {
loanOverdueFinDetailsService.saveOrUpdateDetails(detailsVoList, loanOverdueFin.getSid());
}else{
loanOverdueFinDetailsService.deleteByMainSid(sid);
}
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.vehType,
(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
b.borrowerSid = v.borrowerSid)) as bankName
(SELECT b.loanContractSid FROM anrui_buscenter.bus_sales_order_vehicle as b WHERE b.sid = v.busVinSid)) as
bankName
FROM loan_return_veh_ledger as v
<where>
${ew.sqlSegment}
</where>
</select>
<select id="redemptionInit" resultType="com.yxt.anrui.riskcenter.api.loanredemptionapply.RedemptionInitVo">
SELECT a.*,
c.bankName,
c.bankContractNo,
c.loanContractNo
FROM (SELECT v.sid ledgerSid,
v.vinNo,
v.vinSid,
v.vehMark,
v.vehModel,
v.customer,
v.vehType,
v.location,
v.borrowerName,
(SELECT b.sid
FROM anrui_buscenter.bus_sales_order_vehicle as b
WHERE b.linkSid = v.vinSid
and b.borrowerSid = v.borrowerSid) as busVinSid,
(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 v.sid ledgerSid,
v.vinNo,
v.vinSid,
v.vehMark,
v.vehModel,
v.customer,
v.vehType,
v.location,
v.borrowerName,
v.busVinSid,
l.bankContractNo,
l.loanContractNo,
l.bankName
FROM loan_return_veh_ledger as v
LEFT JOIN anrui_buscenter.bus_sales_order_vehicle as b ON v.busVinSid = b.sid
LEFT JOIN anrui_buscenter.bus_sales_order_loancontract as l ON l.sid = b.loanContractSid
WHERE v.sid = #{ledgerSid}
</select>
<select id="selTrailerByLedgerSid"
resultType="com.yxt.anrui.riskcenter.api.loanredemptionapply.RedemptionVinList">
@ -93,12 +86,12 @@
vehMark,
vehType,
vehModel
FROM loan_return_trailer_ledger as t
WHERE t.mainSid = #{ledgerSid}
FROM loan_return_veh_ledger as t
WHERE t.pSid = #{ledgerSid}
</select>
<select id="selTrailerByMainLedgerSid" resultType="java.lang.String">
SELECT sid
FROM loan_return_trailer_ledger as t
WHERE t.mainSid = #{ledgerSid}
FROM loan_return_veh_ledger as t
WHERE t.pSid = #{ledgerSid}
</select>
</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.orderByDesc("a.createTime");
qw.eq("v.vehType", "0");
qw.eq("v.vehType", "主车");
IPage<LoanRedemptionApplyVo> pagging = baseMapper.listPage(page, qw);
PagerVo<LoanRedemptionApplyVo> p = PagerUtil.pageToVo(pagging, null);
return p;
@ -241,7 +241,8 @@ public class LoanRedemptionApplyService extends MybatisBaseService<LoanRedemptio
qw.eq("v.isDelete", 0);
qw.orderByDesc("v.createTime");
qw.eq("v.stockState", "库存");
qw.eq("disposal", "未处置");
qw.eq("v.disposal", "未处置");
qw.eq("v.vehType","主车");
IPage<VinListVo> pagging = baseMapper.getVinList(page, qw);
PagerVo<VinListVo> p = PagerUtil.pageToVo(pagging, null);
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<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);
@ -51,4 +51,6 @@ public interface LoanRepaymentHistoryMapper extends BaseMapper<LoanRepaymentHist
List<RepaymentStatisticsExportVo> repaymentStatisticsExport(@Param(Constants.WRAPPER) QueryWrapper<LoanRepaymentHistory> qw);
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
where planDetailSid = #{planSid}
and returnWayKey != '02'
and updateState = '1'
</select>
<select id="selUpdateStateList" resultType="java.lang.String">
SELECT
@ -113,7 +114,7 @@
</where>
</select>
<select id="selbuckleNewInitList"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistoryVo">
resultType="com.yxt.anrui.riskcenter.api.loanrepaymenthistory.RepaymentHistoryVoForBuckle">
SELECT
h.sid,
p.loanContractNo,
@ -155,18 +156,18 @@
date_format(h.actualDate, '%Y-%m-%d') AS actualDate,
h.actualMoney,
h.planDetailSid,
r.spread,
r.transferPrincipal,
r.defaultInterest,
r.accountType,
r.account,
r.accountNumber,
-- r.spread,
-- r.transferPrincipal,
-- r.defaultInterest,
-- r.accountType,
-- r.account,
-- r.accountNumber,
date_format(h.transferDate, '%Y-%m-%d') AS transferDate,
date_format(h.prepareDate, '%Y-%m-%d') AS prepareDate
FROM
loan_repayment_history AS h
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_fin_policy as po ON s.policySid = po.sid
LEFT JOIN loan_fin_bank as b ON b.sid = po.bankSid
@ -178,7 +179,8 @@
resultType="com.yxt.anrui.riskcenter.api.loanrepaymenthistory.RepaymentStatisticsVo">
SELECT DISTINCT
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
(
SELECT
@ -354,9 +356,8 @@
</where>
</select>
<select id="getMaxUpdateTimeByBankContractNo" resultType="java.lang.String">
SELECT
MAX(h.actualDate)
as updateTime
SELECT MAX(h.actualDate)
as updateTime
FROM loan_repayment_history AS h
LEFT JOIN loan_repayment_plan_details AS p
ON h.planDetailSid = p.sid
@ -364,5 +365,17 @@
AND h.returnWayKey = '01'
AND p.bankContractNo = #{bankContractNo}
</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>

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.date.DateTime;
import cn.hutool.core.math.Money;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.LoanParameterVo;
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.LoanRepaymentPlanDetails;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsDto;
@ -74,6 +76,7 @@ import java.util.concurrent.*;
import java.util.function.Predicate;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collector;
import java.util.stream.Collectors;
@ -932,6 +935,7 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
}
}
public ResultBean<LoanBuckleApplyInit> buckleNewInit(String orgPath) {
ResultBean<LoanBuckleApplyInit> rb = ResultBean.fireFail();
LoanBuckleApplyInit vo = new LoanBuckleApplyInit();
@ -951,42 +955,95 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
qw.ne("h.buckleKey", "002");
qw.ne("h.buckleKey", "003");
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<>();
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);
}
}
countMoney = histories.stream()
.collect(Collectors.groupingBy(RepaymentHistoryVoForBuckle::getPlanDetailSid, CollectorsUtil.summingBigDecimal(RepaymentHistoryVoForBuckle::getActualMoney)));
sids = histories.stream()
.collect(Collectors.groupingBy(RepaymentHistoryVoForBuckle::getPlanDetailSid, Collectors.mapping(RepaymentHistoryVoForBuckle::getSid, Collectors.toList())));
}
for (Map.Entry<String, BigDecimal> entry : countMoney.entrySet()) {
if (entry.getValue().compareTo(BigDecimal.ZERO) > 0) {
newMap.put(entry.getKey(), entry.getValue());
}
}
Iterator<LoanRepaymentHistoryVo> it = histories.iterator();
while (it.hasNext()) {
LoanRepaymentHistoryVo historyVo = it.next();
if (!planSids.isEmpty()) {
if (planSids.contains(historyVo.getPlanDetailSid())) {
it.remove();
for (Map.Entry<String, List<String>> entry : sids.entrySet()) {
for (Map.Entry<String, BigDecimal> entry2 : newMap.entrySet()) {
if (entry.getKey().equals(entry2.getKey())) {
stringListMap.put(entry.getKey(), entry.getValue());
}
}
}
if (!histories.isEmpty()) {
for (LoanRepaymentHistoryVo history : histories) {
LoanBuckleHistoryRecord record = new LoanBuckleHistoryRecord();
LoanRepaymentHistoryRecordVo recordVo = baseMapper.buckleInfo(history.getSid());
if (null != recordVo) {
BeanUtil.copyProperties(recordVo, record);
for (Map.Entry<String, List<String>> entry : stringListMap.entrySet()) {
LoanBuckleHistoryRecord record = new LoanBuckleHistoryRecord();
record.setRecordSid(entry.getKey());
record.setHistorySids(entry.getValue());
record.setActualMoney(newMap.get(entry.getKey()).toString());
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);
return rb.success().setData(vo);
}
@ -1077,7 +1134,6 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
if (StringUtils.isNotBlank(pagerQuery.getAccountTypeKey())) {
qw.like("r.accountTypeKey", pagerQuery.getAccountTypeKey());
}
qw.eq("r.state", 0);
String dueStartDate = pagerQuery.getDueStartDate();
String dueEndDate = pagerQuery.getDueEndDate();
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)");
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);
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.bankContractNo = #{bankContractNo}
AND DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
AND lrh.`updateState` = '1'
GROUP BY lrpd.`sid`
HAVING (yq_total > 0)
</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.metadata.IPage;
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.loanwarrantinformation.LoanWarrantInformation;
import org.apache.ibatis.annotations.Mapper;
@ -32,4 +33,5 @@ public interface LoanRepaymentScheduleMapper extends BaseMapper<LoanRepaymentSch
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
where loanContractSid = #{loanContractSid}
</select>
<select id="selHistoryBySid"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory">
SELECT sid
FROM loan_repayment_history
WHERE scheduleSid = #{sid}
</select>
</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;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.*;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationVo;
import com.yxt.common.core.query.PagerQuery;
@ -51,6 +52,11 @@ public class LoanRepaymentScheduleRest implements LoanRepaymentScheduleFeign {
return loanRepaymentScheduleService.selByLoanContractSid(loanContractSid);
}
@Override
public ResultBean<List<LoanRepaymentHistory>> selHistoryBySid(String sid) {
return loanRepaymentScheduleService.selHistoryBySid(sid);
}
@Override
public ResultBean<PagerVo<AppRepaymentPlanVo>> getRepaymentPlanList(PagerQuery<AppRepaymentPlanQuery> pq) {
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.LoanFinPolicyVo;
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.loanrepaymentschedule.*;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
@ -2414,4 +2415,10 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
LoanRepaymentSchedule repaymentSchedule = baseMapper.selByLoanContractSid(loanContractSid);
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
SUM(lrh.`actualMoney`)
FROM
loan_repayment_history lrh
LEFT JOIN loan_repayment_plan_details lrpd
ON lrh.`planDetailSid` = lrpd.`sid`
IFNULL(SUM(lrh.`actualMoney`),0)
FROM
(SELECT DISTINCT
scheduleSid
FROM
loan_repayment_plan_details
WHERE busVinSid = #{saleVehSid}) lrpd
LEFT JOIN loan_repayment_history lrh
ON lrpd.`scheduleSid` = lrh.`scheduleSid`
WHERE lrh.updateState = '1'
AND lrpd.`busVinSid` = #{saleVehSid}
</select>
<select id="getWdqje" resultType="java.lang.String">
SELECT
SUM(lrh.`actualMoney`)
FROM
loan_repayment_history lrh
LEFT JOIN loan_repayment_plan_details lrpd
ON lrh.`planDetailSid` = lrpd.`sid`
IFNULL(SUM(lrpd.`dueMoney`),0)
FROM loan_repayment_plan_details lrpd
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &gt;= CURDATE()
AND lrpd.`busVinSid` = #{saleVehSid}
</select>
@ -78,28 +78,33 @@
<select id="getYhjehsqs" resultType="java.lang.String">
SELECT
ROUND(
SUM(lrh.`actualMoney`) / lrs.mainMidRepay,
IFNULL(SUM(lrh.`actualMoney`), 0) / lrs.mainMidRepay,
1
)
FROM
loan_repayment_history lrh
LEFT JOIN loan_repayment_plan_details lrpd
ON lrh.`planDetailSid` = lrpd.`sid`
(SELECT DISTINCT
scheduleSid
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
ON lrpd.scheduleSid = lrs.sid
WHERE lrh.updateState = '1'
AND lrpd.`busVinSid` = #{saleVehSid}
</select>
<select id="getDqyqje" resultType="java.lang.String">
SELECT
(
SUM(ss.yq_total) +
(IFNULL(SUM(ss.yq_total), 0)
+ IFNULL(
(SELECT
SUM(lbpv.`bankBeInter`)
FROM
loan_be_padsincere_veh lbpv
WHERE lbpv.saleVehSid = ss.busVinSid) +
WHERE lbpv.saleVehSid = ss.busVinSid),
0
) + IFNULL(
(SELECT
SUM(fund)
FROM
@ -110,7 +115,9 @@
FROM
loan_repayment_plan_details lrpd
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
AND lrpd.`busVinSid` = #{saleVehSid}))
AND lrpd.`busVinSid` = #{saleVehSid})),
0
)
) AS beMoney
FROM
(SELECT
@ -130,7 +137,7 @@
<select id="getQzzjzyf" resultType="java.lang.String">
SELECT
SUM(fund)
IFNULL(SUM(fund),0)
FROM
loan_fund_day
WHERE busSid IN
@ -146,12 +153,14 @@
SELECT
ROUND(
(
SUM(ss.yq_total) +
IFNULL(SUM(ss.yq_total), 0) + IFNULL(
(SELECT
SUM(lbpv.`bankBeInter`)
FROM
loan_be_padsincere_veh lbpv
WHERE lbpv.saleVehSid = ss.busVinSid) +
WHERE lbpv.saleVehSid = ss.busVinSid),
0
) + IFNULL(
(SELECT
SUM(fund)
FROM
@ -162,7 +171,9 @@
FROM
loan_repayment_plan_details lrpd
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
AND lrpd.`busVinSid` = #{saleVehSid}))
AND lrpd.`busVinSid` = #{saleVehSid})),
0
)
) / ss.mainMidRepay,
1
) 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());
loanRestoreReportApplyDetailsVo.setJrfaSid(loanSolutions.getSid());
loanRestoreReportApplyDetailsVo.setCurrentBeMoney(loanVehClearanceVehInit.getBeOverdueMoney());
loanRestoreReportApplyDetailsVo.setBeOverdueMoneyAndPeriod(loanVehClearanceVehInit.getBeOverdueMoneyAndPeriod());
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;
}

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())),
0
)
), 1) AS beOverdueMoneyAndPeriod,
) / a1.dueMoney, 1) AS beOverdueMoneyAndPeriod,
a1.busVinSid AS saleVehSid,
a1.salesOrderSid,
a1.lockCarMoney
@ -113,6 +113,7 @@
lrpd.borrowerName,
lrpd.dueDate,
lrpd.vehMark,
lrpd.dueMoney,
(
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))
) 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("是否有担保人")
private Boolean showDbr = false;
@ApiModelProperty("是否有还款协议")
private Boolean showXy = false;
@ApiModelProperty("是否有远程控制")
private Boolean showYckz = false;
@ApiModelProperty("销售订单车辆sid")
private String saleVehSid;
@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;
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.OverdueBankQuery;
import com.yxt.anrui.terminal.api.risk.overduebank.flowable.OverdueBankTaskQuery;
@ -50,4 +51,9 @@ public interface OverdueBankFeign {
@GetMapping("/getOverdueBankApply/{sid}")
@ResponseBody
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;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -33,4 +34,13 @@ public class OverdueBankVo {
private List<String> filesList = 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;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -32,5 +33,14 @@ public class OverDueFnAppVo {
@ApiModelProperty("逾期客户列表")
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;
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.OverdueFinQuery;
import com.yxt.anrui.terminal.api.risk.overduefin.flowable.OverdueFinTaskQuery;
@ -50,4 +52,9 @@ public interface OverdueFinFeign {
@GetMapping("/getOverdueFinApply/{sid}")
@ResponseBody
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.setSaleVehSid(loanBeCollectionVehDetail.getSaleVehSid());
LoanBeCollectionVehDbrDetailsVo loanBeCollectionVehDbrDetailsVo = loanBeCollectionVehFeign.initDbr(loanBeCollectionVehDetail.getSaleVehSid()).getData();
if (StringUtils.isNotBlank(loanBeCollectionVehDbrDetailsVo.getPeoName())) {
if (StringUtils.isNotBlank(loanBeCollectionVehDbrDetailsVo.getPeoName()) && collMeasures.contains("增加担保人")) {
appBeCollectionVehDetailsVo.setShowDbr(true);
}
if (collMeasures.contains("远程控制")){
appBeCollectionVehDetailsVo.setShowYckz(true);
}
if (collMeasures.contains("签订还款协议")){
appBeCollectionVehDetailsVo.setShowXy(true);
}
appBeCollectionVehDetailsVo.setContractId(loanBeCollectionVehDetail.getLoanContractNo());
appBeCollectionVehDetailsVo.setVin(loanBeCollectionVehDetail.getVinNo());
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.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.OverdueBankQuery;
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) {
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;
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.LoanOverdueBankFeign;
import com.yxt.anrui.riskcenter.api.loanoverduebank.flowable.CompleteBankDto;
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.loanoverduebank.flowable.*;
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.TemplateApplyTaskQuery;
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.flowable.BankDelegateQuery;
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.OverdueBankTaskQuery;
@ -116,6 +115,16 @@ public class OverdueBankService {
}
LoanOverdueBankAppDetailsVo loanOverdueBankAppDetailsVo = resultBean.getData();
BeanUtil.copyProperties(loanOverdueBankAppDetailsVo, overdueBankVo);
overdueBankVo.setPublishInso(loanOverdueBankAppDetailsVo.getCreateDept() + "-" + loanOverdueBankAppDetailsVo.getCreateByName());
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.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.OverdueFinQuery;
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) {
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;
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.LoanOverdueFinFeign;
import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.CompleteDto;
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.riskcenter.api.loanoverduefin.flowable.*;
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.OverdueFinQuery;
import com.yxt.anrui.terminal.api.risk.overduefin.flowable.OverdueFinTaskQuery;
@ -111,6 +110,16 @@ public class OverdueFinService {
}
LoanOverdueFinAppVo loanOverdueFinAppVo = resultBean.getData();
BeanUtil.copyProperties(loanOverdueFinAppVo, overDueFnAppVo);
overDueFnAppVo.setPublishInso(loanOverdueFinAppVo.getCreateDept() + "-" + loanOverdueFinAppVo.getCreateByName());
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 ='逾期对账申请(资方)管理-明细';
DROP TABLE IF EXISTS `loan_return_veh_ledger`;
CREATE TABLE `loan_return_veh_ledger`
DROP TABLE IF EXISTS `loan_return_inbound_apply`;
CREATE TABLE `loan_return_inbound_apply`
(
`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',
`vinSid` varchar(64) DEFAULT NULL COMMENT '车辆sid',
`vinNo` varchar(64) DEFAULT NULL COMMENT '车架号',
`vehMark` varchar(64) DEFAULT NULL COMMENT '车牌号',
`vehType` varchar(64) DEFAULT NULL COMMENT '车辆类型',
`vehModel` varchar(64) DEFAULT NULL COMMENT '车型',
`vehModelSid` varchar(64) DEFAULT NULL COMMENT '车型sid',
`configSid` varchar(64) DEFAULT NULL COMMENT '配置sid',
`configName` varchar(64) DEFAULT NULL COMMENT '配置',
`customer` varchar(64) DEFAULT NULL COMMENT '客户名称',
`customerSid` varchar(64) DEFAULT NULL COMMENT '客户sid',
`borrowerName` varchar(64) DEFAULT NULL COMMENT '贷款人',
`borrowerSid` varchar(64) DEFAULT NULL COMMENT '贷款人sid',
`location` varchar(64) DEFAULT NULL COMMENT '存放地点',
`locationSid` varchar(64) DEFAULT NULL COMMENT '存放地点sid',
`disposalKey` varchar(64) DEFAULT NULL COMMENT '处置方式key',
`stockState` varchar(64) DEFAULT NULL COMMENT '库存状态',
`stockStateKey` varchar(64) DEFAULT NULL COMMENT '库存状态key',
`disposal` varchar(64) DEFAULT NULL COMMENT '处置方式(未处置/客户赎回/二次销售/二次转租)',
`inboundMoney` int(32) DEFAULT NULL COMMENT '入库价',
`inboundDate` date DEFAULT NULL COMMENT '入库日期',
`outboundDate` date DEFAULT NULL COMMENT '出库日期',
`useOrgSid` varchar(64) DEFAULT NULL COMMENT '分公司sid',
`useOrgName` varchar(64) DEFAULT NULL COMMENT '分公司名称',
`orgSidPath` varchar(64) DEFAULT NULL COMMENT '组织全路径',
`overMoney` decimal(10, 2) DEFAULT NULL COMMENT '逾期金额',
`notBecomeDueMoney` decimal(10, 2) DEFAULT NULL COMMENT '未到期金额',
`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',
`createDept` varchar(64) DEFAULT NULL COMMENT '申请部门',
`createDeptSid` varchar(64) DEFAULT NULL COMMENT '申请部门sid',
`createByName` varchar(64) DEFAULT NULL COMMENT '申请人',
`vinNo` varchar(64) DEFAULT NULL COMMENT '车架号',
`vinSid` varchar(64) DEFAULT NULL COMMENT '车辆sid',
`vehMark` varchar(64) DEFAULT NULL COMMENT '车牌号',
`firstDate` varchar(64) DEFAULT NULL COMMENT '首次登记日期',
`modelName` varchar(64) DEFAULT NULL COMMENT '车型',
`modelSid` varchar(64) DEFAULT NULL COMMENT '车型sid',
`configSid` varchar(64) DEFAULT NULL COMMENT '配置sid',
`configName` text DEFAULT NULL COMMENT '配置',
`tralier` varchar(64) DEFAULT NULL COMMENT '是否带挂车',
`customerName` varchar(64) DEFAULT NULL COMMENT '客户名称',
`customerSid` varchar(64) DEFAULT NULL COMMENT '客户sid',
`loanSid` varchar(64) DEFAULT NULL COMMENT '贷款人sid',
`loanName` varchar(64) DEFAULT NULL COMMENT '贷款人',
`loanContractNo` varchar(64) DEFAULT NULL COMMENT '贷款合同编号',
`bankName` varchar(64) DEFAULT NULL COMMENT '资方',
`bankContractNo` varchar(64) DEFAULT NULL COMMENT '资方合同编号',
`inboundMoney` int(32) DEFAULT NULL COMMENT '入库价',
`locationName` varchar(64) DEFAULT NULL COMMENT '停放地点',
`locationSid` varchar(64) DEFAULT NULL COMMENT '停放地点sid',
`parkFees` decimal(10, 0) DEFAULT NULL COMMENT '停车收费标准',
`alRepaidMoney` decimal(10, 0) DEFAULT NULL COMMENT '已还金额',
`currentBeMoney` decimal(10, 0) 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`),
KEY `id` (`id`)
) 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`;
CREATE TABLE `loan_return_trailer_ledger`
DROP TABLE IF EXISTS `loan_return_veh_ledger`;
CREATE TABLE `loan_return_veh_ledger`
(
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid',
@ -1450,15 +1491,15 @@ CREATE TABLE `loan_return_trailer_ledger`
`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 '车牌号',
`vehType` varchar(64) DEFAULT NULL COMMENT '车辆类型',
`vehTypeKey` varchar(64) DEFAULT NULL COMMENT '车辆类型Key',
`vehModel` varchar(64) DEFAULT NULL COMMENT '车型',
`vehModelSid` 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 '客户名称',
`customerSid` varchar(64) DEFAULT NULL COMMENT '客户sid',
`borrowerName` varchar(64) DEFAULT NULL COMMENT '贷款人',
@ -1474,14 +1515,17 @@ CREATE TABLE `loan_return_trailer_ledger`
`outboundDate` date DEFAULT NULL COMMENT '出库日期',
`useOrgSid` varchar(64) DEFAULT NULL COMMENT '分公司sid',
`useOrgName` varchar(64) DEFAULT NULL COMMENT '分公司名称',
`orgSidPath` varchar(64) DEFAULT NULL COMMENT '组织全路径',
`orgSidPath` text DEFAULT NULL COMMENT '组织全路径',
`overMoney` 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`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='交回车辆台账(挂车)';
DEFAULT CHARSET = utf8 COMMENT ='交回车辆台账';

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

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

Loading…
Cancel
Save