Browse Source

赎回申请模块开发完整代码

master
fanzongzhe 1 year ago
parent
commit
e5e93745ec
  1. 1
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java
  2. 1
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java
  3. 8
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApply.java
  4. 26
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApplyDto.java
  5. 126
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApplyFeign.java
  6. 80
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApplyFeignFallback.java
  7. 44
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApplyInit.java
  8. 32
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/RedemptionInitVo.java
  9. 18
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/RedemptionVinList.java
  10. 16
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/VinListQuery.java
  11. 20
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/VinListVo.java
  12. 97
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/app/AppRedemptionDetailsVo.java
  13. 28
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/app/AppVinListVo.java
  14. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionveh/LoanRedemptionVeh.java
  15. 16
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.java
  16. 55
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.xml
  17. 162
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyRest.java
  18. 1686
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java
  19. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionveh/LoanRedemptionVehMapper.java
  20. 13
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionveh/LoanRedemptionVehMapper.xml
  21. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionveh/LoanRedemptionVehService.java
  22. 28
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/redemption/AppVinList.java
  23. 99
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/redemption/RedemptionDetailsVo.java
  24. 67
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/redemption/RedemptionFeign.java
  25. 52
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/redemption/RedemptionFeignFallback.java
  26. 25
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/redemption/flow/AppRedemptionDelegateQuery.java
  27. 46
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/redemption/flow/AppRedemptionTaskQuery.java
  28. 35
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/redemption/flow/CompleteRedemptionDto.java
  29. 21
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/redemption/flow/RedemptionFlowableQuery.java
  30. 68
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/redemption/RedemptionRest.java
  31. 157
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/redemption/RedemptionService.java

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

@ -70,6 +70,7 @@ public enum ProcDefEnum {
LOANOVERDUEBANK("逾期对账申请(资方)", "process_wwb7q95x:1:7672508"),
LOANVEHCLEARANCEAPPLY("车辆远程解控申请", "process_zbzenr9b:2:7782504"),
LOANRESTOREREPORTAPPLY("车辆交回事前报备申请", "process_w796wtt7:1:7822504"),
LOANREDEMPTIONAPPLY("车辆交回赎回申请", "process_qu4fq4r6:1:7820004"),
/******************************测试流程id*********************************************/

1
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java

@ -29,6 +29,7 @@ public enum LoanFileEnum {
BECOLLECTIONVEHHKXY("020", "催收措施车辆还款协议附件"),
VEHCLEARANCE("021", "车辆远程解控附件"),
RESTOREREPORT("022", "车辆交回事前报备附件"),
REDEMPTION("023", "车辆交回赎回申请附件"),
;

8
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApply.java

@ -60,5 +60,13 @@ public class LoanRedemptionApply extends BaseEntity {
private BigDecimal amount;
@ApiModelProperty("赎回方案")
private String plan;
@ApiModelProperty("停放地点")
private String location;
@ApiModelProperty("相关费用")
private BigDecimal fees;
@ApiModelProperty("相关费用说明")
private String feesShows;
@ApiModelProperty("交回车辆主车台账sid")
private String ledgerSid;
}

26
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApplyDto.java

@ -2,6 +2,7 @@ package com.yxt.anrui.riskcenter.api.loanredemptionapply;
import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleHistoryRecord;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
@ -15,14 +16,35 @@ import java.util.List;
@Data
public class LoanRedemptionApplyDto implements Dto {
private String ledgerSid;
private String sid;
private String userSid;
private String dept;
private String deptSid;
private String applyName;
private String applyDate;
private String remarks;
private String orgPath;
@ApiModelProperty("消贷合同号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同号")
private String bankContractNo;
@ApiModelProperty("客户名称")
private String customer;
@ApiModelProperty("贷款人")
private String borrowerName;
@ApiModelProperty("本次还款金额")
private String amount;
@ApiModelProperty("赎回方案")
private String plan;
@ApiModelProperty("停放地点")
private String location;
@ApiModelProperty("相关费用")
private String fees;
@ApiModelProperty("相关费用说明")
private String feesShows;
private String busVinSid; //催收记录
private List<LoanRedemptionApplyFile> files = new ArrayList<>();
private List<LoanBuckleHistoryRecord> records = new ArrayList<>();
private List<RedemptionVinList> vinList = new ArrayList<>();
}

126
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApplyFeign.java

@ -1,5 +1,6 @@
package com.yxt.anrui.riskcenter.api.loanredemptionapply;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.app.AppRedemptionDetailsVo;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.flow.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
@ -32,65 +33,74 @@ public interface LoanRedemptionApplyFeign {
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<LoanRedemptionApplyVo>> listPage(@RequestBody PagerQuery<LoanRedemptionApplyQuery> pq);
//
// @ApiOperation("新增初始化")
// @PostMapping("/buckleInit")
// @ResponseBody
// public ResultBean<LoanRedemptionApplyInit> buckleInit(@RequestBody String[] sids);
//
// @ApiOperation("保存修改")
// @PostMapping("/saveBuckle")
// @ResponseBody
// public ResultBean<String> saveBuckle(@RequestBody LoanRedemptionApplyDto dto);
//
// @ApiOperation("详情查看")
// @GetMapping("/buckleDetails")
// @ResponseBody
// public ResultBean<LoanRedemptionApplyInit> buckleDetails(@RequestParam("sid") String sid);
//
// @ApiOperation("批量删除")
// @DeleteMapping("/deleteBySids")
// @ResponseBody
// public ResultBean deleteBySids(@RequestBody String[] sids);
//
// //------------------------------流程接口----------------------------------------------
//
// @ApiOperation("提交")
// @PostMapping("/submit")
// public ResultBean submitRecordApplication(@RequestBody @Valid SubmitRedemptionDto dto);
//
// @ApiOperation(value = "办理(同意)")
// @PostMapping("/complete")
// public ResultBean complete(@Valid @RequestBody RedemptionCompleteDto dto);
//
// @ApiOperation(value = "撤回流程")
// @PostMapping(value = "/revokeProcess")
// public ResultBean revokeProcess(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody RedemptionTaskQuery query);
//
// @ApiOperation(value = "驳回任务")
// @PostMapping(value = "/reject")
// public ResultBean taskReject(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody RedemptionTaskQuery query);
//
// @ApiOperation(value = "终止任务")
// @PostMapping(value = "/breakProcess")
// public ResultBean breakProcess(@RequestBody RedemptionTaskQuery query);
//
// @ApiOperation(value = "流程历史流转记录")
// @GetMapping(value = "/task/flowRecord/{procInsId}/{deployId}")
// public ResultBean flowRecord(@ApiParam(value = "流程实例id") @PathVariable(value = "procInsId") String procInsId);
//
// @ApiOperation(value = "获取下一个环节")
// @GetMapping(value = "/getNextNodesForSubmit")
// ResultBean<List<RedemptionGetNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap RedemptionGetNodeQuery query);
//
// @ApiOperation(value = "获取上一个环节")
// @GetMapping(value = "/getPreviousNodesForReject")
// ResultBean<List<RedemptionGetNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap RedemptionGetNodeQuery query);
//
// @ApiOperation(value = "加签")
// @PostMapping(value = "/delegate")
// public ResultBean delegate(@RequestBody RedemptionDelegateQuery query);
@ApiOperation("查询可处置车辆列表")
@PostMapping("/getVinList")
public ResultBean<PagerVo<VinListVo>> getVinList(@RequestBody PagerQuery<VinListQuery> pq);
@ApiOperation("新增初始化")
@GetMapping("/redemptionInit")
@ResponseBody
public ResultBean<LoanRedemptionApplyInit> redemptionInit(@RequestParam("ledgerSid") String ledgerSid);
@ApiOperation("保存修改")
@PostMapping("/saveRedemption")
@ResponseBody
public ResultBean<String> saveRedemption(@RequestBody LoanRedemptionApplyDto dto);
@ApiOperation("详情查看")
@GetMapping("/redemptionDetails")
@ResponseBody
public ResultBean<LoanRedemptionApplyInit> redemptionDetails(@RequestParam("sid") String sid);
@ApiOperation("批量删除")
@DeleteMapping("/deleteBySids")
@ResponseBody
public ResultBean deleteBySids(@RequestBody String[] sids);
//------------------------------流程接口----------------------------------------------
@ApiOperation("提交")
@PostMapping("/submit")
public ResultBean submitRecordApplication(@RequestBody @Valid SubmitRedemptionDto dto);
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody RedemptionCompleteDto dto);
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody RedemptionTaskQuery query);
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean taskReject(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody RedemptionTaskQuery query);
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@RequestBody RedemptionTaskQuery query);
@ApiOperation(value = "流程历史流转记录")
@GetMapping(value = "/task/flowRecord/{procInsId}/{deployId}")
public ResultBean flowRecord(@ApiParam(value = "流程实例id") @PathVariable(value = "procInsId") String procInsId);
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
ResultBean<List<RedemptionGetNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap RedemptionGetNodeQuery query);
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
ResultBean<List<RedemptionGetNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap RedemptionGetNodeQuery query);
@ApiOperation(value = "加签")
@PostMapping(value = "/delegate")
public ResultBean delegate(@RequestBody RedemptionDelegateQuery query);
//-------------------------app------------------------
@ApiOperation("详情查看")
@GetMapping("/appDetails")
@ResponseBody
public ResultBean<AppRedemptionDetailsVo> appDetail(@RequestParam("sid") String sid);
}

80
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApplyFeignFallback.java

@ -1,11 +1,15 @@
package com.yxt.anrui.riskcenter.api.loanredemptionapply;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.app.AppRedemptionDetailsVo;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.flow.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class LoanRedemptionApplyFeignFallback implements LoanRedemptionApplyFeign {
@ -15,4 +19,80 @@ public class LoanRedemptionApplyFeignFallback implements LoanRedemptionApplyFeig
public ResultBean<PagerVo<LoanRedemptionApplyVo>> listPage(PagerQuery<LoanRedemptionApplyQuery> pq) {
return null;
}
@Override
public ResultBean<PagerVo<VinListVo>> getVinList(PagerQuery<VinListQuery> pq) {
return null;
}
@Override
public ResultBean<LoanRedemptionApplyInit> redemptionInit(String ledgerSid) {
return null;
}
@Override
public ResultBean<String> saveRedemption(LoanRedemptionApplyDto dto) {
return null;
}
@Override
public ResultBean<LoanRedemptionApplyInit> redemptionDetails(String sid) {
return null;
}
@Override
public ResultBean deleteBySids(String[] sids) {
return null;
}
@Override
public ResultBean submitRecordApplication(SubmitRedemptionDto dto) {
return null;
}
@Override
public ResultBean complete(RedemptionCompleteDto dto) {
return null;
}
@Override
public ResultBean revokeProcess(RedemptionTaskQuery query) {
return null;
}
@Override
public ResultBean taskReject(RedemptionTaskQuery query) {
return null;
}
@Override
public ResultBean breakProcess(RedemptionTaskQuery query) {
return null;
}
@Override
public ResultBean flowRecord(String procInsId) {
return null;
}
@Override
public ResultBean<List<RedemptionGetNodeVo>> getNextNodesForSubmit(RedemptionGetNodeQuery query) {
return null;
}
@Override
public ResultBean<List<RedemptionGetNodeVo>> getPreviousNodesForReject(RedemptionGetNodeQuery query) {
return null;
}
@Override
public ResultBean delegate(RedemptionDelegateQuery query) {
return null;
}
@Override
public ResultBean<AppRedemptionDetailsVo> appDetail(String sid) {
return null;
}
}

44
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApplyInit.java

@ -5,6 +5,7 @@ import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@ -16,19 +17,58 @@ import java.util.List;
@Data
public class LoanRedemptionApplyInit implements Vo {
private String ledgerSid;
private String sid;
private String userSid;
private String dept;
private String deptSid;
private String applyName;
private String applyDate;
private String remarks;
private String orgPath;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("实例id")
private String instanceId;
@ApiModelProperty("消贷合同号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同号")
private String bankContractNo;
@ApiModelProperty("客户名称")
private String customer;
@ApiModelProperty("贷款人")
private String borrowerName;
@ApiModelProperty("本次还款金额")
private String amount;
@ApiModelProperty("赎回方案")
private String plan;
@ApiModelProperty("停放地点")
private String location;
@ApiModelProperty("相关费用")
private String fees;
@ApiModelProperty("相关费用说明")
private String feesShows;
//费用
@ApiModelProperty("已还金额")
private String alRepaidMoney; // 已还金额
@ApiModelProperty("当前逾期金额")
private String currentBeMoney; // 当前逾期金额
@ApiModelProperty("其中资金占用费")
private String wheFundOccMoney; // 其中资金占用费
@ApiModelProperty("未到期金额")
private String unexpiredMoney; // 未到期金额
@ApiModelProperty("总期数")
private String nper; // 总期数
@ApiModelProperty("当前期数")
private String currentPeriod; // 当前期数
@ApiModelProperty("已还金额换算期数")
private String alRepaidMoneyConPeriod; // 已还金额换算期数
@ApiModelProperty("逾期金额换算期数")
private String beOverdueMoneyAndPeriod; // 逾期金额换算期数
private String busVinSid; //催收记录
private String rksqSid; //入库申请sid
private List<LoanRedemptionApplyFile> files = new ArrayList<>();
private List<LoanBuckleHistoryRecord> records = new ArrayList<>();
private List<RedemptionVinList> vinList = new ArrayList<>();
}

32
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/RedemptionInitVo.java

@ -0,0 +1,32 @@
package com.yxt.anrui.riskcenter.api.loanredemptionapply;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/1/11 14:57
*/
@Data
public class RedemptionInitVo {
private String ledgerSid;
@ApiModelProperty("消贷合同号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同号")
private String bankContractNo;
@ApiModelProperty("客户名称")
private String customer;
@ApiModelProperty("贷款人")
private String borrowerName;
@ApiModelProperty("停放地点")
private String location;
private String busVinSid;
private String vinSid;
private String vinNo;
private String vehMark;
private String vehType;
private String vehModel;
}

18
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/RedemptionVinList.java

@ -0,0 +1,18 @@
package com.yxt.anrui.riskcenter.api.loanredemptionapply;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/1/11 14:29
*/
@Data
public class RedemptionVinList {
private String vinSid;
private String vinNo;
private String vehMark;
private String vehType;
private String vehModel;
private String busVinSid;
}

16
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/VinListQuery.java

@ -0,0 +1,16 @@
package com.yxt.anrui.riskcenter.api.loanredemptionapply;
import com.yxt.common.core.query.Query;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/1/11 13:38
*/
@Data
public class VinListQuery implements Query {
private String vinNo;
private String vehMark;
private String orgPath;
}

20
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/VinListVo.java

@ -0,0 +1,20 @@
package com.yxt.anrui.riskcenter.api.loanredemptionapply;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/1/11 13:33
*/
@Data
public class VinListVo {
private String ledgerSid;
private String vinNo;
private String vehMark;
private String vehType;
private String vehModel;
private String bankName;
private String customer;
private String borrowerName;
}

97
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/app/AppRedemptionDetailsVo.java

@ -0,0 +1,97 @@
package com.yxt.anrui.riskcenter.api.loanredemptionapply.app;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/1/11 17:22
*/
@Data
public class AppRedemptionDetailsVo {
private String sid;
private String publishInfo;
private String time;
private List<String> files = new ArrayList<>();
private String taskId;
private String procInsId;
/**
* 已还金额
*/
private String alRepaidMoney;
/**
* 已还金额换算期数
*/
private String alRepaidMoneyConPeriod;
/**
* 本次还款金额
*/
private String amount;
/**
* 资方合同号
*/
private String bankContractNo;
/**
* 资方
*/
private String bankName;
/**
* 逾期金额换算期数
*/
private String beOverdueMoneyAndPeriod;
/**
* 贷款人
*/
private String borrName;
/**
* 催收记录
*/
private String csjlSid;
/**
* 客户名称
*/
private String custName;
/**
* 相关费用
*/
private String fees;
/**
* 费用说明
*/
private String feesShows;
/**
* 贷款合同号
*/
private String loanContractNo;
/**
* 停放地点
*/
private String location;
/**
* 赎回方案
*/
private String plan;
/**
* 总期数/当前期数
*/
private String qsCount;
/**
* 入库申请
*/
private String rksqSid;
/**
* 未到期金额
*/
private String unexpiredMoney;
/**
* 车辆列表
*/
private List<AppVinListVo> vinList = new ArrayList<>();
/**
* 当前逾期金额/其中资金占用费
*/
private String yqzjzyMoney;
}

28
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/app/AppVinListVo.java

@ -0,0 +1,28 @@
package com.yxt.anrui.riskcenter.api.loanredemptionapply.app;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/1/11 17:35
*/
@Data
public class AppVinListVo {
/**
* 车型
*/
private String model;
/**
* 车牌号
*/
private String vehMark;
/**
* 车辆类型
*/
private String vehType;
/**
* 车架号
*/
private String vinNo;
}

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionveh/LoanRedemptionVeh.java

@ -29,4 +29,6 @@ public class LoanRedemptionVeh extends BaseEntity {
private String vinSid;
@ApiModelProperty("0主车1挂车")
private String vehType;
@ApiModelProperty("车型")
private String vehModel;
}

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

@ -6,8 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApply;
import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApplyVo;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.LoanRedemptionApply;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.LoanRedemptionApplyVo;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -18,8 +17,13 @@ import java.util.Map;
public interface LoanRedemptionApplyMapper extends BaseMapper<LoanRedemptionApply> {
IPage<LoanRedemptionApplyVo> listPage(IPage<LoanRedemptionApply> page, @Param(Constants.WRAPPER) QueryWrapper<LoanRedemptionApply> qw);
//
// int updateFlowFiled(Map<String, Object> map);
//
// int selectNum(String bill);
IPage<VinListVo> getVinList(IPage<VinListVo> page,@Param(Constants.WRAPPER) QueryWrapper<VinListQuery> qw);
RedemptionInitVo redemptionInit(@Param("ledgerSid") String ledgerSid);
RedemptionVinList selTrailerByLedgerSid(@Param("ledgerSid") String ledgerSid);
int updateFlowFiled(Map<String, Object> map);
}

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

@ -2,7 +2,7 @@
<!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.loanredemptionapply.LoanRedemptionApplyMapper">
<update id="updateFlowFiled">
UPDATE loan_buckle_apply
UPDATE loan_redemption_apply
SET nodeState=#{nodeState}
, nodeSid=#{taskDefKey}
<if test="procDefId != null and procDefId != ''">
@ -43,4 +43,57 @@
${ew.sqlSegment}
</where>
</select>
<select id="getVinList" resultType="com.yxt.anrui.riskcenter.api.loanredemptionapply.VinListVo">
SELECT
v.sid ledgerSid,
v.vinNo,
v.vehMark,
v.vehModel,
v.customer,
v.borrowerName,
v.vehType,
(SELECT c.bankName FROM anrui_buscenter.bus_sales_order_loancontract as c WHERE c.sid =
(SELECT b.loanContractSid FROM anrui_buscenter.bus_sales_order_vehicle as b WHERE b.linkSid = v.vinSid and
b.borrowerSid = v.borrowerSid)) as bankName
FROM loan_return_veh_ledger as v
<where>
${ew.sqlSegment}
</where>
</select>
<select id="redemptionInit" resultType="com.yxt.anrui.riskcenter.api.loanredemptionapply.RedemptionInitVo">
SELECT a.*,
c.bankName,
c.bankContractNo,
c.loanContractNo
FROM (SELECT v.sid ledgerSid,
v.vinNo,
v.vinSid,
v.vehMark,
v.vehModel,
v.customer,
v.vehType,
v.location,
v.borrowerName,
(SELECT b.sid
FROM anrui_buscenter.bus_sales_order_vehicle as b
WHERE b.linkSid = v.vinSid
and b.borrowerSid = v.borrowerSid) as busVinSid,
(SELECT b.loanContractSid
FROM anrui_buscenter.bus_sales_order_vehicle as b
WHERE b.linkSid = v.vinSid
and b.borrowerSid = v.borrowerSid) as loanContractSid
FROM loan_return_veh_ledger as v) a
LEFT JOIN anrui_buscenter.bus_sales_order_loancontract as c ON c.sid = a.loanContractSid
WHERE a.ledgerSid = #{ledgerSid}
</select>
<select id="selTrailerByLedgerSid"
resultType="com.yxt.anrui.riskcenter.api.loanredemptionapply.RedemptionVinList">
SELECT vinSid,
vinNo,
vehMark,
vehType,
vehModel
FROM loan_return_trailer_ledger as t
WHERE t.mainSid = #{ledgerSid}
</select>
</mapper>

162
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyRest.java

@ -6,9 +6,9 @@ import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.riskcenter.api.loanbuckleapply.*;
import com.yxt.anrui.riskcenter.api.loanbuckleapply.app.AppBuckleDetailsVo;
import com.yxt.anrui.riskcenter.api.loanbuckleapply.flow.*;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.LoanRedemptionApplyFeign;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.LoanRedemptionApplyQuery;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.LoanRedemptionApplyVo;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.*;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.app.AppRedemptionDetailsVo;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.flow.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -34,80 +34,86 @@ public class LoanRedemptionApplyRest implements LoanRedemptionApplyFeign {
PagerVo<LoanRedemptionApplyVo> pv = loanRedemptionApplyService.listPage(pq);
return rb.success().setData(pv);
}
//
// @Override
// public ResultBean<LoanBuckleApplyInit> buckleInit(String[] sids) {
// return loanRedemptionApplyService.buckleInit(sids);
// }
//
//
//
// @Override
// public ResultBean<String> saveBuckle(LoanBuckleApplyDto dto) {
// return loanRedemptionApplyService.saveBuckle(dto);
// }
//
// @Override
// public ResultBean<LoanBuckleApplyInit> buckleDetails(String sid) {
// return loanRedemptionApplyService.buckleDetails(sid);
// }
//
// @Override
// public ResultBean deleteBySids(String[] sids) {
// return loanRedemptionApplyService.deleteBySids(sids);
// }
//
// @Override
// public ResultBean submitRecordApplication(SubmitBuckleDto dto) {
// return loanRedemptionApplyService.submitRecordApplication(dto);
// }
//
// @Override
// public ResultBean complete(BuckleCompleteDto dto) {
// BusinessVariables bv = new BusinessVariables();
// BeanUtil.copyProperties(dto, bv);
// bv.setModelId(ProcDefEnum.LOANBUCKLEAPPLLY.getProDefId());
// return loanRedemptionApplyService.complete(bv);
// }
//
// @Override
// public ResultBean revokeProcess(BuckleTaskQuery query) {
// return loanRedemptionApplyService.revokeProcess(query);
// }
//
// @Override
// public ResultBean taskReject(BuckleTaskQuery query) {
// return loanRedemptionApplyService.taskReject(query);
// }
//
// @Override
// public ResultBean breakProcess(BuckleTaskQuery query) {
// return loanRedemptionApplyService.breakProcess(query);
// }
//
// @Override
// public ResultBean flowRecord(String procInsId) {
// return loanRedemptionApplyService.flowRecord(procInsId);
// }
//
// @Override
// public ResultBean<List<BuckleGetNodeVo>> getNextNodesForSubmit(BuckleGetNodeQuery query) {
// return loanRedemptionApplyService.getNextNodesForSubmit(query);
// }
//
// @Override
// public ResultBean<List<BuckleGetNodeVo>> getPreviousNodesForReject(BuckleGetNodeQuery query) {
// return loanRedemptionApplyService.getPreviousNodesForReject(query);
// }
//
// @Override
// public ResultBean delegate(BuckleDelegateQuery query) {
// return loanRedemptionApplyService.delegate(query);
// }
//
// @Override
// public ResultBean<AppBuckleDetailsVo> appDetail(String sid) {
// return loanRedemptionApplyService.appDetail(sid);
// }
@Override
public ResultBean<PagerVo<VinListVo>> getVinList(PagerQuery<VinListQuery> pq) {
ResultBean<PagerVo<VinListVo>> rb = ResultBean.fireFail();
PagerVo<VinListVo> pv = loanRedemptionApplyService.getVinList(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean<LoanRedemptionApplyInit> redemptionInit(String ledgerSid) {
return loanRedemptionApplyService.redemptionInit(ledgerSid);
}
@Override
public ResultBean<String> saveRedemption(LoanRedemptionApplyDto dto) {
return loanRedemptionApplyService.saveRedemption(dto);
}
@Override
public ResultBean<LoanRedemptionApplyInit> redemptionDetails(String sid) {
return loanRedemptionApplyService.redemptionDetails(sid);
}
@Override
public ResultBean deleteBySids(String[] sids) {
return loanRedemptionApplyService.deleteBySids(sids);
}
@Override
public ResultBean submitRecordApplication(SubmitRedemptionDto dto) {
return loanRedemptionApplyService.submitRecordApplication(dto);
}
@Override
public ResultBean complete(RedemptionCompleteDto dto) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(dto, bv);
bv.setModelId(ProcDefEnum.LOANREDEMPTIONAPPLY.getProDefId());
return loanRedemptionApplyService.complete(bv);
}
@Override
public ResultBean revokeProcess(RedemptionTaskQuery query) {
return loanRedemptionApplyService.revokeProcess(query);
}
@Override
public ResultBean taskReject(RedemptionTaskQuery query) {
return loanRedemptionApplyService.taskReject(query);
}
@Override
public ResultBean breakProcess(RedemptionTaskQuery query) {
return loanRedemptionApplyService.breakProcess(query);
}
@Override
public ResultBean flowRecord(String procInsId) {
return loanRedemptionApplyService.flowRecord(procInsId);
}
@Override
public ResultBean<List<RedemptionGetNodeVo>> getNextNodesForSubmit(RedemptionGetNodeQuery query) {
return loanRedemptionApplyService.getNextNodesForSubmit(query);
}
@Override
public ResultBean<List<RedemptionGetNodeVo>> getPreviousNodesForReject(RedemptionGetNodeQuery query) {
return loanRedemptionApplyService.getPreviousNodesForReject(query);
}
@Override
public ResultBean delegate(RedemptionDelegateQuery query) {
return loanRedemptionApplyService.delegate(query);
}
@Override
public ResultBean<AppRedemptionDetailsVo> appDetail(String sid) {
return loanRedemptionApplyService.appDetail(sid);
}
}

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

File diff suppressed because it is too large

3
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionveh/LoanRedemptionVehMapper.java

@ -2,6 +2,7 @@ package com.yxt.anrui.riskcenter.biz.loanredemptionveh;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.riskcenter.api.loanbuckleapplyrecord.LoanBuckleApplyRecord;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.RedemptionVinList;
import com.yxt.anrui.riskcenter.api.loanredemptionveh.LoanRedemptionVeh;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -14,5 +15,5 @@ public interface LoanRedemptionVehMapper extends BaseMapper<LoanRedemptionVeh> {
int deleteByMainSid(@Param("mainSid") String mainSid);
List<LoanBuckleApplyRecord> selByMainSid(String sid);
List<RedemptionVinList> selByMainSid(@Param("mainSid") String mainSid);
}

13
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionveh/LoanRedemptionVehMapper.xml

@ -4,13 +4,18 @@
<delete id="deleteByMainSid">
DELETE
FROM loan_buckle_apply_record
FROM loan_redemption_veh
WHERE mainSid = #{mainSid}
</delete>
<select id="selByMainSid"
resultType="com.yxt.anrui.riskcenter.api.loanbuckleapplyrecord.LoanBuckleApplyRecord">
select *
FROM loan_buckle_apply_record
resultType="com.yxt.anrui.riskcenter.api.loanredemptionapply.RedemptionVinList">
select vinSid,
vinNo,
vehMark,
vehModel,
busVinSid,
vehType
FROM loan_redemption_veh
WHERE mainSid = #{mainSid}
</select>
</mapper>

3
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionveh/LoanRedemptionVehService.java

@ -1,6 +1,7 @@
package com.yxt.anrui.riskcenter.biz.loanredemptionveh;
import com.yxt.anrui.riskcenter.api.loanbuckleapplyrecord.LoanBuckleApplyRecord;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.RedemptionVinList;
import com.yxt.anrui.riskcenter.api.loanredemptionveh.LoanRedemptionVeh;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
@ -20,7 +21,7 @@ public class LoanRedemptionVehService extends MybatisBaseService<LoanRedemptionV
}
public List<LoanBuckleApplyRecord> selByMainSid(String sid) {
public List<RedemptionVinList> selByMainSid(String sid) {
return baseMapper.selByMainSid(sid);
}
}

28
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/redemption/AppVinList.java

@ -0,0 +1,28 @@
package com.yxt.anrui.terminal.api.risk.redemption;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/11/13 15:45
*/
@Data
public class AppVinList {
/**
* 车型
*/
private String model;
/**
* 车牌号
*/
private String vehMark;
/**
* 车辆类型
*/
private String vehType;
/**
* 车架号
*/
private String vinNo;
}

99
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/redemption/RedemptionDetailsVo.java

@ -0,0 +1,99 @@
package com.yxt.anrui.terminal.api.risk.redemption;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/11/13 15:38
*/
@Data
public class RedemptionDetailsVo implements Vo {
private String sid;
private String publishInfo;
private String time;
private List<String> files = new ArrayList<>();
private String taskId;
private String procInsId;
/**
* 已还金额
*/
private String alRepaidMoney;
/**
* 已还金额换算期数
*/
private String alRepaidMoneyConPeriod;
/**
* 本次还款金额
*/
private String amount;
/**
* 资方合同号
*/
private String bankContractNo;
/**
* 资方
*/
private String bankName;
/**
* 逾期金额换算期数
*/
private String beOverdueMoneyAndPeriod;
/**
* 贷款人
*/
private String borrName;
/**
* 催收记录
*/
private String csjlSid;
/**
* 客户名称
*/
private String custName;
/**
* 相关费用
*/
private String fees;
/**
* 费用说明
*/
private String feesShows;
/**
* 贷款合同号
*/
private String loanContractNo;
/**
* 停放地点
*/
private String location;
/**
* 赎回方案
*/
private String plan;
/**
* 总期数/当前期数
*/
private String qsCount;
/**
* 入库申请
*/
private String rksqSid;
/**
* 未到期金额
*/
private String unexpiredMoney;
/**
* 车辆列表
*/
private List<AppVinList> vinList = new ArrayList<>();
/**
* 当前逾期金额/其中资金占用费
*/
private String yqzjzyMoney;
}

67
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/redemption/RedemptionFeign.java

@ -0,0 +1,67 @@
package com.yxt.anrui.terminal.api.risk.redemption;
import com.yxt.anrui.terminal.api.risk.redemption.flow.AppRedemptionDelegateQuery;
import com.yxt.anrui.terminal.api.risk.redemption.flow.AppRedemptionTaskQuery;
import com.yxt.anrui.terminal.api.risk.redemption.flow.RedemptionFlowableQuery;
import com.yxt.anrui.terminal.api.risk.redemption.flow.CompleteRedemptionDto;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/**
* @description:
* @author: fzz
* @date: 2023/8/8
**/
@Api(tags = "交回车辆赎回申请")
@FeignClient(
contextId = "terminal-Buckle",
name = "anrui-terminal",
path = "/riskcenter/v1/redemption",
fallback = RedemptionFeignFallback.class)
public interface RedemptionFeign {
@ApiOperation("划扣申请")
@GetMapping("/appDetail/{sid}")
@ResponseBody
ResultBean<RedemptionDetailsVo> detail(@PathVariable("sid") String sid);
//-------------------------流程-----------------------------------------
@ApiOperation("办理")
@PutMapping("/agreeCreditInfo")
@ResponseBody
ResultBean agreeCreditInfo(@Valid @RequestBody CompleteRedemptionDto dto);
@ApiOperation("驳回")
@PutMapping("/rejectCreditInfo")
@ResponseBody
ResultBean rejectCreditInfo(@Valid @RequestBody AppRedemptionTaskQuery query);
@ApiOperation("撤回")
@PutMapping("/recallCreditInfo")
@ResponseBody
ResultBean recallCreditInfo(@Valid @RequestBody AppRedemptionTaskQuery query);
@ApiOperation("终止")
@PutMapping("/stopCreditInfo")
@ResponseBody
ResultBean stopCreditInfo(@Valid @RequestBody AppRedemptionTaskQuery query);
@ApiOperation("获取流程操作标题")
@GetMapping("/getFlowOperateTitle")
@ResponseBody
ResultBean<String> getFlowOperateTitle(@Valid @SpringQueryMap RedemptionFlowableQuery query);
@ApiOperation(value = "加签")
@PutMapping(value = "/delegate")
@ResponseBody
public ResultBean delegate(@RequestBody AppRedemptionDelegateQuery delegateQuery);
}

52
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/redemption/RedemptionFeignFallback.java

@ -0,0 +1,52 @@
package com.yxt.anrui.terminal.api.risk.redemption;
import com.yxt.anrui.terminal.api.risk.redemption.flow.AppRedemptionDelegateQuery;
import com.yxt.anrui.terminal.api.risk.redemption.flow.AppRedemptionTaskQuery;
import com.yxt.anrui.terminal.api.risk.redemption.flow.RedemptionFlowableQuery;
import com.yxt.anrui.terminal.api.risk.redemption.flow.CompleteRedemptionDto;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Component;
/**
* @description:
* @author: fzz
* @date:
**/
@Component
public class RedemptionFeignFallback implements RedemptionFeign {
@Override
public ResultBean<RedemptionDetailsVo> detail(String sid) {
return null;
}
@Override
public ResultBean agreeCreditInfo(CompleteRedemptionDto dto) {
return null;
}
@Override
public ResultBean rejectCreditInfo(AppRedemptionTaskQuery query) {
return null;
}
@Override
public ResultBean recallCreditInfo(AppRedemptionTaskQuery query) {
return null;
}
@Override
public ResultBean stopCreditInfo(AppRedemptionTaskQuery query) {
return null;
}
@Override
public ResultBean<String> getFlowOperateTitle(RedemptionFlowableQuery query) {
return null;
}
@Override
public ResultBean delegate(AppRedemptionDelegateQuery delegateQuery) {
return null;
}
}

25
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/redemption/flow/AppRedemptionDelegateQuery.java

@ -0,0 +1,25 @@
package com.yxt.anrui.terminal.api.risk.redemption.flow;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/9/28 10:16
*/
@Data
public class AppRedemptionDelegateQuery {
@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;
}

46
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/redemption/flow/AppRedemptionTaskQuery.java

@ -0,0 +1,46 @@
package com.yxt.anrui.terminal.api.risk.redemption.flow;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @author Administrator
* @description
* @date 2023/10/17 9:14
*/
@Data
public class AppRedemptionTaskQuery implements Query {
/**
* 终止驳回撤回
*/
@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")
@JsonProperty("procInsId")
private String instanceId;
}

35
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/redemption/flow/CompleteRedemptionDto.java

@ -0,0 +1,35 @@
package com.yxt.anrui.terminal.api.risk.redemption.flow;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @author Administrator
* @description
* @date 2023/10/17 9:13
*/
@Data
public class CompleteRedemptionDto implements Dto {
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id")
@NotBlank(message = "参数错误:procInsId")
@JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
}

21
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/redemption/flow/RedemptionFlowableQuery.java

@ -0,0 +1,21 @@
package com.yxt.anrui.terminal.api.risk.redemption.flow;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class RedemptionFlowableQuery implements Query {
private static final long serialVersionUID = -5879668616710833830L;
@ApiModelProperty(value = "节点key")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
@ApiModelProperty(value = "0 上一环节 1下一环节")
@NotNull(message = "参数错误:next")
private Integer next;
}

68
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/redemption/RedemptionRest.java

@ -0,0 +1,68 @@
package com.yxt.anrui.terminal.biz.risk.redemption;
import com.yxt.anrui.terminal.api.risk.buckle.BuckleDetailsVo;
import com.yxt.anrui.terminal.api.risk.buckle.BuckleFeign;
import com.yxt.anrui.terminal.api.risk.buckle.flow.AppBuckleDelegateQuery;
import com.yxt.anrui.terminal.api.risk.buckle.flow.AppBuckleTaskQuery;
import com.yxt.anrui.terminal.api.risk.buckle.flow.BuckleFlowableQuery;
import com.yxt.anrui.terminal.api.risk.buckle.flow.CompleteBuckleDto;
import com.yxt.anrui.terminal.api.risk.redemption.RedemptionDetailsVo;
import com.yxt.anrui.terminal.api.risk.redemption.RedemptionFeign;
import com.yxt.anrui.terminal.api.risk.redemption.flow.AppRedemptionDelegateQuery;
import com.yxt.anrui.terminal.api.risk.redemption.flow.AppRedemptionTaskQuery;
import com.yxt.anrui.terminal.api.risk.redemption.flow.CompleteRedemptionDto;
import com.yxt.anrui.terminal.api.risk.redemption.flow.RedemptionFlowableQuery;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @description:
* @author: fzz
* @date:
**/
@Controller
@RequestMapping("/riskcenter/v1/redemption")
public class RedemptionRest implements RedemptionFeign {
@Autowired
private RedemptionService redemptionService;
@Override
public ResultBean<RedemptionDetailsVo> detail(String sid) {
return redemptionService.detail(sid);
}
@Override
public ResultBean agreeCreditInfo(CompleteRedemptionDto dto) {
return redemptionService.agreeCreditInfo(dto);
}
@Override
public ResultBean rejectCreditInfo(AppRedemptionTaskQuery query) {
return redemptionService.rejectCreditInfo(query);
}
@Override
public ResultBean recallCreditInfo(AppRedemptionTaskQuery query) {
return redemptionService.recallCreditInfo(query);
}
@Override
public ResultBean stopCreditInfo(AppRedemptionTaskQuery query) {
return redemptionService.stopCreditInfo(query);
}
@Override
public ResultBean<String> getFlowOperateTitle(RedemptionFlowableQuery query) {
return redemptionService.getFlowOperateTitle(query);
}
@Override
public ResultBean delegate(AppRedemptionDelegateQuery delegateQuery) {
return redemptionService.delegate(delegateQuery);
}
}

157
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/redemption/RedemptionService.java

@ -0,0 +1,157 @@
package com.yxt.anrui.terminal.biz.risk.redemption;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApplyFeign;
import com.yxt.anrui.riskcenter.api.loanbuckleapply.app.AppBuckleDetailsVo;
import com.yxt.anrui.riskcenter.api.loanbuckleapply.flow.*;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.LoanRedemptionApplyFeign;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.app.AppRedemptionDetailsVo;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.flow.*;
import com.yxt.anrui.terminal.api.risk.buckle.BuckleDetailsVo;
import com.yxt.anrui.terminal.api.risk.buckle.flow.AppBuckleDelegateQuery;
import com.yxt.anrui.terminal.api.risk.buckle.flow.AppBuckleTaskQuery;
import com.yxt.anrui.terminal.api.risk.buckle.flow.BuckleFlowableQuery;
import com.yxt.anrui.terminal.api.risk.buckle.flow.CompleteBuckleDto;
import com.yxt.anrui.terminal.api.risk.redemption.RedemptionDetailsVo;
import com.yxt.anrui.terminal.api.risk.redemption.flow.AppRedemptionDelegateQuery;
import com.yxt.anrui.terminal.api.risk.redemption.flow.AppRedemptionTaskQuery;
import com.yxt.anrui.terminal.api.risk.redemption.flow.CompleteRedemptionDto;
import com.yxt.anrui.terminal.api.risk.redemption.flow.RedemptionFlowableQuery;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
/**
* @description:
* @author: fzz
* @date:
**/
@Service
public class RedemptionService {
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private LoanRedemptionApplyFeign loanRedemptionApplyFeign;
public ResultBean<RedemptionDetailsVo> detail(String sid) {
ResultBean<RedemptionDetailsVo> rb = ResultBean.fireFail();
RedemptionDetailsVo vo = new RedemptionDetailsVo();
AppRedemptionDetailsVo data = loanRedemptionApplyFeign.appDetail(sid).getData();
if (null != data) {
BeanUtil.copyProperties(data, vo);
}
return rb.success().setData(vo);
}
public ResultBean agreeCreditInfo(CompleteRedemptionDto dto) {
ResultBean rb = ResultBean.fireFail();
//根据用户sid获取staffSid
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid());
if (!userVoResultBean.getSuccess()) {
return rb.setMsg(userVoResultBean.getMsg());
}
//根据staffSid获取用户的组织全路径
ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(userVoResultBean.getData().getStaffSid());
if (!staffOrgResultBean.getSuccess()) {
return rb.setMsg(staffOrgResultBean.getMsg());
}
//用户的组织全路径
String orgSidPath = staffOrgResultBean.getData().getOrgSidPath();
RedemptionCompleteDto completeDto = new
RedemptionCompleteDto();
BeanUtil.copyProperties(dto, completeDto);
completeDto.setOrgSidPath(orgSidPath);
ResultBean resultBean = loanRedemptionApplyFeign.complete(completeDto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean rejectCreditInfo(AppRedemptionTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
RedemptionTaskQuery taskQuery = new
RedemptionTaskQuery();
BeanUtil.copyProperties(query, taskQuery);
ResultBean resultBean = loanRedemptionApplyFeign.taskReject(taskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean recallCreditInfo(AppRedemptionTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
RedemptionTaskQuery taskQuery = new
RedemptionTaskQuery();
BeanUtil.copyProperties(query, taskQuery);
ResultBean resultBean = loanRedemptionApplyFeign.revokeProcess(taskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean stopCreditInfo(AppRedemptionTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
RedemptionTaskQuery taskQuery = new
RedemptionTaskQuery();
BeanUtil.copyProperties(query, taskQuery);
ResultBean resultBean = loanRedemptionApplyFeign.breakProcess(taskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean<String> getFlowOperateTitle(RedemptionFlowableQuery query) {
ResultBean<String> rb = ResultBean.fireFail();
//0 上一环节 1下一环节
int next = query.getNext();
RedemptionGetNodeQuery getNodeQuery = new
RedemptionGetNodeQuery();
BeanUtil.copyProperties(query, getNodeQuery);
String data = "";
if (next == 0) {
ResultBean<List<RedemptionGetNodeVo>> getPreviousNodesForReject = loanRedemptionApplyFeign.getPreviousNodesForReject(getNodeQuery);
if (getPreviousNodesForReject.getSuccess()) {
getPreviousNodesForReject.getData().removeAll(Collections.singleton(null));
data = getPreviousNodesForReject.getData().get(0).getName();
} else {
return rb.setMsg(getPreviousNodesForReject.getMsg());
}
} else if (next == 1) {
ResultBean<List<RedemptionGetNodeVo>> getNextNodesForSubmit = loanRedemptionApplyFeign.getNextNodesForSubmit(getNodeQuery);
if (getNextNodesForSubmit.getSuccess()) {
getNextNodesForSubmit.getData().removeAll(Collections.singleton(null));
data = getNextNodesForSubmit.getData().get(0).getName();
} else {
return rb.setMsg(getNextNodesForSubmit.getMsg());
}
} else {
return rb.setMsg("参数错误:next");
}
return rb.success().setData(data);
}
public ResultBean delegate(AppRedemptionDelegateQuery delegateQuery) {
ResultBean rb = ResultBean.fireFail();
RedemptionDelegateQuery delegateQuery1 = new
RedemptionDelegateQuery();
BeanUtil.copyProperties(delegateQuery, delegateQuery1);
ResultBean delegate = loanRedemptionApplyFeign.delegate(delegateQuery1);
return rb.success();
}
}
Loading…
Cancel
Save