Browse Source

Merge remote-tracking branch 'origin/master'

master
God 2 years ago
parent
commit
06d0e59a8e
  1. 11
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateFeign.java
  2. 7
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateMapper.java
  3. 12
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateMapper.xml
  4. 10
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateRest.java
  5. 44
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateService.java
  6. 6
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusSalesOrderLoancontractFeign.java
  7. 5
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusSalesOrderLoancontractFeignFallback.java
  8. 21
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractMapper.java
  9. 7
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractRest.java
  10. 5
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java
  11. 14
      anrui-buscenter/anrui-buscenter-ui/src/api/chukuguanli/chukubanli.js
  12. 18
      anrui-buscenter/anrui-buscenter-ui/src/api/jichuxinxi/crmvehicle.js
  13. 522
      anrui-buscenter/anrui-buscenter-ui/src/components/publicPage/dingdanInfo.vue
  14. 819
      anrui-buscenter/anrui-buscenter-ui/src/components/publicPage/financialscheme.vue
  15. 394
      anrui-buscenter/anrui-buscenter-ui/src/components/publicPage/financialschemeEdit.vue
  16. 8
      anrui-buscenter/anrui-buscenter-ui/src/components/publicPage/financialschemeInfo.vue
  17. 7
      anrui-buscenter/anrui-buscenter-ui/src/components/publicPage/paymentticket.vue
  18. 190
      anrui-buscenter/anrui-buscenter-ui/src/views/kehuguanli/cheliangxuqiu/cheliangxuqiu.vue
  19. 1069
      anrui-buscenter/anrui-buscenter-ui/src/views/kehuguanli/cheliangxuqiu/cheliangxuqiuAdd.vue
  20. 371
      anrui-buscenter/anrui-buscenter-ui/src/views/kehuguanli/cheliangxuqiu/cheliangxuqiuinfo.vue
  21. 98
      anrui-buscenter/anrui-buscenter-ui/src/views/kehuguanli/cheliangxuqiu/modelsToChoose.vue
  22. 4
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/chukuguanliFlow/chukuguanli/chukuDaiBanInfo.vue
  23. 4
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/chukuguanliFlow/chukuguanli/chukuYiBanInfo.vue
  24. 6
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/publicPage/dingdanInfo.vue
  25. 254
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/publicPage/paymentticket.vue
  26. 4
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/teshushenpiFlow/qiankuanticheguanli/qiankuanticheByDivisionDaiBanInfo.vue
  27. 4
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/teshushenpiFlow/qiankuanticheguanli/qiankuanticheDaiBanByFileAndQiTaInfo.vue
  28. 4
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/teshushenpiFlow/qiankuanticheguanli/qiankuanticheDaiBanByFileInfo.vue
  29. 4
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/teshushenpiFlow/qiankuanticheguanli/qiankuanticheDaiBanInfo.vue
  30. 4
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/teshushenpiFlow/qiankuanticheguanli/qiankuanticheYiBanInfo.vue
  31. 828
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/xiaoshouguanliFlow/xiaoshoudingdanFlow/relation/financialschemeEdit.vue
  32. 41
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/xiaoshouguanliFlow/xiaoshoudingdantuicheFlow/salesorderbycarDaiBanInfo.vue
  33. 49
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/xiaoshouguanliFlow/xiaoshoudingdantuicheFlow/salesorderbycarEdit.vue
  34. 41
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/xiaoshouguanliFlow/xiaoshoudingdantuicheFlow/salesorderbycarYiBanInfo.vue
  35. 53
      anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xiaoshoudingdantuiche/salesorderbycarAdd.vue
  36. 42
      anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xiaoshoudingdantuiche/salesorderbycarInfo.vue
  37. 46
      anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/finginvoiceapply/backups/finginvoiceapplyAdd.vue
  38. 23
      anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/finginvoiceapply/backups/finginvoiceapplyInfo.vue
  39. 53
      anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/kaipiaoguanliFlow/finginvoiceapplyByFileDaiBanInfo.vue
  40. 22
      anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/kaipiaoguanliFlow/finginvoiceapplyDaiBanInfo.vue
  41. 44
      anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/kaipiaoguanliFlow/finginvoiceapplyEdit.vue
  42. 23
      anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/kaipiaoguanliFlow/finginvoiceapplyYiBanInfo.vue
  43. 165
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/AppCrmSolutions.java
  44. 13
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/AppCrmVehicleDemandParticularsVo.java
  45. 4
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/AppCrmVehicleDemandUpdateDto.java
  46. 7
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/AppCrmVehicledemandDetailsVo.java
  47. 24
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/CrmSolutionListVo.java
  48. 2
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/CrmSolutions.java
  49. 2
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/CrmVehicledemand.java
  50. 9
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmvehicledemand/CrmVehicledemandMapper.xml
  51. 10
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmvehicledemand/CrmVehicledemandRest.java
  52. 207
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmvehicledemand/CrmVehicledemandService.java
  53. 8
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  54. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceMapper.java
  55. 5
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceMapper.xml
  56. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceService.java
  57. 109
      anrui-management/anrui-management-ui/src/views/sysstaffinfo/yuangongAdd.vue
  58. 27
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFile.java
  59. 41
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java
  60. 34
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanmortgageinformationtransact/LoanMortgageInformationTransact.java
  61. 39
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanmortgageinformationtransact/LoanMortgageInformationTransactDetailsVo.java
  62. 33
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanmortgageinformationtransact/LoanMortgageInformationTransactDto.java
  63. 68
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanmortgageinformationtransact/LoanMortgageInformationTransactFeign.java
  64. 35
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanmortgageinformationtransact/LoanMortgageInformationTransactFeignFallback.java
  65. 29
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanmortgageinformationtransact/LoanMortgageInformationTransactQuery.java
  66. 43
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanmortgageinformationtransact/LoanMortgageInformationTransactVo.java
  67. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/LoanSolutionsFeign.java
  68. 5
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/LoanSolutionsFeignFallback.java
  69. 37
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanwarrantinformation/LoanAuditInfoDto.java
  70. 37
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanwarrantinformation/LoanAuditInfoVo.java
  71. 33
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanwarrantinformation/LoanTransferInfoDto.java
  72. 37
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanwarrantinformation/LoanTransferInfoVo.java
  73. 64
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanwarrantinformation/LoanWarrantInformation.java
  74. 51
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanwarrantinformation/LoanWarrantInformationDetailsVo.java
  75. 96
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanwarrantinformation/LoanWarrantInformationFeign.java
  76. 53
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanwarrantinformation/LoanWarrantInformationFeignFallback.java
  77. 44
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanwarrantinformation/LoanWarrantInformationQuery.java
  78. 39
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanwarrantinformation/LoanWarrantInformationVo.java
  79. 27
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfile/LoanFileMapper.java
  80. 23
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfile/LoanFileMapper.xml
  81. 71
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfile/LoanFileService.java
  82. 31
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmortgageinformationtransact/LoanMortgageInformationTransactMapper.java
  83. 31
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmortgageinformationtransact/LoanMortgageInformationTransactMapper.xml
  84. 47
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmortgageinformationtransact/LoanMortgageInformationTransactRest.java
  85. 621
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmortgageinformationtransact/LoanMortgageInformationTransactService.java
  86. 5
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsRest.java
  87. 80
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsService.java
  88. 30
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanwarrantinformation/LoanWarrantInformationMapper.java
  89. 38
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanwarrantinformation/LoanWarrantInformationMapper.xml
  90. 63
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanwarrantinformation/LoanWarrantInformationRest.java
  91. 377
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanwarrantinformation/LoanWarrantInformationService.java
  92. 42
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/mortgage/AppMortgageInformationTransactDetailsVo.java
  93. 35
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/mortgage/AppMortgageInformationTransactDto.java
  94. 28
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/mortgage/AppMortgageInformationTransactQuery.java
  95. 34
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/mortgage/AppMortgageInformationTransactVo.java
  96. 66
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/mortgage/MortgageFeign.java
  97. 35
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/mortgage/MortgageFeignFallback.java
  98. 45
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/mortgage/MortgageRest.java
  99. 72
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/mortgage/MortgageService.java

11
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateFeign.java

@ -2,6 +2,7 @@ package com.yxt.anrui.base.api.basevehiclestate;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -37,4 +38,14 @@ public interface BaseVehicleStateFeign {
@PostMapping("selectByBusSid")
@ResponseBody
ResultBean<BaseVehicleState> selectByBusSid(@RequestParam("busSid") String busSid);
@ApiModelProperty("根据车辆业务状态查询车辆业务sid")
@PostMapping("selectBusSidListByBusState")
@ResponseBody
ResultBean<List<String>> selectBusSidListByBusState(@RequestParam("busState") String busState);
@ApiModelProperty("根据车辆业务sid更新车辆业务状态")
@PostMapping("updateBusStateByBusSid")
ResultBean updateBusStateByBusSid(@RequestParam("busVinSid") String busVinSid, @RequestParam("busState") String busState);
}

7
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateMapper.java

@ -7,6 +7,8 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -23,4 +25,9 @@ public interface BaseVehicleStateMapper extends BaseMapper<BaseVehicleState> {
BaseVehicleState selectOneQKKPByBusSid(String sid);
BaseVehicleState selectByBusSid(String busSid);
List<String> selectBusSidListByBusState(String busState);
int updateBusStateByBusSid(@Param("busVinSid") String busVinSid, @Param("busState") String busState);
}

12
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateMapper.xml

@ -1,6 +1,11 @@
<?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.base.biz.basevehiclestate.BaseVehicleStateMapper">
<update id="updateBusStateByBusSid">
update base_vehicle_state
set busState = #{busState}
where busSid = #{busVinSid}
</update>
<select id="selectOnes" resultType="com.yxt.anrui.base.api.basevehiclestate.BaseVehicleState">
select *
from base_vehicle_state
@ -12,7 +17,7 @@
<select id="selevtByBusSid" resultType="com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder">
select bo.*
from anrui_buscenter.bus_sales_order bo
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.salesOrderSid = bo.sid
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.salesOrderSid = bo.sid
where bv.sid = #{busSid}
</select>
<select id="selectOneByBusSid" resultType="com.yxt.anrui.base.api.basevehiclestate.BaseVehicleState">
@ -40,4 +45,9 @@
AND carryVehicleState = '0'
AND carryInvoiceState = '0'
</select>
<select id="selectBusSidListByBusState" resultType="java.lang.String">
SELECT busSid
FROM base_vehicle_state
WHERE busState = #{busState}
</select>
</mapper>

10
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateRest.java

@ -45,5 +45,15 @@ public class BaseVehicleStateRest implements BaseVehicleStateFeign {
return baseVehicleStateService.selectByBusSid(busSid);
}
@Override
public ResultBean<List<String>> selectBusSidListByBusState(String busState) {
return baseVehicleStateService.selectBusSidListByBusState(busState);
}
@Override
public ResultBean updateBusStateByBusSid(String busVinSid, String busState) {
return baseVehicleStateService.updateBusStateByBusSid(busVinSid, busState);
}
}

44
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateService.java

@ -33,7 +33,7 @@ public class BaseVehicleStateService extends MybatisBaseService<BaseVehicleState
baseVehicleState.setBusName(BaseVehicleStateEnum.BusNoEnum.DDBA.getBusNoValue());
baseMapper.insert(baseVehicleState);
}
if(baseVehicleState != null){
if (baseVehicleState != null) {
if (BaseVehicleStateEnum.OperateTypeEnum.DDBA_PASS.getTypeKey().equals(operateType)) {
//销售订单办理通过后更新业务阶段为出库开票、小状态为待出库,款项状态为0
baseVehicleState.setFinState("0");
@ -63,41 +63,41 @@ public class BaseVehicleStateService extends MybatisBaseService<BaseVehicleState
} else if (BaseVehicleStateEnum.OperateTypeEnum.FIN_RQ.getTypeKey().equals(operateType)) {
//认款办理确认以及结转审核通过的更新款项状态为1 已交清,否则为0
baseVehicleState.setFinState(BaseVehicleStateEnum.BusStateEnum.FIN_STATE_JQ.getStateKey());
}else if(BaseVehicleStateEnum.OperateTypeEnum.FIN_WRQ.getTypeKey().equals(operateType)){
} else if (BaseVehicleStateEnum.OperateTypeEnum.FIN_WRQ.getTypeKey().equals(operateType)) {
//认款办理确认以及结转审核通过的更新款项状态为1 已交清,否则为0
baseVehicleState.setFinState(BaseVehicleStateEnum.BusStateEnum.FIN_STATE_WJQ.getStateKey());
}else if(BaseVehicleStateEnum.OperateTypeEnum.CKTJ.getTypeKey().equals(operateType)){
} else if (BaseVehicleStateEnum.OperateTypeEnum.CKTJ.getTypeKey().equals(operateType)) {
//出库提交申请后,将小状态修改为出库中402
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.CKKP_STATE_2.getStateKey());
}else if(BaseVehicleStateEnum.OperateTypeEnum.CKZZ.getTypeKey().equals(operateType)){
} else if (BaseVehicleStateEnum.OperateTypeEnum.CKZZ.getTypeKey().equals(operateType)) {
//出库申请终止后,将小状态修改为401待出库
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.CKKP_STATE_1.getStateKey());
}else if(BaseVehicleStateEnum.OperateTypeEnum.QKTCTJ.getTypeKey().equals(operateType)){
} else if (BaseVehicleStateEnum.OperateTypeEnum.QKTCTJ.getTypeKey().equals(operateType)) {
//欠款提车提交后,将提车状态修改为1,0为未提交过,1为审核通过,2为审核中
baseVehicleState.setCarryVehicleState("2");
}else if(BaseVehicleStateEnum.OperateTypeEnum.QKTCZZ.getTypeKey().equals(operateType)){
} else if (BaseVehicleStateEnum.OperateTypeEnum.QKTCZZ.getTypeKey().equals(operateType)) {
//欠款提车终止,将提车状态修改为0,0为未提交过,1为审核通过,2为审核中
baseVehicleState.setCarryVehicleState("0");
}else if(BaseVehicleStateEnum.OperateTypeEnum.QKTCTG.getTypeKey().equals(operateType)){
} else if (BaseVehicleStateEnum.OperateTypeEnum.QKTCTG.getTypeKey().equals(operateType)) {
//欠款提车审核通过,将提车状态修改为1,0为未提交过,1为审核通过,2为审核中
baseVehicleState.setCarryVehicleState("1");
}else if(BaseVehicleStateEnum.OperateTypeEnum.TC.getTypeKey().equals(operateType)){
} else if (BaseVehicleStateEnum.OperateTypeEnum.TC.getTypeKey().equals(operateType)) {
//如果为终止或作废,则更新小状态为业务终止602
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.YWJS_STATE_2.getStateKey());
baseVehicleState.setRemarks("退车");
}else if(BaseVehicleStateEnum.OperateTypeEnum.JCZBTIJ.getTypeKey().equals(operateType)){
} else if (BaseVehicleStateEnum.OperateTypeEnum.JCZBTIJ.getTypeKey().equals(operateType)) {
//交车准备提交后,则更新小状态为502待交车
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.JC_STATE_2.getStateKey());
}else if(BaseVehicleStateEnum.OperateTypeEnum.JCTJ.getTypeKey().equals(operateType)){
} else if (BaseVehicleStateEnum.OperateTypeEnum.JCTJ.getTypeKey().equals(operateType)) {
//交车提交后,则更新小状态为503已交车
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.JC_STATE_3.getStateKey());
}/*else if(BaseVehicleStateEnum.OperateTypeEnum.CKKP_SAVE.getTypeKey().equals(operateType)){
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.CKKP_STATE_3.getStateKey());
}*/else if(BaseVehicleStateEnum.OperateTypeEnum.CKKP_DELETE.getTypeKey().equals(operateType)){
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.CKKP_STATE_1.getStateKey());
}else if(BaseVehicleStateEnum.OperateTypeEnum.QKKPTJ.getTypeKey().equals(operateType)){
} else if (BaseVehicleStateEnum.OperateTypeEnum.QKKPTJ.getTypeKey().equals(operateType)) {
baseVehicleState.setCarryInvoiceState("1");
}else if(BaseVehicleStateEnum.OperateTypeEnum.QKKPZZ.getTypeKey().equals(operateType)){
} else if (BaseVehicleStateEnum.OperateTypeEnum.QKKPZZ.getTypeKey().equals(operateType)) {
baseVehicleState.setCarryInvoiceState("0");
}else if (BaseVehicleStateEnum.OperateTypeEnum.JFZB.getTypeKey().equals(operateType)){
baseVehicleState.setBusNo(BaseVehicleStateEnum.BusNoEnum.JF.getBusNoKey());
@ -108,7 +108,7 @@ public class BaseVehicleStateService extends MybatisBaseService<BaseVehicleState
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.JFZLSH.getStateKey());
}
baseMapper.updateById(baseVehicleState);
}else{
} else {
if (BaseVehicleStateEnum.OperateTypeEnum.DDBA_PASS.getTypeKey().equals(operateType)) {
baseVehicleState = new BaseVehicleState();
//销售订单办理通过后更新业务阶段为出库开票、小状态为待出库,款项状态为0
@ -124,7 +124,7 @@ public class BaseVehicleStateService extends MybatisBaseService<BaseVehicleState
baseVehicleState.setFinSourceKey(busSalesOrder.getFinancePlan());
baseVehicleState.setSaleOrderSid(busSalesOrder.getSid());
baseMapper.insert(baseVehicleState);
}else if (BaseVehicleStateEnum.OperateTypeEnum.FIN_RQ.getTypeKey().equals(operateType)) {
} else if (BaseVehicleStateEnum.OperateTypeEnum.FIN_RQ.getTypeKey().equals(operateType)) {
baseVehicleState = new BaseVehicleState();
baseVehicleState.setBusSid(dto.getBusSid());
//认款办理确认以及结转审核通过的更新款项状态为1 已交清,否则为0
@ -139,7 +139,7 @@ public class BaseVehicleStateService extends MybatisBaseService<BaseVehicleState
baseVehicleState.setFinSourceKey(busSalesOrder.getFinancePlan());
baseVehicleState.setSaleOrderSid(busSalesOrder.getSid());
baseMapper.insert(baseVehicleState);
}else if(BaseVehicleStateEnum.OperateTypeEnum.QKTCTJ.getTypeKey().equals(operateType)){
} else if (BaseVehicleStateEnum.OperateTypeEnum.QKTCTJ.getTypeKey().equals(operateType)) {
baseVehicleState = new BaseVehicleState();
baseVehicleState.setBusSid(dto.getBusSid());
//欠款提车提交后,将提车状态修改为1,0为未提交过,1为审核通过,2为审核中
@ -153,7 +153,7 @@ public class BaseVehicleStateService extends MybatisBaseService<BaseVehicleState
baseVehicleState.setFinSourceKey(busSalesOrder.getFinancePlan());
baseVehicleState.setSaleOrderSid(busSalesOrder.getSid());
baseMapper.insert(baseVehicleState);
}else if(BaseVehicleStateEnum.OperateTypeEnum.TC.getTypeKey().equals(operateType)){
} else if (BaseVehicleStateEnum.OperateTypeEnum.TC.getTypeKey().equals(operateType)) {
baseVehicleState = new BaseVehicleState();
baseVehicleState.setBusSid(dto.getBusSid());
//如果为终止或作废,则更新小状态为业务终止602
@ -193,4 +193,16 @@ public class BaseVehicleStateService extends MybatisBaseService<BaseVehicleState
BaseVehicleState baseVehicleState = baseMapper.selectByBusSid(busSid);
return rb.success().setData(baseVehicleState);
}
public ResultBean<List<String>> selectBusSidListByBusState(String busState) {
ResultBean<List<String>> rb = ResultBean.fireFail();
List<String> busSidList = baseMapper.selectBusSidListByBusState(busState);
return rb.success().setData(busSidList);
}
public ResultBean updateBusStateByBusSid(String busVinSid, String busState) {
ResultBean rb = ResultBean.fireFail();
int i = baseMapper.updateBusStateByBusSid(busVinSid,busState);
return rb.success();
}
}

6
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusSalesOrderLoancontractFeign.java

@ -80,4 +80,10 @@ public interface BusSalesOrderLoancontractFeign {
@GetMapping("/selectByBorrowerSid/{saleOrderBorrowerSid}")
@ResponseBody
ResultBean<List<BusSalesOrderLoancontractDetailsVo>> selectByBorrowerSid(@PathVariable("saleOrderBorrowerSid") String saleOrderBorrowerSid);
@ApiOperation("根据销售订单SID获取一条记录")
@GetMapping("/fetchDetailsByOrderSid/{orderSid}")
@ResponseBody
public ResultBean<BusSalesOrderLoancontract> fetchDetailsByOrderSid(@PathVariable("orderSid") String sid);
}

5
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusSalesOrderLoancontractFeignFallback.java

@ -74,4 +74,9 @@ public class BusSalesOrderLoancontractFeignFallback implements BusSalesOrderLoan
public ResultBean<List<BusSalesOrderLoancontractDetailsVo>> selectByBorrowerSid(String saleOrderBorrowerSid) {
return null;
}
@Override
public ResultBean<BusSalesOrderLoancontract> fetchDetailsByOrderSid(String sid) {
return null;
}
}

21
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractMapper.java

@ -54,15 +54,18 @@ import java.util.List;
@Mapper
public interface BusSalesOrderLoancontractMapper extends BaseMapper<BusSalesOrderLoancontract> {
//@Update("update bus_sales_order_loancontract set name=#{msg} where id=#{id}")
//IPage<BusSalesOrderLoancontractVo> voPage(IPage<BusSalesOrderLoancontract> page, @Param(Constants.WRAPPER) QueryWrapper<BusSalesOrderLoancontract> qw);
IPage<BusSalesOrderLoancontractVo> selectPageVo(IPage<BusSalesOrderLoancontract> page, @Param(Constants.WRAPPER) Wrapper<BusSalesOrderLoancontract> qw);
List<BusSalesOrderLoancontractVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<BusSalesOrderLoancontract> qw);
@Select("select * from bus_sales_order_loancontract")
List<BusSalesOrderLoancontractVo> selectListVo();
//@Update("update bus_sales_order_loancontract set name=#{msg} where id=#{id}")
//IPage<BusSalesOrderLoancontractVo> voPage(IPage<BusSalesOrderLoancontract> page, @Param(Constants.WRAPPER) QueryWrapper<BusSalesOrderLoancontract> qw);
IPage<BusSalesOrderLoancontractVo> selectPageVo(IPage<BusSalesOrderLoancontract> page, @Param(Constants.WRAPPER) Wrapper<BusSalesOrderLoancontract> qw);
List<BusSalesOrderLoancontractVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<BusSalesOrderLoancontract> qw);
@Select("select * from bus_sales_order_loancontract")
List<BusSalesOrderLoancontractVo> selectListVo();
@Select("select * from bus_sales_order_loancontract where salesOrderSid = #{sid}")
BusSalesOrderLoancontract fetchDetailsByOrderSid(String sid);
@Select("select * from bus_sales_order_loancontract where borrowerSid = #{saleOrderBorrowerSid}")
List<BusSalesOrderLoancontractDetailsVo> selectByBorrowerSid(String saleOrderBorrowerSid);

7
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractRest.java

@ -104,4 +104,11 @@ public class BusSalesOrderLoancontractRest implements BusSalesOrderLoancontractF
List<BusSalesOrderLoancontractDetailsVo> busSalesOrderLoancontractDetailsVos = busSalesOrderLoancontractService.selectByBorrowerSid(saleOrderBorrowerSid);
return rb.success().setData(busSalesOrderLoancontractDetailsVos);
}
@Override
public ResultBean<BusSalesOrderLoancontract> fetchDetailsByOrderSid(String sid) {
ResultBean rb = ResultBean.fireFail();
BusSalesOrderLoancontract entity = busSalesOrderLoancontractService.fetchDetailsByOrderSid(sid);
return rb.success().setData(entity);
}
}

5
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java

@ -113,4 +113,9 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService<BusSale
public List<BusSalesOrderLoancontractDetailsVo> selectByBorrowerSid(String saleOrderBorrowerSid) {
return baseMapper.selectByBorrowerSid(saleOrderBorrowerSid);
}
public BusSalesOrderLoancontract fetchDetailsByOrderSid(String sid) {
BusSalesOrderLoancontract entity = baseMapper.fetchDetailsByOrderSid(sid);
return entity;
}
}

14
anrui-buscenter/anrui-buscenter-ui/src/api/chukuguanli/chukubanli.js

@ -173,10 +173,16 @@ export function deliveredFinSelect(data) {
return request({
url: '/buscenter/v1/busdeliveredapply/deliveredFinSelect',
method: 'get',
params: data,
headers: {
'Content-Type': 'application/json'
}
params: data
})
}
// 查看款、票情况详情(只适用于销售订单退车)
export function deliveredFinSelecByBusVinSidPC(data) {
return request({
url: '/buscenter/v1/busdeliveredapply/deliveredFinSelecByBusVinSidPC',
method: 'get',
params: data
})
}

18
anrui-buscenter/anrui-buscenter-ui/src/api/jichuxinxi/crmvehicle.js

@ -38,12 +38,11 @@ export function saveOrUpdatePcCrmVehicleInfo(data) {
})
}
// 修改保存意向车型接口 已修改为:手机端-修改意向车型(新)
export function UpdatePcCrmVehicleInfo(data) {
// 车辆需求 添加 -- 修改
export function saveOrUpdate(data) {
return request({
// url: '/crm/v1/crmvehicledemand/update/' + data.sid, // 旧
url: '/crm/v1/crmvehicledemand/saveVisitDemands',
method: 'put',
url: '/crm/v1/crmvehicledemand/save2',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
@ -51,6 +50,15 @@ export function UpdatePcCrmVehicleInfo(data) {
})
}
// 回显 已改
export function details(data) {
return request({
url: '/crm/v1/crmvehicledemand/details',
method: 'get',
params: data
})
}
// 回显 已改
export function getPcVehicleInfoBySid(data, user) {
return request({

522
anrui-buscenter/anrui-buscenter-ui/src/components/publicPage/dingdanInfo.vue

@ -0,0 +1,522 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="info" size="small" icon="el-icon-close" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<div class="titwu">销售订单</div>
<el-form ref="dataForm" :model="formobj" label-position="top" label-width="130px" class="formaddcopy02">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="8" class="tlineheightb">
<div class="span-sty">订单编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.billNo }}</span></el-form-item>
</el-col>
<el-col :span="8" class="tlineheightb">
<div class="span-sty">合同编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.concatNo }}</span></el-form-item>
</el-col>
<el-col :span="8" class="tlineheightb">
<div class="span-sty">制单日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createDate }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8" class="tlineheightb">
<div class="span-sty">销售机构</div>
<el-form-item><span class="addinputInfo">{{ formobj.useOrgName }}</span></el-form-item>
</el-col>
<el-col :span="8" class="tlineheightb">
<div class="span-sty">销售部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.orgName }}</span></el-form-item>
</el-col>
<el-col :span="8" class="tlineheightb">
<div class="span-sty">销售专员</div>
<el-form-item><span class="addinputInfo">{{ formobj.staffName }}</span></el-form-item>
</el-col>
</el-row>
<div class="title">客户信息</div>
<el-row>
<el-col :span="8" class="tlineheightb">
<div class="span-sty">客户名称</div>
<el-form-item><span class="addinputInfo">{{ formobj.customerName }}</span></el-form-item>
</el-col>
<el-col :span="8" class="tlineheightb">
<div class="span-sty">联系电话</div>
<el-form-item><span class="addinputInfo">{{ formobj.mobile }}</span></el-form-item>
</el-col>
<el-col :span="8" class="tlineheightb">
<div class="span-sty">挂靠公司</div>
<el-form-item><span class="addinputInfo">{{ formobj.affiliatedCompany }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8" class="tlineheightb">
<div class="span-sty">销售类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.payType }} {{ formobj.financePlanValue }}</span></el-form-item>
</el-col>
<el-col :span="8" class="tlineheightb">
<div class="span-sty">开票类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.billingType }}</span></el-form-item>
</el-col>
<el-col :span="8" class="tlineheightb">
<div class="span-sty">是否包牌</div>
<el-form-item><span class="addinputInfo">{{ formobj.licensePlateValue }}</span></el-form-item>
</el-col>
</el-row>
<div class="title">车型信息</div>
<el-row>
<el-col :span="24" class="tlineheightb">
<el-form-item><span class="addinputInfo" style="margin-left: 0px !important;">{{ formobj.busSalesOrderModel.modelConfig }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24" class="tlineheightb">
<div class="span-sty">常用配置</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderModel.config }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24" class="tlineheightb">
<div class="span-sty">更多配置</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderModel.moreConfig }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24" class="tlineheightb">
<div class="span-sty">特殊配置说明</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderModel.specialConfig }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8" class="tlineheightb">
<div class="span-sty">合格证公告型号</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderModel.publicModel }}</span></el-form-item>
</el-col>
<el-col :span="16" class="tlineheightb">
<el-form-item><span class="addinputInfo" style="margin-left: 0px !important;">{{ formobj.busSalesOrderModel.publicModelSon }}</span></el-form-item>
</el-col>
</el-row>
<el-row v-if="formobj.busSalesOrderMakeup.topMessage !== ''">
<el-col :span="24" class="tlineheightb">
<div class="span-sty">上装</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderMakeup.topMessage }}</span></el-form-item>
</el-col>
</el-row>
<el-row v-if="formobj.type == '1'">
<el-col :span="24" class="tlineheightb">
<div class="span-sty">车架号</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderModel.vinNo }}</span></el-form-item>
</el-col>
</el-row>
<el-row v-if="formobj.type == '2'">
<el-col :span="24" class="tlineheightb">
<div class="span-sty">采购订单编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderModel.linkNo }}</span></el-form-item>
</el-col>
</el-row>
<el-row v-if="formobj.type == '3'">
<el-col :span="24">
<div class="span-sty">需采购</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderPrice.quantity }}</span></el-form-item>
</el-col>
</el-row>
<!-- <div class="title">挂车信息</div>-->
<!-- <el-row>-->
<!-- <el-col :span="24">-->
<!-- <el-form-item><span></span></el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<div class="title">价格信息</div>
<el-row>
<el-col :span="8">
<div class="span-sty">单台整体指导价</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderPrice.singleGuildPrice }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">主车单台成交价</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderModel.finalPrice }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">单台整体成交价</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderPrice.singleFinalPrice }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">单台折让()</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderPrice.bigDecimalSing }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">台数</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderPrice.quantity }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">车价合计</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderPrice.priceSum }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">计划提车日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderPrice.plannedPickUpDate }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">预计提车地点</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderPrice.plannedPickUpLocation }}</span></el-form-item>
</el-col>
</el-row>
<div class="title">保险说明</div>
<el-row>
<el-col :span="24">
<el-form-item><span>{{ formobj.insuranceInfo }}</span></el-form-item>
</el-col>
</el-row>
<div class="title">订金信息</div>
<el-row>
<el-col :span="12">
<div class="span-sty">单台订金</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderDeposit.deposit }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">订金合计</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderDeposit.depositAll }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">订金缴纳方式</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderDeposit.depositType }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">需补交订金</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderDeposit.makeUpDeposit }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center">款项确认书</div>
<el-form-item><el-image class="addinputInfo" style="width: 178px;height: 178px;" v-for="(item,index) in formobj.busSalesOrderDeposit.paymentConfirmation" :key="index" :src="item" :preview-src-list="formobj.busSalesOrderDeposit.paymentConfirmation"></el-image></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">订金备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderDeposit.depositRemarks }}</span></el-form-item>
</el-col>
</el-row>
<div class="title" v-if="formobj.busSalesOrderDiscountList.length > 0">优惠套餐</div>
<el-table v-if="formobj.busSalesOrderDiscountList.length > 0" :key="tableKey" :data="formobj.busSalesOrderDiscountList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column label="优惠名称" align="left" header-align="center">
<template slot-scope="scope">
{{ scope.row.name }}
</template>
</el-table-column>
<el-table-column label="价值" align="left" header-align="center">
<template slot-scope="scope">
{{ scope.row.price }}
</template>
</el-table-column>
<el-table-column label="优惠项目说明" header-align="center">
<template slot-scope="scope">
{{ scope.row.discountExplain }}
</template>
</el-table-column>
<el-table-column label="数量" header-align="center">
<template slot-scope="scope">
{{ scope.row.num }}
</template>
</el-table-column>
<el-table-column prop="totalValue" label="小计" header-align="center">
<template slot-scope="scope">
{{ scope.row.totalValue }}
</template>
</el-table-column>
</el-table>
<div v-show="formobj.finPlanState" class="jinrong">
<div>金融方案</div>
<div>
<el-button type="primary" size="mini" class="btntopblueline" @click="handleLook()">查看</el-button>
</div>
</div>
<div class="title">补充说明</div>
<el-row>
<el-col :span="24">
<el-form-item><span>{{ formobj.notes }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item><el-image style="width: 178px;height: 178px;" v-for="(item,index) in formobj.images" :key="index" :src="item" :preview-src-list="formobj.images"></el-image></el-form-item>
</el-col>
</el-row>
<div class="title">其它信息</div>
<el-row>
<el-col :span="12">
<div class="span-sty">内部引荐人</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderotherMessageDetailsVo.name }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">返利备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderotherMessageDetailsVo.remarks }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">中介人1</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderotherMessageDetailsVo.distributorName }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">联系电话</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderotherMessageDetailsVo.distributorMobile }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">单车中介服务费</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderotherMessageDetailsVo.distributorPrice }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">中介服务费合计</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderotherMessageDetailsVo.middleOneDistributorPriceTotal }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">中介人2</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderotherMessageDetailsVo.distributorNameTwo }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">联系电话</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderotherMessageDetailsVo.distributorMobileTwo }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">单车中介服务费</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderotherMessageDetailsVo.distributorPriceTwo }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">中介服务费合计</div>
<el-form-item><span class="addinputInfo">{{ formobj.busSalesOrderotherMessageDetailsVo.middleTwoDistributorPriceTotal }}</span></el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
<financialschemeInfo ref="divInfo" v-show="viewState == 2" @doback="resetState"/>
</div>
</template>
<script>
import { fetchDetailsBySid } from '@/api/salesManagement/orderManagement'
import financialschemeInfo from './financialschemeInfo'
export default {
name: 'XiaoShouDingDanInfo',
components: {
financialschemeInfo
},
data() {
return {
viewTitle: '',
viewState: 1,
tableKey: 0,
index: 0,
formobj: {
sid: '',
affiliatedCompany: '',
affiliatedCompanySid: '',
billNo: '',
billingType: '',
billingTypeKey: '',
busDepositFictitiousList: [],
busSalesOrderDeposit: [],
busSalesOrderDiscountList: [],
busSalesOrderInsurance: [],
busSalesOrderMakeup: [],
busSalesOrderModel: [],
busSalesOrderPrice: [],
busSalesOrderVehicleList: [],
busSalesOrderotherMessageDetailsVo: [],
busSalesVehicleOrderList: [],
concatNo: '',
createDate: '',
customerName: '',
customerSid: '',
images: [],
insuranceInfo: '',
insuranceInfoMessage: '',
isInsurance: '',
isTop: '',
licensePlateKey: '',
licensePlateValue: '',
mobile: '',
nodeState: '',
notes: '',
orgName: '',
orgSid: '',
payType: '',
payTypeKey: '',
procInstId: '',
remarks: '',
staffName: '',
staffSid: '',
taskId: '',
type: '',
useOrgName: '',
useOrgSid: '',
finPlanState: false
}
}
},
methods: {
showInfo(row) {
this.viewTitle = '销售订单'
fetchDetailsBySid(row.sid).then((resp) => {
if (resp.success) {
this.formobj = resp.data
if (this.formobj.busSalesOrderModel.linkNo.length > 0) {
this.formobj.busSalesOrderModel.linkNo = this.formobj.busSalesOrderModel.linkNo.join('、')
} else {
this.formobj.busSalesOrderModel.linkNo = ''
}
if (this.formobj.busSalesOrderModel.vinNo.length > 0) {
this.formobj.busSalesOrderModel.vinNo = this.formobj.busSalesOrderModel.vinNo.join('、')
} else {
this.formobj.busSalesOrderModel.vinNo = ''
}
}
})
},
handleLook() {
this.viewState = 2
this.$refs['divInfo'].showInfo(this.formobj.solutionsDetailsssVo)
},
//
getSummaries(param) {
const { columns, data } = param
const sums = []
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = ''
return
}
const values = data.map(item => Number(item[column.property]))
if (column.property === 'totalValue') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
} else {
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.amount = sums[index] += ''
} else {
sums[index] = ''
}
}
})
return sums
},
resetState() {
this.viewState = 1
},
handleReturn() {
this.formobj = {
sid: '',
affiliatedCompany: '',
affiliatedCompanySid: '',
billNo: '',
billingType: '',
billingTypeKey: '',
busDepositFictitiousList: [],
busSalesOrderDeposit: [],
busSalesOrderDiscountList: [],
busSalesOrderInsurance: [],
busSalesOrderMakeup: [],
busSalesOrderModel: [],
busSalesOrderPrice: [],
busSalesOrderVehicleList: [],
busSalesOrderotherMessageDetailsVo: [],
busSalesVehicleOrderList: [],
concatNo: '',
createDate: '',
customerName: '',
customerSid: '',
images: [],
insuranceInfo: '',
insuranceInfoMessage: '',
isInsurance: '',
isTop: '',
licensePlateKey: '',
licensePlateValue: '',
mobile: '',
nodeState: '',
notes: '',
orgName: '',
orgSid: '',
payType: '',
payTypeKey: '',
procInstId: '',
remarks: '',
staffName: '',
staffSid: '',
taskId: '',
type: '',
useOrgName: '',
useOrgSid: '',
finPlanState: false
}
this.$emit('doback')
}
}
}
</script>
<style scoped>
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
.jinrong {
padding: 7px;
font-weight: bold;
font-size: 16px;
background-color: #0294d7;
text-align: left;
color: #ffffff;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
margin-bottom: 1px;
}
.tlineheightb {
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
/deep/ .tlineheightb .el-form-item .el-form-item__content .addinputInfo {
line-height: 15px !important;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
</style>

819
anrui-buscenter/anrui-buscenter-ui/src/components/publicPage/financialscheme.vue

@ -0,0 +1,819 @@
<template>
<div style="margin-top: 2px">
<el-form ref="form_obj" :model="finance" class="formaddcopy02">
<div class="title titleOne">
<div>金融方案</div>
<div>
<el-button type="primary" size="mini" :disabled="submitdisabled" class="btntopblueline" @click="handleConfirm">确定</el-button>
<el-button type="info" size="mini" @click="handleColse">关闭</el-button>
</div>
</div>
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="6">
<div class="span-sty">是否打包</div>
<el-form-item>
<el-radio-group style="font-size: 1px" class="addinputw" @input="isPackChange" v-model="finance.isPack">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="18">
<div class="span-sty">产品政策</div>
<el-form-item>
<el-select v-model="finance.policyName" placeholder="请选择" @change="changePolicy" clearable class="addinputInfo">
<el-option v-for="item in policy_list" :key="item.sid" :label="item.name" :value="item.name"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">融资项目</div>
<el-form-item prop="mainVehicleAmount">
<div class="addinputInfo">
<span><span class="icon">*</span>主车发票价<el-input v-model="finance.mainVehicleAmount" @input="financingProject" clearable style="width: 100px" placeholder="" @keyup.native="finance.mainVehicleAmount = oninput(finance.mainVehicleAmount, 0)"/></span>
<span style="padding-left: 5px"><el-checkbox @change="financingProject" v-model="finance.accessoriesAmountCb" style="padding-right: 5px"/>配件<el-input v-model="finance.accessoriesAmount" @input="financingProject" clearable style="width: 100px" placeholder="" @keyup.native="finance.accessoriesAmount = oninput(finance.accessoriesAmount, 0)"/></span>
<span style="padding-left: 5px"><el-checkbox @change="financingProject" v-model="finance.trailerAmountCb" style="padding-right: 5px"/>挂车<el-input v-model="finance.trailerAmount" @input="financingProject" clearable style="width: 100px" placeholder="" @keyup.native="finance.trailerAmount = oninput(finance.trailerAmount, 0)"/></span>
<span style="padding-left: 5px"><el-checkbox @change="financingProject" v-model="finance.premiumCb" :disabled="finance.isPack == '0'" style="padding-right: 5px"/>保险<el-input v-model="finance.premium" @input="financingProject" clearable style="width: 100px" placeholder="" @keyup.native="finance.premium = oninput(finance.premium, 0)"/></span>
<span style="padding-left: 5px"><el-checkbox @change="financingProject" v-model="finance.purchaseTaxCb" :disabled="finance.isPack == '0'" style="padding-right: 5px"/>购置税<el-input v-model="finance.purchaseTax" @input="financingProject" clearable style="width: 100px" placeholder="" @keyup.native="finance.purchaseTax = oninput(finance.purchaseTax, 0)"/></span>
</div>
</el-form-item>
</el-col>
<el-col :span="24">
<div class="span-sty">融资项目总额</div>
<el-form-item>
<span class="addinputInfo">{{ finance.loanTotal }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">首付比例(%)</div>
<el-form-item><span class="addinputInfo">{{ finance.downPayRatio }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">首付金额</div>
<el-form-item>
<el-input class="addinputw addinputInfo" v-model="finance.downPayAmount" @input="downPayAmountInput" placeholder="" clearable @keyup.native="finance.downPayAmount = oninput(finance.downPayAmount, 0)"/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">产品贷款金额</div>
<el-form-item>
<span class="addinputInfo">{{ finance.loanAmount }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">产品期数</div>
<el-form-item>
<span class="addinputInfo">{{ finance.loanPeriod }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">贷款保证金比例(%)</div>
<el-form-item>
<span class="addinputInfo">{{ finance.bondRatio }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">贷款保证金</div>
<el-form-item>
<el-input class="addinputw" v-model="finance.bondAmount" placeholder="" @input="bondAmountInput" clearable @keyup.native="finance.bondAmount = oninput(finance.bondAmount, 0)"/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">预计首款还款日</div>
<el-form-item>
<el-date-picker value-format="yyyy-MM-dd" v-model="finance.returnTime" clearable class="addinputw" type="date" placeholder=""/>
</el-form-item>
</el-col>
<el-col :span="6"></el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">厂家贴息</div>
<el-form-item>
<el-input class="addinputw" v-model="finance.factoryDiscount" placeholder="" clearable @keyup.native="finance.factoryDiscount = oninput(finance.factoryDiscount, 0)"/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">贴息用途</div>
<el-form-item>
<span class="addinputInfo">{{ finance.factoryDiscountUse }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty" v-show="finance.factoryDiscountUseKey == '01'">贴息抵车款</div>
<el-form-item v-show="finance.factoryDiscountUseKey == '01'">
<el-input v-model="finance.discountCar" clearable placeholder="" class="addinputInfo addinputw" @keyup.native="finance.discountCar = oninput(finance.discountCar, 0)"/>
</el-form-item>
</el-col>
<el-col :span="6"></el-col>
</el-row>
<div class="title">
<el-checkbox v-model="finance.otherPolicyState" style="padding-right: 5px"/>
其它融
</div>
<div v-if="finance.otherPolicyState">
<el-row>
<el-col :span="6">
<div class="span-sty">其它融名称</div>
<el-form-item>
<el-select v-model="finance.otherPolicyName" placeholder="请选择" @change="changeOtherPolicy" clearable class="addinputInfo">
<el-option v-for="item in other_list" :key="item.sid" :label="item.name" :value="item.name"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">贷款金额</div>
<el-form-item>
<el-input class="addinputw" v-model="finance.otherPolicyAmount" placeholder="" clearable @keyup.native="finance.otherPolicyAmount = oninput(finance.otherPolicyAmount, 0)"/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">期数</div>
<el-form-item>
<span class="addinputInfo">{{ finance.otherPolicyPeriod }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">年利率(%)</div>
<el-form-item>
<span class="addinputInfo">{{ finance.otherPolicyYearRatio }}</span>
</el-form-item>
</el-col>
</el-row>
</div>
<div class="title">应收明细</div>
<el-row>
<el-col :span="6">
<div class="span-sty">贷款保证金</div>
<el-form-item><span class="addinputInfo">{{ bondAmounts() }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">保险保证金</div>
<el-form-item>
<el-input class="addinputw" v-model="finance.depositPremium" placeholder="" clearable @keyup.native="finance.depositPremium = oninput(finance.depositPremium, 0)"/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">落户保证金</div>
<el-form-item>
<el-input class="addinputw" v-model="finance.depositSettle" placeholder="" clearable @keyup.native="finance.depositSettle = oninput(finance.depositSettle, 0)"/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">服务费</div>
<el-form-item>
<el-input class="addinputw" v-model="finance.serviceAmount" placeholder="" clearable @keyup.native="finance.serviceAmount = oninput(finance.serviceAmount, 0)"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">代收意外险</div>
<el-form-item>
<el-input class="addinputw" v-model="finance.proxyAccidentPremium" placeholder="" clearable @keyup.native="finance.proxyAccidentPremium = oninput(finance.proxyAccidentPremium, 0)"/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">上牌费</div>
<el-form-item>
<el-input class="addinputw" v-model="finance.registerAmount" placeholder="" clearable @keyup.native="finance.registerAmount = oninput(finance.registerAmount, 0)"/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">运管费</div>
<el-form-item>
<el-input class="addinputw" v-model="finance.operationAmount" placeholder="" clearable @keyup.native="finance.operationAmount = oninput(finance.operationAmount, 0)"/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">补车价</div>
<el-form-item>
<el-input class="addinputw" v-model="finance.vehOtherPrice" placeholder="" clearable @keyup.native="finance.vehOtherPrice = oninput(finance.vehOtherPrice, 0)"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">其它费用</div>
<el-form-item>
<el-input class="addinputw" v-model="finance.otherAmount" placeholder="" clearable @keyup.native="finance.otherAmount = oninput(finance.otherAmount, 0)"/>
</el-form-item>
</el-col>
<el-col :span="18">
<div class="span-sty">其它费用说明</div>
<el-form-item>
<el-input class="addinputw" v-model="finance.otherAmountRemark" placeholder="" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">办理方式选择</div>
<el-form-item>
<el-select v-model="finance.dealWay" placeholder="请选择" @change="changeDealWay" clearable class="addinputInfo">
<el-option v-for="item in dealWay_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<div v-if="finance.dealWayKey == '01' && finance.isPack == '0' ">
<div class="span-sty">代收首年保险费</div>
<el-form-item>
<el-input class="addinputw" v-model="finance.proxyPremium" placeholder="" clearable @keyup.native="finance.proxyPremium = oninput(finance.proxyPremium, 0)"/>
</el-form-item>
</div>
<div v-if="finance.dealWayKey == '02' && finance.isPack == '1'">
<div class="span-sty">抵顶首年保险费</div>
<el-form-item>
<el-input class="addinputw" v-model="finance.offsetPremium" :disabled="!finance.premiumCb || this.finance.premium == ''" placeholder="" clearable @keyup.native="finance.offsetPremium = oninput(finance.offsetPremium, 0)"/>
</el-form-item>
</div>
</el-col>
<el-col :span="6">
<div v-if="finance.dealWayKey == '01' && finance.isPack == '0' ">
<div class="span-sty">代收购置税</div>
<el-form-item>
<el-input class="addinputw" v-model="finance.proxyPurchasetax" placeholder="" clearable @keyup.native="finance.proxyPurchasetax = oninput(finance.proxyPurchasetax, 0)"/>
</el-form-item>
</div>
<div v-if="finance.dealWayKey == '02' && finance.isPack == '1'">
<div class="span-sty">抵顶购置税</div>
<el-form-item>
<el-input class="addinputw" v-model="finance.offsetPurchasetax" :disabled="!finance.purchaseTaxCb || this.finance.purchaseTax == ''" placeholder="" clearable @keyup.native="finance.offsetPurchasetax = oninput(finance.offsetPurchasetax, 0)"/>
</el-form-item>
</div>
</el-col>
<el-col :span="6"></el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">名义(留购)</div>
<el-form-item>
<el-input class="addinputw" v-model="finance.nominalPrice" placeholder="" clearable @keyup.native="finance.nominalPrice = oninput(finance.nominalPrice, 0)"/>
</el-form-item>
</el-col>
<el-col :span="18">
<el-form-item><span class="addinputInfo">结清时需缴纳此费用</span></el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</template>
<script>
import { typeValues, selectList, selectListByOther } from '@/api/dictcommons/dictcommons'
import { calculate } from '@/api/salesManagement/orderManagement'
export default {
name: 'JinRongFangAn',
data() {
return {
viewTitle: '',
submitdisabled: false,
dealWay_list: [],
policy_list: [],
other_list: [],
finance: {
saleOrderSid: '',
type: '',
isPack: '',
policyName: '',
policySid: '',
mainVehicleAmount: '',
accessoriesAmount: '',
trailerAmount: '',
purchaseTax: '',
premium: '',
loanTotal: '',
accessoriesAmountCb: false,
trailerAmountCb: false,
purchaseTaxCb: false,
premiumCb: false,
downPayRatio: '',
downPayAmount: '',
loanAmount: '',
loanPeriod: '',
bondRatio: '',
bondAmount: '',
factoryDiscount: '',
factoryDiscountUse: '',
factoryDiscountUseKey: '',
policyYearRatio: '',
loanPayMoney: '',
loanInterest: '',
discountCar: '',
otherPolicyState: false,
otherPolicyName: '',
otherPolicySid: '',
otherPolicyAmount: '',
otherPolicyPeriod: '',
otherPolicyMonthlyRepay: '',
otherPolicyInterest: '',
otherPolicyYearRatio: '',
loanDownPay: '',
downPayAmountsRatio: '',
loanAmountTotal: '',
period: '',
monthlyRepay: '',
interest: '',
returnTime: '',
downPayAmounts: '',
bondAmounts: '',
depositPremium: '',
depositSettle: '',
serviceAmount: '',
proxyAccidentPremium: '',
registerAmount: '',
operationAmount: '',
vehOtherPrice: '',
otherAmount: '',
otherAmountRemark: '',
dealWay: '',
dealWayKey: '',
proxyPremium: '',
proxyPurchasetax: '',
proxyTotal: '',
offsetPremium: '',
offsetPurchasetax: '',
offsetTotal: '',
receivableTotal: '',
realTotal: '',
vehTotalPrice: '',
nominalPrice: ''
},
rules: {
}
}
},
methods: {
init() {
typeValues({ type: 'dealWay' }).then((resp) => {
if (resp.success) {
this.dealWay_list = resp.data
}
})
},
//
oninput(val, limit = 0) {
val = val.replace(/[^\d]/g, '') //
val = val.replace(/^00/, '0'); // 0
/^0\d+/.test(val) ? val = val.slice(1) : '' // 0
const str = '^(\\d+)\\.(\\d{' + limit + '}).*$'
const reg = new RegExp(str)
if (limit === 0) {
//
val = val.replace(reg, '$1')
} else {
//
val = val.replace(reg, '$1.$2')
}
return val
},
showAdd(value) {
this.finance = JSON.parse(JSON.stringify(value))
this.init()
},
showEdit(value) {
this.finance = JSON.parse(JSON.stringify(value))
this.init()
selectList({ orgPath: window.sessionStorage.getItem('defaultOrgPath'), userSid: window.sessionStorage.getItem('userSid'), isPack: this.finance.isPack }).then((resp) => {
if (resp.success) {
this.policy_list = resp.data
}
})
selectListByOther({ orgPath: window.sessionStorage.getItem('defaultOrgPath'), userSid: window.sessionStorage.getItem('userSid'), sid: this.finance.policySid }).then((res) => {
if (res.success) {
this.other_list = res.data
}
})
},
//
isPackChange(val) {
this.finance = {
saleOrderSid: '',
type: '',
isPack: val,
policyName: '',
policySid: '',
mainVehicleAmount: '',
accessoriesAmount: '',
trailerAmount: '',
purchaseTax: '',
premium: '',
loanTotal: '',
accessoriesAmountCb: false,
trailerAmountCb: false,
purchaseTaxCb: false,
premiumCb: false,
downPayRatio: '',
downPayAmount: '',
loanAmount: '',
loanPeriod: '',
bondRatio: '',
bondAmount: '',
factoryDiscount: '',
factoryDiscountUse: '',
factoryDiscountUseKey: '',
policyYearRatio: '',
loanPayMoney: '',
loanInterest: '',
discountCar: '',
otherPolicyState: false,
otherPolicyName: '',
otherPolicySid: '',
otherPolicyAmount: '',
otherPolicyPeriod: '',
otherPolicyMonthlyRepay: '',
otherPolicyInterest: '',
otherPolicyYearRatio: '',
loanDownPay: '',
downPayAmountsRatio: '',
loanAmountTotal: '',
period: '',
monthlyRepay: '',
interest: '',
returnTime: '',
downPayAmounts: '',
bondAmounts: '',
depositPremium: '',
depositSettle: '',
serviceAmount: '',
proxyAccidentPremium: '',
registerAmount: '',
operationAmount: '',
vehOtherPrice: '',
otherAmount: '',
otherAmountRemark: '',
dealWay: '',
dealWayKey: '',
proxyPremium: '',
proxyPurchasetax: '',
proxyTotal: '',
offsetPremium: '',
offsetPurchasetax: '',
offsetTotal: '',
receivableTotal: '',
realTotal: '',
vehTotalPrice: '',
nominalPrice: ''
}
selectList({ orgPath: window.sessionStorage.getItem('defaultOrgPath'), userSid: window.sessionStorage.getItem('userSid'), isPack: this.finance.isPack }).then((resp) => {
if (resp.success) {
this.policy_list = resp.data
}
})
},
//
changePolicy(value) {
const choose = this.policy_list.filter((item) => item.name === value)
if (choose.length > 0 && choose !== null) {
this.finance.policySid = choose[0].sid
// --
this.finance.policyYearRatio = choose[0].yearRatio
// --
this.finance.downPayRatio = choose[0].downPayRatio
// --
this.finance.loanPeriod = choose[0].period
// --
this.finance.bondRatio = choose[0].bondRatio
//
this.finance.factoryDiscountUse = '抵利息'
this.finance.factoryDiscountUseKey = '02'
selectListByOther({ orgPath: window.sessionStorage.getItem('defaultOrgPath'), userSid: window.sessionStorage.getItem('userSid'), sid: choose[0].sid }).then((res) => {
if (res.success) {
this.other_list = res.data
}
})
} else {
this.finance.policySid = ''
}
},
// --
financingProject() {
if (!this.finance.accessoriesAmountCb && !this.finance.trailerAmountCb && !this.finance.premiumCb && !this.finance.purchaseTaxCb) {
// =
this.finance.loanTotal = parseInt(this.arguments(this.finance.mainVehicleAmount))
} else if (this.finance.accessoriesAmountCb && !this.finance.trailerAmountCb && !this.finance.premiumCb && !this.finance.purchaseTaxCb) {
// = +
this.finance.loanTotal = parseInt(this.arguments(this.finance.mainVehicleAmount)) + parseInt(this.arguments(this.finance.accessoriesAmount))
} else if (this.finance.accessoriesAmountCb && this.finance.trailerAmountCb && !this.finance.premiumCb && !this.finance.purchaseTaxCb) {
// = + +
this.finance.loanTotal = parseInt(this.arguments(this.finance.mainVehicleAmount)) + parseInt(this.arguments(this.finance.accessoriesAmount)) + parseInt(this.arguments(this.finance.trailerAmount))
} else if (this.finance.accessoriesAmountCb && !this.finance.trailerAmountCb && this.finance.premiumCb && !this.finance.purchaseTaxCb) {
// = + +
this.finance.loanTotal = parseInt(this.arguments(this.finance.mainVehicleAmount)) + parseInt(this.arguments(this.finance.accessoriesAmount)) + parseInt(this.arguments(this.finance.premium))
} else if (this.finance.accessoriesAmountCb && !this.finance.trailerAmountCb && !this.finance.premiumCb && this.finance.purchaseTaxCb) {
// = + +
this.finance.loanTotal = parseInt(this.arguments(this.finance.mainVehicleAmount)) + parseInt(this.arguments(this.finance.accessoriesAmount)) + parseInt(this.arguments(this.finance.purchaseTax))
} else if (this.finance.accessoriesAmountCb && this.finance.trailerAmountCb && this.finance.premiumCb && !this.finance.purchaseTaxCb) {
// = + + +
this.finance.loanTotal = parseInt(this.arguments(this.finance.mainVehicleAmount)) + parseInt(this.arguments(this.finance.accessoriesAmount)) + parseInt(this.arguments(this.finance.trailerAmount)) + parseInt(this.arguments(this.finance.premium))
} else if (this.finance.accessoriesAmountCb && this.finance.trailerAmountCb && !this.finance.premiumCb && this.finance.purchaseTaxCb) {
// = + + +
this.finance.loanTotal = parseInt(this.arguments(this.finance.mainVehicleAmount)) + parseInt(this.arguments(this.finance.accessoriesAmount)) + parseInt(this.arguments(this.finance.trailerAmount)) + parseInt(this.arguments(this.finance.purchaseTax))
} else if (this.finance.accessoriesAmountCb && !this.finance.trailerAmountCb && this.finance.premiumCb && this.finance.purchaseTaxCb) {
// = + + +
this.finance.loanTotal = parseInt(this.arguments(this.finance.mainVehicleAmount)) + parseInt(this.arguments(this.finance.accessoriesAmount)) + parseInt(this.arguments(this.finance.premium)) + parseInt(this.arguments(this.finance.purchaseTax))
} else if (!this.finance.accessoriesAmountCb && this.finance.trailerAmountCb && !this.finance.premiumCb && !this.finance.purchaseTaxCb) {
// = +
this.finance.loanTotal = parseInt(this.arguments(this.finance.mainVehicleAmount)) + parseInt(this.arguments(this.finance.trailerAmount))
} else if (!this.finance.accessoriesAmountCb && this.finance.trailerAmountCb && this.finance.premiumCb && !this.finance.purchaseTaxCb) {
// = + +
this.finance.loanTotal = parseInt(this.arguments(this.finance.mainVehicleAmount)) + parseInt(this.arguments(this.finance.trailerAmount)) + parseInt(this.arguments(this.finance.premium))
} else if (!this.finance.accessoriesAmountCb && this.finance.trailerAmountCb && !this.finance.premiumCb && this.finance.purchaseTaxCb) {
// = + +
this.finance.loanTotal = parseInt(this.arguments(this.finance.mainVehicleAmount)) + parseInt(this.arguments(this.finance.trailerAmount)) + parseInt(this.arguments(this.finance.purchaseTax))
} else if (!this.finance.accessoriesAmountCb && this.finance.trailerAmountCb && this.finance.premiumCb && this.finance.purchaseTaxCb) {
// = + + +
this.finance.loanTotal = parseInt(this.arguments(this.finance.mainVehicleAmount)) + parseInt(this.arguments(this.finance.trailerAmount)) + parseInt(this.arguments(this.finance.premium)) + parseInt(this.arguments(this.finance.purchaseTax))
} else if (!this.finance.accessoriesAmountCb && !this.finance.trailerAmountCb && this.finance.premiumCb && !this.finance.purchaseTaxCb) {
// = +
this.finance.loanTotal = parseInt(this.arguments(this.finance.mainVehicleAmount)) + parseInt(this.arguments(this.finance.premium))
} else if (!this.finance.accessoriesAmountCb && !this.finance.trailerAmountCb && this.finance.premiumCb && this.finance.purchaseTaxCb) {
// = + +
this.finance.loanTotal = parseInt(this.arguments(this.finance.mainVehicleAmount)) + parseInt(this.arguments(this.finance.premium)) + parseInt(this.arguments(this.finance.purchaseTax))
} else if (!this.finance.accessoriesAmountCb && !this.finance.trailerAmountCb && !this.finance.premiumCb && this.finance.purchaseTaxCb) {
// = +
this.finance.loanTotal = parseInt(this.arguments(this.finance.mainVehicleAmount)) + parseInt(this.arguments(this.finance.purchaseTax))
} else if (this.finance.accessoriesAmountCb && this.finance.trailerAmountCb && this.finance.premiumCb && this.finance.purchaseTaxCb) {
// = + + + +
this.finance.loanTotal = parseInt(this.arguments(this.finance.mainVehicleAmount)) + parseInt(this.arguments(this.finance.accessoriesAmount)) + parseInt(this.arguments(this.finance.trailerAmount)) + parseInt(this.arguments(this.finance.premium)) + parseInt(this.arguments(this.finance.purchaseTax))
}
//
if (this.finance.loanTotal !== '') {
// --
this.finance.downPayAmount = (parseInt(this.arguments(this.finance.loanTotal)) * parseFloat(this.arguments(this.finance.downPayRatio)) / 100).toFixed(0)
// --
this.finance.loanAmount = parseInt(this.arguments(this.finance.loanTotal)) - parseInt(this.arguments(this.finance.downPayAmount))
// --
this.finance.bondAmount = (parseFloat(this.arguments(this.finance.bondRatio)) * parseInt(this.arguments(this.finance.loanAmount)) / 100).toFixed(0)
}
if (this.finance.premiumCb && this.finance.dealWayKey === '02') {
this.finance.offsetPremium = this.finance.premium
} else {
this.finance.offsetPremium = ''
}
if (this.finance.purchaseTaxCb && this.finance.dealWayKey === '02') {
this.finance.offsetPurchasetax = this.finance.purchaseTax
} else {
this.finance.offsetPurchasetax = ''
}
},
// --
downPayAmountInput() {
if (this.finance.loanTotal !== '') {
//
this.finance.downPayRatio = (parseInt(this.arguments(this.finance.downPayAmount)) / parseInt(this.arguments(this.finance.loanTotal)) * 100).toFixed(2)
//
this.finance.loanAmount = parseInt(this.arguments(this.finance.loanTotal)) - parseInt(this.arguments(this.finance.downPayAmount))
// --
this.finance.bondAmount = (parseFloat(this.arguments(this.finance.bondRatio)) * parseInt(this.arguments(this.finance.loanAmount)) / 100).toFixed(0)
}
},
// --
bondAmountInput() {
if (this.finance.bondAmount !== '') {
this.finance.bondRatio = (parseInt(this.arguments(this.finance.bondAmount)) / parseInt(this.arguments(this.finance.loanAmount)) * 100).toFixed(2)
}
},
// --
changeOtherPolicy(value) {
const choose = this.other_list.filter((item) => item.name === value)
if (choose.length > 0 && choose !== null) {
this.finance.otherPolicySid = choose[0].sid
this.finance.otherPolicyYearRatio = choose[0].yearRatio
this.finance.otherPolicyPeriod = choose[0].period
} else {
this.finance.otherPolicySid = ''
}
},
//
bondAmounts() {
if (this.finance.bondAmount !== '') {
this.finance.bondAmounts = this.finance.bondAmount
}
return this.finance.bondAmount
},
changeDealWay(value) {
const choose = this.dealWay_list.filter((item) => item.dictValue === value)
if (choose.length > 0 && choose !== null) {
this.finance.dealWayKey = choose[0].dictKey
} else {
this.finance.dealWayKey = ''
}
if (this.finance.dealWayKey === '02') {
this.finance.proxyPremium = '0'
this.finance.proxyPurchasetax = '0'
if (this.finance.premiumCb) {
this.finance.offsetPremium = this.finance.premium
} else {
this.finance.offsetPremium = ''
}
if (this.finance.purchaseTaxCb) {
this.finance.offsetPurchasetax = this.finance.purchaseTax
} else {
this.finance.offsetPurchasetax = ''
}
} else if (this.finance.dealWayKey === '01') {
this.finance.offsetPremium = '0'
this.finance.offsetPurchasetax = '0'
this.finance.proxyPremium = ''
this.finance.proxyPurchasetax = ''
} else {
this.finance.offsetPremium = '0'
this.finance.offsetPurchasetax = '0'
this.finance.proxyPremium = '0'
this.finance.proxyPurchasetax = '0'
}
},
arguments(val) {
if (val === '' || val === undefined) {
val = 0
return val
} else {
return val
}
},
handleConfirm() {
if (this.finance.dealWayKey === '01' && this.finance.isPack === '0') {
if (this.arguments(this.finance.premium) !== this.arguments(this.finance.proxyPremium)) {
this.$message({ showClose: true, type: 'error', message: '代收首年保险费数额与融资项目中的保险数额应保持一致' })
return
}
if (this.arguments(this.finance.purchaseTax) !== this.arguments(this.finance.proxyPurchasetax)) {
this.$message({ showClose: true, type: 'error', message: '代收购置税数额与融资项目中的购置税数额应保持一致' })
return
}
}
if (this.finance.dealWayKey === '02' && this.finance.isPack === '1') {
if (parseInt(this.arguments(this.finance.premium)) < parseInt(this.arguments(this.finance.offsetPremium))) {
this.$message({ showClose: true, type: 'error', message: '抵顶首年保险费数额不能大于融资项目中的保险数额' })
return
}
if (parseInt(this.arguments(this.finance.purchaseTax)) < parseInt(this.arguments(this.finance.offsetPurchasetax))) {
this.$message({ showClose: true, type: 'error', message: '抵顶购置税数额不能大于融资项目中的购置税数额' })
return
}
}
this.submitdisabled = true
calculate(this.finance).then((resp) => {
if (resp.success) {
this.submitdisabled = false
console.log(resp.data)
this.finance.policyYearRatio = resp.data.policyYearRatio
this.finance.loanPayMoney = resp.data.loanPayMoney
this.finance.loanInterest = resp.data.loanInterest
this.finance.otherPolicyMonthlyRepay = resp.data.otherPolicyMonthlyRepay
this.finance.otherPolicyInterest = resp.data.otherPolicyInterest
this.finance.loanDownPay = resp.data.loanDownPay
this.finance.downPayAmountsRatio = resp.data.downPayAmountsRatio
this.finance.loanAmountTotal = resp.data.loanAmountTotal
this.finance.period = resp.data.period
this.finance.monthlyRepay = resp.data.monthlyRepay
this.finance.interest = resp.data.interest
this.finance.downPayAmounts = resp.data.downPayAmounts
this.finance.proxyTotal = resp.data.proxyTotal
this.finance.receivableTotal = resp.data.receivableTotal
this.finance.offsetTotal = resp.data.offsetTotal
this.finance.realTotal = resp.data.realTotal
this.finance.vehTotalPrice = resp.data.vehTotalPrice
this.$emit('backData', this.finance)
this.handleColse()
} else {
this.submitdisabled = false
}
}).catch(() => {
this.submitdisabled = false
})
},
handleColse() {
this.finance = {
saleOrderSid: '',
type: '',
isPack: '',
policyName: '',
policySid: '',
mainVehicleAmount: '',
accessoriesAmount: '',
trailerAmount: '',
purchaseTax: '',
premium: '',
loanTotal: '',
accessoriesAmountCb: false,
trailerAmountCb: false,
purchaseTaxCb: false,
premiumCb: false,
downPayRatio: '',
downPayAmount: '',
loanAmount: '',
loanPeriod: '',
bondRatio: '',
bondAmount: '',
factoryDiscount: '',
factoryDiscountUse: '',
factoryDiscountUseKey: '',
policyYearRatio: '',
loanPayMoney: '',
loanInterest: '',
discountCar: '',
otherPolicyState: false,
otherPolicyName: '',
otherPolicySid: '',
otherPolicyAmount: '',
otherPolicyPeriod: '',
otherPolicyMonthlyRepay: '',
otherPolicyInterest: '',
otherPolicyYearRatio: '',
loanDownPay: '',
downPayAmountsRatio: '',
loanAmountTotal: '',
period: '',
monthlyRepay: '',
interest: '',
returnTime: '',
downPayAmounts: '',
bondAmounts: '',
depositPremium: '',
depositSettle: '',
serviceAmount: '',
proxyAccidentPremium: '',
registerAmount: '',
operationAmount: '',
vehOtherPrice: '',
otherAmount: '',
otherAmountRemark: '',
dealWay: '',
dealWayKey: '',
proxyPremium: '',
proxyPurchasetax: '',
proxyTotal: '',
offsetPremium: '',
offsetPurchasetax: '',
offsetTotal: '',
receivableTotal: '',
realTotal: '',
vehTotalPrice: '',
nominalPrice: ''
}
this.$emit('doback')
}
}
}
</script>
<style scoped>
.formaddcopy02 {
padding: 0px;
}
.span-sty {
width: 140px !important;
}
.addinputInfo {
margin-left: 130px !important;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.addinputw {
margin-left: 130px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 130px !important;
width: calc(100% - 125px);
}
/deep/ .el-form-item__error {
margin-left: 120px !important;
}
</style>

394
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/xiaoshouguanliFlow/xiaoshoudingdanFlow/relation/financialscheme.vue → anrui-buscenter/anrui-buscenter-ui/src/components/publicPage/financialschemeEdit.vue

@ -1,35 +1,22 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="info" size="small" icon="el-icon-close" @click="handleReturn()">关闭</el-button>
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>金融方案</div>
<div>
<el-button type="primary" size="mini" @click="financialComputing">金融计算</el-button>
<el-button type="primary" v-show="source == 'xiaoshou'" size="small" @click="handleSave()">保存</el-button>
</div>
</div>
</div>
<div class="">
<el-form ref="dataForm" :model="formobj" label-position="top" label-width="130px" class="formaddcopy02">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="6">
<div class="span-sty">单车主车销售合同价</div>
<el-form-item><span class="addinputInfo">{{ formobj.finalPrice }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">单车挂车销售合同价</div>
<el-form-item><span class="addinputInfo">{{ formobj.gcPrice }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">单车上装销售合同价</div>
<el-form-item><span class="addinputInfo">{{ formobj.szPrice }}</span></el-form-item>
</el-col>
</el-row>
<div v-if="formobj.typeKey !== '02'">
<el-row>
<el-form ref="dataForm" :model="formobj" class="formaddcopy02">
<div v-if="formobj.isShowMore">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="6">
<div class="span-sty">是否打包</div>
<el-form-item><span class="addinputInfo">{{ formobj.isPack == '1' ? '是' : formobj.isPack == '0' ? '否' : '' }}</span></el-form-item>
</el-col>
<el-col :span="18">
<div class="span-sty">资方及产品政策</div>
<div class="span-sty">产品政策</div>
<el-form-item><span class="addinputInfo">{{ formobj.policyName }}</span></el-form-item>
</el-col>
</el-row>
@ -38,12 +25,11 @@
<div class="span-sty">融资项目</div>
<el-form-item>
<div class="addinputInfo">
<span>主车发票价{{ formobj.mainVehicleAmount }}</span>
<span>融资票据{{ formobj.accessoriesAmount }}</span>
<span>主车发票价{{ formobj.mainVehicleAmount }} </span>
<span>配件{{ formobj.accessoriesAmount }} </span>
<span>挂车{{ formobj.trailerAmount }} </span>
<span>保险{{ formobj.premium }} </span>
<span>购置税{{ formobj.purchaseTax }} </span>
<span>车损上浮{{ formobj.vehDamageFloat }} </span>
</div>
</el-form-item>
</el-col>
@ -54,7 +40,7 @@
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">首付比例</div>
<div class="span-sty">首付比例(%)</div>
<el-form-item><span class="addinputInfo">{{ formobj.downPayRatio }}</span></el-form-item>
</el-col>
<el-col :span="6">
@ -72,7 +58,7 @@
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">贷款保证金比例</div>
<div class="span-sty">贷款保证金比例(%)</div>
<el-form-item><span class="addinputInfo">{{ formobj.bondRatio }}</span></el-form-item>
</el-col>
<el-col :span="6">
@ -84,11 +70,15 @@
<el-form-item><span class="addinputInfo">{{ formobj.factoryDiscount }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">年利率</div>
<el-form-item><span class="addinputInfo">{{ formobj.policyYearRatio }}</span></el-form-item>
<div class="span-sty">贴息用途</div>
<el-form-item><span class="addinputInfo">{{ formobj.factoryDiscountUse }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">年利率(%)</div>
<el-form-item><span class="addinputInfo">{{ formobj.policyYearRatio }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">月还金额</div>
<el-form-item><span class="addinputInfo">{{ formobj.loanPayMoney }}</span></el-form-item>
@ -97,9 +87,11 @@
<div class="span-sty">利息总额</div>
<el-form-item><span class="addinputInfo">{{ formobj.loanInterest }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">厂家贴息用途</div>
<el-form-item><span class="addinputInfo">{{ formobj.factoryDiscountUse }}</span></el-form-item>
<el-col :span="6">
<div v-show="formobj.factoryDiscountUseKey == '01'">
<div class="span-sty">贴息抵车款</div>
<el-form-item><span class="addinputInfo">{{ formobj.discountCar }}</span></el-form-item>
</div>
</el-col>
</el-row>
<div v-show="formobj.otherPolicyState">
@ -119,6 +111,10 @@
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">年利率(%)</div>
<el-form-item><span class="addinputInfo">{{ formobj.otherPolicyYearRatio }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">月还金额</div>
<el-form-item><span class="addinputInfo">{{ formobj.otherPolicyMonthlyRepay }}</span></el-form-item>
@ -127,10 +123,6 @@
<div class="span-sty">利息总额</div>
<el-form-item><span class="addinputInfo">{{ formobj.otherPolicyInterest }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">年利率</div>
<el-form-item><span class="addinputInfo">{{ formobj.otherPolicyYearRatio }}</span></el-form-item>
</el-col>
</el-row>
</div>
<div class="title">方案汇总</div>
@ -140,7 +132,7 @@
<el-form-item><span class="addinputInfo">{{ formobj.loanDownPay }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">实际首付比例</div>
<div class="span-sty">实际首付比例(%)</div>
<el-form-item><span class="addinputInfo">{{ formobj.downPayAmountsRatio }}</span></el-form-item>
</el-col>
<el-col :span="6">
@ -153,11 +145,12 @@
</el-col>
</el-row>
<el-row>
<el-col :span="6"></el-col>
<el-col :span="6">
<div class="span-sty">月还金额</div>
<el-form-item><span class="addinputInfo">{{ formobj.monthlyRepay }}</span></el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<div class="span-sty">利息总额</div>
<el-form-item><span class="addinputInfo">{{ formobj.interest }}</span></el-form-item>
</el-col>
@ -218,10 +211,16 @@
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-col :span="24">
<div class="span-sty">办理方式选择</div>
<el-form-item><span class="addinputInfo">{{ formobj.dealWay }}</span></el-form-item>
</el-col>
</el-row>
<el-row v-if="formobj.dealWayKey == '01' && formobj.isPack == '0' ">
<el-col :span="6">
<div class="span-sty">代收费用合计</div>
<el-form-item><span class="addinputInfo">{{ formobj.proxyTotal }}</span></el-form-item>
</el-col>
<el-col :span="9">
<div class="span-sty">代收首年保险费</div>
<el-form-item><span class="addinputInfo">{{ formobj.proxyPremium }}</span></el-form-item>
@ -237,7 +236,7 @@
<el-form-item><span class="addinputInfo">{{ formobj.receivableTotal }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-row v-if="formobj.dealWayKey == '02' && formobj.isPack == '1'">
<el-col :span="6">
<div class="span-sty">抵顶费用合计</div>
<el-form-item><span class="addinputInfo">{{ formobj.offsetTotal }}</span></el-form-item>
@ -273,28 +272,34 @@
</el-col>
</el-row>
</div>
<div v-if="formobj.typeKey == '02'">
<div v-else>
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="24">
<div class="span-sty">资方及产品政策</div>
<div class="span-sty">产品政策</div>
<el-form-item><span class="addinputInfo">{{ formobj.policyName }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-col :span="6">
<div class="span-sty">厂家贴息</div>
<el-form-item>
<span class="addinputInfo">{{ formobj.factoryDiscount }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="6">
<div class="span-sty">厂家贴息用途</div>
<el-form-item>
<span class="addinputInfo">{{ formobj.factoryDiscountUse }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="icon">*</span>服务费</div>
<el-col :span="6">
<div class="span-sty">贴息抵车款</div>
<el-form-item>
<span class="addinputInfo">{{ formobj.discountCar }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">服务费</div>
<el-form-item>
<span class="addinputInfo">{{ formobj.serviceAmount }}</span>
</el-form-item>
@ -303,40 +308,311 @@
</div>
</el-form>
</div>
<financialscheme v-show="viewState == 2" ref="divCount" @backData="backData" @doback="resetState"/>
</div>
</template>
<script>
import financialscheme from './financialscheme'
import { saveJinRong, selectDetailss } from '@/api/salesManagement/orderManagement'
export default {
name: 'JinRongFangAnInfo',
name: '',
components: {
financialscheme
},
data() {
return {
viewTitle: '',
tableKey: 0,
index: 0,
viewState: 1,
source: '', // 1.---- 2.--
formobj: {
otherPolicyState: false
}
saleOrderSid: '',
type: '',
isPack: '',
policyName: '',
policySid: '',
mainVehicleAmount: '',
accessoriesAmount: '',
trailerAmount: '',
purchaseTax: '',
premium: '',
loanTotal: '',
accessoriesAmountCb: false,
trailerAmountCb: false,
purchaseTaxCb: false,
premiumCb: false,
downPayRatio: '',
downPayAmount: '',
loanAmount: '',
loanPeriod: '',
bondRatio: '',
bondAmount: '',
factoryDiscount: '',
factoryDiscountUse: '',
factoryDiscountUseKey: '',
policyYearRatio: '',
loanPayMoney: '',
loanInterest: '',
discountCar: '',
otherPolicyState: false,
otherPolicyName: '',
otherPolicySid: '',
otherPolicyAmount: '',
otherPolicyPeriod: '',
otherPolicyMonthlyRepay: '',
otherPolicyInterest: '',
otherPolicyYearRatio: '',
loanDownPay: '',
downPayAmountsRatio: '',
loanAmountTotal: '',
period: '',
monthlyRepay: '',
interest: '',
returnTime: '',
downPayAmounts: '',
bondAmounts: '',
depositPremium: '',
depositSettle: '',
serviceAmount: '',
proxyAccidentPremium: '',
registerAmount: '',
operationAmount: '',
vehOtherPrice: '',
otherAmount: '',
otherAmountRemark: '',
dealWay: '',
dealWayKey: '',
proxyPremium: '',
proxyPurchasetax: '',
proxyTotal: '',
offsetPremium: '',
offsetPurchasetax: '',
offsetTotal: '',
receivableTotal: '',
realTotal: '',
vehTotalPrice: '',
nominalPrice: '',
isShowMore: false
},
orgSidPath: '',
rules: {}
}
},
methods: {
showInfo(value) {
this.viewTitle = '单车金融方案'
//
showInfo(value, orgSidPath, source) {
selectDetailss({ businessSid: value }).then((res) => {
if (res.success) {
this.formobj = res.data
this.formobj.saleOrderSid = res.data.salesOrderSid
}
})
this.orgSidPath = orgSidPath
this.source = source
},
// --
showClient(value, orgSidPath, source) {
console.log(value, 9999, source)
this.formobj = value
this.orgSidPath = orgSidPath
this.source = source
},
financialComputing() {
this.viewState = 2
this.$refs['divCount'].showAdd(this.formobj, this.orgSidPath)
},
backData(value) {
this.viewState = 1
value = JSON.parse(JSON.stringify(value))
this.formobj.type = value.type
this.formobj.isPack = value.isPack
this.formobj.policyName = value.policyName
this.formobj.policySid = value.policySid
this.formobj.mainVehicleAmount = value.mainVehicleAmount
this.formobj.accessoriesAmount = value.accessoriesAmount
this.formobj.trailerAmount = value.trailerAmount
this.formobj.purchaseTax = value.purchaseTax
this.formobj.premium = value.premium
this.formobj.loanTotal = value.loanTotal
this.formobj.accessoriesAmountCb = value.accessoriesAmountCb
this.formobj.trailerAmountCb = value.trailerAmountCb
this.formobj.purchaseTaxCb = value.purchaseTaxCb
this.formobj.premiumCb = value.premiumCb
this.formobj.downPayRatio = value.downPayRatio
this.formobj.downPayAmount = value.downPayAmount
this.formobj.loanAmount = value.loanAmount
this.formobj.loanPeriod = value.loanPeriod
this.formobj.bondRatio = value.bondRatio
this.formobj.bondAmount = value.bondAmount
this.formobj.factoryDiscount = value.factoryDiscount
this.formobj.factoryDiscountUse = value.factoryDiscountUse
this.formobj.factoryDiscountUseKey = value.factoryDiscountUseKey
this.formobj.policyYearRatio = value.policyYearRatio
this.formobj.loanPayMoney = value.loanPayMoney
this.formobj.loanInterest = value.loanInterest
this.formobj.discountCar = value.discountCar
this.formobj.otherPolicyState = value.otherPolicyState
this.formobj.otherPolicyName = value.otherPolicyName
this.formobj.otherPolicySid = value.otherPolicySid
this.formobj.otherPolicyAmount = value.otherPolicyAmount
this.formobj.otherPolicyPeriod = value.otherPolicyPeriod
this.formobj.otherPolicyMonthlyRepay = value.otherPolicyMonthlyRepay
this.formobj.otherPolicyInterest = value.otherPolicyInterest
this.formobj.otherPolicyYearRatio = value.otherPolicyYearRatio
this.formobj.loanDownPay = value.loanDownPay
this.formobj.downPayAmountsRatio = value.downPayAmountsRatio
this.formobj.loanAmountTotal = value.loanAmountTotal
this.formobj.period = value.period
this.formobj.monthlyRepay = value.monthlyRepay
this.formobj.interest = value.interest
this.formobj.returnTime = value.returnTime
this.formobj.downPayAmounts = value.downPayAmounts
this.formobj.bondAmounts = value.bondAmounts
this.formobj.depositPremium = value.depositPremium
this.formobj.depositSettle = value.depositSettle
this.formobj.serviceAmount = value.serviceAmount
this.formobj.proxyAccidentPremium = value.proxyAccidentPremium
this.formobj.registerAmount = value.registerAmount
this.formobj.operationAmount = value.operationAmount
this.formobj.vehOtherPrice = value.vehOtherPrice
this.formobj.otherAmount = value.otherAmount
this.formobj.otherAmountRemark = value.otherAmountRemark
this.formobj.dealWay = value.dealWay
this.formobj.dealWayKey = value.dealWayKey
this.formobj.proxyPremium = value.proxyPremium
this.formobj.proxyPurchasetax = value.proxyPurchasetax
this.formobj.proxyTotal = value.proxyTotal
this.formobj.offsetPremium = value.offsetPremium
this.formobj.offsetPurchasetax = value.offsetPurchasetax
this.formobj.offsetTotal = value.offsetTotal
this.formobj.receivableTotal = value.receivableTotal
this.formobj.realTotal = value.realTotal
this.formobj.vehTotalPrice = value.vehTotalPrice
this.formobj.nominalPrice = value.nominalPrice
},
handleReturn() {
this.$emit('doback')
backParameters() {
this.$emit('backParameters', this.formobj)
this.formobj = {
saleOrderSid: '',
type: '',
isPack: '',
policyName: '',
policySid: '',
mainVehicleAmount: '',
accessoriesAmount: '',
trailerAmount: '',
purchaseTax: '',
premium: '',
loanTotal: '',
accessoriesAmountCb: false,
trailerAmountCb: false,
purchaseTaxCb: false,
premiumCb: false,
downPayRatio: '',
downPayAmount: '',
loanAmount: '',
loanPeriod: '',
bondRatio: '',
bondAmount: '',
factoryDiscount: '',
factoryDiscountUse: '',
factoryDiscountUseKey: '',
policyYearRatio: '',
loanPayMoney: '',
loanInterest: '',
discountCar: '',
otherPolicyState: false,
otherPolicyName: '',
otherPolicySid: '',
otherPolicyAmount: '',
otherPolicyPeriod: '',
otherPolicyMonthlyRepay: '',
otherPolicyInterest: '',
otherPolicyYearRatio: '',
loanDownPay: '',
downPayAmountsRatio: '',
loanAmountTotal: '',
period: '',
monthlyRepay: '',
interest: '',
returnTime: '',
downPayAmounts: '',
bondAmounts: '',
depositPremium: '',
depositSettle: '',
serviceAmount: '',
proxyAccidentPremium: '',
registerAmount: '',
operationAmount: '',
vehOtherPrice: '',
otherAmount: '',
otherAmountRemark: '',
dealWay: '',
dealWayKey: '',
proxyPremium: '',
proxyPurchasetax: '',
proxyTotal: '',
offsetPremium: '',
offsetPurchasetax: '',
offsetTotal: '',
receivableTotal: '',
realTotal: '',
vehTotalPrice: '',
nominalPrice: '',
isShowMore: false
}
},
handleSave() {
saveJinRong(this.formobj).then((resp) => {
if (resp.success) {
this.$message({ showClose: true, type: 'success', message: '保存成功' })
this.$emit('doback')
}
})
},
resetState() {
this.viewState = 1
}
}
}
</script>
<style scoped>
.formaddcopy02 {
padding: 0px;
}
.span-sty {
width: 140px !important;
width: 130px !important;
}
.addinputInfo {
margin-left: 130px !important;
margin-left: 120px !important;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.tlineheightb {
display: flex;

8
anrui-buscenter/anrui-buscenter-ui/src/components/publicPage/financialschemeInfo.vue

@ -2,11 +2,11 @@
<div class="app-container">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<div v-show="source == 'xiaoshou'">
<el-button type="info" size="small" icon="el-icon-close" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<div class="">
<el-form ref="dataForm" :model="formobj" class="formaddcopy02">
<div v-if="formobj.isShowMore">
<el-row style="border-top: 1px solid #E0E3EB">
@ -318,6 +318,7 @@ export default {
viewTitle: '',
tableKey: 0,
index: 0,
source: '',
formobj: {
saleOrderSid: '',
type: '',
@ -397,9 +398,10 @@ export default {
}
},
methods: {
showInfo(value) {
showInfo(value, source) {
this.viewTitle = '金融方案'
this.formobj = JSON.parse(JSON.stringify(value))
this.source = source
},
handleReturn() {
this.formobj = {

7
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/chukuguanliFlow/chukuguanli/relation/paymentticket.vue → anrui-buscenter/anrui-buscenter-ui/src/components/publicPage/paymentticket.vue

@ -7,7 +7,7 @@
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="">
<div class="listconadd">
<el-form ref="dataForm" :model="formobj" class="formaddcopy02" :rules="rules">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="12">
@ -227,11 +227,6 @@ export default {
}
</script>
<style scoped>
.titwu {
font-size: 28px;
text-align: center;
padding: 30px 0 20px 0;
}
.span-sty {
width: 120px !important;
}

190
anrui-buscenter/anrui-buscenter-ui/src/views/kehuguanli/cheliangxuqiu/cheliangxuqiu.vue

@ -2,37 +2,23 @@
<div class="app-container">
<div v-show="viewState ==1">
<button-bar :view-title=" this.customerName + '客户-意向车型'" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<!-- <div class="tab-header webtop">-->
<!-- <div>{{ this.customerName }}客户-意向车型</div>-->
<!-- <div>-->
<!-- <el-button v-show="btnVisible" type="primary" size="small" icon="el-icon-plus" @click="handleCreate()">新增-->
<!-- </el-button>-->
<!-- &lt;!&ndash; <el-button type="primary" size="small" @click="handleUpdate()">编辑</el-button> &ndash;&gt;-->
<!-- <el-button v-show="btnVisible" type="danger" size="small" icon="el-icon-delete" @click="handleDelete()">删除-->
<!-- </el-button>-->
<!-- <el-button type="info" size="small" icon="el-icon-close" @click="handleReturn()">关闭</el-button>-->
<!-- </div>-->
<!-- </div>-->
<div class="webcon">
<div class="main-content">
<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-select v-model="listQuery.params.brandName" class="addinputw" placeholder="请选择"
@change="changePinPai" style="width:200px">
<el-option v-for="(item, index) in brand_list" :key="index" :label="item.brandName"
:value="item.sid"/>
<el-select v-model="listQuery.params.brandName" class="addinputw" placeholder="请选择" @change="changePinPai" style="width:200px" filterable>
<el-option v-for="(item, index) in brand_list" :key="index" :label="item.brandName" :value="item.sid"/>
</el-select>
</el-form-item>
<el-form-item label="车型">
<el-select v-model="listQuery.params.modelName" class="addinputw" placeholder="请选择" @change="getName" style="width:300px">
<el-select v-model="listQuery.params.modelName" class="addinputw" placeholder="请选择" @change="getName" style="width:300px" filterable>
<el-option v-for="(item, index) in figuration" :key="index" :label="item.modelName" :value="item.sid"/>
</el-select>
</el-form-item>
<el-form-item label="购车方式">
<!-- <el-input v-model="listQuery.params.orgSid" placeholder="" clearable /> -->
<el-select v-model="listQuery.params.purchaseMethodValue" class="addinputw" placeholder="请选择" @change="getGouche" style="width:200px">
<el-form-item label="付款方式">
<el-select v-model="listQuery.params.purchaseMethodValue" class="addinputw" placeholder="请选择" style="width:200px">
<el-option v-for="item in orgSid_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"/>
</el-select>
</el-form-item>
@ -41,11 +27,11 @@
<div class="line"></div>
<el-date-picker value-format="yyyy-MM-dd" v-model="listQuery.params.createTimeEnd" clearable style="width: 160px;" type="date" placeholder="结束日期"/>
</el-form-item>
<div class="searchbtns">
<el-button type="primary" icon="el-icon-search" @click="handleFilter">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="resetSearch">重置</el-button>
</div>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" size="small" icon="el-icon-search" @click="handleFilter">查询</el-button>
<el-button type="primary" size="small" icon="el-icon-refresh" @click="resetSearch">重置</el-button>
</div>
</div>
</div>
<div class="listtop">
@ -54,8 +40,8 @@
</div>
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column width="50px" type="selection" align="center"/>
<el-table-column width="80px" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column fixed width="50" type="selection" align="center"/>
<el-table-column fixed width="80" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column label="品牌" align="center">
<template slot-scope="scope">
<span>{{ scope.row.brandName }}</span>
@ -110,22 +96,23 @@
</div>
</div>
</div>
<cheliangxuqiuAdd v-show="viewState == 2 || viewState == 3 " ref="divadd" @handleReturn="handleReturn_copy"/>
<cheliangxuqiuinfo v-show="viewState == 4" ref="divinfo" @handleReturn="handleReturn_copy"/>
<!-- 新增编辑 -->
<cheliangxuqiuAdd v-show="viewState == 2 || viewState == 3 " @reloadlist="getList" ref="divadd" @doback="resetState"/>
<!-- 详情 -->
<cheliangxuqiuinfo v-show="viewState == 4" ref="divinfo" @doback="resetState"/>
</div>
</template>
<script>
import {delBySids, pagerList} from '@/api/jichuxinxi/crmvehicle'
import { delBySids, pagerList } from '@/api/jichuxinxi/crmvehicle'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import {getSelectDown, loginDetails} from '@/api/dictcommons/basemanufacturer'
import {typeValues} from '@/api/dictcommons/shujuzidian'
import {getStorage} from '@/utils/auth'
import { getSelectDown } from '@/api/dictcommons/basemanufacturer'
import { typeValues } from '@/api/dictcommons/shujuzidian'
import cheliangxuqiuAdd from './cheliangxuqiuAdd'
import cheliangxuqiuinfo from './cheliangxuqiuinfo'
import {brandDown, getPathSidByUserSid} from "@/api/chexingchaxun/modelinquire";
import { brandDown, getOrgSidByPath } from '@/api/dictcommons/dictcommons'
export default {
name: 'cheliangxuqiu',
@ -134,7 +121,7 @@ export default {
cheliangxuqiuinfo,
Pagination,
pageye,
ButtonBar,
ButtonBar
},
data() {
return {
@ -170,7 +157,6 @@ export default {
}
],
viewState: 1,
btnVisible: false,
customerSid: '',
customerName: '',
isSearchShow: false,
@ -198,17 +184,21 @@ export default {
visitSid: ''
}
},
stateId: '',
upLevel: '',
YongHuid: [],
brand_list: [],
orgSid_list: [],
selectDate: undefined,
temp: {} //
orgSid_list: [
{
dictKey: '1',
dictValue: '全款'
},
{
dictKey: '2',
dictValue: '贷款'
}
]
}
},
mounted() {
this.$refs["btnbar"].setButtonList(this.btnList)
this.$refs['btnbar'].setButtonList(this.btnList)
},
created() {
//
@ -244,35 +234,13 @@ export default {
}
},
init() {
this.postHuoquyonghu()
this.getShuJUZiDian()
this.getPathSid()
},
getShuJUZiDian() {
typeValues({ type: 'purchaseType' }).then((res) => {
if (res.code === '200') {
this.orgSid_list = res.data
}
})
},
getGouche(value) {
},
getPathSid() {
const userSid = window.sessionStorage.getItem('userSid')
getPathSidByUserSid({userSid: userSid}).then((res) => {
if (res.code === '200') {
// this.listQuery.params.createOrgSId = res.data
this.useOrg = res.data
this.getBrand(res.data)
}
})
},
// -
getBrand(useOrg) {
brandDown({useOrg: useOrg}).then((res) => {
if (res.code === '200') {
this.brand_list = res.data
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => {
if (res.success) {
brandDown({ useOrg: res.data }).then((resp) => {
if (resp.success) {
this.brand_list = resp.data
}
})
}
})
},
@ -291,34 +259,19 @@ export default {
},
//
cheLiang(sid, upLevel, name, status) {
if (status !== '02') {
this.btnVisible = true
}
this.customerName = name
this.stateId = sid
this.upLevel = upLevel //
this.customerSid = sid
this.getList()
this.init()
},
// ------------------
//
// getPinPai(sid) {
// var manufacturerSid = {
// manufacturerSid: sid
// }
// getNamesDownBySid(manufacturerSid).then((response) => {
// if (response.code === '200') {
// this.branddate = response.data
// }
// })
// },
//
getCheXingName(brandSid) {
var sid = {
sid: brandSid
}
getSelectDown(sid).then((response) => {
if (response.code === '200') {
if (response.success) {
this.figuration = response.data
}
})
@ -326,7 +279,6 @@ export default {
getName(value) {
let bb = null
this.figuration.forEach((e) => {
console.log('999', e)
if (e.sid === value) {
bb = {
name: e.modelName,
@ -336,68 +288,36 @@ export default {
})
this.listQuery.params.modelName = bb.name
},
//
postHuoquyonghu() {
var token = getStorage()
loginDetails(token).then((response) => {
if (response.code === '200') {
this.YongHuid = response.data
}
})
},
handleReturn_copy() {
resetState() {
this.viewState = 1
this.getList()
},
//
handleSelectionChange(row) {
const aa = []
const bb = []
const cc = []
row.forEach((element) => {
aa.push(element.sid)
})
row.forEach((element) => {
bb.push(element.name, element.mobile)
})
this.sids = aa
row.forEach((element) => {
cc.push(element.name)
})
this.names = cc
console.log('勾选记录', this.sids)
},
//
toAdd() {
this.viewState = 2
this.$refs.divadd.openCreate(this.stateId)
this.$refs['divadd'].showAdd(this.customerSid)
},
//
toEdit() {
if (this.sids.length === 1) {
this.viewState = 3
this.$refs['divadd'].openUpdate(this.sids[0])
// this.$refs.divadd.openUpdate(this.sids[0], this.stateId, () => {
// })
} else if (this.sids.length > 1) {
this.$message({
showClose: true,
message: '不能选中多个修改!',
type: 'error'
});
this.$refs['divadd'].showEdit(this.sids[0])
} else {
this.$message({
showClose: true,
message: '请选择一条信息!',
type: 'error'
});
return
this.$message({ showClose: true, type: 'error', message: '请选择一条记录进行操作' })
}
},
//
handleCheck(row) {
this.viewState = 4
this.$refs['divinfo'].openinfo(row.sid, this.stateId)
this.$refs['divinfo'].showInfo(row.sid)
},
// ------------------
//
@ -408,17 +328,12 @@ export default {
},
//
doClose() {
this.btnVisible = false
if (this.upLevel == '0') {
this.$emit('handleReturn')
} else if (this.upLevel == '1') {
this.$emit('handleReturn')
}
this.$emit('handleReturn')
},
//
getList() {
this.listLoading = true
this.listQuery.params.customerSid = this.stateId
this.listQuery.params.customerSid = this.customerSid
pagerList(this.listQuery).then((response) => {
this.listLoading = false
if (response.code === '200') {
@ -429,7 +344,7 @@ export default {
resetSearch() {
this.listQuery = {
current: 1,
size: 20,
size: 10,
total: 0,
params: {
brandName: '',
@ -449,12 +364,11 @@ export default {
//
handleFilter() {
this.listQuery.current = 1
console.log(this.listQuery)
this.getList()
},
// ID
doDel() {
if (this.sids.length == 0) {
if (this.sids.length === 0) {
this.$message({
showClose: true,
type: 'error',
@ -475,14 +389,14 @@ export default {
showClose: true,
message: '删除成功',
type: 'success'
});
})
this.getList()
} else {
this.$message({
showClose: true,
message: '删除失败',
type: 'error'
});
})
}
})
}

1069
anrui-buscenter/anrui-buscenter-ui/src/views/kehuguanli/cheliangxuqiu/cheliangxuqiuAdd.vue

File diff suppressed because it is too large

371
anrui-buscenter/anrui-buscenter-ui/src/views/kehuguanli/cheliangxuqiu/cheliangxuqiuinfo.vue

@ -1,159 +1,86 @@
<template>
<div class="app-container">
<div>
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>车型需求详情</div>
<div>{{ viewTitle }}</div>
<div>
<el-button type="info" size="small" icon="el-icon-close" @click="handleReturn()">关闭</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="dataForm" :model="temp" label-position="right" class="formadd" :rules="rules">
<div class="title">车型详情</div>
<el-row>
<el-col :span="4" class="el-form-item-right">
购车方式
</el-col>
<el-col :span="8" class="el-form-item-left">
{{ temp.purchaseMethodValue }}
</el-col>
<el-col :span="4" class="el-form-item-right">
品牌
</el-col>
<el-col :span="8" class="el-form-item-left">
{{ temp.brand }}
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="12">
<div class="span-sty">付款方式</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchaseMethodValue }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div v-if="formobj.purchaseMethod == '1'">
<div class="span-sty">资金来源</div>
<el-form-item><span class="addinputInfo">{{ formobj.financePlanValue }}</span></el-form-item>
</div>
<div v-if="formobj.purchaseMethod == '2'">
<div class="span-sty">担保类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.financePlanValue }}</span></el-form-item>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="el-form-item-right">
车型
<el-col :span="12">
<div class="span-sty">品牌</div>
<el-form-item><span class="addinputInfo">{{ formobj.brandName }}</span></el-form-item>
</el-col>
<el-col :span="20" class="el-form-item-left">
{{ temp.model }}
<el-col :span="12" class="tlineheightb">
<div class="span-sty">车型</div>
<el-form-item><span class="addinputInfo">{{ formobj.modelName }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="el-form-item-right">
车型常用配置
</el-col>
<el-col :span="20" class="el-form-item-left">
{{ temp.configName }}
<el-col :span="24" class="tlineheightb">
<div class="span-sty">车型常用配置</div>
<el-form-item><span class="addinputInfo">{{ formobj.sketChconfiguration }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="el-form-item-right">
其他配置说明
</el-col>
<el-col :span="20" class="el-form-item-left">
{{ temp.otherConfig }}
<el-col :span="24" class="tlineheightb">
<div class="span-sty">其他配置说明</div>
<el-form-item><span class="addinputInfo">{{ formobj.otherConfig }}</span></el-form-item>
</el-col>
</el-row>
<!-- <el-row>-->
<!-- <el-col :span="4" class="el-form-item-right">-->
<!-- 选装内容-->
<!-- </el-col>-->
<!-- <el-col :span="20" class="el-form-item-left">-->
<!-- {{ temp.changeOptions }}-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-row>
<el-col :span="4" class="el-form-item-right">
销售参考价
</el-col>
<el-col :span="8" class="el-form-item-left">
{{ temp.guidancePrice }}
</el-col>
<el-col :span="4" class="el-form-item-right">
车型报价
<el-col :span="12">
<div class="span-sty">销售指导价</div>
<el-form-item><span class="addinputInfo">{{ formobj.saleReferencePrice }}</span></el-form-item>
</el-col>
<el-col :span="8" class="el-form-item-left">
{{ temp.price }}
<el-col :span="12">
<div class="span-sty">车型报价</div>
<el-form-item><span class="addinputInfo">{{ formobj.vehicleModelOffer }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="el-form-item-right">
数量
</el-col>
<el-col :span="8" class="el-form-item-left">
{{ temp.number }}
</el-col>
<el-col :span="4" class="el-form-item-right">
预提车日期
<el-col :span="12">
<div class="span-sty">数量</div>
<el-form-item><span class="addinputInfo">{{ formobj.number }}</span></el-form-item>
</el-col>
<el-col :span="8" class="el-form-item-left">
{{ temp.date }}
<el-col :span="12">
<div class="span-sty">预提车日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.estimatedPickupDate }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="el-form-item-right">
备注
<el-col :span="24">
<div class="span-sty">备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.remarks }}</span></el-form-item>
</el-col>
<el-col :span="20" class="el-form-item-left">
{{ temp.remarks }}
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">金融方案类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.type }}</span></el-form-item>
</el-col>
</el-row>
<div v-if="this.ifdictKey">
<div class="title">金融需求</div>
<el-form ref="dataForm" :model="crmFindemandVo_copy" label-position="right">
<el-row>
<el-col :span="4" class="el-form-item-right">
贷款主体类型
</el-col>
<el-col :span="8" class="el-form-item-left">
{{ crmFindemandVo_copy.loanSubjectType }}
</el-col>
<el-col :span=" 4" class="el-form-item-right">
资方
</el-col>
<el-col :span=" 8" class="el-form-item-left">
{{ crmFindemandVo_copy.managementName }}
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="el-form-item-right">
是否打包
</el-col>
<el-col :span="20" class="el-form-item-left">
{{ crmFindemandVo_copy.isnoPackaging }}
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="el-form-item-right">
首付比例
</el-col>
<el-col :span="8" class="el-form-item-left">
{{ crmFindemandVo_copy.downpayment }}
</el-col>
<el-col :span="4" class="el-form-item-right">
保证金比例
</el-col>
<el-col :span="8" class="el-form-item-left">
{{ crmFindemandVo_copy.marginLevel }}
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="el-form-item-right">
贷款期数
</el-col>
<el-col :span="8" class="el-form-item-left">
{{ crmFindemandVo_copy.loanStageNumber }}
</el-col>
<el-col :span="4" class="el-form-item-right">
月还金额
</el-col>
<el-col :span="8" class="el-form-item-left">
{{ crmFindemandVo_copy.acceptMonthAmount }}
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="el-form-item-right">
备注
</el-col>
<el-col :span="20" class="el-form-item-left">
{{ crmFindemandVo_copy.remarks }}
</el-col>
</el-row>
</el-form>
<div v-show="formobj.financePlan !== '1' && formobj.typeKey === '01'">
<financialschemeInfo ref="divJR"/>
</div>
</el-form>
</div>
@ -162,95 +89,141 @@
</template>
<script>
import {getPcVehicleInfoBySid} from '@/api/jichuxinxi/crmvehicle'
import { details } from '@/api/jichuxinxi/crmvehicle'
import financialschemeInfo from '@/components/publicPage/financialschemeInfo'
export default {
name: 'Cheliangxuqiuinfo',
name: '',
components: {
financialschemeInfo
},
data() {
return {
// ---------
edit: true,
FormLoading: false,
temp: {}, //
crmFindemandVo_copy: {},
// tempKelsit: {},
templook: {}, //
textMap: {
update: '修改',
create: '新增'
},
stateId: 0,
kehusid: '',
dialogStatus: '', //
brandSid: '',
ifdictKey: false,
purchaseType: 'purchaseType',
aseType: [],
aseTypeBox: [],
vendor: [],
branddate: [],
vehicleType: 'vehicleType',
figuration: [],
loanType: 'loanType',
principal: [],
loan_principal: [],
packagingProject: 'packagingProject',
typeOptions: [],
countId: 0,
supplier: [],
grouping: [],
CustomerSid: '',
YongHuid: [],
userSidL: '',
// packaging_project: [],
packaging_projectt: [],
packaging_projects: [],
rules: {}
viewTitle: '',
viewState: 1,
formobj: {
brandName: '',
brandSid: '',
changeOptions: '',
crmSolutions: {
accessoriesAmount: '',
accessoriesAmountCb: false,
bondAmount: '',
bondAmounts: '',
bondRatio: '',
dealWay: '',
dealWayKey: '',
depositPremium: '',
depositSettle: '',
downPayAmount: '',
downPayAmounts: '',
downPayAmountsRatio: '',
downPayRatio: '',
factoryDiscount: '',
factoryDiscountUse: '',
interest: '',
isPack: '',
isShowMore: false,
loanAmount: '',
loanAmountTotal: '',
loanDownPay: '',
loanInterest: '',
loanPayMoney: '',
loanPeriod: '',
loanTotal: '',
mainVehicleAmount: '',
monthlyRepay: '',
nominalPrice: '',
offsetPremium: '',
offsetPurchasetax: '',
offsetTotal: '',
operationAmount: '',
otherAmount: '',
otherAmountRemark: '',
otherPolicyAmount: '',
otherPolicyInterest: '',
otherPolicyMonthlyRepay: '',
otherPolicyName: '',
otherPolicyPeriod: '',
otherPolicySid: '',
otherPolicyState: false,
otherPolicyYearRatio: '',
period: '',
policyName: '',
policySid: '',
policyYearRatio: '',
premium: '',
premiumCb: false,
proxyAccidentPremium: '',
proxyPremium: '',
proxyPurchasetax: '',
purchaseTax: '',
purchaseTaxCb: false,
realTotal: '',
receivableTotal: '',
registerAmount: '',
returnTime: '',
serviceAmount: '',
trailerAmount: '',
trailerAmountCb: false,
vehOtherPrice: '',
vehTotalPrice: ''
},
customerSid: '',
estimatedPickupDate: '',
modelName: '',
modelSid: '',
otherConfig: '',
purchaseMethod: '',
purchaseMethodValue: '',
saleReferencePrice: '',
sketChconfiguration: '',
comonConfigSid: '',
type: '',
typeKey: '',
vehicleModelOffer: '',
number: '',
remarks: '',
financePlan: '',
financePlanValue: ''
}
}
},
methods: {
openinfo(sid, user) {
this.stateId = sid
this.userSidL = user
if (this.stateId !== '0') {
getPcVehicleInfoBySid(this.stateId, this.userSidL).then((response) => {
if (response.code === '200') {
this.temp = response.data
// if (this.temp.purchaseMethodValue == '') {
// this.ifdictKey = true
// this.crmFindemandVo_copy = this.temp.crmFindemandVo
// } else {
// this.ifdictKey = false
// }
}
})
}
showInfo(sid) {
this.viewTitle = '车辆需求'
details({ sid: sid }).then((res) => {
if (res.success) {
this.formobj = res.data
this.$refs['divJR'].showInfo(this.formobj.crmSolutions, 'kehu')
}
})
},
//
handleReturn() {
this.$emit('handleReturn')
this.$emit('doback')
}
}
}
</script>
<style scoped>
.el-form-item-right {
font-size: 14px;
font-weight: 700;
color: #606266;
line-height: 3 !important;
text-align: right;
.span-sty {
width: 130px !important;
}
.el-form-item-left {
font-size: 14px;
color: #606266;
line-height: 3 !important;
text-align: right;
.addinputInfo {
margin-left: 120px !important;
}
.el-form-item-left {
line-height: 3 !important;
text-align: left;
.tlineheightb {
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
/deep/ .tlineheightb .el-form-item .el-form-item__content .addinputInfo {
line-height: 15px !important;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
</style>

98
anrui-buscenter/anrui-buscenter-ui/src/views/kehuguanli/cheliangxuqiu/modelsToChoose.vue

@ -4,11 +4,10 @@
<div class="tab-header webtop">
<div>车型选择</div>
<div>
<el-button type="primary" size="small" @click="handleSelect()">确认</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="webcon">
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
@ -21,11 +20,11 @@
<el-input v-model="listQuery.params.configName" placeholder="" clearable style="width: 150px"/>
</el-form-item>
</el-row>
<div class="searchbtns">
<el-button type="primary" @click="handleFilter">查询</el-button>
<el-button type="primary" @click="handReset">重置</el-button>
</div>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" size="small" @click="handleFilter">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" size="small" @click="handReset">重置</el-button>
</div>
</div>
</div>
<div>
@ -34,9 +33,13 @@
<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 type="selection" align="center" width="50"/>
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%">
<el-table-column width="80px" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column label="操作" align="center" width="80">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="handleSelect(scope.row)">选择</el-button>
</template>
</el-table-column>
<el-table-column label="品牌" align="center">
<template slot-scope="scope">
<span>{{ scope.row.brandName }}</span>
@ -75,7 +78,7 @@ import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
export default {
name: 'chexingxuanze',
name: 'CheXingSelect',
components: {
Pagination,
pageye
@ -87,7 +90,6 @@ export default {
viewState: 1,
tableKey: 0,
list: [],
sids: [],
listLoading: false,
listQuery: {
current: 1,
@ -96,7 +98,7 @@ export default {
modelName: '',
configName: '',
brandSid: '',
userSid:window.sessionStorage.getItem('userSid')
userSid: ''
},
total: 0
}
@ -118,25 +120,7 @@ export default {
var pageindex = index + 1 + pagestart
return pageindex
},
//
handleSelectionChange(row) {
const aa = []
console.log('1122',row)
row.forEach((element) => {
aa.push({
modelName: element.modelName,
modelSid: element.modelSid,
configName: element.configName,
configSid:element.configSid,
otherConfig: element.otherConfig,
guidedPrice: element.guidedPrice
})
})
this.sids = aa
console.log('勾选记录', this.sids)
},
showInfo(brandSid) {
console.log(brandSid, 99999)
if (brandSid !== '') {
this.listQuery.params.brandSid = brandSid
this.getList()
@ -145,6 +129,7 @@ export default {
//
getList() {
this.listLoading = true
this.listQuery.params.userSid = window.sessionStorage.getItem('userSid')
listPageByVehmodel(this.listQuery).then((response) => {
this.listLoading = false
if (response.success) {
@ -159,38 +144,16 @@ export default {
this.getList()
},
handReset() {
this.listQuery = {
current: 1,
size: 10,
params: {
modelName: '',
configName: '',
brandSid: '',
userSid:window.sessionStorage.getItem('userSid')
},
total: 0
}
this.listQuery.current = 1
this.listQuery.size = 10
this.listQuery.total = 0
this.listQuery.params.modelName = ''
this.listQuery.params.configName = ''
this.listQuery.params.userSid = ''
this.getList()
},
handleSelect() {
if (this.sids.length === 1) {
this.$emit('handleReturnSelect', this.sids)
} else if (this.sids.length > 1) {
this.$notify({
title: '提示',
message: '不能选中多个!',
type: 'error',
duration: 2000
})
} else {
this.$notify({
title: '提示',
message: '没有选择信息!',
type: 'error',
duration: 2000
})
return
}
handleSelect(row) {
this.$emit('handleReturnSelect', row)
},
handleReturn() {
this.$emit('handleReturn')
@ -199,21 +162,4 @@ export default {
}
</script>
<style scoped>
.listtop {
display: flex;
justify-content: space-between;
align-items: center;
border: 1px solid #dfe4ed;
height: 40px;
}
.tit {
margin-bottom: -10px;
}
.pagination {
margin-bottom: -10px;
}
.line {
display: inline-block;
margin: 0px 15px;
}
</style>

4
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/chukuguanliFlow/chukuguanli/chukuDaiBanInfo.vue

@ -205,8 +205,8 @@ import { getRetrievalApplyInfoBySid, trailerList, complete, breakProcess, reject
import userInfo from './relation/userInfo'
import guacheInfo from './relation/guacheInfo'
import shangzhuangInfo from './relation/shangzhuangInfo'
import paymentticket from './relation/paymentticket'
import xiaoshoudingdanInfo from './relation/dingdanInfo'
import paymentticket from '../../publicPage/paymentticket'
import xiaoshoudingdanInfo from '../../publicPage/dingdanInfo'
export default {
name: 'chukuDaiBanInfo',

4
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/chukuguanliFlow/chukuguanli/chukuYiBanInfo.vue

@ -177,8 +177,8 @@ import { getRetrievalApplyInfoBySid, trailerList, revokeProcess } from '@/api/ch
import userInfo from './relation/userInfo'
import guacheInfo from './relation/guacheInfo'
import shangzhuangInfo from './relation/shangzhuangInfo'
import paymentticket from './relation/paymentticket'
import xiaoshoudingdanInfo from './relation/dingdanInfo'
import paymentticket from '../../publicPage/paymentticket'
import xiaoshoudingdanInfo from '../../publicPage/dingdanInfo'
export default {
name: 'chukuYiBanInfo',

6
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/chukuguanliFlow/chukuguanli/relation/dingdanInfo.vue → anrui-buscenter/anrui-buscenter-ui/src/views/workflow/publicPage/dingdanInfo.vue

@ -304,17 +304,17 @@
</el-form>
</div>
</div>
<financialscheme ref="divInfo" v-show="viewState == 2" @doback="resetState"/>
<financialschemeInfo ref="divInfo" v-show="viewState == 2" @doback="resetState"/>
</div>
</template>
<script>
import { fetchDetailsBySid } from '@/api/salesManagement/orderManagement'
import financialscheme from '../../../xiaoshouguanliFlow/xiaoshoudingdanFlow/relation/financialscheme'
import financialschemeInfo from './financialschemeInfo'
export default {
name: 'XiaoShouDingDanInfo',
components: {
financialscheme
financialschemeInfo
},
data() {
return {

254
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/publicPage/paymentticket.vue

@ -0,0 +1,254 @@
<template>
<div class="app-container">
<div>
<div class="tab-header webtop">
<div>款票详情</div>
<div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="">
<el-form ref="dataForm" :model="formobj" class="formaddcopy02" :rules="rules">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="12">
<div class="span-sty">车架号</div>
<el-form-item><span class="addinputInfo">{{ formobj.vinNo }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">销售类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.paymentMethod }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">合同编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.contractNo }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">客户名称</div>
<el-form-item><span class="addinputInfo">{{ formobj.customerName }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">车型</div>
<el-form-item><span class="addinputInfo">{{ formobj.modelName }}</span></el-form-item>
</el-col>
</el-row>
<!--Start 预订车辆信息-->
<div class="title">
<div>款项情况(平台收款)</div>
</div>
<el-table :key="tableKey" v-loading="listLoading" ref="multipleTable" :data="formobj.finSelectVoList" border style="width: 100%" :index="index">
<el-table-column fixed align="center" label="序号" type="index" :index="index + 1" width="60"/>
<el-table-column label="款项名称" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.receivablesName }}</span>
</template>
</el-table-column>
<el-table-column label="应收金额" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.reveivableMoney }}</span>
</template>
</el-table-column>
<el-table-column label="已收款" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.subscriptionMoneyAll }}</span>
</template>
</el-table-column>
<el-table-column label="未收款" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.notSubscriptionMoney }}</span>
</template>
</el-table-column>
<el-table-column label="备注" align="center">
<template slot-scope="scope">
<span>{{ scope.row.remark }}</span>
</template>
</el-table-column>
</el-table>
<div class="title">发票情况</div>
<el-row>
<el-col :span="16">
<div class="span-sty">开票名称</div>
<el-form-item><span class="addinputInfo">{{ formobj.vinInvoiceVo.invoicingName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">税号</div>
<el-form-item><span class="addinputInfo">{{ formobj.vinInvoiceVo.invoiceNo }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<div class="span-sty">地址</div>
<el-form-item><span class="addinputInfo">{{ formobj.vinInvoiceVo.address }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">联系电话</div>
<el-form-item><span class="addinputInfo">{{ formobj.vinInvoiceVo.telPhone }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<div class="span-sty">开户行</div>
<el-form-item><span class="addinputInfo">{{ formobj.vinInvoiceVo.openingBank }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">银行账号</div>
<el-form-item><span class="addinputInfo">{{ formobj.vinInvoiceVo.bankNum }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<div class="span-sty">开票单位</div>
<el-form-item><span class="addinputInfo">{{ formobj.vinInvoiceVo.invoiceTitle }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">开票类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.vinInvoiceVo.invoiceType }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">开票状态</div>
<el-form-item><span class="addinputInfo">{{ formobj.vinInvoiceVo.billingState }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">开票金额</div>
<el-form-item><span class="addinputInfo">{{ formobj.vinInvoiceVo.invoiceAmount }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">开票日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.vinInvoiceVo.invoiceDate }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">移交状态</div>
<el-form-item><span class="addinputInfo">{{ formobj.vinInvoiceVo.transferState }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">接收人</div>
<el-form-item><span class="addinputInfo">{{ formobj.vinInvoiceVo.recipient }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">移交日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.vinInvoiceVo.transferTime }}</span></el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</div>
</template>
<script>
import { deliveredFinSelect, deliveredFinSelecByBusVinSidPC } from '@/api/chukuguanli/chukubanli'
export default {
name: 'PaymentTicket',
data() {
return {
tableKey: 0,
index: 0,
// ---------
listLoading: false,
formobj: {
vinNo: '',
paymentMethod: '',
contractNo: '',
customerName: '',
modelName: '',
finSelectVoList: [],
vinInvoiceVo: {
invoicingName: '',
invoiceNo: '',
invoiceTitle: '',
invoiceType: '',
billingState: '',
invoiceAmount: '',
invoiceDate: '',
transferState: '',
address: '',
telPhone: '',
openingBank: '',
bankNum: '',
recipient: '',
transferTime: ''
}
},
rules: {}
}
},
methods: {
// ------------ ------------
showInfo(contractId, row) {
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
})
if (row.vinSid !== null && row.vinSid !== undefined) {
deliveredFinSelect({ contractNo: contractId, vinSid: row.vinSid }).then((response) => {
if (response.success) {
console.log(response.data)
this.formobj = response.data
}
})
}
// 退
if (row.busVinSid !== null && row.busVinSid !== undefined) {
deliveredFinSelecByBusVinSidPC({ contractNo: contractId, busVinSid: row.busVinSid }).then((res) =>{
if (res.success) {
this.formobj = res.data
}
})
}
},
// ------------ ------------
//
handleReturn() {
this.$refs['dataForm'].resetFields()
this.formobj = {
vinNo: '',
paymentMethod: '',
contractNo: '',
customerName: '',
modelName: '',
finSelectVoList: [],
vinInvoiceVo: {
invoicingName: '',
invoiceNo: '',
invoiceTitle: '',
invoiceType: '',
billingState: '',
invoiceAmount: '',
invoiceDate: '',
transferState: '',
address: '',
telPhone: '',
openingBank: '',
bankNum: '',
recipient: '',
transferTime: ''
}
}
this.$emit('doback')
}
}
}
</script>
<style scoped>
.span-sty {
width: 120px !important;
}
.addinputInfo {
margin-left: 110px !important;
}
/*表格列设置fixed后固定列出现下边框的设置*/
/deep/ .el-table__fixed {
height: 100% !important;
}
/*表格列设置fixed后固定列出现下边框的设置*/
/deep/ .el-table__fixed-right {
height: 100% !important;
}
</style>

4
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/teshushenpiFlow/qiankuanticheguanli/qiankuanticheByDivisionDaiBanInfo.vue

@ -221,8 +221,8 @@
<script>
import { fetchSid, getNextNodesForSubmit, getPreviousNodesForReject, initiatorToAnswerInfo, breakProcess, reject } from '@/api/tesheshenpi/qiankuantiche'
import dingdanInfo from '../../chukuguanliFlow/chukuguanli/relation/dingdanInfo'
import paymentticket from '../../chukuguanliFlow/chukuguanli/relation/paymentticket'
import dingdanInfo from '../../publicPage/dingdanInfo'
import paymentticket from '../../publicPage/paymentticket'
export default {
name: 'qiankuanticheByDivisionDaiBanInfo',

4
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/teshushenpiFlow/qiankuanticheguanli/qiankuanticheDaiBanByFileAndQiTaInfo.vue

@ -223,8 +223,8 @@
<script>
import { fetchSid, getNextNodesForSubmit, getPreviousNodesForReject, completeBy, breakProcess, reject } from '@/api/tesheshenpi/qiankuantiche'
import dingdanInfo from '../../chukuguanliFlow/chukuguanli/relation/dingdanInfo'
import paymentticket from '../../chukuguanliFlow/chukuguanli/relation/paymentticket'
import dingdanInfo from '../../publicPage/dingdanInfo'
import paymentticket from '../../publicPage/paymentticket'
import upload from '@/components/uploadFile/upload'
export default {

4
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/teshushenpiFlow/qiankuanticheguanli/qiankuanticheDaiBanByFileInfo.vue

@ -241,8 +241,8 @@
<script>
import { fetchSid, getNextNodesForSubmit, getPreviousNodesForReject, completeBy, breakProcess, reject } from '@/api/tesheshenpi/qiankuantiche'
import upload from '@/components/uploadFile/upload'
import paymentticket from '../../chukuguanliFlow/chukuguanli/relation/paymentticket'
import dingdanInfo from '../../chukuguanliFlow/chukuguanli/relation/dingdanInfo'
import paymentticket from '../../publicPage/paymentticket'
import dingdanInfo from '../../publicPage/dingdanInfo'
export default {
name: 'qiankuanticheDaiBanByFileInfo',

4
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/teshushenpiFlow/qiankuanticheguanli/qiankuanticheDaiBanInfo.vue

@ -221,8 +221,8 @@
<script>
import { fetchSid, getNextNodesForSubmit, getPreviousNodesForReject, complete, breakProcess, reject } from '@/api/tesheshenpi/qiankuantiche'
import dingdanInfo from '../../chukuguanliFlow/chukuguanli/relation/dingdanInfo'
import paymentticket from '../../chukuguanliFlow/chukuguanli/relation/paymentticket'
import dingdanInfo from '../../publicPage/dingdanInfo'
import paymentticket from '../../publicPage/paymentticket'
export default {
name: 'qiankuanticheDaiBanInfo',

4
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/teshushenpiFlow/qiankuanticheguanli/qiankuanticheYiBanInfo.vue

@ -195,8 +195,8 @@
<script>
import { fetchSid, revokeProcess, createPdf } from '@/api/tesheshenpi/qiankuantiche'
import dingdanInfo from '../../chukuguanliFlow/chukuguanli/relation/dingdanInfo'
import paymentticket from '../../chukuguanliFlow/chukuguanli/relation/paymentticket'
import dingdanInfo from '../../publicPage/dingdanInfo'
import paymentticket from '../../publicPage/paymentticket'
import { getStorage } from '@/utils/auth'
export default {

828
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/xiaoshouguanliFlow/xiaoshoudingdanFlow/relation/financialschemeEdit.vue

@ -1,828 +0,0 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" @click="handleSave()">保存</el-button>
<el-button type="info" size="small" icon="el-icon-close" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="">
<el-form ref="form_obj" :model="formobj" label-position="top" :rules="rules" class="formaddcopy02">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="6">
<div class="span-sty">单车主车销售合同价</div>
<el-form-item><span class="addinputInfo">{{ formobj.finalPrice }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">单车挂车销售合同价</div>
<el-form-item><span class="addinputInfo">{{ formobj.gcPrice }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">单车上装销售合同价</div>
<el-form-item><span class="addinputInfo">{{ formobj.szPrice }}</span></el-form-item>
</el-col>
</el-row>
<div v-if="formobj.typeKey !== '02'">
<el-row>
<el-col :span="6">
<div class="span-sty">是否打包</div>
<el-form-item>
<el-radio-group class="addinputw" v-model="formobj.isPack">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="18">
<div class="span-sty">资方及产品政策</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.policyName" placeholder="" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">融资项目</div>
<el-form-item prop="mainVehicleAmount">
<div class="addinputInfo">
<span><span class="icon">*</span>主车发票价<el-input v-model="formobj.mainVehicleAmount" clearable style="width: 100px" placeholder="" @keyup.native="formobj.mainVehicleAmount = oninput(formobj.mainVehicleAmount, 2)"/></span>
<span style="padding-left: 5px"><el-checkbox v-model="formobj.accessoriesAmountCb" style="padding-right: 5px"/>融资票据<el-input :disabled="!formobj.accessoriesAmountCb" v-model="formobj.accessoriesAmount" clearable style="width: 100px" placeholder="" @keyup.native="formobj.accessoriesAmount = oninput(formobj.accessoriesAmount, 2)"/></span>
<span style="padding-left: 5px"><el-checkbox v-model="formobj.trailerAmountCb" style="padding-right: 5px"/>挂车<el-input :disabled="!formobj.trailerAmountCb" v-model="formobj.trailerAmount" clearable style="width: 100px" placeholder="" @keyup.native="formobj.trailerAmount = oninput(formobj.trailerAmount, 2)"/></span>
<span style="padding-left: 5px"><el-checkbox v-model="formobj.premiumCb" style="padding-right: 5px"/>保险<el-input :disabled="!formobj.premiumCb" v-model="formobj.premium" clearable style="width: 100px" placeholder="" @keyup.native="formobj.premium = oninput(formobj.premium, 2)"/></span>
<span style="padding-left: 5px"><el-checkbox v-model="formobj.purchaseTaxCb" style="padding-right: 5px"/>购置税<el-input :disabled="!formobj.purchaseTaxCb" v-model="formobj.purchaseTax" clearable style="width: 100px" placeholder="" @keyup.native="formobj.purchaseTax = oninput(formobj.purchaseTax, 2)"/></span>
<span style="padding-left: 5px"><el-checkbox v-model="formobj.vehDamageFloatCb" style="padding-right: 5px"/>车损上浮<el-input :disabled="!formobj.vehDamageFloatCb" v-model="formobj.vehDamageFloat" clearable style="width: 100px" placeholder="" @keyup.native="formobj.vehDamageFloat = oninput(formobj.vehDamageFloat, 2)"/></span>
</div>
</el-form-item>
</el-col>
<el-col :span="24">
<div class="span-sty">融资项目总额</div>
<el-form-item>
<span class="addinputInfo">{{ loanTotal() }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">首付比例</div>
<el-form-item><span class="addinputInfo">{{ downPayRatio() }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty"><span class="icon">*</span>首付金额</div>
<el-form-item prop="downPayAmount">
<el-input class="addinputw" v-model="formobj.downPayAmount" placeholder="" clearable @keyup.native="formobj.downPayAmount = oninput(formobj.downPayAmount, 2)"/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">产品贷款金额</div>
<el-form-item>
<span class="addinputInfo">{{ loanAmount() }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty"><span class="icon">*</span>产品期数</div>
<el-form-item prop="loanPeriod">
<el-input class="addinputw" v-model="formobj.loanPeriod" placeholder="" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">贷款保证金比例</div>
<el-form-item>
<span class="addinputInfo">{{ bondRatio() }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty"><span class="icon">*</span>贷款保证金</div>
<el-form-item prop="bondAmount">
<el-input class="addinputw" v-model="formobj.bondAmount" placeholder="" clearable @keyup.native="formobj.bondAmount = oninput(formobj.bondAmount, 2)"/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty"><span class="icon">*</span>厂家贴息</div>
<el-form-item prop="factoryDiscount">
<el-input class="addinputw" v-model="formobj.factoryDiscount" placeholder="" clearable @keyup.native="formobj.factoryDiscount = oninput(formobj.factoryDiscount, 2)"/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">年利率</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.policyYearRatio" placeholder="" clearable @keyup.native="formobj.policyYearRatio = oninput(formobj.policyYearRatio, 2)"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty"><span class="icon">*</span>月还金额</div>
<el-form-item prop="loanPayMoney">
<el-input class="addinputw" v-model="formobj.loanPayMoney" placeholder="" clearable @keyup.native="formobj.loanPayMoney = oninput(formobj.loanPayMoney, 2)"/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">利息总额</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.loanInterest" placeholder="" clearable @keyup.native="formobj.loanInterest = oninput(formobj.loanInterest, 2)"/>
</el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">厂家贴息用途</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.factoryDiscountUse" placeholder="" clearable/>
</el-form-item>
</el-col>
</el-row>
<div class="title"><el-checkbox v-model="formobj.otherPolicyState" style="padding-right: 5px"/>其它融</div>
<div v-if="formobj.otherPolicyState">
<el-row>
<el-col :span="12">
<div class="span-sty">其它融名称</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.otherPolicyName" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty"><span class="icon">*</span>贷款金额</div>
<el-form-item prop="otherPolicyAmount">
<el-input class="addinputw" v-model="formobj.otherPolicyAmount" placeholder="" clearable @keyup.native="formobj.otherPolicyAmount = oninput(formobj.otherPolicyAmount, 2)"/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty"><span class="icon">*</span>期数</div>
<el-form-item prop="otherPolicyPeriod">
<el-input class="addinputw" v-model="formobj.otherPolicyPeriod" placeholder="" clearable @keyup.native="formobj.otherPolicyPeriod = oninput(formobj.otherPolicyPeriod, 2)"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty"><span class="icon">*</span>月还金额</div>
<el-form-item prop="otherPolicyMonthlyRepay">
<el-input class="addinputw" v-model="formobj.otherPolicyMonthlyRepay" placeholder="" clearable @keyup.native="formobj.otherPolicyMonthlyRepay = oninput(formobj.otherPolicyMonthlyRepay, 2)"/>
</el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">利息总额</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.otherPolicyInterest" placeholder="" clearable @keyup.native="formobj.otherPolicyInterest = oninput(formobj.otherPolicyInterest, 2)"/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">年利率</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.otherPolicyYearRatio" placeholder="" clearable @keyup.native="formobj.otherPolicyYearRatio = oninput(formobj.otherPolicyYearRatio, 2)"/>
</el-form-item>
</el-col>
</el-row>
</div>
<div class="title">方案汇总</div>
<el-row>
<el-col :span="6">
<div class="span-sty">融资首付</div>
<el-form-item>
<span class="addinputInfo">{{ loanDownPay() }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">实际首付比例</div>
<el-form-item>
<span class="addinputInfo">{{ downPayAmountsRatio() }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">总贷款金额</div>
<el-form-item>
<span class="addinputInfo">{{ loanAmountTotal() }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">期数</div>
<el-form-item>
<span class="addinputInfo">{{ period() }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">月还金额</div>
<el-form-item><span class="addinputInfo">{{ monthlyRepay() }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">利息总额</div>
<el-form-item>
<span class="addinputInfo">{{ interest() }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty"><span class="icon">*</span>预计首款还款日</div>
<el-form-item prop="returnTime">
<el-date-picker value-format="yyyy-MM-dd" v-model="formobj.returnTime" clearable class="addinputw" type="date" placeholder=""/>
</el-form-item>
</el-col>
</el-row>
<div class="title">应收明细</div>
<el-row>
<el-col :span="6">
<div class="span-sty">融资首付</div>
<el-form-item>
<span class="addinputInfo">{{ downPayAmounts() }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">贷款保证金</div>
<el-form-item><span class="addinputInfo">{{ bondAmounts() }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">保险保证金</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.depositPremium" placeholder="" clearable @keyup.native="formobj.depositPremium = oninput(formobj.depositPremium, 2)"/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">落户保证金</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.depositSettle" placeholder="" clearable @keyup.native="formobj.depositSettle = oninput(formobj.depositSettle, 2)"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty"><span class="icon">*</span>服务费</div>
<el-form-item prop="serviceAmount">
<el-input class="addinputw" v-model="formobj.serviceAmount" placeholder="" clearable @keyup.native="formobj.serviceAmount = oninput(formobj.serviceAmount, 2)"/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">代收意外险</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.proxyAccidentPremium" placeholder="" clearable @keyup.native="formobj.proxyAccidentPremium = oninput(formobj.proxyAccidentPremium, 2)"/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">上牌费</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.registerAmount" placeholder="" clearable @keyup.native="formobj.registerAmount = oninput(formobj.registerAmount, 2)"/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">运管费</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.operationAmount" placeholder="" clearable @keyup.native="formobj.operationAmount = oninput(formobj.operationAmount, 2)"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">补车价</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.vehOtherPrice" placeholder="" clearable @keyup.native="formobj.vehOtherPrice = oninput(formobj.vehOtherPrice, 2)"/>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">其它费用</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.otherAmount" placeholder="" clearable @keyup.native="formobj.otherAmount = oninput(formobj.otherAmount, 2)"/>
</el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">其它费用说明</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.otherAmountRemark" placeholder="" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">办理方式选择</div>
<el-form-item>
<el-select v-model="formobj.dealWay" placeholder="请选择" @change="changeDealWay" clearable class="addinputw">
<el-option v-for="item in dealWay_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="9">
<div class="span-sty">代收首年保险费</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.proxyPremium" placeholder="" clearable @keyup.native="formobj.proxyPremium = oninput(formobj.proxyPremium, 2)"/>
</el-form-item>
</el-col>
<el-col :span="9">
<div class="span-sty">代收购置税</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.proxyPurchasetax" placeholder="" clearable @keyup.native="formobj.proxyPurchasetax = oninput(formobj.proxyPurchasetax, 2)"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">应收合计</div>
<el-form-item>
<span class="addinputInfo">{{ receivableTotal() }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">抵顶费用合计</div>
<el-form-item>
<span class="addinputInfo">{{ offsetTotal() }}</span>
</el-form-item>
</el-col>
<el-col :span="9">
<div class="span-sty">抵顶首年保险费</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.offsetPremium" placeholder="" clearable @keyup.native="formobj.offsetPremium = oninput(formobj.offsetPremium, 2)"/>
</el-form-item>
</el-col>
<el-col :span="9">
<div class="span-sty">抵顶购置税</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.offsetPurchasetax" placeholder="" clearable @keyup.native="formobj.offsetPurchasetax = oninput(formobj.offsetPurchasetax, 2)"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">实收合计</div>
<el-form-item>
<span class="addinputInfo">{{ realTotal() }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">车辆总价</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.vehTotalPrice" placeholder="" clearable @keyup.native="formobj.vehTotalPrice = oninput(formobj.vehTotalPrice, 2)"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">名义(留购)</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.nominalPrice" placeholder="" clearable @keyup.native="formobj.nominalPrice = oninput(formobj.nominalPrice, 2)"/>
</el-form-item>
</el-col>
<el-col :span="18">
<el-form-item><span class="addinputInfo">结清时需缴纳此费用</span></el-form-item>
</el-col>
</el-row>
</div>
<div v-if="formobj.typeKey == '02'">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="24">
<div class="span-sty">资方及产品政策</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.policyName" placeholder="" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty"><span class="icon">*</span>厂家贴息</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.factoryDiscount" placeholder="" clearable @keyup.native="formobj.factoryDiscount = oninput(formobj.factoryDiscount, 2)"/>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="icon">*</span>厂家贴息用途</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.factoryDiscountUse" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="icon">*</span>服务费</div>
<el-form-item>
<el-input class="addinputw" v-model="formobj.serviceAmount" placeholder="" clearable @keyup.native="formobj.serviceAmount = oninput(formobj.serviceAmount, 2)"/>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
</div>
</div>
</template>
<script>
import { typeValues } from '@/api/dictcommons/dictcommons'
import {saveJinRong, selectDetailss } from '@/api/salesManagement/orderManagement'
export default {
name: 'JinRongFangAnEdit',
data() {
return {
viewTitle: '',
tableKey: 0,
index: 0,
dealWay_list: [],
formobj: {
saleOrderSid: '',
type: '',
isPack: '',
policyName: '',
mainVehicleAmount: '',
accessoriesAmount: '',
trailerAmount: '',
purchaseTax: '',
premium: '',
vehDamageFloat: '',
loanTotal: '',
accessoriesAmountCb: false,
trailerAmountCb: false,
purchaseTaxCb: false,
premiumCb: false,
vehDamageFloatCb: false,
downPayRatio: '',
downPayAmount: '',
loanAmount: '',
loanPeriod: '',
bondRatio: '',
bondAmount: '',
factoryDiscount: '',
factoryDiscountUse: '',
policyYearRatio: '',
loanPayMoney: '',
loanInterest: '',
otherPolicyState: false,
otherPolicyName: '',
otherPolicyAmount: '',
otherPolicyPeriod: '',
otherPolicyMonthlyRepay: '',
otherPolicyInterest: '',
otherPolicyYearRatio: '',
loanDownPay: '',
downPayAmountsRatio: '',
loanAmountTotal: '',
period: '',
monthlyRepay: '',
interest: '',
returnTime: '',
downPayAmounts: '',
bondAmounts: '',
depositPremium: '',
depositSettle: '',
serviceAmount: '',
proxyAccidentPremium: '',
registerAmount: '',
operationAmount: '',
vehOtherPrice: '',
otherAmount: '',
otherAmountRemark: '',
dealWay: '',
dealWayKey: '',
proxyPremium: '',
proxyPurchasetax: '',
offsetPremium: '',
offsetPurchasetax: '',
offsetTotal: '',
receivableTotal: '',
realTotal: '',
vehTotalPrice: '',
nominalPrice: ''
},
rules: {
mainVehicleAmount: [{ required: true, message: '主车发票价不能为空', trigger: 'blur' }],
downPayAmount: [{ required: true, message: '首付金额不能为空', trigger: 'blur' }],
loanPeriod: [{ required: true, message: '产品期数不能为空', trigger: 'blur' }],
bondAmount: [{ required: true, message: '贷款保证金不能为空', trigger: 'blur' }],
factoryDiscount: [{ required: true, message: '厂家贴息不能为空', trigger: 'blur' }],
loanPayMoney: [{ required: true, message: '月还金额不能为空', trigger: 'blur' }],
otherPolicyAmount: [{ required: true, message: '贷款金额不能为空', trigger: 'blur' }],
otherPolicyPeriod: [{ required: true, message: '期数不能为空', trigger: 'blur' }],
otherPolicyMonthlyRepay: [{ required: true, message: '月还金额不能为空', trigger: 'blur' }],
returnTime: [{ required: true, message: '预计首期还款日不能为空', trigger: 'blur' }],
serviceAmount: [{ required: true, message: '服务费不能为空', trigger: 'blur' }],
factoryDiscountUse: [{ required: true, message: '厂家贴息用途不能为空', trigger: 'blur' }]
}
}
},
methods: {
showInfo(val) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.viewTitle = '单车金融方案'
// vuedata/DataSource
// this.formobj = JSON.parse(JSON.stringify(value))
selectDetailss({ businessSid: val }).then((res) => {
if (res.success) {
this.formobj = res.data
this.formobj.saleOrderSid = res.data.salesOrderSid
}
})
typeValues({ type: 'dealWay' }).then((resp) => {
if (resp.success) {
this.dealWay_list = resp.data
}
})
},
//
oninput(val, limit = 0) {
val = val.replace(/[^\d.]/g, '') //
val = val.replace(/^00/, '0.') // 0
val = val.replace(/^\./g, '0.') // 0.
val = val.replace(/\.{2,}/g, '.') //
val = val.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.'); //
/^0\d+/.test(val) ? val = val.slice(1) : '' // 0
const str = '^(\\d+)\\.(\\d{' + limit + '}).*$'
const reg = new RegExp(str)
if (limit === 0) {
//
val = val.replace(reg, '$1')
} else {
//
val = val.replace(reg, '$1.$2')
}
return val
},
//
loanTotal() {
this.formobj.loanTotal = (parseFloat(this.arguments(this.formobj.mainVehicleAmount)) + parseFloat(this.arguments(this.formobj.accessoriesAmount)) + parseFloat(this.arguments(this.formobj.trailerAmount)) + parseFloat(this.arguments(this.formobj.premium)) + parseFloat(this.arguments(this.formobj.purchaseTax)) + parseFloat(this.arguments(this.formobj.vehDamageFloat))).toFixed(2)
return this.formobj.loanTotal
},
//
downPayRatio() {
if (this.formobj.loanTotal !== '' && this.formobj.downPayAmount !== '') {
this.formobj.downPayRatio = (parseFloat(this.arguments(this.formobj.downPayAmount)) / parseFloat(this.arguments(this.formobj.loanTotal)) * 100).toFixed(2) + '%'
}
return this.formobj.downPayRatio
},
//
loanAmount() {
if (this.formobj.loanTotal !== '' && this.formobj.downPayAmount !== '') {
this.formobj.loanAmount = (parseFloat(this.arguments(this.formobj.loanTotal)) - parseFloat(this.arguments(this.formobj.downPayAmount))).toFixed(2)
}
return this.formobj.loanAmount
},
//
bondRatio() {
if (this.formobj.bondAmount !== '' && this.formobj.loanAmount !== '') {
this.formobj.bondRatio = (parseFloat(this.arguments(this.formobj.bondAmount)) / parseFloat(this.arguments(this.formobj.loanAmount)) * 100).toFixed(2) + '%'
}
return this.formobj.bondRatio
},
//
loanDownPay() {
if (this.formobj.downPayAmount !== '') {
if (this.formobj.otherPolicyAmount !== '') {
this.formobj.loanDownPay = (parseFloat(this.arguments(this.formobj.downPayAmount)) - parseFloat(this.arguments(this.formobj.otherPolicyAmount))).toFixed(2)
} else {
this.formobj.loanDownPay = this.formobj.downPayAmount
}
}
return this.formobj.loanDownPay
},
//
downPayAmountsRatio() {
if (this.formobj.loanDownPay !== '' && this.formobj.loanTotal !== '') {
this.formobj.downPayAmountsRatio = (parseFloat(this.formobj.loanDownPay) / parseFloat(this.formobj.loanTotal) * 100).toFixed(2) + '%'
}
return this.formobj.downPayAmountsRatio
},
//
loanAmountTotal() {
if (this.formobj.loanAmount !== '') {
if (this.formobj.otherPolicyAmount !== '') {
this.formobj.loanAmountTotal = (parseFloat(this.arguments(this.formobj.loanAmount)) + parseFloat(this.arguments(this.formobj.otherPolicyAmount))).toFixed(2)
} else {
this.formobj.loanAmountTotal = this.formobj.loanAmount
}
}
return this.formobj.loanAmountTotal
},
//
period() {
if (this.formobj.loanPeriod !== '') {
if (this.formobj.otherPolicyPeriod !== '') {
if (parseFloat(this.arguments(this.formobj.loanPeriod)) - parseFloat(this.arguments(this.formobj.otherPolicyPeriod)) < 0) {
this.formobj.period = '-' + '/' + this.formobj.loanPeriod
} else {
const aa = (parseFloat(this.arguments(this.formobj.loanPeriod)) - parseFloat(this.arguments(this.formobj.otherPolicyPeriod))).toFixed(2)
this.formobj.period = this.formobj.otherPolicyPeriod + '/' + aa
}
} else {
this.formobj.period = '-' + '/' + this.formobj.loanPeriod
}
}
return this.formobj.period
},
//
monthlyRepay() {
if (this.formobj.loanPayMoney !== '') {
if (this.formobj.otherPolicyMonthlyRepay !== '') {
if (parseFloat(this.arguments(this.formobj.loanPayMoney)) - parseFloat(this.arguments(this.formobj.otherPolicyMonthlyRepay)) === 0) {
const aa = (parseFloat(this.arguments(this.formobj.loanPayMoney)) + parseFloat(this.arguments(this.formobj.otherPolicyMonthlyRepay))).toFixed(2)
this.formobj.monthlyRepay = aa + '/' + '-'
} else {
const bb = (parseFloat(this.arguments(this.formobj.loanPayMoney)) + parseFloat(this.arguments(this.formobj.otherPolicyMonthlyRepay))).toFixed(2)
this.formobj.monthlyRepay = bb + '/' + this.formobj.loanPayMoney
}
} else {
this.formobj.monthlyRepay = this.formobj.loanPayMoney + '/' + '-'
}
}
return this.formobj.monthlyRepay
},
//
interest() {
if (this.formobj.loanInterest !== '' && this.formobj.otherPolicyInterest !== '') {
this.formobj.interest = (parseFloat(this.arguments(this.formobj.loanInterest)) + parseFloat(this.arguments(this.formobj.otherPolicyInterest))).toFixed(2)
} else if (this.formobj.loanInterest === '' && this.formobj.otherPolicyInterest !== '') {
this.formobj.interest = this.formobj.otherPolicyInterest
} else if (this.formobj.loanInterest !== '' && this.formobj.otherPolicyInterest === '') {
this.formobj.interest = this.formobj.loanInterest
} else {
this.formobj.interest = ''
}
return this.formobj.interest
},
//
downPayAmounts() {
if (this.formobj.downPayAmount !== '') {
if (this.formobj.otherPolicyAmount !== '') {
this.formobj.downPayAmounts = (parseFloat(this.arguments(this.formobj.downPayAmount)) - parseFloat(this.arguments(this.formobj.otherPolicyAmount))).toFixed(2)
} else {
this.formobj.downPayAmounts = this.formobj.downPayAmount
}
}
return this.formobj.downPayAmounts
},
//
bondAmounts() {
if (this.formobj.bondAmount !== '') {
this.formobj.bondAmounts = this.formobj.bondAmount
}
return this.formobj.bondAmount
},
changeDealWay(value) {
const choose = this.dealWay_list.filter((item) => item.dictValue === value)
this.formobj.dealWayKey = choose[0].dictKey
},
//
receivableTotal() {
if (this.formobj.serviceAmount !== '') {
this.formobj.receivableTotal = (parseFloat(this.arguments(this.formobj.downPayAmounts)) + parseFloat(this.arguments(this.formobj.bondAmounts)) + parseFloat(this.arguments(this.formobj.depositPremium)) + parseFloat(this.arguments(this.formobj.depositSettle)) + parseFloat(this.arguments(this.formobj.serviceAmount)) + parseFloat(this.arguments(this.formobj.proxyAccidentPremium)) + parseFloat(this.arguments(this.formobj.registerAmount)) + parseFloat(this.arguments(this.formobj.operationAmount)) + parseFloat(this.arguments(this.formobj.vehOtherPrice)) + parseFloat(this.arguments(this.formobj.otherAmount)) + parseFloat(this.arguments(this.formobj.proxyPremium)) + parseFloat(this.arguments(this.formobj.proxyPurchasetax))).toFixed(2)
}
return this.formobj.receivableTotal
},
//
offsetTotal() {
if (this.formobj.offsetPremium !== '' && this.formobj.offsetPurchasetax !== '') {
this.formobj.offsetTotal = (parseFloat(this.arguments(this.formobj.offsetPremium)) + parseFloat(this.arguments(this.formobj.offsetPurchasetax))).toFixed(2)
} else if (this.formobj.offsetPremium === '' && this.formobj.offsetPurchasetax !== '') {
this.formobj.offsetTotal = this.formobj.offsetPurchasetax
} else if (this.formobj.offsetPremium !== '' && this.formobj.offsetPurchasetax === '') {
this.formobj.offsetTotal = this.formobj.offsetPremium
} else {
this.formobj.offsetTotal = ''
}
return this.formobj.offsetTotal
},
//
realTotal() {
if (this.formobj.offsetTotal !== '') {
this.formobj.realTotal = (parseFloat(this.arguments(this.formobj.receivableTotal)) - parseFloat(this.arguments(this.formobj.offsetTotal))).toFixed(2)
} else {
this.formobj.realTotal = this.formobj.receivableTotal
}
return this.formobj.realTotal
},
arguments(val) {
if (val === '') {
val = 0
return val
} else {
return val
}
},
handleSave() {
if (this.formobj.typeKey === '02') {
if (this.formobj.factoryDiscount === '') {
this.$message({ showClose: true, type: 'error', message: '厂家贴息不能为空' })
return
}
if (this.formobj.factoryDiscountUse === '') {
this.$message({ showClose: true, type: 'error', message: '厂家贴息用途不能为空' })
return
}
if (this.formobj.serviceAmount === '') {
this.$message({ showClose: true, type: 'error', message: '服务费不能为空' })
return
}
}
this.$refs['form_obj'].validate((valid) => {
if (valid) {
saveJinRong(this.formobj).then((resp) => {
if (resp.success) {
this.$message({ showClose: true,type: 'success', message: '保存成功' })
this.handleReturn()
}
})
}
})
},
handleReturn() {
this.formobj = {
saleOrderSid: '',
type: '',
typeKey: '',
isPack: '',
policyName: '',
mainVehicleAmount: '',
accessoriesAmount: '',
trailerAmount: '',
purchaseTax: '',
premium: '',
vehDamageFloat: '',
loanTotal: '',
accessoriesAmountCb: false,
trailerAmountCb: false,
purchaseTaxCb: false,
premiumCb: false,
vehDamageFloatCb: false,
downPayRatio: '',
downPayAmount: '',
loanAmount: '',
loanPeriod: '',
bondRatio: '',
bondAmount: '',
factoryDiscount: '',
factoryDiscountUse: '',
policyYearRatio: '',
loanPayMoney: '',
loanInterest: '',
otherPolicyState: false,
otherPolicyName: '',
otherPolicyAmount: '',
otherPolicyPeriod: '',
otherPolicyMonthlyRepay: '',
otherPolicyInterest: '',
otherPolicyYearRatio: '',
loanDownPay: '',
downPayAmountsRatio: '',
loanAmountTotal: '',
period: '',
monthlyRepay: '',
interest: '',
returnTime: '',
downPayAmounts: '',
bondAmounts: '',
depositPremium: '',
depositSettle: '',
serviceAmount: '',
proxyAccidentPremium: '',
registerAmount: '',
operationAmount: '',
vehOtherPrice: '',
otherAmount: '',
otherAmountRemark: '',
dealWay: '',
dealWayKey: '',
proxyPremium: '',
proxyPurchasetax: '',
offsetPremium: '',
offsetPurchasetax: '',
offsetTotal: '',
receivableTotal: '',
realTotal: '',
vehTotalPrice: '',
nominalPrice: ''
}
this.$refs['form_obj'].resetFields()
this.$emit('doback')
}
}
}
</script>
<style scoped>
.span-sty {
width: 140px !important;
}
.addinputInfo {
margin-left: 130px !important;
}
.addinputw {
margin-left: 130px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 120px !important;
width: calc(100% - 125px);
}
/deep/ .el-form-item__error {
margin-left: 120px !important;
}
</style>

41
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/xiaoshouguanliFlow/xiaoshoudingdantuicheFlow/salesorderbycarDaiBanInfo.vue

@ -1,6 +1,6 @@
<template>
<div class="app-container">
<div>
<div v-show="viewState == 1">
<!--标题按钮部分开始-->
<div class="tab-header webtop">
<!--标题-->
@ -82,8 +82,9 @@
<el-form-item><span>{{ formobj.remarks }}</span></el-form-item>
</el-col>
</el-row>
<div class="title">
<div class="title titleOne">
<div>车辆列表</div>
<div><el-button type="primary" size="mini" class="btntopblueline" @click="lookSale">查看销售订单</el-button></div>
</div>
<el-table :key="tableKey" :data="formobj.busSalesOrderReturnVehs" :index="index" border style="width: 100%">
<el-table-column fixed label="序号" width="60" type="index" :index="index + 1" align="center" />
@ -117,11 +118,20 @@
<span>{{ scope.row.stockStateValue }}</span>
</template>
</el-table-column>
<el-table-column label="款票情况" align="center" width="120">
<template slot-scope="scope">
<span class="bluezi" @click="lookPay(scope.row)">查看</span>
</template>
</el-table-column>
</el-table>
</el-form>
</div>
</div>
<!--End 添加修改部分-->
<!-- 查看销售订单 -->
<dingdanInfo v-show="viewState == 2" ref="divSale" @doback="resetState"/>
<!-- 查看款票情况 -->
<paymentticket v-show="viewState == 3" ref="divPay" @doback="resetState"/>
<!-- 选择待办人 的弹出框-->
<el-dialog title="填写审批意见" :visible.sync="nodeDialogVisible" width="80%">
<el-form class="formadd" >
@ -152,12 +162,19 @@
<script>
import req from '@/api/salesManagement/salesorderbycar'
import paymentticket from '../../publicPage/paymentticket'
import dingdanInfo from '../../publicPage/dingdanInfo'
export default {
name: 'XiaoShouDingDanTuiCheDaiBanInfo',
components: {
paymentticket,
dingdanInfo
},
data() {
return {
viewTitle: '',
viewState: 1,
index: 0,
tableKey: 0,
//
@ -173,6 +190,7 @@ export default {
modelName: '', //
modelSid: '', // sid
orderNum: '', //
orderSid: '',
salePrice: '', //
saleTypeKey: '', // key
saleTypeValue: '', // Value
@ -248,6 +266,18 @@ export default {
this.formobj = {}
})
},
//
lookSale() {
this.viewState = 2
this.$refs['divSale'].showInfo({ sid: this.formobj.orderSid })
},
lookPay(row) {
this.viewState = 3
const params = {
busVinSid: row.busVinSid
}
this.$refs['divPay'].showInfo(this.formobj.contractNo, params)
},
//
openAgree(val) {
this.operation = val
@ -376,5 +406,12 @@ export default {
.rowClass{
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
</style>

49
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/xiaoshouguanliFlow/xiaoshoudingdantuicheFlow/salesorderbycarEdit.vue

@ -1,6 +1,6 @@
<template>
<div class="app-container">
<div>
<div v-show="viewState == 1">
<!--标题按钮部分开始-->
<div class="tab-header webtop">
<!--标题-->
@ -83,8 +83,9 @@
<el-form-item><el-input v-model="formobj.remarks" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
<div class="title">
<div class="title titleOne">
<div>车辆列表</div>
<div><el-button type="primary" size="mini" class="btntopblueline" @click="lookSale">查看销售订单</el-button></div>
</div>
<el-table :key="tableKey" :data="formobj.busSalesOrderReturnVehs" :index="index" border style="width: 100%">
<el-table-column fixed label="序号" width="60" type="index" :index="index + 1" align="center"/>
@ -124,23 +125,38 @@
<span>{{ scope.row.stockStateValue }}</span>
</template>
</el-table-column>
<el-table-column label="款票情况" align="center" width="120">
<template slot-scope="scope">
<span class="bluezi" @click="lookPay(scope.row)">查看</span>
</template>
</el-table-column>
</el-table>
</el-form>
</div>
</div>
<!--End 添加修改部分-->
<!-- 查看销售订单 -->
<dingdanInfo v-show="viewState == 2" ref="divSale" @doback="resetState"/>
<!-- 查看款票情况 -->
<paymentticket v-show="viewState == 3" ref="divPay" @doback="resetState"/>
</div>
</template>
<script>
import req from '@/api/salesManagement/salesorderbycar'
import { getOrgSidByPath, fetchBySid } from '@/api/dictcommons/dictcommons'
import paymentticket from '../../publicPage/paymentticket'
import dingdanInfo from '../../publicPage/dingdanInfo'
export default {
name: 'XiaoShouDingDanTuiCheEdit',
components: {
paymentticket,
dingdanInfo
},
data() {
return {
viewTitle: '',
viewState: 1,
index: 0,
tableKey: 0,
//
@ -202,15 +218,23 @@ export default {
this.formobj = {}
})
},
//
lookSale() {
this.viewState = 2
this.$refs['divSale'].showInfo({ sid: this.formobj.orderSid })
},
lookPay(row) {
this.viewState = 3
const params = {
busVinSid: row.busVinSid
}
this.$refs['divPay'].showInfo(this.formobj.contractNo, params)
},
//
dataDelete(index) {
this.formobj.busSalesOrderReturnVehs.splice(index, 1)
},
save() {
if (this.formobj.busSalesOrderReturnVehs.length === 0) {
this.$message({ showClose: true, type: 'error', message: '车型列表不能为空' })
return
}
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
@ -242,10 +266,6 @@ export default {
})
},
submitVehicleApply() {
if (this.formobj.busSalesOrderReturnVehs.length === 0) {
this.$message({ showClose: true, type: 'error', message: '车型列表不能为空' })
return
}
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
@ -278,5 +298,12 @@ export default {
}
</script>
<style scoped>
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
</style>

41
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/xiaoshouguanliFlow/xiaoshoudingdantuicheFlow/salesorderbycarYiBanInfo.vue

@ -1,6 +1,6 @@
<template>
<div class="app-container">
<div>
<div v-show="viewState == 1">
<!--标题按钮部分开始-->
<div class="tab-header webtop">
<!--标题-->
@ -80,8 +80,9 @@
<el-form-item><span>{{ formobj.remarks }}</span></el-form-item>
</el-col>
</el-row>
<div class="title">
<div class="title titleOne">
<div>车辆列表</div>
<div><el-button type="primary" size="mini" class="btntopblueline" @click="lookSale">查看销售订单</el-button></div>
</div>
<el-table :key="tableKey" :data="formobj.busSalesOrderReturnVehs" :index="index" border style="width: 100%">
<el-table-column fixed label="序号" width="60" type="index" :index="index + 1" align="center" />
@ -115,22 +116,38 @@
<span>{{ scope.row.stockStateValue }}</span>
</template>
</el-table-column>
<el-table-column label="款票情况" align="center" width="120">
<template slot-scope="scope">
<span class="bluezi" @click="lookPay(scope.row)">查看</span>
</template>
</el-table-column>
</el-table>
</el-form>
</div>
</div>
<!--End 添加修改部分-->
<!-- 查看销售订单 -->
<dingdanInfo v-show="viewState == 2" ref="divSale" @doback="resetState"/>
<!-- 查看款票情况 -->
<paymentticket v-show="viewState == 3" ref="divPay" @doback="resetState"/>
</div>
</template>
<script>
import req from '@/api/salesManagement/salesorderbycar'
import paymentticket from '../../publicPage/paymentticket'
import dingdanInfo from '../../publicPage/dingdanInfo'
export default {
name: 'XiaoShouDingDanTuiCheYiBanInfo',
components: {
paymentticket,
dingdanInfo
},
data() {
return {
viewTitle: '',
viewState: 1,
index: 0,
tableKey: 0,
//
@ -146,6 +163,7 @@ export default {
modelName: '', //
modelSid: '', // sid
orderNum: '', //
orderSid: '',
salePrice: '', //
saleTypeKey: '', // key
saleTypeValue: '', // Value
@ -207,6 +225,18 @@ export default {
this.formobj = {}
})
},
//
lookSale() {
this.viewState = 2
this.$refs['divSale'].showInfo({ sid: this.formobj.orderSid })
},
lookPay(row) {
this.viewState = 3
const params = {
busVinSid: row.busVinSid
}
this.$refs['divPay'].showInfo(this.formobj.contractNo, params)
},
/** 确认撤回任务 */
openRevoke() {
this.$confirm('是否确认执行撤回操作', '提示', {
@ -248,5 +278,12 @@ export default {
}
</script>
<style scoped>
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
</style>

53
anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xiaoshoudingdantuiche/salesorderbycarAdd.vue

@ -1,6 +1,6 @@
<template>
<div class="app-container">
<div>
<div v-show="viewState == 1">
<!--标题按钮部分开始-->
<div class="tab-header webtop">
<!--标题-->
@ -84,8 +84,9 @@
<el-form-item><el-input v-model="formobj.remarks" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
<div class="title">
<div class="title titleOne">
<div>车辆列表</div>
<div><el-button type="primary" size="mini" class="btntopblueline" @click="lookSale">查看销售订单</el-button></div>
</div>
<el-table :key="tableKey" :data="formobj.busSalesOrderReturnVehs" :index="index" border style="width: 100%">
<el-table-column fixed label="序号" width="60" type="index" :index="index + 1" align="center"/>
@ -125,23 +126,39 @@
<span>{{ scope.row.stockStateValue }}</span>
</template>
</el-table-column>
<el-table-column label="款票情况" align="center" width="150">
<template slot-scope="scope">
<span class="bluezi" @click="lookPay(scope.row)">查看</span>
</template>
</el-table-column>
</el-table>
</el-form>
</div>
</div>
<!--End 添加修改部分-->
<!-- 查看销售订单 -->
<dingdanInfo v-show="viewState == 2" ref="divSale" @doback="resetState"/>
<!-- 查看款票情况 -->
<paymentticket v-show="viewState == 3" ref="divPay" @doback="resetState"/>
</div>
</template>
<script>
import req from '@/api/salesManagement/salesorderbycar'
import { getOrgSidByPath, fetchBySid } from '@/api/dictcommons/dictcommons'
import paymentticket from '@/components/publicPage/paymentticket'
import dingdanInfo from '@/components/publicPage/dingdanInfo'
export default {
name: 'XiaoShouDingDanTuiCheAdd',
components: {
paymentticket,
dingdanInfo
},
data() {
return {
viewTitle: '',
viewState: 1,
index: 0,
tableKey: 0,
//
@ -157,6 +174,7 @@ export default {
modelName: '', //
modelSid: '', // sid
orderNum: '', //
orderSid: '',
salePrice: '', //
saleTypeKey: '', // key
saleTypeValue: '', // Value
@ -215,11 +233,19 @@ export default {
dataDelete(index) {
this.formobj.busSalesOrderReturnVehs.splice(index, 1)
},
save() {
if (this.formobj.busSalesOrderReturnVehs.length === 0) {
this.$message({ showClose: true, type: 'error', message: '车型列表不能为空' })
return
//
lookSale() {
this.viewState = 2
this.$refs['divSale'].showInfo({ sid: this.formobj.orderSid })
},
lookPay(row) {
this.viewState = 3
const params = {
busVinSid: row.busVinSid
}
this.$refs['divPay'].showInfo(this.formobj.contractNo, params)
},
save() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
@ -244,10 +270,6 @@ export default {
})
},
submitVehicleApply() {
if (this.formobj.busSalesOrderReturnVehs.length === 0) {
this.$message({ showClose: true, type: 'error', message: '车型列表不能为空' })
return
}
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
@ -269,6 +291,9 @@ export default {
}
})
},
resetState() {
this.viewState = 1
},
// ===
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
@ -285,6 +310,7 @@ export default {
modelName: '', //
modelSid: '', // sid
orderNum: '', //
orderSid: '',
salePrice: '', //
saleTypeKey: '', // key
saleTypeValue: '', // Value
@ -303,5 +329,12 @@ export default {
}
</script>
<style scoped>
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
</style>

42
anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xiaoshoudingdantuiche/salesorderbycarInfo.vue

@ -1,6 +1,6 @@
<template>
<div class="app-container">
<div>
<div v-show="viewState == 1">
<!--标题按钮部分开始-->
<div class="tab-header webtop">
<!--标题-->
@ -80,8 +80,9 @@
<el-form-item><span>{{ formobj.remarks }}</span></el-form-item>
</el-col>
</el-row>
<div class="title">
<div class="title titleOne">
<div>车辆列表</div>
<div><el-button type="primary" size="mini" class="btntopblueline" @click="lookSale">查看销售订单</el-button></div>
</div>
<el-table :key="tableKey" :data="formobj.busSalesOrderReturnVehs" :index="index" border style="width: 100%">
<el-table-column fixed label="序号" width="60" type="index" :index="index + 1" align="center" />
@ -115,22 +116,38 @@
<span>{{ scope.row.stockStateValue }}</span>
</template>
</el-table-column>
<el-table-column label="款票情况" align="center" width="120">
<template slot-scope="scope">
<span class="bluezi" @click="lookPay(scope.row)">查看</span>
</template>
</el-table-column>
</el-table>
</el-form>
</div>
</div>
<!--End 添加修改部分-->
<!-- 查看销售订单 -->
<dingdanInfo v-show="viewState == 2" ref="divSale" @doback="resetState"/>
<!-- 查看款票情况 -->
<paymentticket v-show="viewState == 3" ref="divPay" @doback="resetState"/>
</div>
</template>
<script>
import req from '@/api/salesManagement/salesorderbycar'
import paymentticket from '@/components/publicPage/paymentticket'
import dingdanInfo from '@/components/publicPage/dingdanInfo'
export default {
name: 'XiaoShouDingDanTuiCheInfo',
components: {
paymentticket,
dingdanInfo
},
data() {
return {
viewTitle: '',
viewState: 1,
index: 0,
tableKey: 0,
//
@ -146,6 +163,7 @@ export default {
modelName: '', //
modelSid: '', // sid
orderNum: '', //
orderSid: '',
salePrice: '', //
saleTypeKey: '', // key
saleTypeValue: '', // Value
@ -172,6 +190,18 @@ export default {
this.formobj = row
})
},
//
lookSale() {
this.viewState = 2
this.$refs['divSale'].showInfo({ sid: this.formobj.orderSid })
},
lookPay(row) {
this.viewState = 3
const params = {
busVinSid: row.busVinSid
}
this.$refs['divPay'].showInfo(this.formobj.contractNo, params)
},
// ===
handleReturn() {
//
@ -187,6 +217,7 @@ export default {
modelName: '', //
modelSid: '', // sid
orderNum: '', //
orderSid: '',
salePrice: '', //
saleTypeKey: '', // key
saleTypeValue: '', // Value
@ -204,5 +235,12 @@ export default {
}
</script>
<style scoped>
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
</style>

46
anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/finginvoiceapply/backups/finginvoiceapplyAdd.vue

@ -166,18 +166,12 @@
<upload ref="uploadImg" v-model="image_list1" :accept="accept" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/>
</el-col>
</el-row>
<div class="title">客户开票申请书</div>
<div class="title">车辆买卖合同</div>
<el-row>
<el-col :span="24">
<upload ref="uploadImg" v-model="image_list2" :accept="accept" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/>
</el-col>
</el-row>
<div class="title">款项确认书(贷款业务上传)</div>
<el-row>
<el-col :span="24">
<upload ref="uploadImg" v-model="image_list3" :accept="accept" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/>
</el-col>
</el-row>
<div class="title">车辆登记合同(开票名称与客户名称不一致时上传)</div>
<el-row>
<el-col :span="24">
@ -223,7 +217,6 @@ export default {
openTickType_list: [],
image_list1: [],
image_list2: [],
image_list3: [],
image_list4: [],
formobj: {
applyDate: '',
@ -234,6 +227,7 @@ export default {
billStateKey: '',
billStateValue: '',
cldjhtApplicationAppendxs: [],
carBuyContractImages: [],
contractNo: '',
contractSid: '',
createByName: '',
@ -321,14 +315,6 @@ export default {
this.openTick_list = resp.data
}
})
if (this.formobj.cldjhtApplicationAppendxs.length > 0) {
this.formobj.cldjhtApplicationAppendxs.forEach((e) => {
this.image_list3.push({
name: e.fileName,
url: e.fileUrl
})
})
}
if (this.formobj.kpxxqrsApplicationAppendxs.length > 0) {
this.formobj.kpxxqrsApplicationAppendxs.forEach((e) => {
this.image_list4.push({
@ -337,8 +323,8 @@ export default {
})
})
}
if (this.formobj.khkpsqsApplicationAppendxs.length > 0) {
this.formobj.khkpsqsApplicationAppendxs.forEach((e) => {
if (this.formobj.carBuyContractImages.length > 0) {
this.formobj.carBuyContractImages.forEach((e) => {
this.image_list2.push({
name: e.fileName,
url: e.fileUrl
@ -488,27 +474,9 @@ export default {
sid: ''
})
}
this.formobj.khkpsqsApplicationAppendxs = bb
} else {
this.formobj.khkpsqsApplicationAppendxs = []
}
if (this.image_list3.length > 0) {
const cc = []
for (var m = 0; m < this.image_list3.length; m++) {
cc.push({
attachType: '',
billAppSid: '',
createByName: window.sessionStorage.getItem('name'),
fileSid: '',
fileName: this.image_list3[m].name,
fileType: this.image_list3[m].name.substr(this.image_list3[m].name.lastIndexOf('.')),
fileUrl: this.image_list3[m].url,
sid: ''
})
}
this.formobj.cldjhtApplicationAppendxs = cc
this.formobj.carBuyContractImages = bb
} else {
this.formobj.cldjhtApplicationAppendxs = []
this.formobj.carBuyContractImages = []
}
if (this.image_list4.length > 0) {
const cc = []
@ -551,6 +519,7 @@ export default {
billStateKey: '',
billStateValue: '',
cldjhtApplicationAppendxs: [],
carBuyContractImages: [],
contractNo: '',
contractSid: '',
createByName: '',
@ -596,7 +565,6 @@ export default {
}
this.image_list1 = []
this.image_list2 = []
this.image_list3 = []
this.image_list4 = []
this.isEdit = false
this.submitdisabled = false

23
anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/finginvoiceapply/backups/finginvoiceapplyInfo.vue

@ -148,25 +148,17 @@
<el-image style="width: 178px;height: 178px;padding-left: 5px" v-for="(item,index) in image_list1" :key="index" :src="item" :preview-src-list="image_list1"></el-image>
</el-col>
</el-row>
<div class="title">客户开票申请书</div>
<div class="title">车辆买卖合同</div>
<el-row>
<el-col :span="24">
<el-image style="width: 178px;height: 178px;padding-left: 5px" v-for="(item,index) in image_list2" :key="index" :src="item" :preview-src-list="image_list2"></el-image>
</el-col>
</el-row>
<div class="title">款项确认书(贷款业务上传)</div>
<el-row>
<el-col :span="24">
<el-form-item>
<el-image style="width: 178px;height: 178px;padding-left: 5px" v-for="(item,index) in image_list3" :key="index" :src="item" :preview-src-list="image_list3"></el-image>
</el-form-item>
</el-col>
</el-row>
<div class="title">车辆登记合同(开票名称与客户名称不一致时上传)</div>
<el-row>
<el-col :span="24">
<el-form-item>
<el-image style="width: 178px;height: 178px;padding-left: 5px" v-for="(item,index) in image_list4" :key="index" :src="item" :preview-src-list="image_list3"></el-image>
<el-image style="width: 178px;height: 178px;padding-left: 5px" v-for="(item,index) in image_list4" :key="index" :src="item" :preview-src-list="image_list4"></el-image>
</el-form-item>
</el-col>
</el-row>
@ -194,7 +186,6 @@ export default {
index: 0,
image_list1: [],
image_list2: [],
image_list3: [],
image_list4: [],
formobj: {
applyDate: '',
@ -262,16 +253,11 @@ export default {
this.image_list1.push(e.fileUrl)
})
}
if (this.formobj.khkpsqsApplicationAppendxs.length > 0) {
this.formobj.khkpsqsApplicationAppendxs.forEach((e) => {
if (this.formobj.carBuyContractImages.length > 0) {
this.formobj.carBuyContractImages.forEach((e) => {
this.image_list2.push(e.fileUrl)
})
}
if (this.formobj.kpxxqrsApplicationAppendxs.length > 0) {
this.formobj.kpxxqrsApplicationAppendxs.forEach((e) => {
this.image_list3.push(e.fileUrl)
})
}
if (this.formobj.cldjhtApplicationAppendxs.length > 0) {
this.formobj.cldjhtApplicationAppendxs.forEach((e) => {
this.image_list4.push(e.fileUrl)
@ -291,7 +277,6 @@ export default {
handleReturn() {
this.image_list1 = []
this.image_list2 = []
this.image_list3 = []
this.image_list4 = []
this.$emit('doback')
}

53
anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/kaipiaoguanliFlow/finginvoiceapplyByFileDaiBanInfo.vue

@ -175,18 +175,12 @@
<upload ref="uploadImg" v-model="image_list1" :accept="accept" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/>
</el-col>
</el-row>
<div class="title">客户开票申请书</div>
<div class="title">车辆买卖合同</div>
<el-row>
<el-col :span="24">
<upload ref="uploadImg" v-model="image_list2" :accept="accept" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/>
</el-col>
</el-row>
<div class="title">款项确认书(贷款业务上传)</div>
<el-row>
<el-col :span="24">
<upload ref="uploadImg" v-model="image_list3" :accept="accept" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/>
</el-col>
</el-row>
<div class="title">车辆登记合同(开票名称与客户名称不一致时上传)</div>
<el-row>
<el-col :span="24">
@ -258,7 +252,6 @@ export default {
srcList: [],
image_list1: [],
image_list2: [],
image_list3: [],
image_list4: [],
formobj: {
applyDate: '',
@ -269,6 +262,7 @@ export default {
billStateKey: '',
billStateValue: '',
cldjhtApplicationAppendxs: [],
carBuyContractImages: [],
contractNo: '',
contractSid: '',
createByName: '',
@ -333,6 +327,7 @@ export default {
orgSidPath: '',
taskDefKey: '',
userSid: '',
carBuyContractImages: [],
cldjhtApplicationAppendxs: [],
khkpsqsApplicationAppendxs: [],
kpxxqrsApplicationAppendxs: [],
@ -382,22 +377,14 @@ export default {
})
})
}
if (this.formobj.khkpsqsApplicationAppendxs.length > 0) {
this.formobj.khkpsqsApplicationAppendxs.forEach((e) => {
if (this.formobj.carBuyContractImages.length > 0) {
this.formobj.carBuyContractImages.forEach((e) => {
this.image_list2.push({
name: e.fileName,
url: e.fileUrl
})
})
}
if (this.formobj.kpxxqrsApplicationAppendxs.length > 0) {
this.formobj.kpxxqrsApplicationAppendxs.forEach((e) => {
this.image_list3.push({
name: e.fileName,
url: e.fileUrl
})
})
}
if (this.formobj.cldjhtApplicationAppendxs.length > 0) {
this.formobj.cldjhtApplicationAppendxs.forEach((e) => {
this.image_list4.push({
@ -462,39 +449,21 @@ export default {
sid: ''
})
}
this.linkByParameter.khkpsqsApplicationAppendxs = bb
} else {
this.linkByParameter.khkpsqsApplicationAppendxs = []
}
if (this.image_list3.length > 0) {
const cc = []
for (var m = 0; m < this.image_list3.length; m++) {
cc.push({
attachType: '',
billAppSid: '',
createByName: window.sessionStorage.getItem('name'),
fileSid: '',
fileName: this.image_list3[m].name,
fileType: this.image_list3[m].name.substr(this.image_list3[m].name.lastIndexOf('.')),
fileUrl: this.image_list3[m].url,
sid: ''
})
}
this.linkByParameter.kpxxqrsApplicationAppendxs = cc
this.linkByParameter.carBuyContractImages = bb
} else {
this.linkByParameter.kpxxqrsApplicationAppendxs = []
this.linkByParameter.carBuyContractImages = []
}
if (this.image_list4.length > 0) {
const cc = []
for (var n = 0; n < this.image_list3.length; n++) {
for (var n = 0; n < this.image_list4.length; n++) {
cc.push({
attachType: '',
billAppSid: '',
createByName: window.sessionStorage.getItem('name'),
fileSid: '',
fileName: this.image_list3[n].name,
fileType: this.image_list3[n].name.substr(this.image_list3[n].name.lastIndexOf('.')),
fileUrl: this.image_list3[n].url,
fileName: this.image_list4[n].name,
fileType: this.image_list4[n].name.substr(this.image_list4[n].name.lastIndexOf('.')),
fileUrl: this.image_list4[n].url,
sid: ''
})
}

22
anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/kaipiaoguanliFlow/finginvoiceapplyDaiBanInfo.vue

@ -175,25 +175,17 @@
<el-image style="width: 178px;height: 178px;padding-left: 5px" v-for="(item,index) in image_list1" :key="index" :src="item" :preview-src-list="image_list1"></el-image>
</el-col>
</el-row>
<div class="title">客户开票申请书</div>
<div class="title">车辆买卖合同</div>
<el-row>
<el-col :span="24">
<el-image style="width: 178px;height: 178px;padding-left: 5px" v-for="(item,index) in image_list2" :key="index" :src="item" :preview-src-list="image_list2"></el-image>
</el-col>
</el-row>
<div class="title">款项确认书(贷款业务上传)</div>
<el-row>
<el-col :span="24">
<el-form-item>
<el-image style="width: 178px;height: 178px;padding-left: 5px" v-for="(item,index) in image_list3" :key="index" :src="item" :preview-src-list="image_list3"></el-image>
</el-form-item>
</el-col>
</el-row>
<div class="title">车辆登记合同(开票名称与客户名称不一致时上传)</div>
<el-row>
<el-col :span="24">
<el-form-item>
<el-image style="width: 178px;height: 178px;padding-left: 5px" v-for="(item,index) in image_list4" :key="index" :src="item" :preview-src-list="image_list3"></el-image>
<el-image style="width: 178px;height: 178px;padding-left: 5px" v-for="(item,index) in image_list4" :key="index" :src="item" :preview-src-list="image_list4"></el-image>
</el-form-item>
</el-col>
</el-row>
@ -258,7 +250,6 @@ export default {
srcList: [],
image_list1: [],
image_list2: [],
image_list3: [],
image_list4: [],
formobj: {
applyDate: '',
@ -375,16 +366,11 @@ export default {
this.image_list1.push(e.fileUrl)
})
}
if (this.formobj.khkpsqsApplicationAppendxs.length > 0) {
this.formobj.khkpsqsApplicationAppendxs.forEach((e) => {
if (this.formobj.carBuyContractImages.length > 0) {
this.formobj.carBuyContractImages.forEach((e) => {
this.image_list2.push(e.fileUrl)
})
}
if (this.formobj.kpxxqrsApplicationAppendxs.length > 0) {
this.formobj.kpxxqrsApplicationAppendxs.forEach((e) => {
this.image_list3.push(e.fileUrl)
})
}
if (this.formobj.cldjhtApplicationAppendxs.length > 0) {
this.formobj.cldjhtApplicationAppendxs.forEach((e) => {
this.image_list4.push(e.fileUrl)

44
anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/kaipiaoguanliFlow/finginvoiceapplyEdit.vue

@ -165,18 +165,12 @@
<upload ref="uploadImg" v-model="image_list1" :accept="accept" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/>
</el-col>
</el-row>
<div class="title">客户开票申请书</div>
<div class="title">车辆买卖合同</div>
<el-row>
<el-col :span="24">
<upload ref="uploadImg" v-model="image_list2" :accept="accept" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/>
</el-col>
</el-row>
<div class="title">款项确认书(贷款业务上传)</div>
<el-row>
<el-col :span="24">
<upload ref="uploadImg" v-model="image_list3" :accept="accept" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/>
</el-col>
</el-row>
<div class="title">车辆登记合同(开票名称与客户名称不一致时上传)</div>
<el-row>
<el-col :span="24">
@ -223,7 +217,6 @@ export default {
openTickType_list: [],
image_list1: [],
image_list2: [],
image_list3: [],
image_list4: [],
formobj: {
applyDate: '',
@ -234,6 +227,7 @@ export default {
billStateKey: '',
billStateValue: '',
cldjhtApplicationAppendxs: [],
carBuyContractImages: [],
contractNo: '',
contractSid: '',
createByName: '',
@ -338,14 +332,6 @@ export default {
this.openTick_list = resp.data
}
})
if (this.formobj.cldjhtApplicationAppendxs.length > 0) {
this.formobj.cldjhtApplicationAppendxs.forEach((e) => {
this.image_list3.push({
name: e.fileName,
url: e.fileUrl
})
})
}
if (this.formobj.kpxxqrsApplicationAppendxs.length > 0) {
this.formobj.kpxxqrsApplicationAppendxs.forEach((e) => {
this.image_list4.push({
@ -354,8 +340,8 @@ export default {
})
})
}
if (this.formobj.khkpsqsApplicationAppendxs.length > 0) {
this.formobj.khkpsqsApplicationAppendxs.forEach((e) => {
if (this.formobj.carBuyContractImages.length > 0) {
this.formobj.carBuyContractImages.forEach((e) => {
this.image_list2.push({
name: e.fileName,
url: e.fileUrl
@ -538,27 +524,9 @@ export default {
sid: ''
})
}
this.formobj.khkpsqsApplicationAppendxs = bb
} else {
this.formobj.khkpsqsApplicationAppendxs = []
}
if (this.image_list3.length > 0) {
const cc = []
for (var m = 0; m < this.image_list3.length; m++) {
cc.push({
attachType: '',
billAppSid: '',
createByName: window.sessionStorage.getItem('name'),
fileSid: '',
fileName: this.image_list3[m].name,
fileType: this.image_list3[m].name.substr(this.image_list3[m].name.lastIndexOf('.')),
fileUrl: this.image_list3[m].url,
sid: ''
})
}
this.formobj.cldjhtApplicationAppendxs = cc
this.formobj.carBuyContractImages = bb
} else {
this.formobj.cldjhtApplicationAppendxs = []
this.formobj.carBuyContractImages = []
}
if (this.image_list4.length > 0) {
const cc = []

23
anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/kaipiaoguanliFlow/finginvoiceapplyYiBanInfo.vue

@ -173,25 +173,17 @@
<el-image style="width: 178px;height: 178px;padding-left: 5px" v-for="(item,index) in image_list1" :key="index" :src="item" :preview-src-list="image_list1"></el-image>
</el-col>
</el-row>
<div class="title">客户开票申请书</div>
<div class="title">车辆买卖合同</div>
<el-row>
<el-col :span="24">
<el-image style="width: 178px;height: 178px;padding-left: 5px" v-for="(item,index) in image_list2" :key="index" :src="item" :preview-src-list="image_list2"></el-image>
</el-col>
</el-row>
<div class="title">款项确认书(贷款业务上传)</div>
<el-row>
<el-col :span="24">
<el-form-item>
<el-image style="width: 178px;height: 178px;padding-left: 5px" v-for="(item,index) in image_list3" :key="index" :src="item" :preview-src-list="image_list3"></el-image>
</el-form-item>
</el-col>
</el-row>
<div class="title">车辆登记合同(开票名称与客户名称不一致时上传)</div>
<el-row>
<el-col :span="24">
<el-form-item>
<el-image style="width: 178px;height: 178px;padding-left: 5px" v-for="(item,index) in image_list4" :key="index" :src="item" :preview-src-list="image_list3"></el-image>
<el-image style="width: 178px;height: 178px;padding-left: 5px" v-for="(item,index) in image_list4" :key="index" :src="item" :preview-src-list="image_list4"></el-image>
</el-form-item>
</el-col>
</el-row>
@ -229,7 +221,6 @@ export default {
srcList: [],
image_list1: [],
image_list2: [],
image_list3: [],
image_list4: [],
formobj: {
applyDate: '',
@ -240,6 +231,7 @@ export default {
billStateKey: '',
billStateValue: '',
cldjhtApplicationAppendxs: [],
carBuyContractImages: [],
contractNo: '',
contractSid: '',
createByName: '',
@ -332,16 +324,11 @@ export default {
this.image_list1.push(e.fileUrl)
})
}
if (this.formobj.khkpsqsApplicationAppendxs.length > 0) {
this.formobj.khkpsqsApplicationAppendxs.forEach((e) => {
if (this.formobj.carBuyContractImages.length > 0) {
this.formobj.carBuyContractImages.forEach((e) => {
this.image_list2.push(e.fileUrl)
})
}
if (this.formobj.kpxxqrsApplicationAppendxs.length > 0) {
this.formobj.kpxxqrsApplicationAppendxs.forEach((e) => {
this.image_list3.push(e.fileUrl)
})
}
if (this.formobj.cldjhtApplicationAppendxs.length > 0) {
this.formobj.cldjhtApplicationAppendxs.forEach((e) => {
this.image_list4.push(e.fileUrl)

165
anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/AppCrmSolutions.java

@ -0,0 +1,165 @@
package com.yxt.anrui.crm.api.crmvehicledemand;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2023/8/29
**/
@Data
public class AppCrmSolutions {
@JsonProperty("isShowMore")
private boolean isShowMore;
@ApiModelProperty("是否打包:1是0否")
private String isPack;
@ApiModelProperty("产品政策名称")
private String policyName;
private String policySid;
@ApiModelProperty("主车发票价")
private String mainVehicleAmount;
@ApiModelProperty("融资票据")
private String accessoriesAmount;
@ApiModelProperty("挂车金额")
private String trailerAmount;
@ApiModelProperty("购置税")
private String purchaseTax;
@ApiModelProperty("保险金额")
private String premium;
@ApiModelProperty("融资项目总额")
private String loanTotal;
@ApiModelProperty("是否有融资票据")
private boolean accessoriesAmountCb;
@ApiModelProperty("是否有挂车")
private boolean trailerAmountCb;
@ApiModelProperty("是否有购置税")
private boolean purchaseTaxCb;
@ApiModelProperty("是否有保险")
private boolean premiumCb;
@ApiModelProperty("首付款比例")
private String downPayRatio;
@ApiModelProperty("首付金额")
@NotBlank(message = "首付金额不能为空")
private String downPayAmount;
@ApiModelProperty("贷款金额")
private String loanAmount;
@ApiModelProperty("贷款期数")
@NotBlank(message = "产品期数不能为空")
private String loanPeriod;
@ApiModelProperty("贷款保证金比例")
private String bondRatio;
@ApiModelProperty("贷款保证金金额")
@NotBlank(message = "贷款保证金不能为空")
private String bondAmount;
@ApiModelProperty("厂家贴息")
@NotBlank(message = "厂家贴息不能为空")
private String factoryDiscount;
@ApiModelProperty("厂家贴息用途")
private String factoryDiscountUse;
@ApiModelProperty("贴息抵车款")
@JsonProperty("factoryDiscountUseMoney")
private String discountCar;
@ApiModelProperty("年利率")
private String policyYearRatio;
@ApiModelProperty("月还金额")
@NotBlank(message = "月还金额不能为空")
private String loanPayMoney;
@ApiModelProperty("利息总额")
private String loanInterest;
@ApiModelProperty("是否勾选其它融")
private boolean otherPolicyState;
@ApiModelProperty("其它融名称")
private String otherPolicyName;
private String otherPolicySid;
@ApiModelProperty("其它融贷款金额")
private String otherPolicyAmount;
@ApiModelProperty("其它融期数")
private String otherPolicyPeriod;
@ApiModelProperty("其它融月还")
private String otherPolicyMonthlyRepay;
@ApiModelProperty("其它融利息总额")
private String otherPolicyInterest;
@ApiModelProperty("其它融年利率")
private String otherPolicyYearRatio;
@ApiModelProperty("'融资首付")
private String loanDownPay;
@ApiModelProperty("实际首付比例")
private String downPayAmountsRatio;
@ApiModelProperty("总贷款金额")
private String loanAmountTotal;
@ApiModelProperty("期数")
private String period;
@ApiModelProperty("月还金额")
private String monthlyRepay;
@ApiModelProperty("利息总额")
private String interest;
@ApiModelProperty("预计首期还款日")
private String returnTime;
@ApiModelProperty("融资首付")
private String downPayAmounts;
@ApiModelProperty("贷款保证金")
private String bondAmounts;
@ApiModelProperty("保险保证金")
private String depositPremium;
@ApiModelProperty("落户保证金")
private String depositSettle;
@ApiModelProperty("服务费")
@NotBlank(message = "服务费不能为空")
private String serviceAmount;
@ApiModelProperty("代收意外险")
private String proxyAccidentPremium;
@ApiModelProperty("上牌费")
private String registerAmount;
@ApiModelProperty("运管费")
private String operationAmount;
@ApiModelProperty("补车价")
private String vehOtherPrice;
@ApiModelProperty("其它费用")
private String otherAmount;
@ApiModelProperty("其它费用说明")
private String otherAmountRemark;
@ApiModelProperty("办理方式选择")
private String dealWay;
@ApiModelProperty("办理方式选择key")
private String dealWayKey;
@ApiModelProperty("代收首年保险费")
private String proxyPremium;
@ApiModelProperty("代收购置费")
private String proxyPurchasetax;
@ApiModelProperty("抵顶首年保险费")
private String offsetPremium;
@ApiModelProperty("抵顶购置税")
private String offsetPurchasetax;
@ApiModelProperty("抵顶费用合计")
private String offsetTotal;
@ApiModelProperty("应收合计")
private String receivableTotal;
@ApiModelProperty("实收合计")
private String realTotal;
@ApiModelProperty("车辆总价")
private String vehTotalPrice;
@ApiModelProperty("名义留购价")
private String nominalPrice;
private List<CrmSolutionListVo> financeForms = new ArrayList<>();
}

13
anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/AppCrmVehicleDemandParticularsVo.java

@ -1,5 +1,6 @@
package com.yxt.anrui.crm.api.crmvehicledemand;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -8,6 +9,7 @@ import lombok.Data;
public class AppCrmVehicleDemandParticularsVo implements Vo {
@ApiModelProperty("购车方式value")
private String type;
private String purchaseMethodKey;
@ApiModelProperty("车型sid")
private String modelSid;
@ -39,4 +41,15 @@ public class AppCrmVehicleDemandParticularsVo implements Vo {
@ApiModelProperty("备注")
private String remarks;
@JsonProperty("finTypeKey")
private String typeKey;
private AppCrmSolutions finNormal;
@ApiModelProperty(value = "金融方案key")
@JsonProperty("financePlanKey")
private String financePlan;
@ApiModelProperty(value = "金融方案value")
private String financePlanValue;
}

4
anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/AppCrmVehicleDemandUpdateDto.java

@ -40,5 +40,7 @@ public class AppCrmVehicleDemandUpdateDto implements Dto {
@ApiModelProperty(value = "1自有资金,2三方金融")
private String financePlanValue;
@ApiModelProperty("金融方案")
private CrmSolutions finNormal;
private AppCrmSolutions finNormal;
@ApiModelProperty("1常规、2定制")
private String finTypeKey;
}

7
anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/AppCrmVehicledemandDetailsVo.java

@ -1,5 +1,6 @@
package com.yxt.anrui.crm.api.crmvehicledemand;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -46,5 +47,11 @@ public class AppCrmVehicledemandDetailsVo implements Vo {
private String financePlan;
@ApiModelProperty(value = "金融方案value")
private String financePlanValue;
@JsonProperty("finTypeKey")
private String typeKey;
private String type;
private AppCrmSolutions finNormal;
}

24
anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/CrmSolutionListVo.java

@ -0,0 +1,24 @@
package com.yxt.anrui.crm.api.crmvehicledemand;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/8/29
**/
@Data
public class CrmSolutionListVo {
@ApiModelProperty(value = "内容")
private String value;
@ApiModelProperty(value = "单元格大小")
private Integer spanSize;
@ApiModelProperty("类型:0 最普通的 1 标题的 2是 加上划线的")
private Integer type;
@ApiModelProperty("是否加粗,true是,false否")
private boolean bold;
}

2
anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/CrmSolutions.java

@ -66,6 +66,8 @@ public class CrmSolutions {
private String factoryDiscount;
@ApiModelProperty("厂家贴息用途")
private String factoryDiscountUse;
@ApiModelProperty("贴息抵车款")
private String discountCar;
@ApiModelProperty("年利率")
private String policyYearRatio;

2
anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/CrmVehicledemand.java

@ -87,6 +87,8 @@ public class CrmVehicledemand extends BaseEntity {
@ApiModelProperty("1自有资金,2三方金融,3非担保,4担保")
private String financePlanValue;
@ApiModelProperty("01资方常规,02定制金融")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private String typeKey;
@TableField(updateStrategy = FieldStrategy.IGNORED)
private String type;
}

9
anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmvehicledemand/CrmVehicledemandMapper.xml

@ -108,7 +108,8 @@
cv.otherConfig,
cv.sketChconfiguration as configName,
cv.financePlan,
cv.financePlanValue
cv.financePlanValue,
cv.typeKey
FROM crm_vehicledemand cv
WHERE cv.sid = #{intentionSid}
</select>
@ -125,7 +126,11 @@
cv.comonConfigSid AS configSid,
cv.number,
cv.remarks,
cv.estimatedPickupDate AS `date`
cv.estimatedPickupDate AS `date`,
cv.financePlan,
cv.financePlanValue,
cv.typeKey,
cv.purchaseMethod purchaseMethodKey
FROM crm_vehicledemand cv
WHERE cv.sid = #{sid}
</select>

10
anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmvehicledemand/CrmVehicledemandRest.java

@ -165,8 +165,7 @@ public class CrmVehicledemandRest implements CrmVehicledemandFeign {
*/
@Override
public ResultBean<AppCrmVehicledemandDetailsVo> initVisitDemands(String intentionSid) {
AppCrmVehicledemandDetailsVo vo = crmVehicledemandService.initVisitDemands(intentionSid);
return new ResultBean<AppCrmVehicledemandDetailsVo>().success().setData(vo);
return crmVehicledemandService.initVisitDemands(intentionSid);
}
/**
@ -177,9 +176,7 @@ public class CrmVehicledemandRest implements CrmVehicledemandFeign {
*/
@Override
public ResultBean saveVisitDemands(AppCrmVehicleDemandUpdateDto appCrmVehicleDemandUpdateDto) {
ResultBean rb = ResultBean.fireFail();
crmVehicledemandService.saveVisitDemands(appCrmVehicleDemandUpdateDto);
return rb.success();
return crmVehicledemandService.saveVisitDemands(appCrmVehicleDemandUpdateDto);
}
/**
@ -190,8 +187,7 @@ public class CrmVehicledemandRest implements CrmVehicledemandFeign {
*/
@Override
public ResultBean<AppCrmVehicleDemandParticularsVo> intendedModel(String sid) {
AppCrmVehicleDemandParticularsVo vo = crmVehicledemandService.intendedModel(sid);
return new ResultBean<AppCrmVehicleDemandParticularsVo>().success().setData(vo);
return crmVehicledemandService.intendedModel(sid);
}
@Override

207
anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmvehicledemand/CrmVehicledemandService.java

@ -1,12 +1,14 @@
package com.yxt.anrui.crm.biz.crmvehicledemand;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basevehiclemodel.BaseVehicleModelFeign;
import com.yxt.anrui.base.api.basevehmodelconfig.AppModelVeDetailVo;
import com.yxt.anrui.base.api.basevehmodelconfig.BaseVehmodelConfigFeign;
import com.yxt.anrui.base.api.basevehmodelconfig.BaseVehmodelVo;
import com.yxt.anrui.buscenter.api.bussalesorder.OrderSolutionVo;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp;
import com.yxt.anrui.crm.api.crmfindemand.CrmFindemand;
import com.yxt.anrui.crm.api.crmfindemand.CrmFindemandDto;
@ -19,10 +21,15 @@ import com.yxt.anrui.crm.biz.crmcustomertemp.CrmCustomerTempService;
import com.yxt.anrui.crm.biz.crmfindemand.CrmFindemandService;
import com.yxt.anrui.crm.biz.crmvehiclefinance.CrmVehicleFinanceService;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsFeign;
import com.yxt.anrui.riskcenter.api.loansolutions.SolutionDetailsDto;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionListVo;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionssDto;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionssVo;
import com.yxt.anrui.riskcenter.api.loansolutionsdetail.LoanSolutionsDetail;
import com.yxt.anrui.riskcenter.api.loansolutionsotherpolicy.LoanSolutionsOtherpolicy;
import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplateSolutionsVo;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
@ -37,9 +44,8 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
* Project: anrui-crm(客户管理) <br/>
@ -353,21 +359,36 @@ public class CrmVehicledemandService extends MybatisBaseService<CrmVehicledemand
* @param intentionSid
* @return
*/
public AppCrmVehicledemandDetailsVo initVisitDemands(String intentionSid) {
public ResultBean<AppCrmVehicledemandDetailsVo> initVisitDemands(String intentionSid) {
ResultBean<AppCrmVehicledemandDetailsVo> rb = ResultBean.fireFail();
AppCrmVehicledemandDetailsVo appCrmVehicledemandDetailsVo = baseMapper.selectBySid(intentionSid);
return appCrmVehicledemandDetailsVo;
if (!"1".equals(appCrmVehicledemandDetailsVo.getFinancePlan())) {
ResultBean<SolutionssVo> resultBean = loanSolutionsFeign.selectDetails3(intentionSid);
if (resultBean.getData() != null) {
AppCrmSolutions finNormal = new AppCrmSolutions();
BeanUtil.copyProperties(resultBean.getData(), finNormal);
List<SolutionListVo> financeForms = resultBean.getData().getFinanceForms();
if (!financeForms.isEmpty()) {
List<CrmSolutionListVo> voList = Optional.ofNullable(financeForms).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), CrmSolutionListVo.class)).collect(Collectors.toList());
finNormal.setFinanceForms(voList);
}
appCrmVehicledemandDetailsVo.setFinNormal(finNormal);
}
}
return rb.success().setData(appCrmVehicledemandDetailsVo);
}
/**
* 修改意向车型
*
* @param appCrmVehicleDemandUpdateDto
*/
@Transactional(rollbackFor = Exception.class)
public ResultBean saveVisitDemands(AppCrmVehicleDemandUpdateDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = dto.getIntentionSid();
CrmVehicledemand entity = fetchBySid(sid);
if (entity == null) {
return rb.setMsg("该车辆需求不存在");
}
BeanUtil.copyProperties(dto, entity);
entity.setEstimatedPickupDate(dto.getDate());
if (StringUtils.isNotBlank(dto.getPrice())) {
@ -375,14 +396,47 @@ public class CrmVehicledemandService extends MybatisBaseService<CrmVehicledemand
} else {
entity.setVehicleModelOffer(null);
}
if (!"1".equals(dto.getFinancePlan())) {//金融方案
CrmSolutions finNormal = dto.getFinNormal();
SolutionssDto solutionsDto = new SolutionssDto();
BeanUtil.copyProperties(finNormal, solutionsDto, "sid");
solutionsDto.setSaleOrderSid(sid);
ResultBean resultBean = loanSolutionsFeign.save2(solutionsDto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
if ("1".equals(dto.getPurchaseMethod())) {
if ("1".equals(dto.getFinancePlan())) {
entity.setType(null);
entity.setTypeKey(null);
loanSolutionsFeign.deleteByOrderSid(sid);
} else {
if ("1".equals(dto.getFinTypeKey())) {//资方常规
AppCrmSolutions finNormal = dto.getFinNormal();
SolutionssDto solutionsDto = new SolutionssDto();
BeanUtil.copyProperties(finNormal, solutionsDto, "sid");
solutionsDto.setSaleOrderSid(sid);
solutionsDto.setShowMore(false);
ResultBean resultBean = loanSolutionsFeign.save2(solutionsDto);
entity.setTypeKey("1");
entity.setType("资方常规");
} else {//金融定制
}
}
} else {
if ("1".equals(dto.getFinTypeKey())) {//资方常规
AppCrmSolutions finNormal = dto.getFinNormal();
SolutionssDto solutionsDto = new SolutionssDto();
BeanUtil.copyProperties(finNormal, solutionsDto, "sid");
solutionsDto.setSaleOrderSid(sid);
solutionsDto.setShowMore(true);
ResultBean resultBean = loanSolutionsFeign.save2(solutionsDto);
entity.setTypeKey("1");
entity.setType("资方常规");
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(sid).getData();
if (loanSolutions != null) {
if (StringUtils.isBlank(loanSolutions.getTypeKey())) {
entity.setFinancePlan("4");//担保
entity.setFinancePlanValue("担保");//担保
} else {
entity.setFinancePlan("3");//自营非担保
entity.setFinancePlanValue("自营非担保");//自营非担保
}
}
} else {//金融定制
}
}
baseMapper.updateById(entity);
@ -395,9 +449,24 @@ public class CrmVehicledemandService extends MybatisBaseService<CrmVehicledemand
* @param sid
* @return
*/
public AppCrmVehicleDemandParticularsVo intendedModel(String sid) {
public ResultBean<AppCrmVehicleDemandParticularsVo> intendedModel(String sid) {
ResultBean<AppCrmVehicleDemandParticularsVo> rb = ResultBean.fireFail();
AppCrmVehicleDemandParticularsVo appCrmVehicleDemandParticularsVo = baseMapper.intendedModel(sid);
return appCrmVehicleDemandParticularsVo;
if (!"1".equals(appCrmVehicleDemandParticularsVo.getFinancePlan())) {
ResultBean<SolutionssVo> resultBean = loanSolutionsFeign.selectDetails3(sid);
if (resultBean.getData() != null) {
AppCrmSolutions finNormal = new AppCrmSolutions();
BeanUtil.copyProperties(resultBean.getData(), finNormal);
List<SolutionListVo> financeForms = resultBean.getData().getFinanceForms();
if (!financeForms.isEmpty()) {
List<CrmSolutionListVo> voList = Optional.ofNullable(financeForms).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), CrmSolutionListVo.class)).collect(Collectors.toList());
finNormal.setFinanceForms(voList);
}
appCrmVehicleDemandParticularsVo.setFinNormal(finNormal);
}
}
return rb.success().setData(appCrmVehicleDemandParticularsVo);
}
/**
@ -533,26 +602,48 @@ public class CrmVehicledemandService extends MybatisBaseService<CrmVehicledemand
BeanUtil.copyProperties(dto, crmVehicledemand, "sid");
crmVehicledemand.setCustomerSid(crmCustomerTemp.getSid());
crmVehicledemand.setStates("1");
//新增客户的金融方案
if ("01".equals(dto.getTypeKey())) {//资方常规
CrmSolutions crmSolutions = dto.getCrmSolutions();
if (crmSolutions != null) {
SolutionssDto solutionsDto = new SolutionssDto();
BeanUtil.copyProperties(crmSolutions, solutionsDto, "sid");
solutionsDto.setSaleOrderSid(sid);
if ("2".equals(dto.getFinancePlan())) {
solutionsDto.setShowMore(false);
} else if ("3".equals(dto.getFinancePlan())) {
solutionsDto.setShowMore(true);
} else if ("4".equals(dto.getFinancePlan())) {
if ("1".equals(dto.getPurchaseMethod())) {
if ("2".equals(dto.getFinancePlan())) {//三方金融
if ("1".equals(dto.getTypeKey())) {//资方常规
CrmSolutions crmSolutions = dto.getCrmSolutions();
if (crmSolutions != null) {
SolutionssDto solutionsDto = new SolutionssDto();
BeanUtil.copyProperties(crmSolutions, solutionsDto, "sid");
solutionsDto.setSaleOrderSid(sid);
if ("2".equals(dto.getFinancePlan())) {
solutionsDto.setShowMore(false);
}
ResultBean resultBean = loanSolutionsFeign.save2(solutionsDto);
}
crmVehicledemand.setTypeKey("1");
crmVehicledemand.setType("资方常规");
}
}
} else {
//新增客户的金融方案
if ("1".equals(dto.getTypeKey())) {//资方常规
CrmSolutions crmSolutions = dto.getCrmSolutions();
if (crmSolutions != null) {
SolutionssDto solutionsDto = new SolutionssDto();
BeanUtil.copyProperties(crmSolutions, solutionsDto, "sid");
solutionsDto.setSaleOrderSid(sid);
solutionsDto.setShowMore(true);
ResultBean resultBean = loanSolutionsFeign.save2(solutionsDto);
}
ResultBean resultBean = loanSolutionsFeign.save2(solutionsDto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
crmVehicledemand.setTypeKey("1");
crmVehicledemand.setType("资方常规");
} else {//定制金融
}
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(sid).getData();
if (loanSolutions != null) {
if (StringUtils.isBlank(loanSolutions.getTypeKey())) {
crmVehicledemand.setFinancePlan("4");//担保
crmVehicledemand.setFinancePlanValue("担保");//担保
} else {
crmVehicledemand.setFinancePlan("3");//自营非担保
crmVehicledemand.setFinancePlanValue("自营非担保");//自营非担保
}
}
} else {//定制金融
}
baseMapper.insert(crmVehicledemand);
@ -563,30 +654,54 @@ public class CrmVehicledemandService extends MybatisBaseService<CrmVehicledemand
}
BeanUtil.copyProperties(dto, crmVehicledemand, "sid");
crmVehicledemand.setCustomerSid(crmCustomerTemp.getSid());
if ("1".equals(dto.getTypeKey())) {
//删除金融方案
loanSolutionsFeign.deleteByOrderSid(sid);
if ("1".equals(dto.getPurchaseMethod())) {
if ("2".equals(dto.getFinancePlan())) {//三方金融
if ("1".equals(dto.getTypeKey())) {//资方常规
CrmSolutions crmSolutions = dto.getCrmSolutions();
if (crmSolutions != null) {
SolutionssDto solutionsDto = new SolutionssDto();
BeanUtil.copyProperties(crmSolutions, solutionsDto, "sid");
solutionsDto.setSaleOrderSid(sid);
if ("2".equals(dto.getFinancePlan())) {
solutionsDto.setShowMore(false);
}
ResultBean resultBean = loanSolutionsFeign.save2(solutionsDto);
}
crmVehicledemand.setTypeKey("1");
crmVehicledemand.setType("资方常规");
}
} else {
crmVehicledemand.setType(null);
crmVehicledemand.setTypeKey(null);
loanSolutionsFeign.deleteByOrderSid(sid);
}
} else {
//新增客户的金融方案
if ("01".equals(dto.getTypeKey())) {//资方常规
if ("1".equals(dto.getTypeKey())) {//资方常规
CrmSolutions crmSolutions = dto.getCrmSolutions();
if (crmSolutions != null) {
SolutionssDto solutionsDto = new SolutionssDto();
BeanUtil.copyProperties(crmSolutions, solutionsDto, "sid");
solutionsDto.setSaleOrderSid(sid);
if ("2".equals(dto.getFinancePlan())) {
solutionsDto.setShowMore(false);
} else if ("3".equals(dto.getFinancePlan()) || "4".equals(dto.getFinancePlan())) {
solutionsDto.setShowMore(true);
}
solutionsDto.setShowMore(true);
ResultBean resultBean = loanSolutionsFeign.save2(solutionsDto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
}else{
loanSolutionsFeign.deleteByOrderSid(sid);
}
crmVehicledemand.setTypeKey("1");
crmVehicledemand.setType("资方常规");
} else {//定制金融
}
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(sid).getData();
if (loanSolutions != null) {
if (StringUtils.isBlank(loanSolutions.getTypeKey())) {
crmVehicledemand.setFinancePlan("4");//担保
crmVehicledemand.setFinancePlanValue("担保");//担保
} else {
crmVehicledemand.setFinancePlan("3");//自营非担保
crmVehicledemand.setFinancePlanValue("自营非担保");//自营非担保
}
}
}
baseMapper.updateById(crmVehicledemand);
}

8
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java

@ -527,7 +527,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
String billNo = getApplyCode(finCollectionConfirmation.getUseOrgSid());
finCollectionConfirmation.setBillNo(billNo);
baseMapper.insert(finCollectionConfirmation);
} else {//认款、多次认款
} /*else {//认款、多次认款
FinCollectionConfirmation finCollectionConfirmation = fetchBySid(sid);
if (finCollectionConfirmation == null) {
return rb.setMsg("该申请不存在");
@ -568,7 +568,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
}
finCollectionConfirmation.setAuditState(1);
baseMapper.updateById(finCollectionConfirmation);
}
}*/
return rb.success().setMsg("添加成功");
}
@ -983,9 +983,9 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
}
}
//再次认款
if (finCollectionConfirmation.getAuditState() == 3) {
/* if (finCollectionConfirmation.getAuditState() == 3) {
finCollectionConfirmation.setFirst(1);
}
}*/
//汇款确认书保存
List<String> payConfirmFiles = dto.getPayConfirmFiles();
if (payConfirmFiles.size() > 0) {

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceMapper.java

@ -69,6 +69,6 @@ public interface FinVehicleInvoiceMapper extends BaseMapper<FinVehicleInvoice> {
@Update("update fin_vehicle_invoice set isTakeTicket = '是' where sid = #{sid}")
void updateIsLPBySid(String sid);
List<FinSelectInvoiceVo> getFinSelectInvoiceVoListByVinNo(String vinNo);
List<FinSelectInvoiceVo> getFinSelectInvoiceVoListByBusVinSid(@Param("busVinSid") String busVinSid, @Param("contractNo") String contractNo);
}

5
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceMapper.xml

@ -260,7 +260,7 @@
where vehicleSid = #{vinSid}
and contractNo = #{contractNo}
</select>
<select id="getFinSelectInvoiceVoListByVinNo"
<select id="getFinSelectInvoiceVoListByBusVinSid"
resultType="com.yxt.anrui.fin.api.finvehicleinvoice.FinSelectInvoiceVo">
select fu.busVinSid,
fu.receivablesName,
@ -275,7 +275,8 @@
FROM fin_selected_receivables_detailed as fs
LEFT JOIN fin_uncollected_receivables_detailed as fu ON fu.sid = fs.receivablesSid
LEFT JOIN fin_collection_confirmation as co ON fs.collSid = co.sid
WHERE fs.VIN = #{vinNo}
WHERE fu.busVinSid = #{busVinSid}
and fS.contractNo = #{contractNo}
and fs.auditState = '3'
ORDER BY co.createTime DESC
</select>

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceService.java

@ -626,7 +626,7 @@ public class FinVehicleInvoiceService extends MybatisBaseService<FinVehicleInvoi
} else {
vinNo = linkNo;
}
List<FinSelectInvoiceVo> finSelectVoList = baseMapper.getFinSelectInvoiceVoListByVinNo(vinNo);
List<FinSelectInvoiceVo> finSelectVoList = baseMapper.getFinSelectInvoiceVoListByBusVinSid(busSalesOrderVehicle.getSid(), contractNo);
finSelectVoList.removeAll(Collections.singleton(null));
if (!finSelectVoList.isEmpty()) {
for (FinSelectInvoiceVo finSelectInvoiceVo : finSelectVoList) {

109
anrui-management/anrui-management-ui/src/views/sysstaffinfo/yuangongAdd.vue

@ -49,8 +49,7 @@
</el-col>
<el-col :span="8">
<el-form-item prop="birthday">
<el-date-picker v-model="temp.birthday" style="width: 100%" type="date" placeholder="选择日期"
value-format="yyyy-MM-dd"/>
<el-date-picker v-model="temp.birthday" style="width: 100%" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"/>
</el-form-item>
</el-col>
</el-row>
@ -68,8 +67,7 @@
</el-col>
<el-col :span="8" class="jiguan">
<el-form-item prop="idTerm">
<el-date-picker v-model="temp.idTerm" style="width: 100%" type="date" placeholder="选择日期"
value-format="yyyy-MM-dd"/>
<el-date-picker v-model="temp.idTerm" style="width: 100%" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"/>
</el-form-item>
</el-col>
</el-row>
@ -80,8 +78,7 @@
<el-col :span="8">
<el-form-item prop="national">
<el-select v-model="temp.national" style="width: 100%" placeholder="请选择民族" @change="getNational">
<el-option v-for="(item, index) in national_list" :key="index.dictKey" :label="item.dictValue"
:value="item.dictKey"/>
<el-option v-for="(item, index) in national_list" :key="index.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
</el-col>
@ -90,7 +87,7 @@
</el-col>
<el-col :span="8">
<el-form-item prop="mobile">
<el-input v-model="temp.mobile" maxlength="20" placeholder="请输入手机号码" clearable/>
<el-input v-model="temp.mobile" maxlength="11" show-word-limit placeholder="请输入手机号码" clearable/>
</el-form-item>
</el-col>
</el-row>
@ -101,8 +98,7 @@
<el-col :span="8">
<el-form-item prop="poliCode">
<el-select v-model="temp.poliCode" style="width: 100%" placeholder="请选择政治面貌" @change="getPoliCode">
<el-option v-for="(item, index) in political_list" :key="index.dictKey" :label="item.dictValue"
:value="item.dictKey"/>
<el-option v-for="(item, index) in political_list" :key="index.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
</el-col>
@ -112,8 +108,7 @@
<el-col :span="8">
<el-form-item prop="maritalStatus">
<el-select v-model="temp.maritalStatus" style="width: 100%" placeholder="请选择婚姻状况" @change="getMari">
<el-option v-for="(item, index) in maritalstatus_list" :key="index.dictKey" :label="item.dictValue"
:value="item.dictKey"/>
<el-option v-for="(item, index) in maritalstatus_list" :key="index.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
</el-col>
@ -130,8 +125,7 @@
</el-col>
<el-col :span="6">
<el-form-item prop="emergencyContact">
<el-input v-model="temp.emergencyContact" maxlength="20" placeholder="请输入紧急联系人"
clearable/>
<el-input v-model="temp.emergencyContact" maxlength="20" placeholder="请输入紧急联系人" clearable/>
</el-form-item>
</el-col>
<el-col :span="3">
@ -139,8 +133,7 @@
</el-col>
<el-col :span="6">
<el-form-item prop="emergencyMobile">
<el-input v-model="temp.emergencyMobile" maxlength="20" placeholder="请输入紧急联系电话"
clearable/>
<el-input v-model="temp.emergencyMobile" maxlength="20" placeholder="请输入紧急联系电话" clearable/>
</el-form-item>
</el-col>
<el-col :span="2" style="border-top:1px solid #e0e3eb" class="spe_style">
@ -177,8 +170,7 @@
<el-select v-model="temp.county" filterable placeholder="请选择县" style="width: 148px" @change="getQu">
<el-option v-for="item in inputCountyList" :key="item.sid" :label="item.name" :value="item.sid"/>
</el-select>
<el-input v-model="temp.nativePlace" maxlength="20" placeholder="请输入详细地址"
style="margin-left:15px;width: 40%" clearable/>
<el-input v-model="temp.nativePlace" maxlength="20" placeholder="请输入详细地址" style="margin-left:15px;width: 40%" clearable/>
</el-form-item>
</el-col>
</el-row>
@ -194,8 +186,7 @@
<!-- <el-col :span="6">-->
<el-form-item prop="personType">
<el-select v-model="temp.personType" placeholder="请选择员工类型" class="addinputw02" @change="getPersonType">
<el-option v-for="(item, index) in personType_list" :key="index.dictKey" :label="item.dictValue"
:value="item.dictKey"/>
<el-option v-for="(item, index) in personType_list" :key="index.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
</el-col>
@ -204,8 +195,7 @@
</el-col>
<el-col :span="6">
<el-form-item prop="orgName">
<el-cascader ref="clearableCascader" class="addinputw" v-model="orgName_list" :props="props" :options="options" clearable
@change="orgNameChange"/>
<el-cascader ref="clearableCascader" class="addinputw" v-model="orgName_list" :props="props" :options="options" clearable @change="orgNameChange"/>
</el-form-item>
</el-col>
<el-col :span="3" class="spe_style">
@ -214,8 +204,7 @@
<el-col :span="6" class="spe_style02">
<el-form-item prop="postSid">
<el-select v-model="temp.postName" class="addinputw" filterable placeholder="请选择岗位" @change="getPostSid">
<el-option v-for="(item, index) in postSid_list" :key="index.postCode" :label="item.name"
:value="item.postCode"/>
<el-option v-for="(item, index) in postSid_list" :key="index.postCode" :label="item.name" :value="item.postCode"/>
</el-select>
</el-form-item>
</el-col>
@ -226,8 +215,6 @@
<div class="span-sty">
<span><span class="icon">*</span>入职日期</span>
</div>
<!-- </el-col>-->
<!-- <el-col :span="6">-->
<el-form-item prop="joinCompnyDate">
<el-date-picker v-model="temp.joinCompnyDate" class="addinputw02" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"/>
</el-form-item>
@ -238,8 +225,7 @@
<el-col :span="6">
<el-form-item prop="probPeriod">
<el-select v-model="temp.probPeriod" class="addinputw" placeholder="请选择试用期" @change="getProbPeriod">
<el-option v-for="(item, index) in probPeriod_list" :key="index.dictKey" :label="item.dictValue"
:value="item.dictKey"/>
<el-option v-for="(item, index) in probPeriod_list" :key="index.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
</el-col>
@ -248,8 +234,7 @@
</el-col>
<el-col :span="6" class="spe_style02">
<el-form-item prop="plannedConfirmDate">
<el-date-picker v-model="temp.plannedConfirmDate" class="addinputw" type="date" placeholder="选择日期"
value-format="yyyy-MM-dd"/>
<el-date-picker v-model="temp.plannedConfirmDate" class="addinputw" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"/>
</el-form-item>
</el-col>
</el-row>
@ -258,8 +243,6 @@
<div class="span-sty">
<span>实际转正日期</span>
</div>
<!-- </el-col>-->
<!-- <el-col :span="6">-->
<el-form-item prop="confirmationDate">
<el-date-picker v-model="temp.confirmationDate" class="addinputw02" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"/>
</el-form-item>
@ -287,8 +270,6 @@
<div class="span-sty">
<span>身份证(人像面)</span>
</div>
<!-- </el-col>-->
<!-- <el-col :span="6">-->
<Upload ref="uploadImg" class="addinputw02" v-model="idCardA_list" :limit="1" bucket="map" :upload-data="{ type: '0001' }"/>
</el-col>
<el-col :span="3">
@ -322,8 +303,7 @@
<el-col :span="6">
<el-form-item prop="education">
<el-select v-model="temp.education" placeholder="请选择学历" @change="getEducate">
<el-option v-for="(item, index) in educate_list" :key="index.dictKey" :label="item.dictValue"
:value="item.dictKey"/>
<el-option v-for="(item, index) in educate_list" :key="index.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
</el-col>
@ -351,8 +331,7 @@
<el-col :span="12">
<el-form-item prop="licenseType">
<el-select v-model="temp.licenseType" placeholder="请选择驾照类型" @change="getLicenseType">
<el-option v-for="(item, index) in licenseType_list" :key="index.dictKey" :label="item.dictValue"
:value="item.dictKey"/>
<el-option v-for="item in licenseType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
</el-col>
@ -390,8 +369,7 @@
</el-col>
<el-col :span="3" class="spe_style02">
<el-form-item prop="insuranceAddr">
<el-input v-model="temp.insuranceAddr" maxlength="20" style="width: 100%" placeholder="请输入参保地" class="addinputw"
clearable/>
<el-input v-model="temp.insuranceAddr" maxlength="20" style="width: 100%" placeholder="请输入参保地" class="addinputw" clearable/>
</el-form-item>
</el-col>
<el-col :span="3">
@ -399,8 +377,7 @@
</el-col>
<el-col :span="3" class="spe_style02">
<el-form-item prop="insuranceStartDate">
<el-date-picker v-model="temp.insuranceStartDate" style="width: 100%" type="date" placeholder="选择日期"
value-format="yyyy-MM-dd"/>
<el-date-picker v-model="temp.insuranceStartDate" style="width: 100%" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"/>
</el-form-item>
</el-col>
<el-col :span="3">
@ -412,7 +389,6 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3">
<span>养老</span>
@ -478,8 +454,7 @@
</el-col>
<el-col :span="9">
<el-form-item prop="contractStartDate">
<el-date-picker v-model="temp.contractStartDate" type="date" placeholder="选择日期"
value-format="yyyy-MM-dd"/>
<el-date-picker v-model="temp.contractStartDate" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"/>
</el-form-item>
</el-col>
<el-col :span="3">
@ -520,22 +495,24 @@
</template>
<script>
import {getCity, getCounty, getProvince} from '@/api/Common/areaPicker' //
import { getCity, getCounty, getProvince } from '@/api/Common/areaPicker' //
import Upload from '@/components/uploadFileimg/upload.vue'
import uploadHead from '@/components/uploadFileimg/upload_head.vue'
import req from '@/api/management/yuangongguanli'
export default {
name: 'YuangongAdd',
components: {Upload, uploadHead},
components: { Upload, uploadHead },
data() {
var checkSubmit = (rule, value, callback) => {
const Submit =
/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
if (Submit.test(value)) {
return callback()
if (value !== undefined && value !== null) {
if (value.length < 11) {
callback(new Error('请输入正确的手机号'))
}
} else {
callback(new Error('请输入手机号'))
}
callback(new Error('请输入手机号'))
callback()
}
var identitycard = (rules, value, callback) => {
const card =
@ -600,14 +577,14 @@ export default {
sysStaffPost: {} //
},
rules: {
name: [{required: true, message: '姓名不能为空', trigger: 'change'}],
gender: [{required: true, message: '性别不能为空', trigger: 'change'}],
idNo: [{required: true, message: '身份证号不能为空', validator: identitycard, trigger: 'change'}],
idTerm: [{required: true, message: '证件有效期不能为空', trigger: 'change'}],
national: [{required: true, message: '民族不能为空', trigger: 'change'}],
mobile: [{required: true, message: '手机号不能为空', validator: checkSubmit, trigger: 'change'}],
personType: [{required: true, message: '员工类型不能为空', trigger: 'change'}],
joinCompnyDate: [{required: true, message: '入职日期不能为空', trigger: 'blur'}]
name: [{ required: true, message: '姓名不能为空', trigger: 'change' }],
gender: [{ required: true, message: '性别不能为空', trigger: 'change' }],
idNo: [{ required: true, message: '身份证号不能为空', validator: identitycard, trigger: 'change' }],
idTerm: [{ required: true, message: '证件有效期不能为空', trigger: 'change' }],
national: [{ required: true, message: '民族不能为空', trigger: 'change' }],
mobile: [{ required: true, validator: checkSubmit, trigger: 'blur' }],
personType: [{ required: true, message: '员工类型不能为空', trigger: 'change' }],
joinCompnyDate: [{ required: true, message: '入职日期不能为空', trigger: 'blur' }]
},
submitdisabled: false
}
@ -1028,35 +1005,35 @@ export default {
},
//
getUrl() {
console.log('身份证人面像',this.idCardA_list)
console.log('身份证人面像', this.idCardA_list)
// ()
if (this.idCardA_list.length > 0) {
this.temp.idCardA = this.idCardA_list[this.idCardA_list.length - 1].url
}else {
} else {
this.temp.idCardA = ''
}
// ()
if (this.idCardB_list.length > 0) {
this.temp.idCardB = this.idCardB_list[this.idCardB_list.length - 1].url
}else {
} else {
this.temp.idCardB = ''
}
//
if (this.diploma_list.length > 0) {
this.temp.diploma = this.diploma_list[this.diploma_list.length - 1].url
}else {
} else {
this.temp.diploma = ''
}
//
if (this.degree_list.length > 0) {
this.temp.degreeCertificate = this.degree_list[this.degree_list.length - 1].url
}else {
} else {
this.temp.degreeCertificate = ''
}
// leaveCertificate
if (this.leave_list.length > 0) {
this.temp.leaveCertificate = this.leave_list[this.leave_list.length - 1].url
}else {
} else {
this.temp.leaveCertificate = ''
}
},
@ -1132,7 +1109,7 @@ export default {
url: this.temp.idCardA
})
}
console.log('身份证人面像',this.idCardA_list)
console.log('身份证人面像', this.idCardA_list)
if (this.temp.idCardB !== '') {
const imgName = this.temp.idCardB.split('/')
this.idCardB_list.push({

27
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFile.java

@ -0,0 +1,27 @@
package com.yxt.anrui.riskcenter.api.loanfile;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author fan
* @Date 2022/11/14 22:40
* @Description
*/
@Data
public class LoanFile extends BaseEntity {
private static final long serialVersionUID = -1625798325169874963L;
@ApiModelProperty("关联sid")
private String linkSid;
@ApiModelProperty("文件类型")
private String fileType;
@ApiModelProperty("附件类型")
private String attachType;
@ApiModelProperty("文件名")
private String fileName;
@ApiModelProperty("文件大小")
private String fileSize;
@ApiModelProperty("文件路径")
private String filePath;
}

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

@ -0,0 +1,41 @@
package com.yxt.anrui.riskcenter.api.loanfile;
/**
* @Author fan
* @Date 2022/11/14 22:46
* @Description
*/
public enum LoanFileEnum {
REGISTRATION_FILES_ONE("001", "登记证(1、2页)"),
REGISTRATION_FILES_TWO("002", "登记证(3、4页)"),
TAXI_FILES("003", "营运证"),
DRIVING_CARD_FILES("004", "行驶证"),
;
/**
* 附件类型
*/
private final String attachType;
/**
* 代号
*/
private final String mark;
LoanFileEnum(String attachType, String mark) {
this.attachType = attachType;
this.mark = mark;
}
public String getAttachType() {
return attachType;
}
public String getMark() {
return mark;
}
}

34
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanmortgageinformationtransact/LoanMortgageInformationTransact.java

@ -0,0 +1,34 @@
package com.yxt.anrui.riskcenter.api.loanmortgageinformationtransact;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @author Administrator
* @description
* @date 2023/8/16 14:34
*/
@Data
@ApiModel(value = "抵押资料办理", description = "抵押资料办理")
@TableName("loan_mortgage_information_transact")
public class LoanMortgageInformationTransact extends BaseEntity {
@ApiModelProperty("销售订单sid")
private String salesOrderSid;
@ApiModelProperty("抵押日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date mortgageDate = new Date();
@ApiModelProperty("业务车辆sid")
private String busVinSid;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("使用组织名称")
private String useOrgName;
@ApiModelProperty("使用组织全路径")
private String orgSidPath;
}

39
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanmortgageinformationtransact/LoanMortgageInformationTransactDetailsVo.java

@ -0,0 +1,39 @@
package com.yxt.anrui.riskcenter.api.loanmortgageinformationtransact;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/8/21 9:13
*/
@Data
public class LoanMortgageInformationTransactDetailsVo implements Vo {
@ApiModelProperty("业务车辆sid")
private String busVinSid;
@ApiModelProperty("消贷合同编号")
private String contractId;
@ApiModelProperty("贷款人")
private String borrowerName;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("抵押日期")
private String mortgageDate;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("登记证 1-2页")
private List<String> registrationFiles1 = new ArrayList<>();
@ApiModelProperty("登记证 3-4页")
private List<String> registrationFiles2 = new ArrayList<>();
@ApiModelProperty("营运证")
private List<String> taxiFiles = new ArrayList<>();
@ApiModelProperty("行驶证")
private List<String> drivingFiles = new ArrayList<>();
}

33
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanmortgageinformationtransact/LoanMortgageInformationTransactDto.java

@ -0,0 +1,33 @@
package com.yxt.anrui.riskcenter.api.loanmortgageinformationtransact;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/8/21 9:12
*/
@Data
public class LoanMortgageInformationTransactDto implements Dto {
@ApiModelProperty("业务车辆sid")
private String busVinSid;
@ApiModelProperty("抵押日期")
private Date mortgageDate;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("登记证 1-2页")
private List<String> registrationFiles1 = new ArrayList<>();
@ApiModelProperty("登记证 3-4页")
private List<String> registrationFiles2 = new ArrayList<>();
@ApiModelProperty("营运证")
private List<String> taxiFiles = new ArrayList<>();
@ApiModelProperty("行驶证")
private List<String> drivingFiles = new ArrayList<>();
}

68
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanmortgageinformationtransact/LoanMortgageInformationTransactFeign.java

@ -0,0 +1,68 @@
package com.yxt.anrui.riskcenter.api.loanmortgageinformationtransact;
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-LoanMortgageInformationTransact",
name = "anrui-riskcenter",
path = "v1/loanmortgageinformationtransact",
fallback = LoanMortgageInformationTransactFeignFallback.class)
public interface LoanMortgageInformationTransactFeign {
/**
* 根据条件分页查询数据的列表已测试
*
* @param pq
*/
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
@ResponseBody
public ResultBean<PagerVo<LoanMortgageInformationTransactVo>> listPage(@RequestBody PagerQuery<LoanMortgageInformationTransactQuery> pq);
/**
* 保存 抵押办理
*
* @param
*/
@ApiOperation("保存抵押办理")
@PostMapping("/saveMortgageInfo")
public ResultBean<String> saveMortgageInfo(@RequestBody LoanMortgageInformationTransactDto dto);
/**
* 保存 抵押办理
*
* @param
*/
@ApiOperation("提交")
@PostMapping("/submitMortgageInfo")
public ResultBean<String> submitMortgageInfo(@RequestBody LoanMortgageInformationTransactDto dto);
/**
* 初始化详情
*
* @param
*/
@ApiOperation("初始化详情")
@GetMapping("/getMortgageInfo")
@ResponseBody
public ResultBean<LoanMortgageInformationTransactDetailsVo> getMortgageInfo(@RequestParam("busVinSid") String busVinSid);
}

35
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanmortgageinformationtransact/LoanMortgageInformationTransactFeignFallback.java

@ -0,0 +1,35 @@
package com.yxt.anrui.riskcenter.api.loanmortgageinformationtransact;
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 LoanMortgageInformationTransactFeignFallback implements LoanMortgageInformationTransactFeign {
@Override
public ResultBean<PagerVo<LoanMortgageInformationTransactVo>> listPage(PagerQuery<LoanMortgageInformationTransactQuery> pq) {
return null;
}
@Override
public ResultBean saveMortgageInfo(LoanMortgageInformationTransactDto dto) {
return null;
}
@Override
public ResultBean submitMortgageInfo(LoanMortgageInformationTransactDto dto) {
return null;
}
@Override
public ResultBean<LoanMortgageInformationTransactDetailsVo> getMortgageInfo(String busVinSid) {
return null;
}
}

29
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanmortgageinformationtransact/LoanMortgageInformationTransactQuery.java

@ -0,0 +1,29 @@
package com.yxt.anrui.riskcenter.api.loanmortgageinformationtransact;
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 LoanMortgageInformationTransactQuery implements Query {
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("组织全路径")
private String orgPath;
@ApiModelProperty("菜单sid")
private String menuSid;
@ApiModelProperty("菜单url")
private String menuUrl;
@ApiModelProperty("合同编号/贷款人姓名/车架号")
private String names;
@ApiModelProperty("“” 全部 1待抵押 2已抵押")
private String type;
}

43
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanmortgageinformationtransact/LoanMortgageInformationTransactVo.java

@ -0,0 +1,43 @@
package com.yxt.anrui.riskcenter.api.loanmortgageinformationtransact;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @author Administrator
* @description
* @date 2023/8/16 15:04
*/
@Data
public class LoanMortgageInformationTransactVo implements Vo {
@ApiModelProperty("销售订单sid")
private String salesOrderSid;
@ApiModelProperty("抵押日期")
private String disbursementDate;
@ApiModelProperty("业务车辆sid")
private String sid;
@ApiModelProperty("消贷合同编号")
private String contractId;
@ApiModelProperty("分公司")
private String company;
@ApiModelProperty("销售部门")
private String department;
@ApiModelProperty("销售专员")
private String salesman;
@ApiModelProperty("贷款人")
private String lenderName;
@ApiModelProperty("车架号")
private String vin;
@ApiModelProperty("资方")
private String bankName;
private String createBySid;
private String orgSidPath;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date createTime;
private boolean showHandleBtn;
}

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/LoanSolutionsFeign.java

@ -110,6 +110,10 @@ public interface LoanSolutionsFeign {
@PostMapping("/selectDetails2")
ResultBean<SolutionssVo> selectDetails2(@RequestParam("salesOrderSid") String busSid);
@ApiOperation("客户洽谈金融方案初始化")
@PostMapping("/selectDetails3")
ResultBean<SolutionssVo> selectDetails3(@RequestParam("salesOrderSid") String busSid);
@ApiOperation("移动端计算初始化")
@PostMapping("/details2")
ResultBean<SolutionssVo> details2(@RequestBody SolutionssQuery query);

5
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/LoanSolutionsFeignFallback.java

@ -78,6 +78,11 @@ public class LoanSolutionsFeignFallback implements LoanSolutionsFeign {
return null;
}
@Override
public ResultBean<SolutionssVo> selectDetails3(String busSid) {
return null;
}
@Override
public ResultBean<SolutionssVo> details2(SolutionssQuery query) {
return null;

37
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanwarrantinformation/LoanAuditInfoDto.java

@ -0,0 +1,37 @@
package com.yxt.anrui.riskcenter.api.loanwarrantinformation;
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/28 17:44
*/
@Data
public class LoanAuditInfoDto implements Dto {
@ApiModelProperty("业务sid")
private String sid;
@ApiModelProperty("消贷合同编号")
private String contractNo;
@ApiModelProperty("客户名称")
private String borrowerName;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("资方名称")
private String bankName;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("登记证 1-2页")
private List<String> registrationFiles1 = new ArrayList<>();
@ApiModelProperty("登记证 3-4页")
private List<String> registrationFiles2 = new ArrayList<>();
@ApiModelProperty("营运证")
private List<String> taxiFiles = new ArrayList<>();
@ApiModelProperty("行驶证")
private List<String> drivingFiles = new ArrayList<>();
}

37
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanwarrantinformation/LoanAuditInfoVo.java

@ -0,0 +1,37 @@
package com.yxt.anrui.riskcenter.api.loanwarrantinformation;
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 17:33
*/
@Data
public class LoanAuditInfoVo implements Vo {
@ApiModelProperty("业务sid")
private String sid;
@ApiModelProperty("消贷合同编号")
private String contractNo;
@ApiModelProperty("客户名称")
private String borrowerName;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("资方名称")
private String bankName;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("登记证 1-2页")
private List<String> registrationFiles1 = new ArrayList<>();
@ApiModelProperty("登记证 3-4页")
private List<String> registrationFiles2 = new ArrayList<>();
@ApiModelProperty("营运证")
private List<String> taxiFiles = new ArrayList<>();
@ApiModelProperty("行驶证")
private List<String> drivingFiles = new ArrayList<>();
}

33
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanwarrantinformation/LoanTransferInfoDto.java

@ -0,0 +1,33 @@
package com.yxt.anrui.riskcenter.api.loanwarrantinformation;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/8/21 9:12
*/
@Data
public class LoanTransferInfoDto implements Dto {
private String[] sids;
@ApiModelProperty("移交资料")
private String transferInformation;
@ApiModelProperty("送达日期")
private String deliveryDate;
@ApiModelProperty("快递单号")
private String trackingNo;
@ApiModelProperty("移交方式key")
private String transferWayKey;
@ApiModelProperty("移交方式value")
private String transferWayValue;
@ApiModelProperty("接收人/签收人")
private String recipient;
@ApiModelProperty("移交备注")
private String transferRemarks;
}

37
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanwarrantinformation/LoanTransferInfoVo.java

@ -0,0 +1,37 @@
package com.yxt.anrui.riskcenter.api.loanwarrantinformation;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @author Administrator
* @description
* @date 2023/8/29 9:04
*/
@Data
public class LoanTransferInfoVo implements Vo {
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("消贷合同号")
private String contractNo;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("移交资料")
private String transferInformation;
@ApiModelProperty("送达日期")
private String deliveryDate;
@ApiModelProperty("快递单号")
private String trackingNo;
@ApiModelProperty("移交方式key")
private String transferWayKey;
@ApiModelProperty("移交方式value")
private String transferWayValue;
@ApiModelProperty("接收人/签收人")
private String recipient;
@ApiModelProperty("移交备注")
private String transferRemarks;
}

64
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanwarrantinformation/LoanWarrantInformation.java

@ -0,0 +1,64 @@
package com.yxt.anrui.riskcenter.api.loanwarrantinformation;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @author Administrator
* @description
* @date 2023/8/16 14:34
*/
@Data
@ApiModel(value = "权证资料管理", description = "权证资料管理")
@TableName("loan_warrant_information")
public class LoanWarrantInformation extends BaseEntity {
@ApiModelProperty("销售订单sid")
private String salesOrderSid;
@ApiModelProperty("审核状态key")
private String auditStateKey;
@ApiModelProperty("审核状态Value")
private String auditStateValue;
@ApiModelProperty("送达日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date deliveryDate;
@ApiModelProperty("业务车辆sid")
private String busVinSid;
@ApiModelProperty("移交资料")
private String transferInformation;
@ApiModelProperty("移交备注")
private String transferRemarks;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date transferDate;
@ApiModelProperty("消贷合同号")
private String contractNo;
@ApiModelProperty("销售部门")
private String department;
@ApiModelProperty("销售专员")
private String salesman;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("贷款人")
private String borrowerName;
@ApiModelProperty("快递单号")
private String trackingNo;
@ApiModelProperty("移交方式key")
private String transferWayKey;
@ApiModelProperty("移交方式value")
private String transferWayValue;
@ApiModelProperty("接收人/签收人")
private String recipient;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("使用组织名称")
private String useOrgName;
@ApiModelProperty("使用组织全路径")
private String orgSidPath;
}

51
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanwarrantinformation/LoanWarrantInformationDetailsVo.java

@ -0,0 +1,51 @@
package com.yxt.anrui.riskcenter.api.loanwarrantinformation;
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 LoanWarrantInformationDetailsVo implements Vo {
@ApiModelProperty("业务sid")
private String sid;
@ApiModelProperty("消贷合同编号")
private String contractNo;
@ApiModelProperty("客户名称")
private String borrowerName;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("资方名称")
private String bankName;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("登记证 1-2页")
private List<String> registrationFiles1 = new ArrayList<>();
@ApiModelProperty("登记证 3-4页")
private List<String> registrationFiles2 = new ArrayList<>();
@ApiModelProperty("营运证")
private List<String> taxiFiles = new ArrayList<>();
@ApiModelProperty("行驶证")
private List<String> drivingFiles = new ArrayList<>();
@ApiModelProperty("移交资料")
private String transferInformation;
@ApiModelProperty("送达日期")
private String deliveryDate;
@ApiModelProperty("快递单号")
private String trackingNo;
@ApiModelProperty("移交方式key")
private String transferWayKey;
@ApiModelProperty("移交方式value")
private String transferWayValue;
@ApiModelProperty("接收人/签收人")
private String recipient;
@ApiModelProperty("移交备注")
private String transferRemarks;
}

96
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanwarrantinformation/LoanWarrantInformationFeign.java

@ -0,0 +1,96 @@
package com.yxt.anrui.riskcenter.api.loanwarrantinformation;
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-LoanWarrantInformation",
name = "anrui-riskcenter",
path = "v1/loanwarrantinformation",
fallback = LoanWarrantInformationFeignFallback.class)
public interface LoanWarrantInformationFeign {
/**
* 根据条件分页查询数据的列表已测试
*
* @param pq
*/
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
@ResponseBody
public ResultBean<PagerVo<LoanWarrantInformationVo>> listPage(@RequestBody PagerQuery<LoanWarrantInformationQuery> pq);
/**
* 审核回显
*
* @param
*/
@ApiOperation("审核回显")
@GetMapping("/getAuditInfo")
@ResponseBody
public ResultBean<LoanAuditInfoVo> getAuditInfo(@RequestParam("sid") String sid);
/**
* 审核保存
*
* @param
*/
@ApiOperation("审核保存")
@PostMapping("/saveWarrantInfo")
public ResultBean<String> saveWarrantInfo(@RequestBody LoanAuditInfoDto dto);
/**
* 审核通过
*
* @param
*/
@ApiOperation("审核通过")
@PostMapping("/approvedWarrantInfo")
public ResultBean<String> approvedWarrantInfo(@RequestBody LoanAuditInfoDto dto);
/**
* 移交回显
*
* @param
*/
@ApiOperation("移交回显")
@PostMapping("/transferInfo")
@ResponseBody
public ResultBean<LoanTransferInfoVo> transferInfo(@RequestBody String[] sids);
/**
* 移交保存
*
* @param
*/
@ApiOperation("移交保存")
@PostMapping("/saveTransferInfo")
public ResultBean saveTransferInfo(@RequestBody LoanTransferInfoDto dto);
/**
* 详情
*
* @param
*/
@ApiOperation("详情")
@GetMapping("/detailsInfo/{sid}")
@ResponseBody
public ResultBean<LoanWarrantInformationDetailsVo> detailsInfo(@PathVariable("sid") String sid);
}

53
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanwarrantinformation/LoanWarrantInformationFeignFallback.java

@ -0,0 +1,53 @@
package com.yxt.anrui.riskcenter.api.loanwarrantinformation;
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 LoanWarrantInformationFeignFallback implements LoanWarrantInformationFeign {
@Override
public ResultBean<PagerVo<LoanWarrantInformationVo>> listPage(PagerQuery<LoanWarrantInformationQuery> pq) {
return null;
}
@Override
public ResultBean<LoanAuditInfoVo> getAuditInfo(String sid) {
return null;
}
@Override
public ResultBean<String> saveWarrantInfo(LoanAuditInfoDto dto) {
return null;
}
@Override
public ResultBean<LoanTransferInfoVo> transferInfo(String[] sids) {
return null;
}
@Override
public ResultBean saveTransferInfo(LoanTransferInfoDto dto) {
return null;
}
@Override
public ResultBean<LoanWarrantInformationDetailsVo> detailsInfo(String sid) {
return null;
}
@Override
public ResultBean<String> approvedWarrantInfo(LoanAuditInfoDto dto) {
return null;
}
}

44
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanwarrantinformation/LoanWarrantInformationQuery.java

@ -0,0 +1,44 @@
package com.yxt.anrui.riskcenter.api.loanwarrantinformation;
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 LoanWarrantInformationQuery 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 borrowerName;
@ApiModelProperty("消贷合同编号")
private String contractNo;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("审核状态key")
private String auditStateKey;
@ApiModelProperty("移交开始日期")
private String startTime;
@ApiModelProperty("移交结束日期")
private String endTime;
}

39
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanwarrantinformation/LoanWarrantInformationVo.java

@ -0,0 +1,39 @@
package com.yxt.anrui.riskcenter.api.loanwarrantinformation;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @author Administrator
* @description
* @date 2023/8/16 15:04
*/
@Data
public class LoanWarrantInformationVo implements Vo {
@ApiModelProperty("sid")
private String sid;
@ApiModelProperty("消贷合同编号")
private String contractNo;
@ApiModelProperty("分公司")
private String company;
@ApiModelProperty("销售部门")
private String department;
@ApiModelProperty("销售专员")
private String salesman;
@ApiModelProperty("贷款人")
private String borrowerName;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("审核状态value")
private String auditStateValue;
@ApiModelProperty("移交日期")
private String transferDate;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("备注")
private String transferRemarks;
}

27
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfile/LoanFileMapper.java

@ -0,0 +1,27 @@
package com.yxt.anrui.riskcenter.biz.loanfile;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.buscenter.api.buscenterfile.BuscenterFile;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFile;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/11/14 22:44
* @Description
*/
@Mapper
public interface LoanFileMapper extends BaseMapper<LoanFile> {
List<LoanFile> selectByLinkSid(@Param("sid") String sid, @Param("attachType") String attachType);
int deleteByLinkSid(String sid);
LoanFile selectByLinkSidOne(@Param("sid") String sid, @Param("attachType") String attachType);
@Delete("delete from loan_file where linkSid = #{sid} and attachType = #{attachType}")
void delByLinkSidOrType(@Param("sid") String sid, @Param("attachType") String attachType);
}

23
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfile/LoanFileMapper.xml

@ -0,0 +1,23 @@
<?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.loanfile.LoanFileMapper">
<select id="selectByLinkSid" resultType="com.yxt.anrui.riskcenter.api.loanfile.LoanFile">
select *
from loan_file
where linkSid = #{sid}
and attachType = #{attachType}
</select>
<delete id="deleteByLinkSid">
delete
from loan_file
where linkSid = #{sid}
</delete>
<select id="selectByLinkSidOne" resultType="com.yxt.anrui.riskcenter.api.loanfile.LoanFile">
select *
from loan_file
where attachType = #{attachType}
and linkSid = #{sid}
</select>
</mapper>

71
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfile/LoanFileService.java

@ -0,0 +1,71 @@
package com.yxt.anrui.riskcenter.biz.loanfile;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFile;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.File;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/11/14 22:43
* @Description
*/
@Service
public class LoanFileService extends MybatisBaseService<LoanFileMapper, LoanFile> {
@Autowired
private FileUploadComponent fileUploadComponent;
public List<LoanFile> selectByLinkSid(String sid, String attachType) {
return baseMapper.selectByLinkSid(sid, attachType);
}
public int deleteByLinkSid(String sid) {
return baseMapper.deleteByLinkSid(sid);
}
public void saveAll(String sid, List<String> imageFiles, String attachType) {
if (!imageFiles.isEmpty()) {
imageFiles.stream().forEach(str -> {
LoanFile loanFile = new LoanFile();
File file = new File(fileUploadComponent.getUploadPath() + str.replace("/", File.separator));
if (file != null) {
loanFile.setFileSize(fileUploadComponent.getPrintSize(file.length()));
}
loanFile.setLinkSid(sid);
loanFile.setFileName(str.substring(str.lastIndexOf("/") + 1, str.lastIndexOf(".")));
loanFile.setFileType(str.substring(str.lastIndexOf(".") + 1));
loanFile.setAttachType(attachType);
loanFile.setFilePath(str.replace(fileUploadComponent.getUrlPrefix(), ""));
save(loanFile);
});
}
}
public LoanFile selectByLinkSidOne(String sid, String attachType) {
return baseMapper.selectByLinkSidOne(sid, attachType);
}
public void delByLinkSidOrType(String sid, String attachType) {
baseMapper.delByLinkSidOrType(sid, attachType);
}
public void saveFile(String sid, String filePath, String attachType) {
LoanFile loanFile = new LoanFile();
String str = filePath;
File file = new File(fileUploadComponent.getUploadPath() + str.replace("/", File.separator));
if (file != null) {
loanFile.setFileSize(fileUploadComponent.getPrintSize(file.length()));
}
loanFile.setLinkSid(sid);
loanFile.setFileName(str.substring(str.lastIndexOf("/") + 1, str.lastIndexOf(".")));
loanFile.setFileType(str.substring(str.lastIndexOf(".") + 1));
loanFile.setAttachType(attachType);
loanFile.setFilePath(str.replace(fileUploadComponent.getUrlPrefix(), ""));
save(loanFile);
}
}

31
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmortgageinformationtransact/LoanMortgageInformationTransactMapper.java

@ -0,0 +1,31 @@
package com.yxt.anrui.riskcenter.biz.loanmortgageinformationtransact;
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.loanmortgageinformationtransact.LoanMortgageInformationTransact;
import com.yxt.anrui.riskcenter.api.loanmortgageinformationtransact.LoanMortgageInformationTransactDetailsVo;
import com.yxt.anrui.riskcenter.api.loanmortgageinformationtransact.LoanMortgageInformationTransactVo;
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 java.util.List;
/**
* @description:
* @author: fan
* @date: 2023/8/21
**/
@Mapper
public interface LoanMortgageInformationTransactMapper extends BaseMapper<LoanMortgageInformationTransact> {
List<LoanMortgageInformationTransactVo> listPageDo(@Param(Constants.WRAPPER) QueryWrapper<LoanMortgageInformationTransact> qw);
LoanMortgageInformationTransact fetchByBusVinSid(String busVinSid);
LoanMortgageInformationTransactDetailsVo getMortgageInfo(String busVinSid);
}

31
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmortgageinformationtransact/LoanMortgageInformationTransactMapper.xml

@ -0,0 +1,31 @@
<?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.loanmortgageinformationtransact.LoanMortgageInformationTransactMapper">
<select id="listPageDo"
resultType="com.yxt.anrui.riskcenter.api.loanmortgageinformationtransact.LoanMortgageInformationTransactVo">
SELECT
busVinSid as sid,
salesOrderSid,
createTime,
date_format (mortgageDate,'%Y-%m-%d') as disbursementDate
from loan_mortgage_information_transact
<where>
${ew.sqlSegment}
</where>
</select>
<select id="fetchByBusVinSid"
resultType="com.yxt.anrui.riskcenter.api.loanmortgageinformationtransact.LoanMortgageInformationTransact">
SELECT *
from loan_mortgage_information_transact
where busVinSid = #{busVinSid}
</select>
<select id="getMortgageInfo"
resultType="com.yxt.anrui.riskcenter.api.loanmortgageinformationtransact.LoanMortgageInformationTransactDetailsVo">
SELECT busVinSid,
remarks,
date_format(mortgageDate, '%Y-%m-%d') as mortgageDate
from loan_mortgage_information_transact
where busVinSid = #{busVinSid}
</select>
</mapper>

47
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmortgageinformationtransact/LoanMortgageInformationTransactRest.java

@ -0,0 +1,47 @@
package com.yxt.anrui.riskcenter.biz.loanmortgageinformationtransact;
import com.yxt.anrui.riskcenter.api.loanmortgageinformationtransact.*;
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/loanmortgageinformationtransact")
public class LoanMortgageInformationTransactRest implements LoanMortgageInformationTransactFeign {
@Autowired
private LoanMortgageInformationTransactService loanMortgageInformationTransactService;
@Override
public ResultBean<PagerVo<LoanMortgageInformationTransactVo>> listPage(PagerQuery<LoanMortgageInformationTransactQuery> pq) {
ResultBean<PagerVo<LoanMortgageInformationTransactVo>> rb = ResultBean.fireFail();
PagerVo<LoanMortgageInformationTransactVo> page = loanMortgageInformationTransactService.listPage(pq);
return rb.success().setData(page).setMsg(page.getMsg());
}
@Override
public ResultBean<String> saveMortgageInfo(LoanMortgageInformationTransactDto dto) {
return loanMortgageInformationTransactService.saveMortgageInfo(dto);
}
@Override
public ResultBean<String> submitMortgageInfo(LoanMortgageInformationTransactDto dto) {
return loanMortgageInformationTransactService.submitMortgageInfo(dto);
}
@Override
public ResultBean<LoanMortgageInformationTransactDetailsVo> getMortgageInfo(String busVinSid) {
return loanMortgageInformationTransactService.getMortgageInfo(busVinSid);
}
}

621
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmortgageinformationtransact/LoanMortgageInformationTransactService.java

@ -0,0 +1,621 @@
package com.yxt.anrui.riskcenter.biz.loanmortgageinformationtransact;
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.base.api.basevehiclestate.BaseVehicleState;
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateFeign;
import com.yxt.anrui.buscenter.api.buscenterfile.BuscenterFile;
import com.yxt.anrui.buscenter.api.buscenterfile.BuscenterFileEnum;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppBusSalesOrderVo;
import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusSalesOrderLoancontract;
import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusSalesOrderLoancontractFeign;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
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.loanmortgageinformationtransact.*;
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.loanwarrantinformation.LoanWarrantInformation;
import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService;
import com.yxt.anrui.riskcenter.biz.loanwarrantinformation.LoanWarrantInformationService;
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 org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* @description:
* @author: fan
* @date: 2023/8/21
**/
@Service
public class LoanMortgageInformationTransactService extends MybatisBaseService<LoanMortgageInformationTransactMapper, LoanMortgageInformationTransact> {
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private BaseVehicleStateFeign baseVehicleStateFeign;
@Autowired
private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign;
@Autowired
private BusSalesOrderFeign busSalesOrderFeign;
@Autowired
private BusSalesOrderLoancontractFeign busSalesOrderLoancontractFeign;
@Autowired
private LoanFileService loanFileService;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private LoanWarrantInformationService loanWarrantInformationService;
/**
* 分页方法
*/
public List<LoanMortgageInformationTransactVo> pageBySubList(List<LoanMortgageInformationTransactVo> list, int pagesize, int currentPage) {
int totalcount = list.size();
int pagecount = 0;
List<LoanMortgageInformationTransactVo> subList;
int m = totalcount % pagesize;
if (m > 0) {
pagecount = totalcount / pagesize + 1;
} else {
pagecount = totalcount / pagesize;
}
if (m == 0) {
subList = list.subList((currentPage - 1) * pagesize, pagesize * (currentPage));
} else {
if (currentPage == pagecount) {
subList = list.subList((currentPage - 1) * pagesize, totalcount);
} else {
subList = list.subList((currentPage - 1) * pagesize, pagesize * (currentPage));
}
}
return subList;
}
/**
* 待抵押列表
*
* @return
*/
public List<LoanMortgageInformationTransactVo> pageToDo(LoanMortgageInformationTransactQuery query) {
List<LoanMortgageInformationTransactVo> voList = new ArrayList<>();
List<LoanMortgageInformationTransactVo> finalList = new ArrayList<>();
// 查询车辆状态表
List<String> busSids = baseVehicleStateFeign.selectBusSidListByBusState("307").getData();
busSids.removeAll(Collections.singleton(null));
if (!busSids.isEmpty()) {
for (String busSid : busSids) {
LoanMortgageInformationTransactVo vo = new LoanMortgageInformationTransactVo();
vo.setShowHandleBtn(true);
vo.setDisbursementDate("-");
vo.setSid(busSid);
//根据业务车辆sid查询 销售订单业务车辆表
BusSalesOrderVehicle orderVehicle = busSalesOrderVehicleFeign.details(busSid).getData();
if (null != orderVehicle) {
if (StringUtils.isNotBlank(orderVehicle.getLinkNo())) {
vo.setVin(orderVehicle.getLinkNo());
}
String salesOrderSid = orderVehicle.getSalesOrderSid();
vo.setSalesOrderSid(salesOrderSid);
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(salesOrderSid).getData();
if (null != salesOrder) {
//创建人sid
if (StringUtils.isNotBlank(salesOrder.getCreateBySid())) {
vo.setCreateBySid(salesOrder.getCreateBySid());
}
//销售部门
if (StringUtils.isNotBlank(salesOrder.getOrgName())) {
vo.setDepartment(salesOrder.getOrgName());
}
//销售专员
if (StringUtils.isNotBlank(salesOrder.getStaffName())) {
vo.setSalesman(salesOrder.getStaffName());
}
//分公司
if (StringUtils.isNotBlank(salesOrder.getUseOrgName())) {
vo.setCompany(salesOrder.getUseOrgName());
}
//销售订单创建日期
vo.setCreateTime(salesOrder.getCreateTime());
//组织全路径
if (StringUtils.isNotBlank(salesOrder.getOrgSidPath())) {
vo.setOrgSidPath(salesOrder.getOrgSidPath());
}
//根据销售订单sid查询消贷合同表
BusSalesOrderLoancontract loancontract = busSalesOrderLoancontractFeign.fetchDetailsByOrderSid(salesOrderSid).getData();
if (null != loancontract) {
//消贷合同编号
if (StringUtils.isNotBlank(loancontract.getLoanCotractNo())) {
vo.setContractId(loancontract.getLoanCotractNo());
}
//贷款人
if (StringUtils.isNotBlank(loancontract.getBorrowerName())) {
vo.setLenderName(loancontract.getBorrowerName());
}
//资方
if (StringUtils.isNotBlank(loancontract.getBankName())) {
vo.setBankName(loancontract.getBankName());
}
}
}
}
voList.add(vo);
}
}
//========== 数据权限 =============
String orgPath = "";
String userSid = "";
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(query.getOrgPath());
privilegeQuery.setMenuSid(query.getMenuSid());
privilegeQuery.setMenuUrl(query.getMenuUrl());
privilegeQuery.setUserSid(query.getUserSid());
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
String orgSidPath = query.getOrgPath();
orgSidPath = orgSidPath + "/";
int i1 = orgSidPath.indexOf("/");
int i2 = orgSidPath.indexOf("/", i1 + 1);
int i3 = orgSidPath.indexOf("/", i2 + 1);
int i4 = orgSidPath.indexOf("/", i3 + 1);
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgPath = orgSidPath.substring(0, i1);
} else if ("2".equals(orgLevelKey)) {
orgPath = orgSidPath.substring(0, i2);
} else if ("3".equals(orgLevelKey)) {
orgPath = orgSidPath.substring(0, i3);
} else if ("4".equals(orgLevelKey)) {
orgPath = orgSidPath.substring(0, i4);
} else if ("5".equals(orgLevelKey)) {
userSid = query.getUserSid();
} else {
List<LoanMortgageInformationTransactVo> p = new ArrayList<>();
return p;
}
} else {
List<LoanMortgageInformationTransactVo> p = new ArrayList<>();
return p;
}
// ================== 最终加上数据权限组装 ========================
if (!voList.isEmpty()) {
for (LoanMortgageInformationTransactVo vo : voList) {
if (StringUtils.isNotBlank(userSid)) {
if (vo.getCreateBySid().equals(userSid)) {
finalList.add(vo);
}
} else if (StringUtils.isNotBlank(orgPath)) {
if (vo.getOrgSidPath().contains(orgPath)) {
finalList.add(vo);
}
}
}
}
if (!finalList.isEmpty()) {
finalList.sort((t1, t2) -> t2.getCreateTime().compareTo(t1.getCreateTime()));
}
return finalList;
}
/**
* 已抵押列表
*/
public List<LoanMortgageInformationTransactVo> listPageDo(PagerQuery<LoanMortgageInformationTransactQuery> pq) {
LoanMortgageInformationTransactQuery pagerQuery = pq.getParams();
QueryWrapper<LoanMortgageInformationTransact> 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("orgSidPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("orgSidPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("orgSidPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("orgSidPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("createBySid", pagerQuery.getUserSid());
} else {
List<LoanMortgageInformationTransactVo> p = new ArrayList<>();
return p;
}
} else {
List<LoanMortgageInformationTransactVo> p = new ArrayList<>();
return p;
}
//=======================
qw.orderByDesc("createTime");
List<LoanMortgageInformationTransactVo> voList = baseMapper.listPageDo(qw);
voList.removeAll(Collections.singleton(null));
if (!voList.isEmpty()) {
for (LoanMortgageInformationTransactVo vo : voList) {
vo.setShowHandleBtn(false);
//根据业务车辆sid查询 销售订单业务车辆表
BusSalesOrderVehicle orderVehicle = busSalesOrderVehicleFeign.details(vo.getSid()).getData();
if (StringUtils.isNotBlank(orderVehicle.getLinkNo())) {
vo.setVin(orderVehicle.getLinkNo());
}
String salesOrderSid = vo.getSalesOrderSid();
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(salesOrderSid).getData();
if (null != salesOrder) {
//销售部门
if (StringUtils.isNotBlank(salesOrder.getOrgName())) {
vo.setDepartment(salesOrder.getOrgName());
}
//销售专员
if (StringUtils.isNotBlank(salesOrder.getStaffName())) {
vo.setSalesman(salesOrder.getStaffName());
}
//分公司
if (StringUtils.isNotBlank(salesOrder.getUseOrgName())) {
vo.setCompany(salesOrder.getUseOrgName());
}
//根据销售订单sid查询消贷合同表
BusSalesOrderLoancontract loancontract = busSalesOrderLoancontractFeign.fetchDetailsByOrderSid(salesOrderSid).getData();
if (null != loancontract) {
//消贷合同编号
if (StringUtils.isNotBlank(loancontract.getLoanCotractNo())) {
vo.setContractId(loancontract.getLoanCotractNo());
}
//贷款人
if (StringUtils.isNotBlank(loancontract.getBorrowerName())) {
vo.setLenderName(loancontract.getBorrowerName());
}
//资方
if (StringUtils.isNotBlank(loancontract.getBankName())) {
vo.setBankName(loancontract.getBankName());
}
}
}
}
}
return voList;
}
/**
* 分页列表
*
* @param pq
* @return
*/
public PagerVo<LoanMortgageInformationTransactVo> listPage(PagerQuery<LoanMortgageInformationTransactQuery> pq) {
PagerVo<LoanMortgageInformationTransactVo> pagerVo = new PagerVo<>();
LoanMortgageInformationTransactQuery params = pq.getParams();
// type “” 全部 1待抵押 2已抵押
if (params.getType().equals("1")) {
List<LoanMortgageInformationTransactVo> lastList = new ArrayList<>();
List<LoanMortgageInformationTransactVo> voList = pageToDo(params);
voList.removeAll(Collections.singleton(null));
if (!voList.isEmpty()) {
lastList = this.pageBySubList(voList, (int) pq.getSize(), (int) pq.getCurrent());
pagerVo.setRecords(lastList);
pagerVo.setTotal(voList.size());
pagerVo.setCurrent(pq.getCurrent());
pagerVo.setSize(pq.getSize());
if (voList.size() % pq.getSize() != 0L) {
pagerVo.setPages((voList.size() / pq.getSize()) + 1);
} else {
pagerVo.setPages(voList.size() / pq.getSize());
}
pagerVo.setMsg("当前共查询到" + voList.size() + "条记录");
}
} else if (params.getType().equals("2")) {
List<LoanMortgageInformationTransactVo> lastList = new ArrayList<>();
List<LoanMortgageInformationTransactVo> voList = listPageDo(pq);
voList.removeAll(Collections.singleton(null));
if (!voList.isEmpty()) {
lastList = this.pageBySubList(voList, (int) pq.getSize(), (int) pq.getCurrent());
pagerVo.setRecords(lastList);
pagerVo.setTotal(voList.size());
pagerVo.setCurrent(pq.getCurrent());
pagerVo.setSize(pq.getSize());
if (voList.size() % pq.getSize() != 0L) {
pagerVo.setPages((voList.size() / pq.getSize()) + 1);
} else {
pagerVo.setPages(voList.size() / pq.getSize());
}
pagerVo.setMsg("当前共查询到" + voList.size() + "条记录");
}
} else {
List<LoanMortgageInformationTransactVo> lastList = new ArrayList<>();
List<LoanMortgageInformationTransactVo> voListToDo = pageToDo(params);
List<LoanMortgageInformationTransactVo> voListDo = listPageDo(pq);
List<LoanMortgageInformationTransactVo> collect = Stream.concat(voListToDo.stream(), voListDo.stream()).collect(Collectors.toList());
List<LoanMortgageInformationTransactVo> pageVoList = new ArrayList<>();
if (!collect.isEmpty()) {
if (StringUtils.isNotBlank(params.getNames())) {
String names = params.getNames();
for (LoanMortgageInformationTransactVo vo : collect) {
if (vo.getVin().contains(names) || vo.getContractId().contains(names) || vo.getLenderName().contains(names)) {
pageVoList.add(vo);
}
}
lastList = this.pageBySubList(pageVoList, (int) pq.getSize(), (int) pq.getCurrent());
lastList.sort((t1, t2) -> t2.getCreateTime().compareTo(t1.getCreateTime()));
pagerVo.setRecords(lastList);
pagerVo.setTotal(pageVoList.size());
pagerVo.setCurrent(pq.getCurrent());
pagerVo.setSize(pq.getSize());
if (pageVoList.size() % pq.getSize() != 0L) {
pagerVo.setPages((pageVoList.size() / pq.getSize()) + 1);
} else {
pagerVo.setPages(pageVoList.size() / pq.getSize());
}
pagerVo.setMsg("当前共查询到" + pageVoList.size() + "条记录");
} else {
lastList = this.pageBySubList(collect, (int) pq.getSize(), (int) pq.getCurrent());
lastList.sort((t1, t2) -> t2.getCreateTime().compareTo(t1.getCreateTime()));
pagerVo.setRecords(lastList);
pagerVo.setTotal(collect.size());
pagerVo.setCurrent(pq.getCurrent());
pagerVo.setSize(pq.getSize());
if (collect.size() % pq.getSize() != 0L) {
pagerVo.setPages((collect.size() / pq.getSize()) + 1);
} else {
pagerVo.setPages(collect.size() / pq.getSize());
}
pagerVo.setMsg("当前共查询到" + collect.size() + "条记录");
}
}
}
return pagerVo;
}
/**
* 保存修改
*
* @param dto
* @return
*/
@Transactional(rollbackFor = Exception.class)
public ResultBean saveMortgageInfo(LoanMortgageInformationTransactDto dto) {
ResultBean rb = ResultBean.fireFail();
LoanMortgageInformationTransact entity = baseMapper.fetchByBusVinSid(dto.getBusVinSid());
// 修改
if (null != entity) {
entity.setMortgageDate(dto.getMortgageDate());
entity.setRemarks(dto.getRemarks());
baseMapper.updateById(entity);
} else {
// 新增
LoanMortgageInformationTransact saveEntity = new LoanMortgageInformationTransact();
//根据业务车辆sid查询 销售订单业务车辆表
BusSalesOrderVehicle orderVehicle = busSalesOrderVehicleFeign.details(dto.getBusVinSid()).getData();
if (null != orderVehicle) {
String salesOrderSid = orderVehicle.getSalesOrderSid();
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(salesOrderSid).getData();
if (null != salesOrder) {
//创建人sid
if (StringUtils.isNotBlank(salesOrder.getCreateBySid())) {
saveEntity.setCreateBySid(salesOrder.getCreateBySid());
}
//组织全路径
if (StringUtils.isNotBlank(salesOrder.getOrgSidPath())) {
saveEntity.setOrgSidPath(salesOrder.getOrgSidPath());
ResultBean<String> orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(salesOrder.getOrgSidPath());
if (orgSidByPath.getSuccess()) {
String userOrgSid = orgSidByPath.getData();
saveEntity.setUseOrgSid(userOrgSid);
ResultBean<SysOrganizationVo> organizationVo = sysOrganizationFeign.fetchBySid(userOrgSid);
if (organizationVo.getSuccess()) {
SysOrganizationVo organizationVoData = organizationVo.getData();
if (null != organizationVoData) {
saveEntity.setUseOrgName(organizationVoData.getName());
}
}
}
}
}
saveEntity.setMortgageDate(dto.getMortgageDate());
saveEntity.setRemarks(dto.getRemarks());
saveEntity.setSalesOrderSid(salesOrderSid);
saveEntity.setBusVinSid(dto.getBusVinSid());
baseMapper.insert(saveEntity);
}
}
//删除附件表中关于该linkSid的文件
loanFileService.deleteByLinkSid(dto.getBusVinSid());
List<String> registrationFiles1 = dto.getRegistrationFiles1();
if (!registrationFiles1.isEmpty()) {
loanFileService.saveAll(dto.getBusVinSid(), registrationFiles1, LoanFileEnum.REGISTRATION_FILES_ONE.getAttachType());
}
List<String> registrationFiles2 = dto.getRegistrationFiles2();
if (!registrationFiles2.isEmpty()) {
loanFileService.saveAll(dto.getBusVinSid(), registrationFiles2, LoanFileEnum.REGISTRATION_FILES_TWO.getAttachType());
}
List<String> taxiFiles = dto.getTaxiFiles();
if (!taxiFiles.isEmpty()) {
loanFileService.saveAll(dto.getBusVinSid(), taxiFiles, LoanFileEnum.TAXI_FILES.getAttachType());
}
List<String> drivingFiles = dto.getDrivingFiles();
if (!drivingFiles.isEmpty()) {
loanFileService.saveAll(dto.getBusVinSid(), drivingFiles, LoanFileEnum.DRIVING_CARD_FILES.getAttachType());
}
return rb.success().setData(dto.getBusVinSid());
}
/**
* 提交
*
* @param dto
* @return
*/
@Transactional(rollbackFor = Exception.class)
public ResultBean<String> submitMortgageInfo(LoanMortgageInformationTransactDto dto) {
ResultBean rb = ResultBean.fireFail();
ResultBean resultBean = saveMortgageInfo(dto);
if (resultBean.getSuccess()) {
baseVehicleStateFeign.updateBusStateByBusSid(dto.getBusVinSid(), "308");
LoanMortgageInformationTransact loanMortgageInformationTransact = baseMapper.fetchByBusVinSid(dto.getBusVinSid());
LoanWarrantInformation warrantInformation = new LoanWarrantInformation();
warrantInformation.setBusVinSid(dto.getBusVinSid());
warrantInformation.setAuditStateKey("001");
warrantInformation.setAuditStateValue("待审核");
warrantInformation.setRemarks(loanMortgageInformationTransact.getRemarks());
//根据业务车辆sid查询 销售订单业务车辆表
BusSalesOrderVehicle orderVehicle = busSalesOrderVehicleFeign.details(dto.getBusVinSid()).getData();
if (null != orderVehicle) {
if (StringUtils.isNotBlank(orderVehicle.getLinkNo())) {
warrantInformation.setVinNo(orderVehicle.getLinkNo());
}
String salesOrderSid = orderVehicle.getSalesOrderSid();
warrantInformation.setSalesOrderSid(salesOrderSid);
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(salesOrderSid).getData();
if (null != salesOrder) {
//组织全路径
if (StringUtils.isNotBlank(salesOrder.getOrgSidPath())) {
warrantInformation.setOrgSidPath(salesOrder.getOrgSidPath());
ResultBean<String> orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(salesOrder.getOrgSidPath());
if (orgSidByPath.getSuccess()) {
String userOrgSid = orgSidByPath.getData();
warrantInformation.setUseOrgSid(userOrgSid);
ResultBean<SysOrganizationVo> organizationVo = sysOrganizationFeign.fetchBySid(userOrgSid);
if (organizationVo.getSuccess()) {
SysOrganizationVo organizationVoData = organizationVo.getData();
if (null != organizationVoData) {
warrantInformation.setUseOrgName(organizationVoData.getName());
}
}
}
}
//创建人sid
if (StringUtils.isNotBlank(salesOrder.getCreateBySid())) {
warrantInformation.setCreateBySid(salesOrder.getCreateBySid());
}
//销售部门
if (StringUtils.isNotBlank(salesOrder.getOrgName())) {
warrantInformation.setDepartment(salesOrder.getOrgName());
}
//销售专员
if (StringUtils.isNotBlank(salesOrder.getStaffName())) {
warrantInformation.setSalesman(salesOrder.getStaffName());
}
//根据销售订单sid查询消贷合同表
BusSalesOrderLoancontract loancontract = busSalesOrderLoancontractFeign.fetchDetailsByOrderSid(salesOrderSid).getData();
if (null != loancontract) {
//消贷合同编号
if (StringUtils.isNotBlank(loancontract.getLoanCotractNo())) {
warrantInformation.setContractNo(loancontract.getLoanCotractNo());
}
//贷款人
if (StringUtils.isNotBlank(loancontract.getBorrowerName())) {
warrantInformation.setBorrowerName(loancontract.getBorrowerName());
}
//资方
if (StringUtils.isNotBlank(loancontract.getBankName())) {
warrantInformation.setBankName(loancontract.getBankName());
}
}
}
}
loanWarrantInformationService.insert(warrantInformation);
}
return rb.success().setData(dto.getBusVinSid());
}
public ResultBean<LoanMortgageInformationTransactDetailsVo> getMortgageInfo(String busVinSid) {
ResultBean<LoanMortgageInformationTransactDetailsVo> rb = ResultBean.fireFail();
LoanMortgageInformationTransactDetailsVo vo = baseMapper.getMortgageInfo(busVinSid);
if (StringUtils.isBlank(vo.getMortgageDate())) {
vo.setMortgageDate("-");
}
//根据业务车辆sid查询 销售订单业务车辆表
BusSalesOrderVehicle orderVehicle = busSalesOrderVehicleFeign.details(busVinSid).getData();
if (null != orderVehicle) {
if (StringUtils.isNotBlank(orderVehicle.getLinkNo())) {
vo.setVinNo(orderVehicle.getLinkNo());
}
String salesOrderSid = orderVehicle.getSalesOrderSid();
//根据销售订单sid查询消贷合同表
BusSalesOrderLoancontract loancontract = busSalesOrderLoancontractFeign.fetchDetailsByOrderSid(salesOrderSid).getData();
if (null != loancontract) {
//消贷合同编号
if (StringUtils.isNotBlank(loancontract.getLoanCotractNo())) {
vo.setContractId(loancontract.getLoanCotractNo());
}
//贷款人
if (StringUtils.isNotBlank(loancontract.getBorrowerName())) {
vo.setBorrowerName(loancontract.getBorrowerName());
}
}
//登记证 1-2页
List<LoanFile> fileList = loanFileService.selectByLinkSid(busVinSid, LoanFileEnum.REGISTRATION_FILES_ONE.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> registrationFiles1 = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).
collect(Collectors.toList());
vo.setRegistrationFiles1(registrationFiles1);
}
//登记证 3-4页
fileList = loanFileService.selectByLinkSid(busVinSid, LoanFileEnum.REGISTRATION_FILES_TWO.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> registrationFiles2 = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList());
vo.setRegistrationFiles2(registrationFiles2);
}
//营运证
fileList = loanFileService.selectByLinkSid(busVinSid, LoanFileEnum.TAXI_FILES.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> taxiFiles = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList());
vo.setTaxiFiles(taxiFiles);
}
//行驶证
fileList = loanFileService.selectByLinkSid(busVinSid, LoanFileEnum.DRIVING_CARD_FILES.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> drivingFiles = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList());
vo.setDrivingFiles(drivingFiles);
}
}
return rb.success().setData(vo);
}
}

5
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsRest.java

@ -90,6 +90,11 @@ public class LoanSolutionsRest implements LoanSolutionsFeign {
return loanSolutionsService.selectDetails2(busSid);
}
@Override
public ResultBean<SolutionssVo> selectDetails3(String busSid) {
return loanSolutionsService.selectDetails3(busSid);
}
@Override
public ResultBean<SolutionssVo> details2(SolutionssQuery query) {
return loanSolutionsService.details2(query);

80
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsService.java

@ -2185,6 +2185,86 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
return loanSolutions;
}
public ResultBean<SolutionssVo> selectDetails3(String busSid) {
ResultBean<SolutionssVo> rb = ResultBean.fireFail();
SolutionssVo solutionssVo = new SolutionssVo();
//根据关联sid查询是否存在金融方案
LoanSolutions loanSolutions = baseMapper.selectByApplySid(busSid);
boolean isTrue = false;
if (loanSolutions != null) {
BeanUtil.copyProperties(loanSolutions, solutionssVo);
if (loanSolutions.getTrailerAmount() != null) {
solutionssVo.setGcPrice(loanSolutions.getTrailerAmount().toString());
}
LoanSolutionsOtherpolicy loanSolutionsOtherpolicy = loanSolutionsOtherpolicyService.selectByLoanSid(loanSolutions.getSid());
if (loanSolutionsOtherpolicy != null) {
BeanUtil.copyProperties(loanSolutionsOtherpolicy, solutionssVo);
}
LoanSolutionsDetail loanSolutionsDetail = loanSolutionsDetailService.selectLoanSid(loanSolutions.getSid());
if (loanSolutionsDetail != null) {
BeanUtil.copyProperties(loanSolutionsDetail, solutionssVo);
}
isTrue = true;
}
//全款且为三方金融
if(StringUtils.isBlank(loanSolutions.getTypeKey())){
solutionssVo.setShowMore(true);
solutionssVo.setFactoryDiscountUse("抵利息");
if (isTrue) {
if (StringUtils.isNotBlank(loanSolutions.getPolicySid()) && loanSolutions.getOtherPolicyState() == 0) {
LoanFinOtherPolicy loanFinOtherPolicy = loanFinOtherPolicyService.selectByMainSid(loanSolutions.getPolicySid());
if (loanFinOtherPolicy != null) {
solutionssVo.setOtherPolicyName(loanFinOtherPolicy.getOtherPolicyName());
solutionssVo.setOtherPolicySid(loanFinOtherPolicy.getSid());
solutionssVo.setOtherPolicyPeriod(String.valueOf(loanFinOtherPolicy.getPeriod()));
solutionssVo.setOtherPolicyYearRatio(loanFinOtherPolicy.getYearRatio().toString());
solutionssVo.setOtherPolicyIsMain(true);
}
} else {
LoanFinOtherPolicy loanFinOtherPolicy = loanFinOtherPolicyService.selectByMainSid(loanSolutions.getPolicySid());
if (loanFinOtherPolicy != null) {
solutionssVo.setOtherPolicyIsMain(true);
}
}
}
}else{
if ("02".equals(loanSolutions.getTypeKey())) {
solutionssVo.setFactoryDiscountUse("抵车款");
if (isTrue) {
solutionssVo.setShowMore(false);
} else {
solutionssVo.setShowMore(false);
}
}else{
solutionssVo.setShowMore(true);
solutionssVo.setFactoryDiscountUse("抵利息");
if (isTrue) {
if (StringUtils.isNotBlank(loanSolutions.getPolicySid()) && loanSolutions.getOtherPolicyState() == 0) {
LoanFinOtherPolicy loanFinOtherPolicy = loanFinOtherPolicyService.selectByMainSid(loanSolutions.getPolicySid());
if (loanFinOtherPolicy != null) {
solutionssVo.setOtherPolicyName(loanFinOtherPolicy.getOtherPolicyName());
solutionssVo.setOtherPolicySid(loanFinOtherPolicy.getSid());
solutionssVo.setOtherPolicyPeriod(String.valueOf(loanFinOtherPolicy.getPeriod()));
solutionssVo.setOtherPolicyYearRatio(loanFinOtherPolicy.getYearRatio().toString());
solutionssVo.setOtherPolicyIsMain(true);
}
} else {
LoanFinOtherPolicy loanFinOtherPolicy = loanFinOtherPolicyService.selectByMainSid(loanSolutions.getPolicySid());
if (loanFinOtherPolicy != null) {
solutionssVo.setOtherPolicyIsMain(true);
}
}
}
}
}
if (isTrue) {
List<SolutionListVo> formList = getFormList(solutionssVo);
solutionssVo.setFinanceForms(formList);
}
solutionssVo.setBusSid(busSid);
return rb.success().setData(solutionssVo);
}

30
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanwarrantinformation/LoanWarrantInformationMapper.java

@ -0,0 +1,30 @@
package com.yxt.anrui.riskcenter.biz.loanwarrantinformation;
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.loanwarrantinformation.LoanWarrantInformation;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationDetailsVo;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @description:
* @author: fan
* @date: 2023/8/21
**/
@Mapper
public interface LoanWarrantInformationMapper extends BaseMapper<LoanWarrantInformation> {
LoanWarrantInformation fetchByBusVinSid(String busVinSid);
LoanWarrantInformationDetailsVo getMortgageInfo(String busVinSid);
IPage<LoanWarrantInformationVo> listPage(IPage<LoanWarrantInformation> page, @Param(Constants.WRAPPER) QueryWrapper<LoanWarrantInformation> qw);
}

38
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanwarrantinformation/LoanWarrantInformationMapper.xml

@ -0,0 +1,38 @@
<?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.loanwarrantinformation.LoanWarrantInformationMapper">
<select id="fetchByBusVinSid"
resultType="com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformation">
SELECT *
from loan_warrant_information
where busVinSid = #{busVinSid}
</select>
<select id="getMortgageInfo"
resultType="com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationDetailsVo">
SELECT busVinSid,
remarks,
date_format(mortgageDate, '%Y-%m-%d') as mortgageDate
from loan_mortgage_information_transact
where busVinSid = #{busVinSid}
</select>
<select id="listPage"
resultType="com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationVo">
SELECT sid,
contractNo,
useOrgName as company,
department,
salesman,
borrowerName,
vinNo,
auditStateValue,
date_format(transferDate, '%Y-%m-%d') as transferDate,
bankName,
transferRemarks
from loan_warrant_information
<where>
${ew.sqlSegment}
</where>
</select>
</mapper>

63
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanwarrantinformation/LoanWarrantInformationRest.java

@ -0,0 +1,63 @@
package com.yxt.anrui.riskcenter.biz.loanwarrantinformation;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.*;
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/loanwarrantinformation")
public class LoanWarrantInformationRest implements LoanWarrantInformationFeign {
@Autowired
private LoanWarrantInformationService loanMortgageInformationTransactService;
@Override
public ResultBean<PagerVo<LoanWarrantInformationVo>> listPage(PagerQuery<LoanWarrantInformationQuery> pq) {
ResultBean<PagerVo<LoanWarrantInformationVo>> rb = ResultBean.fireFail();
PagerVo<LoanWarrantInformationVo> page = loanMortgageInformationTransactService.listPage(pq);
return rb.success().setData(page);
}
@Override
public ResultBean<LoanAuditInfoVo> getAuditInfo(String sid) {
return loanMortgageInformationTransactService.getAuditInfo(sid);
}
@Override
public ResultBean<String> saveWarrantInfo(LoanAuditInfoDto dto) {
return loanMortgageInformationTransactService.saveWarrantInfo(dto);
}
@Override
public ResultBean<String> approvedWarrantInfo(LoanAuditInfoDto dto) {
return loanMortgageInformationTransactService.approvedWarrantInfo(dto);
}
@Override
public ResultBean<LoanTransferInfoVo> transferInfo(String[] sids) {
return loanMortgageInformationTransactService.transferInfo(sids);
}
@Override
public ResultBean saveTransferInfo(LoanTransferInfoDto dto) {
return loanMortgageInformationTransactService.saveTransferInfo(dto);
}
@Override
public ResultBean<LoanWarrantInformationDetailsVo> detailsInfo(String sid) {
return loanMortgageInformationTransactService.detailsInfo(sid);
}
}

377
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanwarrantinformation/LoanWarrantInformationService.java

@ -0,0 +1,377 @@
package com.yxt.anrui.riskcenter.biz.loanwarrantinformation;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateFeign;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusSalesOrderLoancontract;
import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusSalesOrderLoancontractFeign;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
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.loanmortgageinformationtransact.*;
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.loanwarrantinformation.*;
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 lombok.SneakyThrows;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* @description:
* @author: fan
* @date: 2023/8/21
**/
@Service
public class LoanWarrantInformationService extends MybatisBaseService<LoanWarrantInformationMapper, LoanWarrantInformation> {
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private BaseVehicleStateFeign baseVehicleStateFeign;
@Autowired
private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign;
@Autowired
private BusSalesOrderFeign busSalesOrderFeign;
@Autowired
private BusSalesOrderLoancontractFeign busSalesOrderLoancontractFeign;
@Autowired
private LoanFileService loanFileService;
@Autowired
private FileUploadComponent fileUploadComponent;
public PagerVo<LoanWarrantInformationVo> listPage(PagerQuery<LoanWarrantInformationQuery> pq) {
IPage<LoanWarrantInformation> page = PagerUtil.queryToPage(pq);
LoanWarrantInformationQuery pagerQuery = pq.getParams();
QueryWrapper<LoanWarrantInformation> 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("orgSidPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("orgSidPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("orgSidPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("orgSidPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("createBySid", pagerQuery.getUserSid());
} else {
PagerVo<LoanWarrantInformationVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<LoanWarrantInformationVo> p = new PagerVo<>();
return p;
}
//=======================
//分公司
if (StringUtils.isNotBlank(pagerQuery.getCompany())) {
qw.like("useOrgName", pagerQuery.getCompany());
}
//销售部门
if (StringUtils.isNotBlank(pagerQuery.getDepartment())) {
qw.like("department", pagerQuery.getDepartment());
}
//销售专员
if (StringUtils.isNotBlank(pagerQuery.getSalesman())) {
qw.like("salesman", pagerQuery.getSalesman());
}
//消贷合同号
if (StringUtils.isNotBlank(pagerQuery.getContractNo())) {
qw.like("contractNo", pagerQuery.getContractNo());
}
//贷款人
if (StringUtils.isNotBlank(pagerQuery.getBorrowerName())) {
qw.like("borrowerName", pagerQuery.getBorrowerName());
}
//车架号
if (StringUtils.isNotBlank(pagerQuery.getVinNo())) {
qw.like("vinNo", pagerQuery.getVinNo());
}
//资方
if (StringUtils.isNotBlank(pagerQuery.getAuditStateKey())) {
qw.eq("auditStateKey", pagerQuery.getAuditStateKey());
}
String createStartTime = pagerQuery.getStartTime();
String createEndTime = pagerQuery.getEndTime();
qw.apply(StringUtils.isNotEmpty(createStartTime), "date_format (transferDate,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(createEndTime), "date_format (transferDate,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
);
qw.eq("isDelete", 0);
qw.orderByDesc("createTime");
IPage<LoanWarrantInformationVo> pagging = baseMapper.listPage(page, qw);
PagerVo<LoanWarrantInformationVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
/**
* 审核回显
*
* @param sid
* @return
*/
public ResultBean<LoanAuditInfoVo> getAuditInfo(String sid) {
ResultBean<LoanAuditInfoVo> rb = ResultBean.fireFail();
LoanAuditInfoVo vo = new LoanAuditInfoVo();
LoanWarrantInformation loanWarrantInformation = fetchBySid(sid);
if (null != loanWarrantInformation) {
BeanUtil.copyProperties(loanWarrantInformation, vo);
String busVinSid = loanWarrantInformation.getBusVinSid();
//登记证 1-2页
List<LoanFile> fileList = loanFileService.selectByLinkSid(busVinSid, LoanFileEnum.REGISTRATION_FILES_ONE.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> registrationFiles1 = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).
collect(Collectors.toList());
vo.setRegistrationFiles1(registrationFiles1);
}
//登记证 3-4页
fileList = loanFileService.selectByLinkSid(busVinSid, LoanFileEnum.REGISTRATION_FILES_TWO.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> registrationFiles2 = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList());
vo.setRegistrationFiles2(registrationFiles2);
}
//营运证
fileList = loanFileService.selectByLinkSid(busVinSid, LoanFileEnum.TAXI_FILES.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> taxiFiles = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList());
vo.setTaxiFiles(taxiFiles);
}
//行驶证
fileList = loanFileService.selectByLinkSid(busVinSid, LoanFileEnum.DRIVING_CARD_FILES.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> drivingFiles = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList());
vo.setDrivingFiles(drivingFiles);
}
}
return rb.success().setData(vo);
}
/**
* 审核保存
*
* @param dto
* @return
*/
@Transactional(rollbackFor = Exception.class)
public ResultBean<String> saveWarrantInfo(LoanAuditInfoDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
LoanWarrantInformation entity = fetchBySid(dto.getSid());
BeanUtil.copyProperties(dto, entity);
String busVinSid = entity.getBusVinSid();
baseMapper.updateById(entity);
//删除附件表中关于该linkSid的文件
loanFileService.deleteByLinkSid(busVinSid);
List<String> registrationFiles1 = dto.getRegistrationFiles1();
if (!registrationFiles1.isEmpty()) {
loanFileService.saveAll(busVinSid, registrationFiles1, LoanFileEnum.REGISTRATION_FILES_ONE.getAttachType());
}
List<String> registrationFiles2 = dto.getRegistrationFiles2();
if (!registrationFiles2.isEmpty()) {
loanFileService.saveAll(busVinSid, registrationFiles2, LoanFileEnum.REGISTRATION_FILES_TWO.getAttachType());
}
List<String> taxiFiles = dto.getTaxiFiles();
if (!taxiFiles.isEmpty()) {
loanFileService.saveAll(busVinSid, taxiFiles, LoanFileEnum.TAXI_FILES.getAttachType());
}
List<String> drivingFiles = dto.getDrivingFiles();
if (!drivingFiles.isEmpty()) {
loanFileService.saveAll(busVinSid, drivingFiles, LoanFileEnum.DRIVING_CARD_FILES.getAttachType());
}
return rb.success().setData(dto.getSid());
}
/**
* 审核保存
*
* @param dto
* @return
*/
@Transactional(rollbackFor = Exception.class)
public ResultBean<String> approvedWarrantInfo(LoanAuditInfoDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
ResultBean<String> resultBean = saveWarrantInfo(dto);
if (resultBean.getSuccess()) {
LoanWarrantInformation entity = fetchBySid(dto.getSid());
entity.setAuditStateKey("002");
entity.setAuditStateValue("已审核未移交");
baseMapper.updateById(entity);
}
return rb.success().setData(dto.getSid());
}
/**
* 移交回显
*
* @param sids
* @return
*/
public ResultBean<LoanTransferInfoVo> transferInfo(String[] sids) {
ResultBean<LoanTransferInfoVo> rb = ResultBean.fireFail();
LoanTransferInfoVo vo = new LoanTransferInfoVo();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
StringBuffer sbVinNo = new StringBuffer();
StringBuffer sbConNo = new StringBuffer();
HashSet<String> hashSet = new HashSet<>();
for (String sid : sids) {
LoanWarrantInformation entity = fetchBySid(sid);
if (StringUtils.isNotBlank(entity.getVinNo())) {
sbVinNo.append(entity.getVinNo()).append(",");
}
if (StringUtils.isNotBlank(entity.getContractNo())) {
hashSet.add(entity.getContractNo());
}
if (StringUtils.isNotBlank(entity.getTransferRemarks())) {
vo.setTransferRemarks(entity.getTransferRemarks());
}
if (StringUtils.isNotBlank(entity.getBankName())) {
vo.setBankName(entity.getBankName());
}
if (StringUtils.isNotBlank(entity.getTransferInformation())) {
vo.setTransferInformation(entity.getTransferInformation());
}
if (StringUtils.isNotBlank(entity.getTransferWayKey())) {
vo.setTransferWayKey(entity.getTransferWayKey());
}
if (StringUtils.isNotBlank(entity.getTransferWayValue())) {
vo.setTransferWayValue(entity.getTransferWayValue());
}
if (StringUtils.isNotBlank(entity.getTrackingNo())) {
vo.setTrackingNo(entity.getTrackingNo());
}
if (StringUtils.isNotBlank(entity.getRecipient())) {
vo.setRecipient(entity.getRecipient());
}
if (null != entity.getDeliveryDate()) {
vo.setDeliveryDate(sdf.format(entity.getDeliveryDate()));
}
}
if (sbVinNo.length() > 0) {
sbVinNo.delete(sbVinNo.length() - 1, sbVinNo.length());
vo.setVinNo(sbVinNo.toString());
}
if (!hashSet.isEmpty()) {
for (String s : hashSet) {
sbConNo.append(s).append(",");
}
}
if (sbVinNo.length() > 0) {
sbConNo.delete(sbConNo.length() - 1, sbConNo.length());
vo.setContractNo(sbConNo.toString());
}
return rb.success().setData(vo);
}
/**
* 移交保存
*
* @param dto
* @return
*/
@Transactional(rollbackFor = Exception.class)
public ResultBean saveTransferInfo(LoanTransferInfoDto dto) {
ResultBean rb = ResultBean.fireFail();
String[] sids = dto.getSids();
for (String sid : sids) {
LoanWarrantInformation entity = fetchBySid(sid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
entity.setTransferDate(new DateTime());
entity.setAuditStateKey("003");
entity.setAuditStateValue("已移交");
int i = baseMapper.updateById(entity);
}
return rb.success();
}
/**
* 详情
* @param sid
* @return
*/
public ResultBean<LoanWarrantInformationDetailsVo> detailsInfo(String sid) {
ResultBean<LoanWarrantInformationDetailsVo> rb = ResultBean.fireFail();
LoanWarrantInformationDetailsVo vo = new LoanWarrantInformationDetailsVo();
LoanAuditInfoVo auditInfoVo = getAuditInfo(sid).getData();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
if (null != auditInfoVo) {
BeanUtil.copyProperties(auditInfoVo,vo);
}
LoanWarrantInformation entity = fetchBySid(sid);
if (null != entity) {
if (StringUtils.isNotBlank(entity.getTransferRemarks())) {
vo.setTransferRemarks(entity.getTransferRemarks());
}
if (StringUtils.isNotBlank(entity.getTransferInformation())) {
vo.setTransferInformation(entity.getTransferInformation());
}
if (StringUtils.isNotBlank(entity.getTransferWayKey())) {
vo.setTransferWayKey(entity.getTransferWayKey());
}
if (StringUtils.isNotBlank(entity.getTransferWayValue())) {
vo.setTransferWayValue(entity.getTransferWayValue());
}
if (StringUtils.isNotBlank(entity.getTrackingNo())) {
vo.setTrackingNo(entity.getTrackingNo());
}
if (StringUtils.isNotBlank(entity.getRecipient())) {
vo.setRecipient(entity.getRecipient());
}
if (null != entity.getDeliveryDate()) {
vo.setDeliveryDate(sdf.format(entity.getDeliveryDate()));
}
}
return rb.success().setData(vo);
}
}

42
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/mortgage/AppMortgageInformationTransactDetailsVo.java

@ -0,0 +1,42 @@
package com.yxt.anrui.terminal.api.risk.mortgage;
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 AppMortgageInformationTransactDetailsVo implements Vo {
@ApiModelProperty("业务车辆sid")
@JsonProperty("sid")
private String busVinSid;
@ApiModelProperty("消贷合同编号")
private String contractId;
@ApiModelProperty("贷款人")
@JsonProperty("lenderName")
private String borrowerName;
@ApiModelProperty("车架号")
@JsonProperty("vin")
private String vinNo;
@ApiModelProperty("抵押日期")
@JsonProperty("disbursementDate")
private String mortgageDate;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("登记证 1-2页")
private List<String> registrationFiles1 = new ArrayList<>();
@ApiModelProperty("登记证 3-4页")
private List<String> registrationFiles2 = new ArrayList<>();
@ApiModelProperty("营运证")
private List<String> taxiFiles = new ArrayList<>();
@ApiModelProperty("行驶证")
private List<String> drivingFiles = new ArrayList<>();
}

35
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/mortgage/AppMortgageInformationTransactDto.java

@ -0,0 +1,35 @@
package com.yxt.anrui.terminal.api.risk.mortgage;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/8/28 10:41
*/
@Data
public class AppMortgageInformationTransactDto implements Dto {
@ApiModelProperty("业务车辆sid")
@JsonProperty("sid")
private String busVinSid;
@ApiModelProperty("抵押日期")
@JsonProperty("disbursementDate")
private Date mortgageDate;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("登记证 1-2页")
private List<String> registrationFiles1 = new ArrayList<>();
@ApiModelProperty("登记证 3-4页")
private List<String> registrationFiles2 = new ArrayList<>();
@ApiModelProperty("营运证")
private List<String> taxiFiles = new ArrayList<>();
@ApiModelProperty("行驶证")
private List<String> drivingFiles = new ArrayList<>();
}

28
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/mortgage/AppMortgageInformationTransactQuery.java

@ -0,0 +1,28 @@
package com.yxt.anrui.terminal.api.risk.mortgage;
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 AppMortgageInformationTransactQuery implements Query {
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("“” 全部 1待抵押 2已抵押")
private String type;
@ApiModelProperty("合同编号/贷款人姓名/车架号")
private String names;
@ApiModelProperty("当前组织机构全路径sid")
private String orgPath;
@ApiModelProperty("菜单sid")
private String menuSid;
}

34
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/mortgage/AppMortgageInformationTransactVo.java

@ -0,0 +1,34 @@
package com.yxt.anrui.terminal.api.risk.mortgage;
import com.fasterxml.jackson.annotation.JsonProperty;
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 AppMortgageInformationTransactVo implements Vo {
@ApiModelProperty("抵押日期")
private String disbursementDate;
@ApiModelProperty("业务车辆sid")
private String sid;
@ApiModelProperty("消贷合同编号")
private String contractId;
@ApiModelProperty("分公司")
private String company;
@ApiModelProperty("销售部门")
private String department;
@ApiModelProperty("销售专员")
private String salesman;
@ApiModelProperty("贷款人")
private String lenderName;
@ApiModelProperty("车架号")
private String vin;
@ApiModelProperty("资方")
private String bankName;
private boolean showHandleBtn;
}

66
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/mortgage/MortgageFeign.java

@ -0,0 +1,66 @@
package com.yxt.anrui.terminal.api.risk.mortgage;
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-Mortgage",
name = "anrui-terminal",
path = "/riskcenter/v1/mortgage",
fallback = MortgageFeignFallback.class)
public interface MortgageFeign {
/**
* 根据条件分页查询数据的列表已测试
*
* @param pq
*/
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/getMortgageList")
@ResponseBody
public ResultBean<PagerVo<AppMortgageInformationTransactVo>> getMortgageList(@RequestBody PagerQuery<AppMortgageInformationTransactQuery> pq);
/**
* 保存 抵押办理
*
* @param
*/
@ApiOperation("保存抵押办理")
@PostMapping("/saveMortgageInfo")
@ResponseBody
public ResultBean<String> saveMortgageInfo(@RequestBody AppMortgageInformationTransactDto dto);
/**
* 保存 抵押办理
*
* @param
*/
@ApiOperation("提交")
@PostMapping("/submitMortgageInfo")
@ResponseBody
public ResultBean<String> submitMortgageInfo(@RequestBody AppMortgageInformationTransactDto dto);
/**
* 初始化详情
*
* @param
*/
@ApiOperation("初始化详情")
@GetMapping("/getMortgageInfo")
@ResponseBody
public ResultBean<AppMortgageInformationTransactDetailsVo> getMortgageInfo(@RequestParam("sid") String sid);
}

35
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/mortgage/MortgageFeignFallback.java

@ -0,0 +1,35 @@
package com.yxt.anrui.terminal.api.risk.mortgage;
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 dimengzhe
* @Date 2023/3/21 15:19
* @Description
*/
@Component
public class MortgageFeignFallback implements MortgageFeign {
@Override
public ResultBean<PagerVo<AppMortgageInformationTransactVo>> getMortgageList(PagerQuery<AppMortgageInformationTransactQuery> pq) {
return null;
}
@Override
public ResultBean saveMortgageInfo(AppMortgageInformationTransactDto dto) {
return null;
}
@Override
public ResultBean submitMortgageInfo(AppMortgageInformationTransactDto dto) {
return null;
}
@Override
public ResultBean<AppMortgageInformationTransactDetailsVo> getMortgageInfo(String busVinSid) {
return null;
}
}

45
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/mortgage/MortgageRest.java

@ -0,0 +1,45 @@
package com.yxt.anrui.terminal.biz.risk.mortgage;
import com.yxt.anrui.terminal.api.risk.mortgage.*;
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/mortgage")
public class MortgageRest implements MortgageFeign {
@Autowired
private MortgageService mortgageService;
@Override
public ResultBean<PagerVo<AppMortgageInformationTransactVo>> getMortgageList(PagerQuery<AppMortgageInformationTransactQuery> pq) {
return mortgageService.getMortgageList(pq);
}
@Override
public ResultBean<String> saveMortgageInfo(AppMortgageInformationTransactDto dto) {
return mortgageService.saveMortgageInfo(dto);
}
@Override
public ResultBean<String> submitMortgageInfo(AppMortgageInformationTransactDto dto) {
return mortgageService.submitMortgageInfo(dto);
}
@Override
public ResultBean<AppMortgageInformationTransactDetailsVo> getMortgageInfo(String sid) {
return mortgageService.getMortgageInfo(sid);
}
}

72
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/mortgage/MortgageService.java

@ -0,0 +1,72 @@
package com.yxt.anrui.terminal.biz.risk.mortgage;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.riskcenter.api.loanmortgageinformationtransact.*;
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.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 MortgageService {
@Autowired
private LoanMortgageInformationTransactFeign loanMortgageInformationTransactFeign;
public ResultBean<PagerVo<AppMortgageInformationTransactVo>> getMortgageList(PagerQuery<AppMortgageInformationTransactQuery> pq) {
ResultBean<PagerVo<AppMortgageInformationTransactVo>> rb = ResultBean.fireFail();
PagerQuery<LoanMortgageInformationTransactQuery> query = new PagerQuery<>();
BeanUtil.copyProperties(pq, query);
ResultBean<PagerVo<LoanMortgageInformationTransactVo>> voResultBean = loanMortgageInformationTransactFeign.listPage(query);
PagerVo<AppMortgageInformationTransactVo> vo = new PagerVo<>();
if (voResultBean.getSuccess()) {
PagerVo<LoanMortgageInformationTransactVo> data = voResultBean.getData();
BeanUtil.copyProperties(data, vo);
}
return rb.success().setMsg("当前共查询到" + vo.getTotal() + "条记录").setData(vo);
}
public ResultBean<String> saveMortgageInfo(AppMortgageInformationTransactDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
LoanMortgageInformationTransactDto loanMortgageInformationTransactDto = new LoanMortgageInformationTransactDto();
BeanUtil.copyProperties(dto, loanMortgageInformationTransactDto);
ResultBean<String> resultBean = loanMortgageInformationTransactFeign.saveMortgageInfo(loanMortgageInformationTransactDto);
if (resultBean.getSuccess()) {
return rb.success().setData(resultBean.getData());
}
return rb.success();
}
public ResultBean<String> submitMortgageInfo(AppMortgageInformationTransactDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
LoanMortgageInformationTransactDto loanMortgageInformationTransactDto = new LoanMortgageInformationTransactDto();
BeanUtil.copyProperties(dto, loanMortgageInformationTransactDto);
ResultBean<String> resultBean = loanMortgageInformationTransactFeign.submitMortgageInfo(loanMortgageInformationTransactDto);
if (resultBean.getSuccess()) {
return rb.success().setData(resultBean.getData());
}
return rb.success();
}
public ResultBean<AppMortgageInformationTransactDetailsVo> getMortgageInfo(String sid) {
ResultBean<AppMortgageInformationTransactDetailsVo> rb = ResultBean.fireFail();
AppMortgageInformationTransactDetailsVo vo = new AppMortgageInformationTransactDetailsVo();
ResultBean<LoanMortgageInformationTransactDetailsVo> resultBean = loanMortgageInformationTransactFeign.getMortgageInfo(sid);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
LoanMortgageInformationTransactDetailsVo loanMortgageInformationTransactDetailsVo = resultBean.getData();
BeanUtil.copyProperties(loanMortgageInformationTransactDetailsVo, vo);
return rb.success().setData(vo);
}
}
Loading…
Cancel
Save