Browse Source

移动端放款差额确认

master
dimengzhe 2 years ago
parent
commit
9831fb7c39
  1. 33
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffDetailsssApp.java
  2. 3
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffDto.java
  3. 16
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeign.java
  4. 28
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffInitDetails.java
  5. 50
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/AppRecords.java
  6. 11
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailsDto.java
  7. 1
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssDto.java
  8. 60
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssVo.java
  9. 20
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffRest.java
  10. 98
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java
  11. 7
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.java
  12. 28
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.xml
  13. 11
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsService.java
  14. 51
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/AppRecordsVo.java
  15. 56
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/LoanDiffsFeign.java
  16. 12
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/LoanDiffsFeignFallback.java
  17. 32
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/LoanDiffsVo.java
  18. 37
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/flowable/LoanDiffApplyDto.java
  19. 23
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/flowable/LoanDiffApplyQuery.java
  20. 45
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/flowable/LoanDiffTaskQuery.java
  21. 54
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsRest.java
  22. 118
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsService.java

33
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffDetailsssApp.java

@ -0,0 +1,33 @@
package com.yxt.anrui.riskcenter.api.loandiff;
import com.yxt.anrui.riskcenter.api.loandiffdetails.AppRecords;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Data
public class LoanDiffDetailsssApp {
private String sid;
@ApiModelProperty("申请部门-申请人")
private String publishInfo;
@ApiModelProperty("申请时间")
private String time;
@ApiModelProperty("备注")
private String remarks;
private List<String> files = new ArrayList<>();
private String taskId;
private String procInsId;
private List<AppRecords> records = new ArrayList<>();
}

3
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffDto.java

@ -15,6 +15,7 @@ import java.util.List;
public class LoanDiffDto implements Dto {
private static final long serialVersionUID = 3046052875256156498L;
private String sid;
private String userSid;
private List<LoanDiffDetailsDto> loanDiffDetails;
private List<String> filesList;
}

16
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeign.java

@ -8,9 +8,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
@ -35,6 +33,14 @@ public interface LoanDiffFeign {
@PostMapping("/listPage")
public ResultBean<PagerVo<LoanDiffVo>> listPage(@RequestBody PagerQuery<LoanDiffQuery> pq);
@ApiOperation("保存")
@PostMapping("/update")
public ResultBean update(@RequestBody LoanDiffDto dto);
@ApiOperation("详情")
@GetMapping("/details")
ResultBean<LoanDiffInitDetails> details(@RequestParam("sid")String sid);
@ApiOperation("提交")
@PostMapping("/submitDiffApply")
public ResultBean submitDiffApply(@Valid @RequestBody SubmitDiffDto dto);
@ -63,4 +69,8 @@ public interface LoanDiffFeign {
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@Valid @RequestBody DiffApplyTaskQuery query);
@ApiOperation(value = "app详情")
@PostMapping(value = "/appDetails/{sid}")
ResultBean<LoanDiffDetailsssApp> appDetails(@PathVariable("sid")String sid);
}

28
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffInitDetails.java

@ -0,0 +1,28 @@
package com.yxt.anrui.riskcenter.api.loandiff;
import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetailssVo;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Data
public class LoanDiffInitDetails {
private String sid;
private String createDept;
private String createByName;
private String createDate;
private String remarks;
private List<String> files = new ArrayList<>();
private List<LoanDiffDetailssVo> loanDiffDetails = new ArrayList<>();
}

50
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/AppRecords.java

@ -0,0 +1,50 @@
package com.yxt.anrui.riskcenter.api.loandiffdetails;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Data
public class AppRecords {
@ApiModelProperty("车架号")
private String vin;
@ApiModelProperty("资方")
private String zf;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("应放")
private String fk1;
@ApiModelProperty("实放")
private String fk2;
@ApiModelProperty("主产品贴息:预计")
private String mainTx1;
@ApiModelProperty("主产品信息:实际")
private String mainTx2;
@ApiModelProperty("保证金预计")
private String dkbzj1;
@ApiModelProperty("保证金实际")
private String dkbzj2;
private String otherTx1;
private String otherTx2;
private String diffOtherTx;
@ApiModelProperty("意外险:预计")
private String ywx1;
@ApiModelProperty("意外险:实扣")
private String ywx2;
@ApiModelProperty("放款金额:差额")
private String diffFk;
@ApiModelProperty("意外险:差额")
private String diffYwx;
@ApiModelProperty("主产品厂家贴息:差额")
private String diffMainTx;
@ApiModelProperty("贷款保证金:差额")
private String diffDkbzj;
}

11
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailsDto.java

@ -11,15 +11,20 @@ import lombok.Data;
@Data
public class LoanDiffDetailsDto {
private String sid;
private String busVinSid;
@ApiModelProperty("实放")
private String realityLoan;
@ApiModelProperty("主产品厂家贴息:实际")
private String realityDiscount;
@ApiModelProperty("主产品厂家贴息:差额")
private String diffDiscount;
@ApiModelProperty("其他融厂家贴息:实际")
private String realityOtherDiscount;
@ApiModelProperty("其他融厂家贴息:差额")
private String diffOtherDiscount;
@ApiModelProperty("固定贷款保证金:实际")
private String realityLoanMargin;
@ApiModelProperty("固定贷款保证金:差额")
private String diffLoanMargin;
@ApiModelProperty("实扣意外险")
private String realityPremium;
@ApiModelProperty("意外险:差额")
private String diffPremium;
}

1
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssDto.java

@ -14,6 +14,7 @@ import java.math.BigDecimal;
@Data
public class LoanDiffDetailssDto implements Dto {
private static final long serialVersionUID = -2530442143507437830L;
@ApiModelProperty("销售订单车辆sid")
private String busVinSid;
@ApiModelProperty("车辆sid")

60
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssVo.java

@ -0,0 +1,60 @@
package com.yxt.anrui.riskcenter.api.loandiffdetails;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Data
public class LoanDiffDetailssVo implements Vo {
private static final long serialVersionUID = 8471596886220398279L;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("贷款人")
private String borrowName;
@ApiModelProperty("放款金额:应放")
private BigDecimal makeLoan;
@ApiModelProperty("放款金额:实放")
private BigDecimal realityLoan;
private BigDecimal diffLoan;
@ApiModelProperty("主产品厂家贴息:预计")
private BigDecimal makeDiscount;
@ApiModelProperty("主产品厂家贴息:实际")
private BigDecimal realityDiscount;
private BigDecimal diffDiscount;
@ApiModelProperty("其他融厂家贴息:预计")
private BigDecimal makeOtherDiscount;
@ApiModelProperty("其他融厂家贴息:实际")
private BigDecimal realityOtherDiscount;
private BigDecimal diffOtherDiscount;
@ApiModelProperty("固定贷款保证金:预计")
private BigDecimal makeLoanMargin;
@ApiModelProperty("固定贷款保证金:实际")
private BigDecimal realityLoanMargin;
private BigDecimal diffLoanMargin;
@ApiModelProperty("意外险:已收")
private BigDecimal receivedPremium;
@ApiModelProperty("意外险:实扣")
private BigDecimal realityPremium;
private BigDecimal diffPremium;
}

20
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffRest.java

@ -2,10 +2,7 @@ package com.yxt.anrui.riskcenter.biz.loandiff;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffFeign;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffQuery;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffVo;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffsDto;
import com.yxt.anrui.riskcenter.api.loandiff.*;
import com.yxt.anrui.riskcenter.api.loandiff.flowable.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
@ -41,6 +38,16 @@ public class LoanDiffRest implements LoanDiffFeign {
return rb.success().setData(pv);
}
@Override
public ResultBean update(LoanDiffDto dto) {
return loanDiffService.updateDiff(dto);
}
@Override
public ResultBean<LoanDiffInitDetails> details(String sid) {
return loanDiffService.details(sid);
}
@Override
public ResultBean submitDiffApply(SubmitDiffDto dto) {
return loanDiffService.submitDiffApply(dto);
@ -78,4 +85,9 @@ public class LoanDiffRest implements LoanDiffFeign {
public ResultBean breakProcess(DiffApplyTaskQuery query) {
return loanDiffService.breakProcess(query);
}
@Override
public ResultBean<LoanDiffDetailsssApp> appDetails(String sid) {
return loanDiffService.appDetails(sid);
}
}

98
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java

@ -1,6 +1,7 @@
package com.yxt.anrui.riskcenter.biz.loandiff;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -13,13 +14,9 @@ import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiff;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffQuery;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffVo;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffsDto;
import com.yxt.anrui.riskcenter.api.loandiff.*;
import com.yxt.anrui.riskcenter.api.loandiff.flowable.*;
import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetails;
import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetailssDto;
import com.yxt.anrui.riskcenter.api.loandiffdetails.*;
import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplate;
import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplateQuery;
import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplateVo;
@ -27,6 +24,7 @@ import com.yxt.anrui.riskcenter.api.loantemplate.flowable.SubmitTemplateDto;
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyNodeVo;
import com.yxt.anrui.riskcenter.biz.loandiffdetails.LoanDiffDetailsService;
import com.yxt.anrui.riskcenter.biz.loantemplate.LoanTemplateMapper;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
@ -64,6 +62,8 @@ public class LoanDiffService extends MybatisBaseService<LoanDiffMapper, LoanDiff
private MessageFeign messageFeign;
@Autowired
private LoanDiffDetailsService loanDiffDetailsService;
@Autowired
private FileUploadComponent fileUploadComponent;
/**
* 判断提交的流程是否被允许
@ -103,12 +103,12 @@ public class LoanDiffService extends MybatisBaseService<LoanDiffMapper, LoanDiff
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
ResultBean<String> resultBean = updateApply(dto);
ResultBean<String> resultBean = updateDiff(dto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
String businessSid = resultBean.getData();
String businessSid = dto.getSid();
loanDiff = fetchBySid(businessSid);
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
@ -120,7 +120,7 @@ public class LoanDiffService extends MybatisBaseService<LoanDiffMapper, LoanDiff
//用户的部门全路径sid
bv.setOrgSidPath(loanDiff.getOrgSidPath());
bv.setBusinessSid(businessSid);
bv.setUserSid(dto.getUserSid());
bv.setUserSid(loanDiff.getCreateBySid());
bv.setFormVariables(variables);
if (r == 1) {
//ToDo:流程定义id
@ -173,10 +173,6 @@ public class LoanDiffService extends MybatisBaseService<LoanDiffMapper, LoanDiff
return rb;
}
private ResultBean<String> updateApply(SubmitDiffDto dto) {
return null;
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
@ -420,10 +416,86 @@ public class LoanDiffService extends MybatisBaseService<LoanDiffMapper, LoanDiff
LoanDiffDetailssDto loanDiffDetailssDto = loanDiffDetailssDtos.get(i);
LoanDiffDetails loanDiffDetails = new LoanDiffDetails();
BeanUtil.copyProperties(loanDiffDetailssDto, loanDiffDetails);
loanDiffDetails.setMainSid(loanDiff.getSid());
loanDiffDetailsService.insert(loanDiffDetails);
}
}
baseMapper.insert(loanDiff);
return rb.success();
}
public ResultBean updateDiff(LoanDiffDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = dto.getSid();
LoanDiff loanDiff = fetchBySid(sid);
if (loanDiff == null) {
return rb.setMsg("该申请不存在");
}
List<LoanDiffDetailsDto> loanDiffDetailsList = dto.getLoanDiffDetails();
loanDiffDetailsList.removeAll(Collections.singleton(null));
if (!loanDiffDetailsList.isEmpty()) {
for (int i = 0; i < loanDiffDetailsList.size(); i++) {
LoanDiffDetailsDto loanDiffDetailsDto = loanDiffDetailsList.get(i);
LoanDiffDetails loanDiffDetails1 = loanDiffDetailsService.fetchBySid(loanDiffDetailsDto.getSid());
BeanUtil.copyProperties(loanDiffDetailsDto, loanDiffDetails1, "sid");
loanDiffDetailsService.updateById(loanDiffDetails1);
}
}
List<String> filesList = dto.getFilesList();
filesList.removeAll(Collections.singleton(null));
if (!filesList.isEmpty()) {
String fils = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), "");
loanDiff.setFiles(fils);
baseMapper.updateById(loanDiff);
}
return rb.success();
}
public ResultBean<LoanDiffInitDetails> details(String sid) {
ResultBean<LoanDiffInitDetails> rb = ResultBean.fireFail();
LoanDiffInitDetails details = new LoanDiffInitDetails();
LoanDiff loanDiff = fetchBySid(sid);
if (loanDiff == null) {
return rb.setMsg("该申请不存在");
}
details.setCreateDept(loanDiff.getCreateDept());
details.setCreateByName(loanDiff.getCreateByName());
details.setRemarks(loanDiff.getRemarks());
details.setSid(sid);
details.setCreateDate(DateUtil.format(loanDiff.getCreateTime(), "yyyy-MM-dd"));
String files = loanDiff.getFiles();
if (StringUtils.isNotBlank(files)) {
List<String> stringList = Arrays.asList(files.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList());
details.setFiles(stringList);
}
List<LoanDiffDetailssVo> detailssVoList = loanDiffDetailsService.selectByMainSid(sid);
detailssVoList.removeAll(Collections.singleton(null));
if (!detailssVoList.isEmpty()) {
details.setLoanDiffDetails(detailssVoList);
}
return rb.success().setData(details);
}
public ResultBean<LoanDiffDetailsssApp> appDetails(String sid) {
ResultBean<LoanDiffDetailsssApp> rb = ResultBean.fireFail();
LoanDiff loanDiff = fetchBySid(sid);
LoanDiffDetailsssApp loanDiffDetailsssApp = new LoanDiffDetailsssApp();
loanDiffDetailsssApp.setSid(sid);
loanDiffDetailsssApp.setPublishInfo(loanDiff.getCreateDept() + "-" + loanDiff.getCreateByName());
loanDiffDetailsssApp.setRemarks(loanDiff.getRemarks());
loanDiffDetailsssApp.setTime(DateUtil.format(loanDiff.getCreateTime(), "yyyy-MM-dd"));
loanDiffDetailsssApp.setProcInsId(loanDiff.getProcInstId());
loanDiffDetailsssApp.setTaskId(loanDiff.getTaskId());
String files = loanDiff.getFiles();
if (StringUtils.isNotBlank(files)) {
List<String> stringList = Arrays.asList(files.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList());
loanDiffDetailsssApp.setFiles(stringList);
}
List<AppRecords> detailssVoList = loanDiffDetailsService.selectByMainSid2(sid);
detailssVoList.removeAll(Collections.singleton(null));
if (!detailssVoList.isEmpty()) {
loanDiffDetailsssApp.setRecords(detailssVoList);
}
return rb.success().setData(loanDiffDetailsssApp);
}
}

7
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.java

@ -1,9 +1,13 @@
package com.yxt.anrui.riskcenter.biz.loandiffdetails;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.riskcenter.api.loandiffdetails.AppRecords;
import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetails;
import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetailssVo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -11,4 +15,7 @@ import org.apache.ibatis.annotations.Mapper;
**/
@Mapper
public interface LoanDiffDetailsMapper extends BaseMapper<LoanDiffDetails> {
List<LoanDiffDetailssVo> selectByMainSid(String sid);
List<AppRecords> selectByMainSid2(String sid);
}

28
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.xml

@ -1,4 +1,32 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.riskcenter.biz.loandiffdetails.LoanDiffDetailsMapper">
<select id="selectByMainSid" resultType="com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetailssVo">
select *
from anrui_riskcenter.loan_diff_details
where mainSid = #{sid}
</select>
<select id="selectByMainSid2" resultType="com.yxt.anrui.riskcenter.api.loandiffdetails.AppRecords">
select vinNo vin,
bankName zf,
borrowName loanName,
makeLoan fk1,
realityLoan fk2,
diffLoan diffFk,
makeDiscount mainTx1,
realityDiscount mainTx2,
diffDiscount diffMainTx,
makeLoanMargin dkbzj1,
realityLoanMargin dkbzj2,
diffLoanMargin diffDkbzj,
makeOtherDiscount otherTx1,
realityOtherDiscount otherTx2,
diffOtherDiscount diffOtherTx,
receivedPremium ywx1,
realityPremium ywx2,
diffPremium diffYwx
from anrui_riskcenter.loan_diff_details
where mainSid = #{sid}
</select>
</mapper>

11
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsService.java

@ -1,11 +1,15 @@
package com.yxt.anrui.riskcenter.biz.loandiffdetails;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiff;
import com.yxt.anrui.riskcenter.api.loandiffdetails.AppRecords;
import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetails;
import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetailssVo;
import com.yxt.anrui.riskcenter.biz.loandiff.LoanDiffMapper;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -13,4 +17,11 @@ import org.springframework.stereotype.Service;
**/
@Service
public class LoanDiffDetailsService extends MybatisBaseService<LoanDiffDetailsMapper, LoanDiffDetails> {
public List<LoanDiffDetailssVo> selectByMainSid(String sid) {
return baseMapper.selectByMainSid(sid);
}
public List<AppRecords> selectByMainSid2(String sid) {
return baseMapper.selectByMainSid2(sid);
}
}

51
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/AppRecordsVo.java

@ -0,0 +1,51 @@
package com.yxt.anrui.terminal.api.risk.loandiff;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Data
public class AppRecordsVo {
@ApiModelProperty("车架号")
private String vin;
@ApiModelProperty("资方")
private String zf;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("应放")
private String fk1;
@ApiModelProperty("实放")
private String fk2;
@ApiModelProperty("主产品贴息:预计")
private String mainTx1;
@ApiModelProperty("主产品信息:实际")
private String mainTx2;
@ApiModelProperty("保证金预计")
private String dkbzj1;
@ApiModelProperty("保证金实际")
private String dkbzj2;
private String otherTx1;
private String otherTx2;
private String diffOtherTx;
@ApiModelProperty("意外险:预计")
private String ywx1;
@ApiModelProperty("意外险:实扣")
private String ywx2;
@ApiModelProperty("放款金额:差额")
private String diffFk;
@ApiModelProperty("意外险:差额")
private String diffYwx;
@ApiModelProperty("主产品厂家贴息:差额")
private String diffMainTx;
@ApiModelProperty("贷款保证金:差额")
private String diffDkbzj;
}

56
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/LoanDiffsFeign.java

@ -0,0 +1,56 @@
package com.yxt.anrui.terminal.api.risk.loandiff;
import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffApplyDto;
import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffApplyQuery;
import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffTaskQuery;
import com.yxt.anrui.terminal.api.risk.loantemplate.flowable.TemplatTaskQuery;
import com.yxt.anrui.terminal.api.risk.loantemplate.flowable.TemplateApplyDto;
import com.yxt.anrui.terminal.api.risk.loantemplate.flowable.TemplateApplyQuery;
import com.yxt.anrui.terminal.api.risk.solutions.SolutionsFeignFallback;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@FeignClient(
contextId = "terminal-LoanDiffs",
name = "anrui-terminal",
path = "/risk/v1/loandiff",
fallback = LoanDiffsFeignFallback.class)
public interface LoanDiffsFeign {
@ApiOperation("详情")
@PostMapping("/details/{sid}")
@ResponseBody
ResultBean<LoanDiffsVo> details(@PathVariable("sid") String sid);
@ApiOperation("办理")
@PutMapping("/agree")
@ResponseBody
ResultBean agreeLoanDiffApplyInfo(@RequestBody LoanDiffApplyDto dto);
@ApiOperation("驳回")
@PutMapping("/reject")
@ResponseBody
ResultBean rejectLoanDiffApplyInfo(@RequestBody LoanDiffTaskQuery query);
@ApiOperation("撤回")
@PutMapping("/recall")
@ResponseBody
ResultBean recallLoanDiffApplyInfo(@RequestBody LoanDiffTaskQuery query);
@ApiOperation("终止")
@PutMapping("/stop")
@ResponseBody
ResultBean stopLoanDiffApplyInfo(@RequestBody LoanDiffTaskQuery query);
@ApiOperation("获取流程操作标题")
@GetMapping("/getFlowOperateTitle")
@ResponseBody
ResultBean<String> getFlowOperateTitle(@SpringQueryMap LoanDiffApplyQuery query);
}

12
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/LoanDiffsFeignFallback.java

@ -0,0 +1,12 @@
package com.yxt.anrui.terminal.api.risk.loandiff;
import org.springframework.stereotype.Component;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Component
public class LoanDiffsFeignFallback {
}

32
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/LoanDiffsVo.java

@ -0,0 +1,32 @@
package com.yxt.anrui.terminal.api.risk.loandiff;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Data
public class LoanDiffsVo {
private String sid;
@ApiModelProperty("申请部门-申请人")
private String publishInfo;
@ApiModelProperty("申请时间")
private String time;
@ApiModelProperty("备注")
private String remarks;
private List<String> files = new ArrayList<>();
private String taskId;
private String procInsId;
private List<AppRecordsVo> records = new ArrayList<>();
}

37
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/flowable/LoanDiffApplyDto.java

@ -0,0 +1,37 @@
package com.yxt.anrui.terminal.api.risk.loandiff.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Data
public class LoanDiffApplyDto {
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id")
@NotBlank(message = "参数错误:procInsId")
@JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
private String orgPath;
}

23
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/flowable/LoanDiffApplyQuery.java

@ -0,0 +1,23 @@
package com.yxt.anrui.terminal.api.risk.loandiff.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Data
public class LoanDiffApplyQuery {
@ApiModelProperty(value = "节点key")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
@ApiModelProperty(value = "0 上一环节 1下一环节")
@NotNull(message = "参数错误:next")
private Integer next;
}

45
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loandiff/flowable/LoanDiffTaskQuery.java

@ -0,0 +1,45 @@
package com.yxt.anrui.terminal.api.risk.loandiff.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Data
public class LoanDiffTaskQuery {
/**
* 终止驳回撤回
*/
@ApiModelProperty("任务Id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
/**
* 终止驳回撤回
*/
@ApiModelProperty("业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
/**
* 终止驳回
*/
@ApiModelProperty("任务意见")
private String comment;
/**
* 终止撤回驳回
*/
@ApiModelProperty("用户Sid")
private String userSid;
/**
* 终止
*/
@ApiModelProperty("流程实例Id")
@JsonProperty("procInsId")
private String instanceId;
}

54
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsRest.java

@ -0,0 +1,54 @@
package com.yxt.anrui.terminal.biz.risk.loandiff;
import com.yxt.anrui.terminal.api.risk.loandiff.LoanDiffsFeign;
import com.yxt.anrui.terminal.api.risk.loandiff.LoanDiffsVo;
import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffApplyDto;
import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffApplyQuery;
import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffTaskQuery;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Controller
@RequestMapping("/risk/v1/loandiff")
public class LoanDiffsRest implements LoanDiffsFeign {
@Autowired
private LoanDiffsService loanDiffsService;
@Override
public ResultBean<LoanDiffsVo> details(String sid) {
return loanDiffsService.details(sid);
}
@Override
public ResultBean agreeLoanDiffApplyInfo(LoanDiffApplyDto dto) {
return loanDiffsService.agreeLoanDiffApplyInfo(dto);
}
@Override
public ResultBean rejectLoanDiffApplyInfo(LoanDiffTaskQuery query) {
return loanDiffsService.rejectLoanDiffApplyInfo(query);
}
@Override
public ResultBean recallLoanDiffApplyInfo(LoanDiffTaskQuery query) {
return loanDiffsService.recallLoanDiffApplyInfo(query);
}
@Override
public ResultBean stopLoanDiffApplyInfo(LoanDiffTaskQuery query) {
return loanDiffsService.stopLoanDiffApplyInfo(query);
}
@Override
public ResultBean<String> getFlowOperateTitle(LoanDiffApplyQuery query) {
return loanDiffsService.getFlowOperateTitle(query);
}
}

118
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loandiff/LoanDiffsService.java

@ -0,0 +1,118 @@
package com.yxt.anrui.terminal.biz.risk.loandiff;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffDetailsssApp;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffFeign;
import com.yxt.anrui.riskcenter.api.loandiff.flowable.DiffApplyNodeQuery;
import com.yxt.anrui.riskcenter.api.loandiff.flowable.DiffApplyNodeVo;
import com.yxt.anrui.riskcenter.api.loandiff.flowable.DiffApplyTaskQuery;
import com.yxt.anrui.riskcenter.api.loandiff.flowable.DiffCompleteDto;
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyNodeQuery;
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyNodeVo;
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyTaskQuery;
import com.yxt.anrui.terminal.api.risk.loandiff.LoanDiffsVo;
import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffApplyDto;
import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffApplyQuery;
import com.yxt.anrui.terminal.api.risk.loandiff.flowable.LoanDiffTaskQuery;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Service
public class LoanDiffsService {
@Autowired
private LoanDiffFeign loanDiffFeign;
public ResultBean<LoanDiffsVo> details(String sid) {
ResultBean<LoanDiffsVo> rb = ResultBean.fireFail();
ResultBean<LoanDiffDetailsssApp> resultBean = loanDiffFeign.appDetails(sid);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
LoanDiffsVo loanDiffsVo = new LoanDiffsVo();
BeanUtil.copyProperties(resultBean.getData(), loanDiffsVo);
return rb.success().setData(loanDiffsVo);
}
public ResultBean agreeLoanDiffApplyInfo(LoanDiffApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
DiffCompleteDto diffCompleteDto = new DiffCompleteDto();
BeanUtil.copyProperties(dto, diffCompleteDto);
ResultBean resultBean = loanDiffFeign.complete(diffCompleteDto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean rejectLoanDiffApplyInfo(LoanDiffTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
DiffApplyTaskQuery diffApplyTaskQuery = new DiffApplyTaskQuery();
BeanUtil.copyProperties(query, diffApplyTaskQuery);
ResultBean resultBean = loanDiffFeign.taskReject(diffApplyTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean recallLoanDiffApplyInfo(LoanDiffTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
DiffApplyTaskQuery diffApplyTaskQuery = new DiffApplyTaskQuery();
BeanUtil.copyProperties(query, diffApplyTaskQuery);
ResultBean resultBean = loanDiffFeign.revokeProcess(diffApplyTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean stopLoanDiffApplyInfo(LoanDiffTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
DiffApplyTaskQuery diffApplyTaskQuery = new DiffApplyTaskQuery();
BeanUtil.copyProperties(query, diffApplyTaskQuery);
ResultBean resultBean = loanDiffFeign.breakProcess(diffApplyTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean<String> getFlowOperateTitle(LoanDiffApplyQuery query) {
ResultBean<String> rb = ResultBean.fireFail();
//0 上一环节 1下一环节
int next = query.getNext();
DiffApplyNodeQuery getNodeQuery = new DiffApplyNodeQuery();
BeanUtil.copyProperties(query, getNodeQuery);
String data = "";
if (next == 0) {
ResultBean<List<DiffApplyNodeVo>> getPreviousNodesForReject = loanDiffFeign.getPreviousNodesForReject(getNodeQuery);
if (getPreviousNodesForReject.getSuccess()) {
getPreviousNodesForReject.getData().removeAll(Collections.singleton(null));
data = getPreviousNodesForReject.getData().get(0).getName();
} else {
return rb.setMsg(getPreviousNodesForReject.getMsg());
}
} else if (next == 1) {
ResultBean<List<DiffApplyNodeVo>> getNextNodesForSubmit = loanDiffFeign.getNextNodesForSubmit(getNodeQuery);
if (getNextNodesForSubmit.getSuccess()) {
getNextNodesForSubmit.getData().removeAll(Collections.singleton(null));
data = getNextNodesForSubmit.getData().get(0).getName();
} else {
return rb.setMsg(getNextNodesForSubmit.getMsg());
}
} else {
return rb.setMsg("参数错误:next");
}
return rb.success().setData(data);
}
}
Loading…
Cancel
Save