From c2bf5197037ee17038b60ffafc2058483bcf5e7b Mon Sep 17 00:00:00 2001 From: ligaode Date: Tue, 29 Apr 2025 15:47:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FinPaymentrecordService.java | 6 +- .../anrui/flowable/api/utils/ProcDefEnum.java | 1 + .../riskcenter/api/loanfile/LoanFileEnum.java | 1 + .../LoanSecondarySalesApplyQuery.java | 2 + .../LoanSecondarySalesApplyVo.java | 2 + .../LoanSecondarySalesCost.java | 3 +- .../LoanSecondarySalesCostVo.java | 2 + .../loansecondarysalesnotapply/FileUrl.java | 15 + .../LoanSecondarySalesNotApply.java | 93 +++ ...oanSecondarySalesNotApplyDetailsQuery.java | 23 + .../LoanSecondarySalesNotApplyDetailsVo.java | 110 +++ .../LoanSecondarySalesNotApplyDto.java | 105 +++ .../LoanSecondarySalesNotApplyFeign.java | 103 +++ .../LoanSecondarySalesNotApplyQuery.java | 71 ++ .../LoanSecondarySalesNotApplyVo.java | 81 ++ .../flowable/CompleteDto.java | 37 + .../flowable/DelegateQuery.java | 26 + .../flowable/NodeQuery.java | 25 + .../flowable/NodeVo.java | 26 + .../flowable/SubmitDto.java | 25 + .../flowable/TaskQuery.java | 48 ++ .../LoanSecondarySalesNotVeh.java | 56 ++ .../LoanSecondarySalesNotVehDetailsVo.java | 56 ++ .../LoanSecondarySalesNotVehDto.java | 59 ++ .../LoanSecondarySalesNotVehFeign.java | 45 ++ .../LoanSecondarySalesApplyMapper.java | 1 + .../LoanSecondarySalesApplyMapper.xml | 1 + .../LoanSecondarySalesApplyService.java | 6 +- .../LoanSecondarySalesNotApplyMapper.java | 49 ++ .../LoanSecondarySalesNotApplyMapper.xml | 79 ++ .../LoanSecondarySalesNotApplyRest.java | 127 ++++ .../LoanSecondarySalesNotApplyService.java | 714 ++++++++++++++++++ .../LoanSecondarySalesNotVehMapper.java | 43 ++ .../LoanSecondarySalesNotVehMapper.xml | 12 + .../LoanSecondarySalesNotVehService.java | 65 ++ .../ScmSpecialRebateService.java | 2 + .../WmsInventoryAllocatebillRest.java | 72 +- .../WmsInventoryAllocateBillService.java | 233 +++++- .../flowable/GetNodeVo.java | 25 + .../feign/portal/sysuser/SysUserFeign.java | 16 +- .../feign/portal/sysuser/UserRoleQuery.java | 19 + 41 files changed, 2455 insertions(+), 30 deletions(-) create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/FileUrl.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApply.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyDetailsQuery.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyDetailsVo.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyDto.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyFeign.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyQuery.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyVo.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/flowable/CompleteDto.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/flowable/DelegateQuery.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/flowable/NodeQuery.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/flowable/NodeVo.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/flowable/SubmitDto.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/flowable/TaskQuery.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotveh/LoanSecondarySalesNotVeh.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotveh/LoanSecondarySalesNotVehDetailsVo.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotveh/LoanSecondarySalesNotVehDto.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotveh/LoanSecondarySalesNotVehFeign.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotapply/LoanSecondarySalesNotApplyMapper.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotapply/LoanSecondarySalesNotApplyMapper.xml create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotapply/LoanSecondarySalesNotApplyRest.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotapply/LoanSecondarySalesNotApplyService.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehMapper.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehMapper.xml create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehService.java create mode 100644 yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryallocatebill/flowable/GetNodeVo.java create mode 100644 yxt-wms-biz/src/main/java/com/yxt/wms/feign/portal/sysuser/UserRoleQuery.java diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java index a787bee9df..80c7952855 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java @@ -1371,7 +1371,11 @@ public class FinPaymentrecordService extends MybatisBaseService vehicleList = finPaymentapplyVehicleService.getVehicleList(finPaymentapply.getSid()); String payRemark = ""; for (FinPaymentapplyVehicleVo finPaymentapplyVehicleVo : vehicleList) { - payRemark = payRemark + finPaymentapplyVehicleVo.getVinNo() + "(" + finPaymentapplyVehicleVo.getMoney() + "元)," + finPaymentapplyDetails.getActualPay() + "," + finPaymentapplyDetails.getRemarks() + ":"; + if (finPaymentapplyDetails != null){ + payRemark = payRemark + finPaymentapplyVehicleVo.getVinNo() + "(" + finPaymentapplyVehicleVo.getMoney() + "元)," + finPaymentapplyDetails.getActualPay() + "," + finPaymentapplyDetails.getRemarks() + ":"; + }else { + payRemark = payRemark + finPaymentapplyVehicleVo.getVinNo() + "(" + finPaymentapplyVehicleVo.getMoney() + "元)" + ":"; + } } dataMap.put("payRemark", payRemark); } 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 0237fda948..f44af25189 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 @@ -84,6 +84,7 @@ public enum ProcDefEnum { LOANCASEENTRUSTLAWYERAPPLY("案件委托律师", "process_oe3nvzgn:1:8525004"), ENTERPRISEAPPLY("定点企业备案", "process_tvywp9ri:2:14197516"), JTTXCYSQ("金融贴息差异调整申请", "process_q1yy2tlg:2:16682508"), + LOANSECONDARYSALESNOTAPPLY("二次销售车辆不追偿申请", ""), /******************************测试流程id*********************************************/ diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java index 752f244a0e..ab53263ed3 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java @@ -52,6 +52,7 @@ public enum LoanFileEnum { CLOSE("038", "案件结案-结案材料"), ENTRUSTLAWYER_WTXY("039", "案件委托律师-委托协议"), AUDIT("040", "审计监管附件"), + SECONDARYSALESNOT("041", "二次交回车辆不追偿附件"), ; diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyQuery.java index b9504309f6..533641db2b 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyQuery.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyQuery.java @@ -43,6 +43,8 @@ public class LoanSecondarySalesApplyQuery implements Query { private String loanName; @ApiModelProperty("欠款合计(大于)") private String arrearsAll; + @ApiModelProperty("是否追偿1是0否") + private String isRecovery; private String menuUrl; private String orgPath; diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyVo.java index 188efb5bfb..cd122d8a2a 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyVo.java @@ -45,6 +45,8 @@ public class LoanSecondarySalesApplyVo { private String vehPrice; @ApiModelProperty("预计亏损金额") private String lossPrice; + @ApiModelProperty("是否追偿1是0否") + private String isRecovery; @ApiModelProperty("是否允许点击办理,true允许,false不允许") private boolean allowModify; diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescost/LoanSecondarySalesCost.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescost/LoanSecondarySalesCost.java index 6b1667867c..8fb4f22405 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescost/LoanSecondarySalesCost.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescost/LoanSecondarySalesCost.java @@ -70,6 +70,7 @@ public class LoanSecondarySalesCost extends BaseEntity { private String files; @ApiModelProperty("车辆评估") private BigDecimal vehicleEvaluation; - + @ApiModelProperty("是否追偿1是0否") + private Integer isRecovery; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescost/LoanSecondarySalesCostVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescost/LoanSecondarySalesCostVo.java index 7e9350dcd6..68615ff81c 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescost/LoanSecondarySalesCostVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescost/LoanSecondarySalesCostVo.java @@ -70,6 +70,8 @@ public class LoanSecondarySalesCostVo { @ApiModelProperty("车辆评估") private String vehicleEvaluation; + @ApiModelProperty("是否追偿1是0否") + private Integer isRecovery; private String filesss; diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/FileUrl.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/FileUrl.java new file mode 100644 index 0000000000..5c696696e7 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/FileUrl.java @@ -0,0 +1,15 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply; + +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/7/22 14:35 + */ +@Data +public class FileUrl { + + private String url; + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApply.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApply.java new file mode 100644 index 0000000000..620d116dae --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApply.java @@ -0,0 +1,93 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@ApiModel(value = "二次销售车辆不追偿申请", description = "二次销售车辆不追偿申请") +@TableName("loan_secondary_sales_not_apply") +public class LoanSecondarySalesNotApply extends BaseEntity { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("申请部门") + private String createDept; // 申请部门 + @ApiModelProperty("申请部门sid") + private String createDeptSid; // 申请部门sid + @ApiModelProperty("申请人") + private String createByName; // 申请人 + @ApiModelProperty("单据编号") + private String billNo; // 单据编号 + @ApiModelProperty("客户名称") + private String customerName; // 客户名称 + @ApiModelProperty("客户sid") + private String customerSid; // 客户sid + @ApiModelProperty("贷款人sid") + private String loanSid; // 贷款人sid + @ApiModelProperty("贷款人") + private String loanName; // 贷款人 + @ApiModelProperty("贷款合同编号") + private String loanContractNo; // 贷款合同编号 + @ApiModelProperty("资方") + private String bankName; // 资方 + @ApiModelProperty("资方合同编号") + private String bankContractNo; // 资方合同编号 + @ApiModelProperty("欠款合计") + private BigDecimal arrearsAll; // 欠款合计 + @ApiModelProperty("公司承担费用") + private BigDecimal comBearMoney; // 公司承担费用 + @ApiModelProperty("亏损金额") + private BigDecimal lossPrice; // 亏损金额 + @ApiModelProperty("车辆售价") + private BigDecimal vehPrice; + @ApiModelProperty("流程状态") + private String nodeState; // 流程状态 + @ApiModelProperty("分公司sid") + private String useOrgSid; // 分公司sid + @ApiModelProperty("分公司") + private String useOrgName; // 分公司 + @ApiModelProperty("办结日期") + private String closeDate; // 办结日期 + @ApiModelProperty("实例id") + private String procInstId; // 实例id + @ApiModelProperty("流程定义id") + private String procDefId; // 流程定义id + @ApiModelProperty("任务id") + private String taskId; // 任务id + @ApiModelProperty("环节id") + private String taskDefKey; // 环节id + @ApiModelProperty("机构全路径sid") + private String orgSidPath; // 机构全路径sid + @ApiModelProperty("交回车辆二次销售申请sid") + private String secSaleSid; // 交回车辆二次销售申请sid + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyDetailsQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyDetailsQuery.java new file mode 100644 index 0000000000..78c0fd8c85 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyDetailsQuery.java @@ -0,0 +1,23 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@Data +public class LoanSecondarySalesNotApplyDetailsQuery { + + @ApiModelProperty("sid") + private String sid; + @ApiModelProperty("用户sid") + private String userSid; + @ApiModelProperty("机构全路径sid") + private String orgPath; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyDetailsVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyDetailsVo.java new file mode 100644 index 0000000000..9952e72050 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyDetailsVo.java @@ -0,0 +1,110 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yxt.anrui.riskcenter.api.loansecondarysalesnotveh.LoanSecondarySalesNotVehDetailsVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalesnotveh.LoanSecondarySalesNotVehDto; +import com.yxt.common.core.vo.Vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Data +@ApiModel(value = "二次销售车辆不追偿申请 视图数据详情", description = "二次销售车辆不追偿申请 视图数据详情") +public class LoanSecondarySalesNotApplyDetailsVo implements Vo { + + private String sid; // sid + + @ApiModelProperty("申请日期") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date createTime; + @ApiModelProperty("备注") + private String remarks; + @ApiModelProperty("申请部门") + private String createDept; // 申请部门 + @ApiModelProperty("申请部门sid") + private String createDeptSid; // 申请部门sid + @ApiModelProperty("申请人sid") + private String createBySid; + @ApiModelProperty("申请人") + private String createByName; // 申请人 + @ApiModelProperty("单据编号") + private String billNo; // 单据编号 + @ApiModelProperty("客户名称") + private String customerName; // 客户名称 + @ApiModelProperty("客户sid") + private String customerSid; // 客户sid + @ApiModelProperty("贷款人sid") + private String loanSid; // 贷款人sid + @ApiModelProperty("贷款人") + private String loanName; // 贷款人 + @ApiModelProperty("贷款合同编号") + private String loanContractNo; // 贷款合同编号 + @ApiModelProperty("资方") + private String bankName; // 资方 + @ApiModelProperty("资方合同编号") + private String bankContractNo; // 资方合同编号 + @ApiModelProperty("欠款合计") + private BigDecimal arrearsAll; // 欠款合计 + @ApiModelProperty("公司承担费用") + private BigDecimal comBearMoney; // 公司承担费用 + @ApiModelProperty("亏损金额") + private BigDecimal lossPrice; // 亏损金额 + @ApiModelProperty("车辆售价") + private BigDecimal vehPrice; + @ApiModelProperty("流程状态") + private String nodeState; // 流程状态 + @ApiModelProperty("分公司sid") + private String useOrgSid; // 分公司sid + @ApiModelProperty("分公司") + private String useOrgName; // 分公司 + @ApiModelProperty("办结日期") + private String closeDate; // 办结日期 + @ApiModelProperty("实例id") + private String procInstId; // 实例id + @ApiModelProperty("流程定义id") + private String procDefId; // 流程定义id + @ApiModelProperty("任务id") + private String taskId; // 任务id + @ApiModelProperty("环节id") + private String taskDefKey; // 环节id + @ApiModelProperty("机构全路径sid") + private String orgSidPath; // 机构全路径sid + @ApiModelProperty("交回车辆二次销售申请sid") + private String secSaleSid; // 交回车辆二次销售申请sid + + @ApiModelProperty("附件") + private List filesList = new ArrayList<>(); + @ApiModelProperty("车辆列表") + private List loanSecondarySalesNotVehList = new ArrayList<>(); +} \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyDto.java new file mode 100644 index 0000000000..6129499af1 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyDto.java @@ -0,0 +1,105 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply; + +import com.yxt.anrui.riskcenter.api.loansecondarysalesnotveh.LoanSecondarySalesNotVehDto; +import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo; +import com.yxt.common.core.dto.Dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +@Data +@ApiModel(value = "二次销售车辆不追偿申请 数据传输对象", description = "二次销售车辆不追偿申请 数据传输对象") +public class LoanSecondarySalesNotApplyDto implements Dto { + + private String sid; // sid + + @ApiModelProperty("备注") + private String remarks; + @ApiModelProperty("申请部门") + private String createDept; // 申请部门 + @ApiModelProperty("申请部门sid") + private String createDeptSid; // 申请部门sid + @ApiModelProperty("申请人sid") + private String createBySid; + @ApiModelProperty("申请人") + private String createByName; // 申请人 + @ApiModelProperty("单据编号") + private String billNo; // 单据编号 + @ApiModelProperty("客户名称") + private String customerName; // 客户名称 + @ApiModelProperty("客户sid") + private String customerSid; // 客户sid + @ApiModelProperty("贷款人sid") + private String loanSid; // 贷款人sid + @ApiModelProperty("贷款人") + private String loanName; // 贷款人 + @ApiModelProperty("贷款合同编号") + private String loanContractNo; // 贷款合同编号 + @ApiModelProperty("资方") + private String bankName; // 资方 + @ApiModelProperty("资方合同编号") + private String bankContractNo; // 资方合同编号 + @ApiModelProperty("欠款合计") + private BigDecimal arrearsAll; // 欠款合计 + @ApiModelProperty("公司承担费用") + private BigDecimal comBearMoney; // 公司承担费用 + @ApiModelProperty("亏损金额") + private BigDecimal lossPrice; // 亏损金额 + @ApiModelProperty("车辆售价") + private BigDecimal vehPrice; + @ApiModelProperty("流程状态") + private String nodeState; // 流程状态 + @ApiModelProperty("分公司sid") + private String useOrgSid; // 分公司sid + @ApiModelProperty("分公司") + private String useOrgName; // 分公司 + @ApiModelProperty("办结日期") + private String closeDate; // 办结日期 + @ApiModelProperty("实例id") + private String procInstId; // 实例id + @ApiModelProperty("流程定义id") + private String procDefId; // 流程定义id + @ApiModelProperty("任务id") + private String taskId; // 任务id + @ApiModelProperty("环节id") + private String taskDefKey; // 环节id + @ApiModelProperty("机构全路径sid") + private String orgSidPath; // 机构全路径sid + @ApiModelProperty("交回车辆二次销售申请sid") + private String secSaleSid; // 交回车辆二次销售申请sid + + @ApiModelProperty("附件") + private List filesList = new ArrayList<>(); + @ApiModelProperty("车辆列表") + private List loanSecondarySalesNotVehList = new ArrayList<>(); +} \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyFeign.java new file mode 100644 index 0000000000..d627b7ee99 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyFeign.java @@ -0,0 +1,103 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply; + +import com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply.flowable.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +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; + +@Api(tags = "二次销售车辆不追偿申请") +@FeignClient( + contextId = "anrui-riskcenter-LoanSecondarySalesNotApply", + name = "anrui-riskcenter", + path = "v1/loansecondarysalesnotapply") +public interface LoanSecondarySalesNotApplyFeign { + + @ApiOperation("根据条件分页查询数据的列表") + @PostMapping("/listPage") + @ResponseBody + public ResultBean> listPage(@RequestBody PagerQuery pq); + + @ApiOperation("新增或修改") + @PostMapping("/save") + @ResponseBody + public ResultBean save(@RequestBody LoanSecondarySalesNotApplyDto dto); + + @ApiOperation("根据sid删除记录") + @DeleteMapping("/delBySids") + @ResponseBody + public ResultBean delBySids(@RequestBody String[] sids); + + @ApiOperation("初始化") + @PostMapping("/init") + ResultBean init(@RequestBody LoanSecondarySalesNotApplyDetailsQuery query); + + @ApiOperation("根据SID获取一条记录") + @GetMapping("/fetchDetailsBySid/{sid}") + @ResponseBody + public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid); + + @ApiOperation("提交审批流程") + @PostMapping("/submit") + public ResultBean submit(@RequestBody @Valid SubmitDto dto); + + @ApiOperation(value = "办理(同意)") + @PostMapping("/complete") + public ResultBean complete(@Valid @RequestBody CompleteDto query); + + @ApiOperation(value = "获取上一个环节") + @GetMapping(value = "/getPreviousNodesForReject") + ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap NodeQuery query); + + @ApiOperation(value = "获取下一个环节") + @GetMapping(value = "/getNextNodesForSubmit") + ResultBean> getNextNodesForSubmit(@Valid @SpringQueryMap NodeQuery query); + + @ApiOperation(value = "驳回任务") + @PostMapping(value = "/reject") + public ResultBean reject(@Valid @RequestBody TaskQuery query); + + @ApiOperation(value = "撤回流程") + @PostMapping(value = "/revokeProcess") + public ResultBean revokeProcess(@Valid @RequestBody TaskQuery query); + + @ApiOperation(value = "终止任务") + @PostMapping(value = "/breakProcess") + public ResultBean breakProcess(@Valid @RequestBody TaskQuery query); + + @ApiOperation(value = "加签") + @PostMapping(value = "/delegate") + public ResultBean delegate(@RequestBody DelegateQuery query); +} \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyQuery.java new file mode 100644 index 0000000000..85a8e0e9b8 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyQuery.java @@ -0,0 +1,71 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply; + +import com.yxt.common.core.query.Query; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "二次销售车辆不追偿申请 查询条件", description = "二次销售车辆不追偿申请 查询条件") +public class LoanSecondarySalesNotApplyQuery implements Query { + + @ApiModelProperty("分公司") + private String useOrgName; + @ApiModelProperty("申请部门") + private String createDept; + @ApiModelProperty("申请人") + private String createByName; + @ApiModelProperty("申请日期开始") + private String createTimeStart; + @ApiModelProperty("申请日期结束") + private String createTimeEnd; + @ApiModelProperty("办结日期开始") + private String closeDateStart; + @ApiModelProperty("办结日期结束") + private String closeDateEnd; + @ApiModelProperty("贷款合同编号") + private String loanContractNo; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("资方") + private String bankName; + @ApiModelProperty("资方合同编号") + private String bankContractNo; + @ApiModelProperty("客户名称") + private String customerName; + @ApiModelProperty("贷款人") + private String loanName; + + private String menuUrl; + private String orgPath; + private String userSid; + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyVo.java new file mode 100644 index 0000000000..63595e003a --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/LoanSecondarySalesNotApplyVo.java @@ -0,0 +1,81 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply; + +import com.yxt.common.core.vo.Vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "二次销售车辆不追偿申请 视图数据对象", description = "二次销售车辆不追偿申请 视图数据对象") +public class LoanSecondarySalesNotApplyVo implements Vo { + + @ApiModelProperty("sid") + private String sid; + @ApiModelProperty("流程状态") + private String nodeState; + @ApiModelProperty("分公司") + private String useOrgName; + @ApiModelProperty("申请部门") + private String createDept; + @ApiModelProperty("申请人") + private String createByName; + @ApiModelProperty("申请日期") + private String createDate; + @ApiModelProperty("办结日期") + private String closeDate; + @ApiModelProperty("贷款合同编号") + private String loanContractNo; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("资方") + private String bankName; + @ApiModelProperty("资方合同编号") + private String bankContractNo; + @ApiModelProperty("客户名称") + private String customerName; + @ApiModelProperty("贷款人") + private String loanName; + @ApiModelProperty("欠款合计") + private String arrearsAll; + @ApiModelProperty("车辆售价") + private String vehPrice; + @ApiModelProperty("预计亏损金额") + private String lossPrice; + + @ApiModelProperty("是否允许点击办理,true允许,false不允许") + private boolean allowModify; + private String createBySid; + + @ApiModelProperty("流程定义id") + private String procDefId; + @ApiModelProperty("流程实例id") + private String procInstId; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/flowable/CompleteDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/flowable/CompleteDto.java new file mode 100644 index 0000000000..8b3c8cafec --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/flowable/CompleteDto.java @@ -0,0 +1,37 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply.flowable; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author dimengzhe + * @Date 2022/9/6 14:57 + * @Description + */ +@Data +public class CompleteDto implements Dto { + private static final long serialVersionUID = 6378752532534735663L; + + @ApiModelProperty(value = "用户sid") + private String userSid; + @ApiModelProperty(value = "节点id") + @NotBlank(message = "参数错误:taskDefKey") + private String taskDefKey; + @ApiModelProperty(value = "任务id") + @NotBlank(message = "参数错误:taskId") + private String taskId; + @ApiModelProperty(value = "流程id(PC)") + private String instanceId; + @ApiModelProperty(value = "流程id(移动)") + private String procInsId; + @ApiModelProperty(value = "意见") + private String comment; + @ApiModelProperty(value = "业务sid") + @NotBlank(message = "参数错误:businessSid") + private String businessSid; + + private String orgPath; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/flowable/DelegateQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/flowable/DelegateQuery.java new file mode 100644 index 0000000000..861c58b84b --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/flowable/DelegateQuery.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/9/28 9:28 + */ +@Data +public class DelegateQuery { + @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/loansecondarysalesnotapply/flowable/NodeQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/flowable/NodeQuery.java new file mode 100644 index 0000000000..cb6e933458 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/flowable/NodeQuery.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply.flowable; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author dimengzhe + * @Date 2022/9/6 15:04 + * @Description + */ +@Data +public class NodeQuery implements Query { + private static final long serialVersionUID = 9117613683840483366L; + + @ApiModelProperty(value = "环节定义id") + @NotBlank(message = "参数错误:taskDefKey") + private String taskDefKey; + @ApiModelProperty(value = "业务sid") + private String businessSid; + @ApiModelProperty(value = "0 上一环节 1下一环节") + private Integer next; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/flowable/NodeVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/flowable/NodeVo.java new file mode 100644 index 0000000000..a9ebae50de --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/flowable/NodeVo.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply.flowable; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author dimengzhe + * @Date 2022/9/6 15:03 + * @Description + */ +@Data +public class NodeVo implements Vo { + private static final long serialVersionUID = -833419512294877848L; + + @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/loansecondarysalesnotapply/flowable/SubmitDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/flowable/SubmitDto.java new file mode 100644 index 0000000000..c1735d001d --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/flowable/SubmitDto.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply.flowable; + +import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyDto; +import com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply.LoanSecondarySalesNotApplyDto; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liuguohui + * @version 1.0 + * @description + * @date 2022/04/13 + */ +@ApiModel("提交") +@Data +public class SubmitDto extends LoanSecondarySalesNotApplyDto { + + @ApiModelProperty("意见") + private String comment; + @ApiModelProperty("流程实例id") + private String instanceId; + @ApiModelProperty("任务id") + private String taskId; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/flowable/TaskQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/flowable/TaskQuery.java new file mode 100644 index 0000000000..964aea8165 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotapply/flowable/TaskQuery.java @@ -0,0 +1,48 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply.flowable; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author dimengzhe + * @Date 2022/9/6 15:06 + * @Description + */ +@Data +public class TaskQuery implements Query { + private static final long serialVersionUID = 1288615499873178778L; + + /** + * 终止、驳回、撤回 + */ + @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(PC)") + private String instanceId; + + @ApiModelProperty("流程实例Id(移动)") + private String procInsId; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotveh/LoanSecondarySalesNotVeh.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotveh/LoanSecondarySalesNotVeh.java new file mode 100644 index 0000000000..d77640597a --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotveh/LoanSecondarySalesNotVeh.java @@ -0,0 +1,56 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.riskcenter.api.loansecondarysalesnotveh; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "二次销售车辆列表", description = "二次销售车辆列表") +@TableName("loan_secondary_sales_not_veh") +public class LoanSecondarySalesNotVeh extends BaseEntity { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主表sid") + private String mainSid; // 主表sid + @ApiModelProperty("车架号") + private String vinNo; // 车架号 + @ApiModelProperty("车牌号") + private String vehMark; // 车牌号 + @ApiModelProperty("车辆类型") + private String vehType; // 车辆类型 + @ApiModelProperty("车型") + private String modelName; // 车型 + @ApiModelProperty("车型") + private String modelSid; // 车型 + @ApiModelProperty("车型") + private String configSid; // 车型 + @ApiModelProperty("销售订单车辆sid") + private String busVinSid; // 销售订单车辆sid +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotveh/LoanSecondarySalesNotVehDetailsVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotveh/LoanSecondarySalesNotVehDetailsVo.java new file mode 100644 index 0000000000..8f7d7e861e --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotveh/LoanSecondarySalesNotVehDetailsVo.java @@ -0,0 +1,56 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.riskcenter.api.loansecondarysalesnotveh; + +import com.yxt.common.core.vo.Vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "二次销售车辆列表 视图数据详情", description = "二次销售车辆列表 视图数据详情") +public class LoanSecondarySalesNotVehDetailsVo implements Vo { + + private String sid; // sid + + @ApiModelProperty("主表sid") + private String mainSid; // 主表sid + @ApiModelProperty("车架号") + private String vinNo; // 车架号 + @ApiModelProperty("车牌号") + private String vehMark; // 车牌号 + @ApiModelProperty("车辆类型") + private String vehType; // 车辆类型 + @ApiModelProperty("车型") + private String modelName; // 车型 + @ApiModelProperty("车型") + private String modelSid; // 车型 + @ApiModelProperty("车型") + private String configSid; // 车型 + @ApiModelProperty("销售订单车辆sid") + private String busVinSid; // 销售订单车辆sid +} \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotveh/LoanSecondarySalesNotVehDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotveh/LoanSecondarySalesNotVehDto.java new file mode 100644 index 0000000000..c8e41e3da6 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotveh/LoanSecondarySalesNotVehDto.java @@ -0,0 +1,59 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.riskcenter.api.loansecondarysalesnotveh; + +import com.yxt.common.core.dto.Dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "二次销售车辆列表 数据传输对象", description = "二次销售车辆列表 数据传输对象") +public class LoanSecondarySalesNotVehDto implements Dto { + + private String sid; // sid + + @ApiModelProperty("主表sid") + private String mainSid; // 主表sid + @ApiModelProperty("车架号") + private String vinNo; // 车架号 + @ApiModelProperty("车牌号") + private String vehMark; // 车牌号 + @ApiModelProperty("车辆类型") + private String vehType; // 车辆类型 + @ApiModelProperty("车型") + private String modelName; // 车型 + @ApiModelProperty("车型") + private String modelSid; // 车型 + @ApiModelProperty("车型") + private String configSid; // 车型 + @ApiModelProperty("销售订单车辆sid") + private String busVinSid; // 销售订单车辆sid + @ApiModelProperty("业务sid") + private String busSid; // 业务sid + +} \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotveh/LoanSecondarySalesNotVehFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotveh/LoanSecondarySalesNotVehFeign.java new file mode 100644 index 0000000000..47cc70e342 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesnotveh/LoanSecondarySalesNotVehFeign.java @@ -0,0 +1,45 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.riskcenter.api.loansecondarysalesnotveh; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Api(tags = "二次销售车辆列表") +@FeignClient( + contextId = "1-LoanSecondarySalesNotVeh", + name = "1", + path = "v1/loansecondarysalesnotveh") +public interface LoanSecondarySalesNotVehFeign { + +} \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.java index 8124ab9faf..668770c6ce 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.java @@ -21,6 +21,7 @@ import java.util.Map; **/ @Mapper public interface LoanSecondarySalesApplyMapper extends BaseMapper { + IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw,@Param("vinNo") String vinNo,@Param("vehMark") String vehMark); int updateFlowFiled(Map beanToMap); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.xml index f6bbbe075d..edceff1dba 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.xml @@ -22,6 +22,7 @@ lc.arrearsAll, lc.vehPrice, lc.lossPrice, + if(lc.isRecovery = 1, '是', '否') as isRecovery, la.createBySid, la.procDefId, la.procInstId diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java index 65b84d84df..416ab83126 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java @@ -127,8 +127,6 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService listPageVo(PagerQuery pq) { LoanSecondarySalesApplyQuery query = pq.getParams(); @@ -166,7 +164,6 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService= date_format('" + query.getCloseDateStart() + "','%Y-%m-%d')"). apply(StringUtils.isNotBlank(query.getCloseDateEnd()), "date_format (la.closeDate,'%Y-%m-%d') <= date_format('" + query.getCloseDateEnd() + "','%Y-%m-%d')" @@ -178,6 +175,9 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.riskcenter.biz.loansecondarysalesnotapply; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply.LoanSecondarySalesNotApply; +import com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply.LoanSecondarySalesNotApplyVo; + +import java.util.Map; + +@Mapper +public interface LoanSecondarySalesNotApplyMapper extends BaseMapper { + + IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw, @Param("vinNo") String vinNo, @Param("vehMark") String vehMark); + + int updateFlowFiled(Map beanToMap); + + String selectNum(String billNo); + + int selectBySid(String join); +} \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotapply/LoanSecondarySalesNotApplyMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotapply/LoanSecondarySalesNotApplyMapper.xml new file mode 100644 index 0000000000..27ca483a3f --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotapply/LoanSecondarySalesNotApplyMapper.xml @@ -0,0 +1,79 @@ + + + + + + + + + UPDATE loan_secondary_sales_not_apply + SET nodeState=#{nodeState} + + , taskDefKey=#{taskDefKey} + + + , closeDate = NOW() + + + , 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/loansecondarysalesnotapply/LoanSecondarySalesNotApplyRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotapply/LoanSecondarySalesNotApplyRest.java new file mode 100644 index 0000000000..b373f4eeed --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotapply/LoanSecondarySalesNotApplyRest.java @@ -0,0 +1,127 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.riskcenter.biz.loansecondarysalesnotapply; + +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.loansecondarysalesnotapply.*; +import com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply.flowable.*; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Api(tags = "二次销售车辆不追偿申请") +@RestController +@RequestMapping("v1/loansecondarysalesnotapply") +public class LoanSecondarySalesNotApplyRest implements LoanSecondarySalesNotApplyFeign { + + @Autowired + private LoanSecondarySalesNotApplyService loanSecondarySalesNotApplyService; + + @Override + @ApiOperation("根据条件分页查询数据的列表") + @PostMapping("/listPage") + public ResultBean> listPage(@RequestBody PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + PagerVo pv = loanSecondarySalesNotApplyService.listPageVo(pq); + return rb.success().setData(pv); + } + + @Override + @ApiOperation("新增或修改") + @PostMapping("/save") + public ResultBean save(@RequestBody LoanSecondarySalesNotApplyDto dto) { + return loanSecondarySalesNotApplyService.saveOrUpdateDto(dto); + } + + @Override + @ApiOperation("根据sid批量删除") + @DeleteMapping("/delBySids") + public ResultBean delBySids(@RequestBody String[] sids) { + return loanSecondarySalesNotApplyService.delAll(sids); + } + + @Override + public ResultBean init(LoanSecondarySalesNotApplyDetailsQuery query) { + return loanSecondarySalesNotApplyService.init(query); + } + + @Override + public ResultBean fetchDetailsBySid(String sid) { + ResultBean rb = ResultBean.fireFail(); + LoanSecondarySalesNotApplyDetailsVo loanSecondarySalesNotApplyDetailsVo = loanSecondarySalesNotApplyService.fetchDetailsVoBySid(sid); + return rb.success().setData(loanSecondarySalesNotApplyDetailsVo); + } + + @Override + public ResultBean submit(SubmitDto dto) { + return loanSecondarySalesNotApplyService.submit(dto); + } + + @Override + public ResultBean complete(CompleteDto query) { + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + return loanSecondarySalesNotApplyService.complete(bv); + } + + @Override + public ResultBean> getPreviousNodesForReject(NodeQuery query) { + return loanSecondarySalesNotApplyService.getPreviousNodesForReject(query); + } + + @Override + public ResultBean> getNextNodesForSubmit(NodeQuery query) { + return loanSecondarySalesNotApplyService.getNextNodesForSubmit(query); + } + + @Override + public ResultBean reject(TaskQuery query) { + return loanSecondarySalesNotApplyService.reject(query); + } + + @Override + public ResultBean revokeProcess(TaskQuery query) { + return loanSecondarySalesNotApplyService.revokeProcess(query); + } + + @Override + public ResultBean breakProcess(TaskQuery query) { + return loanSecondarySalesNotApplyService.breakProcess(query); + } + + @Override + public ResultBean delegate(DelegateQuery query) { + return loanSecondarySalesNotApplyService.delegate(query); + } +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotapply/LoanSecondarySalesNotApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotapply/LoanSecondarySalesNotApplyService.java new file mode 100644 index 0000000000..8cad92ad29 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotapply/LoanSecondarySalesNotApplyService.java @@ -0,0 +1,714 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.riskcenter.biz.loansecondarysalesnotapply; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.anrui.base.common.utils.Rule; +import com.yxt.anrui.flowable.api.flow.FlowProcessMapQuery; +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.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.loanrestorereportapply.AlrepaidAndArrVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.*; +import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply.*; +import com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply.flowable.*; +import com.yxt.anrui.riskcenter.api.loansecondarysalesnotveh.LoanSecondarySalesNotVehDetailsVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalesnotveh.LoanSecondarySalesNotVehDto; +import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo; +import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService; +import com.yxt.anrui.riskcenter.biz.loanrestorereportapply.LoanRestoreReportApplyService; +import com.yxt.anrui.riskcenter.biz.loansecondarysalesapply.LoanSecondarySalesApplyService; +import com.yxt.anrui.riskcenter.biz.loansecondarysalescost.LoanSecondarySalesCostService; +import com.yxt.anrui.riskcenter.biz.loansecondarysalesnotveh.LoanSecondarySalesNotVehService; +import com.yxt.anrui.riskcenter.biz.loansecondarysalesveh.LoanSecondarySalesVehService; +import com.yxt.common.base.config.component.FileUploadComponent; +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 com.yxt.common.base.service.MybatisBaseService; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.util.*; +import java.util.stream.Collectors; + +@Service +public class LoanSecondarySalesNotApplyService extends MybatisBaseService { + + @Autowired + private SysUserFeign sysUserFeign; + @Autowired + private SysStaffOrgFeign sysStaffOrgFeign; + @Autowired + private SysOrganizationFeign sysOrganizationFeign; + @Autowired + private FileUploadComponent fileUploadComponent; + @Autowired + private FlowFeign flowFeign; + @Autowired + private FlowableFeign flowableFeign; + @Autowired + private FlowTaskFeign flowTaskFeign; + @Autowired + private MessageFeign messageFeign; + @Autowired + private LoanFileService loanFileService; + @Autowired + private LoanSecondarySalesNotVehService loanSecondarySalesNotVehService; + @Autowired + private LoanSecondarySalesApplyService loanSecondarySalesApplyService; + @Autowired + private LoanSecondarySalesVehService loanSecondarySalesVehService; + @Autowired + private LoanSecondarySalesCostService loanSecondarySalesCostService; + @Autowired + private LoanRestoreReportApplyService loanRestoreReportApplyService; + + public PagerVo listPageVo(PagerQuery pq) { + LoanSecondarySalesNotApplyQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (query != null) { + //分公司 + if (StringUtils.isNotBlank(query.getUseOrgName())) { + qw.like("la.useOrgName", query.getUseOrgName()); + } + //申请人 + if (StringUtils.isNotBlank(query.getCreateByName())) { + qw.like("la.createByName", query.getCreateByName()); + } + //申请部门 + if (StringUtils.isNotBlank(query.getCreateDept())) { + qw.like("la.createDept", query.getCreateDept()); + } + //贷款合同编号 + if (StringUtils.isNotBlank(query.getLoanContractNo())) { + qw.like("la.loanContractNo", query.getLoanContractNo()); + } + //贷款人 + if (StringUtils.isNotBlank(query.getLoanName())) { + qw.like("la.loanName", query.getLoanName()); + } + //资方 + if (StringUtils.isNotBlank(query.getBankName())) { + qw.like("la.bankName", query.getBankName()); + } + //资方合同编号 + if (StringUtils.isNotBlank(query.getBankContractNo())) { + qw.like("la.bankContractNo", query.getBankContractNo()); + } + //客户名称 + if (StringUtils.isNotBlank(query.getCustomerName())) { + qw.like("la.customerName", query.getCustomerName()); + } + //办结日期 + qw.apply(StringUtils.isNotBlank(query.getCloseDateStart()), "date_format (la.closeDate,'%Y-%m-%d') >= date_format('" + query.getCloseDateStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getCloseDateEnd()), "date_format (la.closeDate,'%Y-%m-%d') <= date_format('" + query.getCloseDateEnd() + "','%Y-%m-%d')" + ); + //申请日期 + qw.apply(StringUtils.isNotBlank(query.getCreateTimeStart()), "date_format (la.createTime,'%Y-%m-%d') >= date_format('" + query.getCreateTimeStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getCreateTimeEnd()), "date_format (la.createTime,'%Y-%m-%d') <= date_format('" + query.getCreateTimeEnd() + "','%Y-%m-%d')" + ); + //========================================数据授权开始 + if (StringUtils.isNotBlank(query.getMenuUrl())) { + //======================= + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(query.getOrgPath()); + privilegeQuery.setMenuUrl(query.getMenuUrl()); + privilegeQuery.setUserSid(query.getUserSid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = query.getOrgPath(); + orgSidPath = orgSidPath + "/"; + int i1 = orgSidPath.indexOf("/"); + int i2 = orgSidPath.indexOf("/", i1 + 1); + int i3 = orgSidPath.indexOf("/", i2 + 1); + int i4 = orgSidPath.indexOf("/", i3 + 1); + String orgLevelKey = defaultIdReltBean.getData(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i1); + qw.like("la.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("la.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("la.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("la.orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("la.createBySid", query.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } + } + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPageVo(page, qw, query.getVinNo(), query.getVehMark()); + List paggingRecords = pagging.getRecords(); + paggingRecords.removeAll(Collections.singleton(null)); + if (!paggingRecords.isEmpty()) { + for (LoanSecondarySalesNotApplyVo record : pagging.getRecords()) { + if (query.getUserSid().equals(record.getCreateBySid())) { + record.setAllowModify(true); + } else { + record.setAllowModify(false); + } + } + } + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public ResultBean saveOrUpdateDto(LoanSecondarySalesNotApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = dto.getSid(); + if (StringUtils.isBlank(sid)) {//新增 + LoanSecondarySalesNotApply loanSecondarySalesNotApply = new LoanSecondarySalesNotApply(); + BeanUtil.copyProperties(dto, loanSecondarySalesNotApply, "sid"); + baseMapper.insert(loanSecondarySalesNotApply); + sid = loanSecondarySalesNotApply.getSid(); + List filesList = dto.getFilesList(); + if (filesList.size() > 0) { + for (FileUrl fileUrl : filesList) { + LoanFile loanFile = new LoanFile(); + loanFile.setLinkSid(sid); + loanFile.setAttachType(LoanFileEnum.SECONDARYSALESNOT.getAttachType()); + String filePath = fileUrl.getUrl(); + if (filePath.indexOf(fileUploadComponent.getUrlPrefix()) > -1) { + filePath = filePath.replace(fileUploadComponent.getUrlPrefix(), ""); + } + loanFile.setFilePath(filePath); + loanFileService.save(loanFile); + } + } + //保存车辆 + List loanSecondarySalesNotVehList = dto.getLoanSecondarySalesNotVehList(); + if (!loanSecondarySalesNotVehList.isEmpty()) { + loanSecondarySalesNotVehService.saveVeh(loanSecondarySalesNotVehList, sid); + } + } else { + LoanSecondarySalesNotApply loanSecondarySalesNotApply = fetchBySid(sid); + if (loanSecondarySalesNotApply == null) { + return rb.setMsg("该申请不存在"); + } + BeanUtil.copyProperties(dto, loanSecondarySalesNotApply, "sid"); + loanFileService.deleteByLinkSid(sid); + List filesList = dto.getFilesList(); + if (filesList.size() > 0) { + for (FileUrl fileUrl : filesList) { + LoanFile loanFile = new LoanFile(); + loanFile.setLinkSid(sid); + loanFile.setAttachType(LoanFileEnum.SECONDARYSALESNOT.getAttachType()); + String filePath = fileUrl.getUrl(); + if (filePath.indexOf(fileUploadComponent.getUrlPrefix()) > -1) { + filePath = filePath.replace(fileUploadComponent.getUrlPrefix(), ""); + } + loanFile.setFilePath(filePath); + loanFileService.save(loanFile); + } + } + //保存车辆 + List loanSecondarySalesNotVehList = dto.getLoanSecondarySalesNotVehList(); + if (!loanSecondarySalesNotVehList.isEmpty()) { + loanSecondarySalesNotVehService.saveVeh(loanSecondarySalesNotVehList, sid); + } + baseMapper.updateById(loanSecondarySalesNotApply); + } + return rb.success().setData(sid); + } + + public LoanSecondarySalesNotApplyDetailsVo fetchDetailsVoBySid(String sid) { + LoanSecondarySalesNotApply entity = fetchBySid(sid); + LoanSecondarySalesNotApplyDetailsVo vo = new LoanSecondarySalesNotApplyDetailsVo(); + BeanUtil.copyProperties(entity, vo); + List loanSecondarySalesNotVehDetailsVos = loanSecondarySalesNotVehService.selByMainSid(sid); + vo.setLoanSecondarySalesNotVehList(loanSecondarySalesNotVehDetailsVos); + List fileUrls = new ArrayList<>(); + List loanFiles = loanFileService.selectByLinkSid(sid, LoanFileEnum.SECONDARYSALESNOT.getAttachType()); + for (LoanFile loanFile : loanFiles) { + FileUrl fileUrl = new FileUrl(); + fileUrl.setUrl(fileUploadComponent.getUrlPrefix() + loanFile.getFilePath()); + fileUrls.add(fileUrl); + } + vo.setFilesList(fileUrls); + return vo; + } + + public ResultBean init(LoanSecondarySalesNotApplyDetailsQuery query) { + ResultBean rb = ResultBean.fireFail(); + LoanSecondarySalesNotApplyDetailsVo loanSecondarySalesNotApplyDetailsVo = new LoanSecondarySalesNotApplyDetailsVo(); + LoanSecondarySalesApply loanSecondarySalesApply = loanSecondarySalesApplyService.fetchBySid(query.getSid()); + LoanSecondarySalesCostVo loanSecondarySalesCostVo = loanSecondarySalesCostService.selectByMainSid(query.getSid()); + List loanSecondarySalesVehVos = loanSecondarySalesVehService.selectByMainSid(query.getSid()); + String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(query.getOrgPath()).getData(); + loanSecondarySalesNotApplyDetailsVo.setUseOrgSid(useOrgSid); + //创建组织使用组织 + ResultBean organizationResultBean = sysOrganizationFeign.fetchBySid(useOrgSid); + if (organizationResultBean.getData() != null) { + loanSecondarySalesNotApplyDetailsVo.setUseOrgName(organizationResultBean.getData().getName()); + } + //申请部门 + List orgList = Arrays.asList(query.getOrgPath().split("/")); + String deptSid = orgList.get(orgList.size() - 1); + ResultBean sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(deptSid); + if (sysOrganizationVoResultBean.getData() != null) { + loanSecondarySalesNotApplyDetailsVo.setCreateDept(sysOrganizationVoResultBean.getData().getName()); + loanSecondarySalesNotApplyDetailsVo.setCreateDeptSid(deptSid); + } + //根据用户sid查询人员姓名 + ResultBean userVoResultBean = sysUserFeign.fetchBySid(query.getUserSid()); + if (!userVoResultBean.getSuccess()) { + return rb.setMsg(userVoResultBean.getMsg()); + } + //生成单据编号 + String billNo = ""; + SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); + String date = DateUtil.format(DateUtil.date(), "yyyyMM"); + billNo = "ECJHBZCSQ" + sysOrganizationVo.getOrgCode() + date; + String i = baseMapper.selectNum(billNo); + if (StringUtils.isNotBlank(i)) { + billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue()); + } else { + billNo = Rule.getBillNo(billNo, 0); + } + loanSecondarySalesNotApplyDetailsVo.setBillNo(billNo); + loanSecondarySalesNotApplyDetailsVo.setCreateByName(userVoResultBean.getData().getName()); + loanSecondarySalesNotApplyDetailsVo.setCreateBySid(query.getUserSid()); + loanSecondarySalesNotApplyDetailsVo.setOrgSidPath(query.getOrgPath()); + loanSecondarySalesNotApplyDetailsVo.setCustomerSid(loanSecondarySalesApply.getCustomerSid()); + loanSecondarySalesNotApplyDetailsVo.setCustomerName(loanSecondarySalesApply.getCustomerName()); + loanSecondarySalesNotApplyDetailsVo.setLoanSid(loanSecondarySalesApply.getLoanSid()); + loanSecondarySalesNotApplyDetailsVo.setLoanName(loanSecondarySalesApply.getLoanName()); + loanSecondarySalesNotApplyDetailsVo.setLoanContractNo(loanSecondarySalesApply.getLoanContractNo()); + loanSecondarySalesNotApplyDetailsVo.setBankName(loanSecondarySalesApply.getBankName()); + loanSecondarySalesNotApplyDetailsVo.setBankContractNo(loanSecondarySalesApply.getBankContractNo()); + loanSecondarySalesNotApplyDetailsVo.setVehPrice(new BigDecimal(loanSecondarySalesCostVo.getVehPrice())); + BigDecimal comBearMoney = new BigDecimal(BigInteger.ZERO); + comBearMoney = comBearMoney.add(new BigDecimal(loanSecondarySalesCostVo.getCollectionCost())); + if ("01".equals(loanSecondarySalesCostVo.getBankSettleCostAssumeKey())) { + comBearMoney = comBearMoney.add(new BigDecimal(loanSecondarySalesCostVo.getBankSettleCostAssume())); + } + if ("01".equals(loanSecondarySalesCostVo.getVehicleViolationCostAssumeKey())) { + comBearMoney = comBearMoney.add(new BigDecimal(loanSecondarySalesCostVo.getVehicleViolationCostAssume())); + } + if ("01".equals(loanSecondarySalesCostVo.getInspectYearCostAssumeKey())) { + comBearMoney = comBearMoney.add(new BigDecimal(loanSecondarySalesCostVo.getInspectYearCostAssume())); + } + if ("01".equals(loanSecondarySalesCostVo.getInsureCostAssumeKey())) { + comBearMoney = comBearMoney.add(new BigDecimal(loanSecondarySalesCostVo.getInsureCostAssume())); + } + if ("01".equals(loanSecondarySalesCostVo.getOwnershipCostAssumeKey())) { + comBearMoney = comBearMoney.add(new BigDecimal(loanSecondarySalesCostVo.getOwnershipCostAssume())); + } + if ("01".equals(loanSecondarySalesCostVo.getStopCostAssumeKey())) { + comBearMoney = comBearMoney.add(new BigDecimal(loanSecondarySalesCostVo.getStopCostAssume())); + } + if ("01".equals(loanSecondarySalesCostVo.getOtherCostAssumeKey())) { + comBearMoney = comBearMoney.add(new BigDecimal(loanSecondarySalesCostVo.getOtherCostAssume())); + } + loanSecondarySalesNotApplyDetailsVo.setComBearMoney(comBearMoney); + loanSecondarySalesNotApplyDetailsVo.setNodeState("待提交"); + loanSecondarySalesNotApplyDetailsVo.setSecSaleSid(loanSecondarySalesApply.getSid()); + List loanSecondarySalesNotVehDetailsVos = new ArrayList<>(); + BigDecimal bigDecimal = BigDecimal.ZERO; + for (LoanSecondarySalesVehVo loanSecondarySalesVehVo : loanSecondarySalesVehVos) { + LoanSecondarySalesNotVehDetailsVo loanSecondarySalesNotVehDetailsVo = new LoanSecondarySalesNotVehDetailsVo(); + loanSecondarySalesNotVehDetailsVo.setVinNo(loanSecondarySalesVehVo.getVinNo()); + loanSecondarySalesNotVehDetailsVo.setVehMark(loanSecondarySalesVehVo.getVehMark()); + loanSecondarySalesNotVehDetailsVo.setVehType(loanSecondarySalesVehVo.getVehType()); + loanSecondarySalesNotVehDetailsVo.setModelName(loanSecondarySalesVehVo.getModelName()); + loanSecondarySalesNotVehDetailsVo.setModelSid(loanSecondarySalesVehVo.getModelSid()); + loanSecondarySalesNotVehDetailsVo.setConfigSid(loanSecondarySalesVehVo.getConfigSid()); + loanSecondarySalesNotVehDetailsVo.setBusVinSid(loanSecondarySalesVehVo.getBusVinSid()); + loanSecondarySalesNotVehDetailsVos.add(loanSecondarySalesNotVehDetailsVo); + AlrepaidAndArrVo alrepaidAndArrVo = loanRestoreReportApplyService.getAlrepaidAndArr2(loanSecondarySalesVehVo.getBusSid()); + if (alrepaidAndArrVo != null) { + if (StringUtils.isNotBlank(alrepaidAndArrVo.getCurrentBeMoney())) { + bigDecimal = bigDecimal.add(new BigDecimal(alrepaidAndArrVo.getCurrentBeMoney())); + } + if (StringUtils.isNotBlank(alrepaidAndArrVo.getUnexpiredMoney())) { + bigDecimal = bigDecimal.add(new BigDecimal(alrepaidAndArrVo.getUnexpiredMoney())); + } + } + } + loanSecondarySalesNotApplyDetailsVo.setArrearsAll(bigDecimal); + loanSecondarySalesNotApplyDetailsVo.setLossPrice(loanSecondarySalesNotApplyDetailsVo.getArrearsAll().add(loanSecondarySalesNotApplyDetailsVo.getComBearMoney())); + loanSecondarySalesNotApplyDetailsVo.setLoanSecondarySalesNotVehList(loanSecondarySalesNotVehDetailsVos); + return rb.success().setData(loanSecondarySalesNotApplyDetailsVo); + } + + public ResultBean delAll(String[] sids) { + ResultBean rb = ResultBean.fireFail(); + //查询该sid中是否有流程不是待提交的 + int count = baseMapper.selectBySid(StringUtils.join(sids, ",")); + if (count > 0) { + return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败"); + } + delBySids(sids); + return rb.success(); + } + + public ResultBean submit(SubmitDto dto) { + ResultBean rb = ResultBean.fireFail(); + LoanSecondarySalesNotApply loanSecondarySalesNotApply = fetchBySid(dto.getSid()); + int r = submitBusinessData(dto, loanSecondarySalesNotApply); + if (r == 3) { + return rb.setMsg("该申请不存在"); + } + if (r == 0) { + return rb.setMsg("操作失败!提交的数据不一致"); + } + //新增修改保存 + String businessSid = saveOrUpdateDto(dto).getData(); + loanSecondarySalesNotApply = fetchBySid(businessSid); + //创建BusinessVariables实体对象 + BusinessVariables bv = new BusinessVariables(); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + //用户的部门全路径sid + bv.setOrgSidPath(loanSecondarySalesNotApply.getOrgSidPath()); + //业务sid + bv.setBusinessSid(businessSid); + //用户sid + bv.setUserSid(loanSecondarySalesNotApply.getCreateBySid()); + //若app移动端有此功能,则传递appMap参数 + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + //需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。 + variables.put("app", appMap); + //流程定义id + bv.setModelId(ProcDefEnum.LOANSECONDARYSALESNOTAPPLY.getProDefId()); + bv.setFormVariables(variables); + if (r == 1) { + ResultBean voResultBean = flowFeign.startProcess(bv); + UpdateFlowFieldVo ufVo = voResultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(ufVo)); + //极光推送 + loanSecondarySalesNotApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("二次销售车辆不追偿申请"); + messageFlowableQuery.setMsgContent(loanSecondarySalesNotApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("二次销售车辆不追偿申请"); + messageFeign.pushMessage(messageFlowableQuery); + return voResultBean; + } + if (r == 2) { + // ToDo:驳回到发起人后再次提交 + if (StringUtils.isBlank(dto.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + bv.setTaskId(loanSecondarySalesNotApply.getTaskId()); + bv.setTaskDefKey(loanSecondarySalesNotApply.getTaskDefKey()); + bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交"); + bv.setInstanceId(dto.getInstanceId()); + return complete(bv); + } + return rb; + } + + private synchronized int submitBusinessData(LoanSecondarySalesNotApplyDto dto, LoanSecondarySalesNotApply loanSecondarySalesNotApply) { + int r = 0; + if (StringUtils.isBlank(dto.getSid())) { + r = 1; + } else { + if (loanSecondarySalesNotApply != null) { + String businessTaskId = loanSecondarySalesNotApply.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; + } + + private int updateFlowFiled(Map map) { + return baseMapper.updateFlowFiled(map); + } + + public ResultBean complete(BusinessVariables bv) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = bv.getBusinessSid(); + LoanSecondarySalesNotApply loanSecondarySalesNotApply = fetchBySid(businessSid); + Map variables = new HashMap<>(); + //判断坏账金额是否大于2000 + variables.put("ishz", loanSecondarySalesNotApply.getLossPrice().compareTo(new BigDecimal("2000")) == 1); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + FlowProcessMapQuery flowProcessMapQuery = new FlowProcessMapQuery(); + if (StringUtils.isBlank(loanSecondarySalesNotApply.getProcDefId())) { + flowProcessMapQuery.setProDefKey(bv.getModelId()); + } else { + flowProcessMapQuery.setProDefKey(loanSecondarySalesNotApply.getProcDefId()); + } + flowProcessMapQuery.setVariables(variables); + variables = flowableFeign.getMap(flowProcessMapQuery).getData(); + //======================================= + bv.setFormVariables(variables); + bv.setOrgSidPath(loanSecondarySalesNotApply.getOrgSidPath()); + if (bv.getTaskId().equals(loanSecondarySalesNotApply.getTaskId())) { + ResultBean resultBean = flowFeign.handleProsess(bv); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { + } else { + //极光推送 + loanSecondarySalesNotApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + ufVo.setProcDefId(loanSecondarySalesNotApply.getProcDefId()); + ufVo.setProcInsId(loanSecondarySalesNotApply.getProcInstId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("二次销售车辆不追偿申请"); + messageFlowableQuery.setMsgContent(loanSecondarySalesNotApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("二次销售车辆不追偿申请"); + messageFeign.pushMessage(messageFlowableQuery); + } + return rb.success().setData(resultBean.getData()); + } else { + return rb.setMsg("操作失败!提交的数据不一致"); + } + } + + public ResultBean> getPreviousNodesForReject(NodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + LoanSecondarySalesNotApply loanSecondarySalesNotApply = fetchBySid(query.getBusinessSid()); + //判断坏账金额是否大于2000 + variables.put("ishz", loanSecondarySalesNotApply.getLossPrice().compareTo(new BigDecimal("2000")) == 1); + BeanUtil.copyProperties(query, bv); + bv.setModelId(loanSecondarySalesNotApply.getProcDefId()); + bv.setFormVariables(variables); + ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), NodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean> getNextNodesForSubmit(NodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + LoanSecondarySalesNotApply loanSecondarySalesNotApply = fetchBySid(query.getBusinessSid()); + //判断坏账金额是否大于2000 + variables.put("ishz", loanSecondarySalesNotApply.getLossPrice().compareTo(new BigDecimal("2000")) == 1); + BeanUtil.copyProperties(query, bv); + bv.setModelId(loanSecondarySalesNotApply.getProcDefId()); + bv.setFormVariables(variables); + ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), NodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean reject(TaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = query.getBusinessSid(); + LoanSecondarySalesNotApply loanSecondarySalesNotApply = fetchBySid(businessSid); + if (loanSecondarySalesNotApply == null) { + return rb.setMsg("该申请不存在"); + } + String businessTaskId = loanSecondarySalesNotApply.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); + //判断坏账金额是否大于2000 + variables.put("ishz", loanSecondarySalesNotApply.getLossPrice().compareTo(new BigDecimal("2000")) == 1); + 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); + //极光推送 + loanSecondarySalesNotApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + String procId = loanSecondarySalesNotApply.getProcInstId(); + ufVo.setProcInsId(procId); + ufVo.setProcDefId(loanSecondarySalesNotApply.getProcDefId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("二次销售车辆不追偿申请"); + ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); + String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); + List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); + if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(loanSecondarySalesNotApply.getCreateBySid())) { + messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); + } else { + messageFlowableQuery.setMsgContent(loanSecondarySalesNotApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + messageFlowableQuery.setMsgTitle("二次销售车辆不追偿申请"); + messageFeign.pushMessage(messageFlowableQuery); + return rb.success(); + } + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + public ResultBean revokeProcess(TaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + LoanSecondarySalesNotApply loanSecondarySalesNotApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = loanSecondarySalesNotApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.revokeProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + return rb.success().setData(resultBean.getData()); + } + } + return rb.setMsg("操作失败,提交的数据不一致!"); + } + + public ResultBean breakProcess(TaskQuery 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("请填写意见"); + } + LoanSecondarySalesNotApply loanSecondarySalesNotApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = loanSecondarySalesNotApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (query.getUserSid().equals(loanSecondarySalesNotApply.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 delegate(DelegateQuery query) { + ResultBean rb = ResultBean.fireFail(); + FlowDelegateQuery delegateQuery = new FlowDelegateQuery(); + BeanUtil.copyProperties(query, delegateQuery); + flowFeign.delegate(delegateQuery); + return rb.success(); + } +} \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehMapper.java new file mode 100644 index 0000000000..8dff6f8d93 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehMapper.java @@ -0,0 +1,43 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.riskcenter.biz.loansecondarysalesnotveh; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.anrui.riskcenter.api.loansecondarysalesnotveh.LoanSecondarySalesNotVehDetailsVo; +import org.apache.ibatis.annotations.Mapper; +import com.yxt.anrui.riskcenter.api.loansecondarysalesnotveh.LoanSecondarySalesNotVeh; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +@Mapper +public interface LoanSecondarySalesNotVehMapper extends BaseMapper { + + void deleteByMainSid(String sid); + + @Select("select * from loan_secondary_sales_not_veh where mainSid = #{mainSid}") + List selByMainSid(String mainSid); +} \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehMapper.xml new file mode 100644 index 0000000000..9dc41eed95 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehMapper.xml @@ -0,0 +1,12 @@ + + + + + + + + delete + from loan_secondary_sales_not_veh + where mainSid = #{s} + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehService.java new file mode 100644 index 0000000000..7cc25cf931 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehService.java @@ -0,0 +1,65 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.riskcenter.biz.loansecondarysalesnotveh; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVeh; +import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo; +import org.apache.commons.lang3.StringUtils; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.PagerUtil; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalesnotveh.LoanSecondarySalesNotVeh; +import com.yxt.anrui.riskcenter.api.loansecondarysalesnotveh.LoanSecondarySalesNotVehDetailsVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalesnotveh.LoanSecondarySalesNotVehDto; + +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class LoanSecondarySalesNotVehService extends MybatisBaseService { + + public void saveVeh(List loanSecondarySalesNotVehDtoList, String sid) { + //先删除 + baseMapper.deleteByMainSid(sid); + //保存 + for (int i = 0; i < loanSecondarySalesNotVehDtoList.size(); i++) { + LoanSecondarySalesNotVehDto loanSecondarySalesNotVehDto = loanSecondarySalesNotVehDtoList.get(i); + LoanSecondarySalesNotVeh loanSecondarySalesNotVeh = new LoanSecondarySalesNotVeh(); + BeanUtil.copyProperties(loanSecondarySalesNotVehDto, loanSecondarySalesNotVeh, "sid"); + loanSecondarySalesNotVeh.setMainSid(sid); + baseMapper.insert(loanSecondarySalesNotVeh); + } + } + + public List selByMainSid(String mainSid) { + return baseMapper.selByMainSid(mainSid); + } +} \ No newline at end of file diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateService.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateService.java index 8a50e86056..3c319d08cf 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateService.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateService.java @@ -67,6 +67,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; import java.math.BigDecimal; +import java.math.BigInteger; import java.util.*; import java.util.regex.Pattern; @@ -370,6 +371,7 @@ public class ScmSpecialRebateService extends MybatisBaseService> getPreviousNodesForReject2(@Valid @SpringQueryMap FlowNodeQuery query) { + return wmsInventoryAllocateBillService.getPreviousNodesForReject2(query); + } + + @ApiOperation(value = "获取下一个环节") + @GetMapping(value = "/getNextNodesForSubmit2") + ResultBean> getNextNodesForSubmit2(@Valid @SpringQueryMap FlowNodeQuery query) { + return wmsInventoryAllocateBillService.getNextNodesForSubmit2(query); + } + + @ApiOperation(value = "驳回任务") + @PostMapping(value = "/reject2") + public ResultBean taskReject2(@Valid @RequestBody FlowTaskQuery query) { + return wmsInventoryAllocateBillService.taskReject2(query); + } + + /*********************************************************调拨申请(一级站内)流程************************************************************/ + + @ApiOperation("提交") + @PostMapping("/submitApply3") + public ResultBean submitApply3(@Valid @RequestBody SubmitFlowDto dto) { + return wmsInventoryAllocateBillService.submitApply3(dto); + } + + @ApiOperation(value = "办理(同意)") + @PostMapping("/complete3") + public ResultBean complete3(@Valid @RequestBody CompleteFlowDto query) { + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + bv.setModelId(""); + return wmsInventoryAllocateBillService.complete3(bv); + } + + @ApiOperation(value = "获取上一个环节") + @GetMapping(value = "/getPreviousNodesForReject3") + ResultBean> getPreviousNodesForReject3(@Valid @SpringQueryMap FlowNodeQuery query) { + return wmsInventoryAllocateBillService.getPreviousNodesForReject3(query); + } + + @ApiOperation(value = "获取下一个环节") + @GetMapping(value = "/getNextNodesForSubmit3") + ResultBean> getNextNodesForSubmit3(@Valid @SpringQueryMap FlowNodeQuery query) { + return wmsInventoryAllocateBillService.getNextNodesForSubmit3(query); + } + + @ApiOperation(value = "驳回任务") + @PostMapping(value = "/reject3") + public ResultBean taskReject3(@Valid @RequestBody FlowTaskQuery query) { + return wmsInventoryAllocateBillService.taskReject3(query); + } } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryallocatebill/WmsInventoryAllocateBillService.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryallocatebill/WmsInventoryAllocateBillService.java index e13b2f8ca0..43e1f87004 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryallocatebill/WmsInventoryAllocateBillService.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryallocatebill/WmsInventoryAllocateBillService.java @@ -31,6 +31,8 @@ import com.yxt.wms.feign.portal.privilege.PrivilegeQuery; import com.yxt.wms.feign.portal.sysorganization.SysOrganizationFeign; import com.yxt.wms.feign.portal.sysorganization.SysOrganizationVo; import com.yxt.wms.feign.portal.sysuser.SysUserFeign; +import com.yxt.wms.feign.portal.sysuser.SysUserVo; +import com.yxt.wms.feign.portal.sysuser.UserRoleQuery; import com.yxt.wms.feign.portal.sysuserrole.SysUserRoleFeign; import com.yxt.wms.utils.Rule; import org.apache.tomcat.util.threads.ThreadPoolExecutor; @@ -107,30 +109,30 @@ public class WmsInventoryAllocateBillService extends MybatisBaseService list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); variables.put("iszg", list.contains("bdacdca7-7a62-49b1-84c6-e32a4ffab777")); + UserRoleQuery userRoleQuery = new UserRoleQuery(); + userRoleQuery.setRoleSid("bdacdca7-7a62-49b1-84c6-e32a4ffab777"); + if (list.contains("bdacdca7-7a62-49b1-84c6-e32a4ffab777")) { + userRoleQuery.setOrgSid(wmsInventoryAllocateBill.getInPlatSid()); + } else { + userRoleQuery.setOrgSid(wmsInventoryAllocateBill.getOutPlatSid()); + } + List sysUserVos = sysUserFeign.getOtherOrgRoleUser(userRoleQuery).getData(); + StringBuilder nextNodeUserSids = new StringBuilder(); + if (sysUserVos.size() > 0) { + for (SysUserVo sysUserVo : sysUserVos) { + String sid = sysUserVo.getSid(); + nextNodeUserSids.append(sid).append(","); + } + } + if (StringUtils.isBlank(nextNodeUserSids)) { + bv.setNextNodeUserSids(""); + } else { + String substring = nextNodeUserSids.substring(0, nextNodeUserSids.lastIndexOf(",")); + bv.setNextNodeUserSids(substring); + } //用户的部门全路径sid SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(wmsInventoryAllocateBill.getDeptSid()).getData(); if (sysOrganization != null) { @@ -341,6 +364,51 @@ public class WmsInventoryAllocateBillService extends MybatisBaseService>> resultBean1 = flowTaskFeign.getNextNodesForSubmit(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean1.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList()); + List candidateGroups = voList.get(0).getCandidateGroups(); + UserRoleQuery userRoleQuery = new UserRoleQuery(); + userRoleQuery.setRoleSid(candidateGroups.get(0)); + userRoleQuery.setOrgSid(wmsInventoryAllocateBill.getOutPlatSid()); + List sysUserVos = sysUserFeign.getOtherOrgRoleUser(userRoleQuery).getData(); + StringBuilder nextNodeUserSids = new StringBuilder(); + if (sysUserVos.size() > 0) { + for (SysUserVo sysUserVo : sysUserVos) { + String sid = sysUserVo.getSid(); + nextNodeUserSids.append(sid).append(","); + } + } + if (StringUtils.isBlank(nextNodeUserSids)) { + bv.setNextNodeUserSids(""); + } else { + String substring = nextNodeUserSids.substring(0, nextNodeUserSids.lastIndexOf(",")); + bv.setNextNodeUserSids(substring); + } + }else if (bv.getTaskDefKey().equals("Activity_0kn4sub")){//调入方站长审批 + ResultBean>> resultBean1 = flowTaskFeign.getNextNodesForSubmit(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean1.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList()); + List candidateGroups = voList.get(0).getCandidateGroups(); + UserRoleQuery userRoleQuery = new UserRoleQuery(); + userRoleQuery.setRoleSid(candidateGroups.get(0)); + userRoleQuery.setOrgSid(wmsInventoryAllocateBill.getInPlatSid()); + List sysUserVos = sysUserFeign.getOtherOrgRoleUser(userRoleQuery).getData(); + StringBuilder nextNodeUserSids = new StringBuilder(); + if (sysUserVos.size() > 0) { + for (SysUserVo sysUserVo : sysUserVos) { + String sid = sysUserVo.getSid(); + nextNodeUserSids.append(sid).append(","); + } + } + if (StringUtils.isBlank(nextNodeUserSids)) { + bv.setNextNodeUserSids(""); + } else { + String substring = nextNodeUserSids.substring(0, nextNodeUserSids.lastIndexOf(",")); + bv.setNextNodeUserSids(substring); + } + } if (bv.getTaskId().equals(wmsInventoryAllocateBill.getTaskId())) { ResultBean resultBean = flowFeign.handleProsess(bv); if (!resultBean.getSuccess()) { @@ -553,7 +621,7 @@ public class WmsInventoryAllocateBillService extends MybatisBaseService appMap = new HashMap<>(); appMap.put("sid", businessSid); variables.put("app", appMap); + //判断发起人是否为配件主管 + String createBySid = wmsInventoryAllocateBill.getCreateBySid(); + List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); + variables.put("iszg", list.contains("bdacdca7-7a62-49b1-84c6-e32a4ffab777")); + UserRoleQuery userRoleQuery = new UserRoleQuery(); + if (list.contains("bdacdca7-7a62-49b1-84c6-e32a4ffab777")) { + ResultBean>> resultBean1 = flowTaskFeign.getNextNodesForSubmit(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean1.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList()); + List candidateGroups = voList.get(0).getCandidateGroups(); + userRoleQuery.setRoleSid(candidateGroups.get(0)); + userRoleQuery.setOrgSid(wmsInventoryAllocateBill.getOutPlatSid()); + } else { + userRoleQuery.setRoleSid("bdacdca7-7a62-49b1-84c6-e32a4ffab777"); + userRoleQuery.setOrgSid(wmsInventoryAllocateBill.getOutPlatSid()); + } + List sysUserVos = sysUserFeign.getOtherOrgRoleUser(userRoleQuery).getData(); + StringBuilder nextNodeUserSids = new StringBuilder(); + if (sysUserVos.size() > 0) { + for (SysUserVo sysUserVo : sysUserVos) { + String sid = sysUserVo.getSid(); + nextNodeUserSids.append(sid).append(","); + } + } + if (StringUtils.isBlank(nextNodeUserSids)) { + bv.setNextNodeUserSids(""); + } else { + String substring = nextNodeUserSids.substring(0, nextNodeUserSids.lastIndexOf(",")); + bv.setNextNodeUserSids(substring); + } //用户的部门全路径sid SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(wmsInventoryAllocateBill.getDeptSid()).getData(); if (sysOrganization != null) { @@ -628,7 +726,7 @@ public class WmsInventoryAllocateBillService extends MybatisBaseService variables = new HashMap<>(); + //判断发起人是否为配件主管 + String createBySid = wmsInventoryAllocateBill.getCreateBySid(); + List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); + variables.put("iszg", list.contains("bdacdca7-7a62-49b1-84c6-e32a4ffab777")); + variables.put("iscdy", true); + variables.put("isrdy", true); Map appMap = new HashMap<>(); appMap.put("sid", businessSid); variables.put("app", appMap); @@ -647,6 +751,29 @@ public class WmsInventoryAllocateBillService extends MybatisBaseService>> resultBean1 = flowTaskFeign.getNextNodesForSubmit(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean1.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList()); + List candidateGroups = voList.get(0).getCandidateGroups(); + UserRoleQuery userRoleQuery = new UserRoleQuery(); + userRoleQuery.setRoleSid(candidateGroups.get(0)); + userRoleQuery.setOrgSid(wmsInventoryAllocateBill.getOutPlatSid()); + List sysUserVos = sysUserFeign.getOtherOrgRoleUser(userRoleQuery).getData(); + StringBuilder nextNodeUserSids = new StringBuilder(); + if (sysUserVos.size() > 0) { + for (SysUserVo sysUserVo : sysUserVos) { + String sid = sysUserVo.getSid(); + nextNodeUserSids.append(sid).append(","); + } + } + if (StringUtils.isBlank(nextNodeUserSids)) { + bv.setNextNodeUserSids(""); + } else { + String substring = nextNodeUserSids.substring(0, nextNodeUserSids.lastIndexOf(",")); + bv.setNextNodeUserSids(substring); + } + } if (bv.getTaskId().equals(wmsInventoryAllocateBill.getTaskId())) { ResultBean resultBean = flowFeign.handleProsess(bv); if (!resultBean.getSuccess()) { @@ -682,7 +809,16 @@ public class WmsInventoryAllocateBillService extends MybatisBaseService> rb = ResultBean.fireFail(); BusinessVariables bv = new BusinessVariables(); BeanUtil.copyProperties(query, bv); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + //查询业务信息 WmsInventoryAllocateBill wmsInventoryAllocateBill = fetchBySid(query.getBusinessSid()); + //判断发起人是否为配件主管 + String createBySid = wmsInventoryAllocateBill.getCreateBySid(); + List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); + variables.put("iszg", list.contains("bdacdca7-7a62-49b1-84c6-e32a4ffab777")); + variables.put("iscdy", true); + variables.put("isrdy", true); bv.setModelId(wmsInventoryAllocateBill.getProcDefId()); ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo @@ -694,7 +830,16 @@ public class WmsInventoryAllocateBillService extends MybatisBaseService> rb = ResultBean.fireFail(); BusinessVariables bv = new BusinessVariables(); BeanUtil.copyProperties(query, bv); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + //查询业务信息 WmsInventoryAllocateBill wmsInventoryAllocateBill = fetchBySid(query.getBusinessSid()); + //判断发起人是否为配件主管 + String createBySid = wmsInventoryAllocateBill.getCreateBySid(); + List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); + variables.put("iszg", list.contains("bdacdca7-7a62-49b1-84c6-e32a4ffab777")); + variables.put("iscdy", true); + variables.put("isrdy", true); bv.setModelId(wmsInventoryAllocateBill.getProcDefId()); ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo @@ -724,6 +869,13 @@ public class WmsInventoryAllocateBillService extends MybatisBaseService appMap = new HashMap<>(); appMap.put("sid", businessSid); variables.put("app", appMap); + //判断发起人是否为配件主管 + String createBySid = wmsInventoryAllocateBill.getCreateBySid(); + List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); + variables.put("iszg", list.contains("bdacdca7-7a62-49b1-84c6-e32a4ffab777")); + variables.put("iscdy", true); + variables.put("isrdy", true); + flowTaskVo.setValues(variables); ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); if (!resultBean.getSuccess()) { return rb.setMsg(resultBean.getMsg()); @@ -761,7 +913,7 @@ public class WmsInventoryAllocateBillService extends MybatisBaseService appMap = new HashMap<>(); appMap.put("sid", businessSid); variables.put("app", appMap); + //判断发起人是否为配件主管 + String createBySid = wmsInventoryAllocateBill.getCreateBySid(); + List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); + variables.put("iszg", list.contains("bdacdca7-7a62-49b1-84c6-e32a4ffab777")); + variables.put("ishz", true); + variables.put("iscc", true); //用户的部门全路径sid SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(wmsInventoryAllocateBill.getDeptSid()).getData(); if (sysOrganization != null) { @@ -836,7 +994,7 @@ public class WmsInventoryAllocateBillService extends MybatisBaseService variables = new HashMap<>(); + //判断发起人是否为配件主管 + String createBySid = wmsInventoryAllocateBill.getCreateBySid(); + List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); + variables.put("iszg", list.contains("bdacdca7-7a62-49b1-84c6-e32a4ffab777")); + variables.put("ishz", true); + variables.put("iscc", true); Map appMap = new HashMap<>(); appMap.put("sid", businessSid); variables.put("app", appMap); @@ -890,7 +1054,16 @@ public class WmsInventoryAllocateBillService extends MybatisBaseService> rb = ResultBean.fireFail(); BusinessVariables bv = new BusinessVariables(); BeanUtil.copyProperties(query, bv); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + //查询业务信息 WmsInventoryAllocateBill wmsInventoryAllocateBill = fetchBySid(query.getBusinessSid()); + //判断发起人是否为配件主管 + String createBySid = wmsInventoryAllocateBill.getCreateBySid(); + List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); + variables.put("iszg", list.contains("bdacdca7-7a62-49b1-84c6-e32a4ffab777")); + variables.put("ishz", true); + variables.put("iscc", true); bv.setModelId(wmsInventoryAllocateBill.getProcDefId()); ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo @@ -902,7 +1075,16 @@ public class WmsInventoryAllocateBillService extends MybatisBaseService> rb = ResultBean.fireFail(); BusinessVariables bv = new BusinessVariables(); BeanUtil.copyProperties(query, bv); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + //查询业务信息 WmsInventoryAllocateBill wmsInventoryAllocateBill = fetchBySid(query.getBusinessSid()); + //判断发起人是否为配件主管 + String createBySid = wmsInventoryAllocateBill.getCreateBySid(); + List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); + variables.put("iszg", list.contains("bdacdca7-7a62-49b1-84c6-e32a4ffab777")); + variables.put("ishz", true); + variables.put("iscc", true); bv.setModelId(wmsInventoryAllocateBill.getProcDefId()); ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo @@ -932,6 +1114,13 @@ public class WmsInventoryAllocateBillService extends MybatisBaseService appMap = new HashMap<>(); appMap.put("sid", businessSid); variables.put("app", appMap); + //判断发起人是否为配件主管 + String createBySid = wmsInventoryAllocateBill.getCreateBySid(); + List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); + variables.put("iszg", list.contains("bdacdca7-7a62-49b1-84c6-e32a4ffab777")); + variables.put("ishz", true); + variables.put("iscc", true); + flowTaskVo.setValues(variables); ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); if (!resultBean.getSuccess()) { return rb.setMsg(resultBean.getMsg()); diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryallocatebill/flowable/GetNodeVo.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryallocatebill/flowable/GetNodeVo.java new file mode 100644 index 0000000000..c5b880ac4e --- /dev/null +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryallocatebill/flowable/GetNodeVo.java @@ -0,0 +1,25 @@ +package com.yxt.wms.biz.inventory.wmsinventoryallocatebill.flowable; + +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 GetNodeVo 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/yxt-wms-biz/src/main/java/com/yxt/wms/feign/portal/sysuser/SysUserFeign.java b/yxt-wms-biz/src/main/java/com/yxt/wms/feign/portal/sysuser/SysUserFeign.java index 92f706afc0..6353caa4c6 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/feign/portal/sysuser/SysUserFeign.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/feign/portal/sysuser/SysUserFeign.java @@ -1,16 +1,18 @@ package com.yxt.wms.feign.portal.sysuser; - import com.yxt.common.core.result.ResultBean; import com.yxt.wms.feign.portal.privilege.PrivilegeQuery; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import java.util.List; + @Api(tags = "用户表") @FeignClient( contextId = "anrui-portal-SysUser", @@ -24,5 +26,15 @@ public interface SysUserFeign { @ApiOperation("根据sid获取一条记录") @GetMapping("/fetchBySid/{sid}") - public ResultBean fetchBySid(@PathVariable("sid") String sid); + ResultBean fetchBySid(@PathVariable("sid") String sid); + + /** + * 参数为下一环节角色sid,机构sid + * + * @param query + * @return + */ + @ApiOperation(value = "获取其他机构链角色的用户") + @GetMapping(value = "getOtherOrgRoleUser") + ResultBean> getOtherOrgRoleUser(@SpringQueryMap UserRoleQuery query); } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/feign/portal/sysuser/UserRoleQuery.java b/yxt-wms-biz/src/main/java/com/yxt/wms/feign/portal/sysuser/UserRoleQuery.java new file mode 100644 index 0000000000..1e81978162 --- /dev/null +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/feign/portal/sysuser/UserRoleQuery.java @@ -0,0 +1,19 @@ +package com.yxt.wms.feign.portal.sysuser; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/8/25 8:38 + * @Description + */ +@Data +public class UserRoleQuery implements Query { + private static final long serialVersionUID = 1913450300189800653L; + + @ApiModelProperty("角色sid") + private String roleSid; + private String orgSid; +}