From 90dfc1beff77df12b1ffe7ce88beddd77e2cc148 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Thu, 22 Feb 2024 17:03:56 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E5=BC=80=E7=A5=A8=E5=90=88=E5=90=8C?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commoncontract/CommonContractFeign.java | 2 +- .../ftl/dai_existingvehicles_black.ftl | 2 +- .../resources/ftl/dai_orderacar_black.ftl | 2 +- .../BusBillApplicationService.java | 38 +++++++++++++++++++ .../ftl/dai_existingvehicles_black.ftl | 2 +- .../ftl/dai_existingvehicles_black.ftl | 2 +- 6 files changed, 43 insertions(+), 5 deletions(-) diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractFeign.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractFeign.java index cd1e089b87..7901244e17 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractFeign.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractFeign.java @@ -267,5 +267,5 @@ public interface CommonContractFeign { @ApiOperation("获取合同中部分信息") @PostMapping("/getModelMap") @ResponseBody - ResultBean> getModelMap(Map map); + ResultBean> getModelMap(@RequestBody Map map); } \ No newline at end of file diff --git a/anrui-base/anrui-base-biz/src/main/resources/ftl/dai_existingvehicles_black.ftl b/anrui-base/anrui-base-biz/src/main/resources/ftl/dai_existingvehicles_black.ftl index 63d3d961de..837d2ef6a4 100644 --- a/anrui-base/anrui-base-biz/src/main/resources/ftl/dai_existingvehicles_black.ftl +++ b/anrui-base/anrui-base-biz/src/main/resources/ftl/dai_existingvehicles_black.ftl @@ -1280,7 +1280,7 @@ - + diff --git a/anrui-base/anrui-base-biz/src/main/resources/ftl/dai_orderacar_black.ftl b/anrui-base/anrui-base-biz/src/main/resources/ftl/dai_orderacar_black.ftl index 71066e4952..bdb8bd4adb 100644 --- a/anrui-base/anrui-base-biz/src/main/resources/ftl/dai_orderacar_black.ftl +++ b/anrui-base/anrui-base-biz/src/main/resources/ftl/dai_orderacar_black.ftl @@ -1224,7 +1224,7 @@ - + diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationService.java index 72eac2fd97..2153aff0bf 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationService.java @@ -686,6 +686,44 @@ public class BusBillApplicationService extends MybatisBaseService dateString = Arrays.asList(date.split("-")); + String year = dateString.get(0); + String month = dateString.get(1); + String day = dateString.get(2); + filemap.put("year", year); + filemap.put("month", month); + filemap.put("day", day); + if (finCompanyInvoicingDetailsVo != null) { + filemap.put("invoiceName", finCompanyInvoicingDetailsVo.getName());//开票名称 + filemap.put("customerName", finCompanyInvoicingDetailsVo.getName());//开票名称 + filemap.put("invoiceNo", finCompanyInvoicingDetailsVo.getTaxpayerNo());//纳税人识别号 + filemap.put("idNo", finCompanyInvoicingDetailsVo.getTaxpayerNo());//纳税人识别号 + filemap.put("adds", finCompanyInvoicingDetailsVo.getAddress());//户籍地址 + }else{ + CrmCustomerTemp crmCustomerTemp = baseMapper.selectByCustomerSid(dto.getOpenTickSid()); + if (crmCustomerTemp != null) { + filemap.put("invoiceName", crmCustomerTemp.getName());//开票名称 + filemap.put("customerName", crmCustomerTemp.getName());//开票名称 + filemap.put("invoiceNo", crmCustomerTemp.getIDNumber());//纳税人识别号 + filemap.put("idNo", crmCustomerTemp.getIDNumber());//纳税人识别号 + filemap.put("adds", crmCustomerTemp.getCertificateAddress());//户籍地址 + } + } + filemap.put("invoiceType", dto.getOpenTickTypeValue());//开票类型 + filemap.put("createOrgName", ""); + remarks = "数量" + finBillVehicles.size() + "台,单台成交价: 元。"; + filemap.put("remarks", remarks); + filemap.put("busSid",busSalesOrder.getSid()); + filemap.put("contractNo",busSalesOrder.getContractNo()); + ResultBean> mapResultBean = commonContractFeign.getModelMap(filemap); + checkMap = mapResultBean.getData(); } try { ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/resources/ftl/dai_existingvehicles_black.ftl b/anrui-buscenter/anrui-buscenter-biz/src/main/resources/ftl/dai_existingvehicles_black.ftl index 63d3d961de..837d2ef6a4 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/resources/ftl/dai_existingvehicles_black.ftl +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/resources/ftl/dai_existingvehicles_black.ftl @@ -1280,7 +1280,7 @@ - + diff --git a/anrui-fin/anrui-fin-biz/src/main/resources/ftl/dai_existingvehicles_black.ftl b/anrui-fin/anrui-fin-biz/src/main/resources/ftl/dai_existingvehicles_black.ftl index 63d3d961de..837d2ef6a4 100644 --- a/anrui-fin/anrui-fin-biz/src/main/resources/ftl/dai_existingvehicles_black.ftl +++ b/anrui-fin/anrui-fin-biz/src/main/resources/ftl/dai_existingvehicles_black.ftl @@ -1280,7 +1280,7 @@ - + From ac6844696e1c7ec374570f82bc91426b0be97927 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Thu, 22 Feb 2024 17:34:03 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E4=B9=B0=E6=96=AD=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basevehicleactualsales/BaseVehicleActualSalesService.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java index 3a17e9c9ae..6760431a04 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java @@ -389,6 +389,8 @@ public class BaseVehicleActualSalesService extends MybatisBaseService 0) { payMoney = dto.getDetailsPayList().stream().map(BaseVehicleActualPayDto::getPayAccount).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); + }else{ + return rb.setMsg("付款明细不能为空"); } } if (payMoney.compareTo(salesMoney) > 0) { From 0d54209375eed5da79dbd2be3e3faa0c1cd2d481 Mon Sep 17 00:00:00 2001 From: fanzongzhe <285169773@qq.com> Date: Thu, 22 Feb 2024 17:38:47 +0800 Subject: [PATCH 03/11] =?UTF-8?q?=E8=AF=89=E8=AE=BC=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anrui/flowable/api/utils/ProcDefEnum.java | 1 + .../LoanLawsuitApplyFeign.java | 55 ++ .../LoanLawsuitApplyFeignFallback.java | 54 ++ .../app/AppLawsuitDetailsVo.java | 40 ++ .../loanlawsuitapply/app/AppVehListVo.java | 49 ++ .../flow/LawsuitCompleteDto.java | 41 ++ .../flow/LawsuitDelegateQuery.java | 26 + .../flow/LawsuitGetNodeQuery.java | 26 + .../flow/LawsuitGetNodeVo.java | 25 + .../flow/LawsuitTaskQuery.java | 56 ++ .../flow/SubmitLawsuitDto.java | 21 + .../LoanLawsuitApplyMapper.java | 8 + .../LoanLawsuitApplyMapper.xml | 46 ++ .../LoanLawsuitApplyRest.java | 61 ++ .../LoanLawsuitApplyService.java | 533 +++++++++++++++++- .../api/risk/lawsuit/LawsuitDetailsVo.java | 43 ++ .../api/risk/lawsuit/LawsuitFeign.java | 67 +++ .../risk/lawsuit/LawsuitFeignFallback.java | 53 ++ .../api/risk/lawsuit/LawsuitVehVo.java | 46 ++ .../lawsuit/flow/AppLawsuitDelegateQuery.java | 25 + .../lawsuit/flow/AppLawsuitTaskQuery.java | 46 ++ .../risk/lawsuit/flow/CompleteLawsuitDto.java | 35 ++ .../lawsuit/flow/LawsuitFlowableQuery.java | 21 + .../biz/risk/lawsuit/LawsuitRest.java | 68 +++ .../biz/risk/lawsuit/LawsuitService.java | 164 ++++++ 25 files changed, 1607 insertions(+), 3 deletions(-) create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/app/AppLawsuitDetailsVo.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/app/AppVehListVo.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitCompleteDto.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitDelegateQuery.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitGetNodeQuery.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitGetNodeVo.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitTaskQuery.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/SubmitLawsuitDto.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitDetailsVo.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitFeign.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitFeignFallback.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitVehVo.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/flow/AppLawsuitDelegateQuery.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/flow/AppLawsuitTaskQuery.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/flow/CompleteLawsuitDto.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/flow/LawsuitFlowableQuery.java create mode 100644 anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/lawsuit/LawsuitRest.java create mode 100644 anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/lawsuit/LawsuitService.java 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 dc097ca83e..b9ed86729b 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 @@ -80,6 +80,7 @@ public enum ProcDefEnum { LOANCASEAPPEALAPPLY("案件上诉申请", "process_0r2ruoxm:1:8215004"), LOANCASEEXECUTEAPPLY("案件执行立案申请", "process_aeho48ap:1:8220004"), LOANCASECLOSEAPPLY("案件结案申请", "process_llaxpwkd:1:8220008"), + LOANLAWSUITAPPLY("诉讼申请", "process_xc4lp97d:1:8380004"), /******************************测试流程id*********************************************/ diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyFeign.java index e3425e79d6..5b527ae336 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyFeign.java @@ -1,15 +1,24 @@ package com.yxt.anrui.riskcenter.api.loanlawsuitapply; +import com.yxt.anrui.riskcenter.api.loanlawsuitapply.app.AppLawsuitDetailsVo; +import com.yxt.anrui.riskcenter.api.loanlawsuitapply.flow.*; import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.LoanMonthlyAccrualApplyQuery; import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.LoanMonthlyAccrualApplyVo; +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.app.AppRepurchaseDetailsVo; +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.flow.*; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.*; +import javax.validation.Valid; +import java.util.List; + /** * @description: 诉讼案件管理 @@ -52,5 +61,51 @@ public interface LoanLawsuitApplyFeign { public ResultBean deleteBySids(@RequestBody String[] sids); + //---------------------------flow------------------------------ + + @ApiOperation("提交") + @PostMapping("/submit") + public ResultBean submitRecordApplication(@RequestBody @Valid SubmitLawsuitDto dto); + + @ApiOperation(value = "办理(同意)") + @PostMapping("/complete") + public ResultBean complete(@Valid @RequestBody LawsuitCompleteDto dto); + + @ApiOperation(value = "撤回流程") + @PostMapping(value = "/revokeProcess") + public ResultBean revokeProcess(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody LawsuitTaskQuery query); + + @ApiOperation(value = "驳回任务") + @PostMapping(value = "/reject") + public ResultBean taskReject(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody LawsuitTaskQuery query); + + @ApiOperation(value = "终止任务") + @PostMapping(value = "/breakProcess") + public ResultBean breakProcess(@RequestBody LawsuitTaskQuery 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 LawsuitGetNodeQuery query); + + @ApiOperation(value = "获取上一个环节") + @GetMapping(value = "/getPreviousNodesForReject") + ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap LawsuitGetNodeQuery query); + + @ApiOperation(value = "加签") + @PostMapping(value = "/delegate") + public ResultBean delegate(@RequestBody LawsuitDelegateQuery query); + + //-----------------------------app---------------------------- + @ApiOperation("app详情") + @GetMapping("/appDetail/{sid}") + @ResponseBody + public ResultBean appDetail(@PathVariable("sid") String sid); + + + } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyFeignFallback.java index a667d89bba..85d5754943 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyFeignFallback.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyFeignFallback.java @@ -1,10 +1,14 @@ package com.yxt.anrui.riskcenter.api.loanlawsuitapply; +import com.yxt.anrui.riskcenter.api.loanlawsuitapply.app.AppLawsuitDetailsVo; +import com.yxt.anrui.riskcenter.api.loanlawsuitapply.flow.*; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import org.springframework.stereotype.Component; +import java.util.List; + /** * @author Administrator * @description @@ -43,4 +47,54 @@ public class LoanLawsuitApplyFeignFallback implements LoanLawsuitApplyFeign { public ResultBean deleteBySids(String[] sids) { return null; } + + @Override + public ResultBean submitRecordApplication(SubmitLawsuitDto dto) { + return null; + } + + @Override + public ResultBean complete(LawsuitCompleteDto dto) { + return null; + } + + @Override + public ResultBean revokeProcess(LawsuitTaskQuery query) { + return null; + } + + @Override + public ResultBean taskReject(LawsuitTaskQuery query) { + return null; + } + + @Override + public ResultBean breakProcess(LawsuitTaskQuery query) { + return null; + } + + @Override + public ResultBean flowRecord(String procInsId) { + return null; + } + + @Override + public ResultBean> getNextNodesForSubmit(LawsuitGetNodeQuery query) { + return null; + } + + @Override + public ResultBean> getPreviousNodesForReject(LawsuitGetNodeQuery query) { + return null; + } + + @Override + public ResultBean delegate(LawsuitDelegateQuery query) { + return null; + } + + @Override + public ResultBean appDetail(String sid) { + return null; + } } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/app/AppLawsuitDetailsVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/app/AppLawsuitDetailsVo.java new file mode 100644 index 0000000000..5afb7567d8 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/app/AppLawsuitDetailsVo.java @@ -0,0 +1,40 @@ +package com.yxt.anrui.riskcenter.api.loanlawsuitapply.app; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author Fan + * @description + * @date 2024/2/7 11:15 + */ +@Data +public class AppLawsuitDetailsVo { + + private String sid; + private String publishInfo; // 发起部门-发起人 + private String time; //申请日期 + private String taskId; + private String procInsId; + @ApiModelProperty("客户名称") + private String custName; + @ApiModelProperty("资方合同号") + private String bankContractNo; + @ApiModelProperty("贷款人") + private String borrName; + @ApiModelProperty("贷款合同号") + private String loanContractNo; + @ApiModelProperty("资方") + private String bankName; + @ApiModelProperty("销售订单sid") + private String salesOrderSid; + @ApiModelProperty("风控进展描述") + private String progress; + @ApiModelProperty("欠款合计") + private String amountAll; + private List vehListVos = new ArrayList<>(); + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/app/AppVehListVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/app/AppVehListVo.java new file mode 100644 index 0000000000..57acaaf6b0 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/app/AppVehListVo.java @@ -0,0 +1,49 @@ +package com.yxt.anrui.riskcenter.api.loanlawsuitapply.app; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/2/22 10:15 + */ +@Data +public class AppVehListVo { + + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("车架号") + private String vinNo; + //费用 + @ApiModelProperty("已还金额") + private String alRepaidMoney; // 已还金额 + @ApiModelProperty("当前逾期金额") + private String currentBeMoney; // 当前逾期金额 + @ApiModelProperty("其中资金占用费") + private String wheFundOccMoney; // 资金占用费 + @ApiModelProperty("未到期金额") + private String unexpiredMoney; // 未到期金额 + @ApiModelProperty("总期数") + private String nper; // 总期数 + @ApiModelProperty("当前期数") + private String currentPeriod; // 当前期数 + @ApiModelProperty("已还金额换算期数") + private String alRepaidMoneyConPeriod; // 已还金额换算期数 + @ApiModelProperty("逾期金额换算期数") + private String beOverdueMoneyAndPeriod; // 逾期金额换算期数 + @ApiModelProperty("垫资方月还") + private String price; + @ApiModelProperty("垫资方逾期利息") + private String bankInterest; + @ApiModelProperty("车辆处置金额") + private String amount; + @ApiModelProperty("欠款小计") + private String owedTotal; + @ApiModelProperty("贷款保证金") + private String deposit; + @ApiModelProperty("是否回购") + private String repo; + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitCompleteDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitCompleteDto.java new file mode 100644 index 0000000000..73a3834aab --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitCompleteDto.java @@ -0,0 +1,41 @@ +package com.yxt.anrui.riskcenter.api.loanlawsuitapply.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 LawsuitCompleteDto 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/loanlawsuitapply/flow/LawsuitDelegateQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitDelegateQuery.java new file mode 100644 index 0000000000..04b0e21834 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitDelegateQuery.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.riskcenter.api.loanlawsuitapply.flow; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/9/28 9:28 + */ +@Data +public class LawsuitDelegateQuery { + @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/loanlawsuitapply/flow/LawsuitGetNodeQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitGetNodeQuery.java new file mode 100644 index 0000000000..20ac566d58 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitGetNodeQuery.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.riskcenter.api.loanlawsuitapply.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 LawsuitGetNodeQuery 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/loanlawsuitapply/flow/LawsuitGetNodeVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitGetNodeVo.java new file mode 100644 index 0000000000..7bba8278ac --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitGetNodeVo.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.riskcenter.api.loanlawsuitapply.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 LawsuitGetNodeVo 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/loanlawsuitapply/flow/LawsuitTaskQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitTaskQuery.java new file mode 100644 index 0000000000..ddbf82777e --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitTaskQuery.java @@ -0,0 +1,56 @@ +package com.yxt.anrui.riskcenter.api.loanlawsuitapply.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 LawsuitTaskQuery 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/loanlawsuitapply/flow/SubmitLawsuitDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/SubmitLawsuitDto.java new file mode 100644 index 0000000000..ca7c3da67c --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/SubmitLawsuitDto.java @@ -0,0 +1,21 @@ +package com.yxt.anrui.riskcenter.api.loanlawsuitapply.flow; + +import com.yxt.anrui.riskcenter.api.loanlawsuitapply.LoanLawsuitApplyDto; +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/6/27 13:38 + * @Description + */ +@Data +public class SubmitLawsuitDto extends LoanLawsuitApplyDto { + private static final long serialVersionUID = 378585162071125756L; + @ApiModelProperty("流程实例id") + private String instanceId; + @ApiModelProperty("任务id") + private String taskId; + +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyMapper.java index 1dbddbdd6a..16825c09a7 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyMapper.java @@ -5,11 +5,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.riskcenter.api.loanlawsuitapply.*; +import com.yxt.anrui.riskcenter.api.loanlawsuitapply.app.AppLawsuitDetailsVo; import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApply; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** @@ -40,4 +42,10 @@ public interface LoanLawsuitApplyMapper extends BaseMapper { int selectBySid(String join); IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + int updateFlowFiled(Map map); + + int selCountByBusVinSid(@Param("busVinSids") List busVinSids); + + AppLawsuitDetailsVo appDetail(@Param("sid") String sid); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyMapper.xml index 3309d63344..946f06bb17 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyMapper.xml @@ -1,6 +1,21 @@ + + UPDATE loan_lawsuit_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/loanlawsuitapply/LoanLawsuitApplyRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyRest.java index 8c6f07d17e..30eab25f44 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyRest.java @@ -1,9 +1,15 @@ package com.yxt.anrui.riskcenter.biz.loanlawsuitapply; +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.loanlawsuitapply.*; +import com.yxt.anrui.riskcenter.api.loanlawsuitapply.app.AppLawsuitDetailsVo; +import com.yxt.anrui.riskcenter.api.loanlawsuitapply.flow.*; import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.LoanMonthlyAccrualApplyVo; import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyFeign; +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.flow.*; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -12,6 +18,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + /** * @description: * @author: fan @@ -59,4 +67,57 @@ public class LoanLawsuitApplyRest implements LoanLawsuitApplyFeign { public ResultBean deleteBySids(String[] sids) { return loanLawsuitApplyService.deleteBySids(sids); } + + @Override + public ResultBean submitRecordApplication(SubmitLawsuitDto dto) { + return loanLawsuitApplyService.submitRecordApplication(dto); + } + + @Override + public ResultBean complete(LawsuitCompleteDto dto) { + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(dto, bv); + bv.setModelId(ProcDefEnum.LOANLAWSUITAPPLY.getProDefId()); + return loanLawsuitApplyService.complete(bv); + } + + @Override + public ResultBean revokeProcess(LawsuitTaskQuery query) { + return loanLawsuitApplyService.revokeProcess(query); + } + + @Override + public ResultBean taskReject(LawsuitTaskQuery query) { + return loanLawsuitApplyService.taskReject(query); + } + + @Override + public ResultBean breakProcess(LawsuitTaskQuery query) { + return loanLawsuitApplyService.breakProcess(query); + } + + @Override + public ResultBean flowRecord(String procInsId) { + return loanLawsuitApplyService.flowRecord(procInsId); + } + + @Override + public ResultBean> getNextNodesForSubmit(LawsuitGetNodeQuery query) { + return loanLawsuitApplyService.getNextNodesForSubmit(query); + } + + @Override + public ResultBean> getPreviousNodesForReject(LawsuitGetNodeQuery query) { + return loanLawsuitApplyService.getPreviousNodesForReject(query); + } + + @Override + public ResultBean delegate(LawsuitDelegateQuery query) { + return loanLawsuitApplyService.delegate(query); + } + + @Override + public ResultBean appDetail(String sid) { + return loanLawsuitApplyService.appDetail(sid); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyService.java index 43935afb12..87dbe3c6a4 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyService.java @@ -1,16 +1,34 @@ package com.yxt.anrui.riskcenter.biz.loanlawsuitapply; 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; 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.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.sysorganization.SysOrganizationFeign; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; +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.loanfile.LoanFile; +import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum; import com.yxt.anrui.riskcenter.api.loanlawsuitapply.*; +import com.yxt.anrui.riskcenter.api.loanlawsuitapply.app.AppLawsuitDetailsVo; +import com.yxt.anrui.riskcenter.api.loanlawsuitapply.app.AppVehListVo; +import com.yxt.anrui.riskcenter.api.loanlawsuitapply.flow.*; import com.yxt.anrui.riskcenter.api.loanlawsuitveh.LoanLawsuitVeh; import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.LoanMonthlyAccrualApply; import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.LoanMonthlyAccrualApplyQuery; @@ -19,6 +37,8 @@ import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanSolutionsDetailsss import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApply; import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyQuery; import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyVo; +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.app.AppRepurchaseDetailsVo; +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.flow.*; import com.yxt.anrui.riskcenter.api.loanrestorereportapply.AlrepaidAndArrVo; import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions; import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo; @@ -30,6 +50,9 @@ import com.yxt.common.base.utils.PagerUtil; 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.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -37,9 +60,9 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; +import java.util.concurrent.*; +import java.util.stream.Collectors; /** @@ -50,6 +73,14 @@ import java.util.List; @Service public class LoanLawsuitApplyService extends MybatisBaseService { + @Autowired + private FlowFeign flowFeign; + @Autowired + private FlowTaskFeign flowTaskFeign; + @Autowired + private FlowableFeign flowableFeign; + @Autowired + private MessageFeign messageFeign; @Autowired private SysUserFeign sysUserFeign; @Autowired @@ -270,6 +301,10 @@ public class LoanLawsuitApplyService extends MybatisBaseService saveLawsuit(LoanLawsuitApplyDto dto) { ResultBean rb = ResultBean.fireFail(); String sid = ""; + List vehList1 = dto.getVehList(); + if (vehList1.isEmpty()) { + return rb.setMsg("诉讼车辆列表不能为空!"); + } if (StringUtils.isNotBlank(dto.getSid())) { sid = dto.getSid(); LoanLawsuitApply updateEntity = fetchBySid(sid); @@ -423,4 +458,496 @@ public class LoanLawsuitApplyService extends MybatisBaseService p = PagerUtil.pageToVo(pagging, null); return p; } + + //-----------------------------------flow--------------------------------- + + /** + * 判断提交的流程是否被允许 + * + * @param dto + * @return + */ + private synchronized int submitBusinessData(SubmitLawsuitDto dto, LoanLawsuitApply loanLawsuitApply) { + int r = 0; + if (StringUtils.isBlank(dto.getSid())) { + r = 1; + } else { + if (loanLawsuitApply != null) { + String businessTaskId = loanLawsuitApply.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(SubmitLawsuitDto dto) { + ResultBean rb = ResultBean.fireFail(); + LoanLawsuitApply loanLawsuitApply = fetchBySid(dto.getSid()); + int r = submitBusinessData(dto, loanLawsuitApply); + if (r == 3) { + return rb.setMsg("该申请不存在"); + } + if (r == 0) { + return rb.setMsg("操作失败!提交的数据不一致"); + } + List vehList1 = dto.getVehList(); + if (vehList1.isEmpty()) { + return rb.setMsg("诉讼车辆列表不能为空!"); + } + List busVinSids = new ArrayList<>(); + for (LoanLawsuitVehVo loanLawsuitVehVo : vehList1) { + busVinSids.add(loanLawsuitVehVo.getBusVinSid()); + } + //判断当前车辆是否已在审批中 + int count = baseMapper.selCountByBusVinSid(busVinSids); + if (count > 0) { + return rb.setMsg("当前所选车辆已经处于诉讼申请审批状态,无法提交!"); + } + String businessSid = ""; + //新增修改保存 + ResultBean resultBean = saveLawsuit(dto); + if (resultBean.getSuccess()) { + businessSid = resultBean.getData(); + } else { + return rb.setMsg(resultBean.getMsg()); + } + LoanLawsuitApply 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); + LoanLawsuitApply loanLawsuitApply1 = fetchBySid(businessSid); + String msgBusinessSid = loanLawsuitApply1.getSid(); + //用户的部门全路径sid + bv.setOrgSidPath(loanLawsuitApply1.getOrgSidPath()); + //业务sid + bv.setBusinessSid(businessSid); + //用户sid + bv.setUserSid(dto.getUserSid()); + bv.setFormVariables(variables); +// String nextNodeUserSids_ = sysOrganization.getManagerSid(); +// bv.setNextNodeUserSids(nextNodeUserSids_); +// if (isTure) { +// bv.setNextNodeUserSids(nextNodeUserSids_); +// } else { +// bv.setNextNodeUserSids(entity.getSalesUserSid()); +// } + //流程定义id + bv.setModelId(ProcDefEnum.LOANLAWSUITAPPLY.getProDefId()); + if (r == 1) { + //流程定义id + bv.setModelId(ProcDefEnum.LOANLAWSUITAPPLY.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(loanLawsuitApply1.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"); + } + LoanLawsuitApply loanLawsuitApply2 = fetchBySid(dto.getSid()); + bv.setTaskId(dto.getTaskId()); + bv.setTaskDefKey(loanLawsuitApply2.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(); + LoanLawsuitApply loanLawsuitApply = this.fetchBySid(businessSid); + if (bv.getTaskId().equals(loanLawsuitApply.getTaskId())) { + bv.setOrgSidPath(loanLawsuitApply.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()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + int i = updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { + LoanLawsuitApply lawsuitApply = fetchBySid(businessSid); + lawsuitApply.setCloseDate(new DateTime()); + baseMapper.updateById(lawsuitApply); + + } else { + //极光推送 + loanLawsuitApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowVo.setProcDefId(loanLawsuitApply.getProcDefId()); + messageFlowVo.setProcInsId(loanLawsuitApply.getProcInstId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("诉讼申请"); + messageFlowableQuery.setMsgContent(loanLawsuitApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("诉讼申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + } + return rb.success().setData(resultBean.getData()); + } else { + return rb.setMsg("操作失败!提交的数据不一致"); + } + } + + + /** + * 撤回 + * + * @param query + * @return + */ + public ResultBean revokeProcess(LawsuitTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + LoanLawsuitApply loanLawsuitApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = loanLawsuitApply.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())); + loanLawsuitApply = fetchBySid(query.getBusinessSid()); + String procId = loanLawsuitApply.getProcInstId(); + ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); + String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); + String nextName = listResultBean.getData().get(0).getName_(); + List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); + if ("发起申请".equals(nextName)) { + } + return rb.success().setData(resultBean.getData()); + } + } + return rb.setMsg("操作失败,提交的数据不一致!"); + } + + public ResultBean taskReject(LawsuitTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = query.getBusinessSid(); + LoanLawsuitApply loanLawsuitApply = fetchBySid(businessSid); + if (loanLawsuitApply == null) { + return rb.setMsg("该申请不存在"); + } + String businessTaskId = loanLawsuitApply.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); + //若有网关,则赋值网关中判断的字段。 +// 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); + //极光推送 + loanLawsuitApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + String procId = loanLawsuitApply.getProcInstId(); + messageFlowVo.setProcInsId(procId); + messageFlowVo.setProcDefId(loanLawsuitApply.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(loanLawsuitApply.getCreateBySid()).getData(); + if (userVo != null) { + if (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(LawsuitTaskQuery 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("请填写意见"); + } + LoanLawsuitApply loanLawsuitApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = loanLawsuitApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (query.getUserSid().equals(loanLawsuitApply.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("操作失败!提交的数据不一致!"); + } + + public ResultBean flowRecord(String procInsId) { + return flowTaskFeign.businessFlowRecord(procInsId); + } + + public ResultBean> getNextNodesForSubmit(LawsuitGetNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + + //根据业务sid查询排产信息 + LoanLawsuitApply lawsuitApply = 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(lawsuitApply.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), LawsuitGetNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + + } + + public ResultBean> getPreviousNodesForReject(LawsuitGetNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + //根据业务sid查询排产信息 + LoanLawsuitApply lawsuitApply = 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(lawsuitApply.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), LawsuitGetNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + + } + + public ResultBean delegate(LawsuitDelegateQuery 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(); + AppLawsuitDetailsVo vo = baseMapper.appDetail(sid); + if (null != vo) { + List voList = loanLawsuitVehService.selByMainSid(sid); + List vehListVos = new ArrayList<>(); + if (!voList.isEmpty()) { + for (LoanLawsuitVehVo loanLawsuitVehVo : voList) { + AppVehListVo appVehListVo = new AppVehListVo(); + BeanUtil.copyProperties(loanLawsuitVehVo, appVehListVo); + vehListVos.add(appVehListVo); + } + vo.setVehListVos(vehListVos); + } + } + return rb.success().setData(vo); + } + + } diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitDetailsVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitDetailsVo.java new file mode 100644 index 0000000000..ba32d830c3 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitDetailsVo.java @@ -0,0 +1,43 @@ +package com.yxt.anrui.terminal.api.risk.lawsuit; + +import com.yxt.anrui.terminal.api.base.common.CarModelVo; +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author Administrator + * @description + * @date 2023/11/13 15:38 + */ +@Data +public class LawsuitDetailsVo implements Vo { + + + private String sid; + private String publishInfo; // 发起部门-发起人 + private String time; //申请日期 + private String taskId; + private String procInsId; + @ApiModelProperty("客户名称") + private String custName; + @ApiModelProperty("资方合同号") + private String bankContractNo; + @ApiModelProperty("贷款人") + private String borrName; + @ApiModelProperty("贷款合同号") + private String loanContractNo; + @ApiModelProperty("资方") + private String bankName; + @ApiModelProperty("销售订单sid") + private String salesOrderSid; + @ApiModelProperty("风控进展描述") + private String progress; + @ApiModelProperty("欠款合计") + private String amountAll; + private List vehListVos = new ArrayList<>(); + private CarModelVo jrfa;//金融方案 +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitFeign.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitFeign.java new file mode 100644 index 0000000000..da9805c435 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitFeign.java @@ -0,0 +1,67 @@ +package com.yxt.anrui.terminal.api.risk.lawsuit; + + +import com.yxt.anrui.terminal.api.risk.lawsuit.flow.AppLawsuitDelegateQuery; +import com.yxt.anrui.terminal.api.risk.lawsuit.flow.AppLawsuitTaskQuery; +import com.yxt.anrui.terminal.api.risk.lawsuit.flow.CompleteLawsuitDto; +import com.yxt.anrui.terminal.api.risk.lawsuit.flow.LawsuitFlowableQuery; +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.cloud.openfeign.SpringQueryMap; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; + +/** + * @description: + * @author: fzz + * @date: 2023/8/8 + **/ +@Api(tags = "诉讼申请") +@FeignClient( + contextId = "terminal-Lawsuit", + name = "anrui-terminal", + path = "/riskcenter/v1/Lawsuit", + fallback = LawsuitFeignFallback.class) +public interface LawsuitFeign { + + + @ApiOperation("详情") + @GetMapping("/appDetail/{sid}") + @ResponseBody + ResultBean detail(@PathVariable("sid") String sid); + + //-------------------------流程----------------------------------------- + + @ApiOperation("办理") + @PutMapping("/agreeCreditInfo") + @ResponseBody + ResultBean agreeCreditInfo(@Valid @RequestBody CompleteLawsuitDto dto); + + @ApiOperation("驳回") + @PutMapping("/rejectCreditInfo") + @ResponseBody + ResultBean rejectCreditInfo(@Valid @RequestBody AppLawsuitTaskQuery query); + + @ApiOperation("撤回") + @PutMapping("/recallCreditInfo") + @ResponseBody + ResultBean recallCreditInfo(@Valid @RequestBody AppLawsuitTaskQuery query); + + @ApiOperation("终止") + @PutMapping("/stopCreditInfo") + @ResponseBody + ResultBean stopCreditInfo(@Valid @RequestBody AppLawsuitTaskQuery query); + + @ApiOperation("获取流程操作标题") + @GetMapping("/getFlowOperateTitle") + @ResponseBody + ResultBean getFlowOperateTitle(@Valid @SpringQueryMap LawsuitFlowableQuery query); + + @ApiOperation(value = "加签") + @PutMapping(value = "/delegate") + @ResponseBody + public ResultBean delegate(@RequestBody AppLawsuitDelegateQuery delegateQuery); +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitFeignFallback.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitFeignFallback.java new file mode 100644 index 0000000000..3f2dbebc8d --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitFeignFallback.java @@ -0,0 +1,53 @@ +package com.yxt.anrui.terminal.api.risk.lawsuit; + +import com.yxt.anrui.terminal.api.risk.lawsuit.flow.AppLawsuitDelegateQuery; +import com.yxt.anrui.terminal.api.risk.lawsuit.flow.AppLawsuitTaskQuery; +import com.yxt.anrui.terminal.api.risk.lawsuit.flow.CompleteLawsuitDto; +import com.yxt.anrui.terminal.api.risk.lawsuit.flow.LawsuitFlowableQuery; +import com.yxt.common.core.result.ResultBean; +import org.springframework.stereotype.Component; + +/** + * @description: + * @author: fzz + * @date: + **/ +@Component +public class LawsuitFeignFallback implements LawsuitFeign { + + + @Override + public ResultBean detail(String sid) { + return null; + } + + @Override + public ResultBean agreeCreditInfo(CompleteLawsuitDto dto) { + return null; + } + + @Override + public ResultBean rejectCreditInfo(AppLawsuitTaskQuery query) { + return null; + } + + @Override + public ResultBean recallCreditInfo(AppLawsuitTaskQuery query) { + return null; + } + + @Override + public ResultBean stopCreditInfo(AppLawsuitTaskQuery query) { + return null; + } + + @Override + public ResultBean getFlowOperateTitle(LawsuitFlowableQuery query) { + return null; + } + + @Override + public ResultBean delegate(AppLawsuitDelegateQuery delegateQuery) { + return null; + } +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitVehVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitVehVo.java new file mode 100644 index 0000000000..3388bd613e --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitVehVo.java @@ -0,0 +1,46 @@ +package com.yxt.anrui.terminal.api.risk.lawsuit; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/2/22 10:32 + */ +@Data +public class LawsuitVehVo { + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("车架号") + private String vinNo; + //费用 + @ApiModelProperty("已还金额") + private String alRepaidMoney; // 已还金额 + @ApiModelProperty("当前逾期金额") + private String currentBeMoney; // 当前逾期金额 + @ApiModelProperty("其中资金占用费") + private String wheFundOccMoney; // 资金占用费 + @ApiModelProperty("未到期金额") + private String unexpiredMoney; // 未到期金额 + @ApiModelProperty("总期数") + private String nper; // 总期数 + @ApiModelProperty("当前期数") + private String currentPeriod; // 当前期数 + @ApiModelProperty("已还金额换算期数") + private String alRepaidMoneyConPeriod; // 已还金额换算期数 + @ApiModelProperty("逾期金额换算期数") + private String beOverdueMoneyAndPeriod; // 逾期金额换算期数 + @ApiModelProperty("垫资方月还") + private String price; + @ApiModelProperty("垫资方逾期利息") + private String bankInterest; + @ApiModelProperty("车辆处置金额") + private String amount; + @ApiModelProperty("欠款小计") + private String owedTotal; + @ApiModelProperty("贷款保证金") + private String deposit; + @ApiModelProperty("是否回购") + private String repo; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/flow/AppLawsuitDelegateQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/flow/AppLawsuitDelegateQuery.java new file mode 100644 index 0000000000..9223baf2e3 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/flow/AppLawsuitDelegateQuery.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.terminal.api.risk.lawsuit.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 AppLawsuitDelegateQuery { + @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/lawsuit/flow/AppLawsuitTaskQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/flow/AppLawsuitTaskQuery.java new file mode 100644 index 0000000000..ba44165517 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/flow/AppLawsuitTaskQuery.java @@ -0,0 +1,46 @@ +package com.yxt.anrui.terminal.api.risk.lawsuit.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 AppLawsuitTaskQuery 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/lawsuit/flow/CompleteLawsuitDto.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/flow/CompleteLawsuitDto.java new file mode 100644 index 0000000000..ade339102c --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/flow/CompleteLawsuitDto.java @@ -0,0 +1,35 @@ +package com.yxt.anrui.terminal.api.risk.lawsuit.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 CompleteLawsuitDto implements Dto { + @ApiModelProperty(value = "任务id") + @NotBlank(message = "参数错误:taskId") + private String taskId; + @ApiModelProperty(value = "流程id") + @NotBlank(message = "参数错误:procInsId") + @JsonProperty("procInsId") + private String instanceId; + @ApiModelProperty(value = "意见") + private String comment; + @ApiModelProperty(value = "业务sid") + @NotBlank(message = "参数错误:businessSid") + private String businessSid; + @ApiModelProperty(value = "用户sid") + @NotBlank(message = "参数错误:userSid") + private String userSid; + @ApiModelProperty(value = "节点id") + @NotBlank(message = "参数错误:taskDefKey") + private String taskDefKey; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/flow/LawsuitFlowableQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/flow/LawsuitFlowableQuery.java new file mode 100644 index 0000000000..3d4deba667 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/flow/LawsuitFlowableQuery.java @@ -0,0 +1,21 @@ +package com.yxt.anrui.terminal.api.risk.lawsuit.flow; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class LawsuitFlowableQuery implements Query { + private static final long serialVersionUID = -5879668616710833830L; + + @ApiModelProperty(value = "节点key") + private String taskDefKey; + @ApiModelProperty(value = "业务sid") + private String businessSid; + @ApiModelProperty(value = "0 上一环节 1下一环节") + @NotNull(message = "参数错误:next") + private Integer next; + +} diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/lawsuit/LawsuitRest.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/lawsuit/LawsuitRest.java new file mode 100644 index 0000000000..79e04d1f12 --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/lawsuit/LawsuitRest.java @@ -0,0 +1,68 @@ +package com.yxt.anrui.terminal.biz.risk.lawsuit; + + +import com.yxt.anrui.terminal.api.risk.lawsuit.LawsuitDetailsVo; +import com.yxt.anrui.terminal.api.risk.lawsuit.LawsuitFeign; +import com.yxt.anrui.terminal.api.risk.lawsuit.flow.AppLawsuitDelegateQuery; +import com.yxt.anrui.terminal.api.risk.lawsuit.flow.AppLawsuitTaskQuery; +import com.yxt.anrui.terminal.api.risk.lawsuit.flow.CompleteLawsuitDto; +import com.yxt.anrui.terminal.api.risk.lawsuit.flow.LawsuitFlowableQuery; +import com.yxt.anrui.terminal.api.risk.repurchase.RepurchaseDetailsVo; +import com.yxt.anrui.terminal.api.risk.repurchase.RepurchaseFeign; +import com.yxt.anrui.terminal.api.risk.repurchase.flow.AppRepurchaseDelegateQuery; +import com.yxt.anrui.terminal.api.risk.repurchase.flow.AppRepurchaseTaskQuery; +import com.yxt.anrui.terminal.api.risk.repurchase.flow.CompleteRepurchaseDto; +import com.yxt.anrui.terminal.api.risk.repurchase.flow.RepurchaseFlowableQuery; +import com.yxt.common.core.result.ResultBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * @description: + * @author: fzz + * @date: + **/ +@Controller +@RequestMapping("/riskcenter/v1/Lawsuit") +public class LawsuitRest implements LawsuitFeign { + + @Autowired + private LawsuitService lawsuitService; + + + @Override + public ResultBean detail(String sid) { + return lawsuitService.detail(sid); + } + + @Override + public ResultBean agreeCreditInfo(CompleteLawsuitDto dto) { + return lawsuitService.agreeCreditInfo(dto); + } + + @Override + public ResultBean rejectCreditInfo(AppLawsuitTaskQuery query) { + return lawsuitService.rejectCreditInfo(query); + } + + @Override + public ResultBean recallCreditInfo(AppLawsuitTaskQuery query) { + return lawsuitService.recallCreditInfo(query); + } + + @Override + public ResultBean stopCreditInfo(AppLawsuitTaskQuery query) { + return lawsuitService.stopCreditInfo(query); + } + + @Override + public ResultBean getFlowOperateTitle(LawsuitFlowableQuery query) { + return lawsuitService.getFlowOperateTitle(query); + } + + @Override + public ResultBean delegate(AppLawsuitDelegateQuery delegateQuery) { + return lawsuitService.delegate(delegateQuery); + } +} diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/lawsuit/LawsuitService.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/lawsuit/LawsuitService.java new file mode 100644 index 0000000000..edb7bbf2ab --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/lawsuit/LawsuitService.java @@ -0,0 +1,164 @@ +package com.yxt.anrui.terminal.biz.risk.lawsuit; + + +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.loanlawsuitapply.LoanLawsuitApplyFeign; +import com.yxt.anrui.riskcenter.api.loanlawsuitapply.app.AppLawsuitDetailsVo; +import com.yxt.anrui.riskcenter.api.loanlawsuitapply.flow.*; +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyFeign; +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.app.AppRepurchaseDetailsVo; +import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.flow.*; +import com.yxt.anrui.terminal.api.base.common.CarModelVo; +import com.yxt.anrui.terminal.api.risk.lawsuit.LawsuitDetailsVo; +import com.yxt.anrui.terminal.api.risk.lawsuit.flow.AppLawsuitDelegateQuery; +import com.yxt.anrui.terminal.api.risk.lawsuit.flow.AppLawsuitTaskQuery; +import com.yxt.anrui.terminal.api.risk.lawsuit.flow.CompleteLawsuitDto; +import com.yxt.anrui.terminal.api.risk.lawsuit.flow.LawsuitFlowableQuery; +import com.yxt.anrui.terminal.api.risk.repurchase.RepurchaseDetailsVo; +import com.yxt.anrui.terminal.api.risk.repurchase.flow.AppRepurchaseDelegateQuery; +import com.yxt.anrui.terminal.api.risk.repurchase.flow.AppRepurchaseTaskQuery; +import com.yxt.anrui.terminal.api.risk.repurchase.flow.CompleteRepurchaseDto; +import com.yxt.anrui.terminal.api.risk.repurchase.flow.RepurchaseFlowableQuery; +import com.yxt.anrui.terminal.biz.base.common.CommonService; +import com.yxt.common.core.result.ResultBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; + +/** + * @description: + * @author: fzz + * @date: + **/ +@Service +public class LawsuitService { + + @Autowired + private SysUserFeign sysUserFeign; + @Autowired + private SysStaffOrgFeign sysStaffOrgFeign; + @Autowired + private LoanLawsuitApplyFeign loanLawsuitApplyFeign; + @Autowired + private CommonService commonService; + + public ResultBean detail(String sid) { + ResultBean rb = ResultBean.fireFail(); + LawsuitDetailsVo vo = new LawsuitDetailsVo(); + AppLawsuitDetailsVo data = loanLawsuitApplyFeign.appDetail(sid).getData(); + if (null != data) { + BeanUtil.copyProperties(data, vo); + ResultBean getLoanSolution = commonService.getLoanSolution(data.getSalesOrderSid()); + CarModelVo carModelVo = getLoanSolution.getData(); + vo.setJrfa(carModelVo); + } + return rb.success().setData(vo); + } + + + public ResultBean agreeCreditInfo(CompleteLawsuitDto 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(); + LawsuitCompleteDto completeDto = new + LawsuitCompleteDto(); + BeanUtil.copyProperties(dto, completeDto); + completeDto.setOrgSidPath(orgSidPath); + ResultBean resultBean = loanLawsuitApplyFeign.complete(completeDto); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean rejectCreditInfo(AppLawsuitTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + LawsuitTaskQuery taskQuery = new + LawsuitTaskQuery(); + BeanUtil.copyProperties(query, taskQuery); + ResultBean resultBean = loanLawsuitApplyFeign.taskReject(taskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean recallCreditInfo(AppLawsuitTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + LawsuitTaskQuery taskQuery = new + LawsuitTaskQuery(); + BeanUtil.copyProperties(query, taskQuery); + ResultBean resultBean = loanLawsuitApplyFeign.revokeProcess(taskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean stopCreditInfo(AppLawsuitTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + LawsuitTaskQuery taskQuery = new + LawsuitTaskQuery(); + BeanUtil.copyProperties(query, taskQuery); + ResultBean resultBean = loanLawsuitApplyFeign.breakProcess(taskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean getFlowOperateTitle(LawsuitFlowableQuery query) { + ResultBean rb = ResultBean.fireFail(); + //0 上一环节 1下一环节 + int next = query.getNext(); + LawsuitGetNodeQuery getNodeQuery = new + LawsuitGetNodeQuery(); + BeanUtil.copyProperties(query, getNodeQuery); + String data = ""; + if (next == 0) { + ResultBean> getPreviousNodesForReject = loanLawsuitApplyFeign.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 = loanLawsuitApplyFeign.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(AppLawsuitDelegateQuery delegateQuery) { + ResultBean rb = ResultBean.fireFail(); + LawsuitDelegateQuery delegateQuery1 = new + LawsuitDelegateQuery(); + BeanUtil.copyProperties(delegateQuery, delegateQuery1); + ResultBean delegate = loanLawsuitApplyFeign.delegate(delegateQuery1); + return rb.success(); + } +} From 6b44ec2b623d91f50c2d6c3451d09ddb9e0e454e Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Thu, 22 Feb 2024 17:43:45 +0800 Subject: [PATCH 04/11] =?UTF-8?q?=E5=90=88=E5=90=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../busbillapplication/BusBillApplicationService.java | 8 ++++---- .../finbillapplication/FinBillApplicationService.java | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationService.java index 2153aff0bf..f2012cbcb8 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationService.java @@ -688,9 +688,6 @@ public class BusBillApplicationService extends MybatisBaseService dateString = Arrays.asList(date.split("-")); @@ -717,13 +714,16 @@ public class BusBillApplicationService extends MybatisBaseService> mapResultBean = commonContractFeign.getModelMap(filemap); checkMap = mapResultBean.getData(); + checkMap.put("totalPrice", ""); + checkMap.put("priceRemarks", ""); + checkMap.put("depositTotal", ""); + checkMap.put("createOrgName", ""); } try { ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java index 045908647c..bb9c723088 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java @@ -801,10 +801,6 @@ public class FinBillApplicationService extends MybatisBaseService dateString = Arrays.asList(date.split("-")); @@ -831,12 +827,16 @@ public class FinBillApplicationService extends MybatisBaseService> mapResultBean = commonContractFeign.getModelMap(filemap); checkMap = mapResultBean.getData(); + //生成新车空白合同 + checkMap.put("totalPrice", ""); + checkMap.put("priceRemarks", ""); + checkMap.put("depositTotal", ""); + checkMap.put("createOrgName", ""); } From efa3efbd8bc3f69db562e5af83093b232b846986 Mon Sep 17 00:00:00 2001 From: God <10745413@qq.com> Date: Thu, 22 Feb 2024 17:52:12 +0800 Subject: [PATCH 05/11] =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E6=A1=88?= =?UTF-8?q?=E4=BB=B6=E7=AB=8B=E6=A1=88=E5=8F=8A=E6=B5=81=E7=A8=8B=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LoanCaseCloseApplyDetailsVo.java | 6 + .../LoanCaseCloseVehDetailsVo.java | 2 + .../caseclose/AppCaseCloseApplyDetailsVo.java | 115 ++++++++++++ .../caseclose/AppCaseCloseVehDetailsVo.java | 64 +++++++ .../api/risk/caseclose/CaseCloseFeign.java | 62 +++++++ .../caseclose/CaseCloseFeignFallback.java | 12 ++ .../flowable/AppCaseCloseDelegateQuery.java | 25 +++ .../caseclose/flowable/CaseCloseQuery.java | 17 ++ .../flowable/CaseCloseTaskQuery.java | 42 +++++ .../flowable/CompleteCaseCloseDto.java | 34 ++++ .../risk/caseexecute/CaseExecuteFeign.java | 4 +- .../biz/risk/caseclose/CaseCloseRest.java | 86 +++++++++ .../biz/risk/caseclose/CaseCloseService.java | 171 ++++++++++++++++++ 13 files changed, 638 insertions(+), 2 deletions(-) create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/AppCaseCloseApplyDetailsVo.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/AppCaseCloseVehDetailsVo.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/CaseCloseFeign.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/CaseCloseFeignFallback.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/flowable/AppCaseCloseDelegateQuery.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/flowable/CaseCloseQuery.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/flowable/CaseCloseTaskQuery.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/flowable/CompleteCaseCloseDto.java create mode 100644 anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/caseclose/CaseCloseRest.java create mode 100644 anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/caseclose/CaseCloseService.java diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancasecloseapply/LoanCaseCloseApplyDetailsVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancasecloseapply/LoanCaseCloseApplyDetailsVo.java index 440ba63d55..b322962389 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancasecloseapply/LoanCaseCloseApplyDetailsVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancasecloseapply/LoanCaseCloseApplyDetailsVo.java @@ -55,6 +55,12 @@ public class LoanCaseCloseApplyDetailsVo implements Vo { private String sid; // sid + @ApiModelProperty("备注") + private String remarks; + @ApiModelProperty("申请日期") + private String createTime; + @ApiModelProperty("创建人sid") + private String createBySid; @ApiModelProperty("创建人") private String createByName; // 创建人 @ApiModelProperty("申请编号") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancasecloseveh/LoanCaseCloseVehDetailsVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancasecloseveh/LoanCaseCloseVehDetailsVo.java index f0dcbbaa0e..0219c9631a 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancasecloseveh/LoanCaseCloseVehDetailsVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancasecloseveh/LoanCaseCloseVehDetailsVo.java @@ -59,6 +59,8 @@ public class LoanCaseCloseVehDetailsVo implements Vo { private String affiliatedCompany; // 挂靠公司 @ApiModelProperty("车辆状态") private String carState; // 车辆状态 + @ApiModelProperty("备注") + private String remarks; @ApiModelProperty("案件结案申请sid") private String mainSid; // 案件结案申请sid diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/AppCaseCloseApplyDetailsVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/AppCaseCloseApplyDetailsVo.java new file mode 100644 index 0000000000..c35aee8cf3 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/AppCaseCloseApplyDetailsVo.java @@ -0,0 +1,115 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.terminal.api.risk.caseclose; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * Project: anrui-riskcenter(案件结案申请)
+ * File: LoanCaseCloseApplyVo.java
+ * Class: com.yxt.anrui.riskcenter.api.loancasecloseapply.LoanCaseCloseApplyVo
+ * Description: 案件结案申请 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2024-02-08 11:07:38
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +@ApiModel(value = "案件结案申请 视图数据详情", description = "案件结案申请 视图数据详情") +public class AppCaseCloseApplyDetailsVo implements Vo { + + private String sid; // sid + + @ApiModelProperty("申请部门-申请人") + private String publishInfo; + @ApiModelProperty("申请日期") + private String time; + @ApiModelProperty("案件创建日期") + private String caseCreateDate; + @ApiModelProperty("公司负责人") + private String compHead; + @ApiModelProperty("法务部门负责人") + private String legalDeptHead; + @ApiModelProperty("案件编号") + private String caseNo; + @ApiModelProperty("案件类型") + private String caseType; + @ApiModelProperty("贷款合同编号") + private String loanContract; + @ApiModelProperty("贷款人") + private String lenderName; + @ApiModelProperty("贷款人证件号码") + private String lenderIdNo; + @ApiModelProperty("贷款人户籍/注册地址") + private String lenderAddress; + @ApiModelProperty("客户") + private String customName; + @ApiModelProperty("资方") + private String bankName; + @ApiModelProperty("资方合同编号") + private String bankContract; + @ApiModelProperty("欠款合计") + private String arrearsTotal; + @ApiModelProperty("是否全额诉讼") + private String isFullLitigation; + @ApiModelProperty("起诉金额合计") + private String sueMoneyTotal; + @ApiModelProperty("部分诉讼说明") + private String partProceRemarks; + @ApiModelProperty("最终判决金额") + private String finalJudgMoney; + @ApiModelProperty("回款金额") + private String returnMoney; + @ApiModelProperty("未回款金额") + private String notReturnMoney; + @ApiModelProperty("执行措施") + private String executeMeasure; + @ApiModelProperty("执行说明") + private String executeRemarks; + @ApiModelProperty("结案方式value") + private String closeTypeValue; + @ApiModelProperty("结案日期") + private String closeDate; + @ApiModelProperty("结案说明") + private String closeRemarks; + @ApiModelProperty("流程实例的sid") + private String procInsId; + @ApiModelProperty("任务id") + private String taskId; + + @ApiModelProperty + private List appJaclFiles; + @ApiModelProperty("上诉车辆") + private List appCaseCloseVehList; +} \ No newline at end of file diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/AppCaseCloseVehDetailsVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/AppCaseCloseVehDetailsVo.java new file mode 100644 index 0000000000..6fe90a34e5 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/AppCaseCloseVehDetailsVo.java @@ -0,0 +1,64 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.terminal.api.risk.caseclose; + + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Project: anrui-riskcenter(案件结案申请)
+ * File: LoanCaseCloseVehVo.java
+ * Class: com.yxt.anrui.riskcenter.api.loancasecloseveh.LoanCaseCloseVehVo
+ * Description: 案件结案车辆 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2024-02-08 11:07:38
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +@ApiModel(value = "案件结案车辆 视图数据详情", description = "案件结案车辆 视图数据详情") +public class AppCaseCloseVehDetailsVo implements Vo { + + private String sid; // sid + + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String carNum; + @ApiModelProperty("挂靠公司") + private String affiliatedCompany; + @ApiModelProperty("车辆状态") + private String carState; + @ApiModelProperty("备注") + private String remarks; + +} \ No newline at end of file diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/CaseCloseFeign.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/CaseCloseFeign.java new file mode 100644 index 0000000000..80573ae522 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/CaseCloseFeign.java @@ -0,0 +1,62 @@ +package com.yxt.anrui.terminal.api.risk.caseclose; + +import com.yxt.anrui.terminal.api.risk.caseappeal.AppCaseAppealApplyDetailsVo; +import com.yxt.anrui.terminal.api.risk.caseclose.flowable.AppCaseCloseDelegateQuery; +import com.yxt.anrui.terminal.api.risk.caseclose.flowable.CaseCloseQuery; +import com.yxt.anrui.terminal.api.risk.caseclose.flowable.CaseCloseTaskQuery; +import com.yxt.anrui.terminal.api.risk.caseclose.flowable.CompleteCaseCloseDto; +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.cloud.openfeign.SpringQueryMap; +import org.springframework.web.bind.annotation.*; + +/** + * @Author + * @Date + * @Description + */ +@Api(tags = "案件结案管理") +@FeignClient( + contextId = "terminal-CaseClose", + name = "anrui-terminal", + path = "riskcenter/v1/caseclose", + fallback = CaseCloseFeignFallback.class) +public interface CaseCloseFeign { + + @ApiOperation("办理") + @PutMapping("/agreeCreditInfo") + @ResponseBody + ResultBean agreeCreditInfo(@RequestBody CompleteCaseCloseDto dto); + + @ApiOperation("驳回") + @PutMapping("/rejectCreditInfo") + @ResponseBody + ResultBean rejectCreditInfo(@RequestBody CaseCloseTaskQuery query); + + @ApiOperation("撤回") + @PutMapping("/recallCreditInfo") + @ResponseBody + ResultBean recallCreditInfo(@RequestBody CaseCloseTaskQuery query); + + @ApiOperation("终止") + @PutMapping("/stopCreditInfo") + @ResponseBody + ResultBean stopCreditInfo(@RequestBody CaseCloseTaskQuery query); + + @ApiOperation("获取流程操作标题") + @GetMapping("/getFlowOperateTitle") + @ResponseBody + ResultBean getFlowOperateTitle(@SpringQueryMap CaseCloseQuery query); + + @ApiOperation(value = "加签") + @PutMapping(value = "/delegate") + @ResponseBody + public ResultBean delegate(@RequestBody AppCaseCloseDelegateQuery delegateQuery); + + @ApiOperation("案件结案详情") + @GetMapping("/details/{sid}") + @ResponseBody + public ResultBean collectionDetail(@PathVariable("sid") String sid); +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/CaseCloseFeignFallback.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/CaseCloseFeignFallback.java new file mode 100644 index 0000000000..a46d17fb49 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/CaseCloseFeignFallback.java @@ -0,0 +1,12 @@ +package com.yxt.anrui.terminal.api.risk.caseclose; + +import org.springframework.stereotype.Component; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/8/8 + **/ +@Component +public class CaseCloseFeignFallback { +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/flowable/AppCaseCloseDelegateQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/flowable/AppCaseCloseDelegateQuery.java new file mode 100644 index 0000000000..fd931921f3 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/flowable/AppCaseCloseDelegateQuery.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.terminal.api.risk.caseclose.flowable; + +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 AppCaseCloseDelegateQuery { + @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/caseclose/flowable/CaseCloseQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/flowable/CaseCloseQuery.java new file mode 100644 index 0000000000..2d56c96ad1 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/flowable/CaseCloseQuery.java @@ -0,0 +1,17 @@ +package com.yxt.anrui.terminal.api.risk.caseclose.flowable; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class CaseCloseQuery implements Query { + private static final long serialVersionUID = -3563282658560745370L; + + @ApiModelProperty(value = "节点key") + private String taskDefKey; + @ApiModelProperty(value = "业务sid") + private String businessSid; + @ApiModelProperty(value = "0 上一环节 1下一环节") + private Integer next; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/flowable/CaseCloseTaskQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/flowable/CaseCloseTaskQuery.java new file mode 100644 index 0000000000..2af3c700e5 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/flowable/CaseCloseTaskQuery.java @@ -0,0 +1,42 @@ +package com.yxt.anrui.terminal.api.risk.caseclose.flowable; + +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; + +@Data +public class CaseCloseTaskQuery implements Query { + private static final long serialVersionUID = -6952737531036706114L; + + /** + * 终止、驳回、撤回 + */ + @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/caseclose/flowable/CompleteCaseCloseDto.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/flowable/CompleteCaseCloseDto.java new file mode 100644 index 0000000000..f425f1b24c --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/flowable/CompleteCaseCloseDto.java @@ -0,0 +1,34 @@ +package com.yxt.anrui.terminal.api.risk.caseclose.flowable; + +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; + +@Data +public class CompleteCaseCloseDto implements Dto { + private static final long serialVersionUID = 7978653524636034916L; + + @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/caseexecute/CaseExecuteFeign.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseexecute/CaseExecuteFeign.java index f1c259ab8f..6787bb2cc0 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseexecute/CaseExecuteFeign.java +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseexecute/CaseExecuteFeign.java @@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.*; * @Date * @Description */ -@Api(tags = "案件上诉管理") +@Api(tags = "案件立案管理") @FeignClient( contextId = "terminal-CaseExecute", name = "anrui-terminal", @@ -54,7 +54,7 @@ public interface CaseExecuteFeign { @ResponseBody public ResultBean delegate(@RequestBody AppCaseExecuteDelegateQuery delegateQuery); - @ApiOperation("案件上诉详情") + @ApiOperation("案件立案详情") @GetMapping("/details/{sid}") @ResponseBody public ResultBean collectionDetail(@PathVariable("sid") String sid); diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/caseclose/CaseCloseRest.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/caseclose/CaseCloseRest.java new file mode 100644 index 0000000000..6019fac6ad --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/caseclose/CaseCloseRest.java @@ -0,0 +1,86 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.terminal.biz.risk.caseclose; + +import com.yxt.anrui.terminal.api.risk.caseclose.AppCaseCloseApplyDetailsVo; +import com.yxt.anrui.terminal.api.risk.caseclose.CaseCloseFeign; +import com.yxt.anrui.terminal.api.risk.caseclose.flowable.AppCaseCloseDelegateQuery; +import com.yxt.anrui.terminal.api.risk.caseclose.flowable.CaseCloseQuery; +import com.yxt.anrui.terminal.api.risk.caseclose.flowable.CaseCloseTaskQuery; +import com.yxt.anrui.terminal.api.risk.caseclose.flowable.CompleteCaseCloseDto; +import com.yxt.anrui.terminal.api.risk.caseexecute.AppCaseExecuteApplyDetailsVo; +import com.yxt.anrui.terminal.api.risk.caseexecute.CaseExecuteFeign; +import com.yxt.anrui.terminal.api.risk.caseexecute.flowable.AppCaseExecuteDelegateQuery; +import com.yxt.anrui.terminal.api.risk.caseexecute.flowable.CaseExecuteQuery; +import com.yxt.anrui.terminal.api.risk.caseexecute.flowable.CaseExecuteTaskQuery; +import com.yxt.anrui.terminal.api.risk.caseexecute.flowable.CompleteCaseExecuteDto; +import com.yxt.common.core.result.ResultBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController("案件结案管理") +@RequestMapping("riskcenter/v1/caseclose") +public class CaseCloseRest implements CaseCloseFeign { + + @Autowired + private CaseCloseService caseCloseService; + + @Override + public ResultBean agreeCreditInfo(CompleteCaseCloseDto dto) { + return caseCloseService.agreeCreditInfo(dto); + } + + @Override + public ResultBean rejectCreditInfo(CaseCloseTaskQuery query) { + return caseCloseService.rejectCreditInfo(query); + } + + @Override + public ResultBean recallCreditInfo(CaseCloseTaskQuery query) { + return caseCloseService.recallCreditInfo(query); + } + + @Override + public ResultBean stopCreditInfo(CaseCloseTaskQuery query) { + return caseCloseService.stopCreditInfo(query); + } + + @Override + public ResultBean getFlowOperateTitle(CaseCloseQuery query) { + return caseCloseService.getFlowOperateTitle(query); + } + + @Override + public ResultBean delegate(AppCaseCloseDelegateQuery delegateQuery) { + return caseCloseService.delegate(delegateQuery); + } + + @Override + public ResultBean collectionDetail(String sid) { + return caseCloseService.collectionDetail(sid); + } +} diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/caseclose/CaseCloseService.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/caseclose/CaseCloseService.java new file mode 100644 index 0000000000..4033bc6571 --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/caseclose/CaseCloseService.java @@ -0,0 +1,171 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.terminal.biz.risk.caseclose; + + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.riskcenter.api.loancasecloseapply.LoanCaseCloseApplyDetailsVo; +import com.yxt.anrui.riskcenter.api.loancasecloseapply.LoanCaseCloseApplyFeign; +import com.yxt.anrui.riskcenter.api.loancasecloseapply.LoanCaseCloseFile; +import com.yxt.anrui.riskcenter.api.loancasecloseapply.flowable.*; +import com.yxt.anrui.riskcenter.api.loancasecloseveh.LoanCaseCloseVehDetailsVo; +import com.yxt.anrui.riskcenter.api.loancaseexecuteapply.LoanCaseExecuteApplyDetailsVo; +import com.yxt.anrui.riskcenter.api.loancaseexecuteapply.LoanCaseExecuteApplyFeign; +import com.yxt.anrui.riskcenter.api.loancaseexecuteapply.LoanCaseExecuteFile; +import com.yxt.anrui.riskcenter.api.loancaseexecuteapply.flowable.*; +import com.yxt.anrui.riskcenter.api.loancaseexecuteveh.LoanCaseExecuteVehDetailsVo; +import com.yxt.anrui.terminal.api.risk.caseclose.AppCaseCloseApplyDetailsVo; +import com.yxt.anrui.terminal.api.risk.caseclose.AppCaseCloseVehDetailsVo; +import com.yxt.anrui.terminal.api.risk.caseclose.flowable.AppCaseCloseDelegateQuery; +import com.yxt.anrui.terminal.api.risk.caseclose.flowable.CaseCloseQuery; +import com.yxt.anrui.terminal.api.risk.caseclose.flowable.CaseCloseTaskQuery; +import com.yxt.anrui.terminal.api.risk.caseclose.flowable.CompleteCaseCloseDto; +import com.yxt.anrui.terminal.api.risk.caseexecute.AppCaseExecuteApplyDetailsVo; +import com.yxt.anrui.terminal.api.risk.caseexecute.AppCaseExecuteVehDetailsVo; +import com.yxt.anrui.terminal.api.risk.caseexecute.flowable.AppCaseExecuteDelegateQuery; +import com.yxt.anrui.terminal.api.risk.caseexecute.flowable.CaseExecuteQuery; +import com.yxt.anrui.terminal.api.risk.caseexecute.flowable.CaseExecuteTaskQuery; +import com.yxt.anrui.terminal.api.risk.caseexecute.flowable.CompleteCaseExecuteDto; +import com.yxt.common.core.result.ResultBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +@Service +public class CaseCloseService { + + @Autowired + private LoanCaseCloseApplyFeign loanCaseCloseApplyFeign; + + public ResultBean agreeCreditInfo(CompleteCaseCloseDto dto) { + ResultBean rb = ResultBean.fireFail(); + LoanCaseCloseApplyCompleteDto loanCaseCloseApplyCompleteDto = new LoanCaseCloseApplyCompleteDto(); + BeanUtil.copyProperties(dto, loanCaseCloseApplyCompleteDto); + loanCaseCloseApplyFeign.complete(loanCaseCloseApplyCompleteDto); + return rb.success(); + } + + public ResultBean rejectCreditInfo(CaseCloseTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + LoanCaseCloseApplyTaskQuery taskQuery = new LoanCaseCloseApplyTaskQuery(); + BeanUtil.copyProperties(query, taskQuery); + ResultBean resultBean = loanCaseCloseApplyFeign.reject(taskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean recallCreditInfo(CaseCloseTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + LoanCaseCloseApplyTaskQuery taskQuery = new LoanCaseCloseApplyTaskQuery(); + BeanUtil.copyProperties(query, taskQuery); + ResultBean resultBean = loanCaseCloseApplyFeign.revokeProcess(taskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean stopCreditInfo(CaseCloseTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + LoanCaseCloseApplyTaskQuery taskQuery = new LoanCaseCloseApplyTaskQuery(); + BeanUtil.copyProperties(query, taskQuery); + ResultBean resultBean = loanCaseCloseApplyFeign.breakProcess(taskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean getFlowOperateTitle(CaseCloseQuery query) { + ResultBean rb = ResultBean.fireFail(); + //0 上一环节 1下一环节 + int next = query.getNext(); + LoanCaseCloseApplyNodeQuery getNodeQuery = new LoanCaseCloseApplyNodeQuery(); + BeanUtil.copyProperties(query, getNodeQuery); + String data = ""; + if (next == 0) { + ResultBean> previousNodesForReject = loanCaseCloseApplyFeign.getPreviousNodesForReject(getNodeQuery); + if (previousNodesForReject.getSuccess()) { + previousNodesForReject.getData().removeAll(Collections.singleton(null)); + data = previousNodesForReject.getData().get(0).getName(); + } else { + return rb.setMsg(previousNodesForReject.getMsg()); + } + } else if (next == 1) { + ResultBean> nextNodesForSubmit = loanCaseCloseApplyFeign.getNextNodesForSubmit(getNodeQuery); + if (nextNodesForSubmit.getSuccess()) { + nextNodesForSubmit.getData().removeAll(Collections.singleton(null)); + data = nextNodesForSubmit.getData().get(0).getName(); + } else { + return rb.setMsg(nextNodesForSubmit.getMsg()); + } + } else { + return rb.setMsg("参数错误:next"); + } + return rb.success().setData(data); + } + + public ResultBean delegate(AppCaseCloseDelegateQuery delegateQuery) { + ResultBean rb = ResultBean.fireFail(); + LoanCaseCloseApplyDelegateQuery delegateQuery1 = new + LoanCaseCloseApplyDelegateQuery(); + BeanUtil.copyProperties(delegateQuery, delegateQuery1); + loanCaseCloseApplyFeign.delegate(delegateQuery1); + return rb.success(); + } + + public ResultBean collectionDetail(String sid) { + ResultBean rb = ResultBean.fireFail(); + LoanCaseCloseApplyDetailsVo loanCaseCloseApplyDetailsVo = loanCaseCloseApplyFeign.fetchDetailsBySid(sid).getData(); + AppCaseCloseApplyDetailsVo appCaseCloseApplyDetailsVo = new AppCaseCloseApplyDetailsVo(); + BeanUtil.copyProperties(loanCaseCloseApplyDetailsVo,appCaseCloseApplyDetailsVo); + appCaseCloseApplyDetailsVo.setPublishInfo(loanCaseCloseApplyDetailsVo.getDeptName() + "-" + loanCaseCloseApplyDetailsVo.getCreateByName()); + appCaseCloseApplyDetailsVo.setTime(loanCaseCloseApplyDetailsVo.getCreateTime()); + appCaseCloseApplyDetailsVo.setProcInsId(loanCaseCloseApplyDetailsVo.getProcInstSid()); + List jaclFiles = loanCaseCloseApplyDetailsVo.getJaclFiles(); + List appJacl = new ArrayList<>(); + if (jaclFiles != null && jaclFiles.size() > 0){ + for (LoanCaseCloseFile file : jaclFiles) { + appJacl.add(file.getUrl()); + } + } + appCaseCloseApplyDetailsVo.setAppJaclFiles(appJacl); + List loanCaseCloseVehList = loanCaseCloseApplyDetailsVo.getLoanCaseCloseVehList(); + List appCaseCloseVehDetailsVos = new ArrayList<>(); + for (LoanCaseCloseVehDetailsVo loanCaseCloseVehDetailsVo : loanCaseCloseVehList) { + AppCaseCloseVehDetailsVo appCaseCloseVehDetailsVo = new AppCaseCloseVehDetailsVo(); + BeanUtil.copyProperties(loanCaseCloseVehDetailsVo,appCaseCloseVehDetailsVo); + appCaseCloseVehDetailsVos.add(appCaseCloseVehDetailsVo); + } + appCaseCloseApplyDetailsVo.setAppCaseCloseVehList(appCaseCloseVehDetailsVos); + return rb.success().setData(appCaseCloseApplyDetailsVo); + } +} \ No newline at end of file From ddb91a9b821fe3595bb92cf6ac12f3093694d21e Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Fri, 23 Feb 2024 08:45:50 +0800 Subject: [PATCH 06/11] =?UTF-8?q?=E5=90=88=E5=90=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FinBillApplicationService.java | 348 +++++++++--------- 1 file changed, 173 insertions(+), 175 deletions(-) diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java index bb9c723088..8f23fd2049 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java @@ -688,210 +688,208 @@ public class FinBillApplicationService extends MybatisBaseService finBillVehicles = dto.getFinBillVehicles(); - BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid()); - BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid()); - FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.fetchDetailsVoBySid(dto.getOpenTickSid()); - if (!dto.getOpenTickSid().equals(busSalesOrder.getAffiliatedCompanySid())) { - //生成开票申请书 - if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) { - ResultBean invoicingDetailsVoResultBean = finCompanyInvoicingService.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()); - if (invoicingDetailsVoResultBean.getData() != null) { - map.put("createOrgName", invoicingDetailsVoResultBean.getData().getName()); + if("1".equals(busSalesOrder.getPayTypeKey()) || ("2".equals(busSalesOrder.getPayTypeKey()) && StringUtils.isNotBlank(loanSolutions.getTypeKey()))) { + List finBillVehicles = dto.getFinBillVehicles(); + BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid()); + BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid()); + FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.fetchDetailsVoBySid(dto.getOpenTickSid()); + if (!dto.getOpenTickSid().equals(busSalesOrder.getAffiliatedCompanySid())) { + //生成开票申请书 + if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) { + ResultBean invoicingDetailsVoResultBean = finCompanyInvoicingService.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()); + if (invoicingDetailsVoResultBean.getData() != null) { + map.put("createOrgName", invoicingDetailsVoResultBean.getData().getName()); + } } - } - map.put("contractNo", busSalesOrder.getContractNo()); - List list = new ArrayList<>(); + map.put("contractNo", busSalesOrder.getContractNo()); + List list = new ArrayList<>(); - BillFileVo billFileVo = new BillFileVo(); - if (busSalesOrderModel != null) { - billFileVo.setCarName(busSalesOrderModel.getModelName()); - billFileVo.setNum(String.valueOf(finBillVehicles.size())); - billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString()); - } - if (loanSolutions != null) { - if (StringUtils.isNotBlank(loanSolutions.getMainVehicleAmount())) { - billFileVo.setOpenPrice(loanSolutions.getMainVehicleAmount()); + BillFileVo billFileVo = new BillFileVo(); + if (busSalesOrderModel != null) { + billFileVo.setCarName(busSalesOrderModel.getModelName()); + billFileVo.setNum(String.valueOf(finBillVehicles.size())); + billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString()); } - } - billFileVo.setType(busSalesOrder.getBillingType()); - list.add(billFileVo); - List finBillTrailers = dto.getFinBillTrailers(); - finBillTrailers.removeAll(Collections.singleton(null)); - Map carNameMap = new HashMap<>(); - if (!finBillTrailers.isEmpty()) { - for (int i = 0; i < finBillTrailers.size(); i++) { - FinBillTrailerDto finBillTrailerDto = finBillTrailers.get(i); - billFileVo = new BillFileVo(); - BaseTrailer baseTrailer = baseMapper.selectByTrailerNo(finBillTrailerDto.getGcVinNo()); - if (baseTrailer != null) { - BaseTrailerModel baseTrailerModel = baseMapper.selectByModelSid(baseTrailer.getTrailerModelSid()); - if (baseTrailerModel != null) { - String carName = "外廓-" + Integer.parseInt(baseTrailerModel.getAppearanceSizeLong()) / 1000 + "米" + "\t" + baseTrailerModel.getTrailerTypeValue(); - if (carNameMap.containsKey(carName)) { - carNameMap.put(carName, Integer.parseInt(carNameMap.get(carName).toString()) + 1); - continue; - } else { - billFileVo.setType(busSalesOrder.getBillingType()); - if (loanSolutions != null) { - if (StringUtils.isNotBlank(loanSolutions.getMainVehicleAmount())) { - billFileVo.setOpenPrice(loanSolutions.getMainVehicleAmount()); + if (loanSolutions != null) { + if (StringUtils.isNotBlank(loanSolutions.getMainVehicleAmount())) { + billFileVo.setOpenPrice(loanSolutions.getMainVehicleAmount()); + } + } + billFileVo.setType(busSalesOrder.getBillingType()); + list.add(billFileVo); + List finBillTrailers = dto.getFinBillTrailers(); + finBillTrailers.removeAll(Collections.singleton(null)); + Map carNameMap = new HashMap<>(); + if (!finBillTrailers.isEmpty()) { + for (int i = 0; i < finBillTrailers.size(); i++) { + FinBillTrailerDto finBillTrailerDto = finBillTrailers.get(i); + billFileVo = new BillFileVo(); + BaseTrailer baseTrailer = baseMapper.selectByTrailerNo(finBillTrailerDto.getGcVinNo()); + if (baseTrailer != null) { + BaseTrailerModel baseTrailerModel = baseMapper.selectByModelSid(baseTrailer.getTrailerModelSid()); + if (baseTrailerModel != null) { + String carName = "外廓-" + Integer.parseInt(baseTrailerModel.getAppearanceSizeLong()) / 1000 + "米" + "\t" + baseTrailerModel.getTrailerTypeValue(); + if (carNameMap.containsKey(carName)) { + carNameMap.put(carName, Integer.parseInt(carNameMap.get(carName).toString()) + 1); + continue; + } else { + billFileVo.setType(busSalesOrder.getBillingType()); + if (loanSolutions != null) { + if (StringUtils.isNotBlank(loanSolutions.getMainVehicleAmount())) { + billFileVo.setOpenPrice(loanSolutions.getMainVehicleAmount()); + } } + billFileVo.setCarName(carName); + if (busSalesOrderModel != null) { + billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString()); + } + carNameMap.put(carName, 1); + list.add(billFileVo); } - billFileVo.setCarName(carName); - if (busSalesOrderModel != null) { - billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString()); - } - carNameMap.put(carName, 1); - list.add(billFileVo); } } } } - } - if (!list.isEmpty()) { - for (int i = 0; i < list.size(); i++) { - BillFileVo billFileVo1 = list.get(i); - String carName = billFileVo1.getCarName(); - if (carNameMap.containsKey(carName)) { - billFileVo1.setNum(carNameMap.get(carName).toString()); - } - } - } - map.put("list", list); - map.put("name",busSalesOrder.getAffiliatedCompany()); - String date = DateUtil.today(); - List dateString = Arrays.asList(date.split("-")); - String year = dateString.get(0); - String month = dateString.get(1); - String day = dateString.get(2); - map.put("year", year); - map.put("month", month); - map.put("day", day); - if (!"02".equals(dto.getOpenTickTypeKey())) { - if (finCompanyInvoicingDetailsVo != null) { - //生成车辆登记合同 - if (busSalesOrder != null) { - carMap.put("Yf", busSalesOrder.getCustomerName()); - carMap.put("invoiceName", finCompanyInvoicingDetailsVo.getName());//开票名称 - } - carMap.put("contractNo", "D" + map.get("contractNo")); - if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) { - ResultBean invoicingDetailsVoResultBean = finCompanyInvoicingService.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()); - if (invoicingDetailsVoResultBean.getData() != null) { - carMap.put("createOrgName", invoicingDetailsVoResultBean.getData().getName()); + if (!list.isEmpty()) { + for (int i = 0; i < list.size(); i++) { + BillFileVo billFileVo1 = list.get(i); + String carName = billFileVo1.getCarName(); + if (carNameMap.containsKey(carName)) { + billFileVo1.setNum(carNameMap.get(carName).toString()); } } - carMap.put("date", date); - List carContractListVos = new ArrayList<>(); - - for (FinBillVehicleDto salesOrderVehicle : finBillVehicles) { - CarContractListVo carContractListVo = new CarContractListVo(); - BaseVehicle baseVehicle = baseMapper.selectByVinSid(salesOrderVehicle.getVehSid()); - carContractListVo.setBrand(baseVehicle.getModelName()); - carContractListVo.setVinNo(baseVehicle.getVinNo()); - carContractListVo.setEnginNo(baseVehicle.getEngineNo()); - carContractListVos.add(carContractListVo); - } - carMap.put("carLists", carContractListVos); - } - } - } - - if (loanSolutions != null) { - if (!dto.getOneBillMoney().equals(loanSolutions.getMainVehicleAmount())) { - String remarks = ""; + map.put("list", list); + map.put("name", busSalesOrder.getAffiliatedCompany()); String date = DateUtil.today(); List dateString = Arrays.asList(date.split("-")); String year = dateString.get(0); String month = dateString.get(1); String day = dateString.get(2); - filemap.put("year", year); - filemap.put("month", month); - filemap.put("day", day); - if (finCompanyInvoicingDetailsVo != null) { - filemap.put("invoiceName", finCompanyInvoicingDetailsVo.getName());//开票名称 - filemap.put("customerName", finCompanyInvoicingDetailsVo.getName());//开票名称 - filemap.put("invoiceNo", finCompanyInvoicingDetailsVo.getTaxpayerNo());//纳税人识别号 - filemap.put("idNo", finCompanyInvoicingDetailsVo.getTaxpayerNo());//纳税人识别号 - filemap.put("adds", finCompanyInvoicingDetailsVo.getAddress());//户籍地址 - }else{ - CrmCustomerTemp crmCustomerTemp = baseMapper.selectByCustomerSid(dto.getOpenTickSid()); - if (crmCustomerTemp != null) { - filemap.put("invoiceName", crmCustomerTemp.getName());//开票名称 - filemap.put("customerName", crmCustomerTemp.getName());//开票名称 - filemap.put("invoiceNo", crmCustomerTemp.getIDNumber());//纳税人识别号 - filemap.put("idNo", crmCustomerTemp.getIDNumber());//纳税人识别号 - filemap.put("adds", crmCustomerTemp.getCertificateAddress());//户籍地址 + map.put("year", year); + map.put("month", month); + map.put("day", day); + if (!"02".equals(dto.getOpenTickTypeKey())) { + if (finCompanyInvoicingDetailsVo != null) { + //生成车辆登记合同 + if (busSalesOrder != null) { + carMap.put("Yf", busSalesOrder.getCustomerName()); + carMap.put("invoiceName", finCompanyInvoicingDetailsVo.getName());//开票名称 + } + carMap.put("contractNo", "D" + map.get("contractNo")); + if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) { + ResultBean invoicingDetailsVoResultBean = finCompanyInvoicingService.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()); + if (invoicingDetailsVoResultBean.getData() != null) { + carMap.put("createOrgName", invoicingDetailsVoResultBean.getData().getName()); + } + } + carMap.put("date", date); + List carContractListVos = new ArrayList<>(); + + for (FinBillVehicleDto salesOrderVehicle : finBillVehicles) { + CarContractListVo carContractListVo = new CarContractListVo(); + BaseVehicle baseVehicle = baseMapper.selectByVinSid(salesOrderVehicle.getVehSid()); + carContractListVo.setBrand(baseVehicle.getModelName()); + carContractListVo.setVinNo(baseVehicle.getVinNo()); + carContractListVo.setEnginNo(baseVehicle.getEngineNo()); + carContractListVos.add(carContractListVo); + } + carMap.put("carLists", carContractListVos); + } } - filemap.put("invoiceType", dto.getOpenTickTypeValue());//开票类型 - remarks = "数量" + finBillVehicles.size() + "台,单台成交价: 元。"; - filemap.put("remarks", remarks); - filemap.put("busSid",busSalesOrder.getSid()); - ResultBean> mapResultBean = commonContractFeign.getModelMap(filemap); - checkMap = mapResultBean.getData(); - //生成新车空白合同 - checkMap.put("totalPrice", ""); - checkMap.put("priceRemarks", ""); - checkMap.put("depositTotal", ""); - checkMap.put("createOrgName", ""); + } + + if (loanSolutions != null) { + if (!dto.getOneBillMoney().equals(loanSolutions.getMainVehicleAmount())) { + String remarks = ""; + String date = DateUtil.today(); + List dateString = Arrays.asList(date.split("-")); + String year = dateString.get(0); + String month = dateString.get(1); + String day = dateString.get(2); + filemap.put("year", year); + filemap.put("month", month); + filemap.put("day", day); + if (finCompanyInvoicingDetailsVo != null) { + filemap.put("invoiceName", finCompanyInvoicingDetailsVo.getName());//开票名称 + filemap.put("customerName", finCompanyInvoicingDetailsVo.getName());//开票名称 + filemap.put("invoiceNo", finCompanyInvoicingDetailsVo.getTaxpayerNo());//纳税人识别号 + filemap.put("idNo", finCompanyInvoicingDetailsVo.getTaxpayerNo());//纳税人识别号 + filemap.put("adds", finCompanyInvoicingDetailsVo.getAddress());//户籍地址 + } else { + CrmCustomerTemp crmCustomerTemp = baseMapper.selectByCustomerSid(dto.getOpenTickSid()); + if (crmCustomerTemp != null) { + filemap.put("invoiceName", crmCustomerTemp.getName());//开票名称 + filemap.put("customerName", crmCustomerTemp.getName());//开票名称 + filemap.put("invoiceNo", crmCustomerTemp.getIDNumber());//纳税人识别号 + filemap.put("idNo", crmCustomerTemp.getIDNumber());//纳税人识别号 + filemap.put("adds", crmCustomerTemp.getCertificateAddress());//户籍地址 + } + } + filemap.put("invoiceType", dto.getOpenTickTypeValue());//开票类型 + remarks = "数量" + finBillVehicles.size() + "台,单台成交价: 元。"; + filemap.put("remarks", remarks); + filemap.put("busSid", busSalesOrder.getSid()); + ResultBean> mapResultBean = commonContractFeign.getModelMap(filemap); + checkMap = mapResultBean.getData(); + //生成新车空白合同 + checkMap.put("totalPrice", ""); + checkMap.put("priceRemarks", ""); + checkMap.put("depositTotal", ""); + checkMap.put("createOrgName", ""); - } - } - try { - ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() - .setNameFormat("demo-pool-%d").build(); - ExecutorService pool = new ThreadPoolExecutor(1, 2, - 1000, TimeUnit.MILLISECONDS, - new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); - List filesList = new ArrayList<>(); - if(!map.isEmpty()){ - Future future1 = pool.submit(() -> { - return getInvoiceApplyFile(map); - }); - if (StringUtils.isNotBlank(future1.get())) { - File file = new File(docPdfComponent.getUploadTemplateUrl() + future1.get()); - filesList.add(file); } } - if(!carMap.isEmpty()){ - Future future2 = pool.submit(() -> { - return getCarFile(carMap); - }); - if (StringUtils.isNotBlank(future2.get())) { - File file = new File(docPdfComponent.getUploadTemplateUrl() + future2.get()); - filesList.add(file); + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(1, 2, + 1000, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + List filesList = new ArrayList<>(); + if (!map.isEmpty()) { + Future future1 = pool.submit(() -> { + return getInvoiceApplyFile(map); + }); + if (StringUtils.isNotBlank(future1.get())) { + File file = new File(docPdfComponent.getUploadTemplateUrl() + future1.get()); + filesList.add(file); + } } - } - Map finalCheckMap = checkMap; - if(!finalCheckMap.isEmpty()){ - Future future3 = pool.submit(() -> { - return blackFile(finalCheckMap); - }); - if (StringUtils.isNotBlank(future3.get())) { - File file = new File(docPdfComponent.getUploadTemplateUrl() + future3.get()); - filesList.add(file); + if (!carMap.isEmpty()) { + Future future2 = pool.submit(() -> { + return getCarFile(carMap); + }); + if (StringUtils.isNotBlank(future2.get())) { + File file = new File(docPdfComponent.getUploadTemplateUrl() + future2.get()); + filesList.add(file); + } + } + Map finalCheckMap = checkMap; + if (!finalCheckMap.isEmpty()) { + Future future3 = pool.submit(() -> { + return blackFile(finalCheckMap); + }); + if (StringUtils.isNotBlank(future3.get())) { + File file = new File(docPdfComponent.getUploadTemplateUrl() + future3.get()); + filesList.add(file); + } } - } - - - + if (filesList.size() > 0) { + String typeName = contractNo + "开票附件.pdf"; + File allFile = WordConvertUtils.mulFile2One(filesList, docPdfComponent.getUploadTemplateUrl() + typeName); + System.out.println("-========" + docPdfComponent.getUploadTemplateUrl() + typeName); + fileUrl = typeName; + } - if (filesList.size() > 0) { - String typeName = contractNo + "开票附件.pdf"; - File allFile = WordConvertUtils.mulFile2One(filesList, docPdfComponent.getUploadTemplateUrl() + typeName); - System.out.println("-========" + docPdfComponent.getUploadTemplateUrl() + typeName); - fileUrl =typeName; + } catch (Exception e) { + e.printStackTrace(); + log.error("生成文件失败:==========================" + e.getMessage()); } - - } catch (Exception e) { - e.printStackTrace(); - log.error("生成文件失败:==========================" + e.getMessage()); } return fileUrl; From db21b5daff84ebe4ecf34ebecd170b78f22ae1d7 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Fri, 23 Feb 2024 14:59:35 +0800 Subject: [PATCH 07/11] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../riskcenter/biz/loanfundday/ScheduledLoanFundDayService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfundday/ScheduledLoanFundDayService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfundday/ScheduledLoanFundDayService.java index 93d1436a36..df4f74e76b 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfundday/ScheduledLoanFundDayService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfundday/ScheduledLoanFundDayService.java @@ -54,7 +54,7 @@ public class ScheduledLoanFundDayService { //截止到当天垫款余额T BigDecimal paymentMoneyAll = list.get(i).getPaymentMoney(); //当天资金占用费B - BigDecimal fundDay = paymentMoneyAll.multiply(new BigDecimal(7)).divide(new BigDecimal(10000), BigDecimal.ROUND_CEILING); + BigDecimal fundDay = paymentMoneyAll.multiply(new BigDecimal(7)).divide(new BigDecimal(10000),2, BigDecimal.ROUND_CEILING); LoanRepaymentPlanDetails loanRepaymentPlanDetails = list.get(i); LoanFundDay loanFundDay = new LoanFundDay(); loanFundDay.setBusSid(loanRepaymentPlanDetails.getSid()); From 99816976cd7c1cdb35bb6da7d120466146d61a80 Mon Sep 17 00:00:00 2001 From: fanzongzhe <285169773@qq.com> Date: Fri, 23 Feb 2024 15:30:34 +0800 Subject: [PATCH 08/11] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=B6=88=E5=87=8F?= =?UTF-8?q?=E5=9E=AB=E6=AC=BE=E4=BD=99=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LoanRepaymentHistoryMapper.java | 2 ++ .../LoanRepaymentHistoryMapper.xml | 12 ++++++++++++ .../LoanRepaymentHistoryService.java | 10 +++++++--- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java index 88ae7f2ea7..afa5959052 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java @@ -53,4 +53,6 @@ public interface LoanRepaymentHistoryMapper extends BaseMapper histories); } 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 f8c2ace9d8..d97532c0ec 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 @@ -445,5 +445,17 @@ where r.repaymentHistorySid = #{sid} and r.state = 1 + \ No newline at end of file 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 11a7945a44..a62f55b179 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 @@ -766,14 +766,18 @@ public class LoanRepaymentHistoryService extends MybatisBaseService 0) { + //查询更新金额 + String money = baseMapper.getUpdateMoneyBySid(pSid,histories); + BigDecimal decimalMoney = new BigDecimal(money); LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(pSid); - planDetails.setPaymentMoney(planDetails.getPaymentMoney().subtract(amount)); + BigDecimal paymentMoney = planDetails.getPaymentMoney(); + planDetails.setPaymentMoney(paymentMoney.subtract(decimalMoney)); loanRepaymentPlanDetailsService.updateById(planDetails); //生成平台资方退还垫款 FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR(); jr.setBusSid(planDetails.getSid()); - jr.setCurrentReceivableMoney(amount); - jr.setReveivableMoney(amount); + jr.setCurrentReceivableMoney(decimalMoney); + jr.setReveivableMoney(decimalMoney); jr.setPayCostTitleKey("007"); jr.setPayCostTitleValue("资方退还垫款"); jr.setOrgSidPath(planDetails.getOrgSidPath()); From 07f361a7ea2798f762b42b37c29f5a08188ddf28 Mon Sep 17 00:00:00 2001 From: fanzongzhe <285169773@qq.com> Date: Fri, 23 Feb 2024 16:38:06 +0800 Subject: [PATCH 09/11] =?UTF-8?q?=E9=87=91=E8=9E=8D=E8=AE=A4=E6=AC=BE?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FinCollectionConfirmationService.java | 50 +++++++++++++++++-- ...ncollectedReceivablesDetailedJRMapper.java | 2 +- ...UncollectedReceivablesDetailedJRMapper.xml | 33 ++++++++---- ...collectedReceivablesDetailedJRService.java | 4 +- 4 files changed, 71 insertions(+), 18 deletions(-) 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 19b84af7e4..f3aad57a06 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 @@ -3557,7 +3557,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByCillSid(sid); List rskList = new ArrayList<>(); if (!finSelectedReceivablesDetailedVos.isEmpty()) { - finSelectedReceivablesDetailedVos.stream().forEach(v -> { + for (FinSelectedReceivablesDetailedVo v : finSelectedReceivablesDetailedVos) { FinSelectedReceivablesDetailedRsk rsk = new FinSelectedReceivablesDetailedRsk(); String receivablesSid = v.getReceivablesSid(); if (v.getReceivablesName().equals("月还")) { @@ -3582,7 +3582,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService { +// FinSelectedReceivablesDetailedRsk rsk = new FinSelectedReceivablesDetailedRsk(); +// String receivablesSid = v.getReceivablesSid(); +// if (v.getReceivablesName().equals("月还")) { +// LoanRepaymentPlanDetails data = loanRepaymentPlanDetailsFeign.fetchDetails(receivablesSid).getData(); +// if (null != data) { +// BeanUtil.copyProperties(data, rsk, "sid"); +// if (StringUtils.isNotBlank(data.getVinNo()) && StringUtils.isNotBlank(data.getVehMark())) { +// rsk.setVinNo(data.getVinNo() + "/" + data.getVehMark()); +// } +// String noReturnMoney = finUncollectedReceivablesDetailedJRService.selNoReturnMoneyRsk(receivablesSid); +// if (StringUtils.isNotBlank(noReturnMoney)) { +// rsk.setNoReceivableMoney(noReturnMoney); +// } +// } +// } else { +// FinUncollectedReceivablesDetailedJR jr = finUncollectedReceivablesDetailedJRService.fetchBySid(receivablesSid); +// if (jr != null) { +// String busSid = jr.getBusSid(); +// LoanRepaymentPlanDetails data = loanRepaymentPlanDetailsFeign.fetchDetails(busSid).getData(); +// if (null != data) { +// BeanUtil.copyProperties(data, rsk, "sid"); +// if (StringUtils.isNotBlank(data.getVinNo()) && StringUtils.isNotBlank(data.getVehMark())) { +// rsk.setVinNo(data.getVinNo() + "/" + data.getVehMark()); +// } +// String noReturnMoney = finUncollectedReceivablesDetailedJRService.selNoReturnMoneyJR(busSid); +// if (StringUtils.isNotBlank(noReturnMoney)) { +// rsk.setNoReceivableMoney(noReturnMoney); +// } +// } +// } +// } +// rsk.setCurrentReceivableMoney(v.getCurrentReceivableMoney()); +// rsk.setReceivablesName(v.getReceivablesName()); +// rsk.setSid(v.getSid()); +// rsk.setSubscriptionMoney(v.getSubscriptionMoney()); +// rsk.setReceivablesSid(v.getReceivablesSid()); +// rsk.setAuditState(String.valueOf(v.getAuditState())); +// rskList.add(rsk); +// }); } finCollectionConfirmationDetailsVo.setFinSelectedReceivablesDetaileds(rskList); if (finCollectionConfirmation.getAuditState() == 2) { @@ -4550,7 +4590,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService getRskPaymentDetailsListForRule( @Param(Constants.WRAPPER) QueryWrapper qw, @Param("userOrgSid") String userOrgSid, diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.xml b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.xml index b66e41dc1f..d7adf49b1c 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.xml +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.xml @@ -242,16 +242,29 @@ where p.sid = #{planSid}