From af80aab45c7065cdc4bfb3437e213194537db34c Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Mon, 29 Jan 2024 10:02:17 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E4=BA=8C=E6=AC=A1?= =?UTF-8?q?=E9=94=80=E5=94=AE=E5=AE=A1=E6=89=B9=E9=83=A8=E5=88=86=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LoanSecondarySalesApplyService.java | 61 +++++++++- .../LoanSecondarySalesCostService.java | 16 ++- .../secondarysales/SecondarySalesAppVo.java | 12 ++ .../secondarysales/SecondarySalesFeign.java | 59 +++++++++ .../SecondarySalesFeignFallback.java | 12 ++ .../flowable/SecondarySalesDelegateQuery.java | 12 ++ .../flowable/SecondarySalesDto.java | 35 ++++++ .../flowable/SecondarySalesQuery.java | 23 ++++ .../flowable/SecondarySalesTaskQuery.java | 45 +++++++ .../secondarysales/SecondarySalesRest.java | 62 ++++++++++ .../secondarysales/SecondarySalesService.java | 114 ++++++++++++++++++ 11 files changed, 443 insertions(+), 8 deletions(-) create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesAppVo.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesFeign.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesFeignFallback.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/flowable/SecondarySalesDelegateQuery.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/flowable/SecondarySalesDto.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/flowable/SecondarySalesQuery.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/flowable/SecondarySalesTaskQuery.java create mode 100644 anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/secondarysales/SecondarySalesRest.java create mode 100644 anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/secondarysales/SecondarySalesService.java diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java index 1fde4978f8..733a0d3020 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java @@ -227,6 +227,20 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService variables = new HashMap<>(); + Map appMap = new HashMap<>(); + LoanSecondarySalesCost loanSecondarySalesCost = loanSecondarySalesCostMapper.selectMainSid(query.getBusinessSid()); + if (loanSecondarySalesCost != null) { + if (loanSecondarySalesCost.getVehicleEvaluation().compareTo(loanSecondarySalesCost.getVehPrice()) > 0) { + variables.put("isTrue", true); + } else { + variables.put("isTrue", false); + } + } + + appMap.put("sid", query.getBusinessSid()); + variables.put("app", appMap); + bv.setFormVariables(variables); ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanSecondarySalesApplyNodeVo.class)).collect(Collectors.toList()); @@ -239,6 +253,20 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService variables = new HashMap<>(); + Map appMap = new HashMap<>(); + LoanSecondarySalesCost loanSecondarySalesCost = loanSecondarySalesCostMapper.selectMainSid(query.getBusinessSid()); + if (loanSecondarySalesCost != null) { + if (loanSecondarySalesCost.getVehicleEvaluation().compareTo(loanSecondarySalesCost.getVehPrice()) > 0) { + variables.put("isTrue", true); + } else { + variables.put("isTrue", false); + } + } + + appMap.put("sid", query.getBusinessSid()); + variables.put("app", appMap); + bv.setFormVariables(variables); ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanSecondarySalesApplyNodeVo.class)).collect(Collectors.toList()); @@ -267,6 +295,15 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService appMap = new HashMap<>(); appMap.put("sid", businessSid); variables.put("app", appMap); + LoanSecondarySalesCost loanSecondarySalesCost = loanSecondarySalesCostMapper.selectMainSid(query.getBusinessSid()); + if (loanSecondarySalesCost != null) { + if (loanSecondarySalesCost.getVehicleEvaluation().compareTo(loanSecondarySalesCost.getVehPrice()) > 0) { + variables.put("isTrue", true); + } else { + variables.put("isTrue", false); + } + } + flowTaskVo.setValues(variables); ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); if (!resultBean.getSuccess()) { return rb.setMsg(resultBean.getMsg()); @@ -315,6 +352,20 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService variables = new HashMap<>(); + Map appMap = new HashMap<>(); + LoanSecondarySalesCost loanSecondarySalesCost = loanSecondarySalesCostMapper.selectMainSid(query.getBusinessSid()); + if (loanSecondarySalesCost != null) { + if (loanSecondarySalesCost.getVehicleEvaluation().compareTo(loanSecondarySalesCost.getVehPrice()) > 0) { + variables.put("isTrue", true); + } else { + variables.put("isTrue", false); + } + } + + appMap.put("sid", query.getBusinessSid()); + variables.put("app", appMap); + flowTaskVo.setValues(variables); ResultBean resultBean = flowableFeign.revokeProcess(flowTaskVo); if (!resultBean.getSuccess()) { return rb.setMsg(resultBean.getMsg()); @@ -551,10 +602,12 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService filss = dto.getFilesList(); - List filesList = filss.stream().map(v -> v.getUrl()).collect(Collectors.toList()); - if (!filesList.isEmpty()) { - String files = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); - loanSecondarySalesApply.setFiles(files); + if (filss.size() > 0) { + List filesList = filss.stream().map(v -> v.getUrl()).collect(Collectors.toList()); + if (!filesList.isEmpty()) { + String files = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); + loanSecondarySalesApply.setFiles(files); + } } baseMapper.insert(loanSecondarySalesApply); sid = loanSecondarySalesApply.getSid(); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostService.java index 0f4dfe5022..c95fb633bb 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostService.java @@ -9,6 +9,7 @@ import com.yxt.common.base.service.MybatisBaseService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Collections; import java.util.List; import java.util.stream.Collectors; @@ -38,11 +39,18 @@ public class LoanSecondarySalesCostService extends MybatisBaseService filss = loanSecondarySalesCost.getFiles(); - List filesList = filss.stream().map(v -> v.getUrl()).collect(Collectors.toList()); - if (!filesList.isEmpty()) { - String files = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); - loanSecondarySalesCost1.setFiles(files); + filss.removeAll(Collections.singleton(null)); + if (!filss.isEmpty()) { + List filesList = filss.stream().map(v -> v.getUrl()).collect(Collectors.toList()); + filesList.removeAll(Collections.singleton(null)); + if (!filesList.isEmpty()) { + String files = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); + loanSecondarySalesCost1.setFiles(files); + } + } else { + loanSecondarySalesCost1.setFiles(""); } + baseMapper.insert(loanSecondarySalesCost1); } } diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesAppVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesAppVo.java new file mode 100644 index 0000000000..8138e08a11 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesAppVo.java @@ -0,0 +1,12 @@ +package com.yxt.anrui.terminal.api.risk.secondarysales; + +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/29 + **/ +@Data +public class SecondarySalesAppVo { +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesFeign.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesFeign.java new file mode 100644 index 0000000000..cf921528af --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesFeign.java @@ -0,0 +1,59 @@ +package com.yxt.anrui.terminal.api.risk.secondarysales; + +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.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-SecondarySales", + name = "anrui-terminal", + path = "/risk/v1/SecondarySales", + fallback = SecondarySalesFeignFallback.class) +public interface SecondarySalesFeign { + + @ApiOperation("办理") + @PutMapping("/agreeSecondarySales") + @ResponseBody + ResultBean agreeSecondarySales(@RequestBody SecondarySalesDto dto); + + @ApiOperation("驳回") + @PutMapping("/rejectSecondarySales") + @ResponseBody + ResultBean rejectSecondarySales(@RequestBody SecondarySalesTaskQuery query); + + @ApiOperation("撤回") + @PutMapping("/recallSecondarySales") + @ResponseBody + ResultBean recallSecondarySales(@RequestBody SecondarySalesTaskQuery query); + + @ApiOperation("终止") + @PutMapping("/stopSecondarySales") + @ResponseBody + ResultBean stopSecondarySales(@RequestBody SecondarySalesTaskQuery query); + + @ApiOperation("获取流程操作标题") + @GetMapping("/getFlowOperateTitle") + @ResponseBody + ResultBean getFlowOperateTitle(@SpringQueryMap SecondarySalesQuery query); + + @ApiOperation("详情") + @GetMapping("/getSecondarySales/{sid}") + @ResponseBody + ResultBean getSecondarySales(@PathVariable("sid") String sid); + + @ApiOperation(value = "加签") + @PutMapping(value = "/delegate") + @ResponseBody + public ResultBean delegate(@RequestBody SecondarySalesDelegateQuery delegateQuery); +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesFeignFallback.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesFeignFallback.java new file mode 100644 index 0000000000..9d6414826c --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesFeignFallback.java @@ -0,0 +1,12 @@ +package com.yxt.anrui.terminal.api.risk.secondarysales; + +import org.springframework.stereotype.Component; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/29 + **/ +@Component +public class SecondarySalesFeignFallback { +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/flowable/SecondarySalesDelegateQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/flowable/SecondarySalesDelegateQuery.java new file mode 100644 index 0000000000..0473e84586 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/flowable/SecondarySalesDelegateQuery.java @@ -0,0 +1,12 @@ +package com.yxt.anrui.terminal.api.risk.secondarysales.flowable; + +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/29 + **/ +@Data +public class SecondarySalesDelegateQuery { +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/flowable/SecondarySalesDto.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/flowable/SecondarySalesDto.java new file mode 100644 index 0000000000..f866a377de --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/flowable/SecondarySalesDto.java @@ -0,0 +1,35 @@ +package com.yxt.anrui.terminal.api.risk.secondarysales.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 SecondarySalesDto { + + @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/secondarysales/flowable/SecondarySalesQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/flowable/SecondarySalesQuery.java new file mode 100644 index 0000000000..aac92d9fac --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/flowable/SecondarySalesQuery.java @@ -0,0 +1,23 @@ +package com.yxt.anrui.terminal.api.risk.secondarysales.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/29 + **/ +@Data +public class SecondarySalesQuery { + + @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-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/flowable/SecondarySalesTaskQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/flowable/SecondarySalesTaskQuery.java new file mode 100644 index 0000000000..578d3f80a2 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/flowable/SecondarySalesTaskQuery.java @@ -0,0 +1,45 @@ +package com.yxt.anrui.terminal.api.risk.secondarysales.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 SecondarySalesTaskQuery { + + /** + * 终止、驳回、撤回 + */ + @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-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/secondarysales/SecondarySalesRest.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/secondarysales/SecondarySalesRest.java new file mode 100644 index 0000000000..0e1631e2a9 --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/secondarysales/SecondarySalesRest.java @@ -0,0 +1,62 @@ +package com.yxt.anrui.terminal.biz.risk.secondarysales; + +import com.yxt.anrui.terminal.api.risk.secondarysales.SecondarySalesAppVo; +import com.yxt.anrui.terminal.api.risk.secondarysales.SecondarySalesFeign; +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.common.core.result.ResultBean; +import io.swagger.annotations.Api; +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("/risk/v1/SecondarySales") +@Api(tags = "交回车辆二次销售审批") +public class SecondarySalesRest implements SecondarySalesFeign { + + @Autowired + private SecondarySalesService secondarySalesService; + + @Override + public ResultBean agreeSecondarySales(SecondarySalesDto dto) { + return secondarySalesService.agreeSecondarySales(dto); + } + + @Override + public ResultBean rejectSecondarySales(SecondarySalesTaskQuery query) { + return secondarySalesService.rejectSecondarySales(query); + } + + @Override + public ResultBean recallSecondarySales(SecondarySalesTaskQuery query) { + return secondarySalesService.recallSecondarySales(query); + } + + @Override + public ResultBean stopSecondarySales(SecondarySalesTaskQuery query) { + return secondarySalesService.stopSecondarySales(query); + } + + @Override + public ResultBean getFlowOperateTitle(SecondarySalesQuery query) { + return secondarySalesService.getFlowOperateTitle(query); + } + + @Override + public ResultBean getSecondarySales(String sid) { + return secondarySalesService.getSecondarySales(sid); + } + + @Override + public ResultBean delegate(SecondarySalesDelegateQuery delegateQuery) { + return secondarySalesService.delegate(delegateQuery); + } +} diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/secondarysales/SecondarySalesService.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/secondarysales/SecondarySalesService.java new file mode 100644 index 0000000000..0679494f1d --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/secondarysales/SecondarySalesService.java @@ -0,0 +1,114 @@ +package com.yxt.anrui.terminal.biz.risk.secondarysales; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApplyFeign; +import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable.*; +import com.yxt.anrui.terminal.api.risk.secondarysales.SecondarySalesAppVo; +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.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: dimengzhe + * @date: 2024/1/29 + **/ +@Service +public class SecondarySalesService { + + @Autowired + private LoanSecondarySalesApplyFeign loanSecondarySalesApplyFeign; + + public ResultBean agreeSecondarySales(SecondarySalesDto dto) { + ResultBean rb = ResultBean.fireFail(); + CompleteLoanSecondarySalesApplyDto completeDto = new CompleteLoanSecondarySalesApplyDto(); + BeanUtil.copyProperties(dto, completeDto); + ResultBean resultBean = loanSecondarySalesApplyFeign.complete(completeDto); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean rejectSecondarySales(SecondarySalesTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + LoanSecondarySalesApplyTaskQuery loanSecondarySalesApplyTaskQuery = new LoanSecondarySalesApplyTaskQuery(); + BeanUtil.copyProperties(query, loanSecondarySalesApplyTaskQuery); + ResultBean resultBean = loanSecondarySalesApplyFeign.taskReject(loanSecondarySalesApplyTaskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean recallSecondarySales(SecondarySalesTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + LoanSecondarySalesApplyTaskQuery loanSecondarySalesApplyTaskQuery = new LoanSecondarySalesApplyTaskQuery(); + BeanUtil.copyProperties(query, loanSecondarySalesApplyTaskQuery); + ResultBean resultBean = loanSecondarySalesApplyFeign.revokeProcess(loanSecondarySalesApplyTaskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean stopSecondarySales(SecondarySalesTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + LoanSecondarySalesApplyTaskQuery loanSecondarySalesApplyTaskQuery = new LoanSecondarySalesApplyTaskQuery(); + BeanUtil.copyProperties(query, loanSecondarySalesApplyTaskQuery); + ResultBean resultBean = loanSecondarySalesApplyFeign.breakProcess(loanSecondarySalesApplyTaskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean getFlowOperateTitle(SecondarySalesQuery query) { + ResultBean rb = ResultBean.fireFail(); + //0 上一环节 1下一环节 + int next = query.getNext(); + LoanSecondarySalesApplyNodeQuery getNodeQuery = new LoanSecondarySalesApplyNodeQuery(); + BeanUtil.copyProperties(query, getNodeQuery); + String data = ""; + if (next == 0) { + ResultBean> getPreviousNodesForReject = loanSecondarySalesApplyFeign.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 = loanSecondarySalesApplyFeign.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 getSecondarySales(String sid) { + return null; + } + + public ResultBean delegate(SecondarySalesDelegateQuery delegateQuery) { + ResultBean rb = ResultBean.fireFail(); + LoanSecondarySalesApplyDelegateQuery delegateQuery1 = new + LoanSecondarySalesApplyDelegateQuery(); + BeanUtil.copyProperties(delegateQuery, delegateQuery1); + ResultBean delegate = loanSecondarySalesApplyFeign.delegate(delegateQuery1); + return rb.success(); + } +}