Browse Source

Merge remote-tracking branch 'origin/master'

master
God 2 years ago
parent
commit
0cf00d9927
  1. 13
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/app/vin/VinListVo2.java
  2. 48
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderborrower/BusNoGuaranteeCreditReviewQuery.java
  3. 50
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderborrower/BusNoGuaranteeCreditReviewVo.java
  4. 9
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderborrower/BusSalesOrderBorrowerFeign.java
  5. 10
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderborrower/BusSalesOrderBorrowerFeignFallback.java
  6. 47
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java
  7. 30
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderborrower/BusSalesOrderBorrowerMapper.java
  8. 67
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderborrower/BusSalesOrderBorrowerMapper.xml
  9. 12
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderborrower/BusSalesOrderBorrowerRest.java
  10. 120
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderborrower/BusSalesOrderBorrowerService.java
  11. 1
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.java
  12. 6
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.xml
  13. 4
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleService.java
  14. 2
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow2/FlowableMessageVo.java
  15. 3
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowMapper.xml
  16. 2
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowService.java
  17. 29
      anrui-riskcenter-ui/src/api/homevisitdatareview/homevisitdatareview.js
  18. 16
      anrui-riskcenter-ui/src/router/index.js
  19. 54
      anrui-riskcenter-ui/src/views/financialpolicymanagement/financialpolicymanagementAdd.vue
  20. 6
      anrui-riskcenter-ui/src/views/financialpolicymanagement/financialpolicymanagementInfo.vue
  21. 330
      anrui-riskcenter-ui/src/views/homevisitdatareview/homevisitdatareview.vue
  22. 685
      anrui-riskcenter-ui/src/views/homevisitdatareview/homevisitdatareviewAdd.vue
  23. 327
      anrui-riskcenter-ui/src/views/homevisitdatareview/homevisitdatareviewInfo.vue
  24. 783
      anrui-riskcenter-ui/src/views/homevisitdatareview/homevisitdatareviewReplenish.vue
  25. 344
      anrui-riskcenter-ui/src/views/homevisitdatareview/homevisitdatatobereviewed.vue
  26. 3
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java
  27. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinotherPolicy/LoanFinOtherPolicy.java
  28. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicy/LoanFinPolicyDto.java
  29. 3
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicy/LoanFinPolicyVo.java
  30. 36
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReview.java
  31. 44
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewDetailsVo.java
  32. 46
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewDto.java
  33. 25
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewFallback.java
  34. 41
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewFeign.java
  35. 29
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewQuery.java
  36. 23
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewVo.java
  37. 36
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/AppRepaymentPlanDetailsVo.java
  38. 21
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/AppRepaymentPlanListDetailsVo.java
  39. 23
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/AppRepaymentPlanQuery.java
  40. 32
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/AppRepaymentPlanVo.java
  41. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentSchedule.java
  42. 22
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeign.java
  43. 12
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeignFallback.java
  44. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicy/LoanFinPolicyRest.java
  45. 36
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicy/LoanFinPolicyService.java
  46. 26
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewMapper.java
  47. 5
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewMapper.xml
  48. 38
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewRest.java
  49. 152
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewService.java
  50. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java
  51. 16
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml
  52. 15
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleRest.java
  53. 237
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java
  54. 15
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/vininput/BusVinNoVo2.java
  55. 35
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repaymentplan/RepaymentPlanDetailsVo.java
  56. 37
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repaymentplan/RepaymentPlanFeign.java
  57. 27
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repaymentplan/RepaymentPlanFeignFallback.java
  58. 22
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repaymentplan/RepaymentPlanListDetailsVo.java
  59. 23
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repaymentplan/RepaymentPlanQuery.java
  60. 34
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repaymentplan/RepaymentPlanVo.java
  61. 39
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/repaymentplan/RepaymentPlanRest.java
  62. 57
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/repaymentplan/RepaymentPlanService.java

13
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/app/vin/VinListVo2.java

@ -1,5 +1,6 @@
package com.yxt.anrui.buscenter.api.bussalesorder.app.vin;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -13,8 +14,12 @@ import java.util.List;
@Data
public class VinListVo2 {
@ApiModelProperty("贷款人")
private String borrowName;
private String borrowSid;
private List<VinListVo> vinList;
@ApiModelProperty("是否已出库")
private Boolean state;
private String linkNo;
private String linkSid;
@ApiModelProperty("车架号是0,标题是1,全款时全是0,贷款时,有贷款人的是1,其他分组人也是1")
private int viewType;
@ApiModelProperty("当上面字段为0时,该值为空字符串,为1时,贷款人:xxx,/未选择贷款人")
private String groupName;
}

48
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderborrower/BusNoGuaranteeCreditReviewQuery.java

@ -0,0 +1,48 @@
package com.yxt.anrui.buscenter.api.bussalesorderborrower;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/9/11 9:09
*/
@Data
public class BusNoGuaranteeCreditReviewQuery implements Query {
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("组织全路径")
private String orgPath;
@ApiModelProperty("菜单sid")
private String menuSid;
@ApiModelProperty("菜单url")
private String menuUrl;
@ApiModelProperty("分公司")
private String company;
@ApiModelProperty("销售部门")
private String department;
@ApiModelProperty("销售专员")
private String salesman;
@ApiModelProperty("订单开始日期")
private String startTime;
@ApiModelProperty("订单结束日期")
private String endTime;
@ApiModelProperty("贷款人")
private String borrowerName;
@ApiModelProperty("消贷合同编号")
private String contractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("家访考察结果")
private String homeVisit;
@ApiModelProperty("信审终审结果")
private String creditReview;
@ApiModelProperty("放款审核结果")
private String loanReview;
@ApiModelProperty("是否放款")
private String isLoan;
}

50
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderborrower/BusNoGuaranteeCreditReviewVo.java

@ -0,0 +1,50 @@
package com.yxt.anrui.buscenter.api.bussalesorderborrower;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/9/11 9:09
*/
@Data
public class BusNoGuaranteeCreditReviewVo implements Vo {
@ApiModelProperty("订单日期")
private String orderDate;
@ApiModelProperty("分公司")
private String company;
@ApiModelProperty("销售部门")
private String department;
@ApiModelProperty("销售专员")
private String salesman;
@ApiModelProperty("贷款人")
private String borrowerName;
@ApiModelProperty("消贷合同编号")
private String contractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("手机号码")
private String mobile;
@ApiModelProperty("家访考察结果")
private String homeVisit;
@ApiModelProperty("家访考察日期")
private String homeVisitDate;
@ApiModelProperty("信审终审结果")
private String creditReview;
@ApiModelProperty("信审终审日期")
private String creditReviewDate;
@ApiModelProperty("放款审核结果")
private String loanReview;
@ApiModelProperty("放款审核日期")
private String loanReviewDate;
@ApiModelProperty("是否放款")
private String isLoan;
@ApiModelProperty("放款日期")
private String isLoanDate;
}

9
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderborrower/BusSalesOrderBorrowerFeign.java

@ -91,5 +91,14 @@ public interface BusSalesOrderBorrowerFeign {
@ResponseBody
ResultBean confirmBorrow(@RequestBody OrderBorrowQuery query);
@ApiOperation("公司非担保业务进度维护")
@PostMapping("/noGuaranteeCreditReviewPage")
@ResponseBody
public ResultBean<PagerVo<BusNoGuaranteeCreditReviewVo>> noGuaranteeCreditReviewPage(@RequestBody PagerQuery<BusNoGuaranteeCreditReviewQuery> pq);
@ApiOperation("根据销售订单SID获取一条记录")
@GetMapping("/fetchDetailsByOrderSid/{orderSid}")
@ResponseBody
public ResultBean<BusSalesOrderBorrowerDetailsVo> fetchDetailsByOrderSid(@PathVariable("orderSid") String orderSid);
}

10
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderborrower/BusSalesOrderBorrowerFeignFallback.java

@ -84,4 +84,14 @@ public class BusSalesOrderBorrowerFeignFallback implements BusSalesOrderBorrower
public ResultBean confirmBorrow(OrderBorrowQuery query) {
return null;
}
@Override
public ResultBean<PagerVo<BusNoGuaranteeCreditReviewVo>> noGuaranteeCreditReviewPage(PagerQuery<BusNoGuaranteeCreditReviewQuery> pq) {
return null;
}
@Override
public ResultBean<BusSalesOrderBorrowerDetailsVo> fetchDetailsByOrderSid(String orderSid) {
return null;
}
}

47
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java

@ -7272,6 +7272,15 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
public ResultBean<VinVo2> saleOrderInputVin2(String saleOrderSid) {
ResultBean<VinVo2> rb = ResultBean.fireFail();
BusSalesOrder busSalesOrder = fetchBySid(saleOrderSid);
int type = 0;
if (busSalesOrder != null) {
if ("1".equals(busSalesOrder.getPayTypeKey())) {
type = 1;//全款
} else {
type = 2;//贷款
}
}
VinVo2 vinVo = new VinVo2();
List<BusSalesOrderVehicle> busSalesOrderVehicleList = busSalesOrderVehicleService.selectListByOrdersSid(saleOrderSid);
busSalesOrderVehicleList.removeAll(Collections.singleton(null));
@ -7281,21 +7290,35 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
VinListVo2 vinListVo2 = new VinListVo2();
String borrowSid = borrowSidList.get(j);
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleList.get(j);
String borrowName = busSalesOrderVehicle.getBorrowName();
vinListVo2.setBorrowName(borrowName);
vinListVo2.setBorrowSid(borrowSid);
busSalesOrderVehicleList = busSalesOrderVehicleService.selectListByOrderSid2(saleOrderSid, borrowSid);
if (type == 1) {
vinListVo2.setViewType(0);
} else if (type == 2) {
vinListVo2.setViewType(1);
String borrowName = busSalesOrderVehicle.getBorrowName();
if (StringUtils.isNotBlank(borrowSid)) {
vinListVo2.setGroupName("贷款人:" + borrowName);
} else {
vinListVo2.setGroupName("贷款人:不确定贷款人");
}
}
vinList.add(vinListVo2);
if(StringUtils.isNotBlank(borrowSid)){
busSalesOrderVehicleList = busSalesOrderVehicleService.selectListByOrderSid2(saleOrderSid, borrowSid);
}else{
busSalesOrderVehicleList = busSalesOrderVehicleService.selectListByOrderSid3(saleOrderSid);
}
busSalesOrderVehicleList.removeAll(Collections.singleton(null));
if (!busSalesOrderVehicleList.isEmpty()) {
List<VinListVo> vinList2 = new ArrayList<>();
for (int i = 0; i < busSalesOrderVehicleList.size(); i++) {
vinListVo2 = new VinListVo2();
vinListVo2.setViewType(0);
busSalesOrderVehicle = busSalesOrderVehicleList.get(i);
VinListVo vinListVo = new VinListVo();
if (StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
vinListVo.setLinkNo(busSalesOrderVehicle.getLinkNo());
vinListVo2.setLinkNo(busSalesOrderVehicle.getLinkNo());
}
if (StringUtils.isNotBlank(busSalesOrderVehicle.getLinkSid())) {
vinListVo.setLinkSid(busSalesOrderVehicle.getLinkSid());
vinListVo2.setLinkSid(busSalesOrderVehicle.getLinkSid());
}
if (StringUtils.isNotBlank(busSalesOrderVehicle.getLinkSid())) {
//根据车架号查询是否已出库
@ -7304,18 +7327,16 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
BaseVehicleSelectVo vo = baseVehicleResultBean.getData();
if (vo != null) {
if (VehicleState.StockEnum.OUT_STOCK.getCode().equals(vo.getVehicleState())) {
vinListVo.setState(true);
vinListVo2.setState(true);
} else {
vinListVo.setState(false);
vinListVo2.setState(false);
}
}
}
}
vinList2.add(vinListVo);
vinList.add(vinListVo2);
}
vinListVo2.setVinList(vinList2);
}
vinList.add(vinListVo2);
}
vinVo.setSaleOrderSid(saleOrderSid);
vinVo.setVinList(vinList);

30
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderborrower/BusSalesOrderBorrowerMapper.java

@ -26,9 +26,11 @@
package com.yxt.anrui.buscenter.biz.bussalesorderborrower;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
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 com.yxt.anrui.buscenter.api.bussalesorderborrower.BusNoGuaranteeCreditReviewVo;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
@ -57,23 +59,27 @@ import java.util.List;
@Mapper
public interface BusSalesOrderBorrowerMapper extends BaseMapper<BusSalesOrderBorrower> {
//@Update("update bus_sales_order_borrower set name=#{msg} where id=#{id}")
//IPage<BusSalesOrderBorrowerVo> voPage(IPage<BusSalesOrderBorrower> page, @Param(Constants.WRAPPER) QueryWrapper<BusSalesOrderBorrower> qw);
IPage<BusSalesOrderBorrowerVo> selectPageVo(IPage<BusSalesOrderBorrower> page, @Param(Constants.WRAPPER) Wrapper<BusSalesOrderBorrower> qw);
List<BusSalesOrderBorrowerVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<BusSalesOrderBorrower> qw);
@Select("select * from bus_sales_order_borrower")
List<BusSalesOrderBorrowerVo> selectListVo();
//@Update("update bus_sales_order_borrower set name=#{msg} where id=#{id}")
//IPage<BusSalesOrderBorrowerVo> voPage(IPage<BusSalesOrderBorrower> page, @Param(Constants.WRAPPER) QueryWrapper<BusSalesOrderBorrower> qw);
@Update("update bus_sales_order_borrower set busNo = #{busNo} where sid = #{saleOrderBorrowerSid}")
void updateBusNo(@Param("busNo") String busNo,@Param("saleOrderBorrowerSid") String saleOrderBorrowerSid);
IPage<BusSalesOrderBorrowerVo> selectPageVo(IPage<BusSalesOrderBorrower> page, @Param(Constants.WRAPPER) Wrapper<BusSalesOrderBorrower> qw);
List<BusSalesOrderBorrowerVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<BusSalesOrderBorrower> qw);
@Select("select * from bus_sales_order_borrower")
List<BusSalesOrderBorrowerVo> selectListVo();
@Update("update bus_sales_order_borrower set busNo = #{busNo} where sid = #{saleOrderBorrowerSid}")
void updateBusNo(@Param("busNo") String busNo, @Param("saleOrderBorrowerSid") String saleOrderBorrowerSid);
int selectBySalesOrderSid(String sid);
LoanFinPolicy selectBySid(String sid);
BusSalesOrderBorrower selectByOrderSid(@Param("sid") String sid,@Param("customerSid") String customerSid);
BusSalesOrderBorrower selectByOrderSid(@Param("sid") String sid, @Param("customerSid") String customerSid);
IPage<BusNoGuaranteeCreditReviewVo> noGuaranteeCreditReviewPage(IPage<BusSalesOrderBorrower> page, @Param(Constants.WRAPPER) QueryWrapper<BusSalesOrderBorrower> qw);
@Select("select * from bus_sales_order_borrower where salesOrderSid =#{orderSid}")
BusSalesOrderBorrower fetchDetailsByOrderSid(String orderSid);
}

67
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderborrower/BusSalesOrderBorrowerMapper.xml

@ -1,27 +1,58 @@
<?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.buscenter.biz.bussalesorderborrower.BusSalesOrderBorrowerMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerVo">
SELECT * FROM bus_sales_order_borrower <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerVo">
SELECT * FROM bus_sales_order_borrower <where> ${ew.sqlSegment} </where>
</select>
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerVo">
SELECT * FROM bus_sales_order_borrower
<where>${ew.sqlSegment}</where>
</select>
<select id="selectListAllVo" resultType="com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerVo">
SELECT * FROM bus_sales_order_borrower
<where>${ew.sqlSegment}</where>
</select>
<select id="selectBySalesOrderSid" resultType="int">
select ifnull(sum(vehCount),0) from bus_sales_order_borrower where salesOrderSid = #{sid}
<select id="selectBySalesOrderSid" resultType="int">
select ifnull(sum(vehCount), 0)
from bus_sales_order_borrower
where salesOrderSid = #{sid}
</select>
<select id="selectBySid" resultType="com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy">
select lp.* from anrui_riskcenter.loan_solutions ls
left join anrui_riskcenter.loan_fin_policy lp on lp.sid = ls.policySid
where ls.salesOrderSid = #{sid}
<select id="selectBySid" resultType="com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy">
select lp.*
from anrui_riskcenter.loan_solutions ls
left join anrui_riskcenter.loan_fin_policy lp on lp.sid = ls.policySid
where ls.salesOrderSid = #{sid}
</select>
<select id="selectByOrderSid" resultType="com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrower">
select * from bus_sales_order_borrower where salesOrderSid = #{sid} and customSid = #{customerSid}
</select>
<select id="selectByOrderSid" resultType="com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrower">
select *
from bus_sales_order_borrower
where salesOrderSid = #{sid}
and customSid = #{customerSid}
</select>
<select id="noGuaranteeCreditReviewPage"
resultType="com.yxt.anrui.buscenter.api.bussalesorderborrower.BusNoGuaranteeCreditReviewVo">
SELECT bo.sid AS salesOrderSid,
DATE_FORMAT(bo.createDate, '%Y-%m-%d') AS orderDate,
bo.useOrgName AS company,
bo.orgName AS department,
bo.staffName AS salesman,
bo.contractNo AS contractNo,
bor.borrowerName AS borrowerName,
bor.bankName AS bankName,
bor.mobile AS mobile,
cr.homeVisit AS homeVisit,
cr.homeVisitDate AS homeVisitDate,
cr.creditReview AS creditReview,
cr.creditReviewDate AS creditReviewDate,
cr.loanReview AS loanReview,
cr.loanReviewDate AS loanReviewDate,
cr.isLoan AS isLoan,
cr.isLoanDate AS isLoanDate
FROM bus_sales_order_borrower AS bor
LEFT JOIN bus_sales_order AS bo ON bor.salesOrderSid = bo.sid
LEFT JOIN anrui_riskcenter.loan_noguarantee_credit_review AS cr ON cr.salesOrderSid = bo.sid
</select>
</mapper>

12
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderborrower/BusSalesOrderBorrowerRest.java

@ -107,4 +107,16 @@ public class BusSalesOrderBorrowerRest implements BusSalesOrderBorrowerFeign {
public ResultBean confirmBorrow(OrderBorrowQuery query) {
return busSalesOrderBorrowerService.confirmBorrow(query);
}
@Override
public ResultBean<PagerVo<BusNoGuaranteeCreditReviewVo>> noGuaranteeCreditReviewPage(PagerQuery<BusNoGuaranteeCreditReviewQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<BusNoGuaranteeCreditReviewVo> pv = busSalesOrderBorrowerService.noGuaranteeCreditReviewPage(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean<BusSalesOrderBorrowerDetailsVo> fetchDetailsByOrderSid(String orderSid) {
return busSalesOrderBorrowerService.fetchDetailsByOrderSid(orderSid);
}
}

120
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderborrower/BusSalesOrderBorrowerService.java

@ -34,7 +34,12 @@ import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPriceDto;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.biz.bussalesorderprice.BusSalesOrderPriceService;
import com.yxt.anrui.buscenter.biz.bussalesordervehicle.BusSalesOrderVehicleService;
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy;
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameter;
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterQuery;
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterVo;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
@ -69,7 +74,8 @@ public class BusSalesOrderBorrowerService extends MybatisBaseService<BusSalesOrd
private BusSalesOrderPriceService busSalesOrderPriceService;
@Autowired
private BusSalesOrderVehicleService busSalesOrderVehicleService;
@Autowired
private SysUserFeign sysUserFeign;
private QueryWrapper<BusSalesOrderBorrower> createQueryWrapper(BusSalesOrderBorrowerQuery query) {
// todo: 这里根据具体业务调整查询条件
@ -175,4 +181,116 @@ public class BusSalesOrderBorrowerService extends MybatisBaseService<BusSalesOrd
baseMapper.insert(busSalesOrderBorrower);
return rb.success();
}
/**
* 公司非担保业务进度维护
*
* @param pq
* @return
*/
public PagerVo<BusNoGuaranteeCreditReviewVo> noGuaranteeCreditReviewPage(PagerQuery<BusNoGuaranteeCreditReviewQuery> pq) {
IPage<BusSalesOrderBorrower> page = PagerUtil.queryToPage(pq);
BusNoGuaranteeCreditReviewQuery pagerQuery = pq.getParams();
QueryWrapper<BusSalesOrderBorrower> qw = new QueryWrapper<>();
//=======================
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(pagerQuery.getOrgPath());
privilegeQuery.setMenuSid(pagerQuery.getMenuSid());
privilegeQuery.setMenuUrl(pagerQuery.getMenuUrl());
privilegeQuery.setUserSid(pagerQuery.getUserSid());
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
String orgSidPath = pagerQuery.getOrgPath();
orgSidPath = orgSidPath + "/";
int i1 = orgSidPath.indexOf("/");
int i2 = orgSidPath.indexOf("/", i1 + 1);
int i3 = orgSidPath.indexOf("/", i2 + 1);
int i4 = orgSidPath.indexOf("/", i3 + 1);
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i1);
qw.like("bo.orgSidPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("bo.orgSidPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("bo.orgSidPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("bo.orgSidPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("bo.createBySid", pagerQuery.getUserSid());
} else {
PagerVo<BusNoGuaranteeCreditReviewVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<BusNoGuaranteeCreditReviewVo> p = new PagerVo<>();
return p;
}
//=======================
//PC办结时间查询
String createStartTime = pagerQuery.getStartTime();
String createEndTime = pagerQuery.getEndTime();
qw.apply(StringUtils.isNotEmpty(createStartTime), "date_format (bo.createDate,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(createEndTime), "date_format (bo.createDate,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
);
//分公司
if (StringUtils.isNotBlank(pagerQuery.getCompany())) {
qw.like("bo.usdOrgName", pagerQuery.getCompany());
}
//销售部门
if (StringUtils.isNotBlank(pagerQuery.getDepartment())) {
qw.like("bo.orgName", pagerQuery.getDepartment());
}
//销售专员
if (StringUtils.isNotBlank(pagerQuery.getSalesman())) {
qw.like("bo.staffName", pagerQuery.getSalesman());
}
//贷款人
if (StringUtils.isNotBlank(pagerQuery.getBorrowerName())) {
qw.like("bor.borrowerName", pagerQuery.getBorrowerName());
}
//合同号
if (StringUtils.isNotBlank(pagerQuery.getContractNo())) {
qw.like("bo.contractNo", pagerQuery.getContractNo());
}
//资方
if (StringUtils.isNotBlank(pagerQuery.getBankName())) {
qw.like("bor.bankName", pagerQuery.getBankName());
}
//家访考察结果
if (StringUtils.isNotBlank(pagerQuery.getHomeVisit())) {
qw.like("cr.homeVisit", pagerQuery.getHomeVisit());
}
//信审终审结果
if (StringUtils.isNotBlank(pagerQuery.getCreditReview())) {
qw.like("cr.creditReview", pagerQuery.getCreditReview());
}
//放款审核结果
if (StringUtils.isNotBlank(pagerQuery.getLoanReview())) {
qw.like("cr.loanReview", pagerQuery.getLoanReview());
}
//是否放款
if (StringUtils.isNotBlank(pagerQuery.getIsLoan())) {
qw.like("cr.isLoan", pagerQuery.getIsLoan());
}
qw.eq("bor.isDelete", 0);
qw.eq("bo.payTypeKey", "1");
qw.eq("bo.nodeState", "已办结");
qw.orderByDesc("bo.createDate");
IPage<BusNoGuaranteeCreditReviewVo> pagging = baseMapper.noGuaranteeCreditReviewPage(page, qw);
PagerVo<BusNoGuaranteeCreditReviewVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean<BusSalesOrderBorrowerDetailsVo> fetchDetailsByOrderSid(String orderSid) {
ResultBean<BusSalesOrderBorrowerDetailsVo> rb = ResultBean.fireFail();
BusSalesOrderBorrower entity = baseMapper.fetchDetailsByOrderSid(orderSid);
BusSalesOrderBorrowerDetailsVo vo = new BusSalesOrderBorrowerDetailsVo();
BeanUtil.copyProperties(entity, vo);
return rb.success().setData(vo);
}
}

1
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.java

@ -109,6 +109,7 @@ public interface BusSalesOrderVehicleMapper extends BaseMapper<BusSalesOrderVehi
List<BusSalesOrderVehicle> selectByOrderSid(@Param("salesOrderSid") String salesOrderSid);
List<BusSalesOrderVehicle> selectByOrderSid2(@Param("salesOrderSid") String salesOrderSid,@Param("borrowSid") String borrowSid);
List<BusSalesOrderVehicle> selectByOrderSid3(@Param("salesOrderSid") String salesOrderSid);
@Select("select * from bus_sales_order_vehicle where sid = #{busVinSid}")
BusSalesOrderVehicle selectBySalesOrderVehiclerSid(String busVinSid);

6
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.xml

@ -86,6 +86,12 @@
where salesOrderSid = #{salesOrderSid} and borrowerSid = #{borrowSid}
</select>
<select id="selectByOrderSid3" resultType="com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle">
select *
from bus_sales_order_vehicle
where salesOrderSid = #{salesOrderSid} and (borrowerSid IS NULL OR borrowerSid = '')
</select>
<select id="selectByNoAndVinSid" resultType="com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle">
select bv.*
from bus_sales_order_vehicle bv

4
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleService.java

@ -298,6 +298,10 @@ public class BusSalesOrderVehicleService extends MybatisBaseService<BusSalesOrde
return baseMapper.selectByOrderSid2(saleOrderSid,borrowSid);
}
public List<BusSalesOrderVehicle> selectListByOrderSid3(String saleOrderSid) {
return baseMapper.selectByOrderSid3(saleOrderSid);
}
public ResultBean<List<BusVehicleQKKPVo>> appVehicleQKKPList2(BusVehicleQKKPQuery query) {
ResultBean rb = ResultBean.fireFail();
QueryWrapper<BaseVehicle> qw = new QueryWrapper<>();

2
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow2/FlowableMessageVo.java

@ -24,4 +24,6 @@ public class FlowableMessageVo implements Vo {
private String assignee;
@ApiModelProperty("接收时间")
private String createTime;
private String taskId;
}

3
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowMapper.xml

@ -8,7 +8,8 @@
TASK_DEF_KEY_ as taskDefKey,
NAME_ as nodeName,
ASSIGNEE_ as assignee,
CREATE_TIME_ as createTime
CREATE_TIME_ as createTime,
ID_ taskId,
from act_ru_task
HAVING yuTime > (#{minutes} * 60)
</select>

2
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowService.java

@ -753,6 +753,6 @@ public class FlowService extends MybatisBaseService<FlowMapper, Flowable> {
ResultBean<List<FlowableMessageVo>> rb = ResultBean.fireFail();
List<FlowableMessageVo> list = baseMapper.getMessageList(minutes);
return null;
return rb.success().setData(list);
}
}

29
anrui-riskcenter-ui/src/api/homevisitdatareview/homevisitdatareview.js

@ -0,0 +1,29 @@
import request from '@/utils/request'
export default {
// 查询分页列表
listPage: function(params) {
return request({
url: '/riskcenter/v1/loanhomevisitfileexamine/homeInforListPage',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
// 回显
fetchDetailsBySid: function(data) {
return request({
url: '/riskcenter/v1/loanhomevisitfileexamine/fetchDetailsBySid/' + data,
method: 'get'
})
},
// 保存
save: function(params) {
return request({
url: '/riskcenter/v1/loanhomevisitfileexamine/save',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
}
}

16
anrui-riskcenter-ui/src/router/index.js

@ -219,6 +219,22 @@ export const constantRoutes = [
}
]
},
{
path: '/homevisitdatareview',
component: Layout,
redirect: '/homevisitdatareview',
meta: {
title: '家访资料审核'
},
children: [
{
path: '/homevisitdatareview/homevisitdatatobereviewed',
component: () => import('@/views/homevisitdatareview/homevisitdatatobereviewed.vue'),
name: 'HomeVisitDataReview',
meta: { title: '家访资料审核', noCache: true }
}
]
},
{
path: '/managementcreditaudit',
component: Layout,

54
anrui-riskcenter-ui/src/views/financialpolicymanagement/financialpolicymanagementAdd.vue

@ -11,13 +11,13 @@
<div class="titwu">金融产品政策</div>
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row style="border-left: 0px">
<el-col :span="6" style="border-right: 0px" class="tlineheightb">
<div class="span-sty" style="border-right: 0px"><span>产品政策名称</span></div>
<el-col :span="9" style="border-right: 0px" class="tlineheightb">
<div class="span-sty" style="border-right: 0px"><span>产品政策名称:</span></div>
<el-form-item>
<span class="addinputInfo">{{ formobj.bankShortName }} {{ formobj.period !== '' ? formobj.period + '期' : '' }} {{ formobj.guaranteeTypeValue !== '' ? '( ' + formobj.guaranteeTypeValue + '、' : '' }} {{ formobj.isPack == '1' ? '打包 )' : formobj.isPack == '0' ? '不打包 )' : '' }} {{ formobj.downPayRatio }} {{ formobj.bondRatio !== '' ? '+ ' + formobj.bondRatio : '' }}</span>
<span class="addinputInfo">{{ formobj.bankShortName }} {{ formobj.period !== '' ? formobj.period + '期' : '' }} {{ formobj.guaranteeTypeValue !== '' ? '( ' + formobj.guaranteeTypeValue + '、' : '' }} {{ formobj.isPack == '1' ? '打包 )' : formobj.isPack == '0' ? '不打包 )' : '' }} {{ formobj.downPayRatio }} {{ formobj.bondRatio !== '' ? '+ ' + formobj.bondRatio : '' }}</span>
</el-form-item>
</el-col>
<el-col :span="18" style="border-right: 0px">
<el-col :span="15" style="border-right: 0px">
<div class="span-sty" style="border-right: 0px"><span>适用销售部门</span></div>
<el-form-item>
<el-select class="addinputInfo" v-model="useDept_list" placeholder="请选择" style="width: 60%" clearable filterable multiple>
@ -54,7 +54,7 @@
<el-col :span="6">
<div class="span-sty"><span>车辆功能</span></div>
<el-form-item>
<el-select class="addinputInfo" v-model="formobj.vehTypeKey" @change="vehTypeChange" placeholder="请选择" clearable filterable>
<el-select class="addinputInfo" v-model="formobj.vehTypeKeyList" placeholder="请选择" clearable filterable multiple>
<el-option v-for="item in vehicleFunction_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option>
</el-select>
</el-form-item>
@ -123,7 +123,7 @@
<el-col :span="6">
<div class="span-sty"><span>标准年利率(%)</span></div>
<el-form-item>
<el-input v-model="formobj.yearRatio" @keyup.native="UpNumber" class="addinputw addinputInfo" clearable placeholder=""/>
<el-input v-model="formobj.yearRatio" @keyup.native="UpNumber" class="addinputInfo" clearable placeholder=""/>
</el-form-item>
</el-col>
</el-row>
@ -139,19 +139,19 @@
<el-col :span="6">
<div class="span-sty"><span>服务费<span v-show="formobj.serviceAmountTypeValue !== '固定金额'">(%)</span><span v-show="formobj.serviceAmountTypeValue === '固定金额'">()</span></span></div>
<el-form-item>
<el-input v-model="formobj.serviceAmount" @keyup.native="UpNumber" class="addinputw addinputInfo" clearable placeholder=""/>
<el-input v-model="formobj.serviceAmount" @keyup.native="UpNumber" class="addinputInfo" clearable placeholder=""/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty"><span>保险保证金()</span></div>
<el-form-item>
<el-input v-model="formobj.depositPremium" @keyup.native="UpNumber" class="addinputw addinputInfo" clearable placeholder=""/>
<el-input v-model="formobj.depositPremium" @keyup.native="UpNumber" class="addinputInfo" clearable placeholder=""/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty"><span>落户保证金()</span></div>
<el-form-item>
<el-input v-model="formobj.depositSettle" @keyup.native="UpNumber" class="addinputw addinputInfo" clearable placeholder=""/>
<el-input v-model="formobj.depositSettle" @keyup.native="UpNumber" class="addinputInfo" clearable placeholder=""/>
</el-form-item>
</el-col>
</el-row>
@ -159,13 +159,13 @@
<el-col :span="6">
<div class="span-sty"><span>单车意外险/()</span></div>
<el-form-item>
<el-input v-model="formobj.vehAccidentAmount" @keyup.native="UpNumber" class="addinputw addinputInfo" clearable placeholder=""/>
<el-input v-model="formobj.vehAccidentAmount" @keyup.native="UpNumber" class="addinputInfo" clearable placeholder=""/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty"><span>名义/留购价款()</span></div>
<el-form-item>
<el-input v-model="formobj.nominalPrice" @keyup.native="UpNumber" class="addinputw addinputInfo" clearable placeholder=""/>
<el-input v-model="formobj.nominalPrice" @keyup.native="UpNumber" class="addinputInfo" clearable placeholder=""/>
</el-form-item>
</el-col>
<el-col :span="6">
@ -205,13 +205,13 @@
<el-col :span="6">
<div class="span-sty"><span>最高融资比例(%)</span></div>
<el-form-item>
<el-input v-model="formobj.loanFinOtherPolicy.maxLoanRatio" @keyup.native="UpNumber" class="addinputw addinputInfo" clearable placeholder=""/>
<el-input v-model="formobj.loanFinOtherPolicy.maxLoanRatio" @keyup.native="UpNumber" class="addinputInfo" clearable placeholder=""/>
</el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty"><span>最高融资额()</span></div>
<el-form-item>
<el-input v-model="formobj.loanFinOtherPolicy.maxLoanAmount" @keyup.native="UpNumber" class="addinputw addinputInfo" clearable placeholder=""/>
<el-input v-model="formobj.loanFinOtherPolicy.maxLoanAmount" @keyup.native="UpNumber" class="addinputInfo" clearable placeholder=""/>
</el-form-item>
</el-col>
</el-row>
@ -227,7 +227,7 @@
<el-col :span="6">
<div class="span-sty"><span>年利率(%)</span></div>
<el-form-item>
<el-input v-model="formobj.loanFinOtherPolicy.yearRatio" @keyup.native="UpNumber" class="addinputw addinputInfo" clearable placeholder=""/>
<el-input v-model="formobj.loanFinOtherPolicy.yearRatio" @keyup.native="UpNumber" class="addinputInfo" clearable placeholder=""/>
</el-form-item>
</el-col>
<el-col :span="12" />
@ -309,8 +309,8 @@ export default {
vehAccidentAmount: '',
vehCategoryKey: '',
vehCategoryValue: '',
vehTypeKey: '',
vehTypeValue: '',
vehTypeKeyList: [],
vehTypeValueList: [],
yearRatio: ''
},
rules: {}
@ -450,14 +450,6 @@ export default {
this.formobj.vehCategoryValue = ''
}
},
vehTypeChange(value) {
const choose = this.vehicleFunction_list.filter((item) => item.dictKey === value)
if (choose !== null && choose.length > 0) {
this.formobj.vehTypeValue = choose[0].dictValue
} else {
this.formobj.vehTypeValue = ''
}
},
guaranteeTypeChange(value) {
const choose = this.guaranteeType_list.filter((item) => item.dictKey === value)
if (choose !== null && choose.length > 0) {
@ -559,6 +551,15 @@ export default {
}
}
}
if (this.formobj.vehTypeKeyList.length > 0) {
for (var m = 0; m < this.vehicleFunction_list.length; m++) {
for (var n = 0; n < this.formobj.vehTypeKeyList.length; n++) {
if (this.vehicleFunction_list[m].dictKey === this.formobj.vehTypeKeyList[n]) {
this.formobj.vehTypeValueList.push(this.vehicleFunction_list[m].dictValue)
}
}
}
}
this.submitdisabled = true
//
req.saveOrUpdate(this.formobj).then((res) => {
@ -621,8 +622,8 @@ export default {
vehAccidentAmount: '',
vehCategoryKey: '',
vehCategoryValue: '',
vehTypeKey: '',
vehTypeValue: '',
vehTypeKeyList: [],
vehTypeValueList: [],
yearRatio: ''
}
this.useDept_list = []
@ -639,6 +640,7 @@ export default {
}
.addinputInfo {
margin-left: 130px !important;
width: calc(100% - 135px);
}
.tlineheightb {
display: flex;

6
anrui-riskcenter-ui/src/views/financialpolicymanagement/financialpolicymanagementInfo.vue

@ -13,7 +13,7 @@
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<el-row style="border-left: 0px">
<el-col :span="12" style="border-right: 0px" class="tlineheightb">
<div class="span-sty" style="border-right: 0px"><span>产品政策名称</span></div>
<div class="span-sty" style="border-right: 0px"><span>产品政策名称:</span></div>
<el-form-item>
<div class="addinputInfo">
<span>{{ formobj.bankShortName }} {{ formobj.period !== '' ? formobj.period + '期' : '' }} {{ formobj.guaranteeTypeValue !== '' ? '( ' + formobj.guaranteeTypeValue + '、' : '' }} {{ formobj.isPack == '1' ? '打包 )' : formobj.isPack == '0' ? '不打包 )' : '' }} {{ formobj.downPayRatio }} {{ formobj.bondRatio !== '' ? '+ ' + formobj.bondRatio : '' }}</span>
@ -21,7 +21,7 @@
</el-form-item>
</el-col>
<el-col :span="12" style="border-right: 0px" class="tlineheightb">
<div class="span-sty" style="border-right: 0px"><span>适用销售部门</span></div>
<div class="span-sty" style="border-right: 0px"><span>适用销售部门:</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.useDeptNames }}</span></el-form-item>
</el-col>
</el-row>
@ -38,7 +38,7 @@
<div class="span-sty"><span>车辆大类</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.vehCategoryValue }}</span></el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="6" class="tlineheightb">
<div class="span-sty"><span>车辆功能</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.vehTypeValue }}</span></el-form-item>
</el-col>

330
anrui-riskcenter-ui/src/views/homevisitdatareview/homevisitdatareview.vue

@ -0,0 +1,330 @@
<template>
<div class="app-container">
<!-- Start 列表页面 -->
<div v-show="viewState == 1">
<button-bar view-title="家访资料审核管理" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<div class="main-content">
<div class="switch_btn">
<el-button class="" @click="handleClick">待审核</el-button>
<el-button :class="{btn_style:viewState === 1}">已审核</el-button>
</div>
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" class="tab-header">
<el-form-item label="分公司">
<el-input v-model="listQuery.params.useOrgName" clearable placeholder="" class="addinputw"></el-input>
</el-form-item>
<el-form-item label="销售部门">
<el-input v-model="listQuery.params.saleDeptName" clearable placeholder="" class="addinputw"></el-input>
</el-form-item>
<el-form-item label="销售专员">
<el-input v-model="listQuery.params.staffName" clearable placeholder="" class="addinputw"></el-input>
</el-form-item>
<el-form-item label="订单日期">
<el-date-picker v-model="listQuery.params.orderStartDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.orderEndDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="预约家访日期">
<el-date-picker v-model="listQuery.params.resHomeVisStartDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.resHomeVisEndDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="买卖合同编号">
<el-input v-model="listQuery.params.contractNo" clearable placeholder="" class="addinputw"></el-input>
</el-form-item>
<el-form-item label="贷款人">
<el-input v-model="listQuery.params.loanPeoName" clearable placeholder="" class="addinputw"></el-input>
</el-form-item>
<el-form-item label="资方">
<el-input v-model="listQuery.params.bankName" clearable placeholder="" class="addinputw"></el-input>
</el-form-item>
<el-form-item label="金融产品">
<el-input v-model="listQuery.params.policyName" clearable placeholder="" class="addinputw"></el-input>
</el-form-item>
<el-form-item label="家访专员">
<el-input v-model="listQuery.params.homeVisStaffName" clearable placeholder="" class="addinputw"></el-input>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" @click="handleFilter" size="small">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="handleReset" size="small">重置</el-button>
</div>
</div>
</div>
<div class="listtop">
<div class="tit">家访资料已审核列表</div>
<pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;" @selection-change="handleSelectionChange">
<el-table-column fixed width="50" type="selection" align="center"/>
<el-table-column width="60" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column label="操作" align="center" width="100">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="lookSale(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column label="家访日期" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.resHomeVisDate }}</span>
</template>
</el-table-column>
<el-table-column label="家访地址" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.homeVisAddress }}</span>
</template>
</el-table-column>
<el-table-column label="分公司" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.useOrgName }}</span>
</template>
</el-table-column>
<el-table-column label="销售部门" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.orgName }}</span>
</template>
</el-table-column>
<el-table-column label="销售专员" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.staffName }}</span>
</template>
</el-table-column>
<el-table-column label="买卖合同编号" align="center" min-width="120">
<template slot-scope="scope">
<span>{{ scope.row.contractNo }}</span>
</template>
</el-table-column>
<el-table-column label="贷款人" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.borrowerName }}</span>
</template>
</el-table-column>
<el-table-column label="手机号码" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.mobile }}</span>
</template>
</el-table-column>
<el-table-column label="资方" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.bankName }}</span>
</template>
</el-table-column>
<el-table-column label="金融产品" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.policyName }}</span>
</template>
</el-table-column>
<el-table-column label="家访专员" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.homeVisStaffName }}</span>
</template>
</el-table-column>
<el-table-column label="考察结果" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.investigateValue }}</span>
</template>
</el-table-column>
</el-table>
</div>
<div class="pages">
<!-- 翻页 -->
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
</div>
</div>
<!-- End 列表页面 -->
<!-- 家访资料审核补充 -->
<homevisitdatareviewReplenish ref="divRep" v-show="viewState == 2" @doback="resetState" @reloadlist="getList"/>
<!-- 家访资料详情 -->
<homevisitdatareviewInfo ref="divInfo" v-show="viewState == 3" @doback="resetState"/>
</div>
</template>
<script>
import req from '@/api/homevisitdatareview/homevisitdatareview'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import homevisitdatareviewReplenish from './homevisitdatareviewReplenish'
import homevisitdatareviewInfo from './homevisitdatareviewInfo'
export default {
name: 'HomeVisitDataReview',
components: {
Pagination,
pageye,
ButtonBar,
homevisitdatareviewReplenish,
homevisitdatareviewInfo
},
data() {
return {
viewState: 1,
btndisabled: false,
btnList: [
{
type: 'primary',
size: 'small',
icon: '',
btnKey: 'toReplenish',
btnLabel: '补充'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
isSearchShow: false,
searchxianshitit: '显示查询条件',
// -----------
tableKey: 0,
list: [],
sids: [],
listLoading: false,
listQuery: {
params: {
contractNo: '',
homeVisStaffName: '',
loanPeoName: '',
menuUrl: '',
bankName: '',
orderEndDate: '',
orderStartDate: '',
orgSidPath: '',
policyName: '',
resHomeVisEndDate: '',
resHomeVisStartDate: '',
saleDeptName: '',
staffName: '',
type: '2',
useOrgName: '',
userSid: ''
},
current: 1,
size: 10,
total: 0
},
rules: {}
}
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'toReplenish':
this.toReplenish()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
//
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
handleSelectionChange(row) {
const aa = []
row.forEach((element) => {
aa.push(element.sid)
})
this.sids = aa
},
//
getList() {
this.listLoading = true
this.listQuery.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
this.listQuery.params.menuUrl = this.$route.path
this.listQuery.params.userSid = window.sessionStorage.getItem('userSid')
req.listPage(this.listQuery).then((response) => {
console.log('列表查询结果:', response)
this.listLoading = false
if (response.success) {
this.list = response.data.records
this.listQuery.total = response.data.total
} else {
this.list = []
this.listQuery.total = 0
}
})
},
handleClick() {
this.$parent.resetState()
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
handleReset() {
this.listQuery = {
params: {
contractNo: '',
homeVisStaffName: '',
loanPeoName: '',
menuUrl: '',
bankName: '',
orderEndDate: '',
orderStartDate: '',
orgSidPath: '',
policyName: '',
resHomeVisEndDate: '',
resHomeVisStartDate: '',
saleDeptName: '',
staffName: '',
type: '2',
useOrgName: '',
userSid: ''
},
current: 1,
size: 10,
total: 0
}
this.getList()
},
toReplenish() {
this.viewState = 2
this.$refs['divRep'].showEdit(this.sids[0])
},
lookSale(row) {
this.viewState = 3
this.$refs['divInfo'].showInfo(row.sid)
},
resetState() {
this.viewState = 1
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
.btn_style {
background-color: #018ad2;
color: white;
font-weight: 600;
}
</style>

685
anrui-riskcenter-ui/src/views/homevisitdatareview/homevisitdatareviewAdd.vue

@ -0,0 +1,685 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="submit()">提交下一环节</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<el-collapse v-model="activeNames" accordion>
<el-collapse-item title="家访见证类" name="1">
<el-row>
<el-col :span="24">
<div class="span-sty colSty">定位信息</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list1" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">房屋照片</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list2" :limit="50" bucket="map" :upload-data="{ type: '0002' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">门口照片</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list3" :limit="50" bucket="map" :upload-data="{ type: '0003' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">客厅卧室照片</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list4" :limit="50" bucket="map" :upload-data="{ type: '0004' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">合影照等</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list5" :limit="50" bucket="map" :upload-data="{ type: '0005' }"/></el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="资产类" name="2">
<el-row>
<el-col :span="24">
<div class="span-sty colSty">银行卡</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list6" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">房产</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list7" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">车辆</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list8" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="公司合同类" name="3">
<el-table :key="tableKey" :data="formobj.loanXdCons" :index="index" border style="width: 100%">
<el-table-column width="80" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="贷款人(合同号)" align="center">
<template slot-scope="scope">
<span>{{ scope.row.loanCotractNoShow }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<div style="display: flex;flex-direction: row;justify-content: center;align-items: center">
<upload ref="upload" v-show="scope.row.loanCotractNo !== ''" v-model="file_list1" @change="changeFile($event, scope.row)" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/>
<el-button style="margin-left: 10px" v-if="scope.row.loanCotractImages.length > 0" type="primary" size="mini" @click="lookFile(scope.row.loanCotractImages)">查看</el-button>
</div>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
<el-collapse-item title="证明文件" name="4">
<div class="collapse">
<el-collapse v-model="activeName" accordion>
<el-collapse-item title="贷款人" name="1">
<el-row>
<el-col :span="24">
<div class="span-sty colSty">身份证</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list9" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">户口本</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list10" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">婚姻证明</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list11" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">驾驶本</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list12" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">银行流水</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list13" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="配偶" name="2">
<el-row>
<el-col :span="24">
<div class="span-sty colSty">身份证</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list14" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">户口本</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list15" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="担保人" name="3">
<el-row>
<el-col :span="24">
<div class="span-sty colSty">身份证</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list16" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">户口本</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list17" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
</el-collapse-item>
</el-collapse>
</div>
</el-collapse-item>
<el-collapse-item title="对存在的问题反馈:" name="5">
<el-row>
<el-col :span="24">
<el-form-item>
<el-input v-model="formobj.remarks" clearable placeholder=""/>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
</el-collapse>
</el-form>
</div>
<!-- 查看公司合同类 附件 -->
<el-dialog :visible.sync="dialogVisible" :append-to-body="true">
<el-image v-for="(item, index) in dialog_list" :key="index" :src="item" :preview-src-list="dialog_list"/>
</el-dialog>
</div>
</template>
<script>
import req from '@/api/homevisitdatareview/homevisitdatareview'
import upload from '@/components/uploadFile/upload'
import uploadImg from '@/components/uploadFile/uploadImg'
export default {
name: 'HomeVisitDataReviewAdd',
components: {
upload,
uploadImg
},
data() {
return {
viewTitle: '',
tableKey: 0,
index: 0,
submitdisabled: false,
dialogVisible: false,
dialog_list: [],
activeNames: '1',
activeName: '1',
file_list1: [],
image_list1: [],
image_list2: [],
image_list3: [],
image_list4: [],
image_list5: [],
image_list6: [],
image_list7: [],
image_list8: [],
image_list9: [],
image_list10: [],
image_list11: [],
image_list12: [],
image_list13: [],
image_list14: [],
image_list15: [],
image_list16: [],
image_list17: [],
formobj: {
carProperty: [],
doorway: [],
groupPhoto: [],
guarantorAccount: [],
guarantorIdCard: [],
homeVisitSid: '',
house: [],
houseProperty: [],
indoor: [],
lenderAccount: [],
lenderBankStatement: [],
lenderDriverBook: [],
lenderIdCard: [],
lenderMarriageCertificate: [],
loanXdCons: [],
loanZfCons: [],
location: [],
remarks: '',
saleOrderSid: '',
sid: '',
spouseAccount: [],
spouseIdCard: [],
yhkImages: []
}
}
},
methods: {
showEdit(sid) {
this.viewTitle = '家访资料审核'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
req.fetchDetailsBySid(sid).then((res) => {
if (res.success) {
this.formobj = res.data
//
if (this.formobj.location.length > 0) {
this.formobj.location.forEach((e) => {
this.image_list1.push({
name: '',
url: e
})
})
}
//
if (this.formobj.house.length > 0) {
this.formobj.house.forEach((e) => {
this.image_list2.push({
name: '',
url: e
})
})
}
//
if (this.formobj.doorway.length > 0) {
this.formobj.doorway.forEach((e) => {
this.image_list3.push({
name: '',
url: e
})
})
}
//
if (this.formobj.indoor.length > 0) {
this.formobj.indoor.forEach((e) => {
this.image_list4.push({
name: '',
url: e
})
})
}
//
if (this.formobj.groupPhoto.length > 0) {
this.formobj.groupPhoto.forEach((e) => {
this.image_list5.push({
name: '',
url: e
})
})
}
//
if (this.formobj.yhkImages.length > 0) {
this.formobj.yhkImages.forEach((e) => {
this.image_list6.push({
name: '',
url: e
})
})
}
//
if (this.formobj.houseProperty.length > 0) {
this.formobj.houseProperty.forEach((e) => {
this.image_list7.push({
name: '',
url: e
})
})
}
//
if (this.formobj.carProperty.length > 0) {
this.formobj.carProperty.forEach((e) => {
this.image_list8.push({
name: '',
url: e
})
})
}
// -- --
if (this.formobj.lenderIdCard.length > 0) {
this.formobj.lenderIdCard.forEach((e) => {
this.image_list9.push({
name: '',
url: e
})
})
}
// -- --
if (this.formobj.lenderAccount.length > 0) {
this.formobj.lenderAccount.forEach((e) => {
this.image_list10.push({
name: '',
url: e
})
})
}
// -- --
if (this.formobj.lenderMarriageCertificate.length > 0) {
this.formobj.lenderMarriageCertificate.forEach((e) => {
this.image_list11.push({
name: '',
url: e
})
})
}
// -- --
if (this.formobj.lenderDriverBook.length > 0) {
this.formobj.lenderDriverBook.forEach((e) => {
this.image_list12.push({
name: '',
url: e
})
})
}
// -- --
if (this.formobj.lenderBankStatement.length > 0) {
this.formobj.lenderBankStatement.forEach((e) => {
this.image_list13.push({
name: '',
url: e
})
})
}
// -- --
if (this.formobj.spouseIdCard.length > 0) {
this.formobj.spouseIdCard.forEach((e) => {
this.image_list14.push({
name: '',
url: e
})
})
}
// -- --
if (this.formobj.spouseAccount.length > 0) {
this.formobj.spouseAccount.forEach((e) => {
this.image_list15.push({
name: '',
url: e
})
})
}
// -- --
if (this.formobj.guarantorIdCard.length > 0) {
this.formobj.guarantorIdCard.forEach((e) => {
this.image_list16.push({
name: '',
url: e
})
})
}
// -- --
if (this.formobj.guarantorAccount.length > 0) {
this.formobj.guarantorAccount.forEach((e) => {
this.image_list17.push({
name: '',
url: e
})
})
}
}
})
},
// --
changeFile(val, row) {
if (val.length > 0) {
const aa = []
val.forEach((e) => {
aa.push(e.url)
})
row.loanCotractImages = aa
} else {
row.loanCotractImages = []
}
},
// --
lookFile(row) {
this.dialogVisible = true
this.dialog_list = row
},
submit() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.getUrl()
this.submitdisabled = true
req.save(this.formobj).then((resp) => {
if (resp.success) {
this.$message({ showClose: true, type: 'success', message: '操作成功' })
this.handleReturn('true')
} else {
this.submitdisabled = false
}
}).catch(() => {
this.submitdisabled = false
})
}
})
},
getUrl() {
if (this.image_list1.length > 0) {
const aa = []
for (var a = 0; a < this.image_list1.length; a++) {
aa.push(this.image_list1[a].url)
}
this.formobj.location = aa
} else {
this.formobj.location = []
}
if (this.image_list2.length > 0) {
const bb = []
for (var b = 0; b < this.image_list2.length; b++) {
bb.push(this.image_list2[b].url)
}
this.formobj.house = bb
} else {
this.formobj.house = []
}
if (this.image_list3.length > 0) {
const cc = []
for (var c = 0; c < this.image_list3.length; c++) {
cc.push(this.image_list3[c].url)
}
this.formobj.doorway = cc
} else {
this.formobj.doorway = []
}
if (this.image_list4.length > 0) {
const dd = []
for (var d = 0; d < this.image_list4.length; d++) {
dd.push(this.image_list4[d].url)
}
this.formobj.indoor = dd
} else {
this.formobj.indoor = []
}
if (this.image_list5.length > 0) {
const ee = []
for (var e = 0; e < this.image_list5.length; e++) {
ee.push(this.image_list5[e].url)
}
this.formobj.groupPhoto = ee
} else {
this.formobj.groupPhoto = []
}
if (this.image_list6.length > 0) {
const ff = []
for (var f = 0; f < this.image_list6.length; f++) {
ff.push(this.image_list6[f].url)
}
this.formobj.yhkImages = ff
} else {
this.formobj.yhkImages = []
}
if (this.image_list7.length > 0) {
const gg = []
for (var g = 0; g < this.image_list7.length; g++) {
gg.push(this.image_list7[g].url)
}
this.formobj.houseProperty = gg
} else {
this.formobj.houseProperty = []
}
if (this.image_list8.length > 0) {
const hh = []
for (var h = 0; h < this.image_list8.length; h++) {
hh.push(this.image_list8[h].url)
}
this.formobj.carProperty = hh
} else {
this.formobj.carProperty = []
}
if (this.image_list9.length > 0) {
const ii = []
for (var i = 0; i < this.image_list9.length; i++) {
ii.push(this.image_list9[i].url)
}
this.formobj.lenderIdCard = ii
} else {
this.formobj.lenderIdCard = []
}
if (this.image_list10.length > 0) {
const jj = []
for (var j = 0; j < this.image_list10.length; j++) {
jj.push(this.image_list10[j].url)
}
this.formobj.lenderAccount = jj
} else {
this.formobj.lenderAccount = []
}
if (this.image_list11.length > 0) {
const kk = []
for (var k = 0; k < this.image_list11.length; k++) {
kk.push(this.image_list11[k].url)
}
this.formobj.lenderMarriageCertificate = kk
} else {
this.formobj.lenderMarriageCertificate = []
}
if (this.image_list12.length > 0) {
const ll = []
for (var l = 0; l < this.image_list12.length; l++) {
ll.push(this.image_list12[l].url)
}
this.formobj.lenderDriverBook = ll
} else {
this.formobj.lenderDriverBook = []
}
if (this.image_list13.length > 0) {
const mm = []
for (var m = 0; m < this.image_list13.length; m++) {
mm.push(this.image_list13[m].url)
}
this.formobj.lenderBankStatement = mm
} else {
this.formobj.lenderBankStatement = []
}
if (this.image_list14.length > 0) {
const nn = []
for (var n = 0; n < this.image_list14.length; n++) {
nn.push(this.image_list14[n].url)
}
this.formobj.spouseIdCard = nn
} else {
this.formobj.spouseIdCard = []
}
if (this.image_list15.length > 0) {
const pp = []
for (var p = 0; p < this.image_list15.length; p++) {
pp.push(this.image_list15[p].url)
}
this.formobj.spouseAccount = pp
} else {
this.formobj.spouseAccount = []
}
if (this.image_list16.length > 0) {
const qq = []
for (var q = 0; q < this.image_list16.length; q++) {
qq.push(this.image_list16[q].url)
}
this.formobj.guarantorIdCard = qq
} else {
this.formobj.guarantorIdCard = []
}
if (this.image_list17.length > 0) {
const rr = []
for (var r = 0; r < this.image_list17.length; r++) {
rr.push(this.image_list17[r].url)
}
this.formobj.guarantorAccount = rr
} else {
this.formobj.guarantorAccount = []
}
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {
carProperty: [],
doorway: [],
groupPhoto: [],
guarantorAccount: [],
guarantorIdCard: [],
homeVisitSid: '',
house: [],
houseProperty: [],
indoor: [],
lenderAccount: [],
lenderBankStatement: [],
lenderDriverBook: [],
lenderIdCard: [],
lenderMarriageCertificate: [],
loanXdCons: [],
loanZfCons: [],
location: [],
remarks: '',
saleOrderSid: '',
sid: '',
spouseAccount: [],
spouseIdCard: [],
yhkImages: []
}
this.image_list1 = []
this.image_list2 = []
this.image_list3 = []
this.image_list4 = []
this.image_list5 = []
this.image_list6 = []
this.image_list7 = []
this.image_list8 = []
this.image_list9 = []
this.image_list10 = []
this.image_list11 = []
this.image_list12 = []
this.image_list13 = []
this.image_list14 = []
this.image_list15 = []
this.image_list16 = []
this.image_list17 = []
this.submitdisabled = false
this.$refs['form_obj'].resetFields()
this.$emit('doback')
}
}
}
</script>
<style scoped>
.span-sty {
width: 100px !important;
}
.addinputInfo {
margin-left: 90px !important;
}
.colSty {
display: flex;
flex-direction: row;
justify-content: flex-end;
align-items: center;
}
/deep/ .el-collapse-item__header {
height: 40px;
padding: 10px;
font-weight: bold;
font-size: 20px;
text-align: left;
color: #ffffff;
background-color: #0294d7;
}
/deep/ .el-collapse-item__content {
padding-bottom: 0;
}
.collapse {
padding: 0 10px;
}
/deep/ .collapse .el-collapse-item__header {
height: 40px;
padding: 10px;
font-weight: bold;
font-size: 20px;
text-align: left;
color: #ffffff;
background-color: #87CEFA;
}
</style>

327
anrui-riskcenter-ui/src/views/homevisitdatareview/homevisitdatareviewInfo.vue

@ -0,0 +1,327 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<!--标题-->
<div>{{ viewTitle }}</div>
<!--start 添加修改按钮-->
<div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<el-collapse v-model="activeNames" accordion>
<el-collapse-item title="家访见证类" name="1">
<el-row>
<el-col :span="24">
<div class="span-sty colSty">定位信息</div>
<el-form-item><el-image class="addinputInfo" v-for="(item, index) in formobj.location" :key="index" :src="item" :preview-src-list="formobj.location"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">房屋照片</div>
<el-form-item><el-image class="addinputInfo" v-for="(item, index) in formobj.house" :key="index" :src="item" :preview-src-list="formobj.house"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">门口照片</div>
<el-form-item><el-image class="addinputInfo" v-for="(item, index) in formobj.doorway" :key="index" :src="item" :preview-src-list="formobj.doorway"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">客厅卧室照片</div>
<el-form-item><el-image class="addinputInfo" v-for="(item, index) in formobj.indoor" :key="index" :src="item" :preview-src-list="formobj.indoor"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">合影照等</div>
<el-form-item><el-image class="addinputInfo" v-for="(item, index) in formobj.groupPhoto" :key="index" :src="item" :preview-src-list="formobj.groupPhoto"/></el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="资产类" name="2">
<el-row>
<el-col :span="24">
<div class="span-sty colSty">银行卡</div>
<el-form-item><el-image class="addinputInfo" v-for="(item, index) in formobj.yhkImages" :key="index" :src="item" :preview-src-list="formobj.yhkImages"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">房产</div>
<el-form-item><el-image class="addinputInfo" v-for="(item, index) in formobj.houseProperty" :key="index" :src="item" :preview-src-list="formobj.houseProperty"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">车辆</div>
<el-form-item><el-image class="addinputInfo" v-for="(item, index) in formobj.carProperty" :key="index" :src="item" :preview-src-list="formobj.carProperty"/></el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="公司合同类" name="3">
<el-table :key="tableKey" :data="formobj.loanXdCons" :index="index" border style="width: 100%">
<el-table-column width="80" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="贷款人(合同号)" align="center">
<template slot-scope="scope">
<span>{{ scope.row.loanCotractNoShow }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<div style="display: flex;flex-direction: row;justify-content: center;align-items: center">
<el-button style="margin-left: 10px" v-if="scope.row.loanCotractImages.length > 0" type="primary" size="mini" @click="lookGSFile(scope.row.loanCotractImages)">查看</el-button>
</div>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
<el-collapse-item title="资方合同类" name="4">
<el-table :key="tableZfKey" :data="formobj.loanZfCons" :index="index" border style="width: 100%">
<el-table-column width="80" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="贷款人(合同号)" align="center">
<template slot-scope="scope">
<span>{{ scope.row.bankContractNoShow }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<div style="display: flex;flex-direction: row;justify-content: center;align-items: center">
<el-button style="margin-left: 10px" v-if="scope.row.bankContractImages.length > 0" type="primary" size="mini" @click="lookZFFile(scope.row.bankContractImages)">查看</el-button>
</div>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
<el-collapse-item title="证明文件" name="5">
<div class="collapse">
<el-collapse v-model="activeName" accordion>
<el-collapse-item title="贷款人" name="1">
<el-row>
<el-col :span="24">
<div class="span-sty colSty">身份证</div>
<el-form-item><el-image class="addinputInfo" v-for="(item, index) in formobj.lenderIdCard" :key="index" :src="item" :preview-src-list="formobj.lenderIdCard"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">户口本</div>
<el-form-item><el-image class="addinputInfo" v-for="(item, index) in formobj.lenderAccount" :key="index" :src="item" :preview-src-list="formobj.lenderAccount"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">婚姻证明</div>
<el-form-item><el-image class="addinputInfo" v-for="(item, index) in formobj.lenderMarriageCertificate" :key="index" :src="item" :preview-src-list="formobj.lenderMarriageCertificate"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">驾驶本</div>
<el-form-item><el-image class="addinputInfo" v-for="(item, index) in formobj.lenderDriverBook" :key="index" :src="item" :preview-src-list="formobj.lenderDriverBook"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">银行流水</div>
<el-form-item><el-image class="addinputInfo" v-for="(item, index) in formobj.lenderBankStatement" :key="index" :src="item" :preview-src-list="formobj.lenderBankStatement"/></el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="配偶" name="2">
<el-row>
<el-col :span="24">
<div class="span-sty colSty">身份证</div>
<el-form-item><el-image class="addinputInfo" v-for="(item, index) in formobj.spouseIdCard" :key="index" :src="item" :preview-src-list="formobj.spouseIdCard"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">户口本</div>
<el-form-item><el-image class="addinputInfo" v-for="(item, index) in formobj.spouseAccount" :key="index" :src="item" :preview-src-list="formobj.spouseAccount"/></el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="担保人" name="3">
<el-row>
<el-col :span="24">
<div class="span-sty colSty">身份证</div>
<el-form-item><el-image class="addinputInfo" v-for="(item, index) in formobj.guarantorIdCard" :key="index" :src="item" :preview-src-list="formobj.guarantorIdCard"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">户口本</div>
<el-form-item><el-image class="addinputInfo" v-for="(item, index) in formobj.guarantorAccount" :key="index" :src="item" :preview-src-list="formobj.guarantorAccount"/></el-form-item>
</el-col>
</el-row>
</el-collapse-item>
</el-collapse>
</div>
</el-collapse-item>
<el-collapse-item title="对存在的问题反馈:" name="6">
<el-row>
<el-col :span="24">
<el-form-item><span>{{ formobj.remarks }}</span></el-form-item>
</el-col>
</el-row>
</el-collapse-item>
</el-collapse>
</el-form>
</div>
<!-- 查看公司合同类 附件 -->
<el-dialog :visible.sync="dialogGSVisible" :append-to-body="true">
<el-image v-for="(item,index) in dialogGS_list" :key="index" :src="item" style="width: 100px;height: 100px" :preview-src-list="dialogGS_list">
</el-image>
</el-dialog>
<!-- 查看资方合同类 附件 -->
<el-dialog :visible.sync="dialogZFVisible" :append-to-body="true">
<el-image v-for="(item,index) in dialogZF_list" :key="index" :src="item" style="width: 100px;height: 100px" :preview-src-list="dialogZF_list">
</el-image>
</el-dialog>
</div>
</template>
<script>
import req from '@/api/homevisitdatareview/homevisitdatareview'
export default {
name: 'HomeVisitDataReviewInfo',
data() {
return {
viewTitle: '',
tableKey: 0,
tableZfKey: 1,
index: 0,
dialogGSVisible: false,
dialogGS_list: [],
dialogZFVisible: false,
dialogZF_list: [],
activeNames: '1',
activeName: '1',
formobj: {
carProperty: [],
doorway: [],
groupPhoto: [],
guarantorAccount: [],
guarantorIdCard: [],
homeVisitSid: '',
house: [],
houseProperty: [],
indoor: [],
lenderAccount: [],
lenderBankStatement: [],
lenderDriverBook: [],
lenderIdCard: [],
lenderMarriageCertificate: [],
loanXdCons: [],
loanZfCons: [],
location: [],
remarks: '',
saleOrderSid: '',
sid: '',
spouseAccount: [],
spouseIdCard: [],
yhkImages: []
}
}
},
methods: {
showInfo(sid) {
this.viewTitle = '家访资料审核详情'
req.fetchDetailsBySid(sid).then((resp) => {
if (resp.success) {
this.formobj = resp.data
}
})
},
// --
lookGSFile(row) {
this.dialogGSVisible = true
this.dialogGS_list = row
},
// --
lookZFFile(row) {
this.dialogZFVisible = true
this.dialogZF_list = row
},
handleReturn() {
this.formobj = {
carProperty: [],
doorway: [],
groupPhoto: [],
guarantorAccount: [],
guarantorIdCard: [],
homeVisitSid: '',
house: [],
houseProperty: [],
indoor: [],
lenderAccount: [],
lenderBankStatement: [],
lenderDriverBook: [],
lenderIdCard: [],
lenderMarriageCertificate: [],
loanXdCons: [],
loanZfCons: [],
location: [],
remarks: '',
saleOrderSid: '',
sid: '',
spouseAccount: [],
spouseIdCard: [],
yhkImages: []
}
this.$emit('doback')
}
}
}
</script>
<style scoped>
.span-sty {
width: 100px !important;
}
.addinputInfo {
margin-left: 90px !important;
}
.colSty {
display: flex;
flex-direction: row;
justify-content: flex-end;
align-items: center;
}
/deep/ .el-collapse-item__header {
height: 40px;
padding: 10px;
font-weight: bold;
font-size: 20px;
text-align: left;
color: #ffffff;
background-color: #0294d7;
}
/deep/ .el-collapse-item__content {
padding-bottom: 0;
}
.collapse {
padding: 0 10px;
}
/deep/ .collapse .el-collapse-item__header {
height: 40px;
padding: 10px;
font-weight: bold;
font-size: 20px;
text-align: left;
color: #ffffff;
background-color: #87CEFA;
}
</style>

783
anrui-riskcenter-ui/src/views/homevisitdatareview/homevisitdatareviewReplenish.vue

@ -0,0 +1,783 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="submit()">保存</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<el-collapse v-model="activeNames" accordion>
<el-collapse-item title="家访见证类" name="1">
<el-row>
<el-col :span="24">
<div class="span-sty colSty">定位信息</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list1" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">房屋照片</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list2" :limit="50" bucket="map" :upload-data="{ type: '0002' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">门口照片</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list3" :limit="50" bucket="map" :upload-data="{ type: '0003' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">客厅卧室照片</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list4" :limit="50" bucket="map" :upload-data="{ type: '0004' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">合影照等</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list5" :limit="50" bucket="map" :upload-data="{ type: '0005' }"/></el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="资产类" name="2">
<el-row>
<el-col :span="24">
<div class="span-sty colSty">银行卡</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list6" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">房产</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list7" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">车辆</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list8" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="公司合同类" name="3">
<el-table :key="tableKey" :data="formobj.loanXdCons" :index="index" border style="width: 100%">
<el-table-column width="80" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="贷款人(合同号)" align="center">
<template slot-scope="scope">
<span>{{ scope.row.loanCotractNoShow }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<div style="display: flex;flex-direction: row;justify-content: center;align-items: center">
<upload ref="upload" v-show="scope.row.loanCotractNo !== ''" v-model="file_list1" @change="changeFile($event, scope.row)" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/>
<el-button style="margin-left: 10px" v-if="scope.row.loanCotractImages.length > 0" type="primary" size="mini" @click="lookGSFile(scope.row.loanCotractImages)">查看</el-button>
</div>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
<el-collapse-item title="资方合同类" name="4">
<el-table :key="tableZfKey" :data="formobj.loanZfCons" :index="index" border style="width: 100%">
<el-table-column width="80" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="贷款人(合同号)" align="center">
<template slot-scope="scope">
<span>{{ scope.row.bankContractNoShow }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<div style="display: flex;flex-direction: row;justify-content: center;align-items: center">
<upload ref="upload" v-show="scope.row.bankContractNo !== ''" v-model="file_list1" @change="changeZFFile($event, scope.row)" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/>
<el-button style="margin-left: 10px" v-if="scope.row.bankContractImages.length > 0" type="primary" size="mini" @click="lookZFFile(scope.row.bankContractImages)">查看</el-button>
</div>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
<el-collapse-item title="证明文件" name="5">
<div class="collapse">
<el-collapse v-model="activeName" accordion>
<el-collapse-item title="贷款人" name="1">
<el-row>
<el-col :span="24">
<div class="span-sty colSty">身份证</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list9" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">户口本</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list10" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">婚姻证明</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list11" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">驾驶本</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list12" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">银行流水</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list13" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="配偶" name="2">
<el-row>
<el-col :span="24">
<div class="span-sty colSty">身份证</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list14" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">户口本</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list15" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="担保人" name="3">
<el-row>
<el-col :span="24">
<div class="span-sty colSty">身份证</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list16" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty colSty">户口本</div>
<el-form-item><upload-img ref="uploadImg" class="addinputInfo" v-model="image_list17" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
</el-collapse-item>
</el-collapse>
</div>
</el-collapse-item>
<el-collapse-item title="对存在的问题反馈:" name="6">
<el-row>
<el-col :span="24">
<el-form-item>
<el-input v-model="formobj.remarks" clearable placeholder=""/>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
</el-collapse>
</el-form>
</div>
<!-- 查看公司合同类 附件 -->
<el-dialog :visible.sync="dialogGSVisible" :append-to-body="true">
<div v-for="(item,index) in dialogGS_list" :key="index" style="display:inline-block;">
<div class="dialogImg">
<el-image
:src="item"
style="width: 100px; height: 100px"
:preview-src-list="dialogGS_list">
</el-image>
<el-button type="danger" size="mini" @click="handleGSDel(item)">删除</el-button>
</div>
</div>
</el-dialog>
<!-- 查看资方合同类 附件 -->
<el-dialog :visible.sync="dialogZFVisible" :append-to-body="true">
<div v-for="(item,index) in dialogZF_list" :key="index" style="display:inline-block;">
<div class="dialogImg">
<el-image
:src="item"
style="width: 100px; height: 100px"
:preview-src-list="dialogZF_list">
</el-image>
<el-button type="danger" size="mini" @click="handleZFDel(item)">删除</el-button>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import req from '@/api/homevisitdatareview/homevisitdatareview'
import upload from '@/components/uploadFile/upload'
import uploadImg from '@/components/uploadFile/uploadImg'
export default {
name: 'HomeVisitDataReviewReplenish',
components: {
upload,
uploadImg
},
data() {
return {
viewTitle: '',
tableKey: 0,
tableZfKey: 1,
index: 0,
submitdisabled: false,
dialogGSVisible: false,
dialogGS_list: [],
dialogZFVisible: false,
dialogZF_list: [],
activeNames: '1',
activeName: '1',
file_list1: [],
image_list1: [],
image_list2: [],
image_list3: [],
image_list4: [],
image_list5: [],
image_list6: [],
image_list7: [],
image_list8: [],
image_list9: [],
image_list10: [],
image_list11: [],
image_list12: [],
image_list13: [],
image_list14: [],
image_list15: [],
image_list16: [],
image_list17: [],
formobj: {
carProperty: [],
doorway: [],
groupPhoto: [],
guarantorAccount: [],
guarantorIdCard: [],
homeVisitSid: '',
house: [],
houseProperty: [],
indoor: [],
lenderAccount: [],
lenderBankStatement: [],
lenderDriverBook: [],
lenderIdCard: [],
lenderMarriageCertificate: [],
loanXdCons: [],
loanZfCons: [],
location: [],
remarks: '',
saleOrderSid: '',
sid: '',
spouseAccount: [],
spouseIdCard: [],
yhkImages: []
}
}
},
methods: {
showEdit(sid) {
this.viewTitle = '家访资料审核'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
req.fetchDetailsBySid(sid).then((res) => {
if (res.success) {
this.formobj = res.data
//
if (this.formobj.location.length > 0) {
this.formobj.location.forEach((e) => {
this.image_list1.push({
name: '',
url: e
})
})
}
//
if (this.formobj.house.length > 0) {
this.formobj.house.forEach((e) => {
this.image_list2.push({
name: '',
url: e
})
})
}
//
if (this.formobj.doorway.length > 0) {
this.formobj.doorway.forEach((e) => {
this.image_list3.push({
name: '',
url: e
})
})
}
//
if (this.formobj.indoor.length > 0) {
this.formobj.indoor.forEach((e) => {
this.image_list4.push({
name: '',
url: e
})
})
}
//
if (this.formobj.groupPhoto.length > 0) {
this.formobj.groupPhoto.forEach((e) => {
this.image_list5.push({
name: '',
url: e
})
})
}
//
if (this.formobj.yhkImages.length > 0) {
this.formobj.yhkImages.forEach((e) => {
this.image_list6.push({
name: '',
url: e
})
})
}
//
if (this.formobj.houseProperty.length > 0) {
this.formobj.houseProperty.forEach((e) => {
this.image_list7.push({
name: '',
url: e
})
})
}
//
if (this.formobj.carProperty.length > 0) {
this.formobj.carProperty.forEach((e) => {
this.image_list8.push({
name: '',
url: e
})
})
}
// -- --
if (this.formobj.lenderIdCard.length > 0) {
this.formobj.lenderIdCard.forEach((e) => {
this.image_list9.push({
name: '',
url: e
})
})
}
// -- --
if (this.formobj.lenderAccount.length > 0) {
this.formobj.lenderAccount.forEach((e) => {
this.image_list10.push({
name: '',
url: e
})
})
}
// -- --
if (this.formobj.lenderMarriageCertificate.length > 0) {
this.formobj.lenderMarriageCertificate.forEach((e) => {
this.image_list11.push({
name: '',
url: e
})
})
}
// -- --
if (this.formobj.lenderDriverBook.length > 0) {
this.formobj.lenderDriverBook.forEach((e) => {
this.image_list12.push({
name: '',
url: e
})
})
}
// -- --
if (this.formobj.lenderBankStatement.length > 0) {
this.formobj.lenderBankStatement.forEach((e) => {
this.image_list13.push({
name: '',
url: e
})
})
}
// -- --
if (this.formobj.spouseIdCard.length > 0) {
this.formobj.spouseIdCard.forEach((e) => {
this.image_list14.push({
name: '',
url: e
})
})
}
// -- --
if (this.formobj.spouseAccount.length > 0) {
this.formobj.spouseAccount.forEach((e) => {
this.image_list15.push({
name: '',
url: e
})
})
}
// -- --
if (this.formobj.guarantorIdCard.length > 0) {
this.formobj.guarantorIdCard.forEach((e) => {
this.image_list16.push({
name: '',
url: e
})
})
}
// -- --
if (this.formobj.guarantorAccount.length > 0) {
this.formobj.guarantorAccount.forEach((e) => {
this.image_list17.push({
name: '',
url: e
})
})
}
}
})
},
// --
changeFile(val, row) {
if (val.length > 0) {
const aa = []
val.forEach((e) => {
aa.push(e.url)
})
aa.forEach((e) => {
row.loanCotractImages.push(e)
})
} else {
row.loanCotractImages = []
}
},
changeZFFile(val, row) {
if (val.length > 0) {
const aa = []
val.forEach((e) => {
aa.push(e.url)
})
aa.forEach((e) => {
row.bankContractImages.push(e)
})
} else {
row.bankContractImages = []
}
},
// --
lookGSFile(row) {
this.dialogGSVisible = true
this.dialogGS_list = row
},
handleGSDel(val) {
this.dialogGS_list.forEach((e, index) => {
if (e === val) {
this.dialogGS_list.splice((index, 1))
}
})
this.formobj.loanXdCons.forEach((e) => {
e.loanCotractImages.forEach((h, index) => {
if (h === val) {
e.loanCotractImages.splice(index, 1)
}
})
})
},
// --
lookZFFile(row) {
this.dialogZFVisible = true
this.dialogZF_list = row
},
handleZFDel(val) {
this.dialogZF_list.forEach((e, index) => {
if (e === val) {
this.dialogZF_list.splice((index, 1))
}
})
this.formobj.loanZfCons.forEach((e) => {
e.bankContractImages.forEach((h, index) => {
if (h === val) {
e.bankContractImages.splice(index, 1)
}
})
})
},
submit() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.getUrl()
this.submitdisabled = true
req.save(this.formobj).then((resp) => {
if (resp.success) {
this.$message({ showClose: true, type: 'success', message: '操作成功' })
this.handleReturn('true')
} else {
this.submitdisabled = false
}
}).catch(() => {
this.submitdisabled = false
})
}
})
},
getUrl() {
if (this.image_list1.length > 0) {
const aa = []
for (var a = 0; a < this.image_list1.length; a++) {
aa.push(this.image_list1[a].url)
}
this.formobj.location = aa
} else {
this.formobj.location = []
}
if (this.image_list2.length > 0) {
const bb = []
for (var b = 0; b < this.image_list2.length; b++) {
bb.push(this.image_list2[b].url)
}
this.formobj.house = bb
} else {
this.formobj.house = []
}
if (this.image_list3.length > 0) {
const cc = []
for (var c = 0; c < this.image_list3.length; c++) {
cc.push(this.image_list3[c].url)
}
this.formobj.doorway = cc
} else {
this.formobj.doorway = []
}
if (this.image_list4.length > 0) {
const dd = []
for (var d = 0; d < this.image_list4.length; d++) {
dd.push(this.image_list4[d].url)
}
this.formobj.indoor = dd
} else {
this.formobj.indoor = []
}
if (this.image_list5.length > 0) {
const ee = []
for (var e = 0; e < this.image_list5.length; e++) {
ee.push(this.image_list5[e].url)
}
this.formobj.groupPhoto = ee
} else {
this.formobj.groupPhoto = []
}
if (this.image_list6.length > 0) {
const ff = []
for (var f = 0; f < this.image_list6.length; f++) {
ff.push(this.image_list6[f].url)
}
this.formobj.yhkImages = ff
} else {
this.formobj.yhkImages = []
}
if (this.image_list7.length > 0) {
const gg = []
for (var g = 0; g < this.image_list7.length; g++) {
gg.push(this.image_list7[g].url)
}
this.formobj.houseProperty = gg
} else {
this.formobj.houseProperty = []
}
if (this.image_list8.length > 0) {
const hh = []
for (var h = 0; h < this.image_list8.length; h++) {
hh.push(this.image_list8[h].url)
}
this.formobj.carProperty = hh
} else {
this.formobj.carProperty = []
}
if (this.image_list9.length > 0) {
const ii = []
for (var i = 0; i < this.image_list9.length; i++) {
ii.push(this.image_list9[i].url)
}
this.formobj.lenderIdCard = ii
} else {
this.formobj.lenderIdCard = []
}
if (this.image_list10.length > 0) {
const jj = []
for (var j = 0; j < this.image_list10.length; j++) {
jj.push(this.image_list10[j].url)
}
this.formobj.lenderAccount = jj
} else {
this.formobj.lenderAccount = []
}
if (this.image_list11.length > 0) {
const kk = []
for (var k = 0; k < this.image_list11.length; k++) {
kk.push(this.image_list11[k].url)
}
this.formobj.lenderMarriageCertificate = kk
} else {
this.formobj.lenderMarriageCertificate = []
}
if (this.image_list12.length > 0) {
const ll = []
for (var l = 0; l < this.image_list12.length; l++) {
ll.push(this.image_list12[l].url)
}
this.formobj.lenderDriverBook = ll
} else {
this.formobj.lenderDriverBook = []
}
if (this.image_list13.length > 0) {
const mm = []
for (var m = 0; m < this.image_list13.length; m++) {
mm.push(this.image_list13[m].url)
}
this.formobj.lenderBankStatement = mm
} else {
this.formobj.lenderBankStatement = []
}
if (this.image_list14.length > 0) {
const nn = []
for (var n = 0; n < this.image_list14.length; n++) {
nn.push(this.image_list14[n].url)
}
this.formobj.spouseIdCard = nn
} else {
this.formobj.spouseIdCard = []
}
if (this.image_list15.length > 0) {
const pp = []
for (var p = 0; p < this.image_list15.length; p++) {
pp.push(this.image_list15[p].url)
}
this.formobj.spouseAccount = pp
} else {
this.formobj.spouseAccount = []
}
if (this.image_list16.length > 0) {
const qq = []
for (var q = 0; q < this.image_list16.length; q++) {
qq.push(this.image_list16[q].url)
}
this.formobj.guarantorIdCard = qq
} else {
this.formobj.guarantorIdCard = []
}
if (this.image_list17.length > 0) {
const rr = []
for (var r = 0; r < this.image_list17.length; r++) {
rr.push(this.image_list17[r].url)
}
this.formobj.guarantorAccount = rr
} else {
this.formobj.guarantorAccount = []
}
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {
carProperty: [],
doorway: [],
groupPhoto: [],
guarantorAccount: [],
guarantorIdCard: [],
homeVisitSid: '',
house: [],
houseProperty: [],
indoor: [],
lenderAccount: [],
lenderBankStatement: [],
lenderDriverBook: [],
lenderIdCard: [],
lenderMarriageCertificate: [],
loanXdCons: [],
loanZfCons: [],
location: [],
remarks: '',
saleOrderSid: '',
sid: '',
spouseAccount: [],
spouseIdCard: [],
yhkImages: []
}
this.image_list1 = []
this.image_list2 = []
this.image_list3 = []
this.image_list4 = []
this.image_list5 = []
this.image_list6 = []
this.image_list7 = []
this.image_list8 = []
this.image_list9 = []
this.image_list10 = []
this.image_list11 = []
this.image_list12 = []
this.image_list13 = []
this.image_list14 = []
this.image_list15 = []
this.image_list16 = []
this.image_list17 = []
this.submitdisabled = false
this.dialogGS_list = []
this.dialogZF_list = []
this.$refs['form_obj'].resetFields()
this.$emit('doback')
}
}
}
</script>
<style scoped>
.span-sty {
width: 100px !important;
}
.addinputInfo {
margin-left: 90px !important;
}
.colSty {
display: flex;
flex-direction: row;
justify-content: flex-end;
align-items: center;
}
/deep/ .el-collapse-item__header {
height: 40px;
padding: 10px;
font-weight: bold;
font-size: 20px;
text-align: left;
color: #ffffff;
background-color: #0294d7;
}
/deep/ .el-collapse-item__content {
padding-bottom: 0;
}
.collapse {
padding: 0 10px;
}
/deep/ .collapse .el-collapse-item__header {
height: 40px;
padding: 10px;
font-weight: bold;
font-size: 20px;
text-align: left;
color: #ffffff;
background-color: #87CEFA;
}
.dialogImg {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
</style>

344
anrui-riskcenter-ui/src/views/homevisitdatareview/homevisitdatatobereviewed.vue

@ -0,0 +1,344 @@
<template>
<div class="app-container">
<!-- Start 列表页面 -->
<div v-show="viewState == 1">
<button-bar view-title="家访资料审核管理" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<div class="main-content">
<div class="switch_btn">
<el-button :class="{btn_style:viewState === 1}">待审核</el-button>
<el-button class="" @click="handleClick">已审核</el-button>
</div>
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" class="tab-header">
<el-form-item label="分公司">
<el-input v-model="listQuery.params.useOrgName" clearable placeholder="" class="addinputw"></el-input>
</el-form-item>
<el-form-item label="销售部门">
<el-input v-model="listQuery.params.saleDeptName" clearable placeholder="" class="addinputw"></el-input>
</el-form-item>
<el-form-item label="销售专员">
<el-input v-model="listQuery.params.staffName" clearable placeholder="" class="addinputw"></el-input>
</el-form-item>
<el-form-item label="订单日期">
<el-date-picker v-model="listQuery.params.orderStartDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.orderEndDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="预约家访日期">
<el-date-picker v-model="listQuery.params.resHomeVisStartDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.resHomeVisEndDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="买卖合同编号">
<el-input v-model="listQuery.params.contractNo" clearable placeholder="" class="addinputw"></el-input>
</el-form-item>
<el-form-item label="贷款人">
<el-input v-model="listQuery.params.loanPeoName" clearable placeholder="" class="addinputw"></el-input>
</el-form-item>
<el-form-item label="资方">
<el-input v-model="listQuery.params.bankName" clearable placeholder="" class="addinputw"></el-input>
</el-form-item>
<el-form-item label="金融产品">
<el-input v-model="listQuery.params.policyName" clearable placeholder="" class="addinputw"></el-input>
</el-form-item>
<el-form-item label="家访专员">
<el-input v-model="listQuery.params.homeVisStaffName" clearable placeholder="" class="addinputw"></el-input>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" @click="handleFilter" size="small">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="handleReset" size="small">重置</el-button>
</div>
</div>
</div>
<div class="listtop">
<div class="tit">家访资料待审核列表</div>
<pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;" @selection-change="handleSelectionChange">
<el-table-column fixed width="50" type="selection" align="center"/>
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column label="操作" align="center" width="100">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="handleLook(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column label="家访日期" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.resHomeVisDate }}</span>
</template>
</el-table-column>
<el-table-column label="家访地址" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.homeVisAddress }}</span>
</template>
</el-table-column>
<el-table-column label="分公司" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.useOrgName }}</span>
</template>
</el-table-column>
<el-table-column label="销售部门" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.orgName }}</span>
</template>
</el-table-column>
<el-table-column label="销售专员" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.staffName }}</span>
</template>
</el-table-column>
<el-table-column label="买卖合同编号" align="center" min-width="120">
<template slot-scope="scope">
<span>{{ scope.row.contractNo }}</span>
</template>
</el-table-column>
<el-table-column label="贷款人" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.borrowerName }}</span>
</template>
</el-table-column>
<el-table-column label="手机号码" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.mobile }}</span>
</template>
</el-table-column>
<el-table-column label="资方" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.bankName }}</span>
</template>
</el-table-column>
<el-table-column label="金融产品" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.policyName }}</span>
</template>
</el-table-column>
<el-table-column label="家访专员" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.homeVisStaffName }}</span>
</template>
</el-table-column>
<el-table-column label="考察结果" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.investigateValue }}</span>
</template>
</el-table-column>
</el-table>
</div>
<div class="pages">
<!-- 翻页 -->
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
</div>
</div>
<!-- End 列表页面 -->
<!-- 已选择列表 -->
<homevisitdatareview v-show="viewState == 2" ref="divSelect" @doback="resetState"/>
<!-- 审核 -->
<homevisitdatareviewAdd v-show="viewState == 3" ref="divAdd" @doback="resetState" @reloadlist="getList"/>
<!-- 详情 -->
<homevisitdatareviewInfo v-show="viewState == 4" ref="divInfo" @doback="resetState"/>
</div>
</template>
<script>
import req from '@/api/homevisitdatareview/homevisitdatareview'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import homevisitdatareview from './homevisitdatareview'
import homevisitdatareviewAdd from './homevisitdatareviewAdd'
import homevisitdatareviewInfo from './homevisitdatareviewInfo'
export default {
name: 'HomeVisitDataToBeReviewed',
components: {
Pagination,
pageye,
ButtonBar,
homevisitdatareview,
homevisitdatareviewAdd,
homevisitdatareviewInfo
},
data() {
return {
viewState: 1,
btndisabled: false,
dialogVisible: false,
btnList: [
{
type: 'primary',
size: 'small',
icon: '',
btnKey: 'tobeSelect',
btnLabel: '办理'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
isSearchShow: false,
searchxianshitit: '显示查询条件',
// -----------
tableKey: 0,
list: [],
sids: [],
listLoading: false,
listQuery: {
params: {
contractNo: '',
homeVisStaffName: '',
loanPeoName: '',
menuUrl: '',
bankName: '',
orderEndDate: '',
orderStartDate: '',
orgSidPath: '',
policyName: '',
resHomeVisEndDate: '',
resHomeVisStartDate: '',
saleDeptName: '',
staffName: '',
type: '1',
useOrgName: '',
userSid: ''
},
current: 1,
size: 10,
total: 0
},
contract: '',
rules: {}
}
},
created() {
//
this.getList()
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'tobeSelect':
this.tobeSelect()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
//
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
handleSelectionChange(row) {
const aa = []
row.forEach((element) => {
aa.push(element.sid)
})
this.sids = aa
},
//
getList() {
this.listLoading = true
this.listQuery.params.orgSidPath = window.sessionStorage.getItem('defaultOrgPath')
this.listQuery.params.menuUrl = this.$route.path
this.listQuery.params.userSid = window.sessionStorage.getItem('userSid')
req.listPage(this.listQuery).then((response) => {
this.listLoading = false
if (response.success) {
this.list = response.data.records
this.listQuery.total = response.data.total
} else {
this.list = []
this.listQuery.total = 0
}
})
},
tobeSelect() {
if (this.sids.length === 1) {
this.viewState = 3
this.$refs['divAdd'].showEdit(this.sids[0])
} else {
this.$message({ showClose: true, type: 'error', message: '请选择一条记录进行操作' })
}
},
handleLook(row) {
this.viewState = 4
this.$refs['divInfo'].showInfo(row.sid)
},
handleClick() {
this.viewState = 2
this.$refs['divSelect'].getList()
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
handleReset() {
this.listQuery = {
params: {
contractNo: '',
homeVisStaffName: '',
loanPeoName: '',
menuUrl: '',
bankName: '',
orderEndDate: '',
orderStartDate: '',
orgSidPath: '',
policyName: '',
resHomeVisEndDate: '',
resHomeVisStartDate: '',
saleDeptName: '',
staffName: '',
type: '1',
useOrgName: '',
userSid: ''
},
current: 1,
size: 10,
total: 0
}
this.getList()
},
resetState() {
this.viewState = 1
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
.btn_style {
background-color: #018ad2;
color: white;
font-weight: 600;
}
</style>

3
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java

@ -11,6 +11,9 @@ public enum LoanFileEnum {
REGISTRATION_FILES_TWO("002", "登记证(3、4页)"),
TAXI_FILES("003", "营运证"),
DRIVING_CARD_FILES("004", "行驶证"),
HOME_VISIT_FILES("005", "非担保业务进度家访考察结果"),
CREDIT_REVIEW_FILES("006", "非担保业务进度资方信审结果"),
LOAN_REVIEW_FILES("007", "非担保业务进度资方放款审核结果"),
;

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinotherPolicy/LoanFinOtherPolicy.java

@ -1,5 +1,7 @@
package com.yxt.anrui.riskcenter.api.loanfinotherPolicy;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
@ -37,8 +39,10 @@ public class LoanFinOtherPolicy extends BaseEntity {
@ApiModelProperty("车辆大类value")
private String vehCategoryValue;
@ApiModelProperty("车辆功能key")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private String vehTypeKey;
@ApiModelProperty("车辆功能value")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private String vehTypeValue;
@ApiModelProperty("最高融资额比例(%)")
private BigDecimal maxLoanRatio;

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicy/LoanFinPolicyDto.java

@ -32,12 +32,12 @@ public class LoanFinPolicyDto implements Dto {
private String vehCategoryKey;
@ApiModelProperty("车辆大类value")
private String vehCategoryValue;
private List<String> vehTypeKeyList;
private List<String> vehTypeKeyList = new ArrayList<>();
@ApiModelProperty("车辆功能key")
private String vehTypeKey;
@ApiModelProperty("车辆功能value")
private String vehTypeValue;
private List<String> vehTypeValueList;
private List<String> vehTypeValueList = new ArrayList<>();
@ApiModelProperty("是否打包:1打包、0不打包")
private int isPack;
@ApiModelProperty("担保类型key")

3
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicy/LoanFinPolicyVo.java

@ -97,4 +97,7 @@ public class LoanFinPolicyVo implements Vo {
private String discountUseType;
@ApiModelProperty("贴息放款类型key")
private String discountUseTypeKey;
private List<String> vehTypeKeyList;
private List<String> vehTypeValueList;
}

36
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReview.java

@ -0,0 +1,36 @@
package com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview;
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;
/**
* @author Administrator
* @description
* @date 2023/8/16 14:34
*/
@Data
@ApiModel(value = "公司非担保业务进度维护", description = "公司非担保业务进度维护")
@TableName("loan_noguarantee_credit_review")
public class LoanNoGuaranteeCreditReview extends BaseEntity {
@ApiModelProperty("销售订单sid")
private String salesOrderSid;
@ApiModelProperty("家访考察结果")
private String homeVisit;
@ApiModelProperty("家访考察日期")
private String homeVisitDate;
@ApiModelProperty("信审终审结果")
private String creditReview;
@ApiModelProperty("信审终审日期")
private String creditReviewDate;
@ApiModelProperty("放款审核结果")
private String loanReview;
@ApiModelProperty("放款审核日期")
private String loanReviewDate;
@ApiModelProperty("是否放款")
private String isLoan;
@ApiModelProperty("放款日期")
private String isLoanDate;
}

44
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewDetailsVo.java

@ -0,0 +1,44 @@
package com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/8/21 9:13
*/
@Data
public class LoanNoGuaranteeCreditReviewDetailsVo implements Vo {
private String salesOrderSid;
@ApiModelProperty("销售专员")
private String salesman;
@ApiModelProperty("贷款人")
private String borrowerName;
@ApiModelProperty("家访考察结果")
private String homeVisit;
@ApiModelProperty("家访考察日期")
private String homeVisitDate;
@ApiModelProperty("信审终审结果")
private String creditReview;
@ApiModelProperty("信审终审日期")
private String creditReviewDate;
@ApiModelProperty("放款审核结果")
private String loanReview;
@ApiModelProperty("放款审核日期")
private String loanReviewDate;
@ApiModelProperty("是否放款")
private String isLoan;
@ApiModelProperty("放款日期")
private String isLoanDate;
@ApiModelProperty("家访考察结果截图")
private List<String> homeVisitFiles = new ArrayList<>();
@ApiModelProperty("信审终审结果截图")
private List<String> creditReviewFiles = new ArrayList<>();
@ApiModelProperty("放款审核结果截图")
private List<String> loanReviewFiles = new ArrayList<>();
}

46
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewDto.java

@ -0,0 +1,46 @@
package com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/8/21 9:12
*/
@Data
public class LoanNoGuaranteeCreditReviewDto implements Dto {
private String salesOrderSid;
@ApiModelProperty("销售专员")
private String salesman;
@ApiModelProperty("贷款人")
private String borrowerName;
@ApiModelProperty("家访考察结果")
private String homeVisit;
@ApiModelProperty("家访考察日期")
private String homeVisitDate;
@ApiModelProperty("信审终审结果")
private String creditReview;
@ApiModelProperty("信审终审日期")
private String creditReviewDate;
@ApiModelProperty("放款审核结果")
private String loanReview;
@ApiModelProperty("放款审核日期")
private String loanReviewDate;
@ApiModelProperty("是否放款")
private String isLoan;
@ApiModelProperty("放款日期")
private String isLoanDate;
@ApiModelProperty("家访考察结果截图")
private List<String> homeVisitFiles = new ArrayList<>();
@ApiModelProperty("信审终审结果截图")
private List<String> creditReviewFiles = new ArrayList<>();
@ApiModelProperty("放款审核结果截图")
private List<String> loanReviewFiles = new ArrayList<>();
}

25
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewFallback.java

@ -0,0 +1,25 @@
package com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
/**
* @author Administrator
* @description
* @date 2023/8/16 14:36
*/
@Component
public class LoanNoGuaranteeCreditReviewFallback implements LoanNoGuaranteeCreditReviewFeign {
@Override
public ResultBean<LoanNoGuaranteeCreditReviewDetailsVo> details(String salesOrderSid) {
return null;
}
@Override
public ResultBean<String> saveReviewInfo(LoanNoGuaranteeCreditReviewDto dto) {
return null;
}
}

41
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewFeign.java

@ -0,0 +1,41 @@
package com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanAuditInfoDto;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
/**
* @description: 风控参数
* @author: fan
* @date: 2023/7/6
**/
@Api(tags = "公司非担保业务进度维护")
@FeignClient(
contextId = "anrui-riskcenter-LoanNoGuaranteeCreditReview",
name = "anrui-riskcenter",
path = "v1/noguaranteereview",
fallback = LoanNoGuaranteeCreditReviewFallback.class)
public interface LoanNoGuaranteeCreditReviewFeign {
@ApiOperation("编辑回显、详情")
@PostMapping("/details")
@ResponseBody
public ResultBean<LoanNoGuaranteeCreditReviewDetailsVo> details(@RequestParam("salesOrderSid") String salesOrderSid);
/**
* 办理保存
*
* @param
*/
@ApiOperation("审核保存")
@PostMapping("/saveReviewInfo")
public ResultBean<String> saveReviewInfo(@RequestBody LoanNoGuaranteeCreditReviewDto dto);
}

29
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewQuery.java

@ -0,0 +1,29 @@
package com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/8/16 15:05
*/
@Data
public class LoanNoGuaranteeCreditReviewQuery implements Query {
@ApiModelProperty("参数编码")
private String parameterNo;
@ApiModelProperty("参数名称")
private String parameterName;
@ApiModelProperty("组织全路径")
private String orgPath;
@ApiModelProperty("菜单sid")
private String menuSid;
@ApiModelProperty("菜单url")
private String menuUrl;
@ApiModelProperty("用户sid")
private String userSid;
}

23
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewVo.java

@ -0,0 +1,23 @@
package com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/8/16 15:04
*/
@Data
public class LoanNoGuaranteeCreditReviewVo implements Vo {
private String sid;
@ApiModelProperty("参数编码")
private String parameterNo;
@ApiModelProperty("参数名称")
private String parameterName;
@ApiModelProperty("参数值")
private String parameterValue;
@ApiModelProperty("备注")
private String remarks;
}

36
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/AppRepaymentPlanDetailsVo.java

@ -0,0 +1,36 @@
package com.yxt.anrui.riskcenter.api.loanrepaymentschedule;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/9/11 14:00
*/
@Data
public class AppRepaymentPlanDetailsVo implements Vo {
@ApiModelProperty("sid")
private String sid;
@ApiModelProperty("合同号")
private String contractId;
@ApiModelProperty("贷款人名称")
private String lenderName;
@ApiModelProperty("车辆台数")
private String carNumber;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("资方")
private String managementName;
@ApiModelProperty("金融产品")
private String financial;
@ApiModelProperty("销售专员")
private String salesName;
private List<AppRepaymentPlanListDetailsVo> records = new ArrayList<>();
}

21
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/AppRepaymentPlanListDetailsVo.java

@ -0,0 +1,21 @@
package com.yxt.anrui.riskcenter.api.loanrepaymentschedule;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/9/11 14:03
*/
@Data
public class AppRepaymentPlanListDetailsVo implements Vo {
private String times;
private String otherTimes;
private String number;
private String total;
private String month;
private String monthlyPayment;
private String otherMonthlyPayment;
private String companyMonthlyPayment;
}

23
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/AppRepaymentPlanQuery.java

@ -0,0 +1,23 @@
package com.yxt.anrui.riskcenter.api.loanrepaymentschedule;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/9/11 11:56
*/
@Data
public class AppRepaymentPlanQuery implements Query {
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("合同编号/贷款人姓名/资方名称")
private String names;
@ApiModelProperty("当前组织机构全路径sid")
private String orgPath;
}

32
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/AppRepaymentPlanVo.java

@ -0,0 +1,32 @@
package com.yxt.anrui.riskcenter.api.loanrepaymentschedule;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/9/11 11:54
*/
@Data
public class AppRepaymentPlanVo implements Vo {
@ApiModelProperty("业务sid")
private String sid;
@ApiModelProperty("消贷合同编号")
private String contractId;
@ApiModelProperty("贷款人名称")
private String lenderName;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("资方")
private String managementName;
@ApiModelProperty("金融产品")
private String financial;
@ApiModelProperty("销售专员")
private String salesName;
@ApiModelProperty("车辆台数")
private String carNum;
@ApiModelProperty("下载路径")
private String downloadUrl;
}

6
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentSchedule.java

@ -22,6 +22,10 @@ public class LoanRepaymentSchedule extends BaseEntity {
private String salesOrderSid;
@ApiModelProperty("借款人sid")
private String borrowerSid;
@ApiModelProperty("销售专员sid")
private String staffSid;
@ApiModelProperty("销售专员")
private String staffName;
@ApiModelProperty("借款人名称")
private String borrowerName;
@ApiModelProperty("车架号")
@ -32,6 +36,8 @@ public class LoanRepaymentSchedule extends BaseEntity {
private String loanContractNo;
@ApiModelProperty("资方名称")
private String bankName;
@ApiModelProperty("金融产品政策")
private String policyName;
@ApiModelProperty("主产品期数")
private String mainPeriod;
@ApiModelProperty("主产品首期还款日")

22
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeign.java

@ -1,6 +1,10 @@
package com.yxt.anrui.riskcenter.api.loanrepaymentschedule;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationQuery;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationVo;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
@ -44,4 +48,22 @@ public interface LoanRepaymentScheduleFeign {
public ResultBean<List<LoanCreateScheduleVinOneVo>> viewVinOneSchedule(@RequestParam("salesOrderSid") String salesOrderSid);
//-------------------------app接口--------------------
/**
* 根据条件分页查询数据的列表已测试
*
* @param pq
*/
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/getRepaymentPlanList")
@ResponseBody
public ResultBean<PagerVo<AppRepaymentPlanVo>> getRepaymentPlanList(@RequestBody PagerQuery<AppRepaymentPlanQuery> pq);
@ApiOperation("查看还款计划表")
@GetMapping("/getRepaymentPlanListBySid")
@ResponseBody
public ResultBean<AppRepaymentPlanDetailsVo> getRepaymentPlanListBySid(@RequestParam("sid") String sid);
}

12
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeignFallback.java

@ -1,6 +1,8 @@
package com.yxt.anrui.riskcenter.api.loanrepaymentschedule;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
import java.util.List;
@ -32,4 +34,14 @@ public class LoanRepaymentScheduleFeignFallback implements LoanRepaymentSchedule
public ResultBean<List<LoanCreateScheduleVinOneVo>> viewVinOneSchedule(String salesOrderSid) {
return null;
}
@Override
public ResultBean<PagerVo<AppRepaymentPlanVo>> getRepaymentPlanList(PagerQuery<AppRepaymentPlanQuery> pq) {
return null;
}
@Override
public ResultBean<AppRepaymentPlanDetailsVo> getRepaymentPlanListBySid(String sid) {
return null;
}
}

4
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicy/LoanFinPolicyRest.java

@ -69,7 +69,7 @@ public class LoanFinPolicyRest implements LoanFinPolicyFeign {
}
@Override
public ResultBean<List<PolicyVo>> selectList(String orgPath, String userSid,String isPack,String name) {
return loanFinPolicyService.selectList(orgPath,userSid,isPack,name);
public ResultBean<List<PolicyVo>> selectList(String orgPath, String userSid, String isPack, String name) {
return loanFinPolicyService.selectList(orgPath, userSid, isPack, name);
}
}

36
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicy/LoanFinPolicyService.java

@ -146,6 +146,14 @@ public class LoanFinPolicyService extends MybatisBaseService<LoanFinPolicyMapper
loanFinOtherPolicy.setCreateOrgSid(useOrgSid);
loanFinOtherPolicy.setUseOrgName(useOrgName);
loanFinOtherPolicy.setCreateOrgName(useOrgName);
if (!vehTypeKeyList.isEmpty()) {
String vehTypeKey = String.join(",", vehTypeKeyList);
loanFinOtherPolicy.setVehTypeKey(vehTypeKey);
}
if (!vehTypeValueList.isEmpty()) {
String vehTypeValue = String.join(",", vehTypeValueList);
loanFinOtherPolicy.setVehTypeValue(vehTypeValue);
}
loanFinOtherPolicyService.insert(loanFinOtherPolicy);
} else {
loanFinPolicy.setIsOtherProduct(0);
@ -202,6 +210,18 @@ public class LoanFinPolicyService extends MybatisBaseService<LoanFinPolicyMapper
name = name + loanFinOtherPolicy.getMaxLoanRatio() + "%";
}
loanFinOtherPolicy.setOtherPolicyName(name);
if (!vehTypeKeyList.isEmpty()) {
String vehTypeKey = String.join(",", vehTypeKeyList);
loanFinOtherPolicy.setVehTypeKey(vehTypeKey);
}else{
loanFinOtherPolicy.setVehTypeKey("");
}
if (!vehTypeValueList.isEmpty()) {
String vehTypeValue = String.join(",", vehTypeValueList);
loanFinOtherPolicy.setVehTypeValue(vehTypeValue);
}else{
loanFinOtherPolicy.setVehTypeValue("");
}
loanFinOtherPolicyService.updateById(loanFinOtherPolicy);
} else {
loanFinOtherPolicy = new LoanFinOtherPolicy();
@ -220,6 +240,14 @@ public class LoanFinPolicyService extends MybatisBaseService<LoanFinPolicyMapper
name = name + loanFinOtherPolicy.getMaxLoanRatio() + "%";
}
loanFinOtherPolicy.setOtherPolicyName(name);
if (!vehTypeKeyList.isEmpty()) {
String vehTypeKey = String.join(",", vehTypeKeyList);
loanFinOtherPolicy.setVehTypeKey(vehTypeKey);
}
if (!vehTypeValueList.isEmpty()) {
String vehTypeValue = String.join(",", vehTypeValueList);
loanFinOtherPolicy.setVehTypeValue(vehTypeValue);
}
loanFinOtherPolicyService.insert(loanFinOtherPolicy);
}
}
@ -269,6 +297,14 @@ public class LoanFinPolicyService extends MybatisBaseService<LoanFinPolicyMapper
return rb.setMsg("该金融产品政策不存在");
}
BeanUtil.copyProperties(loanFinPolicy, loanFinPolicyVo);
if (StringUtils.isNotBlank(loanFinPolicyVo.getVehTypeKey())) {
List<String> listKey = Arrays.asList(loanFinPolicyVo.getVehTypeKey().split(","));
loanFinPolicyVo.setVehTypeKeyList(listKey);
}
if (StringUtils.isNotBlank(loanFinPolicyVo.getVehTypeValue())) {
List<String> listValue = Arrays.asList(loanFinPolicyVo.getVehTypeValue().split(","));
loanFinPolicyVo.setVehTypeValueList(listValue);
}
loanFinPolicyVo.setOrgPath(loanFinPolicy.getOrgSidPath());
loanFinPolicyVo.setUserSid(loanFinPolicy.getCreateBySid());
if (loanFinPolicy.getIsOtherProduct() == 1) {

26
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewMapper.java

@ -0,0 +1,26 @@
package com.yxt.anrui.riskcenter.biz.loannoguaranteecreditreview;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview.LoanNoGuaranteeCreditReview;
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameter;
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
/**
* @description:
* @author: fan
* @date: 2023/8/21
**/
@Mapper
public interface LoanNoGuaranteeCreditReviewMapper extends BaseMapper<LoanNoGuaranteeCreditReview> {
@Select("SELECT * FROM loan_noguarantee_credit_review WHERE salesOrderSid = #{salesOrderSid}")
LoanNoGuaranteeCreditReview selectOneByOrderSid(String salesOrderSid);
}

5
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewMapper.xml

@ -0,0 +1,5 @@
<?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.loannoguaranteecreditreview.LoanNoGuaranteeCreditReviewMapper">
</mapper>

38
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewRest.java

@ -0,0 +1,38 @@
package com.yxt.anrui.riskcenter.biz.loannoguaranteecreditreview;
import com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview.LoanNoGuaranteeCreditReviewDetailsVo;
import com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview.LoanNoGuaranteeCreditReviewDto;
import com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview.LoanNoGuaranteeCreditReviewFeign;
import com.yxt.anrui.riskcenter.api.loanparameter.*;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @description:
* @author: fan
* @date: 2023/8/21
**/
@Api(tags = "公司非担保业务进度维护")
@RestController
@RequestMapping("v1/noguaranteereview")
public class LoanNoGuaranteeCreditReviewRest implements LoanNoGuaranteeCreditReviewFeign {
@Autowired
private LoanNoGuaranteeCreditReviewService loanNoGuaranteeCreditReviewService;
@Override
public ResultBean<LoanNoGuaranteeCreditReviewDetailsVo> details(String salesOrderSid) {
return loanNoGuaranteeCreditReviewService.details(salesOrderSid);
}
@Override
public ResultBean<String> saveReviewInfo(LoanNoGuaranteeCreditReviewDto dto) {
return loanNoGuaranteeCreditReviewService.saveReviewInfo(dto);
}
}

152
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewService.java

@ -0,0 +1,152 @@
package com.yxt.anrui.riskcenter.biz.loannoguaranteecreditreview;
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.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
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.riskcenter.api.loanfile.LoanFile;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum;
import com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview.LoanNoGuaranteeCreditReview;
import com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview.LoanNoGuaranteeCreditReviewDetailsVo;
import com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview.LoanNoGuaranteeCreditReviewDto;
import com.yxt.anrui.riskcenter.api.loanparameter.*;
import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService;
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.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
/**
* @description:
* @author: fan
* @date: 2023/8/21
**/
@Service
public class LoanNoGuaranteeCreditReviewService extends MybatisBaseService<LoanNoGuaranteeCreditReviewMapper, LoanNoGuaranteeCreditReview> {
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private BusSalesOrderFeign busSalesOrderFeign;
@Autowired
private BusSalesOrderBorrowerFeign busSalesOrderBorrowerFeign;
@Autowired
private LoanFileService loanFileService;
@Autowired
private FileUploadComponent fileUploadComponent;
public ResultBean<LoanNoGuaranteeCreditReviewDetailsVo> details(String salesOrderSid) {
ResultBean<LoanNoGuaranteeCreditReviewDetailsVo> rb = ResultBean.fireFail();
LoanNoGuaranteeCreditReviewDetailsVo vo = new LoanNoGuaranteeCreditReviewDetailsVo();
LoanNoGuaranteeCreditReview entity = baseMapper.selectOneByOrderSid(salesOrderSid);
BeanUtil.copyProperties(entity, vo);
String sid = "";
if (StringUtils.isNotBlank(entity.getSid())) {
sid = entity.getSid();
}
BusSalesOrder busSalesOrder = busSalesOrderFeign.fetchBySid(salesOrderSid).getData();
if (null != busSalesOrder) {
if (StringUtils.isNotBlank(busSalesOrder.getStaffName())) {
vo.setSalesman(busSalesOrder.getStaffName());
}
}
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsByOrderSid(salesOrderSid).getData();
if (null != borrowerDetailsVo) {
if (StringUtils.isNotBlank(borrowerDetailsVo.getBorrowerName())) {
vo.setBorrowerName(borrowerDetailsVo.getBorrowerName());
}
}
//家访考察结果截图
List<LoanFile> fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.HOME_VISIT_FILES.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> homeVisitFiles = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).
collect(Collectors.toList());
vo.setHomeVisitFiles(homeVisitFiles);
}
//信审终审结果截图
fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.CREDIT_REVIEW_FILES.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> creditReviewFiles = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList());
vo.setCreditReviewFiles(creditReviewFiles);
}
//放款审核结果截图
fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.LOAN_REVIEW_FILES.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> loanReviewFiles = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList());
vo.setLoanReviewFiles(loanReviewFiles);
}
return rb.success().setData(vo);
}
public ResultBean<String> saveReviewInfo(LoanNoGuaranteeCreditReviewDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
String salesOrderSid = dto.getSalesOrderSid();
LoanNoGuaranteeCreditReview entity = baseMapper.selectOneByOrderSid(salesOrderSid);
if (null != entity) {
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
String sid = entity.getSid();
//删除附件表中关于该linkSid的文件
loanFileService.deleteByLinkSid(sid);
List<String> homeVisitFiles = dto.getHomeVisitFiles();
if (!homeVisitFiles.isEmpty()) {
loanFileService.saveAll(sid, homeVisitFiles, LoanFileEnum.HOME_VISIT_FILES.getAttachType());
}
List<String> creditReviewFiles = dto.getCreditReviewFiles();
if (!creditReviewFiles.isEmpty()) {
loanFileService.saveAll(sid, creditReviewFiles, LoanFileEnum.CREDIT_REVIEW_FILES.getAttachType());
}
List<String> loanReviewFiles = dto.getLoanReviewFiles();
if (!loanReviewFiles.isEmpty()) {
loanFileService.saveAll(sid, loanReviewFiles, LoanFileEnum.LOAN_REVIEW_FILES.getAttachType());
}
} else {
LoanNoGuaranteeCreditReview loanNoGuaranteeCreditReview = new LoanNoGuaranteeCreditReview();
BeanUtil.copyProperties(dto, loanNoGuaranteeCreditReview, "id", "sid");
baseMapper.insert(loanNoGuaranteeCreditReview);
String sid = loanNoGuaranteeCreditReview.getSid();
//删除附件表中关于该linkSid的文件
loanFileService.deleteByLinkSid(sid);
List<String> homeVisitFiles = dto.getHomeVisitFiles();
if (!homeVisitFiles.isEmpty()) {
loanFileService.saveAll(sid, homeVisitFiles, LoanFileEnum.HOME_VISIT_FILES.getAttachType());
}
List<String> creditReviewFiles = dto.getCreditReviewFiles();
if (!creditReviewFiles.isEmpty()) {
loanFileService.saveAll(sid, creditReviewFiles, LoanFileEnum.CREDIT_REVIEW_FILES.getAttachType());
}
List<String> loanReviewFiles = dto.getLoanReviewFiles();
if (!loanReviewFiles.isEmpty()) {
loanFileService.saveAll(sid, loanReviewFiles, LoanFileEnum.LOAN_REVIEW_FILES.getAttachType());
}
}
return rb.success().setData(salesOrderSid);
}
}

4
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java

@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameter;
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterVo;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.AppRepaymentPlanVo;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentSchedule;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformation;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -21,4 +23,6 @@ public interface LoanRepaymentScheduleMapper extends BaseMapper<LoanRepaymentSch
LoanRepaymentSchedule selectByOrderSid(String salesOrderSid);
IPage<AppRepaymentPlanVo> getRepaymentPlanList(IPage<LoanRepaymentSchedule> page, @Param(Constants.WRAPPER) QueryWrapper<LoanWarrantInformation> qw);
}

16
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml

@ -8,4 +8,20 @@
from loan_repayment_schedule
where salesOrderSid = #{salesOrderSid}
</select>
<select id="getRepaymentPlanList"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymentschedule.AppRepaymentPlanVo">
SELECT sid,
loanContractNo as contractId,
borrowerName as lenderName,
vinNo,
bankName as managementName,
policyName as financial,
staffName as salesName,
vehCount as carNum,
schedulePath as downloadUrl
from loan_repayment_schedule
<where>
${ew.sqlSegment}
</where>
</select>
</mapper>

15
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleRest.java

@ -2,7 +2,10 @@ package com.yxt.anrui.riskcenter.biz.loanrepaymentschedule;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.*;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationVo;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
@ -42,4 +45,16 @@ public class LoanRepaymentScheduleRest implements LoanRepaymentScheduleFeign {
public ResultBean<List<LoanCreateScheduleVinOneVo>> viewVinOneSchedule(String salesOrderSid) {
return loanRepaymentScheduleService.viewVinOneSchedule(salesOrderSid);
}
@Override
public ResultBean<PagerVo<AppRepaymentPlanVo>> getRepaymentPlanList(PagerQuery<AppRepaymentPlanQuery> pq) {
ResultBean<PagerVo<AppRepaymentPlanVo>> rb = ResultBean.fireFail();
PagerVo<AppRepaymentPlanVo> page = loanRepaymentScheduleService.getRepaymentPlanList(pq);
return rb.success().setData(page);
}
@Override
public ResultBean<AppRepaymentPlanDetailsVo> getRepaymentPlanListBySid(String sid) {
return loanRepaymentScheduleService.getRepaymentPlanListBySid(sid);
}
}

237
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java

@ -2,6 +2,10 @@ package com.yxt.anrui.riskcenter.biz.loanrepaymentschedule;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorder.SolutionsDetailsssVo;
import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusSalesOrderLoancontract;
import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusSalesOrderLoancontractFeign;
@ -11,18 +15,25 @@ import com.yxt.anrui.buscenter.api.busvehicledatahandover.BusDataListPdfVo;
import com.yxt.anrui.buscenter.api.busvehicledatahandover.BusVehicleDataHandoverPdfVo;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
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.riskcenter.api.loanrepaymentschedule.*;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo;
import com.yxt.anrui.riskcenter.api.loansolutionsotherpolicy.LoanSolutionsOtherpolicy;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformation;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationQuery;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationVo;
import com.yxt.anrui.riskcenter.biz.loansolutions.LoanSolutionsService;
import com.yxt.anrui.riskcenter.biz.loansolutionsotherpolicy.LoanSolutionsOtherpolicyService;
import com.yxt.common.base.config.component.DocPdfComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.base.utils.WordConvertUtils;
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 org.springframework.transaction.annotation.Transactional;
@ -59,6 +70,8 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign;
@Autowired
private DocPdfComponent docPdfComponent;
@Autowired
private BusSalesOrderFeign busSalesOrderFeign;
/**
* 根据销售订单SID生成还款计划表回显
@ -215,6 +228,15 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
} else {
LoanRepaymentSchedule entity = new LoanRepaymentSchedule();
BeanUtil.copyProperties(dto, entity, "id", "sid");
BusSalesOrder busSalesOrder = busSalesOrderFeign.fetchBySid(dto.getSalesOrderSid()).getData();
if (null != busSalesOrder) {
if (StringUtils.isNotBlank(busSalesOrder.getCreateBySid())) {
entity.setStaffSid(busSalesOrder.getCreateBySid());
}
if (StringUtils.isNotBlank(busSalesOrder.getStaffName())) {
entity.setStaffName(busSalesOrder.getStaffName());
}
}
List<BusSalesOrderVehicle> busSalesOrderVehicles = busSalesOrderVehicleFeign.selectListByOrderSid(dto.getSalesOrderSid()).getData();
busSalesOrderVehicles.removeAll(Collections.singleton(null));
if (!busSalesOrderVehicles.isEmpty()) {
@ -231,6 +253,9 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
if (StringUtils.isNotBlank(loancontract.getBankName())) {
entity.setBankName(loancontract.getBankName());
}
if (StringUtils.isNotBlank(loancontract.getPolicyName())) {
entity.setPolicyName(loancontract.getPolicyName());
}
}
baseMapper.insert(entity);
}
@ -518,4 +543,216 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
}
return rb.success().setData(list);
}
//---------------------app接口----------------------------
public PagerVo<AppRepaymentPlanVo> getRepaymentPlanList(PagerQuery<AppRepaymentPlanQuery> pq) {
IPage<LoanRepaymentSchedule> page = PagerUtil.queryToPage(pq);
AppRepaymentPlanQuery pagerQuery = pq.getParams();
QueryWrapper<LoanWarrantInformation> qw = new QueryWrapper<>();
qw.eq("isDelete", 0);
qw.orderByDesc("createTime");
qw.eq("staffSid", pagerQuery.getUserSid());
if (StringUtils.isNotBlank(pagerQuery.getNames())) {
qw.and(wrapper -> wrapper.like("loanContractNo", pagerQuery.getNames()).or().like("borrowerName", pagerQuery.getNames()).or().like("bankName", pagerQuery.getNames()));
}
IPage<AppRepaymentPlanVo> pagging = baseMapper.getRepaymentPlanList(page, qw);
List<AppRepaymentPlanVo> records = pagging.getRecords();
records.removeAll(Collections.singleton(null));
if (!records.isEmpty()) {
String urlPrefix = docPdfComponent.getPrefixTemplateUrl();
for (AppRepaymentPlanVo record : records) {
if (StringUtils.isNotBlank(record.getDownloadUrl())) {
record.setDownloadUrl(urlPrefix + record.getDownloadUrl());
}
}
}
PagerVo<AppRepaymentPlanVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean<AppRepaymentPlanDetailsVo> getRepaymentPlanListBySid(String sid) {
ResultBean<AppRepaymentPlanDetailsVo> rb = ResultBean.fireFail();
AppRepaymentPlanDetailsVo vo = new AppRepaymentPlanDetailsVo();
LoanRepaymentSchedule schedule = fetchBySid(sid);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String mainDate = "";
String otherDate = "";
String isOther = "";
BigDecimal mainF = new BigDecimal(0);
BigDecimal otherF = new BigDecimal(0);
BigDecimal mainM = new BigDecimal(0);
BigDecimal otherM = new BigDecimal(0);
BigDecimal mainL = new BigDecimal(0);
BigDecimal otherL = new BigDecimal(0);
if (null != schedule) {
vo.setSid(sid);
if (StringUtils.isNotBlank(schedule.getLoanContractNo())) {
vo.setContractId(schedule.getLoanContractNo());
}
if (StringUtils.isNotBlank(schedule.getBorrowerName())) {
vo.setLenderName(schedule.getBorrowerName());
}
if (StringUtils.isNotBlank(schedule.getVehCount())) {
vo.setCarNumber(schedule.getVehCount());
}
if (StringUtils.isNotBlank(schedule.getVinNo())) {
vo.setVinNo(schedule.getVinNo());
}
if (StringUtils.isNotBlank(schedule.getBankName())) {
vo.setManagementName(schedule.getBankName());
}
if (StringUtils.isNotBlank(schedule.getPolicyName())) {
vo.setFinancial(schedule.getPolicyName());
}
if (StringUtils.isNotBlank(schedule.getStaffName())) {
vo.setSalesName(schedule.getStaffName());
}
if (null != schedule.getMainRepayDate()) {
mainDate = sdf.format(schedule.getMainRepayDate());
}
if (null != schedule.getOtherRepayDate()) {
otherDate = sdf.format(schedule.getOtherRepayDate());
}
String mainRepayDate = "";
String otherRepayDate = "";
//主产品月还日
if (StringUtils.isNotBlank(mainDate)) {
String[] splitMainDate = mainDate.split("-");
String day = splitMainDate[2];
if (day.length() == 2 && Integer.parseInt(day) >= 10) {
mainRepayDate = day;
} else {
mainRepayDate = day.replace("0", "");
}
}
//其他融月还日
if (StringUtils.isNotBlank(otherDate)) {
String[] splitOtherDate = otherDate.split("-");
String day = splitOtherDate[2];
if (day.length() == 2 && Integer.parseInt(day) >= 10) {
otherRepayDate = day;
} else {
otherRepayDate = day.replace("0", "");
}
}
//月还金额
if (null != schedule.getMainFirstRepay()) {
mainF = schedule.getMainFirstRepay();
}
if (null != schedule.getMainMidRepay()) {
mainM = schedule.getMainMidRepay();
}
if (null != schedule.getMainLastRepay()) {
mainL = schedule.getMainLastRepay();
}
if (null != schedule.getOtherFirstRepay()) {
otherF = schedule.getOtherFirstRepay();
}
if (null != schedule.getOtherMidRepay()) {
otherM = schedule.getOtherMidRepay();
}
if (null != schedule.getOtherLastRepay()) {
otherL = schedule.getOtherLastRepay();
}
//-----还款计划表列表信息-------
List<AppRepaymentPlanListDetailsVo> scheduleVins = new ArrayList<>();
if (StringUtils.isNotBlank(schedule.getMainPeriod())) {
int mainPeriod = Integer.parseInt(schedule.getMainPeriod());
if (StringUtils.isNotBlank(schedule.getIsOtherPolicy())) {
isOther = schedule.getIsOtherPolicy();
}
String otherPer = "";
if (StringUtils.isNotBlank(schedule.getOtherPeriod())) {
otherPer = schedule.getOtherPeriod();
}
int otherMidPer = 0;
int otherLastPer = 0;
String month = "";
String year = "";
String moth = "";
String otherMoth = "";
String otherFDate = "";
String otherMonth = "";
if (StringUtils.isNotBlank(mainDate)) {
String[] splitMain = mainDate.split("-");
year = splitMain[0];
moth = splitMain[1];
if (moth.length() == 2 && Integer.parseInt(moth) >= 10) {
month = moth;
} else {
month = moth.replace("0", "");
}
}
if (StringUtils.isNotBlank(otherDate)) {
String[] splitOther = otherDate.split("-");
otherMoth = splitOther[1];
if (otherMoth.length() == 2 && Integer.parseInt(otherMoth) >= 10) {
otherMonth = otherMoth;
} else {
otherMonth = otherMoth.replace("0", "");
}
otherFDate = splitOther[0] + otherMonth;
}
for (int i = 1; i <= mainPeriod; i++) {
String yearMonth = year + month;
AppRepaymentPlanListDetailsVo scheduleVo = new AppRepaymentPlanListDetailsVo();
scheduleVo.setTimes(mainRepayDate);
scheduleVo.setOtherTimes(otherRepayDate);
scheduleVo.setMonth(year + "年" + month + "月");
scheduleVo.setNumber(String.valueOf(i));
int m = Integer.parseInt(month);
month = String.valueOf(++m);
if (Integer.parseInt(month) > 12) {
int y = Integer.parseInt(year);
year = String.valueOf(++y);
month = "1";
}
if (isOther.equals("1")) {
//首期
if (i == 1) {
scheduleVo.setMonthlyPayment(mainF.toString());
} else if (i == mainPeriod) {
scheduleVo.setMonthlyPayment(mainL.toString());
} else {
scheduleVo.setMonthlyPayment(mainM.toString());
}
if ((yearMonth.equals(otherFDate))) {
scheduleVo.setOtherMonthlyPayment(otherF.toString());
scheduleVo.setTotal((new BigDecimal(scheduleVo.getMonthlyPayment()).add(otherF)).toString());
otherMidPer = (i + Integer.parseInt(otherPer)) - 2;
otherLastPer = (i + Integer.parseInt(otherPer)) - 1;
} else if (i <= otherMidPer && otherMidPer != 0) {
scheduleVo.setOtherMonthlyPayment(otherM.toString());
scheduleVo.setTotal((new BigDecimal(scheduleVo.getMonthlyPayment()).add(otherM)).toString());
} else if (i == otherLastPer && otherLastPer != 0) {
scheduleVo.setOtherMonthlyPayment(otherL.toString());
scheduleVo.setTotal((new BigDecimal(scheduleVo.getMonthlyPayment()).add(otherL)).toString());
} else if (scheduleVo.getOtherMonthlyPayment() == null || "".equals(scheduleVo.getOtherMonthlyPayment())) {
scheduleVo.setTotal(scheduleVo.getMonthlyPayment());
scheduleVo.setOtherMonthlyPayment("");
}
} else if (isOther.equals("0")) {
//首期
if (i == 1) {
scheduleVo.setMonthlyPayment(mainF.toString());
} else if (i == mainPeriod) {
scheduleVo.setMonthlyPayment(mainL.toString());
} else {
scheduleVo.setMonthlyPayment(mainM.toString());
}
if (scheduleVo.getOtherMonthlyPayment() == null || "".equals(scheduleVo.getOtherMonthlyPayment())) {
scheduleVo.setTotal(scheduleVo.getMonthlyPayment());
scheduleVo.setOtherMonthlyPayment("");
}
}
scheduleVins.add(scheduleVo);
}
if (!scheduleVins.isEmpty()) {
vo.setRecords(scheduleVins);
}
}
}
return rb.success().setData(vo);
}
}

15
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/vininput/BusVinNoVo2.java

@ -1,5 +1,6 @@
package com.yxt.anrui.terminal.api.autoservice.saleOrders.vininput;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -12,8 +13,14 @@ import java.util.List;
**/
@Data
public class BusVinNoVo2 {
@ApiModelProperty("贷款人")
private String borrowName;
private String borrowSid;
private List<BusVinNoVo> vinList;
@ApiModelProperty("是否已出库")
private Boolean state;
@JsonProperty("vin")
private String linkNo;
@JsonProperty("carSid")
private String linkSid;
@ApiModelProperty("车架号是0,标题是1,全款时全是0,贷款时,有贷款人的是1,其他分组人也是1")
private int viewType;
@ApiModelProperty("当上面字段为0时,该值为空字符串,为1时,贷款人:xxx,/未选择贷款人")
private String groupName;
}

35
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repaymentplan/RepaymentPlanDetailsVo.java

@ -0,0 +1,35 @@
package com.yxt.anrui.terminal.api.risk.repaymentplan;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/8/28 10:41
*/
@Data
public class RepaymentPlanDetailsVo implements Vo {
@ApiModelProperty("sid")
private String sid;
@ApiModelProperty("合同号")
private String contractId;
@ApiModelProperty("贷款人名称")
private String lenderName;
@ApiModelProperty("车辆台数")
private String carNumber;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("资方")
private String managementName;
@ApiModelProperty("金融产品")
private String financial;
@ApiModelProperty("销售专员")
private String salesName;
private List<RepaymentPlanListDetailsVo> records = new ArrayList<>();
}

37
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repaymentplan/RepaymentPlanFeign.java

@ -0,0 +1,37 @@
package com.yxt.anrui.terminal.api.risk.repaymentplan;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
/**
* @Author
* @Date
* @Description
*/
@Api(tags = "还款计划表")
@FeignClient(
contextId = "terminal-RepaymentPlan",
name = "anrui-terminal",
path = "/riskcenter/v1/repaymentPlan",
fallback = RepaymentPlanFeignFallback.class)
public interface RepaymentPlanFeign {
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/getRepaymentPlanList")
@ResponseBody
public ResultBean<PagerVo<RepaymentPlanVo>> getRepaymentPlanList(@RequestBody PagerQuery<RepaymentPlanQuery> pq);
@ApiOperation("查看还款计划表")
@GetMapping("/getRepaymentPlanListBySid")
@ResponseBody
public ResultBean<RepaymentPlanDetailsVo> getRepaymentPlanListBySid(@RequestParam("sid") String sid);
}

27
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repaymentplan/RepaymentPlanFeignFallback.java

@ -0,0 +1,27 @@
package com.yxt.anrui.terminal.api.risk.repaymentplan;
import com.yxt.anrui.terminal.api.risk.mortgage.AppMortgageInformationTransactDto;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
/**
* @Author
* @Date 2023/3/21 15:19
* @Description
*/
@Component
public class RepaymentPlanFeignFallback implements RepaymentPlanFeign {
@Override
public ResultBean<PagerVo<RepaymentPlanVo>> getRepaymentPlanList(PagerQuery<RepaymentPlanQuery> pq) {
return null;
}
@Override
public ResultBean<RepaymentPlanDetailsVo> getRepaymentPlanListBySid(String sid) {
return null;
}
}

22
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repaymentplan/RepaymentPlanListDetailsVo.java

@ -0,0 +1,22 @@
package com.yxt.anrui.terminal.api.risk.repaymentplan;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/9/11 14:26
*/
@Data
public class RepaymentPlanListDetailsVo implements Vo {
private String times;
private String otherTimes;
private String number;
private String total;
private String month;
private String monthlyPayment;
private String otherMonthlyPayment;
private String companyMonthlyPayment;
}

23
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repaymentplan/RepaymentPlanQuery.java

@ -0,0 +1,23 @@
package com.yxt.anrui.terminal.api.risk.repaymentplan;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/8/28 10:35
*/
@Data
public class RepaymentPlanQuery implements Query {
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("合同编号/贷款人姓名/资方名称")
private String names;
@ApiModelProperty("当前组织机构全路径sid")
private String orgPath;
}

34
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/repaymentplan/RepaymentPlanVo.java

@ -0,0 +1,34 @@
package com.yxt.anrui.terminal.api.risk.repaymentplan;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/8/28 10:33
*/
@Data
public class RepaymentPlanVo implements Vo {
@ApiModelProperty("业务sid")
private String sid;
@ApiModelProperty("消贷合同编号")
private String contractId;
@ApiModelProperty("贷款人名称")
private String lenderName;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("资方")
private String managementName;
@ApiModelProperty("金融产品")
private String financial;
@ApiModelProperty("销售专员")
private String salesName;
@ApiModelProperty("车辆台数")
private String carNum;
@ApiModelProperty("下载路径")
private String downloadUrl;
}

39
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/repaymentplan/RepaymentPlanRest.java

@ -0,0 +1,39 @@
package com.yxt.anrui.terminal.biz.risk.repaymentplan;
import com.yxt.anrui.terminal.api.risk.mortgage.*;
import com.yxt.anrui.terminal.api.risk.repaymentplan.RepaymentPlanDetailsVo;
import com.yxt.anrui.terminal.api.risk.repaymentplan.RepaymentPlanFeign;
import com.yxt.anrui.terminal.api.risk.repaymentplan.RepaymentPlanQuery;
import com.yxt.anrui.terminal.api.risk.repaymentplan.RepaymentPlanVo;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @Author
* @Date 2023/3/25 9:39
* @Description
*/
@Api(tags = "还款计划表")
@Controller
@RequestMapping("/riskcenter/v1/repaymentPlan")
public class RepaymentPlanRest implements RepaymentPlanFeign {
@Autowired
private RepaymentPlanService repaymentPlanService;
@Override
public ResultBean<PagerVo<RepaymentPlanVo>> getRepaymentPlanList(PagerQuery<RepaymentPlanQuery> pq) {
return repaymentPlanService.getRepaymentPlanList(pq);
}
@Override
public ResultBean<RepaymentPlanDetailsVo> getRepaymentPlanListBySid(String sid) {
return repaymentPlanService.getRepaymentPlanListBySid(sid);
}
}

57
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/repaymentplan/RepaymentPlanService.java

@ -0,0 +1,57 @@
package com.yxt.anrui.terminal.biz.risk.repaymentplan;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.riskcenter.api.loanmortgageinformationtransact.*;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.AppRepaymentPlanDetailsVo;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.AppRepaymentPlanQuery;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.AppRepaymentPlanVo;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleFeign;
import com.yxt.anrui.terminal.api.risk.mortgage.AppMortgageInformationTransactDetailsVo;
import com.yxt.anrui.terminal.api.risk.mortgage.AppMortgageInformationTransactDto;
import com.yxt.anrui.terminal.api.risk.mortgage.AppMortgageInformationTransactQuery;
import com.yxt.anrui.terminal.api.risk.mortgage.AppMortgageInformationTransactVo;
import com.yxt.anrui.terminal.api.risk.repaymentplan.RepaymentPlanDetailsVo;
import com.yxt.anrui.terminal.api.risk.repaymentplan.RepaymentPlanQuery;
import com.yxt.anrui.terminal.api.risk.repaymentplan.RepaymentPlanVo;
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;
/**
* @Author
* @Date 2023/3/25 9:40
* @Description
*/
@Service
public class RepaymentPlanService {
@Autowired
private LoanRepaymentScheduleFeign loanRepaymentScheduleFeign;
public ResultBean<PagerVo<RepaymentPlanVo>> getRepaymentPlanList(PagerQuery<RepaymentPlanQuery> pq) {
ResultBean<PagerVo<RepaymentPlanVo>> rb = ResultBean.fireFail();
PagerVo<RepaymentPlanVo> pagerVo = new PagerVo<>();
PagerQuery<AppRepaymentPlanQuery> pagerQuery = new PagerQuery<>();
BeanUtil.copyProperties(pq, pagerQuery);
ResultBean<PagerVo<AppRepaymentPlanVo>> repaymentPlanList = loanRepaymentScheduleFeign.getRepaymentPlanList(pagerQuery);
if (repaymentPlanList.getSuccess()) {
PagerVo<AppRepaymentPlanVo> data = repaymentPlanList.getData();
BeanUtil.copyProperties(data, pagerVo);
}
return rb.success().setData(pagerVo);
}
public ResultBean<RepaymentPlanDetailsVo> getRepaymentPlanListBySid(String sid) {
ResultBean<RepaymentPlanDetailsVo> rb = ResultBean.fireFail();
RepaymentPlanDetailsVo vo = new RepaymentPlanDetailsVo();
AppRepaymentPlanDetailsVo data = loanRepaymentScheduleFeign.getRepaymentPlanListBySid(sid).getData();
if (null != data) {
BeanUtil.copyProperties(data, vo);
}
return rb.success().setData(vo);
}
}
Loading…
Cancel
Save