
12 changed files with 500 additions and 12 deletions
@ -0,0 +1,60 @@ |
|||
package com.yxt.anrui.terminal.api.risk.secondarysalesnotapply; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.fasterxml.jackson.annotation.JsonProperty; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.math.BigDecimal; |
|||
import java.util.ArrayList; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/1/29 |
|||
**/ |
|||
@Data |
|||
public class SecondarySalesNotAppVos { |
|||
|
|||
@ApiModelProperty("单据编号") |
|||
private String billNo; |
|||
@ApiModelProperty("创建日期") |
|||
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") |
|||
private Date createTime; |
|||
private String publishInfo; |
|||
@ApiModelProperty("不追偿说明") |
|||
private String remarks; |
|||
@ApiModelProperty("客户名称") |
|||
private String customerName; |
|||
@ApiModelProperty("贷款人") |
|||
private String loanName; |
|||
@ApiModelProperty("贷款合同编号") |
|||
private String loanContractNo; |
|||
@ApiModelProperty("资方") |
|||
private String bankName; |
|||
@ApiModelProperty("资方合同编号") |
|||
private String bankContractNo; |
|||
@ApiModelProperty("欠款合计") |
|||
private String arrearsAll; |
|||
@ApiModelProperty("公司承担费用") |
|||
private String comBearMoney; |
|||
@ApiModelProperty("亏损金额") |
|||
private String lossPrice; |
|||
@ApiModelProperty("车辆售价") |
|||
private String vehPrice; |
|||
@ApiModelProperty("交回车辆二次销售申请sid") |
|||
private String secSaleSid; |
|||
@ApiModelProperty(value = "任务id") |
|||
private String taskId; |
|||
@ApiModelProperty(value = "流程实例id") |
|||
@JsonProperty("procInsId") |
|||
private String procInstId; |
|||
|
|||
@ApiModelProperty("附件") |
|||
private List<String> files = new ArrayList<>(); |
|||
@ApiModelProperty("列表") |
|||
private List<SecondarySalesNotVehAppVo> loanSecondarySalesNotVehList = new ArrayList<>(); |
|||
|
|||
} |
@ -0,0 +1,65 @@ |
|||
package com.yxt.anrui.terminal.api.risk.secondarysalesnotapply; |
|||
|
|||
import com.yxt.anrui.terminal.api.risk.secondarysales.SecondarySalesAppVos; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysales.SecondarySalesFeignFallback; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysales.flowable.SecondarySalesDelegateQuery; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysales.flowable.SecondarySalesDto; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysales.flowable.SecondarySalesQuery; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysales.flowable.SecondarySalesTaskQuery; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysalesnotapply.flowable.SecondarySalesNotDelegateQuery; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysalesnotapply.flowable.SecondarySalesNotDto; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysalesnotapply.flowable.SecondarySalesNotQuery; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysalesnotapply.flowable.SecondarySalesNotTaskQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.cloud.openfeign.SpringQueryMap; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/1/29 |
|||
**/ |
|||
@FeignClient( |
|||
contextId = "terminal-SecondarySalesNot", |
|||
name = "anrui-terminal", |
|||
path = "/v1/secondarysalesnotapply", |
|||
fallback = SecondarySalesFeignFallback.class) |
|||
public interface SecondarySalesNotFeign { |
|||
|
|||
@ApiOperation("详情") |
|||
@GetMapping("/fetchDetailsBySid/{sid}") |
|||
@ResponseBody |
|||
ResultBean<SecondarySalesNotAppVos> fetchDetailsBySid(@PathVariable("sid") String sid); |
|||
|
|||
@ApiOperation("办理") |
|||
@PutMapping("/agreeCreditInfo") |
|||
@ResponseBody |
|||
ResultBean agreeCreditInfo(@RequestBody SecondarySalesNotDto dto); |
|||
|
|||
@ApiOperation("驳回") |
|||
@PutMapping("/rejectCreditInfo") |
|||
@ResponseBody |
|||
ResultBean rejectCreditInfo(@RequestBody SecondarySalesNotTaskQuery query); |
|||
|
|||
@ApiOperation("撤回") |
|||
@PutMapping("/recallCreditInfo") |
|||
@ResponseBody |
|||
ResultBean recallCreditInfo(@RequestBody SecondarySalesNotTaskQuery query); |
|||
|
|||
@ApiOperation("终止") |
|||
@PutMapping("/stopCreditInfo") |
|||
@ResponseBody |
|||
ResultBean stopCreditInfo(@RequestBody SecondarySalesNotTaskQuery query); |
|||
|
|||
@ApiOperation("获取流程操作标题") |
|||
@GetMapping("/getFlowOperateTitle") |
|||
@ResponseBody |
|||
ResultBean<String> getFlowOperateTitle(@SpringQueryMap SecondarySalesNotQuery query); |
|||
|
|||
@ApiOperation(value = "加签") |
|||
@PutMapping(value = "/delegate") |
|||
@ResponseBody |
|||
public ResultBean delegate(@RequestBody SecondarySalesNotDelegateQuery delegateQuery); |
|||
} |
@ -0,0 +1,22 @@ |
|||
package com.yxt.anrui.terminal.api.risk.secondarysalesnotapply; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/1/29 |
|||
**/ |
|||
@Data |
|||
public class SecondarySalesNotVehAppVo { |
|||
|
|||
@ApiModelProperty("车架号") |
|||
private String vinNo; |
|||
@ApiModelProperty("车牌号") |
|||
private String vehMark; |
|||
@ApiModelProperty("车辆类型") |
|||
private String vehType; |
|||
@ApiModelProperty("车型") |
|||
private String modelName; |
|||
} |
@ -0,0 +1,24 @@ |
|||
package com.yxt.anrui.terminal.api.risk.secondarysalesnotapply.flowable; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonProperty; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/1/29 |
|||
**/ |
|||
@Data |
|||
public class SecondarySalesNotDelegateQuery { |
|||
private String userSid; |
|||
@ApiModelProperty("流程实例id") |
|||
@JsonProperty("procInsId") |
|||
private String instanceId; |
|||
@ApiModelProperty("任务Id") |
|||
private String taskId; |
|||
@ApiModelProperty("审批人sid") |
|||
private String assignee; |
|||
@ApiModelProperty("填写意见") |
|||
private String views; |
|||
} |
@ -0,0 +1,35 @@ |
|||
package com.yxt.anrui.terminal.api.risk.secondarysalesnotapply.flowable; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonProperty; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/1/29 |
|||
**/ |
|||
@Data |
|||
public class SecondarySalesNotDto { |
|||
|
|||
@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; |
|||
} |
@ -0,0 +1,23 @@ |
|||
package com.yxt.anrui.terminal.api.risk.secondarysalesnotapply.flowable; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotNull; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/1/29 |
|||
**/ |
|||
@Data |
|||
public class SecondarySalesNotQuery { |
|||
|
|||
@ApiModelProperty(value = "节点key") |
|||
private String taskDefKey; |
|||
@ApiModelProperty(value = "业务sid") |
|||
private String businessSid; |
|||
@ApiModelProperty(value = "0 上一环节 1下一环节") |
|||
@NotNull(message = "参数错误:next") |
|||
private Integer next; |
|||
} |
@ -0,0 +1,45 @@ |
|||
package com.yxt.anrui.terminal.api.risk.secondarysalesnotapply.flowable; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonProperty; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/1/29 |
|||
**/ |
|||
@Data |
|||
public class SecondarySalesNotTaskQuery { |
|||
|
|||
/** |
|||
* 终止、驳回、撤回 |
|||
*/ |
|||
@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; |
|||
} |
@ -0,0 +1,60 @@ |
|||
package com.yxt.anrui.terminal.biz.risk.secondarysalesnotapply; |
|||
|
|||
import com.yxt.anrui.terminal.api.risk.secondarysalesnotapply.SecondarySalesNotAppVos; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysalesnotapply.SecondarySalesNotFeign; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysalesnotapply.flowable.SecondarySalesNotDelegateQuery; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysalesnotapply.flowable.SecondarySalesNotDto; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysalesnotapply.flowable.SecondarySalesNotQuery; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysalesnotapply.flowable.SecondarySalesNotTaskQuery; |
|||
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: dimengzhe |
|||
* @date: 2024/1/29 |
|||
**/ |
|||
@Controller |
|||
@RequestMapping("/v1/secondarysalesnotapply") |
|||
public class SecondarySalesNotRest implements SecondarySalesNotFeign { |
|||
|
|||
@Autowired |
|||
private SecondarySalesNotService secondarySalesNotService; |
|||
|
|||
@Override |
|||
public ResultBean<SecondarySalesNotAppVos> fetchDetailsBySid(String sid) { |
|||
return secondarySalesNotService.fetchDetailsBySid(sid); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean agreeCreditInfo(SecondarySalesNotDto dto) { |
|||
return secondarySalesNotService.agreeCreditInfo(dto); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean rejectCreditInfo(SecondarySalesNotTaskQuery query) { |
|||
return secondarySalesNotService.rejectCreditInfo(query); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean recallCreditInfo(SecondarySalesNotTaskQuery query) { |
|||
return secondarySalesNotService.recallCreditInfo(query); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean stopCreditInfo(SecondarySalesNotTaskQuery query) { |
|||
return secondarySalesNotService.stopCreditInfo(query); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<String> getFlowOperateTitle(SecondarySalesNotQuery query) { |
|||
return secondarySalesNotService.getFlowOperateTitle(query); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean delegate(SecondarySalesNotDelegateQuery delegateQuery) { |
|||
return secondarySalesNotService.delegate(delegateQuery); |
|||
} |
|||
} |
@ -0,0 +1,142 @@ |
|||
package com.yxt.anrui.terminal.biz.risk.secondarysalesnotapply; |
|||
|
|||
import cn.hutool.core.bean.BeanUtil; |
|||
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApplyFeign; |
|||
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.SecondarySalesAppVo; |
|||
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable.*; |
|||
import com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply.FileUrl; |
|||
import com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply.LoanSecondarySalesNotApplyDetailsVo; |
|||
import com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply.LoanSecondarySalesNotApplyFeign; |
|||
import com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply.flowable.*; |
|||
import com.yxt.anrui.terminal.api.base.common.CarModelVo; |
|||
import com.yxt.anrui.terminal.api.base.common.ItemEditTextInfoCommon; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysales.SecondSalesInitVo; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysales.SecondarySalesAppVos; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysales.SecondarySalesCostAppVo; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysales.flowable.SecondarySalesDelegateQuery; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysales.flowable.SecondarySalesDto; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysales.flowable.SecondarySalesQuery; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysales.flowable.SecondarySalesTaskQuery; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysalesnotapply.SecondarySalesNotAppVos; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysalesnotapply.flowable.SecondarySalesNotDelegateQuery; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysalesnotapply.flowable.SecondarySalesNotDto; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysalesnotapply.flowable.SecondarySalesNotQuery; |
|||
import com.yxt.anrui.terminal.api.risk.secondarysalesnotapply.flowable.SecondarySalesNotTaskQuery; |
|||
import com.yxt.anrui.terminal.biz.base.common.CommonService; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.Collections; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/1/29 |
|||
**/ |
|||
@Service |
|||
public class SecondarySalesNotService { |
|||
|
|||
@Autowired |
|||
private LoanSecondarySalesNotApplyFeign loanSecondarySalesNotApplyFeign; |
|||
|
|||
public ResultBean agreeCreditInfo(SecondarySalesNotDto dto) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
CompleteDto completeDto = new CompleteDto(); |
|||
BeanUtil.copyProperties(dto, completeDto); |
|||
ResultBean resultBean = loanSecondarySalesNotApplyFeign.complete(completeDto); |
|||
if (!resultBean.getSuccess()) { |
|||
return rb.setMsg(resultBean.getMsg()); |
|||
} |
|||
return rb.success().setData(resultBean.getData()); |
|||
} |
|||
|
|||
public ResultBean rejectCreditInfo(SecondarySalesNotTaskQuery query) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
TaskQuery taskQuery = new TaskQuery(); |
|||
BeanUtil.copyProperties(query, taskQuery); |
|||
ResultBean resultBean = loanSecondarySalesNotApplyFeign.reject(taskQuery); |
|||
if (!resultBean.getSuccess()) { |
|||
return rb.setMsg(resultBean.getMsg()); |
|||
} |
|||
return rb.success().setData(resultBean.getData()); |
|||
} |
|||
|
|||
public ResultBean recallCreditInfo(SecondarySalesNotTaskQuery query) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
TaskQuery taskQuery = new TaskQuery(); |
|||
BeanUtil.copyProperties(query, taskQuery); |
|||
ResultBean resultBean = loanSecondarySalesNotApplyFeign.revokeProcess(taskQuery); |
|||
if (!resultBean.getSuccess()) { |
|||
return rb.setMsg(resultBean.getMsg()); |
|||
} |
|||
return rb.success().setData(resultBean.getData()); |
|||
} |
|||
|
|||
public ResultBean stopCreditInfo(SecondarySalesNotTaskQuery query) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
TaskQuery taskQuery = new TaskQuery(); |
|||
BeanUtil.copyProperties(query, taskQuery); |
|||
ResultBean resultBean = loanSecondarySalesNotApplyFeign.breakProcess(taskQuery); |
|||
if (!resultBean.getSuccess()) { |
|||
return rb.setMsg(resultBean.getMsg()); |
|||
} |
|||
return rb.success().setData(resultBean.getData()); |
|||
} |
|||
|
|||
public ResultBean<String> getFlowOperateTitle(SecondarySalesNotQuery query) { |
|||
ResultBean<String> rb = ResultBean.fireFail(); |
|||
//0 上一环节 1下一环节
|
|||
int next = query.getNext(); |
|||
NodeQuery getNodeQuery = new NodeQuery(); |
|||
BeanUtil.copyProperties(query, getNodeQuery); |
|||
String data = ""; |
|||
if (next == 0) { |
|||
ResultBean<List<NodeVo>> getPreviousNodesForReject = loanSecondarySalesNotApplyFeign.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<NodeVo>> getNextNodesForSubmit = loanSecondarySalesNotApplyFeign.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(SecondarySalesNotDelegateQuery delegateQuery) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
DelegateQuery delegateQuery1 = new |
|||
DelegateQuery(); |
|||
BeanUtil.copyProperties(delegateQuery, delegateQuery1); |
|||
loanSecondarySalesNotApplyFeign.delegate(delegateQuery1); |
|||
return rb.success(); |
|||
} |
|||
|
|||
public ResultBean<SecondarySalesNotAppVos> fetchDetailsBySid(String sid) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
LoanSecondarySalesNotApplyDetailsVo data = loanSecondarySalesNotApplyFeign.fetchDetailsBySid(sid).getData(); |
|||
SecondarySalesNotAppVos secondarySalesNotAppVos = new SecondarySalesNotAppVos(); |
|||
BeanUtil.copyProperties(data,secondarySalesNotAppVos); |
|||
secondarySalesNotAppVos.setPublishInfo(data.getCreateDept() + "-" + data.getCreateByName()); |
|||
List<FileUrl> filesList = data.getFilesList(); |
|||
List<String> files = new ArrayList<>(); |
|||
for (FileUrl fileUrl : filesList) { |
|||
files.add(fileUrl.getUrl()); |
|||
} |
|||
secondarySalesNotAppVos.setFiles(files); |
|||
return rb.success().setData(secondarySalesNotAppVos); |
|||
} |
|||
} |
Loading…
Reference in new issue