diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java index 6341540dbc..7e2351750c 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java @@ -43,6 +43,8 @@ public enum LoanFileEnum { MORTGAGE_NOTICES("029", "解抵管理-解抵通知单"), MORTGAGE_POROXY("030", "解抵管理-委托书"), MORTGAGE_HANDOVER_INFO("031", "解抵管理-交接材料"), + REPURCHASE_BANKFILE("032", "回购申请-资方结清费用"), + REPURCHASE_BACKBUYFILE("033", "回购申请-回购情况"), ; diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApply.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApply.java index 0c28abfc69..37de2c4b71 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApply.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApply.java @@ -34,6 +34,8 @@ public class LoanRepurchaseApply extends BaseEntity { private String customerSid; @ApiModelProperty("贷款人") private String loanName; + @ApiModelProperty("贷款人sid") + private String loanSid; @ApiModelProperty("贷款合同编号") private String loanContractNo; @ApiModelProperty("资方") @@ -51,11 +53,11 @@ public class LoanRepurchaseApply extends BaseEntity { @ApiModelProperty("回购金额") private BigDecimal amount; @ApiModelProperty("公司当前逾期金额月还") - private BigDecimal nowLateMoney; + private BigDecimal overdueMonthPrice; @ApiModelProperty("公司当前未到期月还") - private BigDecimal nowNoLateMoney; + private BigDecimal currentNotDuePrice; @ApiModelProperty("公司未到期金额") - private BigDecimal noLateMoney; + private BigDecimal notDuePrice; @ApiModelProperty("流程状态") private String nodeState; @ApiModelProperty("办结日期") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyDetailsVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyDetailsVo.java index fdcaceccb3..062c085cc3 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyDetailsVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyDetailsVo.java @@ -1,11 +1,15 @@ package com.yxt.anrui.riskcenter.api.loanrepurchaseapply; +import com.yxt.anrui.riskcenter.api.loanredemptionapply.LoanRedemptionApplyFile; import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanSolutionsDetailsssVo; 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.Date; +import java.util.List; /** * @author Administrator @@ -18,7 +22,69 @@ public class LoanRepurchaseApplyDetailsVo implements Vo { private String userSid; @ApiModelProperty("使用组织全路径") private String orgPath; - private LoanRepurchaseSolutionsDetailsssVo solutionsDetailsssVo; + @ApiModelProperty("销售订单车辆sid") + private String busVinSid; + @ApiModelProperty("任务id") + private String taskId; + @ApiModelProperty("实例id") + private String instanceId; + private LoanRepurchaseSolutionsDetailsssVo solutionsDetailsssVo = new LoanRepurchaseSolutionsDetailsssVo(); + //主体 + @ApiModelProperty("申请日期") + private String applyDate; + @ApiModelProperty("申请部门") + private String createDept; + @ApiModelProperty("申请部门sid") + private String createDeptSid; + @ApiModelProperty("申请人") + private String createByName; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("客户名称") + private String customerName; + @ApiModelProperty("客户sid") + private String customerSid; + @ApiModelProperty("贷款人") + private String loanName; + @ApiModelProperty("贷款人sid") + private String loanSid; + @ApiModelProperty("贷款合同编号") + private String loanContractNo; + @ApiModelProperty("资方") + private String bankName; + @ApiModelProperty("资方合同编号") + private String bankContractNo; + @ApiModelProperty("预计结清日期") + private String prepareDate; + @ApiModelProperty("公司当前逾期金额月还") + private String overdueMonthPrice; + @ApiModelProperty("公司当前未到期月还") + private String currentNotDuePrice; + @ApiModelProperty("公司未到期金额") + private String notDuePrice; + //资方结清费用 + @ApiModelProperty("资方逾期月还") + private String price; + @ApiModelProperty("资方当期未到期月还") + private String currentNotDuePriceBank; + @ApiModelProperty("资方未到期金额") + private String notDuePriceBank; + @ApiModelProperty("资方逾期利息") + private String bankInterest; + @ApiModelProperty("资方名义价") + private String bankNominalPrice; + @ApiModelProperty("资方合同违约金") + private String bankContractLiquidated; + @ApiModelProperty("资方其他应收") + private String bankOtherReceivable; + @ApiModelProperty("其他应收说明") + private String otherReceivableRemarks; + @ApiModelProperty("资方结清金额") + private String bankSettlePrice; + private List bankfiles = new ArrayList<>(); //资方结清费用附件 + //公司结清费用 @ApiModelProperty("贷款保证金") private String loanDeposit; @ApiModelProperty("公司逾期月还") @@ -47,6 +113,17 @@ public class LoanRepurchaseApplyDetailsVo implements Vo { private String settleAll; @ApiModelProperty("结清利润") private String profit; + //回购情况 + @ApiModelProperty("回购金额") + private String amount; + @ApiModelProperty("回购原因") + private String buybacksReason; + @ApiModelProperty("资方收款账户") + private String bankReceivingAccount; + @ApiModelProperty("资方收款账号") + private String bankAccountNo; + private List buyfiles = new ArrayList<>(); // 回购情况附件 + } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeign.java index bcb64d5eb0..bfab4237ec 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeign.java @@ -2,14 +2,21 @@ package com.yxt.anrui.riskcenter.api.loanrepurchaseapply; import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterQuery; import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterVo; +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.app.AppRepurchaseDetailsVo; +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.flow.*; 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 io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.*; +import javax.validation.Valid; +import java.util.List; + /** * @description: 回购申请 @@ -39,7 +46,7 @@ public interface LoanRepurchaseApplyFeign { public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid); -// + // // // @ApiOperation("新增或修改") // @PostMapping("/saveOrUpdate") @@ -61,4 +68,48 @@ public interface LoanRepurchaseApplyFeign { // @PostMapping("/fetchOneByParNo") // @ResponseBody // ResultBean fetchOneByParNo(@RequestParam("parNo") String parNo); + //---------------------流程接口------------------------------- + @ApiOperation("提交") + @PostMapping("/submit") + public ResultBean submitRecordApplication(@RequestBody @Valid SubmitRepurchaseDto dto); + + @ApiOperation(value = "办理(同意)") + @PostMapping("/complete") + public ResultBean complete(@Valid @RequestBody RepurchaseCompleteDto dto); + + @ApiOperation(value = "撤回流程") + @PostMapping(value = "/revokeProcess") + public ResultBean revokeProcess(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody RepurchaseTaskQuery query); + + @ApiOperation(value = "驳回任务") + @PostMapping(value = "/reject") + public ResultBean taskReject(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody RepurchaseTaskQuery query); + + @ApiOperation(value = "终止任务") + @PostMapping(value = "/breakProcess") + public ResultBean breakProcess(@RequestBody RepurchaseTaskQuery 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> getNextNodesForSubmit(@Valid @SpringQueryMap RepurchaseGetNodeQuery query); + + @ApiOperation(value = "获取上一个环节") + @GetMapping(value = "/getPreviousNodesForReject") + ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap RepurchaseGetNodeQuery query); + + @ApiOperation(value = "加签") + @PostMapping(value = "/delegate") + public ResultBean delegate(@RequestBody RepurchaseDelegateQuery query); + + //-----------------------------app---------------------------- + @ApiOperation("app详情") + @GetMapping("/appDetail/{sid}") + @ResponseBody + public ResultBean appDetail(@PathVariable("sid") String sid); + + } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeignFallback.java index 265cce70bf..c1bdfd8d22 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeignFallback.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeignFallback.java @@ -1,10 +1,14 @@ package com.yxt.anrui.riskcenter.api.loanrepurchaseapply; +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.app.AppRepurchaseDetailsVo; +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.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; + /** * @author Administrator * @description @@ -22,4 +26,54 @@ public class LoanRepurchaseApplyFeignFallback implements LoanRepurchaseApplyFeig public ResultBean fetchDetailsBySid(String sid) { return null; } + + @Override + public ResultBean submitRecordApplication(SubmitRepurchaseDto dto) { + return null; + } + + @Override + public ResultBean complete(RepurchaseCompleteDto dto) { + return null; + } + + @Override + public ResultBean revokeProcess(RepurchaseTaskQuery query) { + return null; + } + + @Override + public ResultBean taskReject(RepurchaseTaskQuery query) { + return null; + } + + @Override + public ResultBean breakProcess(RepurchaseTaskQuery query) { + return null; + } + + @Override + public ResultBean flowRecord(String procInsId) { + return null; + } + + @Override + public ResultBean> getNextNodesForSubmit(RepurchaseGetNodeQuery query) { + return null; + } + + @Override + public ResultBean> getPreviousNodesForReject(RepurchaseGetNodeQuery query) { + return null; + } + + @Override + public ResultBean delegate(RepurchaseDelegateQuery query) { + return null; + } + + @Override + public ResultBean appDetail(String sid) { + return null; + } } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFile.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFile.java new file mode 100644 index 0000000000..7ea20abb6d --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFile.java @@ -0,0 +1,18 @@ +package com.yxt.anrui.riskcenter.api.loanrepurchaseapply; + +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/11/17 9:18 + */ +@Data +public class LoanRepurchaseApplyFile { + private String filePath; + private String name; + private String size; + private String status; + private String uid; + private String url; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/app/AppRepurchaseDetailsVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/app/AppRepurchaseDetailsVo.java new file mode 100644 index 0000000000..181d73a1d1 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/app/AppRepurchaseDetailsVo.java @@ -0,0 +1,110 @@ +package com.yxt.anrui.riskcenter.api.loanrepurchaseapply.app; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author Fan + * @description + * @date 2024/2/7 11:15 + */ +@Data +public class AppRepurchaseDetailsVo { + + private String sid; + private String publishInfo; // 发起部门-发起人 + private String time; //申请日期 + private List files = new ArrayList<>(); + private String taskId; + private String procInsId; + @ApiModelProperty("催收记录") + private String csjlSid; + @ApiModelProperty("客户名称") + private String custName; + @ApiModelProperty("资方合同号") + private String bankContractNo; + @ApiModelProperty("贷款人") + private String borrName; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("贷款合同号") + private String loanContractNo; + @ApiModelProperty("资方") + private String bankName; + //主体 + @ApiModelProperty("预计结清日期") + private String prepareDate; + @ApiModelProperty("公司当前逾期金额月还") + private String overdueMonthPrice; + @ApiModelProperty("公司当前未到期月还") + private String currentNotDuePrice; + @ApiModelProperty("公司未到期金额") + private String notDuePrice; + //资方结清费用 + @ApiModelProperty("资方逾期月还") + private String price; + @ApiModelProperty("资方当期未到期月还") + private String currentNotDuePriceBank; + @ApiModelProperty("资方未到期金额") + private String notDuePriceBank; + @ApiModelProperty("资方逾期利息") + private String bankInterest; + @ApiModelProperty("资方名义价") + private String bankNominalPrice; + @ApiModelProperty("资方合同违约金") + private String bankContractLiquidated; + @ApiModelProperty("资方其他应收") + private String bankOtherReceivable; + @ApiModelProperty("其他应收说明") + private String otherReceivableRemarks; + @ApiModelProperty("资方结清金额") + private String bankSettlePrice; + private List bankfiles = new ArrayList<>(); //资方结清费用附件 + //公司结清费用 + @ApiModelProperty("贷款保证金") + private String loanDeposit; + @ApiModelProperty("公司逾期月还") + private String overduePrice; + @ApiModelProperty("垫资方逾期利息") + private String putBankInterest; + @ApiModelProperty("资金占用费") + private String funfCost; + @ApiModelProperty("资方逾期利息") + private String bankOverInterest; + @ApiModelProperty("公司当期未到期月还") + private String companyCurrentNotPrice; + @ApiModelProperty("资方未到期金额") + private String bankNotPrice; + @ApiModelProperty("贷款保证金扣罚金额") + private String deductionAmount; + @ApiModelProperty("名义价") + private String companyNominalPrice; + @ApiModelProperty("合同违约金") + private String contractLiquidated; + @ApiModelProperty("公司其他费用") + private String companyOtherPrice; + @ApiModelProperty("其他费用说明") + private String otherCostRemarks; + @ApiModelProperty("公司正常结清合计") + private String settleAll; + @ApiModelProperty("结清利润") + private String profit; + //回购情况 + @ApiModelProperty("回购金额") + private String amount; + @ApiModelProperty("回购原因") + private String buybacksReason; + @ApiModelProperty("资方收款账户") + private String bankReceivingAccount; + @ApiModelProperty("资方收款账号") + private String bankAccountNo; + private List buyfiles = new ArrayList<>(); // 回购情况附件 + @ApiModelProperty("销售订单sid") + private String salesOrderSid; + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/flow/RepurchaseCompleteDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/flow/RepurchaseCompleteDto.java new file mode 100644 index 0000000000..0bca99ffc1 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/flow/RepurchaseCompleteDto.java @@ -0,0 +1,41 @@ +package com.yxt.anrui.riskcenter.api.loanrepurchaseapply.flow; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.util.Map; + +/** + * @Author dimengzhe + * @Date 2022/6/28 9:01 + * @Description + */ +@Data +public class RepurchaseCompleteDto implements Dto { + private static final long serialVersionUID = 3240453987322803352L; + @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 = "意见") + @NotBlank(message = "参数错误:comment") + private String comment; + @ApiModelProperty(value = "业务sid") + @NotBlank(message = "参数错误:businessSid") + private String businessSid; + @ApiModelProperty(value = "分支字段及业务字段") + private Map formVariables; + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/flow/RepurchaseDelegateQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/flow/RepurchaseDelegateQuery.java new file mode 100644 index 0000000000..ea785c0c37 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/flow/RepurchaseDelegateQuery.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.riskcenter.api.loanrepurchaseapply.flow; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/9/28 9:28 + */ +@Data +public class RepurchaseDelegateQuery { + @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; + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/flow/RepurchaseGetNodeQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/flow/RepurchaseGetNodeQuery.java new file mode 100644 index 0000000000..e1f33f1559 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/flow/RepurchaseGetNodeQuery.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.riskcenter.api.loanrepurchaseapply.flow; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Map; + +/** + * @Author dimengzhe + * @Date 2022/6/28 10:42 + * @Description + */ +@Data +public class RepurchaseGetNodeQuery implements Query { + private static final long serialVersionUID = -5674867230708197611L; + + @ApiModelProperty(value = "环节定义id") + private String taskDefKey; + @ApiModelProperty(value = "业务sid") + private String businessSid; + + @ApiModelProperty(value = "分支字段及业务字段") + private Map formVariables; + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/flow/RepurchaseGetNodeVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/flow/RepurchaseGetNodeVo.java new file mode 100644 index 0000000000..c3808299de --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/flow/RepurchaseGetNodeVo.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.riskcenter.api.loanrepurchaseapply.flow; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author dimengzhe + * @Date 2022/6/28 11:09 + * @Description + */ +@Data +public class RepurchaseGetNodeVo implements Vo { + private static final long serialVersionUID = 8802774014747063504L; + @ApiModelProperty(value = "节点名称") + private String name; + @ApiModelProperty(value = "节点id") + private String id; + @ApiModelProperty(value = "审批组") + private List candidateGroups; + @ApiModelProperty(value = "是否是最后环节") + private String endTask; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/flow/RepurchaseTaskQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/flow/RepurchaseTaskQuery.java new file mode 100644 index 0000000000..c40325b374 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/flow/RepurchaseTaskQuery.java @@ -0,0 +1,56 @@ +package com.yxt.anrui.riskcenter.api.loanrepurchaseapply.flow; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author dimengzhe + * @Date 2022/6/28 17:29 + * @Description 终止、撤回、驳回查询参数 + */ +@Data +public class RepurchaseTaskQuery implements Query { + private static final long serialVersionUID = -4006020771892400451L; + /** + * 终止、驳回、撤回 + */ + @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; + /*@ApiModelProperty("用户Id") + private String userId; + @ApiModelProperty("节点") + private String targetKey; + @ApiModelProperty("流程变量信息") + private Map values = new HashMap<>(); + @ApiModelProperty("审批人") + private String assignee; + @ApiModelProperty("候选人") + private List candidateUsers = new ArrayList<>(); + @ApiModelProperty("审批组") + private List candidateGroups = new ArrayList<>();*/ +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/flow/SubmitRepurchaseDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/flow/SubmitRepurchaseDto.java new file mode 100644 index 0000000000..f3564f4a45 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/flow/SubmitRepurchaseDto.java @@ -0,0 +1,21 @@ +package com.yxt.anrui.riskcenter.api.loanrepurchaseapply.flow; + +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyDto; +import com.yxt.anrui.riskcenter.api.loansubletapply.LoanSubletApplyDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/6/27 13:38 + * @Description + */ +@Data +public class SubmitRepurchaseDto extends LoanRepurchaseApplyDto { + private static final long serialVersionUID = 378585162071125756L; + @ApiModelProperty("流程实例id") + private String instanceId; + @ApiModelProperty("任务id") + private String taskId; + +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyRest.java index 7796fe169c..f31dfa84a2 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyRest.java @@ -6,6 +6,8 @@ import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyDetai import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyFeign; import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyQuery; import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyVo; +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.app.AppRepurchaseDetailsVo; +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.flow.*; import com.yxt.anrui.riskcenter.api.loansubletapply.LoanSubletApplyVo; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; @@ -15,6 +17,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + /** * @description: * @author: fan @@ -40,4 +44,54 @@ public class LoanRepurchaseApplyRest implements LoanRepurchaseApplyFeign { public ResultBean fetchDetailsBySid(String sid) { return loanRepurchaseApplyService.fetchDetailsBySid(sid); } + + @Override + public ResultBean submitRecordApplication(SubmitRepurchaseDto dto) { + return null; + } + + @Override + public ResultBean complete(RepurchaseCompleteDto dto) { + return null; + } + + @Override + public ResultBean revokeProcess(RepurchaseTaskQuery query) { + return null; + } + + @Override + public ResultBean taskReject(RepurchaseTaskQuery query) { + return null; + } + + @Override + public ResultBean breakProcess(RepurchaseTaskQuery query) { + return null; + } + + @Override + public ResultBean flowRecord(String procInsId) { + return null; + } + + @Override + public ResultBean> getNextNodesForSubmit(RepurchaseGetNodeQuery query) { + return null; + } + + @Override + public ResultBean> getPreviousNodesForReject(RepurchaseGetNodeQuery query) { + return null; + } + + @Override + public ResultBean delegate(RepurchaseDelegateQuery query) { + return null; + } + + @Override + public ResultBean appDetail(String sid) { + return loanRepurchaseApplyService.appDetail(sid); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyService.java index d3a33b5d8c..405304a45c 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyService.java @@ -13,6 +13,7 @@ import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApply; import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyDetailsVo; import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyQuery; import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyVo; +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.app.AppRepurchaseDetailsVo; import com.yxt.anrui.riskcenter.api.loansubletapply.LoanSubletApply; import com.yxt.anrui.riskcenter.api.loansubletapply.LoanSubletApplyQuery; import com.yxt.anrui.riskcenter.api.loansubletapply.LoanSubletApplyVo; @@ -149,6 +150,16 @@ public class LoanRepurchaseApplyService extends MybatisBaseService fetchDetailsBySid(String sid) { - return null; + ResultBean rb = ResultBean.fireFail(); + LoanRepurchaseApplyDetailsVo vo = new LoanRepurchaseApplyDetailsVo(); + + + return rb.success().setData(vo); + } + + public ResultBean appDetail(String sid) { + ResultBean rb = ResultBean.fireFail(); + AppRepurchaseDetailsVo vo = new AppRepurchaseDetailsVo(); + return rb.success().setData(vo); } } diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repurchase/RepurchaseDetailsVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repurchase/RepurchaseDetailsVo.java new file mode 100644 index 0000000000..a5eedf47a1 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repurchase/RepurchaseDetailsVo.java @@ -0,0 +1,112 @@ +package com.yxt.anrui.terminal.api.risk.repurchase; + +import com.yxt.anrui.terminal.api.base.common.CarModelVo; +import com.yxt.anrui.terminal.api.risk.redemption.AppVinList; +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author Administrator + * @description + * @date 2023/11/13 15:38 + */ +@Data +public class RepurchaseDetailsVo implements Vo { + private String sid; + private String publishInfo; // 发起部门-发起人 + private String time; //申请日期 + private List files = new ArrayList<>(); + private String taskId; + private String procInsId; + @ApiModelProperty("催收记录") + private String csjlSid; + @ApiModelProperty("客户名称") + private String custName; + @ApiModelProperty("资方合同号") + private String bankContractNo; + @ApiModelProperty("贷款人") + private String borrName; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("贷款合同号") + private String loanContractNo; + @ApiModelProperty("资方") + private String bankName; + //主体 + @ApiModelProperty("预计结清日期") + private String prepareDate; + @ApiModelProperty("公司当前逾期金额月还") + private String overdueMonthPrice; + @ApiModelProperty("公司当前未到期月还") + private String currentNotDuePrice; + @ApiModelProperty("公司未到期金额") + private String notDuePrice; + //资方结清费用 + @ApiModelProperty("资方逾期月还") + private String price; + @ApiModelProperty("资方当期未到期月还") + private String currentNotDuePriceBank; + @ApiModelProperty("资方未到期金额") + private String notDuePriceBank; + @ApiModelProperty("资方逾期利息") + private String bankInterest; + @ApiModelProperty("资方名义价") + private String bankNominalPrice; + @ApiModelProperty("资方合同违约金") + private String bankContractLiquidated; + @ApiModelProperty("资方其他应收") + private String bankOtherReceivable; + @ApiModelProperty("其他应收说明") + private String otherReceivableRemarks; + @ApiModelProperty("资方结清金额") + private String bankSettlePrice; + private List bankfiles = new ArrayList<>(); //资方结清费用附件 + //公司结清费用 + @ApiModelProperty("贷款保证金") + private String loanDeposit; + @ApiModelProperty("公司逾期月还") + private String overduePrice; + @ApiModelProperty("垫资方逾期利息") + private String putBankInterest; + @ApiModelProperty("资金占用费") + private String funfCost; + @ApiModelProperty("资方逾期利息") + private String bankOverInterest; + @ApiModelProperty("公司当期未到期月还") + private String companyCurrentNotPrice; + @ApiModelProperty("资方未到期金额") + private String bankNotPrice; + @ApiModelProperty("贷款保证金扣罚金额") + private String deductionAmount; + @ApiModelProperty("名义价") + private String companyNominalPrice; + @ApiModelProperty("合同违约金") + private String contractLiquidated; + @ApiModelProperty("公司其他费用") + private String companyOtherPrice; + @ApiModelProperty("其他费用说明") + private String otherCostRemarks; + @ApiModelProperty("公司正常结清合计") + private String settleAll; + @ApiModelProperty("结清利润") + private String profit; + //回购情况 + @ApiModelProperty("回购金额") + private String amount; + @ApiModelProperty("回购原因") + private String buybacksReason; + @ApiModelProperty("资方收款账户") + private String bankReceivingAccount; + @ApiModelProperty("资方收款账号") + private String bankAccountNo; + private List buyfiles = new ArrayList<>(); // 回购情况附件 + @ApiModelProperty("销售订单sid") + private String salesOrderSid; + private CarModelVo jrfa;//金融方案 +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repurchase/RepurchaseFeign.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repurchase/RepurchaseFeign.java new file mode 100644 index 0000000000..84ca33daa1 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repurchase/RepurchaseFeign.java @@ -0,0 +1,71 @@ +package com.yxt.anrui.terminal.api.risk.repurchase; + + +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.anrui.terminal.api.risk.repurchase.flow.AppRepurchaseDelegateQuery; +import com.yxt.anrui.terminal.api.risk.repurchase.flow.AppRepurchaseTaskQuery; +import com.yxt.anrui.terminal.api.risk.repurchase.flow.CompleteRepurchaseDto; +import com.yxt.anrui.terminal.api.risk.repurchase.flow.RepurchaseFlowableQuery; +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-Repurchase", + name = "anrui-terminal", + path = "/riskcenter/v1/Repurchase", + fallback = RepurchaseFeignFallback.class) +public interface RepurchaseFeign { + + + @ApiOperation("详情") + @GetMapping("/appDetail/{sid}") + @ResponseBody + ResultBean detail(@PathVariable("sid") String sid); + + //-------------------------流程----------------------------------------- + + @ApiOperation("办理") + @PutMapping("/agreeCreditInfo") + @ResponseBody + ResultBean agreeCreditInfo(@Valid @RequestBody CompleteRepurchaseDto dto); + + @ApiOperation("驳回") + @PutMapping("/rejectCreditInfo") + @ResponseBody + ResultBean rejectCreditInfo(@Valid @RequestBody AppRepurchaseTaskQuery query); + + @ApiOperation("撤回") + @PutMapping("/recallCreditInfo") + @ResponseBody + ResultBean recallCreditInfo(@Valid @RequestBody AppRepurchaseTaskQuery query); + + @ApiOperation("终止") + @PutMapping("/stopCreditInfo") + @ResponseBody + ResultBean stopCreditInfo(@Valid @RequestBody AppRepurchaseTaskQuery query); + + @ApiOperation("获取流程操作标题") + @GetMapping("/getFlowOperateTitle") + @ResponseBody + ResultBean getFlowOperateTitle(@Valid @SpringQueryMap RepurchaseFlowableQuery query); + + @ApiOperation(value = "加签") + @PutMapping(value = "/delegate") + @ResponseBody + public ResultBean delegate(@RequestBody AppRepurchaseDelegateQuery delegateQuery); +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repurchase/RepurchaseFeignFallback.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repurchase/RepurchaseFeignFallback.java new file mode 100644 index 0000000000..1a6037993f --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repurchase/RepurchaseFeignFallback.java @@ -0,0 +1,57 @@ +package com.yxt.anrui.terminal.api.risk.repurchase; + +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.anrui.terminal.api.risk.repurchase.flow.AppRepurchaseDelegateQuery; +import com.yxt.anrui.terminal.api.risk.repurchase.flow.AppRepurchaseTaskQuery; +import com.yxt.anrui.terminal.api.risk.repurchase.flow.CompleteRepurchaseDto; +import com.yxt.anrui.terminal.api.risk.repurchase.flow.RepurchaseFlowableQuery; +import com.yxt.common.core.result.ResultBean; +import org.springframework.stereotype.Component; + +/** + * @description: + * @author: fzz + * @date: + **/ +@Component +public class RepurchaseFeignFallback implements RepurchaseFeign { + + + @Override + public ResultBean detail(String sid) { + return null; + } + + @Override + public ResultBean agreeCreditInfo(CompleteRepurchaseDto dto) { + return null; + } + + @Override + public ResultBean rejectCreditInfo(AppRepurchaseTaskQuery query) { + return null; + } + + @Override + public ResultBean recallCreditInfo(AppRepurchaseTaskQuery query) { + return null; + } + + @Override + public ResultBean stopCreditInfo(AppRepurchaseTaskQuery query) { + return null; + } + + @Override + public ResultBean getFlowOperateTitle(RepurchaseFlowableQuery query) { + return null; + } + + @Override + public ResultBean delegate(AppRepurchaseDelegateQuery delegateQuery) { + return null; + } +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repurchase/flow/AppRepurchaseDelegateQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repurchase/flow/AppRepurchaseDelegateQuery.java new file mode 100644 index 0000000000..b49702b6f4 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repurchase/flow/AppRepurchaseDelegateQuery.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.terminal.api.risk.repurchase.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 AppRepurchaseDelegateQuery { + @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; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repurchase/flow/AppRepurchaseTaskQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repurchase/flow/AppRepurchaseTaskQuery.java new file mode 100644 index 0000000000..85701856ab --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repurchase/flow/AppRepurchaseTaskQuery.java @@ -0,0 +1,46 @@ +package com.yxt.anrui.terminal.api.risk.repurchase.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 AppRepurchaseTaskQuery 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; + +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repurchase/flow/CompleteRepurchaseDto.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repurchase/flow/CompleteRepurchaseDto.java new file mode 100644 index 0000000000..9ced80ac7f --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repurchase/flow/CompleteRepurchaseDto.java @@ -0,0 +1,35 @@ +package com.yxt.anrui.terminal.api.risk.repurchase.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 CompleteRepurchaseDto 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; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repurchase/flow/RepurchaseFlowableQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repurchase/flow/RepurchaseFlowableQuery.java new file mode 100644 index 0000000000..07cf5227e4 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repurchase/flow/RepurchaseFlowableQuery.java @@ -0,0 +1,21 @@ +package com.yxt.anrui.terminal.api.risk.repurchase.flow; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class RepurchaseFlowableQuery 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; + +} diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/repurchase/RepurchaseRest.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/repurchase/RepurchaseRest.java new file mode 100644 index 0000000000..0ae5217e3e --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/repurchase/RepurchaseRest.java @@ -0,0 +1,68 @@ +package com.yxt.anrui.terminal.biz.risk.repurchase; + + +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.anrui.terminal.api.risk.repurchase.RepurchaseDetailsVo; +import com.yxt.anrui.terminal.api.risk.repurchase.RepurchaseFeign; +import com.yxt.anrui.terminal.api.risk.repurchase.flow.AppRepurchaseDelegateQuery; +import com.yxt.anrui.terminal.api.risk.repurchase.flow.AppRepurchaseTaskQuery; +import com.yxt.anrui.terminal.api.risk.repurchase.flow.CompleteRepurchaseDto; +import com.yxt.anrui.terminal.api.risk.repurchase.flow.RepurchaseFlowableQuery; +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/Repurchase") +public class RepurchaseRest implements RepurchaseFeign { + + @Autowired + private RepurchaseService repurchaseService; + + + @Override + public ResultBean detail(String sid) { + return repurchaseService.detail(sid); + } + + @Override + public ResultBean agreeCreditInfo(CompleteRepurchaseDto dto) { + return repurchaseService.agreeCreditInfo(dto); + } + + @Override + public ResultBean rejectCreditInfo(AppRepurchaseTaskQuery query) { + return repurchaseService.rejectCreditInfo(query); + } + + @Override + public ResultBean recallCreditInfo(AppRepurchaseTaskQuery query) { + return repurchaseService.recallCreditInfo(query); + } + + @Override + public ResultBean stopCreditInfo(AppRepurchaseTaskQuery query) { + return repurchaseService.stopCreditInfo(query); + } + + @Override + public ResultBean getFlowOperateTitle(RepurchaseFlowableQuery query) { + return repurchaseService.getFlowOperateTitle(query); + } + + @Override + public ResultBean delegate(AppRepurchaseDelegateQuery delegateQuery) { + return repurchaseService.delegate(delegateQuery); + } +} diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/repurchase/RepurchaseService.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/repurchase/RepurchaseService.java new file mode 100644 index 0000000000..c43e1b50da --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/repurchase/RepurchaseService.java @@ -0,0 +1,157 @@ +package com.yxt.anrui.terminal.biz.risk.repurchase; + + +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.loanredemptionapply.LoanRedemptionApplyFeign; +import com.yxt.anrui.riskcenter.api.loanredemptionapply.app.AppRedemptionDetailsVo; +import com.yxt.anrui.riskcenter.api.loanredemptionapply.flow.*; +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyFeign; +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.app.AppRepurchaseDetailsVo; +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.flow.*; +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.anrui.terminal.api.risk.repurchase.RepurchaseDetailsVo; +import com.yxt.anrui.terminal.api.risk.repurchase.flow.AppRepurchaseDelegateQuery; +import com.yxt.anrui.terminal.api.risk.repurchase.flow.AppRepurchaseTaskQuery; +import com.yxt.anrui.terminal.api.risk.repurchase.flow.CompleteRepurchaseDto; +import com.yxt.anrui.terminal.api.risk.repurchase.flow.RepurchaseFlowableQuery; +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 RepurchaseService { + + @Autowired + private SysUserFeign sysUserFeign; + @Autowired + private SysStaffOrgFeign sysStaffOrgFeign; + @Autowired + private LoanRepurchaseApplyFeign loanRepurchaseApplyFeign; + + public ResultBean detail(String sid) { + ResultBean rb = ResultBean.fireFail(); + RepurchaseDetailsVo vo = new RepurchaseDetailsVo(); + AppRepurchaseDetailsVo data = loanRepurchaseApplyFeign.appDetail(sid).getData(); + if (null != data) { + BeanUtil.copyProperties(data, vo); + } + return rb.success().setData(vo); + } + + + public ResultBean agreeCreditInfo(CompleteRepurchaseDto dto) { + ResultBean rb = ResultBean.fireFail(); + //根据用户sid获取staffSid + ResultBean userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid()); + if (!userVoResultBean.getSuccess()) { + return rb.setMsg(userVoResultBean.getMsg()); + } + //根据staffSid获取用户的组织全路径 + ResultBean staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(userVoResultBean.getData().getStaffSid()); + if (!staffOrgResultBean.getSuccess()) { + return rb.setMsg(staffOrgResultBean.getMsg()); + } + //用户的组织全路径 + String orgSidPath = staffOrgResultBean.getData().getOrgSidPath(); + RepurchaseCompleteDto completeDto = new + RepurchaseCompleteDto(); + BeanUtil.copyProperties(dto, completeDto); + completeDto.setOrgSidPath(orgSidPath); + ResultBean resultBean = loanRepurchaseApplyFeign.complete(completeDto); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean rejectCreditInfo(AppRepurchaseTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + RepurchaseTaskQuery taskQuery = new + RepurchaseTaskQuery(); + BeanUtil.copyProperties(query, taskQuery); + ResultBean resultBean = loanRepurchaseApplyFeign.taskReject(taskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean recallCreditInfo(AppRepurchaseTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + RepurchaseTaskQuery taskQuery = new + RepurchaseTaskQuery(); + BeanUtil.copyProperties(query, taskQuery); + ResultBean resultBean = loanRepurchaseApplyFeign.revokeProcess(taskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean stopCreditInfo(AppRepurchaseTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + RepurchaseTaskQuery taskQuery = new + RepurchaseTaskQuery(); + BeanUtil.copyProperties(query, taskQuery); + ResultBean resultBean = loanRepurchaseApplyFeign.breakProcess(taskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean getFlowOperateTitle(RepurchaseFlowableQuery query) { + ResultBean rb = ResultBean.fireFail(); + //0 上一环节 1下一环节 + int next = query.getNext(); + RepurchaseGetNodeQuery getNodeQuery = new + RepurchaseGetNodeQuery(); + BeanUtil.copyProperties(query, getNodeQuery); + String data = ""; + if (next == 0) { + ResultBean> getPreviousNodesForReject = loanRepurchaseApplyFeign.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> getNextNodesForSubmit = loanRepurchaseApplyFeign.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(AppRepurchaseDelegateQuery delegateQuery) { + ResultBean rb = ResultBean.fireFail(); + RepurchaseDelegateQuery delegateQuery1 = new + RepurchaseDelegateQuery(); + BeanUtil.copyProperties(delegateQuery, delegateQuery1); + ResultBean delegate = loanRepurchaseApplyFeign.delegate(delegateQuery1); + return rb.success(); + } +}