diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml index 39431dd35d..0abdc8232f 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml @@ -382,7 +382,7 @@ fcc.createBySid AS createBySid, fcc.`useOrgSid`, fcc.`staffDeptName` AS staffDeptName, - fcc.staffUserSid AS staffSid, + su.staffSid AS staffSid, fcc.`staffName` AS staffName, ferd.`contractNo`, ferd.`payType`, @@ -401,11 +401,14 @@ FROM fin_selected_receivables_detailed ferd LEFT JOIN fin_collection_confirmation fcc ON ferd.`collSid` = fcc.`sid` - LEFT JOIN anrui_base.`base_vehicle` bv - ON RIGHT(ferd.`VIN`, 8) = RIGHT(bv.`vinNo`, 8) - AND fcc.`useOrgSid` = bv.`createOrgSid` LEFT JOIN `fin_funds_carried_forward_veh` ffc ON ffc.`busSid` = ferd.`sid` + LEFT JOIN anrui_portal.`sys_user` su + ON fcc.`staffUserSid` = su.sid + LEFT JOIN fin_uncollected_receivables_detailed furd + ON ferd.`receivablesSid` = furd.`sid` + JOIN anrui_base.`base_vehicle_state` bvs + ON furd.busVinSid = bvs.busSid AND (bvs.`busNo` = "200" OR bvs.`busState` = "401") ${ew.SqlSegment} @@ -433,11 +436,12 @@ FROM fin_selected_receivables_detailed ferd LEFT JOIN fin_funds_carried_forward_apply ffcfa ON ferd.`collSid` = ffcfa.`sid` - LEFT JOIN anrui_base.`base_vehicle` bv - ON RIGHT(ferd.`VIN`, 8) = RIGHT(bv.`vinNo`, 8) - AND ffcfa.`useOrgSid` = bv.`createOrgSid` LEFT JOIN `fin_funds_carried_forward_veh` ffc ON ffc.`busSid` = ferd.`sid` + LEFT JOIN fin_uncollected_receivables_detailed furd + ON ferd.`receivablesSid` = furd.`sid` + JOIN anrui_base.`base_vehicle_state` bvs + ON furd.busVinSid = bvs.busSid AND (bvs.`busNo` = "200" OR bvs.`busState` = "401") ${ew.sqlSegment} diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedService.java index c500a90f74..d3303dc3de 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedService.java @@ -570,7 +570,8 @@ public class FinSelectedReceivablesDetailedService extends MybatisBaseService wrapper.like("fcc.staffDeptName", query.getStaffDeptName()).or().like("ffcfa.saleDeptName", query.getStaffDeptName())); } diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/otherreceivablebill/OtherReceivableBillService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/otherreceivablebill/OtherReceivableBillService.java index 986f544c8a..b4aa902096 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/otherreceivablebill/OtherReceivableBillService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/otherreceivablebill/OtherReceivableBillService.java @@ -72,7 +72,8 @@ public class OtherReceivableBillService extends FinKingDeeService { return rb.setMsg("其他应收单保存失败!"); } log.info("其他应收单保存成功!"); - ResultBean resultBean2 = accessKingDeeInterface(KingDeeBillId.AR_OTHERRECEIVABLE.getID(), kingDeeData, KingDeeBillUrl.SUBMIT_URL.getURL()); + String submitKD = getSubmitKD(resultBean1.getData(),KingDeeBillId.AR_OTHERRECEIVABLE.getID()); + ResultBean resultBean2 = accessKingDeeInterface(KingDeeBillId.AR_OTHERRECEIVABLE.getID(), submitKD, KingDeeBillUrl.SUBMIT_URL.getURL()); if(!resultBean2.getSuccess()){ log.info("其他应收单提交失败!"); return rb.setMsg("其他应收单提交失败!"); diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/otherreceivablebill/data_model.json b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/otherreceivablebill/data_model.json index 8dae9a5ec6..f1a8471d51 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/otherreceivablebill/data_model.json +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/otherreceivablebill/data_model.json @@ -41,12 +41,12 @@ "FNumber": "" }, "FMAINBOOKSTDCURRID": { - "FNumber": "" + "FNumber": "PRE001" }, "FEXCHANGETYPE": { - "FNumber": "" + "FNumber": "HLTX01_SYS" }, - "FExchangeRate": "0", + "FExchangeRate": "1", "FNOTAXAMOUNT": "0", "FTAXAMOUNT": "0", "FCancelStatus": "", 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 2d6987262d..2298821c09 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 @@ -54,6 +54,7 @@ public enum ProcDefEnum { BUSHANDOVER("交车确认", "process_e8feloik:6:2675004"), LOANFINPOLICYRECORDAPPLY("金融产品政策备案", "process_u45lo7qc:1:2272516"), LOANOTHERPOLICYRECORDAPPLY("其它融产品备案", "process_7pptyzfc:1:2272524"), + LOANCREDITAPPEALAPPLY("信用审核申诉", "process_gygvxw8k:1:2847504"), DEALERFILINGAPPLY("经销商备案", "process_jdu35cog:3:2577504"), /******************************测试流程id*********************************************/ diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyDetailsVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyDetailsVo.java index 909ca08ff6..f96c0aba82 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyDetailsVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyDetailsVo.java @@ -26,12 +26,18 @@ package com.yxt.anrui.riskcenter.api.loancreditappealapply; +import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoDetailsVo; +import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoDto; +import com.yxt.anrui.riskcenter.api.loanpreloancreditapply.LoanPreloanCreditApplyDetailsVo; import com.yxt.common.core.vo.Vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.ArrayList; +import java.util.List; + /** * Project: anrui-riskcenter(信用审核申诉)
* File: LoanCreditAppealApplyVo.java
@@ -51,6 +57,10 @@ public class LoanCreditAppealApplyDetailsVo implements Vo { private String sid; + @ApiModelProperty("贷前信用审核") + private LoanPreloanCreditApplyDetailsVo loanPreloanCreditApplyDetailsVo; + @ApiModelProperty("创建人sid") + private String createBySid; @ApiModelProperty("创建人接口") private String createByName; @ApiModelProperty("申诉原因") @@ -69,4 +79,14 @@ public class LoanCreditAppealApplyDetailsVo implements Vo { private String applyDeptSid; @ApiModelProperty("申请部门名称") private String applyDeptName; + @ApiModelProperty("销售订单sid") + private String saleOrderSid = "1b54fcc7-9909-436d-a134-03c3f5a7f7ff"; + @ApiModelProperty("流程定义的id") + private String procDefId; + @ApiModelProperty("流程实例的sid") + private String procInstSid; + @ApiModelProperty("信用申诉人员列表") + private List loanCreditAppealPeos = new ArrayList<>(); + @ApiModelProperty("申诉附件") + private List ssImages = new ArrayList<>(); } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyDto.java index 49c3f67c15..633d696114 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyDto.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyDto.java @@ -55,6 +55,8 @@ public class LoanCreditAppealApplyDto implements Dto { private String sid; + @ApiModelProperty("创建人sid") + private String createBySid; @ApiModelProperty("创建人接口") private String createByName; @ApiModelProperty("申诉原因") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyFeign.java index cffdcdd3ad..2e473fe66c 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyFeign.java @@ -25,14 +25,17 @@ *********************************************************/ package com.yxt.anrui.riskcenter.api.loancreditappealapply; +import com.yxt.anrui.riskcenter.api.loancreditappealapply.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; /** @@ -75,4 +78,37 @@ public interface LoanCreditAppealApplyFeign { @GetMapping("/fetchDetailsBySid/{sid}") @ResponseBody public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid); + + @ApiOperation("初始化申诉申请") + @GetMapping("/init/{sid}") + @ResponseBody + public ResultBean init(@PathVariable("sid") String sid); + + @ApiOperation("信用审核申诉审批流程") + @PostMapping("/submitLoanCreditApply") + public ResultBean submitLoanCreditApply(@RequestBody @Valid SubmitLoanCreditApplyDto dto); + + @ApiOperation(value = "办理(同意)") + @PostMapping("/complete") + public ResultBean complete(@Valid @RequestBody LoanCreditApplyCompleteDto query); + + @ApiOperation(value = "获取上一个环节") + @GetMapping(value = "/getPreviousNodesForReject") + ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap LoanCreditApplyNodeQuery query); + + @ApiOperation(value = "获取下一个环节") + @GetMapping(value = "/getNextNodesForSubmit") + ResultBean> getNextNodesForSubmit(@Valid @SpringQueryMap LoanCreditApplyNodeQuery query); + + @ApiOperation(value = "驳回任务") + @PostMapping(value = "/reject") + public ResultBean reject(@Valid @RequestBody LoanCreditApplyTaskQuery query); + + @ApiOperation(value = "撤回流程") + @PostMapping(value = "/revokeProcess") + public ResultBean revokeProcess(@Valid @RequestBody LoanCreditApplyTaskQuery query); + + @ApiOperation(value = "终止任务") + @PostMapping(value = "/breakProcess") + public ResultBean breakProcess(@Valid @RequestBody LoanCreditApplyTaskQuery query); } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyFeignFallback.java index c522df697b..d1fe87f1b5 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyFeignFallback.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyFeignFallback.java @@ -25,6 +25,7 @@ *********************************************************/ package com.yxt.anrui.riskcenter.api.loancreditappealapply; +import com.yxt.anrui.riskcenter.api.loancreditappealapply.flowable.*; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -69,4 +70,44 @@ public class LoanCreditAppealApplyFeignFallback implements LoanCreditAppealApply ResultBean rb = ResultBean.fireFail(); return rb.setMsg("接口anrui-riskcenter/loancreditappealapply/fetchDetailsBySid无法访问"); } + + @Override + public ResultBean init(String sid) { + return null; + } + + @Override + public ResultBean submitLoanCreditApply(SubmitLoanCreditApplyDto dto) { + return null; + } + + @Override + public ResultBean complete(LoanCreditApplyCompleteDto query) { + return null; + } + + @Override + public ResultBean> getPreviousNodesForReject(LoanCreditApplyNodeQuery query) { + return null; + } + + @Override + public ResultBean> getNextNodesForSubmit(LoanCreditApplyNodeQuery query) { + return null; + } + + @Override + public ResultBean reject(LoanCreditApplyTaskQuery query) { + return null; + } + + @Override + public ResultBean revokeProcess(LoanCreditApplyTaskQuery query) { + return null; + } + + @Override + public ResultBean breakProcess(LoanCreditApplyTaskQuery query) { + return null; + } } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyQuery.java index a3773fb8ac..b05e15bd33 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyQuery.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyQuery.java @@ -49,6 +49,8 @@ import lombok.Data; @ApiModel(value = "信用审核申诉表 查询条件", description = "信用审核申诉表 查询条件") public class LoanCreditAppealApplyQuery implements Query { + @ApiModelProperty("分公司名称") + private String useOrgName; @ApiModelProperty("申请部门名称") private String applyDeptName; @ApiModelProperty("创建人接口") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/flowable/LoanCreditApplyCompleteDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/flowable/LoanCreditApplyCompleteDto.java new file mode 100644 index 0000000000..c8eb8ebd87 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/flowable/LoanCreditApplyCompleteDto.java @@ -0,0 +1,37 @@ +package com.yxt.anrui.riskcenter.api.loancreditappealapply.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 LoanCreditApplyCompleteDto implements Dto { + private static final long serialVersionUID = 6378752532534735663L; + + @ApiModelProperty(value = "用户sid") + private String userSid; + @ApiModelProperty(value = "下载类型") + private String pdfType; + @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; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/flowable/LoanCreditApplyNodeQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/flowable/LoanCreditApplyNodeQuery.java new file mode 100644 index 0000000000..0bafc87d53 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/flowable/LoanCreditApplyNodeQuery.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.riskcenter.api.loancreditappealapply.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 LoanCreditApplyNodeQuery 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/loancreditappealapply/flowable/LoanCreditApplyNodeVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/flowable/LoanCreditApplyNodeVo.java new file mode 100644 index 0000000000..808fed6ba0 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/flowable/LoanCreditApplyNodeVo.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.riskcenter.api.loancreditappealapply.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 LoanCreditApplyNodeVo 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/loancreditappealapply/flowable/LoanCreditApplyTaskQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/flowable/LoanCreditApplyTaskQuery.java new file mode 100644 index 0000000000..bf5a055ec5 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/flowable/LoanCreditApplyTaskQuery.java @@ -0,0 +1,48 @@ +package com.yxt.anrui.riskcenter.api.loancreditappealapply.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 LoanCreditApplyTaskQuery 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/loancreditappealapply/flowable/SubmitLoanCreditApplyDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/flowable/SubmitLoanCreditApplyDto.java new file mode 100644 index 0000000000..2b11c212dd --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/flowable/SubmitLoanCreditApplyDto.java @@ -0,0 +1,24 @@ +package com.yxt.anrui.riskcenter.api.loancreditappealapply.flowable; + +import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyDto; +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 SubmitLoanCreditApplyDto extends LoanCreditAppealApplyDto { + + @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/loancreditappealpeo/LoanCreditAppealPeoDetailsVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealpeo/LoanCreditAppealPeoDetailsVo.java index 97ec2be237..2f4d0ac2c9 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealpeo/LoanCreditAppealPeoDetailsVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealpeo/LoanCreditAppealPeoDetailsVo.java @@ -49,17 +49,19 @@ import lombok.Data; @ApiModel(value = "信用审核申诉人员表 视图数据详情", description = "信用审核申诉人员表 视图数据详情") public class LoanCreditAppealPeoDetailsVo implements Vo { - private String sid; // sid + private String sid; + @ApiModelProperty("备注") + private String remarks; @ApiModelProperty("创建人接口") - private String createByName; // 创建人接口 + private String createByName; @ApiModelProperty("姓名") - private String name; // 姓名 + private String name; @ApiModelProperty("身份证号码") - private String idCard; // 身份证号码 + private String idCard; @ApiModelProperty("手机号码") - private String phone; // 手机号码 + private String phone; @ApiModelProperty("主表sid") - private String mainSid; // 主表sid + private String mainSid; } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealpeo/LoanCreditAppealPeoDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealpeo/LoanCreditAppealPeoDto.java index f947ff52e2..25671240d7 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealpeo/LoanCreditAppealPeoDto.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealpeo/LoanCreditAppealPeoDto.java @@ -51,6 +51,8 @@ public class LoanCreditAppealPeoDto implements Dto { private String sid; // sid + @ApiModelProperty("备注") + private String remarks; @ApiModelProperty("创建人接口") private String createByName; // 创建人接口 @ApiModelProperty("姓名") diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealapply/LoanCreditAppealApplyMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealapply/LoanCreditAppealApplyMapper.java index 84a7acf9af..e379443a32 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealapply/LoanCreditAppealApplyMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealapply/LoanCreditAppealApplyMapper.java @@ -36,6 +36,7 @@ import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApply; import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyVo; import java.util.List; +import java.util.Map; /** * Project: anrui-riskcenter(信用审核申诉)
@@ -64,4 +65,6 @@ public interface LoanCreditAppealApplyMapper extends BaseMapper selectListVo(); int selectBySid(String join); + + int updateFlowFiled(Map map); } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealapply/LoanCreditAppealApplyMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealapply/LoanCreditAppealApplyMapper.xml index 584ed2f6e5..c3196de78c 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealapply/LoanCreditAppealApplyMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealapply/LoanCreditAppealApplyMapper.xml @@ -44,4 +44,19 @@ WHERE nodeState != '待提交' and find_in_set(sid, #{list}) + + + UPDATE loan_credit_appeal_apply + SET nodeState=#{nodeState}, nodeSid=#{taskDefKey} + + , procDefId=#{procDefId} + + + , procInstSid=#{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/loancreditappealapply/LoanCreditAppealApplyRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealapply/LoanCreditAppealApplyRest.java index a31c701dcc..2398ebe178 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealapply/LoanCreditAppealApplyRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealapply/LoanCreditAppealApplyRest.java @@ -25,11 +25,16 @@ *********************************************************/ package com.yxt.anrui.riskcenter.biz.loancreditappealapply; +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.loancreditappealapply.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.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -89,8 +94,49 @@ public class LoanCreditAppealApplyRest implements LoanCreditAppealApplyFeign { @ApiOperation("根据SID获取一条记录") @GetMapping("/fetchDetailsBySid/{sid}") public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid){ - ResultBean rb = ResultBean.fireFail(); - LoanCreditAppealApplyDetailsVo vo = loanCreditAppealApplyService.fetchDetailsVoBySid(sid); - return rb.success().setData(vo); + return loanCreditAppealApplyService.fetchDetailsVoBySid(sid); + } + + @Override + public ResultBean init(String sid) { + return loanCreditAppealApplyService.init(sid); + } + + @Override + public ResultBean submitLoanCreditApply(SubmitLoanCreditApplyDto dto) { + return loanCreditAppealApplyService.submitLoanCreditApply(dto); + } + + @Override + public ResultBean complete(LoanCreditApplyCompleteDto query) { + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + bv.setModelId(ProcDefEnum.LOANCREDITAPPEALAPPLY.getProDefId()); + return loanCreditAppealApplyService.complete(bv); + } + + @Override + public ResultBean> getPreviousNodesForReject(LoanCreditApplyNodeQuery query) { + return loanCreditAppealApplyService.getPreviousNodesForReject(query); + } + + @Override + public ResultBean> getNextNodesForSubmit(LoanCreditApplyNodeQuery query) { + return loanCreditAppealApplyService.getNextNodesForSubmit(query); + } + + @Override + public ResultBean reject(LoanCreditApplyTaskQuery query) { + return loanCreditAppealApplyService.reject(query); + } + + @Override + public ResultBean revokeProcess(LoanCreditApplyTaskQuery query) { + return loanCreditAppealApplyService.revokeProcess(query); + } + + @Override + public ResultBean breakProcess(LoanCreditApplyTaskQuery query) { + return loanCreditAppealApplyService.breakProcess(query); } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealapply/LoanCreditAppealApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealapply/LoanCreditAppealApplyService.java index 4eb4ad646e..d0677f6ee1 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealapply/LoanCreditAppealApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealapply/LoanCreditAppealApplyService.java @@ -26,16 +26,41 @@ package com.yxt.anrui.riskcenter.biz.loancreditappealapply; import cn.hutool.core.bean.BeanUtil; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.anrui.base.api.basetrailer.BaseTrailerDetailsVo; import com.yxt.anrui.base.api.commonappendix.CommonAppendixDto; import com.yxt.anrui.base.api.commonappendix.CommonAppendixFeign; +import com.yxt.anrui.base.api.commonappendix.CommonAppendixVo; +import com.yxt.anrui.buscenter.api.busarrearscarryvehicleapply.BusArrearsCarryVehicleApplyVo; +import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; +import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice; +import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo; +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.flowtask.FlowTaskFeign; +import com.yxt.anrui.flowable.api.utils.ProcDefEnum; +import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg; 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.loancreditappealapply.flowable.LoanCreditApplyNodeQuery; +import com.yxt.anrui.riskcenter.api.loancreditappealapply.flowable.LoanCreditApplyNodeVo; +import com.yxt.anrui.riskcenter.api.loancreditappealapply.flowable.LoanCreditApplyTaskQuery; +import com.yxt.anrui.riskcenter.api.loancreditappealapply.flowable.SubmitLoanCreditApplyDto; +import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoDetailsVo; import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoDto; +import com.yxt.anrui.riskcenter.api.loanpreloancreditapply.LoanPreloanCreditApplyDetailsVo; import com.yxt.anrui.riskcenter.api.loanpreloancreditapply.LoanPreloanCreditApplyVo; import com.yxt.anrui.riskcenter.biz.loancreditappealpeo.LoanCreditAppealPeoService; +import com.yxt.anrui.riskcenter.biz.loanpreloancreditapply.LoanPreloanCreditApplyService; 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; @@ -52,7 +77,9 @@ import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyF import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.List; +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; /** * Project: anrui-riskcenter(信用审核申诉)
@@ -70,174 +97,380 @@ import java.util.List; @Service public class LoanCreditAppealApplyService extends MybatisBaseService { - @Autowired - private SysUserFeign sysUserFeign; - @Autowired - private LoanCreditAppealPeoService loanCreditAppealPeoService; - @Autowired - private CommonAppendixFeign commonAppendixFeign; - @Autowired - private FileUploadComponent fileUploadComponent; - - public PagerVo listPageVo(PagerQuery pq) { - LoanCreditAppealApplyQuery query = pq.getParams(); - QueryWrapper qw = new QueryWrapper<>(); - if (StringUtils.isNotBlank(query.getMenuUrl()) || StringUtils.isNotBlank(query.getMenuSid())) { - //======================= - PrivilegeQuery privilegeQuery = new PrivilegeQuery(); - privilegeQuery.setOrgPath(query.getOrgSidPath()); - privilegeQuery.setMenuUrl(query.getMenuUrl()); - privilegeQuery.setMenuSid(query.getMenuSid()); - privilegeQuery.setUserSid(query.getUserSid()); - ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); - if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { - //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) - String orgSidPath = query.getOrgSidPath(); - 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("lc.orgSidPath", orgSidPath); - } else if ("2".equals(orgLevelKey)) { - orgSidPath = orgSidPath.substring(0, i2); - qw.like("lc.orgSidPath", orgSidPath); - } else if ("3".equals(orgLevelKey)) { - orgSidPath = orgSidPath.substring(0, i3); - qw.like("lc.orgSidPath", orgSidPath); - } else if ("4".equals(orgLevelKey)) { - orgSidPath = orgSidPath.substring(0, i4); - qw.like("lc.orgSidPath", orgSidPath); - } else if ("5".equals(orgLevelKey)) { - qw.eq("lc.createBySid", query.getUserSid()); - } else { - PagerVo p = new PagerVo<>(); - return p; - } - } else { - PagerVo p = new PagerVo<>(); - return p; - } - } - if (StringUtils.isNotBlank(query.getApplyDeptName())) { - qw.like("lc.applyDeptName", query.getApplyDeptName()); - } - if (StringUtils.isNotBlank(query.getCreateByName())) { - qw.like("lc.createByName", query.getCreateByName()); - } - if (StringUtils.isNotBlank(query.getModelName())) { - qw.like("lp.modelName", query.getModelName()); - } - if (StringUtils.isNotBlank(query.getCustTypeValue())) { - qw.like("lp.custTypeValue", query.getCustTypeValue()); - } - if (StringUtils.isNotBlank(query.getKhqyName())) { - qw.and(wrapper -> wrapper.like("lp.custName", query.getKhqyName()).or().like("lp.qyName", query.getKhqyName())); - } - if (StringUtils.isNotBlank(query.getIdCard())) { - qw.like("lp.idCard", query.getIdCard()); - } - if (StringUtils.isNotBlank(query.getPhone())) { - qw.like("lp.phone", query.getPhone()); - } - if (StringUtils.isNotBlank(query.getGsfkjg())) { - qw.like("lp.gsfkjg", query.getGsfkjg()); - } - if (StringUtils.isNotBlank(query.getZffkjg())) { - qw.like("lp.zffkjg", query.getZffkjg()); - } - if (StringUtils.isNotBlank(query.getSsjg())) { - qw.like("lp.ssjg", query.getSsjg()); - } - if (StringUtils.isNotBlank(query.getName())) { - } - IPage page = PagerUtil.queryToPage(pq); - IPage pagging = baseMapper.selectPageVo(page, qw); - PagerVo p = PagerUtil.pageToVo(pagging, null); - return p; - } - - public ResultBean saveOrUpdateDto(LoanCreditAppealApplyDto dto){ - ResultBean rb = ResultBean.fireFail(); + @Autowired + private SysUserFeign sysUserFeign; + @Autowired + private LoanCreditAppealPeoService loanCreditAppealPeoService; + @Autowired + private CommonAppendixFeign commonAppendixFeign; + @Autowired + private FileUploadComponent fileUploadComponent; + @Autowired + private LoanPreloanCreditApplyService loanPreloanCreditApplyService; + @Autowired + private FlowableFeign flowableFeign; + @Autowired + private MessageFeign messageFeign; + @Autowired + private FlowTaskFeign flowTaskFeign; + + public PagerVo listPageVo(PagerQuery pq) { + LoanCreditAppealApplyQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (StringUtils.isNotBlank(query.getMenuUrl()) || StringUtils.isNotBlank(query.getMenuSid())) { + //======================= + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(query.getOrgSidPath()); + privilegeQuery.setMenuUrl(query.getMenuUrl()); + privilegeQuery.setMenuSid(query.getMenuSid()); + privilegeQuery.setUserSid(query.getUserSid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = query.getOrgSidPath(); + 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("lc.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("lc.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("lc.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("lc.orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("lc.createBySid", query.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } + if (StringUtils.isNotBlank(query.getUseOrgName())) { + qw.like("lc.useOrgName", query.getUseOrgName()); + } + if (StringUtils.isNotBlank(query.getApplyDeptName())) { + qw.like("lc.applyDeptName", query.getApplyDeptName()); + } + if (StringUtils.isNotBlank(query.getCreateByName())) { + qw.like("lc.createByName", query.getCreateByName()); + } + if (StringUtils.isNotBlank(query.getModelName())) { + qw.like("lp.modelName", query.getModelName()); + } + if (StringUtils.isNotBlank(query.getCustTypeValue())) { + qw.like("lp.custTypeValue", query.getCustTypeValue()); + } + if (StringUtils.isNotBlank(query.getKhqyName())) { + qw.and(wrapper -> wrapper.like("lp.custName", query.getKhqyName()).or().like("lp.qyName", query.getKhqyName())); + } + if (StringUtils.isNotBlank(query.getIdCard())) { + qw.like("lp.idCard", query.getIdCard()); + } + if (StringUtils.isNotBlank(query.getPhone())) { + qw.like("lp.phone", query.getPhone()); + } + if (StringUtils.isNotBlank(query.getGsfkjg())) { + qw.like("lp.gsfkjg", query.getGsfkjg()); + } + if (StringUtils.isNotBlank(query.getZffkjg())) { + qw.like("lp.zffkjg", query.getZffkjg()); + } + if (StringUtils.isNotBlank(query.getSsjg())) { + qw.like("lp.ssjg", query.getSsjg()); + } + if (StringUtils.isNotBlank(query.getName())) { + } + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPageVo(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public ResultBean saveOrUpdateDto(LoanCreditAppealApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + String dtoSid = dto.getSid(); + List loanCreditAppealPeos = dto.getLoanCreditAppealPeos(); + List ssImages = dto.getSsImages(); + if (StringUtils.isBlank(dtoSid)) { + String sid = this.insertByDto(dto); + for (LoanCreditAppealPeoDto loanCreditAppealPeo : loanCreditAppealPeos) { + loanCreditAppealPeo.setMainSid(sid); + loanCreditAppealPeoService.insertByDto(loanCreditAppealPeo); + } + for (String ssImage : ssImages) { + CommonAppendixDto commonAppendixDto = new CommonAppendixDto(); + if (ssImage.indexOf(fileUploadComponent.getUrlPrefix()) > -1) { + ssImage = ssImage.replace(fileUploadComponent.getUrlPrefix(), ""); + } + commonAppendixDto.setLinkSid(sid); + commonAppendixDto.setFilePath(ssImage); + commonAppendixFeign.save(commonAppendixDto); + } + return rb.success().setData(sid); + } + this.updateByDto(dto); + loanCreditAppealPeoService.delByMainSid(dtoSid); + for (LoanCreditAppealPeoDto loanCreditAppealPeo : loanCreditAppealPeos) { + loanCreditAppealPeo.setMainSid(dtoSid); + loanCreditAppealPeoService.insertByDto(loanCreditAppealPeo); + } + commonAppendixFeign.deleteFiles(dtoSid); + for (String ssImage : ssImages) { + CommonAppendixDto commonAppendixDto = new CommonAppendixDto(); + if (ssImage.indexOf(fileUploadComponent.getUrlPrefix()) > -1) { + ssImage = ssImage.replace(fileUploadComponent.getUrlPrefix(), ""); + } + commonAppendixDto.setLinkSid(dtoSid); + commonAppendixDto.setFilePath(ssImage); + commonAppendixFeign.save(commonAppendixDto); + } + return rb.success().setData(dtoSid); + } + + public String insertByDto(LoanCreditAppealApplyDto dto) { + LoanCreditAppealApply entity = new LoanCreditAppealApply(); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + entity.setNodeState("待提交"); + baseMapper.insert(entity); + return entity.getSid(); + } + + public void updateByDto(LoanCreditAppealApplyDto dto) { String dtoSid = dto.getSid(); - List loanCreditAppealPeos = dto.getLoanCreditAppealPeos(); - List ssImages = dto.getSsImages(); - if (StringUtils.isBlank(dtoSid)) { - String sid = this.insertByDto(dto); - for (LoanCreditAppealPeoDto loanCreditAppealPeo : loanCreditAppealPeos) { - loanCreditAppealPeo.setMainSid(sid); - loanCreditAppealPeoService.insertByDto(loanCreditAppealPeo); - } - for (String ssImage : ssImages) { - CommonAppendixDto commonAppendixDto = new CommonAppendixDto(); - if (ssImage.indexOf(fileUploadComponent.getUrlPrefix()) > -1) { - ssImage = ssImage.replace(fileUploadComponent.getUrlPrefix(), ""); - } - commonAppendixDto.setLinkSid(sid); - commonAppendixDto.setFilePath(ssImage); - commonAppendixFeign.save(commonAppendixDto); - } - return rb.success(); - } - this.updateByDto(dto); - loanCreditAppealPeoService.delByMainSid(dtoSid); - for (LoanCreditAppealPeoDto loanCreditAppealPeo : loanCreditAppealPeos) { - loanCreditAppealPeo.setMainSid(dtoSid); - loanCreditAppealPeoService.insertByDto(loanCreditAppealPeo); - } - commonAppendixFeign.deleteFiles(dtoSid); - for (String ssImage : ssImages) { - CommonAppendixDto commonAppendixDto = new CommonAppendixDto(); - if (ssImage.indexOf(fileUploadComponent.getUrlPrefix()) > -1) { - ssImage = ssImage.replace(fileUploadComponent.getUrlPrefix(), ""); - } - commonAppendixDto.setLinkSid(dtoSid); - commonAppendixDto.setFilePath(ssImage); - commonAppendixFeign.save(commonAppendixDto); - } - return rb.success(); - } - - public String insertByDto(LoanCreditAppealApplyDto dto){ - LoanCreditAppealApply entity = new LoanCreditAppealApply(); - BeanUtil.copyProperties(dto, entity, "id", "sid"); - entity.setNodeState("待提交"); - baseMapper.insert(entity); - return entity.getSid(); - } - - public void updateByDto(LoanCreditAppealApplyDto dto){ - String dtoSid = dto.getSid(); if (StringUtils.isBlank(dtoSid)) { return; - } - LoanCreditAppealApply entity = fetchBySid(dtoSid); - BeanUtil.copyProperties(dto, entity, "id", "sid"); - baseMapper.updateById(entity); - } - - public LoanCreditAppealApplyDetailsVo fetchDetailsVoBySid(String sid){ - LoanCreditAppealApply entity = fetchBySid(sid); - LoanCreditAppealApplyDetailsVo vo = new LoanCreditAppealApplyDetailsVo(); - BeanUtil.copyProperties(entity, vo); - return vo; - } - - 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); - for (String sid : sids) { - commonAppendixFeign.deleteFiles(sid); - loanCreditAppealPeoService.delByMainSid(sid); - } - return rb.success().setMsg("删除成功"); - } + } + LoanCreditAppealApply entity = fetchBySid(dtoSid); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + baseMapper.updateById(entity); + } + + public ResultBean fetchDetailsVoBySid(String sid) { + ResultBean rb = ResultBean.fireFail(); + LoanCreditAppealApply entity = fetchBySid(sid); + LoanCreditAppealApplyDetailsVo vo = new LoanCreditAppealApplyDetailsVo(); + BeanUtil.copyProperties(entity, vo); + String creditApplySid = entity.getCreditApplySid(); + LoanPreloanCreditApplyDetailsVo loanPreloanCreditApplyDetailsVo = loanPreloanCreditApplyService.fetchDetailsVoBySid(creditApplySid); + vo.setLoanPreloanCreditApplyDetailsVo(loanPreloanCreditApplyDetailsVo); + List loanCreditAppealPeoDetailsVos = loanCreditAppealPeoService.fetchByMainSid(sid); + vo.setLoanCreditAppealPeos(loanCreditAppealPeoDetailsVos); + List data = commonAppendixFeign.selByLinkSid(sid).getData(); + List ssImages = new ArrayList<>(); + for (CommonAppendixVo datum : data) { + ssImages.add(datum.getFilePath()); + } + vo.setSsImages(ssImages); + return rb.success().setData(vo); + } + + + public ResultBean init(String sid) { + ResultBean rb = ResultBean.fireFail(); + LoanCreditAppealApplyDetailsVo vo = new LoanCreditAppealApplyDetailsVo(); + LoanPreloanCreditApplyDetailsVo loanPreloanCreditApplyDetailsVo = loanPreloanCreditApplyService.fetchDetailsVoBySid(sid); + vo.setLoanPreloanCreditApplyDetailsVo(loanPreloanCreditApplyDetailsVo); + return rb.success().setData(vo); + } + + 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); + for (String sid : sids) { + commonAppendixFeign.deleteFiles(sid); + loanCreditAppealPeoService.delByMainSid(sid); + } + return rb.success().setMsg("删除成功"); + } + + public ResultBean submitLoanCreditApply(SubmitLoanCreditApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + LoanCreditAppealApply loanCreditAppealApply = fetchBySid(dto.getSid()); + int r = submitBusinessData(dto, loanCreditAppealApply); + if (r == 3) { + return rb.setMsg("该申请不存在"); + } + if (r == 0) { + return rb.setMsg("操作失败!提交的数据不一致"); + } + //新增修改保存 + ResultBean resultBean = saveOrUpdateDto(dto); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + String businessSid = resultBean.getData(); + //创建BusinessVariables实体对象 + BusinessVariables bv = new BusinessVariables(); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + //用户的部门全路径sid + bv.setOrgSidPath(dto.getOrgSidPath()); + //业务sid + bv.setBusinessSid(businessSid); + //用户sid + bv.setUserSid(dto.getCreateBySid()); + //若app移动端有此功能,则传递appMap参数 + Map appMap = new HashMap<>(); + //需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。 + appMap.put("sid", businessSid); + variables.put("app", appMap); + //流程定义id + bv.setModelId(ProcDefEnum.LOANCREDITAPPEALAPPLY.getProDefId()); + bv.setFormVariables(variables); + if (r == 1) { + ResultBean voResultBean = flowableFeign.startProcess(bv); + UpdateFlowFieldVo ufVo = voResultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(ufVo)); + //极光推送 + loanCreditAppealApply = 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(loanCreditAppealApply.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(loanCreditAppealApply.getTaskId()); + bv.setTaskDefKey(loanCreditAppealApply.getNodeSid()); + bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交"); + bv.setInstanceId(dto.getInstanceId()); + return complete(bv); + } + return rb; + } + + private int updateFlowFiled(Map map) { + return baseMapper.updateFlowFiled(map); + } + + private synchronized int submitBusinessData(SubmitLoanCreditApplyDto dto, LoanCreditAppealApply loanCreditAppealApply) { + int r = 0; + if (StringUtils.isBlank(dto.getSid())) { + r = 1; + } else { + if (loanCreditAppealApply != null) { + String businessTaskId = loanCreditAppealApply.getTaskId(); + if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) { + //新提交 + r = 1; + } else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) { + //二次提交//只有数据一致的时候才能进行下一步 + r = 2; + } + } else { + r = 3; + } + + } + return r; + } + + public ResultBean complete(BusinessVariables bv) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = bv.getBusinessSid(); + LoanCreditAppealApply loanCreditAppealApply = fetchBySid(businessSid); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + FlowProcessMapQuery flowProcessMapQuery = new FlowProcessMapQuery(); + if (StringUtils.isBlank(loanCreditAppealApply.getProcDefId())){ + flowProcessMapQuery.setProDefKey(bv.getModelId()); + }else { + flowProcessMapQuery.setProDefKey(loanCreditAppealApply.getProcDefId()); + } + flowProcessMapQuery.setVariables(variables); + variables = flowableFeign.getMap(flowProcessMapQuery).getData(); + //======================================= + bv.setFormVariables(variables); + bv.setOrgSidPath(loanCreditAppealApply.getOrgSidPath()); + if (bv.getTaskId().equals(loanCreditAppealApply.getTaskId())) { + ResultBean resultBean = flowableFeign.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 { + //极光推送 + loanCreditAppealApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + ufVo.setProcDefId(loanCreditAppealApply.getProcDefId()); + ufVo.setProcInsId(loanCreditAppealApply.getProcInstSid()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("信用审核申诉"); + messageFlowableQuery.setMsgContent(loanCreditAppealApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("信用审核申诉"); + messageFeign.pushMessage(messageFlowableQuery); + } + return rb.success().setData(resultBean.getData()); + } else { + return rb.setMsg("操作失败!提交的数据不一致"); + } + } + + public ResultBean> getPreviousNodesForReject(LoanCreditApplyNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanCreditApplyNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean> getNextNodesForSubmit(LoanCreditApplyNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanCreditApplyNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean reject(LoanCreditApplyTaskQuery query) { + return null; + } + + public ResultBean revokeProcess(LoanCreditApplyTaskQuery query) { + return null; + } + + public ResultBean breakProcess(LoanCreditApplyTaskQuery query) { + return null; + } + } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealpeo/LoanCreditAppealPeoMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealpeo/LoanCreditAppealPeoMapper.java index 4852def16a..19a79dc6d7 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealpeo/LoanCreditAppealPeoMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealpeo/LoanCreditAppealPeoMapper.java @@ -29,6 +29,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoDetailsVo; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -66,4 +67,7 @@ public interface LoanCreditAppealPeoMapper extends BaseMapper fetchByMainSid(String sid); } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealpeo/LoanCreditAppealPeoService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealpeo/LoanCreditAppealPeoService.java index 60d9c19f62..3cfc4bb413 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealpeo/LoanCreditAppealPeoService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealpeo/LoanCreditAppealPeoService.java @@ -111,4 +111,8 @@ public class LoanCreditAppealPeoService extends MybatisBaseService fetchByMainSid(String sid) { + return baseMapper.fetchByMainSid(sid); + } } \ No newline at end of file diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/creditreview/CreditReviewFeign.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/creditreview/CreditReviewFeign.java index a4f8a93c2a..8a54c3ef58 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/creditreview/CreditReviewFeign.java +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/creditreview/CreditReviewFeign.java @@ -21,7 +21,7 @@ import java.util.List; * @Date * @Description */ -@Api(tags = "贷前信用审核") +@Api(tags = "贷前信用审核/信用申诉") @FeignClient( contextId = "terminal-CreditReview", name = "anrui-terminal",