From d777a9e3b7dd8a5759cfdbc9ec14872d4e9025c5 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Tue, 14 Nov 2023 14:23:33 +0800 Subject: [PATCH 01/16] =?UTF-8?q?=E6=94=BE=E6=AC=BE=E5=B7=AE=E9=A2=9D?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FinCollectionConfirmationService.java | 12 + .../FinSelectedReceivablesDetailedMapper.java | 2 + .../FinSelectedReceivablesDetailedMapper.xml | 5 + ...FinSelectedReceivablesDetailedService.java | 4 + .../anrui/flowable/api/utils/ProcDefEnum.java | 1 + .../riskcenter/api/loandiff/LoanDiff.java | 41 ++ .../riskcenter/api/loandiff/LoanDiffDto.java | 20 + .../api/loandiff/LoanDiffFeign.java | 66 +++ .../api/loandiff/LoanDiffFeignFallback.java | 9 + .../api/loandiff/LoanDiffQuery.java | 30 ++ .../riskcenter/api/loandiff/LoanDiffVo.java | 34 ++ .../riskcenter/api/loandiff/LoanDiffsDto.java | 34 ++ .../loandiff/flowable/DiffApplyNodeQuery.java | 18 + .../loandiff/flowable/DiffApplyNodeVo.java | 24 + .../loandiff/flowable/DiffApplyTaskQuery.java | 43 ++ .../loandiff/flowable/DiffCompleteDto.java | 38 ++ .../api/loandiff/flowable/SubmitDiffDto.java | 19 + .../api/loandiffdetails/LoanDiffDetails.java | 65 +++ .../loandiffdetails/LoanDiffDetailsDto.java | 25 + .../loandiffdetails/LoanDiffDetailssDto.java | 44 ++ .../biz/loandiff/LoanDiffMapper.java | 24 + .../biz/loandiff/LoanDiffMapper.xml | 39 ++ .../riskcenter/biz/loandiff/LoanDiffRest.java | 81 ++++ .../biz/loandiff/LoanDiffService.java | 429 ++++++++++++++++++ .../LoanDiffDetailsMapper.java | 14 + .../loandiffdetails/LoanDiffDetailsMapper.xml | 4 + .../loandiffdetails/LoanDiffDetailsRest.java | 9 + .../LoanDiffDetailsService.java | 16 + .../biz/loantemplate/LoanTemplateService.java | 15 +- 29 files changed, 1159 insertions(+), 6 deletions(-) create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiff.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffDto.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeign.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeignFallback.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffQuery.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffVo.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffsDto.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DiffApplyNodeQuery.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DiffApplyNodeVo.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DiffApplyTaskQuery.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DiffCompleteDto.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/SubmitDiffDto.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetails.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailsDto.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssDto.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.xml create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffRest.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.xml create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsRest.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsService.java diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java index 2e0ea151d8..f21359ae0b 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java @@ -107,6 +107,7 @@ import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserVo; +import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffsDto; import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsFeign; import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo; import com.yxt.common.base.config.component.FileUploadComponent; @@ -1550,6 +1551,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService dtoList = new ArrayList<>(); //查询该申请下的所有待审核的款项明细 + BigDecimal subscriptionMoneyAll = new BigDecimal("0"); List finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByAuditState(sid, 1); if (finSelectedReceivablesDetailedVos.size() > 0) { @@ -1652,6 +1654,16 @@ public class FinCollectionConfirmationService extends MybatisBaseService finLi = finSelectedReceivablesDetailedService.selectLiBy(sid); + finLi.removeAll(Collections.singleton(null)); + if(!finLi.isEmpty()){ + //根据车辆sid查询金融方案 + for (int i = 0; i < finLi.size(); i++) { + + } + + } return rb.success().setMsg("款项确认成功"); } diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.java index b836e050d8..0507c8fce8 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.java @@ -155,4 +155,6 @@ public interface FinSelectedReceivablesDetailedMapper extends BaseMapper selectByOneCollSid(String sid); String getBalance(String busSid); + + List selectLiBy(String sid); } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml index 5a80227954..5bf8db855b 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml @@ -546,4 +546,9 @@ ON ffc.`busSid` = ferd.`sid` WHERE ferd.sid = #{busSid} + + \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedService.java index c7890d1d36..a703d18e32 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedService.java @@ -868,4 +868,8 @@ public class FinSelectedReceivablesDetailedService extends MybatisBaseService selectLiBy(String sid) { + return baseMapper.selectLiBy(sid); + } } \ No newline at end of file diff --git a/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java b/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java index bfb7e2e165..e0c921ef26 100644 --- a/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java +++ b/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java @@ -56,6 +56,7 @@ public enum ProcDefEnum { LOANCREDITAPPEALAPPLY("信用审核申诉", "process_gygvxw8k:2:5212504"), DEALERFILINGAPPLY("经销商备案", "process_jdu35cog:9:6652504"), LOANTEMPLATEAPPLY("定制金融方案", "process_9q5omebi:2:2685008"), + LOANDIFFAPPLY("放款差额确认", ""), LOANHOMEVISITAPPEALAPPLY("家访考察申诉", "process_8ujil3h3:1:3665004"), BUSVALCUSTFILING("价值客户备案申请", "process_n8fwpitk:2:5085004"), LOANCUSTOMERRECORD("欠款客户备案", "process_x6o0chx9:4:6055004"), diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiff.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiff.java new file mode 100644 index 0000000000..f58090ecbe --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiff.java @@ -0,0 +1,41 @@ +package com.yxt.anrui.riskcenter.api.loandiff; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/13 + **/ +@Data +public class LoanDiff extends BaseEntity { + private static final long serialVersionUID = 5447301533409285441L; + + private String createByName; + @ApiModelProperty("申请部门sid") + private String createDeptSid; + @ApiModelProperty("申请部门") + private String createDept; + @ApiModelProperty("编号") + private String billNo; + @ApiModelProperty("附件") + private String files; + @ApiModelProperty("组织全路径") + private String orgSidPath; + @ApiModelProperty("流程状态") + private String nodeState; + @ApiModelProperty("环节key") + private String nodeId; + @ApiModelProperty("流程实例id") + private String procDefId; + @ApiModelProperty("实例id") + private String procInstId; + @ApiModelProperty("任务id") + private String taskId; + @ApiModelProperty("分公司sid") + private String useOrgSid; + @ApiModelProperty("分公司名称") + private String useOrgName; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffDto.java new file mode 100644 index 0000000000..d38d6be462 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffDto.java @@ -0,0 +1,20 @@ +package com.yxt.anrui.riskcenter.api.loandiff; + +import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetailsDto; +import com.yxt.common.core.dto.Dto; +import lombok.Data; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +@Data +public class LoanDiffDto implements Dto { + private static final long serialVersionUID = 3046052875256156498L; + private String sid; + private String userSid; + private List loanDiffDetails; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeign.java new file mode 100644 index 0000000000..2472dda787 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeign.java @@ -0,0 +1,66 @@ +package com.yxt.anrui.riskcenter.api.loandiff; + +import com.yxt.anrui.riskcenter.api.loandiff.flowable.*; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.cloud.openfeign.SpringQueryMap; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import javax.validation.Valid; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/13 + **/ +@Api(tags = "放款确认申请") +@FeignClient( + contextId = "anrui-riskcenter-LoanDiff", + name = "anrui-riskcenter", + path = "v1/LoanDiff", + fallback = LoanDiffFeignFallback.class) +public interface LoanDiffFeign { + @ApiOperation("融资放款确认推送数据") + @PostMapping("/save") + ResultBean save(@RequestBody LoanDiffsDto dto); + + @ApiOperation("分页列表") + @PostMapping("/listPage") + public ResultBean> listPage(@RequestBody PagerQuery pq); + + @ApiOperation("提交") + @PostMapping("/submitDiffApply") + public ResultBean submitDiffApply(@Valid @RequestBody SubmitDiffDto dto); + + @ApiOperation(value = "办理(同意)") + @PostMapping("/complete") + public ResultBean complete(@Valid @RequestBody DiffCompleteDto query); + + @ApiOperation(value = "获取上一个环节") + @GetMapping(value = "/getPreviousNodesForReject") + ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap DiffApplyNodeQuery query); + + @ApiOperation(value = "获取下一个环节") + @GetMapping(value = "/getNextNodesForSubmit") + ResultBean> getNextNodesForSubmit(@Valid @SpringQueryMap DiffApplyNodeQuery query); + + @ApiOperation(value = "驳回任务") + @PostMapping(value = "/reject") + public ResultBean taskReject(@Valid @RequestBody DiffApplyTaskQuery query); + + @ApiOperation(value = "撤回流程") + @PostMapping(value = "/revokeProcess") + public ResultBean revokeProcess(@Valid @RequestBody DiffApplyTaskQuery query); + + @ApiOperation(value = "终止任务") + @PostMapping(value = "/breakProcess") + public ResultBean breakProcess(@Valid @RequestBody DiffApplyTaskQuery query); + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeignFallback.java new file mode 100644 index 0000000000..2826f944db --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeignFallback.java @@ -0,0 +1,9 @@ +package com.yxt.anrui.riskcenter.api.loandiff; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +public class LoanDiffFeignFallback { +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffQuery.java new file mode 100644 index 0000000000..30cc800263 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffQuery.java @@ -0,0 +1,30 @@ +package com.yxt.anrui.riskcenter.api.loandiff; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +@Data +public class LoanDiffQuery implements Query { + private static final long serialVersionUID = 7002305390491310057L; + @ApiModelProperty("分公司") + private String useOrgName; + @ApiModelProperty("申请部门") + private String createDept; + @ApiModelProperty("申请人") + private String createByName; + @ApiModelProperty("申请日期开始时间") + private String createTimeStart; + @ApiModelProperty("申请日期结束时间") + private String createTimeEnd; + + private String orgPath; + private String menuUrl; + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffVo.java new file mode 100644 index 0000000000..37ad002ac0 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffVo.java @@ -0,0 +1,34 @@ +package com.yxt.anrui.riskcenter.api.loandiff; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +@Data +public class LoanDiffVo implements Vo { + private static final long serialVersionUID = -7935993141002359582L; + + private String sid; + @ApiModelProperty("流程状态") + private String nodeState; + @ApiModelProperty("分公司") + private String useOrgName; + @ApiModelProperty("申请部门") + private String createDept; + @ApiModelProperty("申请人") + private String createByName; + @ApiModelProperty("申请日期") + private String createTime; + @ApiModelProperty("申请编号") + private String billNo; + @ApiModelProperty("备注") + private String remarks; + + private String procDefId; + private String procInstId; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffsDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffsDto.java new file mode 100644 index 0000000000..e1779f6026 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffsDto.java @@ -0,0 +1,34 @@ +package com.yxt.anrui.riskcenter.api.loandiff; + +import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetails; +import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetailssDto; +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +@Data +public class LoanDiffsDto implements Dto { + private static final long serialVersionUID = 7160584186871507179L; + @ApiModelProperty("申请人") + private String createBySid; + @ApiModelProperty("分公司sid") + private String useOrgSid; + @ApiModelProperty("分公司名称") + private String useOrgName; + private String createByName; + @ApiModelProperty("申请部门") + private String createDept; + @ApiModelProperty("申请部门sid") + private String createDeptSid; + + private List loanDiffDetailssDtos; + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DiffApplyNodeQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DiffApplyNodeQuery.java new file mode 100644 index 0000000000..72e1910f79 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DiffApplyNodeQuery.java @@ -0,0 +1,18 @@ +package com.yxt.anrui.riskcenter.api.loandiff.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +@Data +public class DiffApplyNodeQuery { + + @ApiModelProperty(value = "环节定义id") + private String taskDefKey; + @ApiModelProperty(value = "业务sid") + private String businessSid; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DiffApplyNodeVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DiffApplyNodeVo.java new file mode 100644 index 0000000000..ce4de0177e --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DiffApplyNodeVo.java @@ -0,0 +1,24 @@ +package com.yxt.anrui.riskcenter.api.loandiff.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +@Data +public class DiffApplyNodeVo { + + @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/loandiff/flowable/DiffApplyTaskQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DiffApplyTaskQuery.java new file mode 100644 index 0000000000..1613dc5fd0 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DiffApplyTaskQuery.java @@ -0,0 +1,43 @@ +package com.yxt.anrui.riskcenter.api.loandiff.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +@Data +public class DiffApplyTaskQuery { + + /** + * 终止、驳回、撤回 + */ + @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; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DiffCompleteDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DiffCompleteDto.java new file mode 100644 index 0000000000..ae1d4760d9 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DiffCompleteDto.java @@ -0,0 +1,38 @@ +package com.yxt.anrui.riskcenter.api.loandiff.flowable; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +@Data +public class DiffCompleteDto implements Dto { + + private static final long serialVersionUID = -1137187204046560845L; + @ApiModelProperty(value = "用户sid") + @NotBlank(message = "参数错误:userSid") + private String userSid; + @ApiModelProperty(value = "用户全路径sid") + private String orgSidPath; + @ApiModelProperty(value = "节点id") + @NotBlank(message = "参数错误:taskDefKey") + private String taskDefKey; + @ApiModelProperty(value = "任务id") + @NotBlank(message = "参数错误:taskId") + private String taskId; + @ApiModelProperty(value = "流程id") + @NotBlank(message = "参数错误:instanceId") + private String instanceId; + @ApiModelProperty(value = "意见") + private String comment; + @ApiModelProperty(value = "业务sid") + @NotBlank(message = "参数错误:businessSid") + private String businessSid; + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/SubmitDiffDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/SubmitDiffDto.java new file mode 100644 index 0000000000..224024c218 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/SubmitDiffDto.java @@ -0,0 +1,19 @@ +package com.yxt.anrui.riskcenter.api.loandiff.flowable; + +import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +@Data +public class SubmitDiffDto extends LoanDiffDto { + + @ApiModelProperty("流程实例id") + private String instanceId; + @ApiModelProperty("任务id") + private String taskId; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetails.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetails.java new file mode 100644 index 0000000000..2c8283317c --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetails.java @@ -0,0 +1,65 @@ +package com.yxt.anrui.riskcenter.api.loandiffdetails; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/13 + **/ +@Data +public class LoanDiffDetails extends BaseEntity { + private static final long serialVersionUID = 2569023626756288954L; + @ApiModelProperty("主申请sid") + private String mainSid; + @ApiModelProperty("资方sid") + private String bankSid; + @ApiModelProperty("资方") + private String bankName; + @ApiModelProperty("销售订单车辆sid") + private String busVinSid; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车辆sid") + private String vinSid; + @ApiModelProperty("贷款人sid") + private String borrowSid; + @ApiModelProperty("贷款人") + private String borrowName; + @ApiModelProperty("放款金额:应放") + private BigDecimal makeLoan; + @ApiModelProperty("放款金额:实放") + private BigDecimal realityLoan; + private BigDecimal diffLoan; + @ApiModelProperty("主产品厂家贴息:预计") + private BigDecimal makeDiscount; + + @ApiModelProperty("主产品厂家贴息:实际") + private BigDecimal realityDiscount; + private BigDecimal diffDiscount; + + @ApiModelProperty("其他融厂家贴息:预计") + private BigDecimal makeOtherDiscount; + + @ApiModelProperty("其他融厂家贴息:实际") + private BigDecimal realityOtherDiscount; + private BigDecimal diffOtherDiscount; + + @ApiModelProperty("固定贷款保证金:预计") + private BigDecimal makeLoanMargin; + + @ApiModelProperty("固定贷款保证金:实际") + private BigDecimal realityLoanMargin; + private BigDecimal diffLoanMargin; + + @ApiModelProperty("意外险:已收") + private BigDecimal receivedPremium; + + @ApiModelProperty("意外险:实扣") + private BigDecimal realityPremium; + private BigDecimal diffPremium; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailsDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailsDto.java new file mode 100644 index 0000000000..8e853cbbf1 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailsDto.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.riskcenter.api.loandiffdetails; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +@Data +public class LoanDiffDetailsDto { + private String sid; + private String busVinSid; + @ApiModelProperty("实放") + private String realityLoan; + @ApiModelProperty("主产品厂家贴息:实际") + private String realityDiscount; + @ApiModelProperty("其他融厂家贴息:实际") + private String realityOtherDiscount; + @ApiModelProperty("固定贷款保证金:实际") + private String realityLoanMargin; + @ApiModelProperty("实扣意外险") + private String realityPremium; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssDto.java new file mode 100644 index 0000000000..9d03ea00d6 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssDto.java @@ -0,0 +1,44 @@ +package com.yxt.anrui.riskcenter.api.loandiffdetails; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +@Data +public class LoanDiffDetailssDto implements Dto { + private static final long serialVersionUID = -2530442143507437830L; + @ApiModelProperty("销售订单车辆sid") + private String busVinSid; + @ApiModelProperty("车辆sid") + private String vinSid; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("资方sid") + private String bankSid; + @ApiModelProperty("资方名称") + private String bankName; + @ApiModelProperty("贷款人sid") + private String borrowSid; + @ApiModelProperty("贷款人") + private String borrowName; + + @ApiModelProperty("放款金额:应放") + private String makeLoan; + @ApiModelProperty("主产品厂家贴息:预计") + private BigDecimal makeDiscount; + @ApiModelProperty("其他融厂家贴息:预计") + private BigDecimal makeOtherDiscount; + @ApiModelProperty("固定贷款保证金:预计") + private BigDecimal makeLoanMargin; + @ApiModelProperty("意外险:已收") + private BigDecimal receivedPremium; + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.java new file mode 100644 index 0000000000..49ef8359fd --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.java @@ -0,0 +1,24 @@ +package com.yxt.anrui.riskcenter.biz.loandiff; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.anrui.riskcenter.api.loandiff.LoanDiff; +import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Map; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/13 + **/ +@Mapper +public interface LoanDiffMapper extends BaseMapper { + int updateFlowFiled(Map map); + + IPage listPageVo(IPage page, @Param(Constants.WRAPPER)QueryWrapper qw); +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.xml new file mode 100644 index 0000000000..0156969b1c --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.xml @@ -0,0 +1,39 @@ + + + + + UPDATE loan_diff + SET nodeState=#{nodeState} + + , nodeId=#{taskDefKey} + + + , procDefId=#{procDefId} + + + , procInstId=#{procInsId} + + + , taskId=#{taskId} + + WHERE sid = #{sid} + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffRest.java new file mode 100644 index 0000000000..158f2ee9c3 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffRest.java @@ -0,0 +1,81 @@ +package com.yxt.anrui.riskcenter.biz.loandiff; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffFeign; +import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffQuery; +import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffVo; +import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffsDto; +import com.yxt.anrui.riskcenter.api.loandiff.flowable.*; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +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: dimengzhe + * @date: 2023/11/13 + **/ +@RestController +@RequestMapping("v1/LoanDiff") +public class LoanDiffRest implements LoanDiffFeign { + + @Autowired + private LoanDiffService loanDiffService; + + + @Override + public ResultBean save(LoanDiffsDto dto) { + return loanDiffService.saveDiff(dto); + } + + @Override + public ResultBean> listPage(PagerQuery pq) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = loanDiffService.listPageVo(pq); + return rb.success().setData(pv); + } + + @Override + public ResultBean submitDiffApply(SubmitDiffDto dto) { + return loanDiffService.submitDiffApply(dto); + } + + @Override + public ResultBean complete(DiffCompleteDto query) { + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + bv.setModelId(""); + return loanDiffService.complete(bv); + } + + @Override + public ResultBean> getPreviousNodesForReject(DiffApplyNodeQuery query) { + return loanDiffService.getPreviousNodesForReject(query); + } + + @Override + public ResultBean> getNextNodesForSubmit(DiffApplyNodeQuery query) { + return loanDiffService.getNextNodesForSubmit(query); + } + + @Override + public ResultBean taskReject(DiffApplyTaskQuery query) { + return loanDiffService.taskReject(query); + } + + @Override + public ResultBean revokeProcess(DiffApplyTaskQuery query) { + return loanDiffService.revokeProcess(query); + } + + @Override + public ResultBean breakProcess(DiffApplyTaskQuery query) { + return loanDiffService.breakProcess(query); + } +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java new file mode 100644 index 0000000000..03a077f28d --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java @@ -0,0 +1,429 @@ +package com.yxt.anrui.riskcenter.biz.loandiff; + +import cn.hutool.core.bean.BeanUtil; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import com.yxt.anrui.flowable.api.flow.FlowableFeign; +import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; +import com.yxt.anrui.flowable.api.flow2.FlowFeign; +import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign; +import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo; +import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; +import com.yxt.anrui.flowable.api.utils.ProcDefEnum; +import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +import com.yxt.anrui.riskcenter.api.loandiff.LoanDiff; +import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffQuery; +import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffVo; +import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffsDto; +import com.yxt.anrui.riskcenter.api.loandiff.flowable.*; +import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetails; +import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetailssDto; +import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplate; +import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplateQuery; +import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplateVo; +import com.yxt.anrui.riskcenter.api.loantemplate.flowable.SubmitTemplateDto; +import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyNodeVo; +import com.yxt.anrui.riskcenter.biz.loandiffdetails.LoanDiffDetailsService; +import com.yxt.anrui.riskcenter.biz.loantemplate.LoanTemplateMapper; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.PagerUtil; +import com.yxt.common.base.utils.StringUtils; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.messagecenter.api.message.MessageFeign; +import com.yxt.messagecenter.api.message.MessageFlowVo; +import com.yxt.messagecenter.api.message.MessageFlowableQuery; +import org.apache.tomcat.util.threads.ThreadPoolExecutor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.concurrent.*; +import java.util.stream.Collectors; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/13 + **/ +@Service +public class LoanDiffService extends MybatisBaseService { + + @Autowired + private FlowableFeign flowableFeign; + + @Autowired + private FlowFeign flowFeign; + + @Autowired + private FlowTaskFeign flowTaskFeign; + @Autowired + private MessageFeign messageFeign; + @Autowired + private LoanDiffDetailsService loanDiffDetailsService; + + /** + * 判断提交的流程是否被允许 + * + * @param dto + * @return + */ + private synchronized int submitBusinessData(SubmitDiffDto dto, LoanDiff loanDiff) { + int r = 0; + if (StringUtils.isBlank(dto.getSid())) { + r = 1; + } else { + if (loanDiff != null) { + String businessTaskId = loanDiff.getTaskId(); + if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) { + //新提交 + r = 1; + } else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) { + //二次提交//只有数据一致的时候才能进行下一步 + r = 2; + } + } else { + r = 3; + } + + } + return r; + } + + public ResultBean submitDiffApply(SubmitDiffDto dto) { + ResultBean rb = ResultBean.fireFail(); + LoanDiff loanDiff = fetchBySid(dto.getSid()); + int r = submitBusinessData(dto, loanDiff); + if (r == 3) { + return rb.setMsg("该申请不存在"); + } + if (r == 0) { + return rb.setMsg("操作失败!提交的数据不一致"); + } + ResultBean resultBean = updateApply(dto); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + + String businessSid = resultBean.getData(); + loanDiff = fetchBySid(businessSid); + //创建BusinessVariables实体对象 + BusinessVariables bv = new BusinessVariables(); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + //用户的部门全路径sid + bv.setOrgSidPath(loanDiff.getOrgSidPath()); + bv.setBusinessSid(businessSid); + bv.setUserSid(dto.getUserSid()); + bv.setFormVariables(variables); + if (r == 1) { + //ToDo:流程定义id + bv.setModelId(ProcDefEnum.LOANDIFFAPPLY.getProDefId()); + ResultBean voResultBean = flowFeign.startProcess(bv); + if (!voResultBean.getSuccess()) { + return rb.setMsg(voResultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = voResultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(ufVo)); + loanDiff = fetchBySid(businessSid); + //==================================添加线程 + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(2, 100, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + LoanDiff finalLoanDiff = loanDiff; + Future future1 = pool.submit(() -> { + //极光推送 + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("放款差额确认申请"); + messageFlowableQuery.setMsgContent(finalLoanDiff.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("放款差额确认"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + }); + } catch (Exception e) { + e.printStackTrace(); + } + //==================================添加线程 + return voResultBean; + } + if (r == 2) { + // ToDo:驳回到发起人后再次提交 + if (StringUtils.isBlank(dto.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + bv.setTaskId(loanDiff.getTaskId()); + bv.setTaskDefKey(loanDiff.getNodeId()); + bv.setComment("重新提交"); + bv.setInstanceId(dto.getInstanceId()); + return complete(bv); + } + return rb; + } + + private ResultBean updateApply(SubmitDiffDto dto) { + return null; + } + + public ResultBean complete(BusinessVariables bv) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = bv.getBusinessSid(); + LoanDiff loanDiff = fetchBySid(businessSid); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + bv.setFormVariables(variables); + bv.setOrgSidPath(loanDiff.getOrgSidPath()); + bv.setModelId(loanDiff.getProcDefId()); + if (bv.getTaskId().equals(loanDiff.getTaskId())) { + ResultBean resultBean = flowFeign.handleProsess(bv); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { + + } else { + //极光推送 + loanDiff = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowVo.setProcDefId(loanDiff.getProcDefId()); + messageFlowVo.setProcInsId(loanDiff.getProcInstId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("放款差额确认申请"); + messageFlowableQuery.setMsgContent(loanDiff.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("放款差额确认"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + } + return rb.success().setData(resultBean.getData()); + } else { + return rb.setMsg("操作失败!提交的数据不一致"); + } + } + + public ResultBean> getPreviousNodesForReject(DiffApplyNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + LoanDiff loanDiff = fetchBySid(query.getBusinessSid()); + bv.setModelId(loanDiff.getProcDefId()); + ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), DiffApplyNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean> getNextNodesForSubmit(DiffApplyNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + LoanDiff loanDiff = fetchBySid(query.getBusinessSid()); + bv.setModelId(loanDiff.getProcDefId()); + ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), DiffApplyNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean taskReject(DiffApplyTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = query.getBusinessSid(); + LoanDiff loanDiff = fetchBySid(businessSid); + if (loanDiff == null) { + return rb.setMsg("该申请不存在"); + } + String businessTaskId = loanDiff.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + if (StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + Map map = BeanUtil.beanToMap(ufVo); + //更新业务中的流程相关的参数 + updateFlowFiled(map); + //极光推送 + loanDiff = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + String procId = loanDiff.getProcInstId(); + messageFlowVo.setProcInsId(procId); + messageFlowVo.setProcDefId(loanDiff.getProcDefId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("放款差额确认申请"); + ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); + String nextName = listResultBean.getData().get(0).getName_(); + String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); + if ("发起申请".equals(nextName)) { + messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); + } else { + messageFlowableQuery.setMsgContent(loanDiff.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + + messageFlowableQuery.setMsgTitle("放款差额确认"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + return rb.success(); + } + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + public ResultBean revokeProcess(DiffApplyTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + LoanDiff loanDiff = fetchBySid(query.getBusinessSid()); + String businessTaskId = loanDiff.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.revokeProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + return rb.success().setData(resultBean.getData()); + } + } + return rb.setMsg("操作失败,提交的数据不一致!"); + } + + public ResultBean breakProcess(DiffApplyTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + if (StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + LoanDiff loanDiff = fetchBySid(query.getBusinessSid()); + String businessTaskId = loanDiff.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (query.getUserSid().equals(loanDiff.getCreateBySid())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + return rb.success().setData(resultBean.getData()); + } else { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + return rb.success().setData(resultBean.getData()); + } + } + + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + /** + * 更新流程的状态 + * + * @param map + * @return + */ + private int updateFlowFiled(Map map) { + return baseMapper.updateFlowFiled(map); + } + + public PagerVo listPageVo(PagerQuery pq) { + LoanDiffQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (query != null) { + //分公司 + if (StringUtils.isNotBlank(query.getUseOrgName())) { + qw.like("ld.useOrgName", query.getUseOrgName()); + } + //申请部门 + if (StringUtils.isNotBlank(query.getCreateDept())) { + qw.like("ld.createDept", query.getCreateDept()); + } + if (StringUtils.isNotBlank(query.getCreateByName())) { + qw.like("ld.createByName", query.getCreateByName()); + } + //数据授权 + + + //申请日期开始时间 + String createTimeStart = query.getCreateTimeStart(); + //申请日期结束时间 + String createTimeEnd = query.getCreateTimeEnd(); + qw.apply(StringUtils.isNotBlank(createTimeStart), "date_format (ld.createTime,'%Y-%m-%d') >= date_format('" + createTimeStart + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(createTimeEnd), "date_format (ld.createTime,'%Y-%m-%d') <= date_format('" + createTimeEnd + "','%Y-%m-%d')" + ); + + } + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.listPageVo(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public ResultBean saveDiff(LoanDiffsDto dto) { + ResultBean rb = ResultBean.fireFail(); + LoanDiff loanDiff = new LoanDiff(); + BeanUtil.copyProperties(dto, loanDiff); + List loanDiffDetailssDtos = dto.getLoanDiffDetailssDtos(); + loanDiffDetailssDtos.removeAll(Collections.singleton(null)); + if (!loanDiffDetailssDtos.isEmpty()) { + for (int i = 0; i < loanDiffDetailssDtos.size(); i++) { + LoanDiffDetailssDto loanDiffDetailssDto = loanDiffDetailssDtos.get(i); + LoanDiffDetails loanDiffDetails = new LoanDiffDetails(); + BeanUtil.copyProperties(loanDiffDetailssDto, loanDiffDetails); + loanDiffDetailsService.insert(loanDiffDetails); + } + } + baseMapper.insert(loanDiff); + return rb.success(); + } +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.java new file mode 100644 index 0000000000..80fb6ede34 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.java @@ -0,0 +1,14 @@ +package com.yxt.anrui.riskcenter.biz.loandiffdetails; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetails; +import org.apache.ibatis.annotations.Mapper; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +@Mapper +public interface LoanDiffDetailsMapper extends BaseMapper { +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.xml new file mode 100644 index 0000000000..b8f8f47955 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsRest.java new file mode 100644 index 0000000000..fd9e9e3257 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsRest.java @@ -0,0 +1,9 @@ +package com.yxt.anrui.riskcenter.biz.loandiffdetails; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +public class LoanDiffDetailsRest { +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsService.java new file mode 100644 index 0000000000..a8c83a0caa --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsService.java @@ -0,0 +1,16 @@ +package com.yxt.anrui.riskcenter.biz.loandiffdetails; + +import com.yxt.anrui.riskcenter.api.loandiff.LoanDiff; +import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetails; +import com.yxt.anrui.riskcenter.biz.loandiff.LoanDiffMapper; +import com.yxt.common.base.service.MybatisBaseService; +import org.springframework.stereotype.Service; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +@Service +public class LoanDiffDetailsService extends MybatisBaseService { +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateService.java index 20a2877ded..173747346c 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateService.java @@ -16,6 +16,7 @@ import com.yxt.anrui.buscenter.api.busvehicledatahandover.BusDataListPdfVo; import com.yxt.anrui.buscenter.api.busvehicledatahandover.BusVehicleDataHandoverPdfVo; import com.yxt.anrui.flowable.api.flow.FlowableFeign; import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; +import com.yxt.anrui.flowable.api.flow2.FlowFeign; import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign; import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo; import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; @@ -99,6 +100,8 @@ public class LoanTemplateService extends MybatisBaseService voResultBean = flowableFeign.startProcess(bv); + ResultBean voResultBean = flowFeign.startProcess(bv); if (!voResultBean.getSuccess()) { return rb.setMsg(voResultBean.getMsg()); } @@ -399,7 +402,7 @@ public class LoanTemplateService extends MybatisBaseService resultBean = flowableFeign.handleProsess(bv); + ResultBean resultBean = flowFeign.handleProsess(bv); if (!resultBean.getSuccess()) { return rb.setMsg(resultBean.getMsg()); } @@ -911,7 +914,7 @@ public class LoanTemplateService extends MybatisBaseService templateQuotationCreatePdf(LoanTemplateQuotationQuery query) { ResultBean rb = ResultBean.fireFail(); - // String template = "/template/"; + // String template = "/template/"; String s = templateQuotation(query); String filePath = s.substring(docPdfComponent.getUploadTemplateUrl().length()); return rb.success().setData(filePath); @@ -1009,13 +1012,13 @@ public class LoanTemplateService extends MybatisBaseService qw = new QueryWrapper<>(); if (query != null) { - if(StringUtils.isNotBlank(query.getOrgPath())){ + if (StringUtils.isNotBlank(query.getOrgPath())) { String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(query.getOrgPath()).getData(); - qw.eq("lfp.useOrgSid",useOrgSid); + qw.eq("lfp.useOrgSid", useOrgSid); } // qw.eq("lfp.orgSidPath", query.getOrgPath()); qw.eq("lfp.nodeState", "已办结"); - qw.eq("lfp.useState",0); + qw.eq("lfp.useState", 0); } IPage page = PagerUtil.queryToPage(pagerQuery); IPage pagging = baseMapper.getCustomizedList(page, qw, query.getName()); From 1f5510c35c68db415fe17621a5782b52f917a65d Mon Sep 17 00:00:00 2001 From: yunuo970428 <405378304@qq.com> Date: Tue, 14 Nov 2023 14:38:41 +0800 Subject: [PATCH 02/16] =?UTF-8?q?=E5=AE=8C=E5=96=84=E8=B5=84=E6=96=B9?= =?UTF-8?q?=E4=BF=A1=E5=AE=A1=E7=BB=88=E5=AE=A1=E7=BB=93=E6=9E=9C--?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=A2=9E=E5=8A=A0=E6=98=AF=E5=90=A6=E5=85=AC?= =?UTF-8?q?=E5=8F=B8=E5=BC=80=E7=A5=A8=E7=9A=84=E9=80=89=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/managementcreditaudit/managementcreditaudit.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/anrui-riskcenter-ui/src/views/managementcreditaudit/managementcreditaudit.vue b/anrui-riskcenter-ui/src/views/managementcreditaudit/managementcreditaudit.vue index f5f715346f..140b90f837 100644 --- a/anrui-riskcenter-ui/src/views/managementcreditaudit/managementcreditaudit.vue +++ b/anrui-riskcenter-ui/src/views/managementcreditaudit/managementcreditaudit.vue @@ -306,6 +306,7 @@ export default { capCarefulDate: row.capCarefulDate, capCarefulResult: row.capCarefulResult, loanContractSid: row.loanContractSid, + isCompInvoic: row.isCompInvoic, sid: row.sid } req.save(params).then((resp) => { From bab1603eb85aa7f5a8e36da2ddbd50b253a49ae9 Mon Sep 17 00:00:00 2001 From: yunuo970428 <405378304@qq.com> Date: Tue, 14 Nov 2023 15:02:37 +0800 Subject: [PATCH 03/16] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=AE=B6=E8=AE=BF?= =?UTF-8?q?=E5=87=86=E5=A4=87--=E7=94=9F=E6=88=90=E5=90=88=E5=90=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../homevisitpreparation.js | 18 +- .../homevisitpreparationAdd.vue | 582 ++++++++++++++++++ .../homevisittobeprepared.vue | 42 +- 3 files changed, 605 insertions(+), 37 deletions(-) create mode 100644 anrui-riskcenter-ui/src/views/homevisitpreparation/homevisitpreparationAdd.vue diff --git a/anrui-riskcenter-ui/src/api/homevisitpreparation/homevisitpreparation.js b/anrui-riskcenter-ui/src/api/homevisitpreparation/homevisitpreparation.js index 03e7472616..8a9a9bf561 100644 --- a/anrui-riskcenter-ui/src/api/homevisitpreparation/homevisitpreparation.js +++ b/anrui-riskcenter-ui/src/api/homevisitpreparation/homevisitpreparation.js @@ -17,18 +17,34 @@ export default { params: data }) }, + fetchDetailsBySid: function(data) { + return request({ + url: '/riskcenter/v1/loanhomevisitinvestigate/getHomeVisitCustomerInfo', + method: 'get', + params: data + }) + }, initConSetUp: function(data) { return request({ url: '/riskcenter/v1/loanhomevisitprep/initConSetUp/' + data, method: 'get' }) }, + // 生成合同设置 saveLoanCon: function(data) { return request({ url: '/riskcenter/v1/loanhomevisitprep/saveLoanCon', method: 'post', params: data }) + }, + // 保存 + saveOrUpdate: function(data) { + return request({ + url: '/riskcenter/v1/loanhomevisitinvestigate/saveHomeVisitCustomerInfo', + method: 'post', + data: data, + headers: { 'Content-Type': 'application/json' } + }) } - } diff --git a/anrui-riskcenter-ui/src/views/homevisitpreparation/homevisitpreparationAdd.vue b/anrui-riskcenter-ui/src/views/homevisitpreparation/homevisitpreparationAdd.vue new file mode 100644 index 0000000000..abaa71cd71 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/homevisitpreparation/homevisitpreparationAdd.vue @@ -0,0 +1,582 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/homevisitpreparation/homevisittobeprepared.vue b/anrui-riskcenter-ui/src/views/homevisitpreparation/homevisittobeprepared.vue index d613e52de2..793ff9d8f9 100644 --- a/anrui-riskcenter-ui/src/views/homevisitpreparation/homevisittobeprepared.vue +++ b/anrui-riskcenter-ui/src/views/homevisitpreparation/homevisittobeprepared.vue @@ -124,19 +124,10 @@ + + - - - - 一车一合同 - 一贷款人一合同 - - - 确定 - 取消 - - @@ -145,6 +136,7 @@ import req from '@/api/homevisitpreparation/homevisitpreparation' import Pagination from '@/components/pagination' import pageye from '@/components/pagination/pageye' import ButtonBar from '@/components/ButtonBar' +import homevisitpreparationAdd from './homevisitpreparationAdd' import thehomevisitisready from './thehomevisitisready' import saleOrder from '@/components/publicPage/salesOrder' @@ -154,6 +146,7 @@ export default { Pagination, pageye, ButtonBar, + homevisitpreparationAdd, thehomevisitisready, saleOrder }, @@ -161,7 +154,6 @@ export default { return { viewState: 1, btndisabled: false, - dialogVisible: false, btnList: [ { type: 'primary', @@ -212,7 +204,6 @@ export default { size: 10, total: 0 }, - contract: '', rules: {} } }, @@ -293,33 +284,12 @@ export default { }, toContract() { if (this.sids.length === 1) { - req.initConSetUp(this.sids[0]).then((res) => { - if (res.data === '003') { - this.dialogVisible = true - this.contract = '' - } else { - this.saveLoanCon(res.data) - } - }) + this.viewState = 4 + this.$refs['divAdd'].showInfo(this.sids[0]) } else { this.$message({ showClose: true, type: 'error', message: '请选择一条记录进行操作' }) } }, - handleConfirm() { - if (this.contract !== '') { - this.dialogVisible = false - this.saveLoanCon(this.contract) - } else { - this.$message({ showClose: true, type: 'error', message: '请选择相应的生成合同设置方式' }) - } - }, - saveLoanCon(val) { - req.saveLoanCon({ sid: this.sids[0], conSetUpKey: val }).then((res) => { - if (res.success) { - this.$message({ showClose: true, type: 'success', message: '操作成功'}) - } - }) - }, handleLook(row) { this.viewState = 3 this.$refs['divSale'].showInfo(row.saleOrderSid) From 9318f31fc1c62e56ffd9ee6bedba4d02ec4fd272 Mon Sep 17 00:00:00 2001 From: yunuo970428 <405378304@qq.com> Date: Tue, 14 Nov 2023 15:38:32 +0800 Subject: [PATCH 04/16] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=85=AC=E5=8F=B8?= =?UTF-8?q?=E8=87=AA=E8=90=A5=E9=9D=9E=E6=8B=85=E4=BF=9D=E8=BF=9B=E5=BA=A6?= =?UTF-8?q?=E7=BB=B4=E6=8A=A4--=E5=A2=9E=E5=8A=A0=E6=8C=82=E8=BD=A6?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E5=85=AC=E5=8F=B8=E5=BC=80=E7=A5=A8=E9=80=89?= =?UTF-8?q?=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../unsecuredbusinessAdd.vue | 19 +++++++++++++++++-- .../unsecuredbusinessInfo.vue | 14 ++++++++++++-- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/anrui-riskcenter-ui/src/views/unsecuredbusiness/unsecuredbusinessAdd.vue b/anrui-riskcenter-ui/src/views/unsecuredbusiness/unsecuredbusinessAdd.vue index e37d6736e9..de3a5ea292 100644 --- a/anrui-riskcenter-ui/src/views/unsecuredbusiness/unsecuredbusinessAdd.vue +++ b/anrui-riskcenter-ui/src/views/unsecuredbusiness/unsecuredbusinessAdd.vue @@ -36,7 +36,7 @@ - +
资方信审终审结果
@@ -44,7 +44,18 @@
- + +
+
挂车是否公司开票
+ + + + + + +
+
+
信审终审日期
@@ -147,6 +158,8 @@ export default { loanReviewDate: '', isLoan: '', isLoanDate: '', + isCompInvoic: '', + isHavTrailer: false, homeVisitFiles: [], creditReviewFiles: [], loanReviewFiles: [] @@ -282,6 +295,8 @@ export default { loanReviewDate: '', isLoan: '', isLoanDate: '', + isCompInvoic: '', + isHavTrailer: false, homeVisitFiles: [], creditReviewFiles: [], loanReviewFiles: [] diff --git a/anrui-riskcenter-ui/src/views/unsecuredbusiness/unsecuredbusinessInfo.vue b/anrui-riskcenter-ui/src/views/unsecuredbusiness/unsecuredbusinessInfo.vue index 4c66b4cfb4..bba573af64 100644 --- a/anrui-riskcenter-ui/src/views/unsecuredbusiness/unsecuredbusinessInfo.vue +++ b/anrui-riskcenter-ui/src/views/unsecuredbusiness/unsecuredbusinessInfo.vue @@ -29,11 +29,17 @@
- +
资方信审终审结果
{{ formobj.creditReview }}
- + +
+
挂车是否公司开票
+ {{ formobj.isCompInvoic == '0' ? '是' : '否' }} +
+
+
信审终审日期
{{ formobj.creditReviewDate }}
@@ -112,6 +118,8 @@ export default { loanReviewDate: '', isLoan: '', isLoanDate: '', + isCompInvoic: '', + isHavTrailer: false, homeVisitFiles: [], creditReviewFiles: [], loanReviewFiles: [] @@ -143,6 +151,8 @@ export default { loanReviewDate: '', isLoan: '', isLoanDate: '', + isCompInvoic: '', + isHavTrailer: false, homeVisitFiles: [], creditReviewFiles: [], loanReviewFiles: [] From 4dcc398270292ffbd79b55a62e10a1390baea6c1 Mon Sep 17 00:00:00 2001 From: yunuo970428 <405378304@qq.com> Date: Tue, 14 Nov 2023 15:49:13 +0800 Subject: [PATCH 05/16] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=85=AC=E5=8F=B8?= =?UTF-8?q?=E8=87=AA=E8=90=A5=E9=9D=9E=E6=8B=85=E4=BF=9D=E8=BF=9B=E5=BA=A6?= =?UTF-8?q?=E7=BB=B4=E6=8A=A4--=E5=A2=9E=E5=8A=A0=E6=8C=82=E8=BD=A6?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E5=85=AC=E5=8F=B8=E5=BC=80=E7=A5=A8=E9=80=89?= =?UTF-8?q?=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/unsecuredbusiness/unsecuredbusinessAdd.vue | 2 +- .../src/views/unsecuredbusiness/unsecuredbusinessInfo.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/anrui-riskcenter-ui/src/views/unsecuredbusiness/unsecuredbusinessAdd.vue b/anrui-riskcenter-ui/src/views/unsecuredbusiness/unsecuredbusinessAdd.vue index de3a5ea292..5349e9b36d 100644 --- a/anrui-riskcenter-ui/src/views/unsecuredbusiness/unsecuredbusinessAdd.vue +++ b/anrui-riskcenter-ui/src/views/unsecuredbusiness/unsecuredbusinessAdd.vue @@ -45,7 +45,7 @@
-
+
挂车是否公司开票
diff --git a/anrui-riskcenter-ui/src/views/unsecuredbusiness/unsecuredbusinessInfo.vue b/anrui-riskcenter-ui/src/views/unsecuredbusiness/unsecuredbusinessInfo.vue index bba573af64..df6e66f50c 100644 --- a/anrui-riskcenter-ui/src/views/unsecuredbusiness/unsecuredbusinessInfo.vue +++ b/anrui-riskcenter-ui/src/views/unsecuredbusiness/unsecuredbusinessInfo.vue @@ -34,7 +34,7 @@ {{ formobj.creditReview }} -
+
挂车是否公司开票
{{ formobj.isCompInvoic == '0' ? '是' : '否' }}
From a21f47f048e293f7a524f3298d333e7d01c2a562 Mon Sep 17 00:00:00 2001 From: fanzongzhe <285169773@qq.com> Date: Tue, 14 Nov 2023 15:52:39 +0800 Subject: [PATCH 06/16] =?UTF-8?q?=E5=88=92=E6=89=A3=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E3=80=81=E8=B5=84=E6=96=B9=E4=BF=A1=E5=AE=A1?= =?UTF-8?q?=E7=BB=88=E5=AE=A1=E9=80=9A=E8=BF=87=E6=8E=A8=E9=80=81=E5=85=B6?= =?UTF-8?q?=E4=BB=96=E5=BA=94=E6=94=B6=E5=8D=95=E5=A2=9E=E5=8A=A0=E6=8C=82?= =?UTF-8?q?=E8=BD=A6=E5=BE=85=E9=80=80=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anrui/base/common/enums/BillTypeEnum.java | 3 +- .../LoanOtherReceivablePush.java | 1 + .../BusSalesOrderLoancontractService.java | 12 + .../capitalcreditresult/CwSystemYT.java | 5 +- .../anrui/flowable/api/utils/ProcDefEnum.java | 1 + .../api/loanbuckleapply/LoanBuckleApply.java | 2 +- .../loanbuckleapply/LoanBuckleApplyDto.java | 28 + .../loanbuckleapply/LoanBuckleApplyFeign.java | 71 +- .../LoanBuckleApplyFeignFallback.java | 79 +- .../loanbuckleapply/LoanBuckleApplyInit.java | 33 + .../loanbuckleapply/LoanBuckleApplyQuery.java | 31 + .../loanbuckleapply/LoanBuckleApplyVo.java | 36 + .../LoanBuckleHistoryRecord.java | 44 + .../app/AppBuckleDetailsVo.java | 23 + .../api/loanbuckleapply/app/AppRecordVo.java | 23 + .../flow/BuckleCompleteDto.java | 41 + .../flow/BuckleDelegateQuery.java | 26 + .../flow/BuckleGetNodeQuery.java | 26 + .../loanbuckleapply/flow/BuckleGetNodeVo.java | 25 + .../loanbuckleapply/flow/BuckleTaskQuery.java | 56 ++ .../loanbuckleapply/flow/SubmitBuckleDto.java | 21 + .../LoanNoGuaranteeCreditReview.java | 3 + .../LoanNoGuaranteeCreditReviewDetailsVo.java | 4 + .../LoanNoGuaranteeCreditReviewDto.java | 2 + .../LoanRepaymentHistoryFeign.java | 4 + .../LoanRepaymentHistoryFeignFallback.java | 5 + .../LoanRepaymentHistoryRecordVo.java | 38 + .../LoanBuckleApplyMapper.java | 6 + .../loanbuckleapply/LoanBuckleApplyMapper.xml | 37 + .../loanbuckleapply/LoanBuckleApplyRest.java | 90 +- .../LoanBuckleApplyService.java | 856 +++++++++++++++++- .../LoanBuckleApplyRecordMapper.java | 6 + .../LoanBuckleApplyRecordMapper.xml | 11 + .../LoanBuckleApplyRecordService.java | 9 + .../LoanCapitalCreditResultService.java | 16 +- .../LoanNoGuaranteeCreditReviewService.java | 33 + .../LoanRepaymentHistoryMapper.java | 3 + .../LoanRepaymentHistoryMapper.xml | 21 + .../LoanRepaymentHistoryRest.java | 5 + .../LoanRepaymentHistoryService.java | 6 + .../api/risk/buckle/BuckleDetailsVo.java | 24 + .../terminal/api/risk/buckle/BuckleFeign.java | 71 ++ .../api/risk/buckle/BuckleFeignFallback.java | 52 ++ .../terminal/api/risk/buckle/RecordVo.java | 23 + .../buckle/flow/AppBuckleDelegateQuery.java | 25 + .../risk/buckle/flow/AppBuckleTaskQuery.java | 46 + .../risk/buckle/flow/BuckleFlowableQuery.java | 21 + .../risk/buckle/flow/CompleteBuckleDto.java | 35 + .../terminal/biz/risk/buckle/BuckleRest.java | 62 ++ .../biz/risk/buckle/BuckleService.java | 163 ++++ 50 files changed, 2227 insertions(+), 37 deletions(-) create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyDto.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyInit.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyQuery.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyVo.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleHistoryRecord.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/app/AppBuckleDetailsVo.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/app/AppRecordVo.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/flow/BuckleCompleteDto.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/flow/BuckleDelegateQuery.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/flow/BuckleGetNodeQuery.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/flow/BuckleGetNodeVo.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/flow/BuckleTaskQuery.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/flow/SubmitBuckleDto.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryRecordVo.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/BuckleDetailsVo.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/BuckleFeign.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/BuckleFeignFallback.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/RecordVo.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/flow/AppBuckleDelegateQuery.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/flow/AppBuckleTaskQuery.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/flow/BuckleFlowableQuery.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/flow/CompleteBuckleDto.java create mode 100644 anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/buckle/BuckleRest.java create mode 100644 anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/buckle/BuckleService.java diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/BillTypeEnum.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/BillTypeEnum.java index b068648ebc..5f7e929326 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/BillTypeEnum.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/BillTypeEnum.java @@ -34,7 +34,8 @@ public enum BillTypeEnum { GCCKSQ("GCCKSQ", "挂车出库申请"), XXTHS("XXTHS", "销售退货单"), JCZLQRD("JCZLQRD", "交车资料确认单"), - JCECQRD("JCECQRD", "交车资料二次确认单"); + JCECQRD("JCECQRD", "交车资料二次确认单"), + HKSQ("HKSQ", "划扣申请单据编号"); private String billType; diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/LoanOtherReceivablePush.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/LoanOtherReceivablePush.java index 283aec2508..b915532e8e 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/LoanOtherReceivablePush.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/LoanOtherReceivablePush.java @@ -14,4 +14,5 @@ public class LoanOtherReceivablePush { private String borrowerSid; @ApiModelProperty("销售订单sid") private String saleOrderSid; + private String isCompInvoic; } diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java index 77a39d5c6e..9be8628472 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java @@ -416,6 +416,18 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService files = new ArrayList<>(); + private List records = new ArrayList<>(); +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyFeign.java index cf48fae1a4..1a4dc042c9 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyFeign.java @@ -1,7 +1,7 @@ package com.yxt.anrui.riskcenter.api.loanbuckleapply; -import com.yxt.anrui.riskcenter.api.loancustomerrecord.*; -import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.*; +import com.yxt.anrui.riskcenter.api.loanbuckleapply.app.AppBuckleDetailsVo; +import com.yxt.anrui.riskcenter.api.loanbuckleapply.flow.*; import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.*; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; @@ -31,5 +31,72 @@ import java.util.List; public interface LoanBuckleApplyFeign { + @ApiOperation("根据条件分页查询数据的列表") + @PostMapping("/listPage") + public ResultBean> listPage(@RequestBody PagerQuery pq); + + @ApiOperation("新增初始化") + @GetMapping("/buckleInit") + @ResponseBody + public ResultBean buckleInit(@RequestBody String[] sids); + + @ApiOperation("保存修改") + @PostMapping("/saveBuckle") + @ResponseBody + public ResultBean saveBuckle(@RequestBody LoanBuckleApplyDto dto); + + @ApiOperation("详情查看") + @GetMapping("/buckleDetails") + @ResponseBody + public ResultBean buckleDetails(@RequestParam("sid") String sid); + + @ApiOperation("批量删除") + @DeleteMapping("/deleteBySids") + @ResponseBody + public ResultBean deleteBySids(@RequestBody String[] sids); + + //------------------------------流程接口---------------------------------------------- + + @ApiOperation("提交") + @PostMapping("/submit") + public ResultBean submitRecordApplication(@RequestBody @Valid SubmitBuckleDto dto); + + @ApiOperation(value = "办理(同意)") + @PostMapping("/complete") + public ResultBean complete(@Valid @RequestBody BuckleCompleteDto dto); + + @ApiOperation(value = "撤回流程") + @PostMapping(value = "/revokeProcess") + public ResultBean revokeProcess(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody BuckleTaskQuery query); + + @ApiOperation(value = "驳回任务") + @PostMapping(value = "/reject") + public ResultBean taskReject(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody BuckleTaskQuery query); + + @ApiOperation(value = "终止任务") + @PostMapping(value = "/breakProcess") + public ResultBean breakProcess(@RequestBody BuckleTaskQuery 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 BuckleGetNodeQuery query); + + @ApiOperation(value = "获取上一个环节") + @GetMapping(value = "/getPreviousNodesForReject") + ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap BuckleGetNodeQuery query); + + @ApiOperation(value = "加签") + @PostMapping(value = "/delegate") + public ResultBean delegate(@RequestBody BuckleDelegateQuery query); + + //-------------------------app------------------------ + @ApiOperation("划扣申请") + @GetMapping("/appDetail/{sid}") + @ResponseBody + ResultBean appDetail(@PathVariable("sid") String sid); } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyFeignFallback.java index 45f13442a0..ca32f5a2c5 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyFeignFallback.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyFeignFallback.java @@ -1,9 +1,8 @@ package com.yxt.anrui.riskcenter.api.loanbuckleapply; -import com.yxt.anrui.riskcenter.api.loancustomerrecord.*; -import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.*; -import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.*; +import com.yxt.anrui.riskcenter.api.loanbuckleapply.app.AppBuckleDetailsVo; +import com.yxt.anrui.riskcenter.api.loanbuckleapply.flow.*; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -16,4 +15,78 @@ import java.util.List; public class LoanBuckleApplyFeignFallback implements LoanBuckleApplyFeign { + @Override + public ResultBean> listPage(PagerQuery pq) { + return null; + } + + @Override + public ResultBean buckleInit(String[] sids) { + return null; + } + + @Override + public ResultBean saveBuckle(LoanBuckleApplyDto dto) { + return null; + } + + @Override + public ResultBean buckleDetails(String sid) { + return null; + } + + @Override + public ResultBean deleteBySids(String[] sids) { + return null; + } + + @Override + public ResultBean submitRecordApplication(SubmitBuckleDto dto) { + return null; + } + + @Override + public ResultBean complete(BuckleCompleteDto dto) { + return null; + } + + @Override + public ResultBean revokeProcess(BuckleTaskQuery query) { + return null; + } + + @Override + public ResultBean taskReject(BuckleTaskQuery query) { + return null; + } + + @Override + public ResultBean breakProcess(BuckleTaskQuery query) { + return null; + } + + @Override + public ResultBean flowRecord(String procInsId) { + return null; + } + + @Override + public ResultBean> getNextNodesForSubmit(BuckleGetNodeQuery query) { + return null; + } + + @Override + public ResultBean> getPreviousNodesForReject(BuckleGetNodeQuery query) { + return null; + } + + @Override + public ResultBean delegate(BuckleDelegateQuery query) { + return null; + } + + @Override + public ResultBean appDetail(String sid) { + return null; + } } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyInit.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyInit.java new file mode 100644 index 0000000000..24d09501f2 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyInit.java @@ -0,0 +1,33 @@ +package com.yxt.anrui.riskcenter.api.loanbuckleapply; + +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 13:43 + */ +@Data +public class LoanBuckleApplyInit implements Vo { + + private String sid; + private String userSid; + private String dept; + private String deptSid; + private String applyName; + private String applyDate; + private String remarks; + private String orgPath; + @ApiModelProperty("任务id") + private String taskId; + @ApiModelProperty("实例id") + private String instanceId; + private List files = new ArrayList<>(); + private List records = new ArrayList<>(); + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyQuery.java new file mode 100644 index 0000000000..6b56fb3ee9 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyQuery.java @@ -0,0 +1,31 @@ +package com.yxt.anrui.riskcenter.api.loanbuckleapply; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/11/13 13:32 + */ +@Data +public class LoanBuckleApplyQuery implements Query { + + @ApiModelProperty("组织全路径") + private String orgPath; + @ApiModelProperty("菜单sid") + private String menuSid; + @ApiModelProperty("菜单url") + private String menuUrl; + @ApiModelProperty("用户sid") + private String userSid; + @ApiModelProperty("分公司") + private String company; // 使用组织名称 + @ApiModelProperty("申请人") + private String applyName; // 申请人 + private String billNo; + private String applyStartDate; + private String applyEndDate; + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyVo.java new file mode 100644 index 0000000000..71396c25cc --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyVo.java @@ -0,0 +1,36 @@ +package com.yxt.anrui.riskcenter.api.loanbuckleapply; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/11/13 13:32 + */ +@Data +public class LoanBuckleApplyVo implements Vo { + + private String sid; + @ApiModelProperty("流程状态") + private String nodeState; // 流程状态 + @ApiModelProperty("分公司") + private String company; // 使用组织名称 + @ApiModelProperty("申请人") + private String applyName; // 申请人 + @ApiModelProperty("申请部门") + private String dept; + @ApiModelProperty("申请日期") + private String applyDate; // 申请日期 + @ApiModelProperty("申请编号") + private String billNo; + @ApiModelProperty("流程定义的id") + private String procDefId; // 流程定义的id + @ApiModelProperty("流程实例的sid") + private String procInstId; // 流程实例的sid + @ApiModelProperty("备注") + private String remarks; // 备注 + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleHistoryRecord.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleHistoryRecord.java new file mode 100644 index 0000000000..7166f09f7a --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleHistoryRecord.java @@ -0,0 +1,44 @@ +package com.yxt.anrui.riskcenter.api.loanbuckleapply; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author Administrator + * @description + * @date 2023/11/13 13:45 + */ +@Data +public class LoanBuckleHistoryRecord { + + private String recordSid; + private String loanContractNo; + private String vinNo; + @ApiModelProperty("资方名称") + private String bankName; + @ApiModelProperty("资方合同") + private String bankContractNo; + @ApiModelProperty("客户") + private String customer; + @ApiModelProperty("借款人名称") + private String borrowerName; + @ApiModelProperty("还款方式") + private String returnWay; + @ApiModelProperty("期数") + private String period; + @ApiModelProperty("应还日期") + private String dueDate; + @ApiModelProperty("应还金额") + private String dueMoney; + @ApiModelProperty("实还金额") + private String actualMoney; + @ApiModelProperty("本期未还金额") + private String outstandingMoney; + @ApiModelProperty("实还日期") + private String actualDate; + +} + diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/app/AppBuckleDetailsVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/app/AppBuckleDetailsVo.java new file mode 100644 index 0000000000..6b282a6630 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/app/AppBuckleDetailsVo.java @@ -0,0 +1,23 @@ +package com.yxt.anrui.riskcenter.api.loanbuckleapply.app; + +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author Administrator + * @description + * @date 2023/11/13 15:49 + */ +@Data +public class AppBuckleDetailsVo { + private String sid; + private String publishInfo; + private String time; + private String remarks; + private List files = new ArrayList<>(); + private String taskId; + private String procInsId; + private List records = new ArrayList<>(); +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/app/AppRecordVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/app/AppRecordVo.java new file mode 100644 index 0000000000..2a92f8ac3a --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/app/AppRecordVo.java @@ -0,0 +1,23 @@ +package com.yxt.anrui.riskcenter.api.loanbuckleapply.app; + +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/11/13 15:49 + */ +@Data +public class AppRecordVo { + private String contractId; + private String instalments; + private String vin; + private String type; + private String zf; + private String zfNo; + private String cusName; + private String loanName; + private String repaymentDate; + private String info1; + private String info2; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/flow/BuckleCompleteDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/flow/BuckleCompleteDto.java new file mode 100644 index 0000000000..0847a29b41 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/flow/BuckleCompleteDto.java @@ -0,0 +1,41 @@ +package com.yxt.anrui.riskcenter.api.loanbuckleapply.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 BuckleCompleteDto 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/loanbuckleapply/flow/BuckleDelegateQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/flow/BuckleDelegateQuery.java new file mode 100644 index 0000000000..080ec02b24 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/flow/BuckleDelegateQuery.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.riskcenter.api.loanbuckleapply.flow; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/9/28 9:28 + */ +@Data +public class BuckleDelegateQuery { + @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/loanbuckleapply/flow/BuckleGetNodeQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/flow/BuckleGetNodeQuery.java new file mode 100644 index 0000000000..63e3966d09 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/flow/BuckleGetNodeQuery.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.riskcenter.api.loanbuckleapply.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 BuckleGetNodeQuery 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/loanbuckleapply/flow/BuckleGetNodeVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/flow/BuckleGetNodeVo.java new file mode 100644 index 0000000000..26e9980aeb --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/flow/BuckleGetNodeVo.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.riskcenter.api.loanbuckleapply.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 BuckleGetNodeVo 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/loanbuckleapply/flow/BuckleTaskQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/flow/BuckleTaskQuery.java new file mode 100644 index 0000000000..be1d414d8c --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/flow/BuckleTaskQuery.java @@ -0,0 +1,56 @@ +package com.yxt.anrui.riskcenter.api.loanbuckleapply.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 BuckleTaskQuery 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/loanbuckleapply/flow/SubmitBuckleDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/flow/SubmitBuckleDto.java new file mode 100644 index 0000000000..fe65af84ef --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/flow/SubmitBuckleDto.java @@ -0,0 +1,21 @@ +package com.yxt.anrui.riskcenter.api.loanbuckleapply.flow; + +import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApplyDto; +import com.yxt.anrui.riskcenter.api.loancustomerrecord.LoanCustomerRecordDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/6/27 13:38 + * @Description + */ +@Data +public class SubmitBuckleDto extends LoanBuckleApplyDto { + private static final long serialVersionUID = 378585162071125756L; + @ApiModelProperty("流程实例id") + private String instanceId; + @ApiModelProperty("任务id") + private String taskId; + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReview.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReview.java index c51d4399fa..d9b9b1e856 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReview.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReview.java @@ -39,4 +39,7 @@ public class LoanNoGuaranteeCreditReview extends BaseEntity { private String isLoan; @ApiModelProperty("放款日期") private String isLoanDate; + @ApiModelProperty("是否公司开票(0是,1否)") + private String isCompInvoic; + } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewDetailsVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewDetailsVo.java index 775f8ec443..c55596f3ea 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewDetailsVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewDetailsVo.java @@ -47,4 +47,8 @@ public class LoanNoGuaranteeCreditReviewDetailsVo implements Vo { private List creditReviewFiles = new ArrayList<>(); @ApiModelProperty("放款审核结果截图") private List loanReviewFiles = new ArrayList<>(); + @ApiModelProperty("是否有挂车") + private Boolean isHavTrailer = false; + @ApiModelProperty("是否公司开票(0是,1否)") + private String isCompInvoic; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewDto.java index 93b8fed92c..f0686cc667 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewDto.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewDto.java @@ -48,5 +48,7 @@ public class LoanNoGuaranteeCreditReviewDto implements Dto { private List creditReviewFiles = new ArrayList<>(); @ApiModelProperty("放款审核结果截图") private List loanReviewFiles = new ArrayList<>(); + @ApiModelProperty("是否公司开票(0是,1否)") + private String isCompInvoic; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeign.java index 16f5015795..5477dfe31f 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeign.java @@ -49,6 +49,10 @@ public interface LoanRepaymentHistoryFeign { @ResponseBody public ResultBean updateRecordInfo(@RequestParam("sid") String sid); + @ApiOperation("划扣新增回显") + @GetMapping("/buckleInfo") + @ResponseBody + public ResultBean buckleInfo(@RequestParam("sid") String sid); @ApiOperation("删除还款记录") @DeleteMapping("/deleteHistory") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeignFallback.java index a82b9accc6..078cfab674 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeignFallback.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeignFallback.java @@ -40,6 +40,11 @@ public class LoanRepaymentHistoryFeignFallback implements LoanRepaymentHistoryFe return null; } + @Override + public ResultBean buckleInfo(String sid) { + return null; + } + @Override public ResultBean deleteHistory(String scheduleSid) { return null; diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryRecordVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryRecordVo.java new file mode 100644 index 0000000000..d883f9e41b --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryRecordVo.java @@ -0,0 +1,38 @@ +package com.yxt.anrui.riskcenter.api.loanrepaymenthistory; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/11/13 14:02 + */ +@Data +public class LoanRepaymentHistoryRecordVo { + private String recordSid; + private String loanContractNo; + private String vinNo; + @ApiModelProperty("资方名称") + private String bankName; + @ApiModelProperty("资方合同") + private String bankContractNo; + @ApiModelProperty("客户") + private String customer; + @ApiModelProperty("借款人名称") + private String borrowerName; + @ApiModelProperty("还款方式") + private String returnWay; + @ApiModelProperty("期数") + private String period; + @ApiModelProperty("应还日期") + private String dueDate; + @ApiModelProperty("应还金额") + private String dueMoney; + @ApiModelProperty("实还金额") + private String actualMoney; + @ApiModelProperty("本期未还金额") + private String outstandingMoney; + @ApiModelProperty("实还日期") + private String actualDate; +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyMapper.java index 2e04ce9b18..026a4a45d4 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyMapper.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApply; +import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApplyVo; import com.yxt.anrui.riskcenter.api.loancustomerrecord.LoanCustomerRecord; import com.yxt.anrui.riskcenter.api.loancustomerrecord.LoanCustomerRecordDetailsVo; import com.yxt.anrui.riskcenter.api.loancustomerrecord.LoanCustomerRecordVo; @@ -19,4 +20,9 @@ import java.util.Map; @Mapper public interface LoanBuckleApplyMapper extends BaseMapper { + IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + int updateFlowFiled(Map map); + + int selectNum(String bill); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyMapper.xml index ed8ee0b353..693b78ebfa 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyMapper.xml @@ -1,5 +1,42 @@ + + UPDATE loan_buckle_apply + SET nodeState=#{nodeState} + , nodeSid=#{taskDefKey} + + , procDefId=#{procDefId} + + + , procInstId=#{procInsId} + + + , taskId=#{taskId} + + WHERE sid = #{sid} + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyRest.java index 0646aac5d2..97c810e951 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyRest.java @@ -3,9 +3,10 @@ package com.yxt.anrui.riskcenter.biz.loanbuckleapply; import cn.hutool.core.bean.BeanUtil; import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; -import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApplyFeign; -import com.yxt.anrui.riskcenter.api.loancustomerrecord.*; -import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.*; +import com.yxt.anrui.riskcenter.api.loanbuckleapply.*; +import com.yxt.anrui.riskcenter.api.loanbuckleapply.app.AppBuckleDetailsVo; +import com.yxt.anrui.riskcenter.api.loanbuckleapply.flow.*; +import com.yxt.anrui.riskcenter.api.loancustomerrecord.LoanCustomerRecord; import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.*; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; @@ -15,7 +16,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import javax.servlet.http.HttpServletResponse; import java.util.List; @@ -24,5 +24,87 @@ import java.util.List; @RequestMapping("v1/loanbuckleapply") public class LoanBuckleApplyRest implements LoanBuckleApplyFeign { + @Autowired + LoanBuckleApplyService loanBuckleApplyService; + + @Override + public ResultBean> listPage(PagerQuery pq) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = loanBuckleApplyService.listPage(pq); + return rb.success().setData(pv); + } + + @Override + public ResultBean buckleInit(String[] sids) { + return loanBuckleApplyService.buckleInit(sids); + } + + @Override + public ResultBean saveBuckle(LoanBuckleApplyDto dto) { + return loanBuckleApplyService.saveBuckle(dto); + } + + @Override + public ResultBean buckleDetails(String sid) { + return loanBuckleApplyService.buckleDetails(sid); + } + + @Override + public ResultBean deleteBySids(String[] sids) { + return loanBuckleApplyService.deleteBySids(sids); + } + + @Override + public ResultBean submitRecordApplication(SubmitBuckleDto dto) { + return loanBuckleApplyService.submitRecordApplication(dto); + } + + @Override + public ResultBean complete(BuckleCompleteDto dto) { + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(dto, bv); + bv.setModelId(ProcDefEnum.LOANBUCKLEAPPLLY.getProDefId()); + return loanBuckleApplyService.complete(bv); + } + + @Override + public ResultBean revokeProcess(BuckleTaskQuery query) { + return loanBuckleApplyService.revokeProcess(query); + } + + @Override + public ResultBean taskReject(BuckleTaskQuery query) { + return loanBuckleApplyService.taskReject(query); + } + + @Override + public ResultBean breakProcess(BuckleTaskQuery query) { + return loanBuckleApplyService.breakProcess(query); + } + + @Override + public ResultBean flowRecord(String procInsId) { + return loanBuckleApplyService.flowRecord(procInsId); + } + + @Override + public ResultBean> getNextNodesForSubmit(BuckleGetNodeQuery query) { + return loanBuckleApplyService.getNextNodesForSubmit(query); + } + + @Override + public ResultBean> getPreviousNodesForReject(BuckleGetNodeQuery query) { + return loanBuckleApplyService.getPreviousNodesForReject(query); + } + + @Override + public ResultBean delegate(BuckleDelegateQuery query) { + return loanBuckleApplyService.delegate(query); + } + + @Override + public ResultBean appDetail(String sid) { + return loanBuckleApplyService.appDetail(sid); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java index 093a389f0a..8e749e1a38 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java @@ -1,19 +1,13 @@ package com.yxt.anrui.riskcenter.biz.loanbuckleapply; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.google.common.util.concurrent.ThreadFactoryBuilder; -import com.yxt.anrui.base.api.basedistributorapply.BaseDistributorApplyFeign; -import com.yxt.anrui.base.api.basedistributorapply.BaseSalesManger; -import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp; -import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign; -import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo; -import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingDetailsVo; -import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingDto; -import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingFeign; +import com.yxt.anrui.base.common.enums.BillTypeEnum; +import com.yxt.anrui.base.common.utils.Rule; +import com.yxt.anrui.base.common.utils.domain.BillNo; import com.yxt.anrui.flowable.api.flow.FlowableFeign; import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; @@ -24,25 +18,26 @@ import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; import com.yxt.anrui.portal.api.sysorganization.*; -import com.yxt.anrui.portal.api.sysparameter.SysParameterEnum; -import com.yxt.anrui.portal.api.sysparameter.SysParameterFeign; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserVo; -import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApply; -import com.yxt.anrui.riskcenter.api.loancustomerrecord.*; -import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.*; -import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.*; -import com.yxt.anrui.riskcenter.api.loancustomerrecordstaff.AppStaffVo; -import com.yxt.anrui.riskcenter.api.loancustomerrecordstaff.LoanCustomerRecordStaff; -import com.yxt.anrui.riskcenter.api.loancustomerrecordstaff.LoanCustomerRecordStaffDto; -import com.yxt.anrui.riskcenter.api.loancustomerrecordstaff.LoanCustomerRecordStaffVo; +import com.yxt.anrui.riskcenter.api.loanbuckleapply.*; +import com.yxt.anrui.riskcenter.api.loanbuckleapply.app.AppBuckleDetailsVo; +import com.yxt.anrui.riskcenter.api.loanbuckleapply.app.AppRecordVo; +import com.yxt.anrui.riskcenter.api.loanbuckleapply.flow.*; +import com.yxt.anrui.riskcenter.api.loanbuckleapplyrecord.LoanBuckleApplyRecord; import com.yxt.anrui.riskcenter.api.loanfile.LoanFile; import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum; -import com.yxt.anrui.riskcenter.biz.loancustomerrecordstaff.LoanCustomerRecordStaffService; +import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.LoanFinOtherPolicy; +import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy; +import com.yxt.anrui.riskcenter.api.loanfinpolicyrecordapply.LoanFinPolicyRecordApply; +import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory; +import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistoryRecordVo; +import com.yxt.anrui.riskcenter.biz.loanbuckleapplyrecord.LoanBuckleApplyRecordService; import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService; +import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService; import com.yxt.common.base.config.component.DocPdfComponent; import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.service.MybatisBaseService; @@ -71,5 +66,826 @@ import java.util.stream.Collectors; @Service public class LoanBuckleApplyService extends MybatisBaseService { + @Autowired + private MessageFeign messageFeign; + @Autowired + private SysUserFeign sysUserFeign; + @Autowired + private LoanRepaymentHistoryService loanRepaymentHistoryService; + @Autowired + private SysStaffOrgFeign sysStaffOrgFeign; + @Autowired + private SysOrganizationFeign sysOrganizationFeign; + @Autowired + private LoanBuckleApplyRecordService loanBuckleApplyRecordService; + @Autowired + private LoanFileService loanFileService; + @Autowired + private FileUploadComponent fileUploadComponent; + @Autowired + private FlowFeign flowFeign; + @Autowired + private FlowTaskFeign flowTaskFeign; + @Autowired + private FlowableFeign flowableFeign; + public PagerVo listPage(PagerQuery pq) { + IPage page = PagerUtil.queryToPage(pq); + LoanBuckleApplyQuery pagerQuery = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + //======================= + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(pagerQuery.getOrgPath()); + privilegeQuery.setMenuSid(pagerQuery.getMenuSid()); + privilegeQuery.setMenuUrl(pagerQuery.getMenuUrl()); + privilegeQuery.setUserSid(pagerQuery.getUserSid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = pagerQuery.getOrgPath(); + orgSidPath = orgSidPath + "/"; + int i1 = orgSidPath.indexOf("/"); + int i2 = orgSidPath.indexOf("/", i1 + 1); + int i3 = orgSidPath.indexOf("/", i2 + 1); + int i4 = orgSidPath.indexOf("/", i3 + 1); + String orgLevelKey = defaultIdReltBean.getData(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i1); + qw.like("orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("createBySid", pagerQuery.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } + //======================= + //分公司 + if (StringUtils.isNotBlank(pagerQuery.getCompany())) { + qw.like("useOrgName", pagerQuery.getCompany()); + } + //申请人 + if (StringUtils.isNotBlank(pagerQuery.getApplyName())) { + qw.like("applyName", pagerQuery.getApplyName()); + } + //申请编号 + if (StringUtils.isNotBlank(pagerQuery.getBillNo())) { + qw.like("billNo", pagerQuery.getBillNo()); + } + String applyStartTime = pagerQuery.getApplyStartDate(); + String applyEndTime = pagerQuery.getApplyEndDate(); + qw.apply(StringUtils.isNotEmpty(applyStartTime), "date_format (applyDate,'%Y-%m-%d') >= date_format('" + applyStartTime + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(applyEndTime), "date_format (applyDate,'%Y-%m-%d') <= date_format('" + applyEndTime + "','%Y-%m-%d')" + ); + qw.eq("isDelete", 0); + qw.orderByDesc("createTime"); + IPage pagging = baseMapper.listPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public ResultBean buckleInit(String[] sids) { + ResultBean rb = ResultBean.fireFail(); + LoanBuckleApplyInit vo = new LoanBuckleApplyInit(); + List historyRecords = new ArrayList<>(); + for (String sid : sids) { + LoanBuckleHistoryRecord record = new LoanBuckleHistoryRecord(); + LoanRepaymentHistoryRecordVo recordVo = loanRepaymentHistoryService.buckleInfo(sid).getData(); + if (null != recordVo) { + BeanUtil.copyProperties(recordVo, record); + } + historyRecords.add(record); + } + vo.setRecords(historyRecords); + return rb.success().setData(vo); + } + + /** + * 生成交车资料确认单单据编号 + * + * @param orgSid + * @return + */ + public String getApplyCode(String orgSid) { + //获取分公司sid + ResultBean resultBean1 = sysOrganizationFeign.fetchBySid(orgSid); + String orgCode = resultBean1.getData().getOrgCode(); + BillNo b = new BillNo(); + b.setOrgCode(orgCode); + b.setBillType(BillTypeEnum.HKSQ.getBillType()); + String bill = Rule.getBill(b); + int i = baseMapper.selectNum(bill); + String billNo = Rule.getBillNo(bill, i); + return billNo; + } + + @Transactional(rollbackFor = Exception.class) + public ResultBean saveBuckle(LoanBuckleApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = ""; + if (StringUtils.isNotBlank(dto.getSid())) { + sid = dto.getSid(); + LoanBuckleApply updateEntity = fetchBySid(sid); + if (null != updateEntity) { + BeanUtil.copyProperties(dto, updateEntity, "id", "sid"); + baseMapper.updateById(updateEntity); + loanBuckleApplyRecordService.deleteByMainSid(sid); + //删除附件表中关于该linkSid的文件 + loanFileService.deleteByLinkSid(sid); + List files = dto.getFiles(); + if (!files.isEmpty()) { + loanFileService.saveAll(sid, files, LoanFileEnum.BUCKLE_APPLY.getAttachType()); + } + List records = dto.getRecords(); + if (!records.isEmpty()) { + for (LoanBuckleHistoryRecord record : records) { + LoanBuckleApplyRecord applyRecord = new LoanBuckleApplyRecord(); + applyRecord.setMainSid(sid); + applyRecord.setRepaymentHistorySid(record.getRecordSid()); + loanBuckleApplyRecordService.insert(applyRecord); + } + } + } + } else { + LoanBuckleApply loanBuckleApply = new LoanBuckleApply(); + sid = loanBuckleApply.getSid(); + BeanUtil.copyProperties(dto, loanBuckleApply, "id", "sid"); + loanBuckleApply.setCreateBySid(dto.getUserSid()); + loanBuckleApply.setOrgSidPath(dto.getOrgPath()); + ResultBean orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()); + if (orgSidByPath.getSuccess()) { + String userOrgSid = orgSidByPath.getData(); + loanBuckleApply.setUseOrgSid(userOrgSid); + String billNo = getApplyCode(userOrgSid); + loanBuckleApply.setBillNo(billNo); + ResultBean organizationVo = sysOrganizationFeign.fetchBySid(userOrgSid); + if (organizationVo.getSuccess()) { + SysOrganizationVo organizationVoData = organizationVo.getData(); + if (null != organizationVoData) { + loanBuckleApply.setUseOrgName(organizationVoData.getName()); + } + } + } + loanBuckleApply.setNodeState("待提交"); + baseMapper.insert(loanBuckleApply); + List records = dto.getRecords(); + if (!records.isEmpty()) { + for (LoanBuckleHistoryRecord record : records) { + LoanBuckleApplyRecord applyRecord = new LoanBuckleApplyRecord(); + applyRecord.setMainSid(sid); + applyRecord.setRepaymentHistorySid(record.getRecordSid()); + loanBuckleApplyRecordService.insert(applyRecord); + LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(record.getRecordSid()); + if (null != repaymentHistory) { + repaymentHistory.setBuckle("申请中"); + repaymentHistory.setBuckleKey("002"); + loanRepaymentHistoryService.updateById(repaymentHistory); + } + } + } + List files = dto.getFiles(); + if (!files.isEmpty()) { + loanFileService.saveAll(sid, files, LoanFileEnum.BUCKLE_APPLY.getAttachType()); + } + } + return rb.success().setData(sid); + } + + public ResultBean buckleDetails(String sid) { + ResultBean rb = ResultBean.fireFail(); + LoanBuckleApplyInit initVo = new LoanBuckleApplyInit(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + LoanBuckleApply loanBuckleApply = fetchBySid(sid); + if (null != loanBuckleApply) { + BeanUtil.copyProperties(loanBuckleApply, initVo); + initVo.setUserSid(loanBuckleApply.getCreateBySid()); + initVo.setOrgPath(loanBuckleApply.getOrgSidPath()); + if (StringUtils.isNotBlank(loanBuckleApply.getProcInstId())) { + initVo.setInstanceId(loanBuckleApply.getProcInstId()); + } + if (null != loanBuckleApply.getApplyDate()) { + initVo.setApplyDate(sdf.format(loanBuckleApply.getApplyDate())); + } + List fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.BUCKLE_APPLY.getAttachType()); + fileList.removeAll(Collections.singleton(null)); + if (!fileList.isEmpty()) { + List files = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). + collect(Collectors.toList()); + initVo.setFiles(files); + } + List records = loanBuckleApplyRecordService.selByMainSid(sid); + List recordList = new ArrayList<>(); + if (!records.isEmpty()) { + for (LoanBuckleApplyRecord record : records) { + String historySid = record.getRepaymentHistorySid(); + LoanBuckleHistoryRecord historyRecord = new LoanBuckleHistoryRecord(); + LoanRepaymentHistoryRecordVo recordVo = loanRepaymentHistoryService.buckleInfo(historySid).getData(); + if (null != recordVo) { + BeanUtil.copyProperties(recordVo, historyRecord); + } + recordList.add(historyRecord); + } + } + initVo.setRecords(recordList); + } + return rb.success().setData(initVo); + } + + //-------------------------------------流程------------------------------------------------/ + + /** + * 判断提交的流程是否被允许 + * + * @param dto + * @return + */ + private synchronized int submitBusinessData(SubmitBuckleDto dto, LoanBuckleApply loanBuckleApply) { + int r = 0; + if (StringUtils.isBlank(dto.getSid())) { + r = 1; + } else { + if (loanBuckleApply != null) { + String businessTaskId = loanBuckleApply.getTaskId(); + if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) { + //新提交 + r = 1; + } else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) { + //二次提交//只有数据一致的时候才能进行下一步 + r = 2; + } + } else { + r = 3; + } + } + return r; + } + + /** + * 更新流程相关的状态 + * + * @param map + * @return + */ + private int updateFlowFiled(Map map) { + return baseMapper.updateFlowFiled(map); + } + + public ResultBean submitRecordApplication(SubmitBuckleDto dto) { + ResultBean rb = ResultBean.fireFail(); + LoanBuckleApply loanBuckleApply = fetchBySid(dto.getSid()); + int r = submitBusinessData(dto, loanBuckleApply); + if (r == 3) { + return rb.setMsg("该申请不存在"); + } + if (r == 0) { + return rb.setMsg("操作失败!提交的数据不一致"); + } + String businessSid = ""; + //新增修改保存 + ResultBean resultBean = saveBuckle(dto); + if (resultBean.getSuccess()) { + businessSid = resultBean.getData(); + } + LoanBuckleApply entity = fetchBySid(businessSid); + String orgSidPath = ""; + if (StringUtils.isNotBlank(entity.getOrgSidPath())) { + orgSidPath = entity.getOrgSidPath(); + } else { + SysUserVo data = sysUserFeign.fetchBySid(entity.getCreateBySid()).getData(); + if (null != data) { + //根据staffSid获取用户的组织全路径 + ResultBean staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(data.getStaffSid()); + if (!staffOrgResultBean.getSuccess()) { + return rb.setMsg(staffOrgResultBean.getMsg()); + } + //用户的组织全路径 + orgSidPath = staffOrgResultBean.getData().getOrgSidPath(); + } + } + List orgPathList = Arrays.asList(orgSidPath.split("/")); + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(orgPathList.get(orgPathList.size() - 1)).getData(); + if (sysOrganization == null) { + return rb.setMsg("当前所在的组织机构不存在"); + } + if (StringUtils.isBlank(sysOrganization.getManagerSid())) { +// return rb.setMsg("当前所在的组织机构未设置主管人员"); + sysOrganization.setManagerSid(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId()); + } + //创建BusinessVariables实体对象 + BusinessVariables bv = new BusinessVariables(); + //流程中的参数赋值 + Map variables = BeanUtil.beanToMap(dto); + Map appMap = new HashMap<>(); + //若有网关,则赋值网关中判断的字段。 +// boolean isTure = true; +// //去查询是否同意 +// if (StringUtils.isNotBlank(entity.getSalesUserSid())) { +// if (!entity.getCreateBySid().equals(entity.getSalesUserSid())) { +// isTure = false; +// } +// } +// variables.put("isTure", isTure); + variables.put("businessSid", businessSid); + appMap.put("sid", businessSid); + variables.put("app", appMap); +// String orderNames = "<" + entity.getCustomer() + ">" + "欠款客户备案"; +// variables.put("orderNames", orderNames); + LoanBuckleApply loanBuckleApply1 = fetchBySid(businessSid); + String msgBusinessSid = loanBuckleApply1.getSid(); + //用户的部门全路径sid + bv.setOrgSidPath(loanBuckleApply1.getOrgSidPath()); + //业务sid + bv.setBusinessSid(businessSid); + //用户sid + bv.setUserSid(dto.getUserSid()); + bv.setFormVariables(variables); +// String nextNodeUserSids_ = sysOrganization.getManagerSid(); +// if (isTure) { +// bv.setNextNodeUserSids(nextNodeUserSids_); +// } else { +// bv.setNextNodeUserSids(entity.getSalesUserSid()); +// } + //流程定义id + bv.setModelId(ProcDefEnum.LOANBUCKLEAPPLLY.getProDefId()); + if (r == 1) { + //流程定义id + bv.setModelId(ProcDefEnum.LOANBUCKLEAPPLLY.getProDefId()); + ResultBean voResultBean = flowFeign.startProcess(bv); + if (!voResultBean.getSuccess()) { + return rb.setMsg(voResultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = voResultBean.getData(); + int i = updateFlowFiled(BeanUtil.beanToMap(ufVo)); + //==================================添加线程 + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(2, 100, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + Future future1 = pool.submit(() -> { + //极光推送 + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(msgBusinessSid); + messageFlowableQuery.setModuleName("划扣申请"); + SysUserVo userVo = sysUserFeign.fetchBySid(loanBuckleApply1.getCreateBySid()).getData(); + if (userVo != null) { + if (StringUtils.isNotBlank(userVo.getName())) { + messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + } + messageFlowableQuery.setMsgTitle("划扣申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + }); + } catch (Exception e) { + e.printStackTrace(); + } + //==================================添加线程 + return voResultBean; + } + if (r == 2) { + // ToDo:驳回到发起人后再次提交 + if (StringUtils.isBlank(dto.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + LoanBuckleApply loanBuckleApply2 = fetchBySid(dto.getSid()); + bv.setTaskId(dto.getTaskId()); + bv.setTaskDefKey(loanBuckleApply2.getNodeSid()); + bv.setComment("重新提交"); + bv.setInstanceId(dto.getInstanceId()); + return complete(bv); + } + return rb; + } + + public ResultBean complete(BusinessVariables bv) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = bv.getBusinessSid(); + LoanBuckleApply loanBuckleApply = this.fetchBySid(businessSid); + if (bv.getTaskId().equals(loanBuckleApply.getTaskId())) { + bv.setOrgSidPath(loanBuckleApply.getOrgSidPath()); + //流程中的参数赋值 + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + //若有网关,则赋值网关中判断的字段。 +// boolean isTure = true; +// //去查询是否同意 +// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) { +// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) { +// isTure = false; +// } +// } +// variables.put("isTure", isTure); +// if (bv.getTaskDefKey().equals("Activity_1078xxs")) { +// if (StringUtils.isNotBlank(loanCustomerRecord.getManageSid())) { +// bv.setNextNodeUserSids(loanCustomerRecord.getManageSid()); +// } else { +// bv.setNextNodeUserSids(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId()); +// } +// } + variables.put("businessSid", businessSid); + appMap.put("sid", businessSid); + variables.put("app", appMap); + bv.setFormVariables(variables); + ResultBean resultBean = flowFeign.handleProsess(bv); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + int i = updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { + List applyRecords = loanBuckleApplyRecordService.selByMainSid(businessSid); + if (!applyRecords.isEmpty()) { + for (LoanBuckleApplyRecord applyRecord : applyRecords) { + LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid()); + if (null != repaymentHistory) { + repaymentHistory.setBuckle("审核通过"); + repaymentHistory.setBuckleKey("003"); + loanRepaymentHistoryService.updateById(repaymentHistory); + } + } + } + + } + return rb.success().setData(resultBean.getData()); + } else { + return rb.setMsg("操作失败!提交的数据不一致"); + } + } + + + public ResultBean revokeProcess(BuckleTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + LoanBuckleApply loanBuckleApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = loanBuckleApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.revokeProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + return rb.success().setData(resultBean.getData()); + } + } + return rb.setMsg("操作失败,提交的数据不一致!"); + } + + public ResultBean taskReject(BuckleTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = query.getBusinessSid(); + LoanBuckleApply loanBuckleApply = fetchBySid(businessSid); + if (loanBuckleApply == null) { + return rb.setMsg("该申请不存在"); + } + String businessTaskId = loanBuckleApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + if (StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + if (org.apache.commons.lang3.StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + //若有网关,则赋值网关中判断的字段。 +// boolean isTure = true; +// //去查询是否同意 +// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) { +// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) { +// isTure = false; +// } +// } +// variables.put("isTure", isTure); + flowTaskVo.setValues(variables); + ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + Map map = BeanUtil.beanToMap(ufVo); + //更新业务中的流程相关的参数 + updateFlowFiled(map); + //极光推送 + loanBuckleApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + String procId = loanBuckleApply.getProcInstId(); + messageFlowVo.setProcInsId(procId); + messageFlowVo.setProcDefId(loanBuckleApply.getProcDefId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("划扣申请"); + ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); + String nextName = listResultBean.getData().get(0).getName_(); + String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); + List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); +// if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(busVehicleApply.getCreateBySid())) { + if ("发起申请".equals(nextName)) { + messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); + } else { + SysUserVo userVo = sysUserFeign.fetchBySid(loanBuckleApply.getCreateBySid()).getData(); + if (userVo != null) { + if (org.apache.commons.lang3.StringUtils.isNotBlank(userVo.getName())) { + messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + } + } + messageFlowableQuery.setMsgTitle("划扣申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + return rb.success(); + } + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + public ResultBean breakProcess(BuckleTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (org.apache.commons.lang3.StringUtils.isBlank(query.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + if (org.apache.commons.lang3.StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + if (org.apache.commons.lang3.StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + LoanBuckleApply loanBuckleApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = loanBuckleApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (query.getUserSid().equals(loanBuckleApply.getCreateBySid())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + //终止任务后划扣状态改完未通过 + LoanBuckleApply entity = fetchBySid(query.getBusinessSid()); + if (entity.getNodeState().equals("终止")) { + List applyRecords = loanBuckleApplyRecordService.selByMainSid(query.getBusinessSid()); + if (!applyRecords.isEmpty()) { + for (LoanBuckleApplyRecord applyRecord : applyRecords) { + LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid()); + if (null != repaymentHistory) { + repaymentHistory.setBuckle("审核未通过"); + repaymentHistory.setBuckleKey("004"); + loanRepaymentHistoryService.updateById(repaymentHistory); + } + } + } + } + return rb.success().setData(resultBean.getData()); + } else { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + //终止任务后划扣状态改完未通过 + LoanBuckleApply entity = fetchBySid(query.getBusinessSid()); + if (entity.getNodeState().equals("终止")) { + List applyRecords = loanBuckleApplyRecordService.selByMainSid(query.getBusinessSid()); + if (!applyRecords.isEmpty()) { + for (LoanBuckleApplyRecord applyRecord : applyRecords) { + LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid()); + if (null != repaymentHistory) { + repaymentHistory.setBuckle("审核未通过"); + repaymentHistory.setBuckleKey("004"); + loanRepaymentHistoryService.updateById(repaymentHistory); + } + } + } + } + + return rb.success().setData(resultBean.getData()); + } + } + + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + public ResultBean flowRecord(String procInsId) { + return flowTaskFeign.businessFlowRecord(procInsId); + } + + public ResultBean> getNextNodesForSubmit(BuckleGetNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + + //根据业务sid查询排产信息 + LoanBuckleApply loanBuckleApply = fetchBySid(query.getBusinessSid()); + //若有网关,则赋值网关中判断的字段。 +// boolean isTure = true; +// //去查询是否同意 +// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) { +// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) { +// isTure = false; +// } +// } +// variables.put("isTure", isTure); + bv.setFormVariables(variables); + bv.setModelId(loanBuckleApply.getProcDefId()); + ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), BuckleGetNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean> getPreviousNodesForReject(BuckleGetNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + //根据业务sid查询排产信息 + LoanBuckleApply loanBuckleApply = fetchBySid(query.getBusinessSid()); +// //若有网关,则赋值网关中判断的字段。 +// boolean isTure = true; +// //去查询是否同意 +// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) { +// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) { +// isTure = false; +// } +// } +// variables.put("isTure", isTure); + bv.setFormVariables(variables); + bv.setModelId(loanBuckleApply.getProcDefId()); + ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), BuckleGetNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean delegate(BuckleDelegateQuery query) { + ResultBean rb = ResultBean.fireFail(); + FlowDelegateQuery delegateQuery = new FlowDelegateQuery(); + BeanUtil.copyProperties(query, delegateQuery); + flowFeign.delegate(delegateQuery); + return rb.success(); + } + + + public ResultBean appDetail(String sid) { + ResultBean rb = ResultBean.fireFail(); + AppBuckleDetailsVo vo = new AppBuckleDetailsVo(); + LoanBuckleApply loanBuckleApply = fetchBySid(sid); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + if (null != loanBuckleApply) { + vo.setSid(sid); + String dept = ""; + String applyName = ""; + if (StringUtils.isNotBlank(loanBuckleApply.getRemarks())) { + vo.setRemarks(loanBuckleApply.getRemarks()); + } + if (StringUtils.isNotBlank(loanBuckleApply.getProcInstId())) { + vo.setProcInsId(loanBuckleApply.getProcInstId()); + } + if (StringUtils.isNotBlank(loanBuckleApply.getTaskId())) { + vo.setTaskId(loanBuckleApply.getTaskId()); + } + if (null != loanBuckleApply.getApplyDate()) { + vo.setTime(sdf.format(loanBuckleApply.getApplyDate())); + } + if (StringUtils.isNotBlank(loanBuckleApply.getDept())) { + dept = loanBuckleApply.getDept(); + } + if (StringUtils.isNotBlank(loanBuckleApply.getApplyName())) { + applyName = loanBuckleApply.getApplyName(); + } + vo.setPublishInfo(dept + "-" + applyName); + List fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.BUCKLE_APPLY.getAttachType()); + fileList.removeAll(Collections.singleton(null)); + if (!fileList.isEmpty()) { + List files = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). + collect(Collectors.toList()); + vo.setFiles(files); + } + List applyRecords = loanBuckleApplyRecordService.selByMainSid(sid); + List records = new ArrayList<>(); + if (!applyRecords.isEmpty()) { + for (LoanBuckleApplyRecord applyRecord : applyRecords) { + String historySid = applyRecord.getRepaymentHistorySid(); + LoanRepaymentHistoryRecordVo data = loanRepaymentHistoryService.buckleInfo(historySid).getData(); + if (null != data) { + AppRecordVo appRecordVo = new AppRecordVo(); + if (StringUtils.isNotBlank(data.getLoanContractNo())) { + appRecordVo.setContractId(data.getLoanContractNo()); + } + if (StringUtils.isNotBlank(data.getPeriod())) { + appRecordVo.setInstalments("期数:" + data.getPeriod()); + } + if (StringUtils.isNotBlank(data.getVinNo())) { + appRecordVo.setVin("车架号:" + data.getVinNo()); + } + if (StringUtils.isNotBlank(data.getReturnWay())) { + appRecordVo.setType(data.getReturnWay()); + } + if (StringUtils.isNotBlank(data.getBankName())) { + appRecordVo.setZf(data.getBankName()); + } + if (StringUtils.isNotBlank(data.getBankContractNo())) { + appRecordVo.setZfNo(data.getBankContractNo()); + } + if (StringUtils.isNotBlank(data.getCustomer())) { + appRecordVo.setCusName(data.getCustomer()); + } + if (StringUtils.isNotBlank(data.getBorrowerName())) { + appRecordVo.setLoanName(data.getBorrowerName()); + } + if (StringUtils.isNotBlank(data.getDueDate())) { + appRecordVo.setRepaymentDate(data.getDueDate()); + } + String yinghuan = ""; + String weihuan = ""; + String shihuan = ""; + String shihuandate = ""; + if (StringUtils.isNotBlank(data.getDueMoney())) { + yinghuan = data.getDueMoney(); + } + if (StringUtils.isNotBlank(data.getOutstandingMoney())) { + weihuan = data.getOutstandingMoney(); + } + if (StringUtils.isNotBlank(data.getActualDate())) { + shihuandate = data.getActualDate(); + } + if (StringUtils.isNotBlank(data.getActualMoney())) { + shihuan = data.getActualMoney(); + } + appRecordVo.setInfo1("本期应还:" + yinghuan + ",本期未还:" + weihuan); + appRecordVo.setInfo2("实还日期:" + shihuandate + ",实还金额:" + shihuan); + records.add(appRecordVo); + } + } + } + vo.setRecords(records); + } + return rb.success().setData(vo); + } + + public ResultBean deleteBySids(String[] sids) { + ResultBean rb = ResultBean.fireFail(); + for (String sid : sids) { + LoanBuckleApply loanBuckleApply = fetchBySid(sid); + if (null != loanBuckleApply) { + if (!loanBuckleApply.getNodeState().equals("待提交")) { + return rb.setMsg("删除的数据中包含已经提交审批的数据,删除失败"); + } + } + loanBuckleApply.setIsDelete(1); + int i = baseMapper.updateById(loanBuckleApply); + if (i == 0) { + return rb.setMsg("删除失败"); + } + List applyRecords = loanBuckleApplyRecordService.selByMainSid(sid); + if (!applyRecords.isEmpty()) { + for (LoanBuckleApplyRecord applyRecord : applyRecords) { + LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid()); + if (null != repaymentHistory) { + repaymentHistory.setBuckle("未申请"); + repaymentHistory.setBuckleKey("001"); + loanRepaymentHistoryService.updateById(repaymentHistory); + } + } + } + } + return ResultBean.fireSuccess().setMsg("删除成功"); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordMapper.java index 1b628691f5..97a3e5d7c2 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordMapper.java @@ -4,9 +4,15 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApply; import com.yxt.anrui.riskcenter.api.loanbuckleapplyrecord.LoanBuckleApplyRecord; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; @Mapper public interface LoanBuckleApplyRecordMapper extends BaseMapper { + int deleteByMainSid(@Param("mainSid") String mainSid); + + List selByMainSid(String sid); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordMapper.xml index ff8e6ff6bf..e3d025acc1 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordMapper.xml @@ -2,4 +2,15 @@ + + DELETE + FROM loan_buckle_apply_record + WHERE mainSid = #{mainSid} + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordService.java index 174ab2ef92..e8ce7318a7 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapplyrecord/LoanBuckleApplyRecordService.java @@ -5,6 +5,8 @@ import com.yxt.anrui.riskcenter.api.loanbuckleapplyrecord.LoanBuckleApplyRecord; import com.yxt.common.base.service.MybatisBaseService; import org.springframework.stereotype.Service; +import java.util.List; + /** * @description: * @author: fzz @@ -13,5 +15,12 @@ import org.springframework.stereotype.Service; @Service public class LoanBuckleApplyRecordService extends MybatisBaseService { + public int deleteByMainSid(String mainSid) { + return baseMapper.deleteByMainSid(mainSid); + } + + public List selByMainSid(String sid) { + return baseMapper.selByMainSid(sid); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancapitalcreditresult/LoanCapitalCreditResultService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancapitalcreditresult/LoanCapitalCreditResultService.java index 1fca5db352..71baa91ffb 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancapitalcreditresult/LoanCapitalCreditResultService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancapitalcreditresult/LoanCapitalCreditResultService.java @@ -193,11 +193,11 @@ public class LoanCapitalCreditResultService extends MybatisBaseService pagging = baseMapper.selectPageVo(page, qw); for (LoanCapitalCreditResultVo record : pagging.getRecords()) { String linkSid = record.getLinkSid(); - if (StringUtils.isNotBlank(linkSid)){ + if (StringUtils.isNotBlank(linkSid)) { String[] vehSids = linkSid.split(","); for (String vehSid : vehSids) { List baseTrailers = baseTrailerFeign.getByVehSid(vehSid).getData(); - if (baseTrailers != null && baseTrailers.size() > 0){ + if (baseTrailers != null && baseTrailers.size() > 0) { record.setIsHavTrailer(true); } } @@ -240,6 +240,13 @@ public class LoanCapitalCreditResultService extends MybatisBaseService details(String salesOrderSid) { ResultBean rb = ResultBean.fireFail(); @@ -59,6 +63,7 @@ public class LoanNoGuaranteeCreditReviewService extends MybatisBaseService vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(orderSid, borrowerSid).getData(); + if (!vehicles.isEmpty()) { + for (BusSalesOrderVehicle vehicle : vehicles) { + if (StringUtils.isNotBlank(vehicle.getLinkSid())) { + String vehicleLinkSid = vehicle.getLinkSid(); + List baseTrailers = baseTrailerFeign.getByVehSid(vehicleLinkSid).getData(); + if (baseTrailers != null && baseTrailers.size() > 0) { + vo.setIsHavTrailer(true); + } + } + } + } //家访考察结果截图 List fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.HOME_VISIT_FILES.getAttachType()); fileList.removeAll(Collections.singleton(null)); @@ -147,6 +166,13 @@ public class LoanNoGuaranteeCreditReviewService extends MybatisBaseService monthListPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); List selByBankNoAndActDate(@Param("bankContractNo") String bankContractNo, @Param("realReturnTime") String realReturnTime); + + LoanRepaymentHistoryRecordVo buckleInfo(String sid); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml index 872a0100d4..866dc7b672 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml @@ -70,4 +70,25 @@ WHERE p.bankContractNo = #{bankContractNo} AND h.actualDate = #{realReturnTime} + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryRest.java index d20165f7d4..81e467cda5 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryRest.java @@ -61,6 +61,11 @@ public class LoanRepaymentHistoryRest implements LoanRepaymentHistoryFeign { return loanRepaymentHistoryService.updateRecordInfo(sid); } + @Override + public ResultBean buckleInfo(String sid) { + return loanRepaymentHistoryService.buckleInfo(sid); + } + @Override public ResultBean deleteHistory(String scheduleSid) { return loanRepaymentHistoryService.deleteHistory(scheduleSid); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java index 4686b64171..014d6bbce6 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java @@ -611,4 +611,10 @@ public class LoanRepaymentHistoryService extends MybatisBaseService buckleInfo(String sid) { + ResultBean rb = ResultBean.fireFail(); + LoanRepaymentHistoryRecordVo vo = baseMapper.buckleInfo(sid); + return rb.success().setData(vo); + } } diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/BuckleDetailsVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/BuckleDetailsVo.java new file mode 100644 index 0000000000..84ee94bd1f --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/BuckleDetailsVo.java @@ -0,0 +1,24 @@ +package com.yxt.anrui.terminal.api.risk.buckle; + +import com.yxt.common.core.vo.Vo; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author Administrator + * @description + * @date 2023/11/13 15:38 + */ +@Data +public class BuckleDetailsVo implements Vo { + private String sid; + private String publishInfo; + private String time; + private String remarks; + private List files = new ArrayList<>(); + private String taskId; + private String procInsId; + private List records = new ArrayList<>(); +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/BuckleFeign.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/BuckleFeign.java new file mode 100644 index 0000000000..d987b6e21c --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/BuckleFeign.java @@ -0,0 +1,71 @@ +package com.yxt.anrui.terminal.api.risk.buckle; + + +import com.yxt.anrui.terminal.api.risk.buckle.flow.AppBuckleTaskQuery; +import com.yxt.anrui.terminal.api.risk.buckle.flow.BuckleFlowableQuery; +import com.yxt.anrui.terminal.api.risk.buckle.flow.CompleteBuckleDto; +import com.yxt.anrui.terminal.api.risk.loancustomerrecord.*; +import com.yxt.anrui.terminal.api.risk.loancustomerrecord.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 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: + * @author: fzz + * @date: 2023/8/8 + **/ +@Api(tags = "划扣申请") +@FeignClient( + contextId = "terminal-Buckle", + name = "anrui-terminal", + path = "/riskcenter/v1/buckle", + fallback = BuckleFeignFallback.class) +public interface BuckleFeign { + + + @ApiOperation("划扣申请") + @GetMapping("/detail/{sid}") + @ResponseBody + ResultBean detail(@PathVariable("sid") String sid); + + //-------------------------流程----------------------------------------- + + @ApiOperation("办理") + @PutMapping("/agreeCreditInfo") + @ResponseBody + ResultBean agreeCreditInfo(@Valid @RequestBody CompleteBuckleDto dto); + + @ApiOperation("驳回") + @PutMapping("/rejectCreditInfo") + @ResponseBody + ResultBean rejectCreditInfo(@Valid @RequestBody AppBuckleTaskQuery query); + + @ApiOperation("撤回") + @PutMapping("/recallCreditInfo") + @ResponseBody + ResultBean recallCreditInfo(@Valid @RequestBody AppBuckleTaskQuery query); + + @ApiOperation("终止") + @PutMapping("/stopCreditInfo") + @ResponseBody + ResultBean stopCreditInfo(@Valid @RequestBody AppBuckleTaskQuery query); + + @ApiOperation("获取流程操作标题") + @GetMapping("/getFlowOperateTitle") + @ResponseBody + ResultBean getFlowOperateTitle(@Valid @SpringQueryMap BuckleFlowableQuery query); + +// @ApiOperation(value = "加签") +// @PutMapping(value = "/delegate") +// @ResponseBody +// public ResultBean delegate(@RequestBody AppCustomerRecordDelegateQuery delegateQuery); +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/BuckleFeignFallback.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/BuckleFeignFallback.java new file mode 100644 index 0000000000..c332c09702 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/BuckleFeignFallback.java @@ -0,0 +1,52 @@ +package com.yxt.anrui.terminal.api.risk.buckle; + +import com.yxt.anrui.terminal.api.risk.buckle.flow.AppBuckleTaskQuery; +import com.yxt.anrui.terminal.api.risk.buckle.flow.BuckleFlowableQuery; +import com.yxt.anrui.terminal.api.risk.buckle.flow.CompleteBuckleDto; +import com.yxt.anrui.terminal.api.risk.loancustomerrecord.*; +import com.yxt.anrui.terminal.api.risk.loancustomerrecord.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; + +/** + * @description: + * @author: fzz + * @date: + **/ +@Component +public class BuckleFeignFallback implements BuckleFeign { + + @Override + public ResultBean detail(String sid) { + return null; + } + + @Override + public ResultBean agreeCreditInfo(CompleteBuckleDto dto) { + return null; + } + + @Override + public ResultBean rejectCreditInfo(AppBuckleTaskQuery query) { + return null; + } + + @Override + public ResultBean recallCreditInfo(AppBuckleTaskQuery query) { + return null; + } + + @Override + public ResultBean stopCreditInfo(AppBuckleTaskQuery query) { + return null; + } + + @Override + public ResultBean getFlowOperateTitle(BuckleFlowableQuery query) { + return null; + } +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/RecordVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/RecordVo.java new file mode 100644 index 0000000000..72b6052ced --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/RecordVo.java @@ -0,0 +1,23 @@ +package com.yxt.anrui.terminal.api.risk.buckle; + +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/11/13 15:45 + */ +@Data +public class RecordVo { + private String contractId; + private String instalments; + private String vin; + private String type; + private String zf; + private String zfNo; + private String cusName; + private String loanName; + private String repaymentDate; + private String info1; + private String info2; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/flow/AppBuckleDelegateQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/flow/AppBuckleDelegateQuery.java new file mode 100644 index 0000000000..bb045f7b44 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/flow/AppBuckleDelegateQuery.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.terminal.api.risk.buckle.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 AppBuckleDelegateQuery { + @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/buckle/flow/AppBuckleTaskQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/flow/AppBuckleTaskQuery.java new file mode 100644 index 0000000000..63bc539d00 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/flow/AppBuckleTaskQuery.java @@ -0,0 +1,46 @@ +package com.yxt.anrui.terminal.api.risk.buckle.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 AppBuckleTaskQuery 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/buckle/flow/BuckleFlowableQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/flow/BuckleFlowableQuery.java new file mode 100644 index 0000000000..fe7f7cffa6 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/flow/BuckleFlowableQuery.java @@ -0,0 +1,21 @@ +package com.yxt.anrui.terminal.api.risk.buckle.flow; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class BuckleFlowableQuery 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-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/flow/CompleteBuckleDto.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/flow/CompleteBuckleDto.java new file mode 100644 index 0000000000..fbe4b6c931 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/buckle/flow/CompleteBuckleDto.java @@ -0,0 +1,35 @@ +package com.yxt.anrui.terminal.api.risk.buckle.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 CompleteBuckleDto 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-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/buckle/BuckleRest.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/buckle/BuckleRest.java new file mode 100644 index 0000000000..f31cbbe243 --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/buckle/BuckleRest.java @@ -0,0 +1,62 @@ +package com.yxt.anrui.terminal.biz.risk.buckle; + + +import com.yxt.anrui.terminal.api.risk.buckle.BuckleDetailsVo; +import com.yxt.anrui.terminal.api.risk.buckle.BuckleFeign; +import com.yxt.anrui.terminal.api.risk.buckle.flow.AppBuckleTaskQuery; +import com.yxt.anrui.terminal.api.risk.buckle.flow.BuckleFlowableQuery; +import com.yxt.anrui.terminal.api.risk.buckle.flow.CompleteBuckleDto; +import com.yxt.anrui.terminal.api.risk.loancustomerrecord.*; +import com.yxt.anrui.terminal.api.risk.loancustomerrecord.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.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import java.util.List; + +/** + * @description: + * @author: fzz + * @date: + **/ +@Controller +@RequestMapping("/riskcenter/v1/buckle") +public class BuckleRest implements BuckleFeign { + + @Autowired + private BuckleService buckleService; + + + @Override + public ResultBean detail(String sid) { + return buckleService.detail(sid); + } + + @Override + public ResultBean agreeCreditInfo(CompleteBuckleDto dto) { + return buckleService.agreeCreditInfo(dto); + } + + @Override + public ResultBean rejectCreditInfo(AppBuckleTaskQuery query) { + return buckleService.rejectCreditInfo(query); + } + + @Override + public ResultBean recallCreditInfo(AppBuckleTaskQuery query) { + return buckleService.recallCreditInfo(query); + } + + @Override + public ResultBean stopCreditInfo(AppBuckleTaskQuery query) { + return buckleService.stopCreditInfo(query); + } + + @Override + public ResultBean getFlowOperateTitle(BuckleFlowableQuery query) { + return buckleService.getFlowOperateTitle(query); + } +} diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/buckle/BuckleService.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/buckle/BuckleService.java new file mode 100644 index 0000000000..16b5f0bec9 --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/buckle/BuckleService.java @@ -0,0 +1,163 @@ +package com.yxt.anrui.terminal.biz.risk.buckle; + + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg; +import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; +import com.yxt.anrui.portal.api.sysuser.SysUserFeign; +import com.yxt.anrui.portal.api.sysuser.SysUserVo; +import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApplyFeign; +import com.yxt.anrui.riskcenter.api.loanbuckleapply.app.AppBuckleDetailsVo; +import com.yxt.anrui.riskcenter.api.loanbuckleapply.flow.BuckleCompleteDto; +import com.yxt.anrui.riskcenter.api.loanbuckleapply.flow.BuckleGetNodeQuery; +import com.yxt.anrui.riskcenter.api.loanbuckleapply.flow.BuckleGetNodeVo; +import com.yxt.anrui.riskcenter.api.loanbuckleapply.flow.BuckleTaskQuery; +import com.yxt.anrui.riskcenter.api.loancustomerrecord.LoanCustomerRecordFeign; +import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.*; +import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.CustomerRecordCompleteDto; +import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.CustomerRecordDelegateQuery; +import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.CustomerRecordTaskQuery; +import com.yxt.anrui.terminal.api.risk.buckle.BuckleDetailsVo; +import com.yxt.anrui.terminal.api.risk.buckle.flow.AppBuckleTaskQuery; +import com.yxt.anrui.terminal.api.risk.buckle.flow.BuckleFlowableQuery; +import com.yxt.anrui.terminal.api.risk.buckle.flow.CompleteBuckleDto; +import com.yxt.anrui.terminal.api.risk.loancustomerrecord.*; +import com.yxt.anrui.terminal.api.risk.loancustomerrecord.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.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * @description: + * @author: fzz + * @date: + **/ +@Service +public class BuckleService { + + @Autowired + private SysUserFeign sysUserFeign; + @Autowired + private SysStaffOrgFeign sysStaffOrgFeign; + @Autowired + private LoanBuckleApplyFeign loanBuckleApplyFeign; + + public ResultBean detail(String sid) { + ResultBean rb = ResultBean.fireFail(); + BuckleDetailsVo vo = new BuckleDetailsVo(); + AppBuckleDetailsVo data = loanBuckleApplyFeign.appDetail(sid).getData(); + if (null != data) { + BeanUtil.copyProperties(data, vo); + } + return rb.success().setData(vo); + } + + + public ResultBean agreeCreditInfo(CompleteBuckleDto 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(); + BuckleCompleteDto buckleCompleteDto = new + BuckleCompleteDto(); + BeanUtil.copyProperties(dto, buckleCompleteDto); + buckleCompleteDto.setOrgSidPath(orgSidPath); + ResultBean resultBean = loanBuckleApplyFeign.complete(buckleCompleteDto); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean rejectCreditInfo(AppBuckleTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + BuckleTaskQuery taskQuery = new + BuckleTaskQuery(); + BeanUtil.copyProperties(query, taskQuery); + ResultBean resultBean = loanBuckleApplyFeign.taskReject(taskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean recallCreditInfo(AppBuckleTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + BuckleTaskQuery taskQuery = new + BuckleTaskQuery(); + BeanUtil.copyProperties(query, taskQuery); + ResultBean resultBean = loanBuckleApplyFeign.revokeProcess(taskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean stopCreditInfo(AppBuckleTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + BuckleTaskQuery taskQuery = new + BuckleTaskQuery(); + BeanUtil.copyProperties(query, taskQuery); + ResultBean resultBean = loanBuckleApplyFeign.breakProcess(taskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean getFlowOperateTitle(BuckleFlowableQuery query) { + ResultBean rb = ResultBean.fireFail(); + //0 上一环节 1下一环节 + int next = query.getNext(); + BuckleGetNodeQuery getNodeQuery = new + BuckleGetNodeQuery(); + BeanUtil.copyProperties(query, getNodeQuery); + String data = ""; + if (next == 0) { + ResultBean> getPreviousNodesForReject = loanBuckleApplyFeign.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 = loanBuckleApplyFeign.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(AppCustomerRecordDelegateQuery delegateQuery) { +// ResultBean rb = ResultBean.fireFail(); +// CustomerRecordDelegateQuery delegateQuery1 = new +// CustomerRecordDelegateQuery(); +// BeanUtil.copyProperties(delegateQuery, delegateQuery1); +// ResultBean delegate = loanCustomerRecordFeign.delegate(delegateQuery1); +// return rb.success(); +// } + + +} From a3e83c1887d909d8598c27b42a15dfce9eb6e07e Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Tue, 14 Nov 2023 16:10:05 +0800 Subject: [PATCH 07/16] =?UTF-8?q?=E6=94=BE=E6=AC=BE=E5=B7=AE=E9=A2=9D?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FinCollectionConfirmationMapper.java | 18 ++ .../FinCollectionConfirmationMapper.xml | 27 +++ .../FinCollectionConfirmationService.java | 120 +++++++++++++- .../loandiffdetails/LoanDiffDetailssDto.java | 6 +- doc/databases/fin_tables.sql | 154 ++++++++++++++---- 5 files changed, 286 insertions(+), 39 deletions(-) diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.java index 2ad42b606a..ddc81ba42e 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.java @@ -31,7 +31,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; +import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; import com.yxt.anrui.fin.api.fincollectionconfirmation.*; +import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.LoanFinOtherPolicy; +import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy; +import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions; +import com.yxt.anrui.riskcenter.api.loansolutionsdetail.LoanSolutionsDetail; +import com.yxt.anrui.riskcenter.api.loansolutionsotherpolicy.LoanSolutionsOtherpolicy; import com.yxt.common.core.result.ResultBean; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -128,4 +134,16 @@ public interface FinCollectionConfirmationMapper extends BaseMapper + + + + + + + + + + + + \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java index f21359ae0b..53f243498c 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java @@ -107,9 +107,16 @@ import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserVo; +import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffFeign; import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffsDto; +import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetailssDto; +import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.LoanFinOtherPolicy; +import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy; +import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions; import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsFeign; import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo; +import com.yxt.anrui.riskcenter.api.loansolutionsdetail.LoanSolutionsDetail; +import com.yxt.anrui.riskcenter.api.loansolutionsotherpolicy.LoanSolutionsOtherpolicy; import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.HanZiConverterPinYin; @@ -183,6 +190,8 @@ public class FinCollectionConfirmationService extends MybatisBaseService createQueryWrapper(FinCollectionConfirmationQuery query) { // todo: 这里根据具体业务调整查询条件 @@ -1654,17 +1663,124 @@ public class FinCollectionConfirmationService extends MybatisBaseService(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + FinCollectionConfirmation finalConfirmation = confirmation; + Future future1 = pool.submit(() -> { + pushLoanDiff(finalConfirmation); + }); + } catch (Exception e) { + e.printStackTrace(); + } + + return rb.success().setMsg("款项确认成功"); + } + + public void pushLoanDiff(FinCollectionConfirmation confirmation){ + String sid = confirmation.getSid(); + /** + * 查询该申请是否有融资放款款项的明细,若有 + * 则查询该认款的车的金融方案的主方案与其他融的资方是否一致,若不一致,则查询是否已认完款,若已认完,则推送,若未认完则不推送。 + * 若金融方案的主方案与其他融的资方一致,则查询是否有差额(即应收和认款的值是否相同,若不同则代表有差额) + * 若有差额,则查询金融方案的(固定类型贷款保证金+主产品实际厂家贴息+其他融实际厂家贴息+意外险)与差额作比较。若不相等,则推送放款差额确认申请、 + * 若相等,则直接推送财务其他应收单。 + * + * 若无差额,则直接推送收款单 + */ List finLi = finSelectedReceivablesDetailedService.selectLiBy(sid); finLi.removeAll(Collections.singleton(null)); if(!finLi.isEmpty()){ + LoanDiffsDto loanDiffsDto = new LoanDiffsDto(); + loanDiffsDto.setCreateByName(confirmation.getCreateByName()); + loanDiffsDto.setCreateBySid(confirmation.getCreateBySid()); + loanDiffsDto.setUseOrgName(confirmation.getUseOrgName()); + loanDiffsDto.setCreateDeptSid(confirmation.getCreateDeptSid()); + loanDiffsDto.setUseOrgSid(confirmation.getUseOrgSid()); + loanDiffsDto.setCreateDept(confirmation.getCreateDept()); + List loanDiffDetailssDtos = new ArrayList<>(); //根据车辆sid查询金融方案 for (int i = 0; i < finLi.size(); i++) { + FinSelectedReceivablesDetailed finSelectedReceivablesDetailed = finLi.get(i); + FinUncollectedReceivablesDetailed finUncollectedReceivablesDetailed = finUncollectedReceivablesDetailedService.fetchBySid(finSelectedReceivablesDetailed.getReceivablesSid()); + BigDecimal bigAdd = BigDecimal.ZERO; + BusSalesOrderVehicle busSalesOrderVehicle = baseMapper.selectByVinSid(finUncollectedReceivablesDetailed.getBusVinSid()); + LoanSolutions loanSolutions = baseMapper.selectLoanBySid(finUncollectedReceivablesDetailed.getBusVinSid()); + LoanSolutionsDetail loanSolutionsDetail = null; + LoanSolutionsOtherpolicy loanSolutionsOtherpolicy = null; + LoanFinPolicy loanFinPolicy = null; + LoanFinOtherPolicy loanFinOtherPolicy = null; + boolean isTue = false; + if(loanSolutions != null){ + if (loanSolutionsDetail.getBondAmounts() != null) { + bigAdd = bigAdd.add(loanSolutionsDetail.getBondAmounts()); + } + if(loanSolutions.getFactoryDiscount() != null){ + bigAdd = bigAdd.add(loanSolutions.getFactoryDiscount()); + } + loanSolutionsOtherpolicy = baseMapper.selectBySoluSid(loanSolutions.getSid()); + if(loanSolutionsOtherpolicy != null){ + if(loanSolutionsOtherpolicy.getOtherDiscount() != null){ + bigAdd = bigAdd.add(loanSolutionsOtherpolicy.getOtherDiscount()); + } + } + loanSolutionsDetail = baseMapper.selectByLoanSid(loanSolutions.getSid()); + if(loanSolutionsDetail != null){ + if(loanSolutionsDetail.getProxyAccidentPremium() != null){ + bigAdd = bigAdd.add(loanSolutionsDetail.getProxyAccidentPremium()); + } + } + //查询主方案的资方和其他融的资方是否一致 + loanFinPolicy = baseMapper.selectBySoll(loanSolutions.getPolicySid()); + loanFinOtherPolicy = baseMapper.selectByOtherSid(loanSolutionsOtherpolicy.getOtherPolicySid()); + if(!loanFinPolicy.getBankSid().equals(loanFinOtherPolicy.getBankSid())){ + isTue =true; + } + } + + BigDecimal decimalAll = new BigDecimal(finUncollectedReceivablesDetailed.getReveivableMoney()).subtract(finSelectedReceivablesDetailed.getSubscriptionMoney()); + if(finSelectedReceivablesDetailed.getSubscriptionMoney().compareTo(new BigDecimal(finUncollectedReceivablesDetailed.getReveivableMoney())) != 0){ + //有差额 + if(isTue){//不一致 + + + }else{ + if(bigAdd.compareTo(decimalAll) != 0){//不相等,推送放款差额确认待办 + LoanDiffDetailssDto loanDiffDetailssDto = new LoanDiffDetailssDto(); + loanDiffDetailssDto.setBankSid(loanFinPolicy.getBankSid()); + loanDiffDetailssDto.setBankName(loanFinPolicy.getBankShortName()); + loanDiffDetailssDto.setBorrowName(busSalesOrderVehicle.getBorrowName()); + loanDiffDetailssDto.setBorrowSid(busSalesOrderVehicle.getBorrowerSid()); + loanDiffDetailssDto.setMakeLoan(new BigDecimal(finUncollectedReceivablesDetailed.getReveivableMoney())); + loanDiffDetailssDto.setRealityLoan(finSelectedReceivablesDetailed.getSubscriptionMoney()); + loanDiffDetailssDto.setDiffLoan(decimalAll); + loanDiffDetailssDto.setMakeDiscount(loanSolutions.getFactoryDiscount()); + loanDiffDetailssDto.setMakeLoanMargin(loanSolutions.getBondAmount()); + loanDiffDetailssDto.setMakeOtherDiscount(loanSolutionsOtherpolicy.getOtherDiscount()); + loanDiffDetailssDto.setReceivedPremium(loanSolutionsDetail.getProxyAccidentPremium()); + loanDiffDetailssDto.setVinNo(busSalesOrderVehicle.getLinkNo()); + loanDiffDetailssDto.setVinSid(busSalesOrderVehicle.getLinkSid()); + loanDiffDetailssDto.setBusVinSid(busSalesOrderVehicle.getSid()); + loanDiffDetailssDtos.add(loanDiffDetailssDto); + } + } + + + }else{ + //无差额 + } } + if(!loanDiffDetailssDtos.isEmpty()){ + //推送待办 + ResultBean resultBean = loanDiffFeign.save(loanDiffsDto); + } } - return rb.success().setMsg("款项确认成功"); } /** diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssDto.java index 9d03ea00d6..643966bf22 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssDto.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssDto.java @@ -30,7 +30,11 @@ public class LoanDiffDetailssDto implements Dto { private String borrowName; @ApiModelProperty("放款金额:应放") - private String makeLoan; + private BigDecimal makeLoan; + @ApiModelProperty("放款金额:实放") + private BigDecimal realityLoan; + @ApiModelProperty("放款金额:差额") + private BigDecimal diffLoan; @ApiModelProperty("主产品厂家贴息:预计") private BigDecimal makeDiscount; @ApiModelProperty("其他融厂家贴息:预计") diff --git a/doc/databases/fin_tables.sql b/doc/databases/fin_tables.sql index 8d7ae73dc5..9f1be52692 100644 --- a/doc/databases/fin_tables.sql +++ b/doc/databases/fin_tables.sql @@ -1089,40 +1089,122 @@ CREATE TABLE `fin_paymentapply_vehicle` DEFAULT CHARSET = utf8 COMMENT ='付款申请车辆'; -- 车辆发票信息 -CREATE TABLE `fin_vehicle_invoice` ( - `id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id', - `sid` varchar(64) NOT NULL COMMENT 'sid', - `lockVersion` int(32) DEFAULT '0' COMMENT '版本锁', - `createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', - `isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用', - `state` int(32) DEFAULT '1', - `isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除', - `remarks` varchar(255) DEFAULT NULL COMMENT '备注', - `createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid', - `updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid', - `vehicleSid` varchar(64) DEFAULT NULL COMMENT '车辆sid', - `VIN` varchar(20) DEFAULT NULL COMMENT '车架号', - `vehicleTypeKey` varchar(64) DEFAULT NULL COMMENT '车辆类型Key', - `vehicleType` varchar(64) DEFAULT NULL COMMENT '车辆类型', - `vehiclAmount` decimal(10,2) DEFAULT NULL COMMENT '车辆金额', - `invoiceDate` timestamp NULL DEFAULT NULL COMMENT '最大发票开票日期', - `invoiceNo` varchar(64) DEFAULT NULL COMMENT '发票号', - `invoiceCode` varchar(64) DEFAULT NULL COMMENT '发票代码', - `invoiceAmount` decimal(10,2) DEFAULT NULL COMMENT '车辆发票金额', - `invoiceTypeKey` varchar(32) DEFAULT NULL COMMENT '发票类别Key(01机动车销售统一发票/02增值税专用发票)', - `invoiceType` varchar(64) DEFAULT NULL COMMENT '发票类别', - `invoiceTitle` varchar(64) DEFAULT NULL COMMENT '开票单位', - `transferState` varchar(32) DEFAULT NULL COMMENT '移交状态:001未移交,002待移交,003移交中,004已移交', - `customerName` varchar(64) DEFAULT NULL COMMENT '客户名称', - `invoicingName` varchar(64) DEFAULT NULL COMMENT '开票名称', - `contractNo` varchar(64) DEFAULT NULL COMMENT '合同编号', - `filePath` varchar(255) DEFAULT NULL COMMENT '图片路径', - `billingState` varchar(32) DEFAULT '1' COMMENT '开票状态 001 未开票 002已开票 003作废', - `useOrgSid` varchar(64) DEFAULT NULL, - `billingStateKey` varchar(64) DEFAULT NULL COMMENT '开票状态key', - `transferStateKey` varchar(64) DEFAULT NULL COMMENT '移交状态key', - PRIMARY KEY (`id`) USING BTREE, - KEY `id` (`id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='车辆发票信息' +CREATE TABLE `fin_vehicle_invoice` +( + `id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id', + `sid` varchar(64) NOT NULL COMMENT 'sid', + `lockVersion` int(32) DEFAULT '0' COMMENT '版本锁', + `createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', + `isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用', + `state` int(32) DEFAULT '1', + `isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除', + `remarks` varchar(255) DEFAULT NULL COMMENT '备注', + `createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid', + `updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid', + `vehicleSid` varchar(64) DEFAULT NULL COMMENT '车辆sid', + `VIN` varchar(20) DEFAULT NULL COMMENT '车架号', + `vehicleTypeKey` varchar(64) DEFAULT NULL COMMENT '车辆类型Key', + `vehicleType` varchar(64) DEFAULT NULL COMMENT '车辆类型', + `vehiclAmount` decimal(10, 2) DEFAULT NULL COMMENT '车辆金额', + `invoiceDate` timestamp NULL DEFAULT NULL COMMENT '最大发票开票日期', + `invoiceNo` varchar(64) DEFAULT NULL COMMENT '发票号', + `invoiceCode` varchar(64) DEFAULT NULL COMMENT '发票代码', + `invoiceAmount` decimal(10, 2) DEFAULT NULL COMMENT '车辆发票金额', + `invoiceTypeKey` varchar(32) DEFAULT NULL COMMENT '发票类别Key(01机动车销售统一发票/02增值税专用发票)', + `invoiceType` varchar(64) DEFAULT NULL COMMENT '发票类别', + `invoiceTitle` varchar(64) DEFAULT NULL COMMENT '开票单位', + `transferState` varchar(32) DEFAULT NULL COMMENT '移交状态:001未移交,002待移交,003移交中,004已移交', + `customerName` varchar(64) DEFAULT NULL COMMENT '客户名称', + `invoicingName` varchar(64) DEFAULT NULL COMMENT '开票名称', + `contractNo` varchar(64) DEFAULT NULL COMMENT '合同编号', + `filePath` varchar(255) DEFAULT NULL COMMENT '图片路径', + `billingState` varchar(32) DEFAULT '1' COMMENT '开票状态 001 未开票 002已开票 003作废', + `useOrgSid` varchar(64) DEFAULT NULL, + `billingStateKey` varchar(64) DEFAULT NULL COMMENT '开票状态key', + `transferStateKey` varchar(64) DEFAULT NULL COMMENT '移交状态key', + PRIMARY KEY (`id`) USING BTREE, + KEY `id` (`id`) USING BTREE +) ENGINE = InnoDB + AUTO_INCREMENT = 32 + DEFAULT CHARSET = utf8 + ROW_FORMAT = DYNAMIC COMMENT ='车辆发票信息'; + + +DROP TABLE IF EXISTS `loan_diff`; +CREATE TABLE `loan_diff` +( + `id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id', + `sid` varchar(64) NOT NULL COMMENT 'sid', + `lockVersion` int(32) DEFAULT '0' COMMENT '版本锁', + `createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', + `isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用', + `state` int(32) DEFAULT '1' COMMENT '状态', + `isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除', + `remarks` varchar(255) DEFAULT NULL COMMENT '备注', + `createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid', + `updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid', + `createByName` varchar(64) DEFAULT NULL COMMENT '申请人', + `createDeptSid` VARCHAR(64) DEFAULT NULL COMMENT '申请部门sid', + `createDept` VARCHAR(64) DEFAULT NULL COMMENT '申请部门', + `billNo` VARCHAR(64) DEFAULT NULL COMMENT '申请编号', + `files` text DEFAULT NULL COMMENT '附件', + `orgSidPath` text DEFAULT NULL COMMENT '申请人全路径sid', + `nodeState` varchar(64) DEFAULT NULL COMMENT '流程状态', + `nodeId` varchar(64) DEFAULT NULL COMMENT '节点id', + `procDefId` varchar(64) DEFAULT NULL COMMENT '流程定义id', + `procInstId` varchar(64) DEFAULT NULL COMMENT '流程实例id', + `taskId` varchar(64) DEFAULT NULL COMMENT '任务id', + `useOrgSid` varchar(64) DEFAULT NULL COMMENT '分公司sid', + `useOrgName` varchar(64) DEFAULT NULL COMMENT '分公司名称', + PRIMARY KEY (`id`), + KEY `id` (`id`) +) ENGINE = INNODB + DEFAULT CHARSET = utf8 COMMENT ='放款差额确认'; + +DROP TABLE IF EXISTS `loan_diff_details`; +CREATE TABLE `loan_diff_details` +( + `id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id', + `sid` varchar(64) NOT NULL COMMENT 'sid', + `lockVersion` int(32) DEFAULT '0' COMMENT '版本锁', + `createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', + `isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用', + `state` int(32) DEFAULT '1' COMMENT '状态', + `isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除', + `remarks` varchar(255) DEFAULT NULL COMMENT '备注', + `createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid', + `updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid', + `mainSid` VARCHAR(64) DEFAULT NULL COMMENT '主申请sid', + `bankSid` VARCHAR(64) DEFAULT NULL COMMENT '资方sid', + `bankName` VARCHAR(64) DEFAULT NULL COMMENT '资方', + `busVinSid` VARCHAR(64) DEFAULT NULL COMMENT '销售订单车辆sid', + `vinNo` varchar(64) DEFAULT NULL COMMENT '车架号', + `vinSid` varchar(64) DEFAULT NULL COMMENT '车辆sid', + `borrowSid` varchar(64) DEFAULT NULL COMMENT '贷款人sid', + `borrowName` varchar(64) DEFAULT NULL COMMENT '贷款人', + `makeLoan` decimal(10, 2) DEFAULT NULL COMMENT '放款金额:应放', + `realityLoan` decimal(10, 2) DEFAULT NULL COMMENT '放款金额:实放', + `diffLoan` decimal(10, 2) DEFAULT NULL COMMENT '放款金额:差额', + `makeDiscount` decimal(10, 2) DEFAULT NULL COMMENT '主产品厂家贴息:预计', + `realityDiscount` decimal(10, 2) DEFAULT NULL COMMENT '主产品厂家贴息:实际', + `diffDiscount` decimal(10, 2) DEFAULT NULL COMMENT '差额', + `makeOtherDiscount` decimal(10, 2) DEFAULT NULL COMMENT '其他融厂家贴息:预计', + `realityOtherDiscount` decimal(10, 2) DEFAULT NULL COMMENT '其他融厂家贴息:实际', + `diffOtherDiscount` decimal(10, 2) DEFAULT NULL COMMENT '其他融厂家贴息:差额', + `makeLoanMargin` decimal(10, 2) DEFAULT NULL COMMENT '固定贷款保证金:预计', + `realityLoanMargin` decimal(10, 2) DEFAULT NULL COMMENT '固定贷款保证金:实际', + `diffLoanMargin` decimal(10, 2) DEFAULT NULL COMMENT '固定贷款保证金:差额', + `receivedPremium` decimal(10, 2) DEFAULT NULL COMMENT '已收意外险', + `realityPremium` decimal(10, 2) DEFAULT NULL COMMENT '实扣意外险', + `diffPremium` decimal(10, 2) DEFAULT NULL COMMENT '意外险:差额', + PRIMARY KEY (`id`), + KEY `id` (`id`) +) ENGINE = INNODB + DEFAULT CHARSET = utf8 COMMENT ='放款差额确认明细'; + + + From 9831fb7c39594cb27bd674a79856e4167aec96f5 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Tue, 14 Nov 2023 17:26:44 +0800 Subject: [PATCH 08/16] =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E6=94=BE?= =?UTF-8?q?=E6=AC=BE=E5=B7=AE=E9=A2=9D=E7=A1=AE=E8=AE=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/loandiff/LoanDiffDetailsssApp.java | 33 +++++ .../riskcenter/api/loandiff/LoanDiffDto.java | 3 +- .../api/loandiff/LoanDiffFeign.java | 16 ++- .../api/loandiff/LoanDiffInitDetails.java | 28 +++++ .../api/loandiffdetails/AppRecords.java | 50 ++++++++ .../loandiffdetails/LoanDiffDetailsDto.java | 11 +- .../loandiffdetails/LoanDiffDetailssDto.java | 1 + .../loandiffdetails/LoanDiffDetailssVo.java | 60 +++++++++ .../riskcenter/biz/loandiff/LoanDiffRest.java | 20 ++- .../biz/loandiff/LoanDiffService.java | 98 +++++++++++++-- .../LoanDiffDetailsMapper.java | 7 ++ .../loandiffdetails/LoanDiffDetailsMapper.xml | 28 +++++ .../LoanDiffDetailsService.java | 11 ++ .../api/risk/loandiff/AppRecordsVo.java | 51 ++++++++ .../api/risk/loandiff/LoanDiffsFeign.java | 56 +++++++++ .../risk/loandiff/LoanDiffsFeignFallback.java | 12 ++ .../api/risk/loandiff/LoanDiffsVo.java | 32 +++++ .../loandiff/flowable/LoanDiffApplyDto.java | 37 ++++++ .../loandiff/flowable/LoanDiffApplyQuery.java | 23 ++++ .../loandiff/flowable/LoanDiffTaskQuery.java | 45 +++++++ .../biz/risk/loandiff/LoanDiffsRest.java | 54 ++++++++ .../biz/risk/loandiff/LoanDiffsService.java | 118 ++++++++++++++++++ 22 files changed, 770 insertions(+), 24 deletions(-) create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffDetailsssApp.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffInitDetails.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/AppRecords.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssVo.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/AppRecordsVo.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/LoanDiffsFeign.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/LoanDiffsFeignFallback.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/LoanDiffsVo.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/flowable/LoanDiffApplyDto.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/flowable/LoanDiffApplyQuery.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/flowable/LoanDiffTaskQuery.java create mode 100644 anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsRest.java create mode 100644 anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsService.java diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffDetailsssApp.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffDetailsssApp.java new file mode 100644 index 0000000000..e101686e9e --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffDetailsssApp.java @@ -0,0 +1,33 @@ +package com.yxt.anrui.riskcenter.api.loandiff; + +import com.yxt.anrui.riskcenter.api.loandiffdetails.AppRecords; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +@Data +public class LoanDiffDetailsssApp { + + private String sid; + @ApiModelProperty("申请部门-申请人") + private String publishInfo; + @ApiModelProperty("申请时间") + private String time; + @ApiModelProperty("备注") + private String remarks; + + private List files = new ArrayList<>(); + + private String taskId; + + private String procInsId; + + private List records = new ArrayList<>(); +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffDto.java index d38d6be462..631519bbc2 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffDto.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffDto.java @@ -15,6 +15,7 @@ import java.util.List; public class LoanDiffDto implements Dto { private static final long serialVersionUID = 3046052875256156498L; private String sid; - private String userSid; private List loanDiffDetails; + + private List filesList; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeign.java index 2472dda787..426eb4e1f9 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeign.java @@ -8,9 +8,7 @@ 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.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; @@ -35,6 +33,14 @@ public interface LoanDiffFeign { @PostMapping("/listPage") public ResultBean> listPage(@RequestBody PagerQuery pq); + @ApiOperation("保存") + @PostMapping("/update") + public ResultBean update(@RequestBody LoanDiffDto dto); + + @ApiOperation("详情") + @GetMapping("/details") + ResultBean details(@RequestParam("sid")String sid); + @ApiOperation("提交") @PostMapping("/submitDiffApply") public ResultBean submitDiffApply(@Valid @RequestBody SubmitDiffDto dto); @@ -63,4 +69,8 @@ public interface LoanDiffFeign { @PostMapping(value = "/breakProcess") public ResultBean breakProcess(@Valid @RequestBody DiffApplyTaskQuery query); + @ApiOperation(value = "app详情") + @PostMapping(value = "/appDetails/{sid}") + ResultBean appDetails(@PathVariable("sid")String sid); + } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffInitDetails.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffInitDetails.java new file mode 100644 index 0000000000..b5d28bfcc6 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffInitDetails.java @@ -0,0 +1,28 @@ +package com.yxt.anrui.riskcenter.api.loandiff; + +import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetailssVo; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +@Data +public class LoanDiffInitDetails { + + private String sid; + + private String createDept; + + private String createByName; + private String createDate; + private String remarks; + + private List files = new ArrayList<>(); + + private List loanDiffDetails = new ArrayList<>(); +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/AppRecords.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/AppRecords.java new file mode 100644 index 0000000000..0d9006ecc5 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/AppRecords.java @@ -0,0 +1,50 @@ +package com.yxt.anrui.riskcenter.api.loandiffdetails; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +@Data +public class AppRecords { + @ApiModelProperty("车架号") + private String vin; + @ApiModelProperty("资方") + private String zf; + @ApiModelProperty("贷款人") + private String loanName; + @ApiModelProperty("应放") + private String fk1; + @ApiModelProperty("实放") + private String fk2; + + @ApiModelProperty("主产品贴息:预计") + private String mainTx1; + @ApiModelProperty("主产品信息:实际") + private String mainTx2; + @ApiModelProperty("保证金预计") + private String dkbzj1; + @ApiModelProperty("保证金实际") + private String dkbzj2; + + private String otherTx1; + + private String otherTx2; + private String diffOtherTx; + + @ApiModelProperty("意外险:预计") + private String ywx1; + @ApiModelProperty("意外险:实扣") + private String ywx2; + @ApiModelProperty("放款金额:差额") + private String diffFk; + @ApiModelProperty("意外险:差额") + private String diffYwx; + @ApiModelProperty("主产品厂家贴息:差额") + private String diffMainTx; + @ApiModelProperty("贷款保证金:差额") + private String diffDkbzj; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailsDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailsDto.java index 8e853cbbf1..0d69b43471 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailsDto.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailsDto.java @@ -11,15 +11,20 @@ import lombok.Data; @Data public class LoanDiffDetailsDto { private String sid; - private String busVinSid; - @ApiModelProperty("实放") - private String realityLoan; @ApiModelProperty("主产品厂家贴息:实际") private String realityDiscount; + @ApiModelProperty("主产品厂家贴息:差额") + private String diffDiscount; @ApiModelProperty("其他融厂家贴息:实际") private String realityOtherDiscount; + @ApiModelProperty("其他融厂家贴息:差额") + private String diffOtherDiscount; @ApiModelProperty("固定贷款保证金:实际") private String realityLoanMargin; + @ApiModelProperty("固定贷款保证金:差额") + private String diffLoanMargin; @ApiModelProperty("实扣意外险") private String realityPremium; + @ApiModelProperty("意外险:差额") + private String diffPremium; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssDto.java index 643966bf22..9b556f860b 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssDto.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssDto.java @@ -14,6 +14,7 @@ import java.math.BigDecimal; @Data public class LoanDiffDetailssDto implements Dto { private static final long serialVersionUID = -2530442143507437830L; + @ApiModelProperty("销售订单车辆sid") private String busVinSid; @ApiModelProperty("车辆sid") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssVo.java new file mode 100644 index 0000000000..d525cca6e6 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssVo.java @@ -0,0 +1,60 @@ +package com.yxt.anrui.riskcenter.api.loandiffdetails; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +@Data +public class LoanDiffDetailssVo implements Vo { + private static final long serialVersionUID = 8471596886220398279L; + + + @ApiModelProperty("资方") + private String bankName; + + @ApiModelProperty("车架号") + private String vinNo; + + + @ApiModelProperty("贷款人") + private String borrowName; + @ApiModelProperty("放款金额:应放") + private BigDecimal makeLoan; + @ApiModelProperty("放款金额:实放") + private BigDecimal realityLoan; + private BigDecimal diffLoan; + @ApiModelProperty("主产品厂家贴息:预计") + private BigDecimal makeDiscount; + + @ApiModelProperty("主产品厂家贴息:实际") + private BigDecimal realityDiscount; + private BigDecimal diffDiscount; + + @ApiModelProperty("其他融厂家贴息:预计") + private BigDecimal makeOtherDiscount; + + @ApiModelProperty("其他融厂家贴息:实际") + private BigDecimal realityOtherDiscount; + private BigDecimal diffOtherDiscount; + + @ApiModelProperty("固定贷款保证金:预计") + private BigDecimal makeLoanMargin; + + @ApiModelProperty("固定贷款保证金:实际") + private BigDecimal realityLoanMargin; + private BigDecimal diffLoanMargin; + + @ApiModelProperty("意外险:已收") + private BigDecimal receivedPremium; + + @ApiModelProperty("意外险:实扣") + private BigDecimal realityPremium; + private BigDecimal diffPremium; +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffRest.java index 158f2ee9c3..d532bd3fc2 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffRest.java @@ -2,10 +2,7 @@ package com.yxt.anrui.riskcenter.biz.loandiff; import cn.hutool.core.bean.BeanUtil; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; -import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffFeign; -import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffQuery; -import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffVo; -import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffsDto; +import com.yxt.anrui.riskcenter.api.loandiff.*; import com.yxt.anrui.riskcenter.api.loandiff.flowable.*; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; @@ -41,6 +38,16 @@ public class LoanDiffRest implements LoanDiffFeign { return rb.success().setData(pv); } + @Override + public ResultBean update(LoanDiffDto dto) { + return loanDiffService.updateDiff(dto); + } + + @Override + public ResultBean details(String sid) { + return loanDiffService.details(sid); + } + @Override public ResultBean submitDiffApply(SubmitDiffDto dto) { return loanDiffService.submitDiffApply(dto); @@ -78,4 +85,9 @@ public class LoanDiffRest implements LoanDiffFeign { public ResultBean breakProcess(DiffApplyTaskQuery query) { return loanDiffService.breakProcess(query); } + + @Override + public ResultBean appDetails(String sid) { + return loanDiffService.appDetails(sid); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java index 03a077f28d..a1a3b36978 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java @@ -1,6 +1,7 @@ package com.yxt.anrui.riskcenter.biz.loandiff; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -13,13 +14,9 @@ import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo; import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; -import com.yxt.anrui.riskcenter.api.loandiff.LoanDiff; -import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffQuery; -import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffVo; -import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffsDto; +import com.yxt.anrui.riskcenter.api.loandiff.*; import com.yxt.anrui.riskcenter.api.loandiff.flowable.*; -import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetails; -import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetailssDto; +import com.yxt.anrui.riskcenter.api.loandiffdetails.*; import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplate; import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplateQuery; import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplateVo; @@ -27,6 +24,7 @@ import com.yxt.anrui.riskcenter.api.loantemplate.flowable.SubmitTemplateDto; import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyNodeVo; import com.yxt.anrui.riskcenter.biz.loandiffdetails.LoanDiffDetailsService; import com.yxt.anrui.riskcenter.biz.loantemplate.LoanTemplateMapper; +import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.PagerUtil; import com.yxt.common.base.utils.StringUtils; @@ -64,6 +62,8 @@ public class LoanDiffService extends MybatisBaseService resultBean = updateApply(dto); + ResultBean resultBean = updateDiff(dto); if (!resultBean.getSuccess()) { return rb.setMsg(resultBean.getMsg()); } - String businessSid = resultBean.getData(); + String businessSid = dto.getSid(); loanDiff = fetchBySid(businessSid); //创建BusinessVariables实体对象 BusinessVariables bv = new BusinessVariables(); @@ -120,7 +120,7 @@ public class LoanDiffService extends MybatisBaseService updateApply(SubmitDiffDto dto) { - return null; - } - public ResultBean complete(BusinessVariables bv) { ResultBean rb = ResultBean.fireFail(); String businessSid = bv.getBusinessSid(); @@ -420,10 +416,86 @@ public class LoanDiffService extends MybatisBaseService loanDiffDetailsList = dto.getLoanDiffDetails(); + loanDiffDetailsList.removeAll(Collections.singleton(null)); + if (!loanDiffDetailsList.isEmpty()) { + for (int i = 0; i < loanDiffDetailsList.size(); i++) { + LoanDiffDetailsDto loanDiffDetailsDto = loanDiffDetailsList.get(i); + LoanDiffDetails loanDiffDetails1 = loanDiffDetailsService.fetchBySid(loanDiffDetailsDto.getSid()); + BeanUtil.copyProperties(loanDiffDetailsDto, loanDiffDetails1, "sid"); + loanDiffDetailsService.updateById(loanDiffDetails1); + } + } + List filesList = dto.getFilesList(); + filesList.removeAll(Collections.singleton(null)); + if (!filesList.isEmpty()) { + String fils = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); + loanDiff.setFiles(fils); + baseMapper.updateById(loanDiff); + } + return rb.success(); + } + + public ResultBean details(String sid) { + ResultBean rb = ResultBean.fireFail(); + LoanDiffInitDetails details = new LoanDiffInitDetails(); + LoanDiff loanDiff = fetchBySid(sid); + if (loanDiff == null) { + return rb.setMsg("该申请不存在"); + } + details.setCreateDept(loanDiff.getCreateDept()); + details.setCreateByName(loanDiff.getCreateByName()); + details.setRemarks(loanDiff.getRemarks()); + details.setSid(sid); + details.setCreateDate(DateUtil.format(loanDiff.getCreateTime(), "yyyy-MM-dd")); + String files = loanDiff.getFiles(); + if (StringUtils.isNotBlank(files)) { + List stringList = Arrays.asList(files.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); + details.setFiles(stringList); + } + List detailssVoList = loanDiffDetailsService.selectByMainSid(sid); + detailssVoList.removeAll(Collections.singleton(null)); + if (!detailssVoList.isEmpty()) { + details.setLoanDiffDetails(detailssVoList); + } + return rb.success().setData(details); + } + + public ResultBean appDetails(String sid) { + ResultBean rb = ResultBean.fireFail(); + LoanDiff loanDiff = fetchBySid(sid); + LoanDiffDetailsssApp loanDiffDetailsssApp = new LoanDiffDetailsssApp(); + loanDiffDetailsssApp.setSid(sid); + loanDiffDetailsssApp.setPublishInfo(loanDiff.getCreateDept() + "-" + loanDiff.getCreateByName()); + loanDiffDetailsssApp.setRemarks(loanDiff.getRemarks()); + loanDiffDetailsssApp.setTime(DateUtil.format(loanDiff.getCreateTime(), "yyyy-MM-dd")); + loanDiffDetailsssApp.setProcInsId(loanDiff.getProcInstId()); + loanDiffDetailsssApp.setTaskId(loanDiff.getTaskId()); + String files = loanDiff.getFiles(); + if (StringUtils.isNotBlank(files)) { + List stringList = Arrays.asList(files.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); + loanDiffDetailsssApp.setFiles(stringList); + } + List detailssVoList = loanDiffDetailsService.selectByMainSid2(sid); + detailssVoList.removeAll(Collections.singleton(null)); + if (!detailssVoList.isEmpty()) { + loanDiffDetailsssApp.setRecords(detailssVoList); + } + return rb.success().setData(loanDiffDetailsssApp); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.java index 80fb6ede34..1dd759ee16 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.java @@ -1,9 +1,13 @@ package com.yxt.anrui.riskcenter.biz.loandiffdetails; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.anrui.riskcenter.api.loandiffdetails.AppRecords; import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetails; +import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetailssVo; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * @description: * @author: dimengzhe @@ -11,4 +15,7 @@ import org.apache.ibatis.annotations.Mapper; **/ @Mapper public interface LoanDiffDetailsMapper extends BaseMapper { + List selectByMainSid(String sid); + + List selectByMainSid2(String sid); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.xml index b8f8f47955..2799e41daf 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.xml @@ -1,4 +1,32 @@ + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsService.java index a8c83a0caa..df06b47866 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsService.java @@ -1,11 +1,15 @@ package com.yxt.anrui.riskcenter.biz.loandiffdetails; import com.yxt.anrui.riskcenter.api.loandiff.LoanDiff; +import com.yxt.anrui.riskcenter.api.loandiffdetails.AppRecords; import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetails; +import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetailssVo; import com.yxt.anrui.riskcenter.biz.loandiff.LoanDiffMapper; import com.yxt.common.base.service.MybatisBaseService; import org.springframework.stereotype.Service; +import java.util.List; + /** * @description: * @author: dimengzhe @@ -13,4 +17,11 @@ import org.springframework.stereotype.Service; **/ @Service public class LoanDiffDetailsService extends MybatisBaseService { + public List selectByMainSid(String sid) { + return baseMapper.selectByMainSid(sid); + } + + public List selectByMainSid2(String sid) { + return baseMapper.selectByMainSid2(sid); + } } diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/AppRecordsVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/AppRecordsVo.java new file mode 100644 index 0000000000..fa135332ee --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/AppRecordsVo.java @@ -0,0 +1,51 @@ +package com.yxt.anrui.terminal.api.risk.loandiff; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +@Data +public class AppRecordsVo { + + @ApiModelProperty("车架号") + private String vin; + @ApiModelProperty("资方") + private String zf; + @ApiModelProperty("贷款人") + private String loanName; + @ApiModelProperty("应放") + private String fk1; + @ApiModelProperty("实放") + private String fk2; + + @ApiModelProperty("主产品贴息:预计") + private String mainTx1; + @ApiModelProperty("主产品信息:实际") + private String mainTx2; + @ApiModelProperty("保证金预计") + private String dkbzj1; + @ApiModelProperty("保证金实际") + private String dkbzj2; + + private String otherTx1; + + private String otherTx2; + private String diffOtherTx; + + @ApiModelProperty("意外险:预计") + private String ywx1; + @ApiModelProperty("意外险:实扣") + private String ywx2; + @ApiModelProperty("放款金额:差额") + private String diffFk; + @ApiModelProperty("意外险:差额") + private String diffYwx; + @ApiModelProperty("主产品厂家贴息:差额") + private String diffMainTx; + @ApiModelProperty("贷款保证金:差额") + private String diffDkbzj; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/LoanDiffsFeign.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/LoanDiffsFeign.java new file mode 100644 index 0000000000..6c9de938e5 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/LoanDiffsFeign.java @@ -0,0 +1,56 @@ +package com.yxt.anrui.terminal.api.risk.loandiff; + +import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffApplyDto; +import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffApplyQuery; +import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffTaskQuery; +import com.yxt.anrui.terminal.api.risk.loantemplate.flowable.TemplatTaskQuery; +import com.yxt.anrui.terminal.api.risk.loantemplate.flowable.TemplateApplyDto; +import com.yxt.anrui.terminal.api.risk.loantemplate.flowable.TemplateApplyQuery; +import com.yxt.anrui.terminal.api.risk.solutions.SolutionsFeignFallback; +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: 2023/11/14 + **/ +@FeignClient( + contextId = "terminal-LoanDiffs", + name = "anrui-terminal", + path = "/risk/v1/loandiff", + fallback = LoanDiffsFeignFallback.class) +public interface LoanDiffsFeign { + @ApiOperation("详情") + @PostMapping("/details/{sid}") + @ResponseBody + ResultBean details(@PathVariable("sid") String sid); + + @ApiOperation("办理") + @PutMapping("/agree") + @ResponseBody + ResultBean agreeLoanDiffApplyInfo(@RequestBody LoanDiffApplyDto dto); + + @ApiOperation("驳回") + @PutMapping("/reject") + @ResponseBody + ResultBean rejectLoanDiffApplyInfo(@RequestBody LoanDiffTaskQuery query); + + @ApiOperation("撤回") + @PutMapping("/recall") + @ResponseBody + ResultBean recallLoanDiffApplyInfo(@RequestBody LoanDiffTaskQuery query); + + @ApiOperation("终止") + @PutMapping("/stop") + @ResponseBody + ResultBean stopLoanDiffApplyInfo(@RequestBody LoanDiffTaskQuery query); + + @ApiOperation("获取流程操作标题") + @GetMapping("/getFlowOperateTitle") + @ResponseBody + ResultBean getFlowOperateTitle(@SpringQueryMap LoanDiffApplyQuery query); +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/LoanDiffsFeignFallback.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/LoanDiffsFeignFallback.java new file mode 100644 index 0000000000..e8443a824a --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/LoanDiffsFeignFallback.java @@ -0,0 +1,12 @@ +package com.yxt.anrui.terminal.api.risk.loandiff; + +import org.springframework.stereotype.Component; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +@Component +public class LoanDiffsFeignFallback { +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/LoanDiffsVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/LoanDiffsVo.java new file mode 100644 index 0000000000..75c3ce179c --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/LoanDiffsVo.java @@ -0,0 +1,32 @@ +package com.yxt.anrui.terminal.api.risk.loandiff; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +@Data +public class LoanDiffsVo { + + private String sid; + @ApiModelProperty("申请部门-申请人") + private String publishInfo; + @ApiModelProperty("申请时间") + private String time; + @ApiModelProperty("备注") + private String remarks; + + private List files = new ArrayList<>(); + + private String taskId; + + private String procInsId; + + private List records = new ArrayList<>(); +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/flowable/LoanDiffApplyDto.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/flowable/LoanDiffApplyDto.java new file mode 100644 index 0000000000..efc2dee5c4 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/flowable/LoanDiffApplyDto.java @@ -0,0 +1,37 @@ +package com.yxt.anrui.terminal.api.risk.loandiff.flowable; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +@Data +public class LoanDiffApplyDto { + + @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; + + private String orgPath; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/flowable/LoanDiffApplyQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/flowable/LoanDiffApplyQuery.java new file mode 100644 index 0000000000..01c712eefd --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/flowable/LoanDiffApplyQuery.java @@ -0,0 +1,23 @@ +package com.yxt.anrui.terminal.api.risk.loandiff.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +@Data +public class LoanDiffApplyQuery { + + @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/loandiff/flowable/LoanDiffTaskQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/flowable/LoanDiffTaskQuery.java new file mode 100644 index 0000000000..c1fcb37806 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/flowable/LoanDiffTaskQuery.java @@ -0,0 +1,45 @@ +package com.yxt.anrui.terminal.api.risk.loandiff.flowable; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/14 + **/ +@Data +public class LoanDiffTaskQuery { + + /** + * 终止、驳回、撤回 + */ + @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/loandiff/LoanDiffsRest.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsRest.java new file mode 100644 index 0000000000..ff7279fba1 --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsRest.java @@ -0,0 +1,54 @@ +package com.yxt.anrui.terminal.biz.risk.loandiff; + +import com.yxt.anrui.terminal.api.risk.loandiff.LoanDiffsFeign; +import com.yxt.anrui.terminal.api.risk.loandiff.LoanDiffsVo; +import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffApplyDto; +import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffApplyQuery; +import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffTaskQuery; +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: 2023/11/14 + **/ +@Controller +@RequestMapping("/risk/v1/loandiff") +public class LoanDiffsRest implements LoanDiffsFeign { + + @Autowired + private LoanDiffsService loanDiffsService; + + @Override + public ResultBean details(String sid) { + return loanDiffsService.details(sid); + } + + @Override + public ResultBean agreeLoanDiffApplyInfo(LoanDiffApplyDto dto) { + return loanDiffsService.agreeLoanDiffApplyInfo(dto); + } + + @Override + public ResultBean rejectLoanDiffApplyInfo(LoanDiffTaskQuery query) { + return loanDiffsService.rejectLoanDiffApplyInfo(query); + } + + @Override + public ResultBean recallLoanDiffApplyInfo(LoanDiffTaskQuery query) { + return loanDiffsService.recallLoanDiffApplyInfo(query); + } + + @Override + public ResultBean stopLoanDiffApplyInfo(LoanDiffTaskQuery query) { + return loanDiffsService.stopLoanDiffApplyInfo(query); + } + + @Override + public ResultBean getFlowOperateTitle(LoanDiffApplyQuery query) { + return loanDiffsService.getFlowOperateTitle(query); + } +} diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsService.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsService.java new file mode 100644 index 0000000000..e9b3253df2 --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsService.java @@ -0,0 +1,118 @@ +package com.yxt.anrui.terminal.biz.risk.loandiff; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffDetailsssApp; +import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffFeign; +import com.yxt.anrui.riskcenter.api.loandiff.flowable.DiffApplyNodeQuery; +import com.yxt.anrui.riskcenter.api.loandiff.flowable.DiffApplyNodeVo; +import com.yxt.anrui.riskcenter.api.loandiff.flowable.DiffApplyTaskQuery; +import com.yxt.anrui.riskcenter.api.loandiff.flowable.DiffCompleteDto; +import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyNodeQuery; +import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyNodeVo; +import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyTaskQuery; +import com.yxt.anrui.terminal.api.risk.loandiff.LoanDiffsVo; +import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffApplyDto; +import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffApplyQuery; +import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffTaskQuery; +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: 2023/11/14 + **/ +@Service +public class LoanDiffsService { + + @Autowired + private LoanDiffFeign loanDiffFeign; + + public ResultBean details(String sid) { + ResultBean rb = ResultBean.fireFail(); + ResultBean resultBean = loanDiffFeign.appDetails(sid); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + LoanDiffsVo loanDiffsVo = new LoanDiffsVo(); + BeanUtil.copyProperties(resultBean.getData(), loanDiffsVo); + return rb.success().setData(loanDiffsVo); + } + + public ResultBean agreeLoanDiffApplyInfo(LoanDiffApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + DiffCompleteDto diffCompleteDto = new DiffCompleteDto(); + BeanUtil.copyProperties(dto, diffCompleteDto); + ResultBean resultBean = loanDiffFeign.complete(diffCompleteDto); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean rejectLoanDiffApplyInfo(LoanDiffTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + DiffApplyTaskQuery diffApplyTaskQuery = new DiffApplyTaskQuery(); + BeanUtil.copyProperties(query, diffApplyTaskQuery); + ResultBean resultBean = loanDiffFeign.taskReject(diffApplyTaskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean recallLoanDiffApplyInfo(LoanDiffTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + DiffApplyTaskQuery diffApplyTaskQuery = new DiffApplyTaskQuery(); + BeanUtil.copyProperties(query, diffApplyTaskQuery); + ResultBean resultBean = loanDiffFeign.revokeProcess(diffApplyTaskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean stopLoanDiffApplyInfo(LoanDiffTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + DiffApplyTaskQuery diffApplyTaskQuery = new DiffApplyTaskQuery(); + BeanUtil.copyProperties(query, diffApplyTaskQuery); + ResultBean resultBean = loanDiffFeign.breakProcess(diffApplyTaskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean getFlowOperateTitle(LoanDiffApplyQuery query) { + ResultBean rb = ResultBean.fireFail(); + //0 上一环节 1下一环节 + int next = query.getNext(); + DiffApplyNodeQuery getNodeQuery = new DiffApplyNodeQuery(); + BeanUtil.copyProperties(query, getNodeQuery); + String data = ""; + if (next == 0) { + ResultBean> getPreviousNodesForReject = loanDiffFeign.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 = loanDiffFeign.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); + } +} From 17d93efabe15851acf284d866cc706879c15de0e Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Wed, 15 Nov 2023 11:08:07 +0800 Subject: [PATCH 09/16] =?UTF-8?q?=E6=94=BE=E6=AC=BE=E5=B7=AE=E9=A2=9D?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../riskcenter/api/loandiff/DiffFile.java | 14 +++ .../riskcenter/api/loandiff/LoanDiffDto.java | 7 +- .../api/loandiff/LoanDiffFeign.java | 5 ++ .../api/loandiff/LoanDiffInitDetails.java | 12 ++- .../api/loandiff/LoanDiffQuery.java | 5 +- .../riskcenter/api/loandiff/LoanDiffVo.java | 3 +- .../api/loandiff/flowable/DelegateQuery.java | 24 ++++++ .../loandiffdetails/LoanDiffDetailssVo.java | 7 +- .../riskcenter/biz/loandiff/LoanDiffRest.java | 5 ++ .../biz/loandiff/LoanDiffService.java | 86 +++++++++++++++++-- .../api/risk/loandiff/LoanDiffsFeign.java | 6 ++ .../loandiff/flowable/DiffDelegateQuery.java | 26 ++++++ .../biz/risk/loandiff/LoanDiffsRest.java | 6 ++ .../biz/risk/loandiff/LoanDiffsService.java | 16 +++- 14 files changed, 201 insertions(+), 21 deletions(-) create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/DiffFile.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DelegateQuery.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/flowable/DiffDelegateQuery.java diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/DiffFile.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/DiffFile.java new file mode 100644 index 0000000000..bee1494bf8 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/DiffFile.java @@ -0,0 +1,14 @@ +package com.yxt.anrui.riskcenter.api.loandiff; + +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/15 + **/ +@Data +public class DiffFile { + + private String url; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffDto.java index 631519bbc2..1b7bc658f9 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffDto.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffDto.java @@ -4,6 +4,7 @@ import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetailsDto; import com.yxt.common.core.dto.Dto; import lombok.Data; +import java.util.ArrayList; import java.util.List; /** @@ -17,5 +18,9 @@ public class LoanDiffDto implements Dto { private String sid; private List loanDiffDetails; - private List filesList; +// private List filesList; + + private List filesList = new ArrayList<>(); + + private String remarks; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeign.java index 426eb4e1f9..db18da996d 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeign.java @@ -73,4 +73,9 @@ public interface LoanDiffFeign { @PostMapping(value = "/appDetails/{sid}") ResultBean appDetails(@PathVariable("sid")String sid); + @ApiOperation(value = "加签") + @PostMapping(value = "/delegate") + @ResponseBody + public ResultBean delegate(@RequestBody DelegateQuery query); + } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffInitDetails.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffInitDetails.java index b5d28bfcc6..b7af333a1b 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffInitDetails.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffInitDetails.java @@ -1,6 +1,7 @@ package com.yxt.anrui.riskcenter.api.loandiff; import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetailssVo; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.ArrayList; @@ -15,14 +16,17 @@ import java.util.List; public class LoanDiffInitDetails { private String sid; - + @ApiModelProperty("申请部门") private String createDept; - + @ApiModelProperty("申请人") private String createByName; + @ApiModelProperty("申请日期") private String createDate; + @ApiModelProperty("备注") private String remarks; - - private List files = new ArrayList<>(); + @ApiModelProperty("附件") +// private List files = new ArrayList<>(); + private List filesList = new ArrayList<>(); private List loanDiffDetails = new ArrayList<>(); } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffQuery.java index 30cc800263..b3b776795f 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffQuery.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffQuery.java @@ -22,9 +22,12 @@ public class LoanDiffQuery implements Query { private String createTimeStart; @ApiModelProperty("申请日期结束时间") private String createTimeEnd; - + @ApiModelProperty("机构全路径sid") private String orgPath; + @ApiModelProperty("菜单url") private String menuUrl; + @ApiModelProperty("用户sid") + private String userSid; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffVo.java index 37ad002ac0..003ffb840f 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffVo.java @@ -28,7 +28,8 @@ public class LoanDiffVo implements Vo { private String billNo; @ApiModelProperty("备注") private String remarks; - + @ApiModelProperty("流程定义id") private String procDefId; + @ApiModelProperty("流程实例id") private String procInstId; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DelegateQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DelegateQuery.java new file mode 100644 index 0000000000..c1bd6472bf --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DelegateQuery.java @@ -0,0 +1,24 @@ +package com.yxt.anrui.riskcenter.api.loandiff.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/15 + **/ +@Data +public class DelegateQuery { + + @ApiModelProperty + private String userSid; + @ApiModelProperty("流程实例id") + 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/loandiffdetails/LoanDiffDetailssVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssVo.java index d525cca6e6..e3b87b3587 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssVo.java @@ -15,7 +15,7 @@ import java.math.BigDecimal; public class LoanDiffDetailssVo implements Vo { private static final long serialVersionUID = 8471596886220398279L; - + private String sid; @ApiModelProperty("资方") private String bankName; @@ -29,12 +29,14 @@ public class LoanDiffDetailssVo implements Vo { private BigDecimal makeLoan; @ApiModelProperty("放款金额:实放") private BigDecimal realityLoan; + @ApiModelProperty("放款金额:差额") private BigDecimal diffLoan; @ApiModelProperty("主产品厂家贴息:预计") private BigDecimal makeDiscount; @ApiModelProperty("主产品厂家贴息:实际") private BigDecimal realityDiscount; + @ApiModelProperty("主产品厂家贴息:差额") private BigDecimal diffDiscount; @ApiModelProperty("其他融厂家贴息:预计") @@ -42,6 +44,7 @@ public class LoanDiffDetailssVo implements Vo { @ApiModelProperty("其他融厂家贴息:实际") private BigDecimal realityOtherDiscount; + @ApiModelProperty("其他融厂家贴息:差额") private BigDecimal diffOtherDiscount; @ApiModelProperty("固定贷款保证金:预计") @@ -49,6 +52,7 @@ public class LoanDiffDetailssVo implements Vo { @ApiModelProperty("固定贷款保证金:实际") private BigDecimal realityLoanMargin; + @ApiModelProperty("固定贷款保证金:差额") private BigDecimal diffLoanMargin; @ApiModelProperty("意外险:已收") @@ -56,5 +60,6 @@ public class LoanDiffDetailssVo implements Vo { @ApiModelProperty("意外险:实扣") private BigDecimal realityPremium; + @ApiModelProperty("意外险:差额") private BigDecimal diffPremium; } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffRest.java index d532bd3fc2..273d7af1d1 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffRest.java @@ -90,4 +90,9 @@ public class LoanDiffRest implements LoanDiffFeign { public ResultBean appDetails(String sid) { return loanDiffService.appDetails(sid); } + + @Override + public ResultBean delegate(DelegateQuery query) { + return loanDiffService.delegate(query); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java index a1a3b36978..a056a0041a 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java @@ -6,14 +6,18 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.google.common.util.concurrent.ThreadFactoryBuilder; +import com.yxt.anrui.base.api.busvehicleapply.BusVehicleApplyVo; import com.yxt.anrui.flowable.api.flow.FlowableFeign; import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; +import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; import com.yxt.anrui.flowable.api.flow2.FlowFeign; import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign; import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo; import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; +import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.riskcenter.api.loandiff.*; import com.yxt.anrui.riskcenter.api.loandiff.flowable.*; import com.yxt.anrui.riskcenter.api.loandiffdetails.*; @@ -64,6 +68,8 @@ public class LoanDiffService extends MybatisBaseService defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (org.apache.commons.lang3.StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = query.getOrgPath(); + orgSidPath = orgSidPath + "/"; + int i1 = orgSidPath.indexOf("/"); + int i2 = orgSidPath.indexOf("/", i1 + 1); + int i3 = orgSidPath.indexOf("/", i2 + 1); + int i4 = orgSidPath.indexOf("/", i3 + 1); + String orgLevelKey = defaultIdReltBean.getData(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i1); + qw.like("ld.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("ld.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("ld.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("ld.orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("ld.createBySid", query.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } //申请日期开始时间 String createTimeStart = query.getCreateTimeStart(); //申请日期结束时间 @@ -431,6 +478,7 @@ public class LoanDiffService extends MybatisBaseService loanDiffDetailsList = dto.getLoanDiffDetails(); loanDiffDetailsList.removeAll(Collections.singleton(null)); if (!loanDiffDetailsList.isEmpty()) { @@ -441,12 +489,18 @@ public class LoanDiffService extends MybatisBaseService filesList = dto.getFilesList(); - filesList.removeAll(Collections.singleton(null)); - if (!filesList.isEmpty()) { - String fils = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); - loanDiff.setFiles(fils); - baseMapper.updateById(loanDiff); +// List filesList = dto.getFilesList(); + List fileLists = dto.getFilesList(); + fileLists.removeAll(Collections.singleton(null)); + if (!fileLists.isEmpty()) { + List files = fileLists.stream().map(v->v.getUrl()).collect(Collectors.toList()); + files.removeAll(Collections.singleton(null)); + if(!files.isEmpty()){ + String filss = String.join(",", files).replaceAll(fileUploadComponent.getUrlPrefix(), ""); + loanDiff.setFiles(filss); + baseMapper.updateById(loanDiff); + } + } return rb.success(); } @@ -466,7 +520,13 @@ public class LoanDiffService extends MybatisBaseService stringList = Arrays.asList(files.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); - details.setFiles(stringList); + List fileList = new ArrayList<>(); + for (int i = 0; i < stringList.size(); i++) { + DiffFile diffFile = new DiffFile(); + diffFile.setUrl(stringList.get(i)); + fileList.add(diffFile); + } + details.setFilesList(fileList); } List detailssVoList = loanDiffDetailsService.selectByMainSid(sid); detailssVoList.removeAll(Collections.singleton(null)); @@ -498,4 +558,12 @@ public class LoanDiffService extends MybatisBaseService getFlowOperateTitle(@SpringQueryMap LoanDiffApplyQuery query); + + @ApiOperation(value = "加签") + @PutMapping(value = "/delegate") + @ResponseBody + public ResultBean delegate(@RequestBody DiffDelegateQuery delegateQuery); } diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/flowable/DiffDelegateQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/flowable/DiffDelegateQuery.java new file mode 100644 index 0000000000..cec4838dbd --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/flowable/DiffDelegateQuery.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.terminal.api.risk.loandiff.flowable; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/11/15 + **/ +@Data +public class DiffDelegateQuery { + + @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-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsRest.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsRest.java index ff7279fba1..7fef54bcae 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsRest.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsRest.java @@ -2,6 +2,7 @@ package com.yxt.anrui.terminal.biz.risk.loandiff; import com.yxt.anrui.terminal.api.risk.loandiff.LoanDiffsFeign; import com.yxt.anrui.terminal.api.risk.loandiff.LoanDiffsVo; +import com.yxt.anrui.terminal.api.risk.loandiff.flowable.DiffDelegateQuery; import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffApplyDto; import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffApplyQuery; import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffTaskQuery; @@ -51,4 +52,9 @@ public class LoanDiffsRest implements LoanDiffsFeign { public ResultBean getFlowOperateTitle(LoanDiffApplyQuery query) { return loanDiffsService.getFlowOperateTitle(query); } + + @Override + public ResultBean delegate(DiffDelegateQuery delegateQuery) { + return loanDiffsService.delegate(delegateQuery); + } } diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsService.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsService.java index e9b3253df2..829cb6dad8 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsService.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsService.java @@ -1,16 +1,15 @@ package com.yxt.anrui.terminal.biz.risk.loandiff; import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.base.api.busvehicleapply.flow.AppBusVehicleApplyDelegateQuery; import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffDetailsssApp; import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffFeign; -import com.yxt.anrui.riskcenter.api.loandiff.flowable.DiffApplyNodeQuery; -import com.yxt.anrui.riskcenter.api.loandiff.flowable.DiffApplyNodeVo; -import com.yxt.anrui.riskcenter.api.loandiff.flowable.DiffApplyTaskQuery; -import com.yxt.anrui.riskcenter.api.loandiff.flowable.DiffCompleteDto; +import com.yxt.anrui.riskcenter.api.loandiff.flowable.*; import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyNodeQuery; import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyNodeVo; import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyTaskQuery; import com.yxt.anrui.terminal.api.risk.loandiff.LoanDiffsVo; +import com.yxt.anrui.terminal.api.risk.loandiff.flowable.DiffDelegateQuery; import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffApplyDto; import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffApplyQuery; import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffTaskQuery; @@ -115,4 +114,13 @@ public class LoanDiffsService { } return rb.success().setData(data); } + + public ResultBean delegate(DiffDelegateQuery delegateQuery) { + ResultBean rb = ResultBean.fireFail(); + DelegateQuery delegateQuery1 = new + DelegateQuery(); + BeanUtil.copyProperties(delegateQuery, delegateQuery1); + ResultBean delegate = loanDiffFeign.delegate(delegateQuery1); + return rb.success(); + } } From c8ac330aa13d8a60a9fdfd385541443d61d4d709 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Wed, 15 Nov 2023 16:04:14 +0800 Subject: [PATCH 10/16] =?UTF-8?q?=E6=94=BE=E6=AC=BE=E5=B7=AE=E9=A2=9D?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java | 2 +- .../anrui/riskcenter/api/loandiff/LoanDiffInitDetails.java | 5 +++++ .../yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java | 2 ++ .../yxt/anrui/terminal/api/risk/loandiff/LoanDiffsFeign.java | 4 ++-- .../yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsRest.java | 2 +- 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java b/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java index 48364f40d3..718325c221 100644 --- a/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java +++ b/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java @@ -56,7 +56,7 @@ public enum ProcDefEnum { LOANCREDITAPPEALAPPLY("信用审核申诉", "process_gygvxw8k:2:5212504"), DEALERFILINGAPPLY("经销商备案", "process_jdu35cog:9:6652504"), LOANTEMPLATEAPPLY("定制金融方案", "process_9q5omebi:2:2685008"), - LOANDIFFAPPLY("放款差额确认", ""), + LOANDIFFAPPLY("放款差额确认", "process_f70x5q33:1:6845004"), LOANHOMEVISITAPPEALAPPLY("家访考察申诉", "process_8ujil3h3:1:3665004"), BUSVALCUSTFILING("价值客户备案申请", "process_n8fwpitk:2:5085004"), LOANCUSTOMERRECORD("欠款客户备案", "process_x6o0chx9:4:6055004"), diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffInitDetails.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffInitDetails.java index b7af333a1b..f27c32d057 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffInitDetails.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffInitDetails.java @@ -29,4 +29,9 @@ public class LoanDiffInitDetails { private List filesList = new ArrayList<>(); private List loanDiffDetails = new ArrayList<>(); + + @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/loandiff/LoanDiffService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java index a056a0041a..f4a9ab61a4 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java @@ -517,6 +517,8 @@ public class LoanDiffService extends MybatisBaseService stringList = Arrays.asList(files.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/LoanDiffsFeign.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/LoanDiffsFeign.java index 850f451590..e88dea2805 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/LoanDiffsFeign.java +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/LoanDiffsFeign.java @@ -22,11 +22,11 @@ import org.springframework.web.bind.annotation.*; @FeignClient( contextId = "terminal-LoanDiffs", name = "anrui-terminal", - path = "/risk/v1/loandiff", + path = "/riskcenter/v1/loandiff", fallback = LoanDiffsFeignFallback.class) public interface LoanDiffsFeign { @ApiOperation("详情") - @PostMapping("/details/{sid}") + @GetMapping("/detail/{sid}") @ResponseBody ResultBean details(@PathVariable("sid") String sid); diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsRest.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsRest.java index 7fef54bcae..520b141374 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsRest.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsRest.java @@ -17,7 +17,7 @@ import org.springframework.web.bind.annotation.RequestMapping; * @date: 2023/11/14 **/ @Controller -@RequestMapping("/risk/v1/loandiff") +@RequestMapping("/riskcenter/v1/loandiff") public class LoanDiffsRest implements LoanDiffsFeign { @Autowired From 0b3aa0731ec744cb42908af87849d355a6b9a9d6 Mon Sep 17 00:00:00 2001 From: yunuo970428 <405378304@qq.com> Date: Wed, 15 Nov 2023 17:22:07 +0800 Subject: [PATCH 11/16] =?UTF-8?q?=E5=AE=8C=E5=96=84=E6=94=BE=E6=AC=BE?= =?UTF-8?q?=E5=B7=AE=E9=A2=9D=E7=A1=AE=E8=AE=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../loanbalancerecognition.js | 98 +++++ anrui-riskcenter-ui/src/router/index.js | 39 +- .../loanbalancerecognition.vue | 298 +++++++++++++ .../loanbalancerecognitionAdd.vue | 244 ++++++++++ .../loanbalancerecognitionInfo.vue | 147 +++++++ .../loanbalancerecognitionDaiBan.vue | 415 ++++++++++++++++++ .../loanbalancerecognitionEdit.vue | 260 +++++++++++ .../loanbalancerecognitionYiBan.vue | 207 +++++++++ 8 files changed, 1707 insertions(+), 1 deletion(-) create mode 100644 anrui-riskcenter-ui/src/api/loanbalancerecognition/loanbalancerecognition.js create mode 100644 anrui-riskcenter-ui/src/views/loanbalancerecognition/loanbalancerecognition.vue create mode 100644 anrui-riskcenter-ui/src/views/loanbalancerecognition/loanbalancerecognitionAdd.vue create mode 100644 anrui-riskcenter-ui/src/views/loanbalancerecognition/loanbalancerecognitionInfo.vue create mode 100644 anrui-riskcenter-ui/src/views/workFlow/fangkuanquerenFlow/loanbalancerecognitionDaiBan.vue create mode 100644 anrui-riskcenter-ui/src/views/workFlow/fangkuanquerenFlow/loanbalancerecognitionEdit.vue create mode 100644 anrui-riskcenter-ui/src/views/workFlow/fangkuanquerenFlow/loanbalancerecognitionYiBan.vue diff --git a/anrui-riskcenter-ui/src/api/loanbalancerecognition/loanbalancerecognition.js b/anrui-riskcenter-ui/src/api/loanbalancerecognition/loanbalancerecognition.js new file mode 100644 index 0000000000..9ca1039510 --- /dev/null +++ b/anrui-riskcenter-ui/src/api/loanbalancerecognition/loanbalancerecognition.js @@ -0,0 +1,98 @@ +import request from '@/utils/request' + +export default { + // 查询分页列表 + listPage: function(params) { + return request({ + url: '/riskcenter/v1/LoanDiff/listPage', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + saveOrUpdate: function(data) { + return request({ + url: '/riskcenter/v1/LoanDiff/update', + method: 'post', + data: data, + headers: { 'Content-Type': 'application/json' } + }) + }, + fetchBySid: function(data) { + return request({ + url: '/riskcenter/v1/LoanDiff/details', + method: 'get', + params: data + }) + }, + // 提交流程 + submit: function(params) { + return request({ + url: '/riskcenter/v1/LoanDiff/submitDiffApply', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 流程审批(同意) + complete: function(params) { + return request({ + url: '/riskcenter/v1/LoanDiff/complete', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 流程审批(加签) + delegate: function(params) { + return request({ + url: '/riskcenter/v1/LoanDiff/delegate', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 流程审批(驳回) + reject: function(params) { + return request({ + url: '/riskcenter/v1/LoanDiff/reject', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 流程审批(终止) + breakProcess: function(params) { + return request({ + url: '/riskcenter/v1/LoanDiff/breakProcess', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 流程审批(撤回) + revokeProcess: function(params) { + return request({ + url: '/riskcenter/v1/LoanDiff/revokeProcess', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 审批流程(同意)获取下一环节 + getNextNodesForSubmit: function(data) { + return request({ + url: '/riskcenter/v1/LoanDiff/getNextNodesForSubmit', + method: 'get', + params: data + }) + }, + // 审批流程(驳回)获取上一环节 + getPreviousNodesForReject: function(data) { + return request({ + url: '/riskcenter/v1/LoanDiff/getPreviousNodesForReject', + method: 'get', + params: data + }) + } +} diff --git a/anrui-riskcenter-ui/src/router/index.js b/anrui-riskcenter-ui/src/router/index.js index e091b38cd6..863498f783 100644 --- a/anrui-riskcenter-ui/src/router/index.js +++ b/anrui-riskcenter-ui/src/router/index.js @@ -331,6 +331,22 @@ export const constantRoutes = [ } ] }, + { + path: '/loanbalancerecognition', + component: Layout, + redirect: '/loanbalancerecognition', + meta: { + title: '放款差额确认' + }, + children: [ + { + path: '/loanbalancerecognition/loanbalancerecognition', + component: () => import('@/views/loanbalancerecognition/loanbalancerecognition.vue'), + name: 'LoanBalanceRecognition', + meta: { title: '放款差额确认', noCache: true } + } + ] + }, // 流程审批 // 金融产品政策报备--编辑 @@ -468,7 +484,28 @@ export const constantRoutes = [ component: () => import('@/views/workFlow/jiafangshensuFlow/homeappealYiBan.vue'), name: 'HomeAppealYiBan' - } + }, + // 放款差额确认--编辑 + { + path: '/fangkuanquerenFlow/loanbalancerecognitionEdit', + component: () => + import('@/views/workFlow/fangkuanquerenFlow/loanbalancerecognitionEdit.vue'), + name: 'LoanBalanceRecognitionEdit' + }, + // 放款差额确认--待办 + { + path: '/fangkuanquerenFlow/loanbalancerecognitionDaiBan', + component: () => + import('@/views/workFlow/fangkuanquerenFlow/loanbalancerecognitionDaiBan.vue'), + name: 'LoanBalanceRecognitionDaiBan' + }, + // 放款差额确认--已办 + { + path: '/fangkuanquerenFlow/loanbalancerecognitionYiBan', + component: () => + import('@/views/workFlow/fangkuanquerenFlow/loanbalancerecognitionYiBan.vue'), + name: 'LoanBalanceRecognitionYiBan' + }, // 404 page must be placed at the end !!! // { path: '*', redirect: '/404', hidden: true } ] diff --git a/anrui-riskcenter-ui/src/views/loanbalancerecognition/loanbalancerecognition.vue b/anrui-riskcenter-ui/src/views/loanbalancerecognition/loanbalancerecognition.vue new file mode 100644 index 0000000000..0a156a4ec0 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/loanbalancerecognition/loanbalancerecognition.vue @@ -0,0 +1,298 @@ + + + + diff --git a/anrui-riskcenter-ui/src/views/loanbalancerecognition/loanbalancerecognitionAdd.vue b/anrui-riskcenter-ui/src/views/loanbalancerecognition/loanbalancerecognitionAdd.vue new file mode 100644 index 0000000000..76eca4ae20 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/loanbalancerecognition/loanbalancerecognitionAdd.vue @@ -0,0 +1,244 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/loanbalancerecognition/loanbalancerecognitionInfo.vue b/anrui-riskcenter-ui/src/views/loanbalancerecognition/loanbalancerecognitionInfo.vue new file mode 100644 index 0000000000..2d607bfec6 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/loanbalancerecognition/loanbalancerecognitionInfo.vue @@ -0,0 +1,147 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/workFlow/fangkuanquerenFlow/loanbalancerecognitionDaiBan.vue b/anrui-riskcenter-ui/src/views/workFlow/fangkuanquerenFlow/loanbalancerecognitionDaiBan.vue new file mode 100644 index 0000000000..19a980d511 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/workFlow/fangkuanquerenFlow/loanbalancerecognitionDaiBan.vue @@ -0,0 +1,415 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/workFlow/fangkuanquerenFlow/loanbalancerecognitionEdit.vue b/anrui-riskcenter-ui/src/views/workFlow/fangkuanquerenFlow/loanbalancerecognitionEdit.vue new file mode 100644 index 0000000000..9ffc081afd --- /dev/null +++ b/anrui-riskcenter-ui/src/views/workFlow/fangkuanquerenFlow/loanbalancerecognitionEdit.vue @@ -0,0 +1,260 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/workFlow/fangkuanquerenFlow/loanbalancerecognitionYiBan.vue b/anrui-riskcenter-ui/src/views/workFlow/fangkuanquerenFlow/loanbalancerecognitionYiBan.vue new file mode 100644 index 0000000000..64b1a7456a --- /dev/null +++ b/anrui-riskcenter-ui/src/views/workFlow/fangkuanquerenFlow/loanbalancerecognitionYiBan.vue @@ -0,0 +1,207 @@ + + + + + From 3adaebf5f8f4e84e5b2cfe72d1e7e950f5801c92 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Thu, 16 Nov 2023 09:17:11 +0800 Subject: [PATCH 12/16] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E4=B8=AD=E5=BF=83?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=A4=E4=BB=98=E7=AD=89=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/dailyreport/DailyReport.java | 106 ++++++++++++++++++ .../api/dailyreport/DailyReportFeign.java | 5 + .../api/dailyreport/DailyReportVo.java | 27 +++++ 3 files changed, 138 insertions(+) diff --git a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReport.java b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReport.java index c6026fc71e..123791e0f9 100644 --- a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReport.java +++ b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReport.java @@ -34,4 +34,110 @@ public class DailyReport { private String vehMConfigSid; @ApiModelProperty("配置名称") private String vehMConfigName; + + + @ApiModelProperty("存销比") + private String saleOfStockRatio; + @ApiModelProperty("库存总计") + private int stock_total; + @ApiModelProperty("库存未定") + private int stock_unreserve; + @ApiModelProperty("库存已定") + private int stock_reserve; + @ApiModelProperty("库存小计") + private int stock_subtotal; + @ApiModelProperty("库存-买断未定") + private int stock_buyout_unreserve; + @ApiModelProperty("库存-买断已定") + private int stock_buyout_reserve; + @ApiModelProperty("库存-买断小计") + private int stock_buyout_subtotal; + @ApiModelProperty("排产-未定") + private int pcOrder_unreserve; + @ApiModelProperty("排产-已定") + private int pcOrder_reserve; + @ApiModelProperty("排产-小计") + private int pcOrder_subtotal; + @ApiModelProperty("简易订单-本日") + private int simpleOrder_day; + @ApiModelProperty("简易订单-本月") + private int simpleOrder_month; + @ApiModelProperty("销售订单-全款-本日") + private int saleOrder_full_day; + @ApiModelProperty("销售订单-贷款-本日") + private int saleOrder_loan_day; + @ApiModelProperty("销售订单-小计-本日") + private int saleOrder_subtotal_day; + @ApiModelProperty("销售订单-全款-本月") + private int saleOrder_full_month; + @ApiModelProperty("销售订单-贷款-本月") + private int saleOrder_loan_month; + @ApiModelProperty("销售订单-小计-本月") + private int saleOrder_subtotal_month; + @ApiModelProperty("销售订单-待交车累计") + private int saleOrder_waitVeh_total; + @ApiModelProperty("销售-全款-本日") + private int sale_full_day; + @ApiModelProperty("销售-贷款-本日") + private int sale_loan_day; + @ApiModelProperty("销售-小计-本日") + private int sale_subtotal_day; + @ApiModelProperty("销售-全款-本月") + private int sale_full_month; + @ApiModelProperty("销售-贷款-本月") + private int sale_loan_month; + @ApiModelProperty("销售-小计-本月") + private int sale_subtotal_month; + @ApiModelProperty("销售-全款-本年") + private int sale_full_year; + @ApiModelProperty("销售-贷款-本年") + private int sale_loan_year; + @ApiModelProperty("销售-小计-本年") + private int sale_subtotal_year; + @ApiModelProperty("厂家开票数-全年") + private int manufacturer_invoicing_year; + @ApiModelProperty("买断-本日") + private int buyout_day; + @ApiModelProperty("买断-本月") + private int buyout_month; + @ApiModelProperty("买断-本年") + private int buyout_year; + @ApiModelProperty("欠款提车-数量") + private int arrears_carry_veh_count; + @ApiModelProperty("欠款提车-金额") + private String arrears_carry_veh_amount; + @ApiModelProperty("金融未放款-数量") + private int loan_not_count; + @ApiModelProperty("金融未放款-金额") + private String loan_not_amount; + + + @ApiModelProperty("本日交付贷款") + private String deliver_loan_day; + + @ApiModelProperty("本日交付全款") + private String deliver_full_day; + + @ApiModelProperty("本日交付小计") + private String deliver_subtotal_day; + + @ApiModelProperty("本月交付贷款") + private String deliver_loan_month; + + @ApiModelProperty("本月交付全款") + private String deliver_full_month; + + @ApiModelProperty("本月交付小计") + private String deliver_subtotal_month; + + @ApiModelProperty("全年交付贷款") + private String deliver_loan_year; + + @ApiModelProperty("全年交付全款") + private String deliver_full_year; + + @ApiModelProperty("全年交付小计") + private String deliver_subtotal_year; + + } diff --git a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportFeign.java b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportFeign.java index ce9a21b7b1..37d5e7d8a4 100644 --- a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportFeign.java +++ b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportFeign.java @@ -30,6 +30,11 @@ public interface DailyReportFeign { @ResponseBody ResultBean> listPage(@RequestBody PagerQuery pagerQuery); + /** + * 获取动态列 + * @param useOrgSid + * @return + */ @GetMapping("selectListByUseOrgSid") @ResponseBody ResultBean> selectListByUseOrgSid(@RequestParam("useOrgSid")String useOrgSid); diff --git a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportVo.java b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportVo.java index 4eaeecd66f..a5527591c6 100644 --- a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportVo.java +++ b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportVo.java @@ -114,6 +114,33 @@ public class DailyReportVo implements Vo { private String loan_not_amount; @ApiModelProperty("备注") private String remarks; + + @ApiModelProperty("本日交付贷款") + private String deliver_loan_day; + + @ApiModelProperty("本日交付全款") + private String deliver_full_day; + + @ApiModelProperty("本日交付小计") + private String deliver_subtotal_day; + + @ApiModelProperty("本月交付贷款") + private String deliver_loan_month; + + @ApiModelProperty("本月交付全款") + private String deliver_full_month; + + @ApiModelProperty("本月交付小计") + private String deliver_subtotal_month; + + @ApiModelProperty("全年交付贷款") + private String deliver_loan_year; + + @ApiModelProperty("全年交付全款") + private String deliver_full_year; + + @ApiModelProperty("全年交付小计") + private String deliver_subtotal_year; //=========================================================车型配置相关参数 @ApiModelProperty("车身颜色") private String carColor; From c248c9b3c40e05b860f4998a1deaf412ffcd7343 Mon Sep 17 00:00:00 2001 From: fanzongzhe <285169773@qq.com> Date: Thu, 16 Nov 2023 09:30:53 +0800 Subject: [PATCH 13/16] =?UTF-8?q?=E4=BA=A4=E8=BD=A6=E5=A4=8D=E6=A0=B8?= =?UTF-8?q?=E9=80=9A=E8=BF=87=E5=90=8E=E6=9B=B4=E6=96=B0=E5=8A=9E=E7=BB=93?= =?UTF-8?q?=E6=97=A5=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yxt/anrui/buscenter/api/bushandover/BusHandover.java | 1 + .../yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java | 2 ++ 2 files changed, 3 insertions(+) diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandover.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandover.java index 36eb6d7af1..eb6b17896a 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandover.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandover.java @@ -93,4 +93,5 @@ public class BusHandover extends BaseEntity { private String trailerMobile; private Date trailerDeliverDate; private String trailerRemarks; + private Date closingDate; } diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java index 88bc5dd7fc..ae38d00b95 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java @@ -1,6 +1,7 @@ package com.yxt.anrui.buscenter.biz.bushandover; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -2097,6 +2098,7 @@ public class BusHandoverService extends MybatisBaseService items = busHandoverItemsService.getItemsListByMainSid(businessSid).getData(); From eb2fd3e23d47e0ca048ee44abe6224b879ec2a2b Mon Sep 17 00:00:00 2001 From: yunuo970428 <405378304@qq.com> Date: Thu, 16 Nov 2023 10:29:54 +0800 Subject: [PATCH 14/16] =?UTF-8?q?=E5=AE=8C=E5=96=84=E7=94=9F=E6=88=90?= =?UTF-8?q?=E8=BF=98=E6=AC=BE=E8=AE=A1=E5=88=92=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/repaymentschedule/repaymentscheduleAdd.vue | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/anrui-riskcenter-ui/src/views/repaymentschedule/repaymentscheduleAdd.vue b/anrui-riskcenter-ui/src/views/repaymentschedule/repaymentscheduleAdd.vue index 2a06f9e716..abf7b2f0da 100644 --- a/anrui-riskcenter-ui/src/views/repaymentschedule/repaymentscheduleAdd.vue +++ b/anrui-riskcenter-ui/src/views/repaymentschedule/repaymentscheduleAdd.vue @@ -41,7 +41,7 @@
首期还款日
- +
@@ -71,7 +71,7 @@
首期还款日
- +
@@ -114,6 +114,7 @@ export default { formobj: { salesOrderSid: '', solutionsSid: '', + sameBank: '', loanContractNo: '', borrowerName: '', vehCount: '', @@ -150,6 +151,11 @@ export default { } }) }, + mainRepayDateChange(val) { + if (this.formobj.sameBank === '1') { + this.formobj.otherRepayDate = val + } + }, saveOrUpdate() { this.$refs['form_obj'].validate((valid) => { if (valid) { @@ -180,6 +186,7 @@ export default { this.formobj = { salesOrderSid: '', solutionsSid: '', + sameBank: '', loanContractNo: '', borrowerName: '', vehCount: '', From 0e184cd1852b70a62720b40722dd3d20b957ba1c Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Thu, 16 Nov 2023 11:36:40 +0800 Subject: [PATCH 15/16] =?UTF-8?q?=E6=B3=A8=E9=87=8A=E8=B4=B7=E6=AC=BE?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=90=88=E5=90=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../loanhomevisitprep/LoanHomevisitPrepService.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepService.java index 1e4d0dfaac..11a7b32897 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepService.java @@ -360,10 +360,10 @@ public class LoanHomevisitPrepService extends MybatisBaseService filesList = new ArrayList<>(); //贷款人生成车辆买卖合同 - List xcmmContractUrls = commonContractFeign.xcmmContract(printConfirmDto).getData(); + /* List xcmmContractUrls = commonContractFeign.xcmmContract(printConfirmDto).getData(); for (File xcmmContractUrl : xcmmContractUrls) { filesList.add(xcmmContractUrl); - } + }*/ if (conSetUpKey.equals("001")) {//一车一合同 for (BusSalesOrderVehicle busSalesOrderVehicle : busSalesOrderVehicles) { List salesOrderVehicles = new ArrayList<>(); @@ -390,7 +390,7 @@ public class LoanHomevisitPrepService extends MybatisBaseService salesOrderVehicles = new ArrayList<>(); @@ -450,7 +450,7 @@ public class LoanHomevisitPrepService extends MybatisBaseService 0) { From 3c34d961eefc4d9d277779f726c67d404cb0c524 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Thu, 16 Nov 2023 15:59:11 +0800 Subject: [PATCH 16/16] =?UTF-8?q?=E8=9E=8D=E8=B5=84=E6=94=BE=E6=AC=BE?= =?UTF-8?q?=E6=8E=A8=E9=80=81=E8=B4=A2=E5=8A=A1=E6=94=B6=E6=AC=BE=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FinCollectionConfirmationMapper.java | 5 + .../FinCollectionConfirmationMapper.xml | 13 ++ .../FinCollectionConfirmationService.java | 169 +++++++++++++++++- .../FinSelectedReceivablesDetailedMapper.java | 1 + .../FinSelectedReceivablesDetailedMapper.xml | 21 +++ ...FinSelectedReceivablesDetailedService.java | 4 + ...nUncollectedReceivablesDetailedMapper.java | 1 + ...inUncollectedReceivablesDetailedMapper.xml | 7 +- ...UncollectedReceivablesDetailedService.java | 4 + .../biz/loandiff/LoanDiffMapper.java | 6 + .../biz/loandiff/LoanDiffMapper.xml | 8 + .../biz/loandiff/LoanDiffService.java | 113 +++++++++++- .../LoanDiffDetailsMapper.java | 2 + .../loandiffdetails/LoanDiffDetailsMapper.xml | 4 + .../LoanDiffDetailsService.java | 4 + 15 files changed, 355 insertions(+), 7 deletions(-) diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.java index ddc81ba42e..dfbfda4030 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.java @@ -33,6 +33,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants; import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; import com.yxt.anrui.fin.api.fincollectionconfirmation.*; +import com.yxt.anrui.riskcenter.api.loanfinbank.LoanFinBank; import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.LoanFinOtherPolicy; import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy; import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions; @@ -146,4 +147,8 @@ public interface FinCollectionConfirmationMapper extends BaseMapper select * from anrui_buscenter.bus_sales_order_vehicle where sid = #{busVinSid} + + + + \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java index 53f243498c..f78a1dc0e8 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java @@ -88,6 +88,8 @@ import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; import com.yxt.anrui.fin.api.kingdee.arreceivable.ARReceivable; import com.yxt.anrui.fin.api.kingdee.arreceivebill.ARReceivebill; import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer; +import com.yxt.anrui.fin.api.kingdee.capitalcreditresult.CapitalCreditResult; +import com.yxt.anrui.fin.api.kingdee.capitalcreditresult.CwSystemYT; import com.yxt.anrui.fin.biz.finbillapplication.FinBillApplicationService; import com.yxt.anrui.fin.biz.finbilltrailer.FinBillTrailerService; import com.yxt.anrui.fin.biz.finbillvehicle.FinBillVehicleService; @@ -99,6 +101,7 @@ import com.yxt.anrui.fin.biz.finvehicleinvoice.FinVehicleInvoiceService; import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService; import com.yxt.anrui.fin.biz.kingdee.arreceivebill.ArReceivebillService; import com.yxt.anrui.fin.biz.kingdee.bdcustomer.BdCustomerService; +import com.yxt.anrui.fin.biz.kingdee.capitalcreditresult.OtherReceivableBillCreditResultService; import com.yxt.anrui.fin.biz.kingdee.receivablebill.ReceivableBillService; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; @@ -110,6 +113,7 @@ import com.yxt.anrui.portal.api.sysuser.SysUserVo; import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffFeign; import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffsDto; import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetailssDto; +import com.yxt.anrui.riskcenter.api.loanfinbank.LoanFinBank; import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.LoanFinOtherPolicy; import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy; import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions; @@ -192,6 +196,8 @@ public class FinCollectionConfirmationService extends MybatisBaseService createQueryWrapper(FinCollectionConfirmationQuery query) { // todo: 这里根据具体业务调整查询条件 @@ -1746,8 +1752,31 @@ public class FinCollectionConfirmationService extends MybatisBaseService voList = finSelectedReceivablesDetailedService.selectListByVin2(finUncollectedReceivablesDetailed.getContractNo(), finUncollectedReceivablesDetailed.getBusVinSid(), 3); + BigDecimal bigDecimalVinAll = voList.stream().map(FinSelectedReceivablesDetailedVo::getSubscriptionMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); + List unList = finUncollectedReceivablesDetailedService.selectListByBusVinSid2(finUncollectedReceivablesDetailed.getBusVinSid()); + BigDecimal unDecimalVinAll = unList.stream().map(FinUncollectedReceivablesDetailed::getReveivableMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); + if(bigDecimalVinAll.compareTo(unDecimalVinAll) == 0){//认完 + if(bigAdd.compareTo(decimalAll) != 0){//不相等,推送放款差额确认待办 + LoanDiffDetailssDto loanDiffDetailssDto = new LoanDiffDetailssDto(); + loanDiffDetailssDto.setBankSid(loanFinPolicy.getBankSid()); + loanDiffDetailssDto.setBankName(loanFinPolicy.getBankShortName()); + loanDiffDetailssDto.setBorrowName(busSalesOrderVehicle.getBorrowName()); + loanDiffDetailssDto.setBorrowSid(busSalesOrderVehicle.getBorrowerSid()); + loanDiffDetailssDto.setMakeLoan(new BigDecimal(finUncollectedReceivablesDetailed.getReveivableMoney())); + loanDiffDetailssDto.setRealityLoan(finSelectedReceivablesDetailed.getSubscriptionMoney()); + loanDiffDetailssDto.setDiffLoan(decimalAll); + loanDiffDetailssDto.setMakeDiscount(loanSolutions.getFactoryDiscount()); + loanDiffDetailssDto.setMakeLoanMargin(loanSolutions.getBondAmount()); + loanDiffDetailssDto.setMakeOtherDiscount(loanSolutionsOtherpolicy.getOtherDiscount()); + loanDiffDetailssDto.setReceivedPremium(loanSolutionsDetail.getProxyAccidentPremium()); + loanDiffDetailssDto.setVinNo(busSalesOrderVehicle.getLinkNo()); + loanDiffDetailssDto.setVinSid(busSalesOrderVehicle.getLinkSid()); + loanDiffDetailssDto.setBusVinSid(busSalesOrderVehicle.getSid()); + loanDiffDetailssDtos.add(loanDiffDetailssDto); + } + } }else{ if(bigAdd.compareTo(decimalAll) != 0){//不相等,推送放款差额确认待办 LoanDiffDetailssDto loanDiffDetailssDto = new LoanDiffDetailssDto(); @@ -1766,6 +1795,75 @@ public class FinCollectionConfirmationService extends MybatisBaseService 8) { + linkNo = vinNo.substring(vinNo.length() - 8); + } else { + linkNo = busSalesOrderVehicle.getLinkNo(); + } + bdCustomer.setFName(busSalesOrderVehicle.getBorrowName() + linkNo); + } else { + bdCustomer.setFName(busSalesOrderVehicle.getBorrowName() + busSalesOrderVehicle.getTemporaryNo()); + } + ResultBean resultBean = bdCustomerService.draftBdCustomer(bdCustomer); + if (resultBean.getSuccess()) { + customerNumber = bdCustomer.getFNumber(); + } + } else { + customerNumber = busSalesOrderVehicle.getTemporaryNo(); + } + creditResult.setCommUnit(customerNumber); + SysOrganizationVo sysOrganizationVo1 = sysOrganizationFeign.fetchBySid(busSalesOrder.getUseOrgSid()).getData(); + creditResult.setCollectionOrg(sysOrganizationVo1.getOrgCode()); + creditResult.setBussDate(DateUtil.formatDate(new Date())); + List collectionDetailDtoListOne = new ArrayList<>(); + SysOrganizationVo sysOrganizationVo2 = sysOrganizationFeign.fetchBySid(busSalesOrder.getOrgSid()).getData(); + if (loanSolutions.getBondAmount() != null) {//贷款保证金 + CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto(); + creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode()); + creditResultDetailDto.setExTaxMoney("-" + loanSolutions.getBondAmount().toString()); + creditResultDetailDto.setUseTo(CwSystemYT.BOND_AMOUNTS.getType()); + collectionDetailDtoListOne.add(creditResultDetailDto); + } + if (loanSolutions.getFactoryDiscount() != null) {//主产品厂家贴息 + CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto(); + creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode()); + creditResultDetailDto.setExTaxMoney("-" + loanSolutions.getFactoryDiscount().toString()); + creditResultDetailDto.setUseTo(CwSystemYT.SANFANG_TIEXI_DIECHEKUAN.getType()); + collectionDetailDtoListOne.add(creditResultDetailDto); + } + if (loanSolutionsOtherpolicy.getOtherDiscount() != null) {//实扣其他融厂家贴息 + CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto(); + creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode()); + creditResultDetailDto.setExTaxMoney("-" + loanSolutionsOtherpolicy.getOtherDiscount().toString()); + creditResultDetailDto.setUseTo(CwSystemYT.SANFANG_TIEXI_DIECHEKUAN.getType()); + collectionDetailDtoListOne.add(creditResultDetailDto); + } + if (loanSolutionsDetail.getProxyAccidentPremium() != null) {//已收意外险 + CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto(); + creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode()); + creditResultDetailDto.setExTaxMoney("-" + loanSolutionsDetail.getProxyAccidentPremium().toString()); + creditResultDetailDto.setUseTo(CwSystemYT.PROXY_ACCIDENT_PREMIUM.getType()); + collectionDetailDtoListOne.add(creditResultDetailDto); + } + creditResult.setResultDetails(collectionDetailDtoListOne); + creditResultService.pushOtherReceivableBill(creditResult); + } } @@ -1856,6 +1954,8 @@ public class FinCollectionConfirmationService extends MybatisBaseService finSelectedReceivablesDetailedVos3_2 = finSelectedReceivablesDetailedService.fetchByAuditState1_1(sid, "加装配置手续费", "2"); finSelectedReceivablesDetailedVos3_2.removeAll(Collections.singleton(null)); + List finSelectedReceivablesDetailedVos4_1 = finSelectedReceivablesDetailedService.fetchByAuditState1_1(sid, "融资放款", "2"); + finSelectedReceivablesDetailedVos4_1.removeAll(Collections.singleton(null)); int carSize = 0; //全款推送车款 if (finSelectedReceivablesDetailedVos1.size() > 0) { @@ -1980,6 +2080,23 @@ public class FinCollectionConfirmationService extends MybatisBaseService 0) { + boolean one = false; + if (finSelectedReceivablesDetailedVos1.size() == 0 && + finSelectedReceivablesDetailedVos1_1_1.size() == 0 && + finSelectedReceivablesDetailedVos2.size() == 0 && + finSelectedReceivablesDetailedVos1_1.size() == 0 && + finSelectedReceivablesDetailedVos2_1.size() == 0 && + finSelectedReceivablesDetailedVos1_1_2.size() == 0 && + finSelectedReceivablesDetailedVos3_1.size() == 0 && + finSelectedReceivablesDetailedVos3_2.size() == 0 && + finSelectedReceivablesDetailedVos4_1.size() == 1) { + one = true; + } + carSize = loanDiff(confirmation, arReceivebill, carSize, finSelectedReceivablesDetailedVos4_1, freceivebillentry, one, orgCode); + } + //简易订单-订金收取 if (finSelectedReceivablesDetailedVos1.isEmpty() && finSelectedReceivablesDetailedVos2.isEmpty() && @@ -2026,6 +2143,54 @@ public class FinCollectionConfirmationService extends MybatisBaseService finSelectedReceivablesDetailedVos4_1, ARReceivebill.FRECEIVEBILLENTRY freceivebillentry, boolean one, String orgCode) { + String sid = confirmation.getSid(); + List fEntityList = new ArrayList<>(); + for (int i = 0; i < finSelectedReceivablesDetailedVos4_1.size(); i++) { + FinSelectedReceivablesDetailedVo vvvv = finSelectedReceivablesDetailedVos4_1.get(i); + //推送客户 + String customerNo = createCustomerQuery(2, vvvv, orgCode); + //往来单位 + arReceivebill.setFCONTACTUNIT(customerNo); + fEntityList = new ArrayList<>(); + String uncollSid = ""; + freceivebillentry = new ARReceivebill.FRECEIVEBILLENTRY(); + //结算方式 + freceivebillentry.setFSETTLETYPEIDKey(confirmation.getCollectionTypeKey()); + freceivebillentry.setFSETTLETYPEIDType("customerPayType"); + //收款金额 + freceivebillentry.setFRECTOTALAMOUNTFOR(vvvv.getSubscriptionMoney()); + //登记日期 + freceivebillentry.setFPOSTDATE(confirmation.getCollectionDate()); + if (vvvv.getVIN().length() >= 8) { + freceivebillentry.setF_PAEZ_Base1(vvvv.getVIN().substring(vvvv.getVIN().length() - 8)); + } + //收款用途 + freceivebillentry.setFPURPOSEIDKey("001"); + freceivebillentry.setFPURPOSEIDType("cw_skyt"); + freceivebillentry.setFACCOUNTID(confirmation.getCollectionBankNum()); + LoanFinBank loanFinBank = baseMapper.selectFinBnk(vvvv.getContractNo()); + if(loanFinBank != null){ + freceivebillentry.setF_PAEZ_Base(loanFinBank.getBankNo());//资方编码 + } + fEntityList.add(freceivebillentry); + uncollSid = vvvv.getReceivablesSid(); + //项目类别key、value + arReceivebill.setF_PAEZ_AssistantType("cw_sklb"); + arReceivebill.setF_PAEZ_AssistantKey("062"); + arReceivebill.setFRECEIVEBILLENTRY(fEntityList); + if (one) { + arReceivebill.setFBillNo(confirmation.getBillNo()); + } else { + //单据编号 + carSize = carSize + 1; + arReceivebill.setFBillNo(confirmation.getBillNo() + "-" + carSize); + } + ResultBean resultBean1 = arReceivebillService.draftArReceivebill(arReceivebill); + } + return carSize; + } + //组装客户推送 private BdCustomer createBdCustomer(String useOrgSid, String name, String mobile, String customerSid, String collSid) { BdCustomer bdCustomer = new BdCustomer(); diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.java index 0507c8fce8..c84621f71b 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.java @@ -98,6 +98,7 @@ public interface FinSelectedReceivablesDetailedMapper extends BaseMapper selectListByVin(@Param("contractNo") String contractNo, @Param("busVinSid") String busVinSid, @Param("state") int state); List selectListByVin1(@Param("contractNo") String contractNo, @Param("busVinSid") String busVinSid, @Param("state") int state); + List selectListByVin2(@Param("contractNo") String contractNo, @Param("busVinSid") String busVinSid, @Param("state") int state); List getList(@Param("list") List sidsList); diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml index 5bf8db855b..d19a97a741 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml @@ -209,6 +209,27 @@ GROUP BY d.`sid`) d + + @@ -338,6 +338,11 @@ select * from fin_uncollected_receivables_detailed where busVinSid = #{busVinSid} and receivablesName = '首付款及费用' + + update fin_uncollected_receivables_detailed set kxState = #{kxState} where busVinSid in diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedService.java index a070507816..bc8d3e601d 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedService.java @@ -1021,6 +1021,10 @@ public class FinUncollectedReceivablesDetailedService extends MybatisBaseService return baseMapper.selectListByBusVinSid1(busVinSid); } + public List selectListByBusVinSid2(String busVinSid) { + return baseMapper.selectListByBusVinSid2(busVinSid); + } + public ResultBean updateKxState(StateQuery stateQuery) { ResultBean rb = ResultBean.fireFail(); List busVinSid = stateQuery.getBusVinSid(); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.java index 49ef8359fd..c3827afde6 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; +import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; import com.yxt.anrui.riskcenter.api.loandiff.LoanDiff; import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffVo; import org.apache.ibatis.annotations.Mapper; @@ -21,4 +23,8 @@ public interface LoanDiffMapper extends BaseMapper { int updateFlowFiled(Map map); IPage listPageVo(IPage page, @Param(Constants.WRAPPER)QueryWrapper qw); + + BusSalesOrderVehicle selectByBusVinSid(String busVinSid); + + BusSalesOrder selectByOrderSid(String salesOrderSid); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.xml index 0156969b1c..b8522cd2a7 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.xml @@ -36,4 +36,12 @@ order by ld.id desc + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java index f4a9ab61a4..eef32154a0 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java @@ -6,7 +6,15 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.google.common.util.concurrent.ThreadFactoryBuilder; +import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo; +import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign; import com.yxt.anrui.base.api.busvehicleapply.BusVehicleApplyVo; +import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; +import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; +import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; +import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer; +import com.yxt.anrui.fin.api.kingdee.capitalcreditresult.CapitalCreditResult; +import com.yxt.anrui.fin.api.kingdee.capitalcreditresult.CwSystemYT; import com.yxt.anrui.flowable.api.flow.FlowableFeign; import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; @@ -16,11 +24,15 @@ import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo; import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; +import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.riskcenter.api.loandiff.*; import com.yxt.anrui.riskcenter.api.loandiff.flowable.*; import com.yxt.anrui.riskcenter.api.loandiffdetails.*; +import com.yxt.anrui.riskcenter.api.loansolutions.PushVo; +import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo; import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplate; import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplateQuery; import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplateVo; @@ -42,6 +54,7 @@ import org.apache.tomcat.util.threads.ThreadPoolExecutor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.*; import java.util.concurrent.*; import java.util.stream.Collectors; @@ -70,6 +83,12 @@ public class LoanDiffService extends MybatisBaseService list = loanDiffDetailsService.selectDetailsByMainSid(sid); + list.removeAll(Collections.singleton(null)); + if (!list.isEmpty()) { + for (int i = 0; i < list.size(); i++) { + CapitalCreditResult creditResult = new CapitalCreditResult(); + LoanDiffDetails loanDiffDetails = list.get(i); + String busVinSid = loanDiffDetails.getBusVinSid(); + BusSalesOrderVehicle busSalesOrderVehicle = baseMapper.selectByBusVinSid(busVinSid); + BusSalesOrder busSalesOrder = baseMapper.selectByOrderSid(busSalesOrderVehicle.getSalesOrderSid()); + String customerNumber = ""; + //判断财务系统是否有客户 + Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData(); + String linkNo = ""; + if (!aBoolean) { + BdCustomer bdCustomer = new BdCustomer(); + bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo()); + bdCustomer.setFShortName(busSalesOrder.getContractNo()); + BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(busSalesOrder.getPurchaseSystemSid()).getData(); + bdCustomer.setTOrgIds(data.getOrgCode()); + if (StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) { + String vinNo = busSalesOrderVehicle.getLinkNo(); + if (vinNo.length() > 8) { + linkNo = vinNo.substring(vinNo.length() - 8); + } else { + linkNo = busSalesOrderVehicle.getLinkNo(); + } + bdCustomer.setFName(busSalesOrderVehicle.getBorrowName() + linkNo); + } else { + bdCustomer.setFName(busSalesOrderVehicle.getBorrowName() + busSalesOrderVehicle.getTemporaryNo()); + } + ResultBean resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer); + if (resultBean.getSuccess()) { + customerNumber = bdCustomer.getFNumber(); + } + } else { + customerNumber = busSalesOrderVehicle.getTemporaryNo(); + } + creditResult.setCommUnit(customerNumber); + SysOrganizationVo sysOrganizationVo1 = sysOrganizationFeign.fetchBySid(busSalesOrder.getUseOrgSid()).getData(); + creditResult.setCollectionOrg(sysOrganizationVo1.getOrgCode()); + creditResult.setBussDate(DateUtil.formatDate(new Date())); + List collectionDetailDtoListOne = new ArrayList<>(); + SysOrganizationVo sysOrganizationVo2 = sysOrganizationFeign.fetchBySid(busSalesOrder.getOrgSid()).getData(); + if (loanDiffDetails.getRealityLoan() != null) {//实扣贷款保证金 + CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto(); + creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode()); + creditResultDetailDto.setExTaxMoney("-" + loanDiffDetails.getRealityLoanMargin().toString()); + creditResultDetailDto.setUseTo(CwSystemYT.BOND_AMOUNTS.getType()); + collectionDetailDtoListOne.add(creditResultDetailDto); + } + if (loanDiffDetails.getRealityDiscount() != null) {//实扣主产品厂家贴息 + CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto(); + creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode()); + creditResultDetailDto.setExTaxMoney("-" + loanDiffDetails.getRealityDiscount().toString()); + creditResultDetailDto.setUseTo(CwSystemYT.SANFANG_TIEXI_DIECHEKUAN.getType()); + collectionDetailDtoListOne.add(creditResultDetailDto); + } + if (loanDiffDetails.getRealityOtherDiscount() != null) {//实扣其他融厂家贴息 + CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto(); + creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode()); + creditResultDetailDto.setExTaxMoney("-" + loanDiffDetails.getRealityOtherDiscount().toString()); + creditResultDetailDto.setUseTo(CwSystemYT.SANFANG_TIEXI_DIECHEKUAN.getType()); + collectionDetailDtoListOne.add(creditResultDetailDto); + } + if (loanDiffDetails.getReceivedPremium() != null) {//已收意外险 + CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto(); + creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode()); + creditResultDetailDto.setExTaxMoney("-" + loanDiffDetails.getReceivedPremium().toString()); + creditResultDetailDto.setUseTo(CwSystemYT.PROXY_ACCIDENT_PREMIUM.getType()); + collectionDetailDtoListOne.add(creditResultDetailDto); + } + if (loanDiffDetails.getDiffPremium() != null) {//意外险差额 + CapitalCreditResult.CapitalCreditResultDetailDto creditResultDetailDto = new CapitalCreditResult.CapitalCreditResultDetailDto(); + creditResultDetailDto.setDearDept(sysOrganizationVo2.getOrgCode()); + creditResultDetailDto.setExTaxMoney(loanDiffDetails.getDiffPremium().toString()); + creditResultDetailDto.setUseTo(CwSystemYT.PROXY_ACCIDENT_PREMIUM.getType()); + collectionDetailDtoListOne.add(creditResultDetailDto); + } + creditResult.setResultDetails(collectionDetailDtoListOne); + finKingDeeFeign.pushOtherReceivableBill(creditResult); + } + } + } + public ResultBean> getPreviousNodesForReject(DiffApplyNodeQuery query) { ResultBean> rb = ResultBean.fireFail(); BusinessVariables bv = new BusinessVariables(); @@ -478,7 +583,7 @@ public class LoanDiffService extends MybatisBaseService loanDiffDetailsList = dto.getLoanDiffDetails(); loanDiffDetailsList.removeAll(Collections.singleton(null)); if (!loanDiffDetailsList.isEmpty()) { @@ -493,9 +598,9 @@ public class LoanDiffService extends MybatisBaseService fileLists = dto.getFilesList(); fileLists.removeAll(Collections.singleton(null)); if (!fileLists.isEmpty()) { - List files = fileLists.stream().map(v->v.getUrl()).collect(Collectors.toList()); + List files = fileLists.stream().map(v -> v.getUrl()).collect(Collectors.toList()); files.removeAll(Collections.singleton(null)); - if(!files.isEmpty()){ + if (!files.isEmpty()) { String filss = String.join(",", files).replaceAll(fileUploadComponent.getUrlPrefix(), ""); loanDiff.setFiles(filss); baseMapper.updateById(loanDiff); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.java index 1dd759ee16..e514c33e9f 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.java @@ -18,4 +18,6 @@ public interface LoanDiffDetailsMapper extends BaseMapper { List selectByMainSid(String sid); List selectByMainSid2(String sid); + + List selectDetailsByMainSid(String sid); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.xml index 2799e41daf..89eb11406a 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.xml @@ -29,4 +29,8 @@ from anrui_riskcenter.loan_diff_details where mainSid = #{sid} + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsService.java index df06b47866..02c2dc8c2a 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsService.java @@ -24,4 +24,8 @@ public class LoanDiffDetailsService extends MybatisBaseService selectByMainSid2(String sid) { return baseMapper.selectByMainSid2(sid); } + + public List selectDetailsByMainSid(String sid) { + return baseMapper.selectDetailsByMainSid(sid); + } }