Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
yunuo970428 1 year ago
parent
commit
f14c1a6d74
  1. 2
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml
  2. 16
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java
  3. 35
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrestorereportapply/LoanRestoreReportCarInfo.java
  4. 16
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrestorereportapply/LoanRestoreReportFileVo.java
  5. 13
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDetailsQuery.java
  6. 79
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDetailsVo.java
  7. 69
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDto.java
  8. 37
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyQuery.java
  9. 45
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyVo.java
  10. 23
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/CompleteLoanSecondarySalesApplyDto.java
  11. 13
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyDelegateQuery.java
  12. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyNodeQuery.java
  13. 12
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyNodeVo.java
  14. 31
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyTaskQuery.java
  15. 8
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/SubmitLoanSecondarySalesApplyDto.java
  16. 64
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescost/LoanSecondarySalesCostVo.java
  17. 28
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesveh/LoanSecondarySalesVehVo.java
  18. 10
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeign.java
  19. 10
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeignFallback.java
  20. 16
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanvehclearanceveh/LoanVehClearanceVehFile.java
  21. 1
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionveh/LoanBeCollectionVehMapper.java
  22. 11
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionveh/LoanBeCollectionVehMapper.xml
  23. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.java
  24. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.xml
  25. 12
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java
  26. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyMapper.java
  27. 48
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyMapper.xml
  28. 17
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyService.java
  29. 15
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.java
  30. 86
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.xml
  31. 37
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyRest.java
  32. 608
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java
  33. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.java
  34. 12
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.xml
  35. 8
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostService.java
  36. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.java
  37. 18
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.xml
  38. 10
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehService.java
  39. 10
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyRest.java
  40. 58
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java
  41. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordMapper.java
  42. 9
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordMapper.xml
  43. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordService.java
  44. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyMapper.java
  45. 240
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyMapper.xml
  46. 7
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyService.java
  47. 4
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehquery/ScmApplyInboundVehQueryMapper.java

2
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml

@ -1302,7 +1302,7 @@
<select id="selectByVinNoAndOrgSid" resultType="com.yxt.anrui.base.api.basevehicle.BaseVehicle">
SELECT *
FROM base_vehicle
WHERE vinNo = #{vinNo}
WHERE vinNo like concat('%',#{vinNo},'%')
AND useOrgSid = #{useOrgSid}
AND isDelete = 0
AND vehicleState != "0004"

16
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java

@ -76,6 +76,7 @@ import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehFeign
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsFeign;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanMoneyVo;
import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.LoanTransferPaymentApplyFeign;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.ConstantUtils;
@ -166,6 +167,8 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
private LoanRepaymentPlanDetailsFeign loanRepaymentPlanDetailsFeign;
@Autowired
private FinUncollectedReceivablesDetailedJRService finUncollectedReceivablesDetailedJRService;
@Autowired
private LoanTransferPaymentApplyFeign loanTransferPaymentApplyFeign;
public PagerVo<FinPaymentrecordVo> listPageVo(PagerQuery<FinPaymentrecordQuery> pq) {
FinPaymentrecordQuery query = pq.getParams();
@ -366,7 +369,7 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
for (int i = 0; i < sids.size(); i++) {
FinPaymentrecord finPaymentrecord = fetchBySid(sids.get(i));
//更新还款计划表垫款金额和逾期利息
if ("007".equals(finPaymentrecord.getCostTypeKey())){
if ("007".equals(finPaymentrecord.getCostTypeKey())) {
List<LoanBePadsincereVehDetailsVo> loanBePadsincereVehDetailsVos = loanBePadsincereVehFeign.selByMainSid(finPaymentrecord.getBusSid()).getData();
for (LoanBePadsincereVehDetailsVo loanBePadsincereVehDetailsVo : loanBePadsincereVehDetailsVos) {
log.info("车辆sid++++++++++++++++++++++++++++++++++++++++++" + loanBePadsincereVehDetailsVo.getBusVinSid());
@ -375,7 +378,7 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsFeign.fetchDetails(loanRepaymentPlanMoneyVo.getSid()).getData();
String paymentMoney = loanRepaymentPlanMoneyVo.getPaymentMoney().add(new BigDecimal(loanBePadsincereVehDetailsVo.getPadMoney())).toString();
String paymentInterest = loanRepaymentPlanMoneyVo.getPaymentInterest().add(new BigDecimal(loanBePadsincereVehDetailsVo.getBankBeInter())).toString();
loanRepaymentPlanDetailsFeign.updateVehSidAndPeriod(loanBePadsincereVehDetailsVo.getBusVinSid(), loanBePadsincereVehDetailsVo.getPeriod(),paymentMoney,paymentInterest);
loanRepaymentPlanDetailsFeign.updateVehSidAndPeriod(loanBePadsincereVehDetailsVo.getBusVinSid(), loanBePadsincereVehDetailsVo.getPeriod(), paymentMoney, paymentInterest);
//推送金融应收
FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR();
jr.setCreateBySid(finPaymentrecord.getCreateBySid());
@ -397,6 +400,7 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
finUncollectedReceivablesDetailedJRService.insert(jr);
}
}
FinPaymentrecord finPaymentrecordOne = null;
if (new BigDecimal(dto.getCost()).compareTo(finPaymentrecord.getAccountsReceive()) < 0) {//实收金额小于应收金额
finPaymentrecordOne = new FinPaymentrecord();
@ -514,6 +518,14 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
// 消息推送
messageFeign.pushNoUriMessage(pushMessageQuery);
});
} else if ("006".equals(costTypeKey)) {
//推送转付记录
Future future1 = pool.submit(() -> {
loanTransferPaymentApplyFeign.pushPaymentRecord(finPaymentrecord.getBusSid(), finPaymentrecord.getSid());
});
Future future2 = pool.submit(() -> {
loanTransferPaymentApplyFeign.pushPaymentVoucher(finPaymentrecord.getBusSid(), finPaymentrecord.getSid());
});
}
} catch (Exception e) {
e.printStackTrace();

35
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrestorereportapply/LoanRestoreReportCarInfo.java

@ -0,0 +1,35 @@
package com.yxt.anrui.riskcenter.api.loanrestorereportapply;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.anrui.riskcenter.api.loanbecollectionveh.LoanBeCollectionVehFile;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/*
* 交回报备逾期车辆信息
* */
@Data
public class LoanRestoreReportCarInfo {
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车牌号")
private String carNum;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同编号")
private String bankContractNo;
@ApiModelProperty("客户名称")
private String custName;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("销售订单sid")
private String salesOrderSid;
@ApiModelProperty("销售订单车辆sid")
private String saleVehSid;
}

16
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrestorereportapply/LoanRestoreReportFileVo.java

@ -25,26 +25,10 @@
*********************************************************/
package com.yxt.anrui.riskcenter.api.loanrestorereportapply;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
* Project: anrui-riskcenter(催收措施申请) <br/>
* File: LoanBeCollectionApplyVo.java <br/>
* Class: com.yxt.anrui.riskcenter.api.loanbecollectionapply.LoanBeCollectionApplyVo <br/>
* Description: 逾期催收申请 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-12-12 16:06:20 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "逾期催收申请 视图数据对象", description = "逾期催收申请 视图数据对象")
public class LoanRestoreReportFileVo implements Vo {
private String url;

13
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDetailsQuery.java

@ -1,7 +1,11 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -9,4 +13,13 @@ import lombok.Data;
**/
@Data
public class LoanSecondarySalesApplyDetailsQuery {
@ApiModelProperty("sid")
private String sid;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("机构全路径sid")
private String orgPath;
private List<String> chooseSidList = new ArrayList<>();
}

79
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDetailsVo.java

@ -1,7 +1,14 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply;
import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -9,4 +16,76 @@ import lombok.Data;
**/
@Data
public class LoanSecondarySalesApplyDetailsVo {
@ApiModelProperty("申请部门")
private String createDept;
@ApiModelProperty("申请部门sid")
private String createDeptSid;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("申请日期")
private String createDate;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同编号")
private String bankContractNo;
@ApiModelProperty("停放地点")
private String locationName;
@ApiModelProperty("是否年检")
private String inspect;
@ApiModelProperty("年检情况")
private String inspectSituation;
@ApiModelProperty("是否已出保")
private String guaranteed;
@ApiModelProperty("保险情况")
private String insuranceSituation;
@ApiModelProperty("首次登记日期")
private String firstDate;
@ApiModelProperty("当前行驶公里数")
private String kilometerDriven;
@ApiModelProperty("其他车况说明")
private String illustrate;
@ApiModelProperty("车辆照片")
private List<UrlQuery> filesList = new ArrayList<>();
@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;
@ApiModelProperty("车辆列表")
private List<LoanSecondarySalesVehVo> loanSecondarySalesVehVoList = new ArrayList<>();
@ApiModelProperty("费用明细")
private LoanSecondarySalesCostVo loanSecondarySalesCost = new LoanSecondarySalesCostVo();
private String sid;
@ApiModelProperty("申请人sid")
private String userSid;
private String orgPath;
@ApiModelProperty(value = "任务id")
private String taskId;
@ApiModelProperty(value = "流程实例id")
private String procInstId;
private String useOrgSid;
private String files;
}

69
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDto.java

@ -1,7 +1,14 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply;
import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -9,4 +16,66 @@ import lombok.Data;
**/
@Data
public class LoanSecondarySalesApplyDto {
@ApiModelProperty("申请部门")
private String createDept;
@ApiModelProperty("申请部门sid")
private String createDeptSid;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("申请日期")
private String createDate;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同编号")
private String bankContractNo;
@ApiModelProperty("停放地点")
private String locationName;
@ApiModelProperty("是否年检")
private String inspect;
@ApiModelProperty("年检情况")
private String inspectSituation;
@ApiModelProperty("是否已出保")
private String guaranteed;
@ApiModelProperty("保险情况")
private String insuranceSituation;
@ApiModelProperty("首次登记日期")
private String firstDate;
@ApiModelProperty("当前行驶公里数")
private String kilometerDriven;
@ApiModelProperty("其他车况说明")
private String illustrate;
@ApiModelProperty("车辆照片")
private List<UrlQuery> fileList = new ArrayList<>();
@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;
@ApiModelProperty("车辆列表")
private List<LoanSecondarySalesVehVo> loanSecondarySalesVehVoList = new ArrayList<>();
@ApiModelProperty("费用明细")
private LoanSecondarySalesCostVo loanSecondarySalesCost = new LoanSecondarySalesCostVo();
private String sid;
private String userSid;
}

37
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyQuery.java

@ -1,6 +1,7 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
@ -11,4 +12,40 @@ import lombok.Data;
@Data
public class LoanSecondarySalesApplyQuery implements Query {
private static final long serialVersionUID = -8173091575102397453L;
@ApiModelProperty("分公司")
private String useOrgName;
@ApiModelProperty("申请部门")
private String createDept;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("申请日期开始")
private String createTimeStart;
@ApiModelProperty("申请日期结束")
private String createTimeEnd;
@ApiModelProperty("办结日期开始")
private String closeDateStart;
@ApiModelProperty("办结日期结束")
private String closeDateEnd;
@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 String arrearsAll;
private String menuUrl;
private String orgPath;
private String userSid;
}

45
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyVo.java

@ -1,5 +1,6 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
@ -9,4 +10,48 @@ import lombok.Data;
**/
@Data
public class LoanSecondarySalesApplyVo {
@ApiModelProperty("sid")
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 String arrearsAll;
@ApiModelProperty("车辆售价")
private String vehPrice;
@ApiModelProperty("预计亏损金额")
private String lossPrice;
@ApiModelProperty("是否允许点击办理,true允许,false不允许")
private boolean allowModify;
private String createBySid;
@ApiModelProperty("流程定义id")
private String procDefId;
@ApiModelProperty("流程实例id")
private String procInstId;
}

23
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/CompleteLoanSecondarySalesApplyDto.java

@ -1,7 +1,10 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
@ -9,4 +12,24 @@ import lombok.Data;
**/
@Data
public class CompleteLoanSecondarySalesApplyDto {
@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;
}

13
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyDelegateQuery.java

@ -1,5 +1,6 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
@ -9,4 +10,16 @@ import lombok.Data;
**/
@Data
public class LoanSecondarySalesApplyDelegateQuery {
@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;
}

6
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyNodeQuery.java

@ -1,5 +1,6 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
@ -9,4 +10,9 @@ import lombok.Data;
**/
@Data
public class LoanSecondarySalesApplyNodeQuery {
@ApiModelProperty(value = "环节定义id")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
}

12
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyNodeVo.java

@ -1,7 +1,10 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -9,4 +12,13 @@ import lombok.Data;
**/
@Data
public class LoanSecondarySalesApplyNodeVo {
@ApiModelProperty(value = "节点名称")
private String name;
@ApiModelProperty(value = "节点id")
private String id;
@ApiModelProperty(value = "审批组")
private List<String> candidateGroups;
@ApiModelProperty(value = "是否是最后环节")
private String endTask;
}

31
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyTaskQuery.java

@ -1,7 +1,10 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
@ -9,4 +12,32 @@ import lombok.Data;
**/
@Data
public class LoanSecondarySalesApplyTaskQuery {
/**
* 终止驳回撤回
*/
@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;
}

8
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/SubmitLoanSecondarySalesApplyDto.java

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

64
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescost/LoanSecondarySalesCostVo.java

@ -0,0 +1,64 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalescost;
import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery;
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/24
**/
@Data
public class LoanSecondarySalesCostVo {
@ApiModelProperty("欠款合计")
private String arrearsAll;
@ApiModelProperty("贷款保证金")
private String loanDeposit;
@ApiModelProperty("车辆售价")
private String vehPrice;
@ApiModelProperty("催收费用")
private String collectionCost;
@ApiModelProperty("资方结清费用")
private String bankSettleCost;
@ApiModelProperty("资方结清费用承担方")
private String bankSettleCostAssume;
@ApiModelProperty("车辆违章费用")
private String vehicleViolationCost;
@ApiModelProperty("车辆违章费用承担方")
private String vehicleViolationCostAssume;
@ApiModelProperty("年检费")
private String inspectYearCost;
@ApiModelProperty("年检费承担方")
private String inspectYearCostAssume;
@ApiModelProperty("保险费")
private String insureCost;
@ApiModelProperty("保险费承担方")
private String insureCostAssume;
@ApiModelProperty("过户费")
private String ownershipCost;
@ApiModelProperty("过户费承担方")
private String ownershipCostAssume;
@ApiModelProperty("停车费")
private String stopCost;
@ApiModelProperty("停车费承担方")
private String stopCostAssume;
@ApiModelProperty("其他费用")
private String otherCost;
@ApiModelProperty("其他费用承担方")
private String otherCostAssume;
@ApiModelProperty("费用说明")
private String costDescription;
@ApiModelProperty("预计亏损金额")
private String lossPrice;
@ApiModelProperty("后续欠款处置方向")
private String debtDisposal;
@ApiModelProperty("附件")
private List<UrlQuery> files = new ArrayList<>();
}

28
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesveh/LoanSecondarySalesVehVo.java

@ -0,0 +1,28 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesveh;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/24
**/
@Data
public class LoanSecondarySalesVehVo {
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车牌号")
private String vehMark;
@ApiModelProperty("车辆类型")
private String vehType;
@ApiModelProperty("车型")
private String modelName;
@ApiModelProperty("销售订单车辆sid")
private String busVinSid;
@ApiModelProperty("车型sid")
private String modelSid;
@ApiModelProperty("配置sid")
private String configSid;
}

10
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeign.java

@ -54,6 +54,16 @@ public interface LoanTransferPaymentApplyFeign {
public ResultBean deleteBySids(@RequestBody String[] sids);
@ApiOperation("推送转付记录")
@PostMapping("/pushPaymentRecord")
@ResponseBody
public ResultBean pushPaymentRecord(@RequestParam("sid") String sid, @RequestParam("paySid") String paySid);
@ApiOperation("推送财务代付款凭证")
@PostMapping("/pushPaymentVoucher")
@ResponseBody
public ResultBean pushPaymentVoucher(@RequestParam("sid") String sid, @RequestParam("paySid") String paySid);
//---------------------------流程---------------------------------------
@ApiOperation("提交")

10
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeignFallback.java

@ -40,6 +40,16 @@ public class LoanTransferPaymentApplyFeignFallback implements LoanTransferPaymen
return null;
}
@Override
public ResultBean pushPaymentRecord(String sid, String paySid) {
return null;
}
@Override
public ResultBean pushPaymentVoucher(String sid, String paySid) {
return null;
}
@Override
public ResultBean submitRecordApplication(SubmitTransferDto dto) {
return null;

16
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanvehclearanceveh/LoanVehClearanceVehFile.java

@ -25,28 +25,12 @@
*********************************************************/
package com.yxt.anrui.riskcenter.api.loanvehclearanceveh;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.List;
/**
* Project: anrui-riskcenter(催收措施申请) <br/>
* File: LoanBeCollectionVehVo.java <br/>
* Class: com.yxt.anrui.riskcenter.api.loanbecollectionveh.LoanBeCollectionVehVo <br/>
* Description: 逾期催收车辆 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-12-12 16:06:20 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "逾期催收车辆 视图数据详情", description = "逾期催收车辆 视图数据详情")
public class LoanVehClearanceVehFile implements Vo {
private String name;

1
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionveh/LoanBeCollectionVehMapper.java

@ -75,7 +75,6 @@ public interface LoanBeCollectionVehMapper extends BaseMapper<LoanBeCollectionVe
int selKzStateBySaleVehSid(String saleVehSid);
@Select("select sid from loan_be_collection_veh where saleVehSid = #{saleVehSid} and lockCarState = #{c}")
String selSidBySaleVehSidAndLockState(@Param("saleVehSid") String saleVehSid,@Param("c") String c);
@Update("update loan_be_collection_veh set lockCarState = #{s} where saleVehSid = #{saleVehSid} and lockCarState = #{x}")

11
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionveh/LoanBeCollectionVehMapper.xml

@ -33,4 +33,15 @@
WHERE lv.`saleVehSid` = #{saleVehSid}
AND (lv.lockCarState = '' OR lv.lockCarState IS NULL OR lv.lockCarState = '0' OR lv.lockCarState = '1')
</select>
<select id="selSidBySaleVehSidAndLockState" resultType="java.lang.String">
SELECT
sid
FROM
loan_be_collection_veh
WHERE saleVehSid = #{saleVehSid}
AND lockCarState = #{c}
ORDER BY createTime DESC
LIMIT 1
</select>
</mapper>

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

@ -36,4 +36,6 @@ public interface LoanRedemptionApplyMapper extends BaseMapper<LoanRedemptionAppl
VehDisposal selVehDisposal(@Param("ledgerSid") String ledgerSid);
LoanReturnVehLedger selVehLedgerBySid(@Param("ledgerSid") String ledgerSid);
String selVehRkSid(@Param("busVinSid") String busVinSid);
}

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

@ -118,4 +118,10 @@
FROM loan_return_veh_ledger
WHERE sid = #{ledgerSid}
</select>
<select id="selVehRkSid" resultType="java.lang.String">
select sid
from loan_return_inbound_apply
where nodeState = '已办结'
and busVinSid = #{busVinSid}
</select>
</mapper>

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

@ -267,6 +267,10 @@ public class LoanRedemptionApplyService extends MybatisBaseService<LoanRedemptio
if (null != redemptionInitVo) {
BeanUtil.copyProperties(redemptionInitVo, vo);
if (StringUtils.isNotBlank(redemptionInitVo.getBusVinSid())) {
String rkSid = baseMapper.selVehRkSid(redemptionInitVo.getBusVinSid());
if (StringUtils.isNotBlank(rkSid)) {
vo.setRksqSid(rkSid);
}
AlrepaidAndArrVo alrepaidAndArr = loanRestoreReportApplyService.getAlrepaidAndArr(redemptionInitVo.getBusVinSid());
if (null != alrepaidAndArr) {
//已还金额
@ -492,6 +496,10 @@ public class LoanRedemptionApplyService extends MybatisBaseService<LoanRedemptio
vo.setVinList(redemptionVinLists);
}
if (StringUtils.isNotBlank(vo.getBusVinSid())) {
String rkSid = baseMapper.selVehRkSid(vo.getBusVinSid());
if (StringUtils.isNotBlank(rkSid)) {
vo.setRksqSid(rkSid);
}
AlrepaidAndArrVo alrepaidAndArr = loanRestoreReportApplyService.getAlrepaidAndArr(vo.getBusVinSid());
if (null != alrepaidAndArr) {
//已还金额
@ -1203,6 +1211,10 @@ public class LoanRedemptionApplyService extends MybatisBaseService<LoanRedemptio
vo.setVinList(vinList);
}
if (StringUtils.isNotBlank(vo.getCsjlSid())) {
String rkSid = baseMapper.selVehRkSid(vo.getCsjlSid());
if (StringUtils.isNotBlank(rkSid)) {
vo.setRksqSid(rkSid);
}
AlrepaidAndArrVo alrepaidAndArr = loanRestoreReportApplyService.getAlrepaidAndArr(vo.getCsjlSid());
if (null != alrepaidAndArr) {
String allPeriod = "";

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

@ -29,6 +29,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.riskcenter.api.loanrestorereportapply.LoanRestoreReportCarInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@ -85,4 +86,6 @@ public interface LoanRestoreReportApplyMapper extends BaseMapper<LoanRestoreRepo
String getYqjehsqs(String saleVehSid);
int selectBySid(String join);
LoanRestoreReportCarInfo jkCarInfo(String saleVehSid);
}

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

@ -77,12 +77,12 @@
<select id="getYhjehsqs" resultType="java.lang.String">
SELECT
ROUND(
IFNULL(ROUND(
IFNULL(SUM(lrh.`actualMoney`), 0) / (
IFNULL(lrs.mainMidRepay, 0) + IFNULL(lrs.otherMidRepay, 0)
),
1
)
),0)
FROM
(SELECT DISTINCT
scheduleSid
@ -101,14 +101,14 @@
(IFNULL(SUM(ss.yq_total), 0)
+ IFNULL(
(SELECT
SUM(lbpv.`bankBeInter`)
IFNULL(SUM(lbpv.`bankBeInter`),0)
FROM
loan_be_padsincere_veh lbpv
WHERE lbpv.saleVehSid = ss.busVinSid),
0
) + IFNULL(
(SELECT
SUM(fund)
IFNULL(SUM(fund),0)
FROM
loan_fund_day
WHERE busSid IN
@ -116,8 +116,7 @@
lrpd.sid
FROM
loan_repayment_plan_details lrpd
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
AND lrpd.`busVinSid` = #{saleVehSid})),
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE())),
0
)
) AS beMoney
@ -147,8 +146,7 @@
lrpd.sid
FROM
loan_repayment_plan_details lrpd
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
AND lrpd.`busVinSid` = #{saleVehSid})
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE())
</select>
<select id="getYqjehsqs" resultType="java.lang.String">
@ -204,4 +202,38 @@
WHERE nodeState != '待提交'
and find_in_set(sid, #{list})
</select>
<select id="jkCarInfo" resultType="com.yxt.anrui.riskcenter.api.loanrestorereportapply.LoanRestoreReportCarInfo">
SELECT
a1.`loanContractNo`,
RIGHT (a1.vinNo, 8) AS vinNo,
a1.vehMark AS carNum,
a1.`bankName`,
a1.bankContractNo,
a1.customer AS custName,
a1.borrowerName AS loanName,
a1.salesOrderSid
FROM
(SELECT
lrpd.sid,
lrpd.busVinSid,
lrpd.`loanContractNo`,
lrpd.bankContractNo,
lrpd.`vinNo`,
lrpd.vehMark,
lrpd.customer,
lrpd.borrowerName,
lrpd.`bankName`,
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0)) AS yq_total,
lrpd.salesOrderSid
FROM
loan_repayment_plan_details lrpd
LEFT JOIN `loan_repayment_history` lrh
ON lrh.planDetailSid = lrpd.`sid`
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
GROUP BY lrpd.`sid`
HAVING (yq_total > 0)) a1
WHERE a1.busVinSid = #{saleVehSid}
GROUP BY a1.busVinSid
</select>
</mapper>

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

@ -338,19 +338,18 @@ public class LoanRestoreReportApplyService extends MybatisBaseService<LoanRestor
loanRestoreReportApplyDetailsVo.setUseOrgSid(useOrgSid);
loanRestoreReportApplyDetailsVo.setUseOrgName(sysOrganizationVo1.getName());
loanRestoreReportApplyDetailsVo.setOrgPath(orgPath);
LoanVehClearanceVehInit loanVehClearanceVehInit = loanVehClearanceApplyService.initVehListBySaleVehSid(saleVehSid);
loanRestoreReportApplyDetailsVo.setVinNo(loanVehClearanceVehInit.getVinNo());
loanRestoreReportApplyDetailsVo.setCarNum(loanVehClearanceVehInit.getCarNum());
loanRestoreReportApplyDetailsVo.setCustName(loanVehClearanceVehInit.getCustName());
loanRestoreReportApplyDetailsVo.setBorrName(loanVehClearanceVehInit.getLoanName());
loanRestoreReportApplyDetailsVo.setLoanContractNo(loanVehClearanceVehInit.getLoanContractNo());
loanRestoreReportApplyDetailsVo.setBankName(loanVehClearanceVehInit.getBankName());
loanRestoreReportApplyDetailsVo.setBankContractNo(loanVehClearanceVehInit.getBankContractNo());
LoanRestoreReportCarInfo loanRestoreReportCarInfo = baseMapper.jkCarInfo(saleVehSid);
loanRestoreReportApplyDetailsVo.setVinNo(loanRestoreReportCarInfo.getVinNo());
loanRestoreReportApplyDetailsVo.setCarNum(loanRestoreReportCarInfo.getCarNum());
loanRestoreReportApplyDetailsVo.setCustName(loanRestoreReportCarInfo.getCustName());
loanRestoreReportApplyDetailsVo.setBorrName(loanRestoreReportCarInfo.getLoanName());
loanRestoreReportApplyDetailsVo.setLoanContractNo(loanRestoreReportCarInfo.getLoanContractNo());
loanRestoreReportApplyDetailsVo.setBankName(loanRestoreReportCarInfo.getBankName());
loanRestoreReportApplyDetailsVo.setBankContractNo(loanRestoreReportCarInfo.getBankContractNo());
loanRestoreReportApplyDetailsVo.setCsjlSid(saleVehSid);
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(saleVehSid).getData();
LoanSolutions loanSolutions = loanSolutionsService.selectBySaleOrderSid(busSalesOrderVehicle.getSalesOrderSid());
loanRestoreReportApplyDetailsVo.setJrfaSid(loanSolutions.getSid());
loanRestoreReportApplyDetailsVo.setCurrentBeMoney(loanVehClearanceVehInit.getBeOverdueMoney());
loanRestoreReportApplyDetailsVo.setSaleVehSid(saleVehSid);
AlrepaidAndArrVo alrepaidAndArr = getAlrepaidAndArr(saleVehSid);
loanRestoreReportApplyDetailsVo.setAlRepaidMoney(alrepaidAndArr.getAlRepaidMoney());

15
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.java

@ -1,8 +1,16 @@
package com.yxt.anrui.riskcenter.biz.loansecondarysalesapply;
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.loansecondarysalesapply.LoanSecondarySalesApply;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApplyDetailsVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApplyVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
/**
* @description:
@ -11,4 +19,11 @@ import org.apache.ibatis.annotations.Mapper;
**/
@Mapper
public interface LoanSecondarySalesApplyMapper extends BaseMapper<LoanSecondarySalesApply> {
IPage<LoanSecondarySalesApplyVo> selectPageVo(IPage<LoanSecondarySalesApply> page, @Param(Constants.WRAPPER) QueryWrapper<LoanSecondarySalesApply> qw);
int updateFlowFiled(Map<String, Object> beanToMap);
int selectBySid(String join);
LoanSecondarySalesApplyDetailsVo selectDetails(String sid);
}

86
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.xml

@ -1,4 +1,90 @@
<?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.loansecondarysalesapply.LoanSecondarySalesApplyMapper">
<select id="selectPageVo"
resultType="com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApplyVo">
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,
(select group_concat(lv.vinNo) from loan_secondary_sales_veh lv where lv.mainSid = la.sid) as vinNo,
(select group_concat(lv.vehMark) from loan_secondary_sales_veh lv where lv.mainSid = la.sid) as vehMark,
la.bankName,
la.bankContractNo,
la.customerName,
la.loanName,
lc.arrearsAll,
lc.vehPrice,
lc.lossPrice,
la.createBySid,
la.procDefId,
la.procInstId
from loan_secondary_sales_apply la
left join loan_secondary_sales_cost lc on lc.mainSid = la.sid
<where>
${ew.sqlSegment}
</where>
</select>
<update id="updateFlowFiled">
UPDATE loan_secondary_sales_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="selectBySid" resultType="int">
select count(*)
from loan_secondary_sales_apply
where length(nodeState) > 0
and find_in_set(sid, #{list})
</select>
<select id="selectDetails"
resultType="com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApplyDetailsVo">
select la.sid,
la.createDept,
la.createDeptSid,
la.createByName,
DATE_FORMAT(la.createTime, '%Y-%m-%d') as createDate,
la.customerName,
la.loanName,
la.loanContractNo,
la.bankName,
la.bankContractNo,
la.locationName,
la.inspect,
la.inspectSituation,
la.guaranteed,
la.insuranceSituation,
la.firstDate,
la.kilometerDriven,
la.illustrate,
la.files,
la.alRepaidMoney,
la.currentBeMoney,
la.wheFundOccMoney,
la.unexpiredMoney,
la.nper,
la.currentPeriod,
la.alRepaidMoneyConPeriod,
la.beOverdueMoneyAndPeriod
from loan_secondary_sales_apply la
where sid = #{sid}
</select>
</mapper>

37
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyRest.java

@ -1,11 +1,15 @@
package com.yxt.anrui.riskcenter.biz.loansecondarysalesapply;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.*;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.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;
@ -20,63 +24,72 @@ import java.util.List;
@RequestMapping("v1/LoanSecondarySalesApply")
@Api(tags = "二次销售")
public class LoanSecondarySalesApplyRest implements LoanSecondarySalesApplyFeign {
@Autowired
private LoanSecondarySalesApplyService loanSecondarySalesApplyService;
@Override
public ResultBean<PagerVo<LoanSecondarySalesApplyVo>> listPage(PagerQuery<LoanSecondarySalesApplyQuery> pq) {
return null;
ResultBean<PagerVo<LoanSecondarySalesApplyVo>> rb = ResultBean.fireFail();
PagerVo<LoanSecondarySalesApplyVo> pv = loanSecondarySalesApplyService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean<String> saveOrUpdate(LoanSecondarySalesApplyDto dto) {
return null;
return loanSecondarySalesApplyService.saveOrUpdateSecondarySales(dto);
}
@Override
public ResultBean<LoanSecondarySalesApplyDetailsVo> details(LoanSecondarySalesApplyDetailsQuery query) {
return null;
return loanSecondarySalesApplyService.details(query);
}
@Override
public ResultBean delBySids(String[] sids) {
return null;
return loanSecondarySalesApplyService.delAllBySids(sids);
}
@Override
public ResultBean submitApply(SubmitLoanSecondarySalesApplyDto dto) {
return null;
return loanSecondarySalesApplyService.submitApply(dto);
}
@Override
public ResultBean complete(CompleteLoanSecondarySalesApplyDto query) {
return null;
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId("");
return loanSecondarySalesApplyService.complete(bv);
}
@Override
public ResultBean<List<LoanSecondarySalesApplyNodeVo>> getPreviousNodesForReject(LoanSecondarySalesApplyNodeQuery query) {
return null;
return loanSecondarySalesApplyService.getPreviousNodesForReject(query);
}
@Override
public ResultBean<List<LoanSecondarySalesApplyNodeVo>> getNextNodesForSubmit(LoanSecondarySalesApplyNodeQuery query) {
return null;
return loanSecondarySalesApplyService.getNextNodesForSubmit(query);
}
@Override
public ResultBean taskReject(LoanSecondarySalesApplyTaskQuery query) {
return null;
return loanSecondarySalesApplyService.taskReject(query);
}
@Override
public ResultBean revokeProcess(LoanSecondarySalesApplyTaskQuery query) {
return null;
return loanSecondarySalesApplyService.revokeProcess(query);
}
@Override
public ResultBean breakProcess(LoanSecondarySalesApplyTaskQuery query) {
return null;
return loanSecondarySalesApplyService.breakProcess(query);
}
@Override
public ResultBean delegate(LoanSecondarySalesApplyDelegateQuery query) {
return null;
return loanSecondarySalesApplyService.delegate(query);
}
}

608
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java

@ -1,9 +1,64 @@
package com.yxt.anrui.riskcenter.biz.loansecondarysalesapply;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApply;
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.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.LoanReturnInboundApply;
import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyDetailsVo;
import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyQuery;
import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyVo;
import com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable.ReturnInboundApplyNodeVo;
import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailer;
import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailerDto;
import com.yxt.anrui.riskcenter.api.loanreturnvehledger.LoanReturnVehLedger;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.*;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable.*;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVeh;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo;
import com.yxt.anrui.riskcenter.biz.loanreturnvehledger.LoanReturnVehLedgerService;
import com.yxt.anrui.riskcenter.biz.loansecondarysalescost.LoanSecondarySalesCostService;
import com.yxt.anrui.riskcenter.biz.loansecondarysalesveh.LoanSecondarySalesVehService;
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.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
/**
* @description:
* @author: dimengzhe
@ -11,4 +66,555 @@ import org.springframework.stereotype.Service;
**/
@Service
public class LoanSecondarySalesApplyService extends MybatisBaseService<LoanSecondarySalesApplyMapper, LoanSecondarySalesApply> {
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private FlowFeign flowFeign;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
@Autowired
private MessageFeign messageFeign;
@Autowired
private LoanSecondarySalesCostService loanSecondarySalesCostService;
@Autowired
private LoanSecondarySalesVehService loanSecondarySalesVehService;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private LoanReturnVehLedgerService loanReturnVehLedgerService;
public PagerVo<LoanSecondarySalesApplyVo> listPageVo(PagerQuery<LoanSecondarySalesApplyQuery> pq) {
LoanSecondarySalesApplyQuery query = pq.getParams();
QueryWrapper<LoanSecondarySalesApply> 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());
}
//ToDo:车架号
if (StringUtils.isNotBlank(query.getVinNo())) {
}
//车牌号
if (StringUtils.isNotBlank(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());
}
//办结日期
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.getCreateTimeStart()), "date_format (la.createTime,'%Y-%m-%d') >= date_format('" + query.getCreateTimeStart() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(query.getCreateTimeEnd()), "date_format (la.createTime,'%Y-%m-%d') <= date_format('" + query.getCreateTimeEnd() + "','%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<LoanSecondarySalesApplyVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<LoanSecondarySalesApplyVo> p = new PagerVo<>();
return p;
}
}
}
qw.orderByDesc("la.createTime");
IPage<LoanSecondarySalesApply> page = PagerUtil.queryToPage(pq);
IPage<LoanSecondarySalesApplyVo> pagging = baseMapper.selectPageVo(page, qw);
List<LoanSecondarySalesApplyVo> paggingRecords = pagging.getRecords();
paggingRecords.removeAll(Collections.singleton(null));
if (!paggingRecords.isEmpty()) {
for (LoanSecondarySalesApplyVo record : pagging.getRecords()) {
if (query.getUserSid().equals(record.getCreateBySid())) {
record.setAllowModify(true);
} else {
record.setAllowModify(false);
}
}
}
PagerVo<LoanSecondarySalesApplyVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean<List<LoanSecondarySalesApplyNodeVo>> getPreviousNodesForReject(LoanSecondarySalesApplyNodeQuery query) {
ResultBean<List<LoanSecondarySalesApplyNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(query.getBusinessSid());
bv.setModelId(loanSecondarySalesApply.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
List<LoanSecondarySalesApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanSecondarySalesApplyNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean<List<LoanSecondarySalesApplyNodeVo>> getNextNodesForSubmit(LoanSecondarySalesApplyNodeQuery query) {
ResultBean<List<LoanSecondarySalesApplyNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(query.getBusinessSid());
bv.setModelId(loanSecondarySalesApply.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
List<LoanSecondarySalesApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanSecondarySalesApplyNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean taskReject(LoanSecondarySalesApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
String businessSid = query.getBusinessSid();
LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(businessSid);
if (loanSecondarySalesApply == null) {
return rb.setMsg("该申请不存在");
}
String businessTaskId = loanSecondarySalesApply.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);
//极光推送
loanSecondarySalesApply = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
String procId = loanSecondarySalesApply.getProcInstId();
messageFlowVo.setProcInsId(procId);
messageFlowVo.setProcDefId(loanSecondarySalesApply.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(loanSecondarySalesApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
}
messageFlowableQuery.setMsgTitle("交回车辆二次销售申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
return rb.success();
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean revokeProcess(LoanSecondarySalesApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(query.getBusinessSid());
String businessTaskId = loanSecondarySalesApply.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("操作失败,提交的数据不一致!");
}
private int updateFlowFiled(Map<String, Object> beanToMap) {
return baseMapper.updateFlowFiled(beanToMap);
}
public ResultBean breakProcess(LoanSecondarySalesApplyTaskQuery 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("请填写意见");
}
LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(query.getBusinessSid());
String businessTaskId = loanSecondarySalesApply.getTaskId();
if (query.getUserSid().equals(loanSecondarySalesApply.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 (StringUtils.isNotBlank(businessTaskId)) {
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(LoanSecondarySalesApplyDelegateQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowDelegateQuery delegateQuery = new FlowDelegateQuery();
BeanUtil.copyProperties(query, delegateQuery);
flowFeign.delegate(delegateQuery);
return rb.success();
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
LoanSecondarySalesApply loanSecondarySalesApply = 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(loanSecondarySalesApply.getOrgSidPath());
bv.setModelId(loanSecondarySalesApply.getProcDefId());
if (bv.getTaskId().equals(loanSecondarySalesApply.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())) {
loanSecondarySalesApply = fetchBySid(businessSid);
loanSecondarySalesApply.setCloseDate(DateUtil.today());
baseMapper.updateById(loanSecondarySalesApply);
} else {
//极光推送
loanSecondarySalesApply = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowVo.setProcDefId(loanSecondarySalesApply.getProcDefId());
messageFlowVo.setProcInsId(loanSecondarySalesApply.getProcInstId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("交回车辆二次销售申请");
messageFlowableQuery.setMsgContent(loanSecondarySalesApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("交回车辆二次销售申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
public ResultBean submitApply(SubmitLoanSecondarySalesApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(dto.getSid());
int r = submitBusinessData(dto, loanSecondarySalesApply);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
//ToDo:验证车辆是否已处置
ResultBean<String> resultBean = saveOrUpdateSecondarySales(dto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
String businessSid = resultBean.getData();
loanSecondarySalesApply = 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(loanSecondarySalesApply.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));
loanSecondarySalesApply = 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());
LoanSecondarySalesApply finalLoanSecondarySalesApply = loanSecondarySalesApply;
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(finalLoanSecondarySalesApply.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(loanSecondarySalesApply.getTaskId());
bv.setTaskDefKey(loanSecondarySalesApply.getTaskDefKey());
bv.setComment("重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return rb;
}
public ResultBean<String> saveOrUpdateSecondarySales(LoanSecondarySalesApplyDto dto) {
return null;
}
private int submitBusinessData(SubmitLoanSecondarySalesApplyDto dto, LoanSecondarySalesApply loanSecondarySalesApply) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
if (loanSecondarySalesApply != null) {
String businessTaskId = loanSecondarySalesApply.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;
}
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++) {
loanSecondarySalesVehService.deleteByMainSid(sidss.get(i));
loanSecondarySalesCostService.deleteByMainSid(sidss.get(i));
}
delBySids(sids);
return rb.success().setMsg("删除成功");
}
public ResultBean<LoanSecondarySalesApplyDetailsVo> details(LoanSecondarySalesApplyDetailsQuery query) {
ResultBean<LoanSecondarySalesApplyDetailsVo> rb = ResultBean.fireFail();
LoanSecondarySalesApplyDetailsVo loanSecondarySalesApplyDetailsVo = new LoanSecondarySalesApplyDetailsVo();
String sid = query.getSid();
String userSid = query.getUserSid();
String orgPath = query.getOrgPath();
List<String> chooseSidList = query.getChooseSidList();
chooseSidList.removeAll(Collections.singleton(null));
if (StringUtils.isBlank(sid)) {//新增初始化
if (chooseSidList.isEmpty()) {
return rb.setMsg("请选择车辆");
}
String busVinSid = "";
String vinNo = "";
for (int i = 0; i < chooseSidList.size(); i++) {
String s = chooseSidList.get(i);
LoanReturnVehLedger loanReturnVehLedger = loanReturnVehLedgerService.fetchBySid(s);
if ("未处置".equals(loanReturnVehLedger.getDisposal())) {
}
}
//根据用户查询发起人、发起部门、发起日期为当前日期
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());
}
loanSecondarySalesApplyDetailsVo.setCreateDept(deptName);
loanSecondarySalesApplyDetailsVo.setCreateDeptSid(deptSid);
loanSecondarySalesApplyDetailsVo.setCreateByName(userVoResultBean.getData().getName());
loanSecondarySalesApplyDetailsVo.setCreateDate(DateUtil.today());
loanSecondarySalesApplyDetailsVo.setOrgPath(query.getOrgPath());
loanSecondarySalesApplyDetailsVo.setUserSid(query.getUserSid());
loanSecondarySalesApplyDetailsVo.setUseOrgSid(useOrgSid);
} else {//编辑初始化
LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(sid);
if (loanSecondarySalesApply == null) {
return rb.setMsg("该申请不存在");
}
loanSecondarySalesApplyDetailsVo = baseMapper.selectDetails(sid);
String files = loanSecondarySalesApplyDetailsVo.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);
}
loanSecondarySalesApplyDetailsVo.setFilesList(list);
}
loanSecondarySalesApplyDetailsVo.setOrgPath(loanSecondarySalesApply.getOrgSidPath());
loanSecondarySalesApplyDetailsVo.setUserSid(loanSecondarySalesApply.getCreateBySid());
loanSecondarySalesApplyDetailsVo.setSid(sid);
loanSecondarySalesApplyDetailsVo.setProcInstId(loanSecondarySalesApply.getProcInstId());
loanSecondarySalesApplyDetailsVo.setTaskId(loanSecondarySalesApply.getTaskId());
List<LoanSecondarySalesVehVo> loanSecondarySalesVehVoList = loanSecondarySalesVehService.selectByMainSid(sid);
loanSecondarySalesVehVoList.removeAll(Collections.singleton(null));
if (!loanSecondarySalesVehVoList.isEmpty()) {
loanSecondarySalesApplyDetailsVo.setLoanSecondarySalesVehVoList(loanSecondarySalesVehVoList);
}
LoanSecondarySalesCostVo loanSecondarySalesCost = loanSecondarySalesCostService.selectByMainSid(sid);
loanSecondarySalesApplyDetailsVo.setLoanSecondarySalesCost(loanSecondarySalesCost);
}
return rb.success().setData(loanSecondarySalesApplyDetailsVo);
}
}

4
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.java

@ -2,6 +2,7 @@ package com.yxt.anrui.riskcenter.biz.loansecondarysalescost;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCost;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo;
import org.apache.ibatis.annotations.Mapper;
/**
@ -11,4 +12,7 @@ import org.apache.ibatis.annotations.Mapper;
**/
@Mapper
public interface LoanSecondarySalesCostMapper extends BaseMapper<LoanSecondarySalesCost> {
int deleteByMainSid(String s);
LoanSecondarySalesCostVo selectByMainSid(String sid);
}

12
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.xml

@ -1,4 +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.loansecondarysalescost.LoanSecondarySalesCostMapper">
<delete id="deleteByMainSid">
delete
from loan_secondary_sales_veh
where mainSid = #{s}
</delete>
<select id="selectByMainSid"
resultType="com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo">
SELECT *
FROM loan_secondary_sales_cost
where mainSid = #{sid}
</select>
</mapper>

8
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostService.java

@ -1,6 +1,7 @@
package com.yxt.anrui.riskcenter.biz.loansecondarysalescost;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCost;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
@ -11,4 +12,11 @@ import org.springframework.stereotype.Service;
**/
@Service
public class LoanSecondarySalesCostService extends MybatisBaseService<LoanSecondarySalesCostMapper, LoanSecondarySalesCost> {
public int deleteByMainSid(String s) {
return baseMapper.deleteByMainSid(s);
}
public LoanSecondarySalesCostVo selectByMainSid(String sid) {
return baseMapper.selectByMainSid(sid);
}
}

6
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.java

@ -2,8 +2,11 @@ package com.yxt.anrui.riskcenter.biz.loansecondarysalesveh;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVeh;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -11,4 +14,7 @@ import org.apache.ibatis.annotations.Mapper;
**/
@Mapper
public interface LoanSecondarySalesVehMapper extends BaseMapper<LoanSecondarySalesVeh> {
int deleteByMainSid(String s);
List<LoanSecondarySalesVehVo> selectByMainSid(String sid);
}

18
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.xml

@ -1,4 +1,22 @@
<?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.loansecondarysalesveh.LoanSecondarySalesVehMapper">
<delete id="deleteByMainSid">
delete
from loan_secondary_sales_veh
where mainSid = #{s}
</delete>
<select id="selectByMainSid"
resultType="com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo">
select lv.vinNo,
lv.vehMark,
lv.vehType,
lv.modelName,
lv.busVinSid,
lv.modelSid,
lv.configSid
from loan_secondary_sales_veh lv
where mainSid = #{sid}
</select>
</mapper>

10
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehService.java

@ -1,9 +1,12 @@
package com.yxt.anrui.riskcenter.biz.loansecondarysalesveh;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVeh;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -11,4 +14,11 @@ import org.springframework.stereotype.Service;
**/
@Service
public class LoanSecondarySalesVehService extends MybatisBaseService<LoanSecondarySalesVehMapper, LoanSecondarySalesVeh> {
public int deleteByMainSid(String s) {
return baseMapper.deleteByMainSid(s);
}
public List<LoanSecondarySalesVehVo> selectByMainSid(String sid) {
return baseMapper.selectByMainSid(sid);
}
}

10
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyRest.java

@ -54,6 +54,16 @@ public class LoanTransferPaymentApplyRest implements LoanTransferPaymentApplyFei
return loanTransferPaymentApplyService.deleteBySids(sids);
}
@Override
public ResultBean pushPaymentRecord(String sid, String paySid) {
return loanTransferPaymentApplyService.pushPaymentRecord(sid,paySid);
}
@Override
public ResultBean pushPaymentVoucher(String sid, String paySid) {
return loanTransferPaymentApplyService.pushPaymentVoucher(sid,paySid);
}
@Override
public ResultBean submitRecordApplication(SubmitTransferDto dto) {
return loanTransferPaymentApplyService.submitRecordApplication(dto);

58
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java

@ -187,6 +187,9 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTran
public ResultBean<String> saveTransferPayment(LoanTransferPaymentApplyDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
String sid = "";
if (StringUtils.isBlank(dto.getPayFormKey())) {
return rb.setMsg("请选择财务付款形式");
}
if (StringUtils.isNotBlank(dto.getSid())) {
sid = dto.getSid();
LoanTransferPaymentApply updateEntity = fetchBySid(sid);
@ -629,11 +632,11 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTran
Set<String> setConOrNumber = new HashSet<>();
for (LoanTransferPaymentRecord applyRecord : loanTransferPaymentRecords) {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid());
// if (null != repaymentHistory) {
// repaymentHistory.setPaymentStateKey("003");
// repaymentHistory.setPaymentState("已转付");
// repaymentHistory.setTransferDate(new DateTime());
// loanRepaymentHistoryService.updateById(repaymentHistory);
if (null != repaymentHistory) {
repaymentHistory.setPaymentStateKey("003");
repaymentHistory.setPaymentState("已转付");
repaymentHistory.setTransferDate(new DateTime());
loanRepaymentHistoryService.updateById(repaymentHistory);
// //推送转付还款记录
// LoanRepaymentHistory transfer = new LoanRepaymentHistory();
// transfer.setScheduleSid(repaymentHistory.getScheduleSid());
@ -656,7 +659,7 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTran
// String amount = String.valueOf(money);
// transfer.setActualMoney(new BigDecimal("-" + amount));
// loanRepaymentHistoryService.insert(transfer);
// }
}
if (payFormKey.equals("01")) {
if (StringUtils.isNotBlank(applyRecord.getBankContractNo())) {
setConOrNumber.add(applyRecord.getBankContractNo());
@ -788,8 +791,44 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTran
}
}
private void pushPaymentVoucher(String businessSid) {
List<LoanTransferPaymentRecord> records = loanTransferPaymentRecordService.selByMainSid(businessSid);
public ResultBean pushPaymentRecord(String sid, String paySid) {
ResultBean rb = ResultBean.fireFail();
List<LoanTransferPaymentRecord> records = loanTransferPaymentRecordService.selByMainSidAndPaySid(sid, paySid);
if (!records.isEmpty()) {
for (LoanTransferPaymentRecord applyRecord : records) {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid());
if (null != repaymentHistory) {
//推送转付还款记录
LoanRepaymentHistory transfer = new LoanRepaymentHistory();
transfer.setScheduleSid(repaymentHistory.getScheduleSid());
transfer.setPlanDetailSid(repaymentHistory.getPlanDetailSid());
transfer.setReturnWay("转付");
transfer.setReturnWayKey("03");
transfer.setActualDate(new Date());
transfer.setDataTime(new DateTime());
transfer.setBuckleKey("001");
transfer.setBuckle("未申请");
transfer.setUpdateState("1");
transfer.setUpdateTime(new DateTime());
BigDecimal money = new BigDecimal(0);
if (null != applyRecord.getTransferPrincipal()) {
money = applyRecord.getTransferPrincipal();
}
if (null != applyRecord.getDefaultInterest()) {
money = applyRecord.getDefaultInterest().add(money);
}
String amount = String.valueOf(money);
transfer.setActualMoney(new BigDecimal("-" + amount));
loanRepaymentHistoryService.insert(transfer);
}
}
}
return rb.success();
}
public ResultBean pushPaymentVoucher(String sid, String paySid) {
ResultBean rb = ResultBean.fireFail();
List<LoanTransferPaymentRecord> records = loanTransferPaymentRecordService.selByMainSidAndPaySid(sid, paySid);
if (!records.isEmpty()) {
PaymentVoucher paymentVoucher = new PaymentVoucher();
List<PaymentVoucher.PaymentVoucherDetail> voucherDetails = new ArrayList<>();
@ -889,6 +928,7 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTran
paymentVoucher.setVoucherDetails(voucherDetails);
finKingDeeFeign.savePaymentVoucher(paymentVoucher);
}
return rb.success();
}
@ -1231,4 +1271,6 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTran
}
return rb.success().setData(vo);
}
}

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordMapper.java

@ -20,4 +20,6 @@ public interface LoanTransferPaymentRecordMapper extends BaseMapper<LoanTransfer
List<LoanTransferPaymentRecord> selByMainSid(String mainSid);
LoanTransferPaymentRecord selByBankContractNo(String bankContractNo);
List<LoanTransferPaymentRecord> selByMainSidAndPaySid(@Param("sid") String sid, @Param("paySid") String paySid);
}

9
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordMapper.xml

@ -21,7 +21,14 @@
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
WHERE p.bankContractNo = #{bankContractNo}
and r.state = 1
and r.state = 1
ORDER BY r.createTime DESC LIMIT 1
</select>
<select id="selByMainSidAndPaySid"
resultType="com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord">
select r.*
FROM loan_transfer_payment_record as r
WHERE r.mainSid = #{sid}
and r.paySid = #{paySid}
</select>
</mapper>

4
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordService.java

@ -27,4 +27,8 @@ public class LoanTransferPaymentRecordService extends MybatisBaseService<LoanTra
public LoanTransferPaymentRecord selByBankContractNo(String bankContractNo) {
return baseMapper.selByBankContractNo(bankContractNo);
}
public List<LoanTransferPaymentRecord> selByMainSidAndPaySid(String sid, String paySid) {
return baseMapper.selByMainSidAndPaySid(sid,paySid);
}
}

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

@ -71,9 +71,9 @@ public interface LoanVehClearanceApplyMapper extends BaseMapper<LoanVehClearance
IPage<LoanVehClearanceLockCarVo> lockCarList(IPage<LoanVehClearanceApply> page, @Param(Constants.WRAPPER) QueryWrapper<LoanVehClearanceApply> qw);
LoanVehClearanceVehInit initVehListBySaleVehSid(String saleVehSid);
int updateFlowFiled(Map<String, Object> map);
int selectBySid(String join);
LoanVehClearanceVehInit initVehListBySaleVehSidYCJK(String saleVehSid);
}

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

@ -43,123 +43,6 @@
</where>
</select>
<select id="initVehListBySaleVehSid"
resultType="com.yxt.anrui.riskcenter.api.loanvehclearanceveh.LoanVehClearanceVehInit">
SELECT
a1.`loanContractNo`,
RIGHT (a1.vinNo, 8) AS vinNo,
a1.vehMark AS carNum,
a1.`bankName`,
a1.bankContractNo,
a1.customer AS custName,
a1.borrowerName AS loanName,
a1.dueDate AS firstBeDate,
COUNT(a1.sid) AS beOverduePeriod,
(
SUM(a1.yq_total) + IFNULL(
(SELECT
SUM(lbpv.`bankBeInter`)
FROM
loan_be_padsincere_veh lbpv
WHERE lbpv.saleVehSid = a1.busVinSid),
0
) + IFNULL(
(SELECT
SUM(fund)
FROM
loan_fund_day
WHERE busSid IN
(SELECT
lrpd.sid
FROM
loan_repayment_plan_details lrpd
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE())),
0
)
) AS beOverdueMoney,
ROUND((
SUM(a1.yq_total) + IFNULL(
(SELECT
SUM(lbpv.`bankBeInter`)
FROM
loan_be_padsincere_veh lbpv
WHERE lbpv.saleVehSid = a1.busVinSid),
0
) + IFNULL(
(SELECT
SUM(fund)
FROM
loan_fund_day
WHERE busSid IN
(SELECT
lrpd.sid
FROM
loan_repayment_plan_details lrpd
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE())),
0
)
) / a1.dueMoney, 1) AS beOverdueMoneyAndPeriod,
a1.busVinSid AS saleVehSid,
a1.salesOrderSid,
a1.lockCarMoney
FROM
(SELECT
lrpd.sid,
lrpd.busVinSid,
lrpd.`loanContractNo`,
lrpd.bankContractNo,
lrpd.`vinNo`,
lrpd.`bankName`,
lrpd.borrowerName,
lrpd.dueDate,
lrpd.vehMark,
lrpd.dueMoney,
(
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))
) AS yq_total,
(
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))
) / lrpd.`dueMoney` AS yq_hsqs,
lrpd.customer,
ct.mobile,
lr.createTime,
lrpd.borrowerSid,
lrpd.salesOrderSid,
lv.lockCarMoney,
lv.lockCarState
FROM
`loan_repayment_plan_details` lrpd
LEFT JOIN `loan_repayment_history` lrh
ON lrh.planDetailSid = lrpd.`sid`
LEFT JOIN anrui_buscenter.`bus_sales_order_vehicle` bv
ON lrpd.busVinSid = bv.sid
LEFT JOIN
(SELECT
saleVehSid,
createTime
FROM
loan_be_collection_record
ORDER BY createTime DESC
LIMIT 1) lr
ON lrpd.busVinSid = lr.saleVehSid
LEFT JOIN anrui_crm.`crm_customer_temp` ct
ON lrpd.customerSid = ct.sid
LEFT JOIN (SELECT
*
FROM
loan_be_collection_veh
WHERE lockCarState = '1') lv
ON lrpd.busVinSid = lv.saleVehSid
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
GROUP BY lrpd.`sid`
HAVING (yq_total > 0)) a1
WHERE a1.busVinSid = #{saleVehSid}
AND a1.lockCarState = '1'
GROUP BY a1.loanContractNo,
a1.vinNo,
a1.busVinSid
</select>
<update id="updateFlowFiled">
UPDATE loan_veh_clearance_apply
SET nodeState=#{nodeState}, nodeSid=#{taskDefKey}, modifyTime = NOW()
@ -181,4 +64,127 @@
WHERE nodeState != '待提交'
and find_in_set(sid, #{list})
</select>
<select id="initVehListBySaleVehSidYCJK"
resultType="com.yxt.anrui.riskcenter.api.loanvehclearanceveh.LoanVehClearanceVehInit">
SELECT
a1.`loanContractNo`,
RIGHT (a1.vinNo, 8) AS vinNo,
a1.vehMark AS carNum,
a1.`bankName`,
a1.bankContractNo,
a1.customer AS custName,
a1.borrowerName AS loanName,
a1.dueDate AS firstBeDate,
COUNT(a1.sid) AS beOverduePeriod,
(
SUM(a1.yq_total) + IFNULL(
(SELECT
SUM(lbpv.`bankBeInter`)
FROM
loan_be_padsincere_veh lbpv
WHERE lbpv.saleVehSid = a1.busVinSid),
0
) + IFNULL(
(SELECT
SUM(fund)
FROM
loan_fund_day
WHERE busSid IN
(SELECT
lrpd.sid
FROM
loan_repayment_plan_details lrpd
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE())),
0
)
) AS beOverdueMoney,
ROUND(
(
SUM(a1.yq_total) + IFNULL(
(SELECT
SUM(lbpv.`bankBeInter`)
FROM
loan_be_padsincere_veh lbpv
WHERE lbpv.saleVehSid = a1.busVinSid),
0
) + IFNULL(
(SELECT
SUM(fund)
FROM
loan_fund_day
WHERE busSid IN
(SELECT
lrpd.sid
FROM
loan_repayment_plan_details lrpd
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE())),
0
)
) / a1.dueMoney,
1
) AS beOverdueMoneyAndPeriod,
a1.busVinSid AS saleVehSid,
a1.salesOrderSid,
a1.lockCarMoney
FROM
(SELECT
lrpd.sid,
lrpd.busVinSid,
lrpd.`loanContractNo`,
lrpd.bankContractNo,
lrpd.`vinNo`,
lrpd.`bankName`,
lrpd.borrowerName,
lrpd.dueDate,
lrpd.vehMark,
lrpd.dueMoney,
(
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))
) AS yq_total,
(
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))
) / lrpd.`dueMoney` AS yq_hsqs,
lrpd.customer,
ct.mobile,
lr.createTime,
lrpd.borrowerSid,
lrpd.salesOrderSid,
(SELECT
lbcv.lockCarMoney
FROM
loan_be_collection_veh lbcv
LEFT JOIN loan_be_collection_apply lbca
ON lbca.sid = lbcv.mainSid
WHERE lbca.collMeasure LIKE '%远程控制%'
AND lbca.nodeState = '已办结'
AND lbcv.lockCarState = '1'
AND lbcv.saleVehSid = lrpd.busVinSid
ORDER BY lbcv.createTime DESC
LIMIT 1) AS lockCarMoney
FROM
`loan_repayment_plan_details` lrpd
LEFT JOIN `loan_repayment_history` lrh
ON lrh.planDetailSid = lrpd.`sid`
LEFT JOIN anrui_buscenter.`bus_sales_order_vehicle` bv
ON lrpd.busVinSid = bv.sid
LEFT JOIN
(SELECT
saleVehSid,
createTime
FROM
loan_be_collection_record
ORDER BY createTime DESC
LIMIT 1) lr
ON lrpd.busVinSid = lr.saleVehSid
LEFT JOIN anrui_crm.`crm_customer_temp` ct
ON lrpd.customerSid = ct.sid
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
GROUP BY lrpd.`sid`
HAVING (yq_total > 0)) a1
WHERE a1.busVinSid = #{saleVehSid}
GROUP BY a1.loanContractNo,
a1.vinNo,
a1.busVinSid
</select>
</mapper>

7
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyService.java

@ -388,11 +388,6 @@ public class LoanVehClearanceApplyService extends MybatisBaseService<LoanVehClea
return vo;
}
public LoanVehClearanceVehInit initVehListBySaleVehSid(String saleVehSid) {
LoanVehClearanceVehInit loanVehClearanceVehInit = baseMapper.initVehListBySaleVehSid(saleVehSid);
return loanVehClearanceVehInit;
}
public LoanVehClearanceApplyDetailsVo init(LoanVehClearanceInitQuery query) {
List<String> saleVehSids = query.getSaleVehSids();
LoanVehClearanceApplyDetailsVo loanVehClearanceApplyDetailsVo = new LoanVehClearanceApplyDetailsVo();
@ -410,7 +405,7 @@ public class LoanVehClearanceApplyService extends MybatisBaseService<LoanVehClea
loanVehClearanceApplyDetailsVo.setOrgPath(query.getOrgPath());
List<LoanVehClearanceVehDetailsVo> loanVehClearanceVehDetailsVoList = new ArrayList<>();
for (String saleVehSid : saleVehSids) {
LoanVehClearanceVehInit loanVehClearanceVehInit = baseMapper.initVehListBySaleVehSid(saleVehSid);
LoanVehClearanceVehInit loanVehClearanceVehInit = baseMapper.initVehListBySaleVehSidYCJK(saleVehSid);
LoanVehClearanceVehDetailsVo loanVehClearanceVehDetailsVo = new LoanVehClearanceVehDetailsVo();
BeanUtil.copyProperties(loanVehClearanceVehInit, loanVehClearanceVehDetailsVo);
loanVehClearanceVehDetailsVo.setCustomerName(loanVehClearanceVehInit.getCustName());

4
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehquery/ScmApplyInboundVehQueryMapper.java

@ -67,6 +67,6 @@ public interface ScmApplyInboundVehQueryMapper extends BaseMapper<ScmApplyInboun
@Select("select * from scm_apply_inbound_veh_query where mainSid = #{cgrkdSid}")
List<ScmApplyInboundVehQueryDetailsVo> fetchByMainSid(String cgrkdSid);
@Select("SELECT * FROM scm_apply_inbound_veh_query WHERE vinNo LIKE #{vinNo}")
ScmApplyInboundVehQueryDetailsVo fetchDetailsByVinNo(String vinNo);
@Select("SELECT * FROM scm_apply_inbound_veh_query WHERE vinNo LIKE CONCAT('%',#{vinNo},'%')")
ScmApplyInboundVehQueryDetailsVo fetchDetailsByVinNo(@Param("vinNo") String vinNo);
}
Loading…
Cancel
Save