Browse Source

Merge remote-tracking branch 'origin/master'

master
yunuo970428 1 year ago
parent
commit
264a921f07
  1. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/HomeKcCust.java
  2. 38
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationService.java
  3. 5
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeign.java
  4. 5
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeignFallback.java
  5. 5
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderRest.java
  6. 5
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeign.java
  7. 5
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeignFallback.java
  8. 3
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.java
  9. 5
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationRest.java
  10. 6
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java
  11. 22
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  12. 3
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.java
  13. 5
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.xml
  14. 25
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRService.java
  15. 1
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java
  16. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitinvestigatecustomer/LoanHomevisitInvestigateCustomer.java
  17. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitinvestigatecustomer/LoanHomevisitInvestigateCustomerDetailsVo.java
  18. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitinvestigatecustomer/LoanHomevisitInvestigateCustomerDto.java
  19. 18
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitprep/DownCarRegisContract.java
  20. 21
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitprep/DownInvoAppForm.java
  21. 9
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDetailsVo.java
  22. 11
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDto.java
  23. 11
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyFeign.java
  24. 74
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesCostAppVo.java
  25. 22
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesVehAppVo.java
  26. 88
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/SecondarySalesAppVo.java
  27. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/CompleteLoanSecondarySalesApplyDto.java
  28. 3
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyNodeQuery.java
  29. 9
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescost/LoanSecondarySalesCost.java
  30. 12
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescost/LoanSecondarySalesCostVo.java
  31. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesveh/LoanSecondarySalesVeh.java
  32. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesveh/LoanSecondarySalesVehVo.java
  33. 1353
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepService.java
  34. 7
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyMapper.xml
  35. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyService.java
  36. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturnvehledger/LoanReturnVehLedgerMapper.java
  37. 10
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturnvehledger/LoanReturnVehLedgerMapper.xml
  38. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturnvehledger/LoanReturnVehLedgerService.java
  39. 5
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.java
  40. 51
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.xml
  41. 7
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyRest.java
  42. 389
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java
  43. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.java
  44. 17
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.xml
  45. 39
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostService.java
  46. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.java
  47. 13
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.xml
  48. 19
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehService.java
  49. 2050
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/cldjht-g.ftl
  50. 2060
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/cldjht.ftl
  51. 520
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/cljszcght.ftl
  52. 3595
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/clmmht.ftl
  53. 617
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/clrzxy.ftl
  54. 2028
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/dgclwts.ftl
  55. 2370
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/gsgddwdbjy.ftl
  56. 1719
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/gsgdhdwdbjy.ftl
  57. 9667
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/hkxy.ftl
  58. 2688
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/jsclqrs.ftl
  59. 1524
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/jsclwts.ftl
  60. 1903
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/kpsqs.ftl
  61. 2
      anrui-system-ui/src/views/flow/havereadList.vue
  62. 67
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/base/common/ItemEditTextInfoCommon.java
  63. 19
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondSalesInitVo.java
  64. 101
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesAppVos.java
  65. 100
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesCostAppVo.java
  66. 64
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesFeign.java
  67. 12
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesFeignFallback.java
  68. 22
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesVehAppVo.java
  69. 24
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/flowable/SecondarySalesDelegateQuery.java
  70. 38
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/flowable/SecondarySalesDto.java
  71. 23
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/flowable/SecondarySalesQuery.java
  72. 45
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/flowable/SecondarySalesTaskQuery.java
  73. 68
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/secondarysales/SecondarySalesRest.java
  74. 252
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/secondarysales/SecondarySalesService.java
  75. 76
      doc/databases/risk_center.sql

2
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/HomeKcCust.java

@ -83,6 +83,8 @@ public class HomeKcCust {
private String accCompAddress;
@ApiModelProperty("实际经营地址")
private String accCompxAddress;
@ApiModelProperty("股东人数")
private String shareNum;
@ApiModelProperty("挂车或上装是否公司采购(0是,1否)")
private String isCompBuy;
}

38
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationService.java

@ -187,14 +187,6 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
public ResultBean saveOrUpdateDto(BaseOutsourcingApplicationDto dto) {
ResultBean rb = ResultBean.fireFail();
String orgPath = "";
if (StringUtils.isNotBlank(dto.getOrgPath())) {
orgPath = dto.getOrgPath();
} else {
//取组织架构的全路径sid
SysStaffOrg sysStaffOrg = sysStaffOrgFeign.getOrgByStaffSid(dto.getStaffSid()).getData();
orgPath = sysStaffOrg.getOrgSidPath();
}
List<BaseOutsourcingApplicationVehicleDto> baseOutsourcingApplicationVehicleDtos = dto.getBaseOutsourcingApplicationVehicleDtos();
CommonAppendix contract = dto.getContract();
String sid = dto.getSid();
@ -208,32 +200,13 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
}
if (StringUtils.isBlank(sid)) {//新增
BaseOutsourcingApplication entity = new BaseOutsourcingApplication();
String billNo = getApplyCode(orgPath);
String billNo = getApplyCode(dto.getOrgPath());
dto.setApplicationCode(billNo);
BeanUtil.copyProperties(dto, entity, "sid");
entity.setApplicationCode(billNo);
entity.setApplicationDate(DateUtil.formatDate(new Date()));
String staffSid = dto.getStaffSid();
ResultBean<List<SysStaffOrgVo>> sysStaffOrgListByStaffSid = sysStaffOrgFeign.getSysStaffOrgListByStaffSid(staffSid);
List<SysStaffOrgVo> data = sysStaffOrgListByStaffSid.getData();
String orgSidPath = "";
for (SysStaffOrgVo datum : data) {
orgSidPath = datum.getOrgSidPath();
String[] split = orgSidPath.split("/");
for (String s : split) {//TODO 封装到组织架构的feign中
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(s);
SysOrganizationVo data1 = sysOrganizationVoResultBean.getData();
Integer isDept = data1.getIsDept();
String psid = data1.getPsid();
if (isDept != null) {
if (isDept == 0 && !psid.equals(0)) {
orgSidPath = s;
break;
}
}
}
}
entity.setUseOrgSid(orgSidPath);
String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()).getData();
entity.setUseOrgSid(useOrgSid);
entity.setCreateBySid(dto.getUserSid());
entity.setNodeState("待提交");
String carBrandSid = dto.getCarBrandSid();
@ -246,10 +219,9 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
String purchasingUnitSid = dto.getPurchasingUnitSid();
String manufacturerCode = baseManufacturerService.fetchBySid(purchasingUnitSid).getManufacturerCode();
entity.setSupplierCode(manufacturerCode);
String useOrgSid = dto.getUseOrgSid();
String orgCode = sysOrganizationFeign.fetchBySid(useOrgSid).getData().getOrgCode();
entity.setOrgCode(orgCode);
entity.setOrgSidPath(orgPath);
entity.setOrgSidPath(dto.getOrgPath());
save(entity);
for (BaseOutsourcingApplicationVehicleDto baseOutsourcingApplicationVehicleDto : baseOutsourcingApplicationVehicleDtos) {
BaseOutsourcingApplicationVehicle baseOutsourcingApplicationVehicle = new BaseOutsourcingApplicationVehicle();
@ -267,7 +239,7 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
}
return rb.success().setMsg("添加成功").setData(entity.getSid());
}
dto.setOrgSidPath(orgPath);
dto.setOrgSidPath(dto.getOrgPath());
updateBySid(dto, sid);
baseOutsourcingApplicationVehicleService.deleteByOutAppSid(sid);
for (BaseOutsourcingApplicationVehicleDto baseOutsourcingApplicationVehicleDto : baseOutsourcingApplicationVehicleDtos) {

5
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeign.java

@ -393,4 +393,9 @@ public interface BusSalesOrderFeign {
@PostMapping("/saveSaleOrderInputLender/{saleOrderSid}/{sid}")
@ResponseBody
ResultBean<SalesLenderVo> saveSaleOrderInputLender(@PathVariable("saleOrderSid") String saleOrderSid, @PathVariable("sid") String sid);
@ApiOperation("查询销售订单价格信息")
@PostMapping("/selectByContractNoOne")
@ResponseBody
ResultBean<BusSalesOrderPrice> selectByContractNoOne(@RequestParam("contractNo") String contractNo);
}

5
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeignFallback.java

@ -366,4 +366,9 @@ public class BusSalesOrderFeignFallback implements BusSalesOrderFeign {
public ResultBean<SalesLenderVo> saveSaleOrderInputLender(String saleOrderSid, String sid) {
return null;
}
@Override
public ResultBean<BusSalesOrderPrice> selectByContractNoOne(String contractNo) {
return null;
}
}

5
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderRest.java

@ -449,4 +449,9 @@ public class BusSalesOrderRest implements BusSalesOrderFeign {
public ResultBean<SalesLenderVo> saveSaleOrderInputLender(String saleOrderSid, String sid) {
return busSalesOrderService.saveSaleOrderInputLender(saleOrderSid,sid);
}
@Override
public ResultBean<BusSalesOrderPrice> selectByContractNoOne(String contractNo) {
return busSalesOrderService.selectByContractNoOne(contractNo);
}
}

5
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeign.java

@ -269,4 +269,9 @@ public interface FinBillApplicationFeign {
@GetMapping("/selectByContractNo")
@ResponseBody
ResultBean<BillApplicationIInfoVoss> selectByContractNo(@RequestParam("contractId") String contractId, @RequestParam("vins") List<String> vins);
@ApiOperation("根据合同号查询")
@GetMapping("/selectByCon")
@ResponseBody
ResultBean<FinBillApplicationDetailsVo> selectByCon(@RequestParam("contractNo") String contractNo);
}

5
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeignFallback.java

@ -281,4 +281,9 @@ public class FinBillApplicationFeignFallback implements FinBillApplicationFeign
public ResultBean<BillApplicationIInfoVoss> selectByContractNo(String contractId, List<String> vins) {
return null;
}
@Override
public ResultBean<FinBillApplicationDetailsVo> selectByCon(String contractNo) {
return null;
}
}

3
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.java

@ -95,4 +95,7 @@ public interface FinBillApplicationMapper extends BaseMapper<FinBillApplication>
BillApplicationIInfoVoss selectByContractNos(String contractId);
VinListVos selectByBus(@Param("contractNo") String contractId,@Param("vinSid") String s);
@Select("select * from fin_bill_application where contractNo = #{contractNo} limit 1")
FinBillApplicationDetailsVo selectByCon(String contractNo);
}

5
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationRest.java

@ -340,4 +340,9 @@ public class FinBillApplicationRest implements FinBillApplicationFeign {
public ResultBean<BillApplicationIInfoVoss> selectByContractNo(String contractId, List<String> vins) {
return finBillApplicationService.selectByContractNo(contractId,vins);
}
@Override
public ResultBean<FinBillApplicationDetailsVo> selectByCon(String contractNo) {
return finBillApplicationService.selectByCon(contractNo);
}
}

6
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java

@ -4779,4 +4779,10 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
billApplicationIInfoVoss.setFinBillTrailers(pcSelBillGcVos);
return rb.success().setData(billApplicationIInfoVoss);
}
public ResultBean<FinBillApplicationDetailsVo> selectByCon(String contractNo) {
ResultBean rb = ResultBean.fireFail();
FinBillApplicationDetailsVo finBillApplicationDetailsVo = baseMapper.selectByCon(contractNo);
return rb.success().setData(finBillApplicationDetailsVo);
}
}

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

@ -3882,17 +3882,17 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
}
//认资金占用费消减平台资金占用费
if (v.getReceivablesName().equals("资金占用费")) {
FinUncollectedReceivablesDetailedJR jr = finUncollectedReceivablesDetailedJRService.fetchBySid(v.getReceivablesSid());
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsFeign.fetchDetails(jr.getBusSid()).getData();
if (planDetails != null) {
if (planDetails.getFund() != null) {
BigDecimal fund = planDetails.getFund();
String subscriptionMoney = v.getSubscriptionMoney();
BigDecimal subtract = fund.subtract(new BigDecimal(subscriptionMoney));
planDetails.setFund(subtract);
loanRepaymentPlanDetailsFeign.updateByEntity(planDetails);
}
}
// FinUncollectedReceivablesDetailedJR jr = finUncollectedReceivablesDetailedJRService.fetchBySid(v.getReceivablesSid());
// LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsFeign.fetchDetails(jr.getBusSid()).getData();
// if (planDetails != null) {
// if (planDetails.getFund() != null) {
// BigDecimal fund = planDetails.getFund();
// String subscriptionMoney = v.getSubscriptionMoney();
// BigDecimal subtract = fund.subtract(new BigDecimal(subscriptionMoney));
// planDetails.setFund(subtract);
// loanRepaymentPlanDetailsFeign.updateByEntity(planDetails);
// }
// }
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();

3
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.java

@ -36,6 +36,7 @@ import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.*;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.DetailsOfReceivablesAndUncollectedItemsJRVo;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJR;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJRQuery;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@ -86,4 +87,6 @@ public interface FinUncollectedReceivablesDetailedJRMapper extends BaseMapper<Fi
@Param("purchaseSystemSid") String purchaseSystemSid);
FinUncollectedReceivablesDetailedJR selectByType(@Param("sid") String sid, @Param("type") String type);
LoanRepaymentPlanDetails selectDetails(String sid);
}

5
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.xml

@ -349,4 +349,9 @@
resultType="com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJR">
select * from anrui_fin.fin_uncollected_receivables_detailed_jr where busSid = #{sid} and payCostTitleValue = #{type}
</select>
<select id="selectDetails"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails">
select * from anrui_riskcenter.loan_repayment_plan_details where sid = #{sid}
</select>
</mapper>

25
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRService.java

@ -35,6 +35,7 @@ import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedR
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJRQuery;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.result.ResultBean;
@ -135,9 +136,27 @@ public class FinUncollectedReceivablesDetailedJRService extends MybatisBaseServi
public ResultBean updateAll(String sid, String type, BigDecimal fundDay) {
ResultBean rb = ResultBean.fireFail();
FinUncollectedReceivablesDetailedJR finUncollectedReceivablesDetailedJR = baseMapper.selectByType(sid, type);
BigDecimal bigDecimal =finUncollectedReceivablesDetailedJR.getReveivableMoney().add(fundDay);
finUncollectedReceivablesDetailedJR.setReveivableMoney(bigDecimal);
baseMapper.updateById(finUncollectedReceivablesDetailedJR);
if (finUncollectedReceivablesDetailedJR == null) {
LoanRepaymentPlanDetails planDetails = baseMapper.selectDetails(sid);
FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR();
jr.setBusSid(planDetails.getSid());
jr.setReveivableMoney(fundDay);
jr.setPayCostTitleKey("006");
jr.setPayCostTitleValue("资金占用费");
jr.setOrgSidPath(planDetails.getOrgSidPath());
jr.setUseOrgName(planDetails.getUseOrgName());
jr.setUseOrgSid(planDetails.getUseOrgSid());
jr.setStaffDeptName(planDetails.getDept());
jr.setStaffName(planDetails.getStaffName());
jr.setStaffDeptSid(planDetails.getDeptSid());
jr.setStaffUserSid(planDetails.getSalesUserSid());
baseMapper.insert(jr);
} else {
BigDecimal bigDecimal = finUncollectedReceivablesDetailedJR.getReveivableMoney().add(fundDay);
finUncollectedReceivablesDetailedJR.setReveivableMoney(bigDecimal);
baseMapper.updateById(finUncollectedReceivablesDetailedJR);
}
return rb.success();
}
}

1
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java

@ -74,6 +74,7 @@ public enum ProcDefEnum {
LOANRETUENINBOUNDAPPLY("交回车辆入库申请", "process_h0i1vnn8:1:7945004"),
LOANSUBLETAPPLY("交回车辆二次转租申请", "process_lu7pdwzs:1:7940004"),
LOANOUTBOUNDVEHAPPLY("交回车辆出库申请", "process_14spbdx8:1:7982504"),
LOANSECONDSALEAPPLY("交车车辆二次销售申请", "process_6kb1z0pe:4:8110004"),
/******************************测试流程id*********************************************/

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitinvestigatecustomer/LoanHomevisitInvestigateCustomer.java

@ -121,6 +121,8 @@ public class LoanHomevisitInvestigateCustomer extends BaseEntity {
private String accCompAddress;
@ApiModelProperty("实际经营地址")
private String accCompxAddress;
@ApiModelProperty("股东人数")
private String shareNum;
@ApiModelProperty("挂车或上装是否公司采购(0是,1否)")
private String isCompBuy;
@ApiModelProperty("001一车一合同 002一贷款人一合同")

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitinvestigatecustomer/LoanHomevisitInvestigateCustomerDetailsVo.java

@ -122,6 +122,8 @@ public class LoanHomevisitInvestigateCustomerDetailsVo implements Vo {
private String accCompAddress;
@ApiModelProperty("实际经营地址")
private String accCompxAddress;
@ApiModelProperty("股东人数")
private String shareNum;
@ApiModelProperty("挂车或上装是否公司采购(0是,1否)")
private String isCompBuy;
@ApiModelProperty("001一车一合同 002一贷款人一合同")

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitinvestigatecustomer/LoanHomevisitInvestigateCustomerDto.java

@ -122,6 +122,8 @@ public class LoanHomevisitInvestigateCustomerDto implements Dto {
private String accCompAddress;
@ApiModelProperty("实际经营地址")
private String accCompxAddress;
@ApiModelProperty("股东人数")
private String shareNum;
@ApiModelProperty("挂车或上装是否公司采购(0是,1否)")
private String isCompBuy;
@ApiModelProperty("001一车一合同 002一贷款人一合同")

18
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitprep/DownCarRegisContract.java

@ -0,0 +1,18 @@
package com.yxt.anrui.riskcenter.api.loanhomevisitprep;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class DownCarRegisContract {
@ApiModelProperty("序号")
private String id;
@ApiModelProperty("品牌")
private String brandName;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("发动机号")
private String fdjNo;
}

21
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitprep/DownInvoAppForm.java

@ -0,0 +1,21 @@
package com.yxt.anrui.riskcenter.api.loanhomevisitprep;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class DownInvoAppForm {
@ApiModelProperty("序号")
private String id;
@ApiModelProperty("车辆名称")
private String modelName;
@ApiModelProperty("数量")
private String num;
@ApiModelProperty("合同单价")
private String dj;
@ApiModelProperty("开票金额")
private String kpje;
@ApiModelProperty("发票类型")
private String fplx;
}

9
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDetailsVo.java

@ -28,8 +28,12 @@ public class LoanSecondarySalesApplyDetailsVo {
private String createDate;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("客户sid")
private String customerSid;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("贷款人sid")
private String loanSid;
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
@ApiModelProperty("资方")
@ -53,7 +57,7 @@ public class LoanSecondarySalesApplyDetailsVo {
@ApiModelProperty("其他车况说明")
private String illustrate;
@ApiModelProperty("车辆照片")
private List<UrlQuery> filesList = new ArrayList<>();
private List<String> filesList = new ArrayList<>();
@ApiModelProperty("已还金额")
private String alRepaidMoney;
@ApiModelProperty("当前逾期金额")
@ -87,5 +91,8 @@ public class LoanSecondarySalesApplyDetailsVo {
private String files;
@ApiModelProperty("销售订单sid")
private String salesOrderSid;
}

11
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDto.java

@ -28,6 +28,10 @@ public class LoanSecondarySalesApplyDto {
private String createDate;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("客户sid")
private String customerSid;
@ApiModelProperty("贷款人sid")
private String loanSid;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("贷款合同编号")
@ -53,7 +57,7 @@ public class LoanSecondarySalesApplyDto {
@ApiModelProperty("其他车况说明")
private String illustrate;
@ApiModelProperty("车辆照片")
private List<UrlQuery> fileList = new ArrayList<>();
private List<String> filesList = new ArrayList<>();
@ApiModelProperty("已还金额")
private String alRepaidMoney;
@ApiModelProperty("当前逾期金额")
@ -78,4 +82,9 @@ public class LoanSecondarySalesApplyDto {
private String sid;
private String userSid;
private String orgPath;
@ApiModelProperty("销售订单sid")
private String salesOrderSid;
}

11
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyFeign.java

@ -12,10 +12,7 @@ import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
@ -42,7 +39,7 @@ public interface LoanSecondarySalesApplyFeign {
@ApiOperation("详情初始化")
@PostMapping("/details")
ResultBean<LoanSecondarySalesApplyDetailsVo> details(LoanSecondarySalesApplyDetailsQuery query);
ResultBean<LoanSecondarySalesApplyDetailsVo> details(@RequestBody LoanSecondarySalesApplyDetailsQuery query);
@ApiOperation("删除/批量删除")
@DeleteMapping("/delBySids")
@ -80,5 +77,9 @@ public interface LoanSecondarySalesApplyFeign {
@PostMapping(value = "/delegate")
public ResultBean delegate(@RequestBody LoanSecondarySalesApplyDelegateQuery query);
@ApiOperation(value = "移动端详情")
@PostMapping(value = "/getAppDetails")
ResultBean<SecondarySalesAppVo> getAppDetails(@RequestParam("sid") String sid);
}

74
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesCostAppVo.java

@ -0,0 +1,74 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply;
import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/29
**/
@Data
public class LoanSecondarySalesCostAppVo {
@ApiModelProperty("欠款合计")
private String arrearsAll;
@ApiModelProperty("贷款保证金")
private String loanDeposit;
@ApiModelProperty("车辆售价")
private String vehPrice;
@ApiModelProperty("催收费用")
private String collectionCost;
@ApiModelProperty("资方结清费用")
private String bankSettleCost;
@ApiModelProperty("资方结清费用承担方")
private String bankSettleCostAssume;
private String bankSettleCostAssumeKey;
@ApiModelProperty("车辆违章费用")
private String vehicleViolationCost;
@ApiModelProperty("车辆违章费用承担方")
private String vehicleViolationCostAssume;
private String vehicleViolationCostAssumeKey;
@ApiModelProperty("年检费")
private String inspectYearCost;
@ApiModelProperty("年检费承担方")
private String inspectYearCostAssume;
private String inspectYearCostAssumeKey;
@ApiModelProperty("保险费")
private String insureCost;
@ApiModelProperty("保险费承担方")
private String insureCostAssume;
private String insureCostAssumeKey;
@ApiModelProperty("过户费")
private String ownershipCost;
@ApiModelProperty("过户费承担方")
private String ownershipCostAssume;
private String ownershipCostAssumeKey;
@ApiModelProperty("停车费")
private String stopCost;
@ApiModelProperty("停车费承担方")
private String stopCostAssume;
private String stopCostAssumeKey;
@ApiModelProperty("其他费用")
private String otherCost;
@ApiModelProperty("其他费用承担方")
private String otherCostAssume;
private String otherCostAssumeKey;
@ApiModelProperty("费用说明")
private String costDescription;
@ApiModelProperty("预计亏损金额")
private String lossPrice;
@ApiModelProperty("后续欠款处置方向")
private String debtDisposal;
@ApiModelProperty("附件")
private List<String> files = new ArrayList<>();
@ApiModelProperty("车辆评估")
private String vehicleEvaluation;
private String filesss;
}

22
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesVehAppVo.java

@ -0,0 +1,22 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/29
**/
@Data
public class LoanSecondarySalesVehAppVo {
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车牌号")
private String vehMark;
@ApiModelProperty("车辆类型")
private String vehType;
@ApiModelProperty("车型")
private String modelName;
}

88
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/SecondarySalesAppVo.java

@ -0,0 +1,88 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply;
import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/29
**/
@Data
public class SecondarySalesAppVo {
@ApiModelProperty("申请部门")
private String createDept;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("申请日期")
private String createDate;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同编号")
private String bankContractNo;
@ApiModelProperty("停放地点")
private String locationName;
@ApiModelProperty("是否年检")
private String inspect;
@ApiModelProperty("年检情况")
private String inspectSituation;
@ApiModelProperty("是否已出保")
private String guaranteed;
@ApiModelProperty("保险情况")
private String insuranceSituation;
@ApiModelProperty("首次登记日期")
private String firstDate;
@ApiModelProperty("当前行驶公里数")
private String kilometerDriven;
@ApiModelProperty("其他车况说明")
private String illustrate;
@ApiModelProperty("车辆照片")
private List<String> filesList = new ArrayList<>();
@ApiModelProperty("已还金额")
private String alRepaidMoney;
@ApiModelProperty("当前逾期金额")
private String currentBeMoney;
@ApiModelProperty("其中资金占用费")
private String wheFundOccMoney;
@ApiModelProperty("未到期金额")
private String unexpiredMoney;
@ApiModelProperty("总期数")
private String nper;
@ApiModelProperty("当前期数")
private String currentPeriod;
@ApiModelProperty("已还金额换算期数")
private String alRepaidMoneyConPeriod;
@ApiModelProperty("逾期金额换算期数")
private String beOverdueMoneyAndPeriod;
@ApiModelProperty("车辆列表")
private List<LoanSecondarySalesVehAppVo> loanSecondarySalesVehVoList = new ArrayList<>();
@ApiModelProperty("费用明细")
private LoanSecondarySalesCostAppVo loanSecondarySalesCost;
@ApiModelProperty("申请人sid")
private String userSid;
private String orgPath;
@ApiModelProperty(value = "任务id")
private String taskId;
@ApiModelProperty(value = "流程实例id")
private String procInstId;
private String files;
@ApiModelProperty("销售订单sid")
private String salesOrderSid;
}

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/CompleteLoanSecondarySalesApplyDto.java

@ -32,4 +32,6 @@ public class CompleteLoanSecondarySalesApplyDto {
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
@ApiModelProperty("车辆评估价格")
private String vehicleEvaluation;
}

3
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyNodeQuery.java

@ -15,4 +15,7 @@ public class LoanSecondarySalesApplyNodeQuery {
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
@ApiModelProperty("车辆评估价格")
private String vehicleEvaluation;
}

9
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescost/LoanSecondarySalesCost.java

@ -29,30 +29,37 @@ public class LoanSecondarySalesCost extends BaseEntity {
private BigDecimal bankSettleCost;
@ApiModelProperty("资方结清费用承担方")
private String bankSettleCostAssume;
private String bankSettleCostAssumeKey;
@ApiModelProperty("车辆违章费用")
private BigDecimal vehicleViolationCost;
@ApiModelProperty("车辆违章费用承担方")
private String vehicleViolationCostAssume;
private String vehicleViolationCostAssumeKey;
@ApiModelProperty("年检费")
private BigDecimal inspectYearCost;
@ApiModelProperty("年检费承担方")
private String inspectYearCostAssume;
private String inspectYearCostAssumeKey;
@ApiModelProperty("保险费")
private BigDecimal insureCost;
@ApiModelProperty("保险费承担方")
private String insureCostAssume;
private String insureCostAssumeKey;
@ApiModelProperty("过户费")
private BigDecimal ownershipCost;
@ApiModelProperty("过户费承担方")
private String ownershipCostAssume;
private String ownershipCostAssumeKey;
@ApiModelProperty("停车费")
private BigDecimal stopCost;
@ApiModelProperty("停车费承担方")
private String stopCostAssume;
private String stopCostAssumeKey;
@ApiModelProperty("其他费用")
private BigDecimal otherCost;
@ApiModelProperty("其他费用承担方")
private String otherCostAssume;
private String otherCostAssumeKey;
@ApiModelProperty("费用说明")
private String costDescription;
@ApiModelProperty("预计亏损金额")
@ -61,6 +68,8 @@ public class LoanSecondarySalesCost extends BaseEntity {
private String debtDisposal;
@ApiModelProperty("附件")
private String files;
@ApiModelProperty("车辆评估")
private BigDecimal vehicleEvaluation;
}

12
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescost/LoanSecondarySalesCostVo.java

@ -28,30 +28,37 @@ public class LoanSecondarySalesCostVo {
private String bankSettleCost;
@ApiModelProperty("资方结清费用承担方")
private String bankSettleCostAssume;
private String bankSettleCostAssumeKey;
@ApiModelProperty("车辆违章费用")
private String vehicleViolationCost;
@ApiModelProperty("车辆违章费用承担方")
private String vehicleViolationCostAssume;
private String vehicleViolationCostAssumeKey;
@ApiModelProperty("年检费")
private String inspectYearCost;
@ApiModelProperty("年检费承担方")
private String inspectYearCostAssume;
private String inspectYearCostAssumeKey;
@ApiModelProperty("保险费")
private String insureCost;
@ApiModelProperty("保险费承担方")
private String insureCostAssume;
private String insureCostAssumeKey;
@ApiModelProperty("过户费")
private String ownershipCost;
@ApiModelProperty("过户费承担方")
private String ownershipCostAssume;
private String ownershipCostAssumeKey;
@ApiModelProperty("停车费")
private String stopCost;
@ApiModelProperty("停车费承担方")
private String stopCostAssume;
private String stopCostAssumeKey;
@ApiModelProperty("其他费用")
private String otherCost;
@ApiModelProperty("其他费用承担方")
private String otherCostAssume;
private String otherCostAssumeKey;
@ApiModelProperty("费用说明")
private String costDescription;
@ApiModelProperty("预计亏损金额")
@ -61,4 +68,9 @@ public class LoanSecondarySalesCostVo {
@ApiModelProperty("附件")
private List<UrlQuery> files = new ArrayList<>();
@ApiModelProperty("车辆评估")
private String vehicleEvaluation;
private String filesss;
}

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesveh/LoanSecondarySalesVeh.java

@ -29,4 +29,6 @@ public class LoanSecondarySalesVeh extends BaseEntity {
private String modelSid;
@ApiModelProperty("配置sid")
private String configSid;
private String busSid;
}

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesveh/LoanSecondarySalesVehVo.java

@ -25,4 +25,6 @@ public class LoanSecondarySalesVehVo {
private String modelSid;
@ApiModelProperty("配置sid")
private String configSid;
private String busSid;
}

1353
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepService.java

File diff suppressed because it is too large

7
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyMapper.xml

@ -144,7 +144,9 @@
la.beOverdueMoneyAndPeriod,
la.busVinSid,
la.files,
la.remarks
la.remarks,
la.useOrgSid,
la.useOrgName
from loan_return_inbound_apply la
where sid = #{sid}
</select>
@ -202,7 +204,8 @@
la.files,
la.remarks,
la.procInstId,
la.taskId,la.orgSidPath orgPath
la.taskId,
la.orgSidPath orgPath
from loan_return_inbound_apply la
where sid = #{sid}
</select>

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyService.java

@ -307,6 +307,8 @@ public class LoanReturnInboundApplyService extends MybatisBaseService<LoanReturn
if (loanReturnInboundApply == null) {
return rb.setMsg("该申请不存在");
}
dto.setUserSid(loanReturnInboundApply.getCreateBySid());
dto.setUseOrgSid(loanReturnInboundApply.getUseOrgSid());
BeanUtil.copyProperties(dto, loanReturnInboundApply, "sid");
List<UrlQuery> filss = dto.getFilesList();
if (!filss.isEmpty()) {

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturnvehledger/LoanReturnVehLedgerMapper.java

@ -23,4 +23,6 @@ public interface LoanReturnVehLedgerMapper extends BaseMapper<LoanReturnVehLedge
BusSalesOrderVehicle selectBusVinSid(String busVinSid);
IPage<LoanReturnVehLedgerVo> selectPageVo(IPage<LoanReturnVehLedger> page, @Param(Constants.WRAPPER) QueryWrapper<LoanReturnVehLedgerQuery> qw);
LoanReturnVehLedger selectByPSid(String sid);
}

10
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturnvehledger/LoanReturnVehLedgerMapper.xml

@ -27,11 +27,17 @@
lv.inboundMoney,
DATE_FORMAT(lv.inboundDate, '%Y-%m-%d') AS inboundDate,
DATE_FORMAT(lv.outboundDate, '%Y-%m-%d') AS outboundDate,
lv.stockState vehicleState,
lv.busSid
lv.stockState vehicleState,
lv.busSid
from loan_return_veh_ledger lv
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectByPSid" resultType="com.yxt.anrui.riskcenter.api.loanreturnvehledger.LoanReturnVehLedger">
select *
from loan_return_veh_ledger
where pSid = #{sid}
</select>
</mapper>

4
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturnvehledger/LoanReturnVehLedgerService.java

@ -260,4 +260,8 @@ public class LoanReturnVehLedgerService extends MybatisBaseService<LoanReturnVeh
loanReturnLedgerVo.setVehicleStateKey(loanReturnVehLedger.getStockStateKey());
return rb.success().setData(loanReturnLedgerVo);
}
public LoanReturnVehLedger selectByPSid(String sid) {
return baseMapper.selectByPSid(sid);
}
}

5
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.java

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApply;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApplyDetailsVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApplyVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.SecondarySalesAppVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -19,11 +20,13 @@ import java.util.Map;
**/
@Mapper
public interface LoanSecondarySalesApplyMapper extends BaseMapper<LoanSecondarySalesApply> {
IPage<LoanSecondarySalesApplyVo> selectPageVo(IPage<LoanSecondarySalesApply> page, @Param(Constants.WRAPPER) QueryWrapper<LoanSecondarySalesApply> qw);
IPage<LoanSecondarySalesApplyVo> selectPageVo(IPage<LoanSecondarySalesApply> page, @Param(Constants.WRAPPER) QueryWrapper<LoanSecondarySalesApply> qw,@Param("vinNo") String vinNo,@Param("vehMark") String vehMark);
int updateFlowFiled(Map<String, Object> beanToMap);
int selectBySid(String join);
LoanSecondarySalesApplyDetailsVo selectDetails(String sid);
SecondarySalesAppVo getAppDetails(String sid);
}

51
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.xml

@ -11,8 +11,10 @@
DATE_FORMAT(la.createTime, '%Y-%m-%d') as createDate,
la.closeDate,
la.loanContractNo,
(select group_concat(lv.vinNo) from loan_secondary_sales_veh lv where lv.mainSid = la.sid) as vinNo,
(select group_concat(lv.vehMark) from loan_secondary_sales_veh lv where lv.mainSid = la.sid) as vehMark,
ss.vinNo,
ss.vehmark,
<!-- (select group_concat(lv.vinNo) from loan_secondary_sales_veh lv where lv.mainSid = la.sid) as vinNo,
(select group_concat(lv.vehMark) from loan_secondary_sales_veh lv where lv.mainSid = la.sid) as vehMark,-->
la.bankName,
la.bankContractNo,
la.customerName,
@ -25,9 +27,18 @@
la.procInstId
from loan_secondary_sales_apply la
left join loan_secondary_sales_cost lc on lc.mainSid = la.sid
left join (select group_concat(lv.vinNo) as vinNo,group_concat(lv.vehMark) as vehmark,lv.mainSid from loan_secondary_sales_veh lv) ss on ss.mainSid = la.sid
<where>
${ew.sqlSegment}
</where>
having 1 = 1
<if test="vinNo != null and vinNo != ''">
and ss.vinNo like concat('%', #{vinNo}, '%')
</if>
<if test="vehMark != null and vehMark != ''">
and ss.vehMark like concat('%', #{vehMark}, '%')
</if>
order by la.createTime desc
</select>
<update id="updateFlowFiled">
@ -83,7 +94,41 @@
la.nper,
la.currentPeriod,
la.alRepaidMoneyConPeriod,
la.beOverdueMoneyAndPeriod
la.beOverdueMoneyAndPeriod,
la.loanSid,
la.customerSid,
la.salesOrderSid
from loan_secondary_sales_apply la
where sid = #{sid}
</select>
<select id="getAppDetails" resultType="com.yxt.anrui.riskcenter.api.loansecondarysalesapply.SecondarySalesAppVo">
select la.createDept,
la.createByName,
DATE_FORMAT(la.createTime, '%Y-%m-%d') as createDate,
la.customerName,
la.loanName,
la.loanContractNo,
la.bankName,
la.bankContractNo,
la.locationName,
la.inspect,
la.inspectSituation,
la.guaranteed,
la.insuranceSituation,
la.firstDate,
la.kilometerDriven,
la.illustrate,
la.files,
la.alRepaidMoney,
la.currentBeMoney,
la.wheFundOccMoney,
la.unexpiredMoney,
la.nper,
la.currentPeriod,
la.alRepaidMoneyConPeriod,
la.beOverdueMoneyAndPeriod,
la.salesOrderSid
from loan_secondary_sales_apply la
where sid = #{sid}
</select>

7
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyRest.java

@ -60,7 +60,7 @@ public class LoanSecondarySalesApplyRest implements LoanSecondarySalesApplyFeign
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId("");
return loanSecondarySalesApplyService.complete(bv);
return loanSecondarySalesApplyService.complete(bv, query.getVehicleEvaluation());
}
@Override
@ -92,4 +92,9 @@ public class LoanSecondarySalesApplyRest implements LoanSecondarySalesApplyFeign
public ResultBean delegate(LoanSecondarySalesApplyDelegateQuery query) {
return loanSecondarySalesApplyService.delegate(query);
}
@Override
public ResultBean<SecondarySalesAppVo> getAppDetails(String sid) {
return loanSecondarySalesApplyService.getAppDetails(sid);
}
}

389
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java

@ -35,12 +35,21 @@ import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTr
import com.yxt.anrui.riskcenter.api.loanreturnvehledger.LoanReturnVehLedger;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.*;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable.*;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCost;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVeh;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
import com.yxt.anrui.riskcenter.api.loansolutionsdetail.LoanSolutionsDetail;
import com.yxt.anrui.riskcenter.biz.loanrestorereportapply.LoanRestoreReportApplyService;
import com.yxt.anrui.riskcenter.biz.loanreturninboundapply.LoanReturnInboundApplyService;
import com.yxt.anrui.riskcenter.biz.loanreturnvehledger.LoanReturnVehLedgerService;
import com.yxt.anrui.riskcenter.biz.loansecondarysalescost.LoanSecondarySalesCostMapper;
import com.yxt.anrui.riskcenter.biz.loansecondarysalescost.LoanSecondarySalesCostService;
import com.yxt.anrui.riskcenter.biz.loansecondarysalesveh.LoanSecondarySalesVehService;
import com.yxt.anrui.riskcenter.biz.loansolutions.LoanSolutionsMapper;
import com.yxt.anrui.riskcenter.biz.loansolutions.LoanSolutionsService;
import com.yxt.anrui.riskcenter.biz.loansolutionsdetail.LoanSolutionsDetailService;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
@ -55,6 +64,7 @@ import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
@ -89,6 +99,16 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService<LoanSecon
private FileUploadComponent fileUploadComponent;
@Autowired
private LoanReturnVehLedgerService loanReturnVehLedgerService;
@Autowired
private LoanReturnInboundApplyService loanReturnInboundApplyService;
@Autowired
private LoanRestoreReportApplyService loanRestoreReportApplyService;
@Autowired
private LoanSolutionsMapper loanSolutionsMapper;
@Autowired
private LoanSolutionsDetailService loanSolutionsDetailService;
@Autowired
private LoanSecondarySalesCostMapper loanSecondarySalesCostMapper;
public PagerVo<LoanSecondarySalesApplyVo> listPageVo(PagerQuery<LoanSecondarySalesApplyQuery> pq) {
LoanSecondarySalesApplyQuery query = pq.getParams();
@ -110,13 +130,6 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService<LoanSecon
if (StringUtils.isNotBlank(query.getLoanContractNo())) {
qw.like("la.loanContractNo", query.getLoanContractNo());
}
//ToDo:车架号
if (StringUtils.isNotBlank(query.getVinNo())) {
}
//车牌号
if (StringUtils.isNotBlank(query.getVehMark())) {
}
//贷款人
if (StringUtils.isNotBlank(query.getLoanName())) {
qw.like("la.loanName", query.getLoanName());
@ -142,6 +155,9 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService<LoanSecon
qw.apply(StringUtils.isNotBlank(query.getCreateTimeStart()), "date_format (la.createTime,'%Y-%m-%d') >= date_format('" + query.getCreateTimeStart() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(query.getCreateTimeEnd()), "date_format (la.createTime,'%Y-%m-%d') <= date_format('" + query.getCreateTimeEnd() + "','%Y-%m-%d')"
);
if (StringUtils.isNotBlank(query.getArrearsAll())) {
qw.like("lc.arrearsAll", query.getArrearsAll());
}
//========================================数据授权开始
if (StringUtils.isNotBlank(query.getMenuUrl())) {
//=======================
@ -183,9 +199,8 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService<LoanSecon
}
}
}
qw.orderByDesc("la.createTime");
IPage<LoanSecondarySalesApply> page = PagerUtil.queryToPage(pq);
IPage<LoanSecondarySalesApplyVo> pagging = baseMapper.selectPageVo(page, qw);
IPage<LoanSecondarySalesApplyVo> pagging = baseMapper.selectPageVo(page, qw, query.getVinNo(), query.getVehMark());
List<LoanSecondarySalesApplyVo> paggingRecords = pagging.getRecords();
paggingRecords.removeAll(Collections.singleton(null));
if (!paggingRecords.isEmpty()) {
@ -207,6 +222,20 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService<LoanSecon
BeanUtil.copyProperties(query, bv);
LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(query.getBusinessSid());
bv.setModelId(loanSecondarySalesApply.getProcDefId());
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
LoanSecondarySalesCost loanSecondarySalesCost = loanSecondarySalesCostMapper.selectMainSid(query.getBusinessSid());
if (loanSecondarySalesCost != null) {
if ((loanSecondarySalesCost.getVehicleEvaluation() == null ? BigDecimal.ZERO : loanSecondarySalesCost.getVehicleEvaluation()).compareTo(loanSecondarySalesCost.getVehPrice()) > 0) {
variables.put("isTrue", true);
} else {
variables.put("isTrue", false);
}
}
appMap.put("sid", query.getBusinessSid());
variables.put("app", appMap);
bv.setFormVariables(variables);
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
List<LoanSecondarySalesApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanSecondarySalesApplyNodeVo.class)).collect(Collectors.toList());
@ -219,6 +248,24 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService<LoanSecon
BeanUtil.copyProperties(query, bv);
LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(query.getBusinessSid());
bv.setModelId(loanSecondarySalesApply.getProcDefId());
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
if ("Activity_0rm74ey".equals(bv.getTaskDefKey())) {//风控处置岗审批
if (StringUtils.isBlank(query.getVehicleEvaluation())) {
return rb.setMsg("请填写评估价格");
}
LoanSecondarySalesCost loanSecondarySalesCost = loanSecondarySalesCostMapper.selectMainSid(query.getBusinessSid());
if (loanSecondarySalesCost != null) {
if (new BigDecimal(query.getVehicleEvaluation()).compareTo(loanSecondarySalesCost.getVehPrice()) > 0) {
variables.put("isTrue", true);
} else {
variables.put("isTrue", false);
}
}
}
appMap.put("sid", query.getBusinessSid());
variables.put("app", appMap);
bv.setFormVariables(variables);
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
List<LoanSecondarySalesApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanSecondarySalesApplyNodeVo.class)).collect(Collectors.toList());
@ -247,6 +294,15 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService<LoanSecon
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
LoanSecondarySalesCost loanSecondarySalesCost = loanSecondarySalesCostMapper.selectMainSid(query.getBusinessSid());
if (loanSecondarySalesCost != null) {
if ((loanSecondarySalesCost.getVehicleEvaluation() == null ? BigDecimal.ZERO : loanSecondarySalesCost.getVehicleEvaluation()).compareTo(loanSecondarySalesCost.getVehPrice()) > 0) {
variables.put("isTrue", true);
} else {
variables.put("isTrue", false);
}
}
flowTaskVo.setValues(variables);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
@ -295,6 +351,20 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService<LoanSecon
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
LoanSecondarySalesCost loanSecondarySalesCost = loanSecondarySalesCostMapper.selectMainSid(query.getBusinessSid());
if (loanSecondarySalesCost != null) {
if ((loanSecondarySalesCost.getVehicleEvaluation() == null ? BigDecimal.ZERO : loanSecondarySalesCost.getVehicleEvaluation()).compareTo(loanSecondarySalesCost.getVehPrice()) > 0) {
variables.put("isTrue", true);
} else {
variables.put("isTrue", false);
}
}
appMap.put("sid", query.getBusinessSid());
variables.put("app", appMap);
flowTaskVo.setValues(variables);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
@ -361,12 +431,28 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService<LoanSecon
return rb.success();
}
public ResultBean complete(BusinessVariables bv) {
public ResultBean complete(BusinessVariables bv, String price) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(businessSid);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
if ("Activity_0rm74ey".equals(bv.getTaskDefKey())) {//风控处置岗审批
if (StringUtils.isBlank(price)) {
return rb.setMsg("请填写评估价格");
}
//保存评估价格
LoanSecondarySalesCost loanSecondarySalesCost = loanSecondarySalesCostMapper.selectMainSid(businessSid);
loanSecondarySalesCost.setVehicleEvaluation(new BigDecimal(price));
loanSecondarySalesCostService.updateById(loanSecondarySalesCost);
if (loanSecondarySalesCost != null) {
if ((loanSecondarySalesCost.getVehicleEvaluation() == null ? BigDecimal.ZERO : loanSecondarySalesCost.getVehicleEvaluation()).compareTo(loanSecondarySalesCost.getVehPrice()) > 0) {
variables.put("isTrue", true);
} else {
variables.put("isTrue", false);
}
}
}
appMap.put("sid", businessSid);
variables.put("app", appMap);
bv.setFormVariables(variables);
@ -417,7 +503,24 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService<LoanSecon
return rb.setMsg("操作失败!提交的数据不一致");
}
//ToDo:验证车辆是否已处置
List<LoanSecondarySalesVehVo> loanSecondarySalesVehVoList = dto.getLoanSecondarySalesVehVoList();
loanSecondarySalesVehVoList.removeAll(Collections.singleton(null));
if (loanSecondarySalesVehVoList.isEmpty()) {
return rb.setMsg("请选择车辆");
}
List<String> vinNoLists = new ArrayList<>();
List<String> chooseSidList = loanSecondarySalesVehVoList.stream().map(v -> v.getBusSid()).collect(Collectors.toList());
for (int i = 0; i < chooseSidList.size(); i++) {
String s = chooseSidList.get(i);
LoanReturnVehLedger loanReturnVehLedger = loanReturnVehLedgerService.fetchBySid(s);
if (!"未处置".equals(loanReturnVehLedger.getDisposal())) {
vinNoLists.add(loanReturnVehLedger.getVinNo());
}
}
vinNoLists.removeAll(Collections.singleton(null));
if (!vinNoLists.isEmpty()) {
return rb.setMsg(String.join(",", vinNoLists) + "车架号处置方式非未处置,不能二次销售");
}
ResultBean<String> resultBean = saveOrUpdateSecondarySales(dto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
@ -436,9 +539,20 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService<LoanSecon
bv.setBusinessSid(businessSid);
bv.setUserSid(dto.getUserSid());
bv.setFormVariables(variables);
List<String> orgPathList = Arrays.asList(dto.getOrgPath().split("/"));
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(orgPathList.get(orgPathList.size() - 1)).getData();
if (sysOrganization == null) {
return rb.setMsg("当前所在的组织机构不存在");
}
if (StringUtils.isBlank(sysOrganization.getManagerSid())) {
// return rb.setMsg("当前所在的组织机构未设置主管人员");
sysOrganization.setManagerSid(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId());
}
String nextNodeUserSids_ = sysOrganization.getManagerSid();
bv.setNextNodeUserSids(nextNodeUserSids_);
if (r == 1) {
//ToDo:流程定义id
bv.setModelId(ProcDefEnum.LOANRETUENINBOUNDAPPLY.getProDefId());
bv.setModelId(ProcDefEnum.LOANSECONDSALEAPPLY.getProDefId());
ResultBean<UpdateFlowFieldVo> voResultBean = flowFeign.startProcess(bv);
if (!voResultBean.getSuccess()) {
return rb.setMsg(voResultBean.getMsg());
@ -482,13 +596,89 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService<LoanSecon
bv.setTaskDefKey(loanSecondarySalesApply.getTaskDefKey());
bv.setComment("重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
return complete(bv, "");
}
return rb;
}
public ResultBean<String> saveOrUpdateSecondarySales(LoanSecondarySalesApplyDto dto) {
return null;
ResultBean<String> rb = ResultBean.fireFail();
String sid = dto.getSid();
if (StringUtils.isBlank(sid)) {//新增
LoanSecondarySalesApply loanSecondarySalesApply = new LoanSecondarySalesApply();
BeanUtil.copyProperties(dto, loanSecondarySalesApply, "sid");
loanSecondarySalesApply.setCreateBySid(dto.getUserSid());
loanSecondarySalesApply.setOrgSidPath(dto.getOrgPath());
String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()).getData();
loanSecondarySalesApply.setUseOrgSid(useOrgSid);
//创建组织使用组织
ResultBean<SysOrganizationVo> organizationResultBean = sysOrganizationFeign.fetchBySid(useOrgSid);
if (organizationResultBean.getData() != null) {
loanSecondarySalesApply.setUseOrgName(organizationResultBean.getData().getName());
}
//申请部门
List<String> orgList = Arrays.asList(dto.getOrgPath().split("/"));
String deptSid = orgList.get(orgList.size() - 1);
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(deptSid);
if (sysOrganizationVoResultBean.getData() != null) {
loanSecondarySalesApply.setCreateDept(sysOrganizationVoResultBean.getData().getName());
loanSecondarySalesApply.setCreateDeptSid(deptSid);
}
//根据用户sid查询人员姓名
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid());
if (!userVoResultBean.getSuccess()) {
return rb.setMsg(userVoResultBean.getMsg());
}
loanSecondarySalesApply.setCreateByName(userVoResultBean.getData().getName());
List<String> filss = dto.getFilesList();
filss.removeAll(Collections.singleton(null));
if (filss.size() > 0) {
if (!filss.isEmpty()) {
String files = String.join(",", filss).replaceAll(fileUploadComponent.getUrlPrefix(), "");
loanSecondarySalesApply.setFiles(files);
}
}
baseMapper.insert(loanSecondarySalesApply);
sid = loanSecondarySalesApply.getSid();
//保存车辆
List<LoanSecondarySalesVehVo> loanSecondarySalesVehVoList = dto.getLoanSecondarySalesVehVoList();
loanSecondarySalesVehVoList.removeAll(Collections.singleton(null));
if (!loanSecondarySalesVehVoList.isEmpty()) {
loanSecondarySalesVehService.saveVeh(loanSecondarySalesVehVoList, sid);
}
LoanSecondarySalesCostVo loanSecondarySalesCost = dto.getLoanSecondarySalesCost();
if (loanSecondarySalesCost != null) {
loanSecondarySalesCostService.saveCost(loanSecondarySalesCost, sid);
}
} else {
LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(sid);
if (loanSecondarySalesApply == null) {
return rb.setMsg("该申请不存在");
}
dto.setUserSid(loanSecondarySalesApply.getCreateBySid());
BeanUtil.copyProperties(dto, loanSecondarySalesApply, "sid");
List<String> filss = dto.getFilesList();
if (!filss.isEmpty()) {
if (!filss.isEmpty()) {
String files = String.join(",", filss).replaceAll(fileUploadComponent.getUrlPrefix(), "");
loanSecondarySalesApply.setFiles(files);
}
} else {
loanSecondarySalesApply.setFiles("");
}
//保存车辆
List<LoanSecondarySalesVehVo> loanSecondarySalesVehVoList = dto.getLoanSecondarySalesVehVoList();
loanSecondarySalesVehVoList.removeAll(Collections.singleton(null));
if (!loanSecondarySalesVehVoList.isEmpty()) {
loanSecondarySalesVehService.saveVeh(loanSecondarySalesVehVoList, sid);
}
LoanSecondarySalesCostVo loanSecondarySalesCost = dto.getLoanSecondarySalesCost();
if (loanSecondarySalesCost != null) {
loanSecondarySalesCostService.saveCost(loanSecondarySalesCost, sid);
}
baseMapper.updateById(loanSecondarySalesApply);
}
return rb.success().setData(sid);
}
private int submitBusinessData(SubmitLoanSecondarySalesApplyDto dto, LoanSecondarySalesApply loanSecondarySalesApply) {
@ -541,14 +731,129 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService<LoanSecon
return rb.setMsg("请选择车辆");
}
String busVinSid = "";
String vinNo = "";
List<String> vinNoLists = new ArrayList<>();
List<String> bankContractNoList = new ArrayList<>();
List<LoanSecondarySalesVehVo> loanSecondarySalesVehVoList = new ArrayList<>();
for (int i = 0; i < chooseSidList.size(); i++) {
LoanSecondarySalesVehVo loanSecondarySalesVehVo = new LoanSecondarySalesVehVo();
String s = chooseSidList.get(i);
LoanReturnVehLedger loanReturnVehLedger = loanReturnVehLedgerService.fetchBySid(s);
if ("未处置".equals(loanReturnVehLedger.getDisposal())) {
if (!"未处置".equals(loanReturnVehLedger.getDisposal())) {
vinNoLists.add(loanReturnVehLedger.getVinNo());
}
LoanReturnInboundApply loanReturnInboundApply = loanReturnInboundApplyService.fetchBySid(loanReturnVehLedger.getBusSid());
if (StringUtils.isNotBlank(loanReturnInboundApply.getBankContractNo())) {
bankContractNoList.add(loanReturnInboundApply.getBankContractNo());
}
busVinSid = loanReturnInboundApply.getBusVinSid();
if ("主车".equals(loanReturnVehLedger.getVehType())) {
if ("未处置".equals(loanReturnVehLedger.getDisposal())) {
loanSecondarySalesVehVo.setBusVinSid(loanReturnVehLedger.getBusVinSid());
loanSecondarySalesVehVo.setVinNo(loanReturnVehLedger.getVinNo());
loanSecondarySalesVehVo.setVehMark(loanReturnVehLedger.getVehMark());
loanSecondarySalesVehVo.setModelName(loanReturnVehLedger.getVehModel());
loanSecondarySalesVehVo.setModelSid(loanReturnVehLedger.getVehModelSid());
loanSecondarySalesVehVo.setConfigSid(loanReturnVehLedger.getConfigSid());
loanSecondarySalesVehVo.setBusVinSid(busVinSid);
loanSecondarySalesVehVo.setBusSid(s);
loanSecondarySalesVehVo.setVehType(loanReturnVehLedger.getVehType());
loanSecondarySalesVehVoList.add(loanSecondarySalesVehVo);
loanSecondarySalesApplyDetailsVo.setCustomerName(loanReturnVehLedger.getCustomer());
loanSecondarySalesApplyDetailsVo.setLoanName(loanReturnVehLedger.getBorrowerName());
loanSecondarySalesApplyDetailsVo.setCustomerSid(loanReturnVehLedger.getCustomerSid());
loanSecondarySalesApplyDetailsVo.setLoanSid(loanReturnVehLedger.getBorrowerSid());
loanSecondarySalesApplyDetailsVo.setLoanContractNo(loanReturnInboundApply.getLoanContractNo());
loanSecondarySalesApplyDetailsVo.setBankName(loanReturnInboundApply.getBankName());
loanSecondarySalesApplyDetailsVo.setBankContractNo(loanReturnInboundApply.getBankContractNo());
loanSecondarySalesApplyDetailsVo.setLocationName(loanReturnVehLedger.getLocation());
loanSecondarySalesApplyDetailsVo.setSalesOrderSid(loanReturnVehLedger.getSaleOrderSid());
loanSecondarySalesApplyDetailsVo.setFirstDate(loanReturnInboundApply.getFirstDate());
if (StringUtils.isNotBlank(loanReturnInboundApply.getFiles())) {
List<UrlQuery> list = new ArrayList<>();
if (StringUtils.isNotBlank(loanReturnInboundApply.getFiles())) {
List<String> fileList = Arrays.asList(loanReturnInboundApply.getFiles().split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList());
loanSecondarySalesApplyDetailsVo.setFilesList(fileList);
}
}
LoanSecondarySalesCostVo loanSecondarySalesCost = new LoanSecondarySalesCostVo();
AlrepaidAndArrVo alrepaidAndArrVo = loanRestoreReportApplyService.getAlrepaidAndArr(busVinSid);
if (alrepaidAndArrVo != null) {
BeanUtil.copyProperties(alrepaidAndArrVo, loanSecondarySalesApplyDetailsVo);
BigDecimal bigDecimal = BigDecimal.ZERO;
if (StringUtils.isNotBlank(alrepaidAndArrVo.getCurrentBeMoney())) {
bigDecimal = bigDecimal.add(new BigDecimal(alrepaidAndArrVo.getCurrentBeMoney()));
}
if (StringUtils.isNotBlank(alrepaidAndArrVo.getUnexpiredMoney())) {
bigDecimal = bigDecimal.add(new BigDecimal(alrepaidAndArrVo.getUnexpiredMoney()));
}
loanSecondarySalesCost.setArrearsAll(bigDecimal.toString());
}
loanSecondarySalesApplyDetailsVo.setLoanSecondarySalesCost(loanSecondarySalesCost);
//根据销售订单查询金额方案
LoanSolutions loanSolutions = loanSolutionsMapper.selectBySaleOrderSid(loanReturnVehLedger.getSaleOrderSid());
if (loanSolutions != null) {
LoanSolutionsDetail loanSolutionsDetail = loanSolutionsDetailService.selectLoanSid(loanSolutions.getSid());
if (loanSolutionsDetail != null) {
loanSecondarySalesCost.setLoanDeposit(loanSolutionsDetail.getBondAmounts().toString());
}
}
}
//根据主车查询挂车信息
LoanReturnVehLedger loanReturnVehLedgerT = loanReturnVehLedgerService.selectByPSid(loanReturnVehLedger.getSid());
if ("未处置".equals(loanReturnVehLedgerT.getDisposal())) {
loanSecondarySalesVehVo = new LoanSecondarySalesVehVo();
loanSecondarySalesVehVo.setVehType(loanReturnVehLedgerT.getVehType());
loanSecondarySalesVehVo.setVehMark(loanReturnVehLedgerT.getVehMark());
loanSecondarySalesVehVo.setVinNo(loanReturnVehLedgerT.getVinNo());
loanSecondarySalesVehVo.setModelName(loanReturnVehLedgerT.getVehModel());
loanSecondarySalesVehVo.setBusSid(s);
loanSecondarySalesVehVoList.add(loanSecondarySalesVehVo);
}
}
if ("挂车".equals(loanReturnVehLedger.getVehType())) {
if ("未处置".equals(loanReturnVehLedger.getDisposal())) {
loanSecondarySalesVehVo = new LoanSecondarySalesVehVo();
loanSecondarySalesVehVo.setVehType(loanReturnVehLedger.getVehType());
loanSecondarySalesVehVo.setVehMark(loanReturnVehLedger.getVehMark());
loanSecondarySalesVehVo.setVinNo(loanReturnVehLedger.getVinNo());
loanSecondarySalesVehVo.setModelName(loanReturnVehLedger.getVehModel());
loanSecondarySalesVehVo.setBusSid(s);
loanSecondarySalesVehVoList.add(loanSecondarySalesVehVo);
loanSecondarySalesApplyDetailsVo.setCustomerName(loanReturnVehLedger.getCustomer());
loanSecondarySalesApplyDetailsVo.setLoanName(loanReturnVehLedger.getBorrowerName());
loanSecondarySalesApplyDetailsVo.setCustomerSid(loanReturnVehLedger.getCustomerSid());
loanSecondarySalesApplyDetailsVo.setLoanSid(loanReturnVehLedger.getBorrowerSid());
loanSecondarySalesApplyDetailsVo.setLoanContractNo(loanReturnInboundApply.getLoanContractNo());
loanSecondarySalesApplyDetailsVo.setBankName(loanReturnInboundApply.getBankName());
loanSecondarySalesApplyDetailsVo.setBankContractNo(loanReturnInboundApply.getBankContractNo());
loanSecondarySalesApplyDetailsVo.setLocationName(loanReturnVehLedger.getLocation());
loanSecondarySalesApplyDetailsVo.setSalesOrderSid(loanReturnVehLedger.getSaleOrderSid());
AlrepaidAndArrVo alrepaidAndArrVo = loanRestoreReportApplyService.getAlrepaidAndArr(busVinSid);
if (alrepaidAndArrVo != null) {
BeanUtil.copyProperties(alrepaidAndArrVo, loanSecondarySalesApplyDetailsVo);
}
}
}
}
vinNoLists.removeAll(Collections.singleton(null));
if (!vinNoLists.isEmpty()) {
return rb.setMsg(String.join(",", vinNoLists) + "车架号处置方式非未处置,不能二次销售");
}
loanSecondarySalesVehVoList.removeAll(Collections.singleton(null));
//去重车架号
loanSecondarySalesVehVoList = loanSecondarySalesVehVoList.stream()
.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getVinNo()))), ArrayList::new));
Set<String> set = new HashSet<>(bankContractNoList); // 创建HashSet对象,自动去重
List<String> distinctList = new ArrayList<>(set);
distinctList.removeAll(Collections.singleton(null));
if (distinctList.size() != 1) {
return rb.setMsg("请选择相同资方合同编号的车辆");
}
loanSecondarySalesApplyDetailsVo.setLoanSecondarySalesVehVoList(loanSecondarySalesVehVoList);
//根据用户查询发起人、发起部门、发起日期为当前日期
String deptName = "";
String deptSid = "";
@ -594,12 +899,7 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService<LoanSecon
List<UrlQuery> list = new ArrayList<>();
if (StringUtils.isNotBlank(files)) {
List<String> fileList = Arrays.asList(files.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList());
for (int i = 0; i < fileList.size(); i++) {
UrlQuery urlQuery = new UrlQuery();
urlQuery.setUrl(fileList.get(i));
list.add(urlQuery);
}
loanSecondarySalesApplyDetailsVo.setFilesList(list);
loanSecondarySalesApplyDetailsVo.setFilesList(fileList);
}
loanSecondarySalesApplyDetailsVo.setOrgPath(loanSecondarySalesApply.getOrgSidPath());
@ -613,8 +913,53 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService<LoanSecon
loanSecondarySalesApplyDetailsVo.setLoanSecondarySalesVehVoList(loanSecondarySalesVehVoList);
}
LoanSecondarySalesCostVo loanSecondarySalesCost = loanSecondarySalesCostService.selectByMainSid(sid);
if (loanSecondarySalesCost != null) {
String filesss = loanSecondarySalesCost.getFilesss();
List<UrlQuery> lists = new ArrayList<>();
if (StringUtils.isNotBlank(filesss)) {
List<String> fileList = Arrays.asList(filesss.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList());
for (int i = 0; i < fileList.size(); i++) {
UrlQuery urlQuery = new UrlQuery();
urlQuery.setUrl(fileList.get(i));
lists.add(urlQuery);
}
loanSecondarySalesCost.setFiles(lists);
}
}
loanSecondarySalesApplyDetailsVo.setLoanSecondarySalesCost(loanSecondarySalesCost);
}
return rb.success().setData(loanSecondarySalesApplyDetailsVo);
}
public ResultBean<SecondarySalesAppVo> getAppDetails(String sid) {
ResultBean<SecondarySalesAppVo> rb = ResultBean.fireFail();
LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(sid);
if (loanSecondarySalesApply == null) {
return rb.setMsg("该申请不存在");
}
SecondarySalesAppVo secondarySalesAppVo = baseMapper.getAppDetails(sid);
if (StringUtils.isNotBlank(secondarySalesAppVo.getFiles())) {
List<String> fileList = Arrays.asList(secondarySalesAppVo.getFiles().split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList());
secondarySalesAppVo.setFilesList(fileList);
}
secondarySalesAppVo.setOrgPath(loanSecondarySalesApply.getOrgSidPath());
secondarySalesAppVo.setUserSid(loanSecondarySalesApply.getCreateBySid());
secondarySalesAppVo.setProcInstId(loanSecondarySalesApply.getProcInstId());
secondarySalesAppVo.setTaskId(loanSecondarySalesApply.getTaskId());
List<LoanSecondarySalesVehAppVo> loanSecondarySalesVehVoList = loanSecondarySalesVehService.selectByMainSidApp(sid);
loanSecondarySalesVehVoList.removeAll(Collections.singleton(null));
if (!loanSecondarySalesVehVoList.isEmpty()) {
secondarySalesAppVo.setLoanSecondarySalesVehVoList(loanSecondarySalesVehVoList);
}
LoanSecondarySalesCostAppVo loanSecondarySalesCost = loanSecondarySalesCostService.selectByMainSidApp(sid);
if (loanSecondarySalesCost != null) {
String filesss = loanSecondarySalesCost.getFilesss();
if (StringUtils.isNotBlank(filesss)) {
List<String> fileList = Arrays.asList(filesss.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList());
loanSecondarySalesCost.setFiles(fileList);
}
}
secondarySalesAppVo.setLoanSecondarySalesCost(loanSecondarySalesCost);
return rb.success().setData(secondarySalesAppVo);
}
}

4
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.java

@ -1,6 +1,7 @@
package com.yxt.anrui.riskcenter.biz.loansecondarysalescost;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesCostAppVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCost;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo;
import org.apache.ibatis.annotations.Mapper;
@ -15,4 +16,7 @@ public interface LoanSecondarySalesCostMapper extends BaseMapper<LoanSecondarySa
int deleteByMainSid(String s);
LoanSecondarySalesCostVo selectByMainSid(String sid);
LoanSecondarySalesCost selectMainSid(String sid);
LoanSecondarySalesCostAppVo selectByMainSidApp(String sid);
}

17
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.xml

@ -3,14 +3,27 @@
<mapper namespace="com.yxt.anrui.riskcenter.biz.loansecondarysalescost.LoanSecondarySalesCostMapper">
<delete id="deleteByMainSid">
delete
from loan_secondary_sales_veh
from loan_secondary_sales_cost
where mainSid = #{s}
</delete>
<select id="selectByMainSid"
resultType="com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo">
SELECT *
SELECT *,files filesss
FROM loan_secondary_sales_cost
where mainSid = #{sid}
</select>
<select id="selectMainSid" resultType="com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCost">
select *
from loan_secondary_sales_cost
where mainSid = #{sid}
</select>
<select id="selectByMainSidApp"
resultType="com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesCostAppVo">
select *,files filesss
from loan_secondary_sales_cost
where mainSid = #{sid}
</select>
</mapper>

39
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostService.java

@ -1,10 +1,19 @@
package com.yxt.anrui.riskcenter.biz.loansecondarysalescost;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesCostAppVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCost;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo;
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.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
/**
* @description:
* @author: dimengzhe
@ -12,6 +21,10 @@ import org.springframework.stereotype.Service;
**/
@Service
public class LoanSecondarySalesCostService extends MybatisBaseService<LoanSecondarySalesCostMapper, LoanSecondarySalesCost> {
@Autowired
private FileUploadComponent fileUploadComponent;
public int deleteByMainSid(String s) {
return baseMapper.deleteByMainSid(s);
}
@ -19,4 +32,30 @@ public class LoanSecondarySalesCostService extends MybatisBaseService<LoanSecond
public LoanSecondarySalesCostVo selectByMainSid(String sid) {
return baseMapper.selectByMainSid(sid);
}
public void saveCost(LoanSecondarySalesCostVo loanSecondarySalesCost, String sid) {
baseMapper.deleteByMainSid(sid);
LoanSecondarySalesCost loanSecondarySalesCost1 = new LoanSecondarySalesCost();
BeanUtil.copyProperties(loanSecondarySalesCost, loanSecondarySalesCost1);
loanSecondarySalesCost1.setMainSid(sid);
List<UrlQuery> filss = loanSecondarySalesCost.getFiles();
filss.removeAll(Collections.singleton(null));
if (!filss.isEmpty()) {
List<String> filesList = filss.stream().map(v -> v.getUrl()).collect(Collectors.toList());
filesList.removeAll(Collections.singleton(null));
if (!filesList.isEmpty()) {
String files = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), "");
loanSecondarySalesCost1.setFiles(files);
}
} else {
loanSecondarySalesCost1.setFiles("");
}
baseMapper.insert(loanSecondarySalesCost1);
}
public LoanSecondarySalesCostAppVo selectByMainSidApp(String sid) {
return baseMapper.selectByMainSidApp(sid);
}
}

3
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.java

@ -1,6 +1,7 @@
package com.yxt.anrui.riskcenter.biz.loansecondarysalesveh;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesVehAppVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVeh;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo;
import org.apache.ibatis.annotations.Mapper;
@ -17,4 +18,6 @@ public interface LoanSecondarySalesVehMapper extends BaseMapper<LoanSecondarySal
int deleteByMainSid(String s);
List<LoanSecondarySalesVehVo> selectByMainSid(String sid);
List<LoanSecondarySalesVehAppVo> selectByMainSidApp(String sid);
}

13
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.xml

@ -15,7 +15,18 @@
lv.modelName,
lv.busVinSid,
lv.modelSid,
lv.configSid
lv.configSid,
lv.busSid
from loan_secondary_sales_veh lv
where mainSid = #{sid}
</select>
<select id="selectByMainSidApp"
resultType="com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesVehAppVo">
select lv.vinNo,
lv.vehMark,
lv.vehType,
lv.modelName
from loan_secondary_sales_veh lv
where mainSid = #{sid}
</select>

19
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehService.java

@ -1,5 +1,7 @@
package com.yxt.anrui.riskcenter.biz.loansecondarysalesveh;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesVehAppVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVeh;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo;
import com.yxt.common.base.service.MybatisBaseService;
@ -21,4 +23,21 @@ public class LoanSecondarySalesVehService extends MybatisBaseService<LoanSeconda
public List<LoanSecondarySalesVehVo> selectByMainSid(String sid) {
return baseMapper.selectByMainSid(sid);
}
public void saveVeh(List<LoanSecondarySalesVehVo> loanSecondarySalesVehVoList, String sid) {
//先删除
baseMapper.deleteByMainSid(sid);
//保存
for (int i = 0; i < loanSecondarySalesVehVoList.size(); i++) {
LoanSecondarySalesVehVo loanSecondarySalesVehVo = loanSecondarySalesVehVoList.get(i);
LoanSecondarySalesVeh loanSecondarySalesVeh = new LoanSecondarySalesVeh();
BeanUtil.copyProperties(loanSecondarySalesVehVo, loanSecondarySalesVeh, "sid");
loanSecondarySalesVeh.setMainSid(sid);
baseMapper.insert(loanSecondarySalesVeh);
}
}
public List<LoanSecondarySalesVehAppVo> selectByMainSidApp(String sid) {
return baseMapper.selectByMainSidApp(sid);
}
}

2050
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/cldjht-g.ftl

File diff suppressed because it is too large

2060
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/cldjht.ftl

File diff suppressed because it is too large

520
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/cljszcght.ftl

File diff suppressed because it is too large

3595
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/clmmht.ftl

File diff suppressed because it is too large

617
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/clrzxy.ftl

File diff suppressed because it is too large

2028
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/dgclwts.ftl

File diff suppressed because it is too large

2370
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/gsgddwdbjy.ftl

File diff suppressed because it is too large

1719
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/gsgdhdwdbjy.ftl

File diff suppressed because it is too large

9667
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/hkxy.ftl

File diff suppressed because it is too large

2688
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/jsclqrs.ftl

File diff suppressed because it is too large

1524
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/jsclwts.ftl

File diff suppressed because it is too large

1903
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/kpsqs.ftl

File diff suppressed because it is too large

2
anrui-system-ui/src/views/flow/havereadList.vue

@ -251,7 +251,7 @@ export default {
}
selectUrl(this.selectUrl_list).then((response) => {
if (response.success && response.data.url !== '') {
// this.url = 'http://192.168.1.103:9531' + response.data.url + '?token=' + getStorage() + '&data=' + encodeURI((JSON.stringify(parameter_list)))
// this.url = 'http://192.168.0.109:9531' + response.data.url + '?token=' + getStorage() + '&data=' + encodeURI((JSON.stringify(parameter_list)))
this.url = 'http://anrui.yyundong.com' + response.data.url + '?token=' + getStorage() + '&data=' + encodeURI((JSON.stringify(parameter_list)))
// this.url = 'http://120.46.172.184' + response.data.url + '?token=' + getStorage() + '&data=' + encodeURI((JSON.stringify(parameter_list)))
} else if (response.success && response.data.url === '') {

67
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/base/common/ItemEditTextInfoCommon.java

@ -0,0 +1,67 @@
package com.yxt.anrui.terminal.api.base.common;
import java.util.List;
public class ItemEditTextInfoCommon {
// 标题 如:身份证
private String title;
// 类型 1(上传图片)
private int type;
// 是否可空, 可不填 true
private boolean nullAble;
// 保存
private String key;
// 保存图片使用 type=1
private List<String> filesPath;
// 保存文本使用
private String text;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public boolean isNullAble() {
return nullAble;
}
public void setNullAble(boolean nullAble) {
this.nullAble = nullAble;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public List<String> getFilesPath() {
return filesPath;
}
public void setFilesPath(List<String> filesPath) {
this.filesPath = filesPath;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}

19
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondSalesInitVo.java

@ -0,0 +1,19 @@
package com.yxt.anrui.terminal.api.risk.secondarysales;
import com.yxt.anrui.terminal.api.base.common.ItemEditTextInfoCommon;
import lombok.Data;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/29
**/
@Data
public class SecondSalesInitVo {
private String title;
private List<ItemEditTextInfoCommon> list;
}

101
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesAppVos.java

@ -0,0 +1,101 @@
package com.yxt.anrui.terminal.api.risk.secondarysales;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.anrui.terminal.api.base.common.CarModelVo;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/29
**/
@Data
public class SecondarySalesAppVos {
private String publishInfo;
@ApiModelProperty("申请部门")
@JsonIgnore
private String createDept;
@ApiModelProperty("申请人")
@JsonIgnore
private String createByName;
@ApiModelProperty("申请日期")
private String createDate;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同编号")
private String bankContractNo;
@ApiModelProperty("停放地点")
private String locationName;
@ApiModelProperty("是否年检")
private String inspect;
@ApiModelProperty("年检情况")
private String inspectSituation;
@ApiModelProperty("是否已出保")
private String guaranteed;
@ApiModelProperty("保险情况")
private String insuranceSituation;
@ApiModelProperty("首次登记日期")
private String firstDate;
@ApiModelProperty("当前行驶公里数")
private String kilometerDriven;
@ApiModelProperty("其他车况说明")
private String illustrate;
@ApiModelProperty("车辆照片")
private List<String> filesList = new ArrayList<>();
@ApiModelProperty("已还金额")
private String alRepaidMoney;
@ApiModelProperty("当前逾期金额")
@JsonIgnore
private String currentBeMoney;
@ApiModelProperty("其中资金占用费")
@JsonIgnore
private String wheFundOccMoney;
@ApiModelProperty("未到期金额")
private String unexpiredMoney;
@ApiModelProperty("总期数")
@JsonIgnore
private String nper;
@ApiModelProperty("当前期数")
@JsonIgnore
private String currentPeriod;
@ApiModelProperty("已还金额换算期数")
private String alRepaidMoneyConPeriod;
@ApiModelProperty("逾期金额换算期数")
private String beOverdueMoneyAndPeriod;
@ApiModelProperty("当前逾期金额/其中资金占用费")
private String yqzjzyMoney;
@ApiModelProperty("总期数/当前期数")
private String qsCount;
@ApiModelProperty("车辆列表")
private List<SecondarySalesVehAppVo> loanSecondarySalesVehVoList = new ArrayList<>();
@ApiModelProperty("费用明细")
private SecondarySalesCostAppVo loanSecondarySalesCost;
@ApiModelProperty("申请人sid")
private String userSid;
private String orgPath;
@ApiModelProperty(value = "任务id")
private String taskId;
@ApiModelProperty(value = "流程实例id")
private String procInstId;
private String files;
@ApiModelProperty("销售订单sid")
private String salesOrderSid;
private CarModelVo jrfa;
}

100
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesCostAppVo.java

@ -0,0 +1,100 @@
package com.yxt.anrui.terminal.api.risk.secondarysales;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/29
**/
@Data
public class SecondarySalesCostAppVo {
@ApiModelProperty("欠款合计")
private String arrearsAll;
@ApiModelProperty("贷款保证金")
private String loanDeposit;
@ApiModelProperty("车辆售价")
private String vehPrice;
@ApiModelProperty("催收费用")
private String collectionCost;
@ApiModelProperty("资方结清费用")
@JsonIgnore
private String bankSettleCost;
@ApiModelProperty("资方结清费用承担方")
@JsonIgnore
private String bankSettleCostAssume;
@JsonIgnore
private String bankSettleCostAssumeKey;
private String bankSettleCostAssumeDetails;
@ApiModelProperty("车辆违章费用")
@JsonIgnore
private String vehicleViolationCost;
@ApiModelProperty("车辆违章费用承担方")
@JsonIgnore
private String vehicleViolationCostAssume;
@JsonIgnore
private String vehicleViolationCostAssumeKey;
private String vehicleViolationCostAssumeDetails;
@ApiModelProperty("年检费")
@JsonIgnore
private String inspectYearCost;
@ApiModelProperty("年检费承担方")
@JsonIgnore
private String inspectYearCostAssume;
@JsonIgnore
private String inspectYearCostAssumeKey;
private String inspectYearCostAssumeDetails;
@ApiModelProperty("保险费")
@JsonIgnore
private String insureCost;
@ApiModelProperty("保险费承担方")
@JsonIgnore
private String insureCostAssume;
@JsonIgnore
private String insureCostAssumeKey;
private String insureCostAssumeDetails;
@ApiModelProperty("过户费")
@JsonIgnore
private String ownershipCost;
@ApiModelProperty("过户费承担方")
@JsonIgnore
private String ownershipCostAssume;
@JsonIgnore
private String ownershipCostAssumeKey;
private String ownershipCostAssumeDetails;
@ApiModelProperty("停车费")
@JsonIgnore
private String stopCost;
@ApiModelProperty("停车费承担方")
@JsonIgnore
private String stopCostAssume;
@JsonIgnore
private String stopCostAssumeKey;
private String stopCostAssumeDetails;
@ApiModelProperty("其他费用")
@JsonIgnore
private String otherCost;
@ApiModelProperty("其他费用承担方")
@JsonIgnore
private String otherCostAssume;
@JsonIgnore
private String otherCostAssumeKey;
private String otherCostAssumeDetails;
@ApiModelProperty("费用说明")
private String costDescription;
@ApiModelProperty("预计亏损金额")
private String lossPrice;
@ApiModelProperty("后续欠款处置方向")
private String debtDisposal;
@ApiModelProperty("附件")
private List<String> files = new ArrayList<>();
@ApiModelProperty("车辆评估")
private String vehicleEvaluation;
}

64
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesFeign.java

@ -0,0 +1,64 @@
package com.yxt.anrui.terminal.api.risk.secondarysales;
import com.yxt.anrui.terminal.api.risk.secondarysales.flowable.SecondarySalesDelegateQuery;
import com.yxt.anrui.terminal.api.risk.secondarysales.flowable.SecondarySalesDto;
import com.yxt.anrui.terminal.api.risk.secondarysales.flowable.SecondarySalesQuery;
import com.yxt.anrui.terminal.api.risk.secondarysales.flowable.SecondarySalesTaskQuery;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/29
**/
@FeignClient(
contextId = "terminal-SecondarySales",
name = "anrui-terminal",
path = "/risk/v1/SecondarySales",
fallback = SecondarySalesFeignFallback.class)
public interface SecondarySalesFeign {
@ApiOperation("办理")
@PutMapping("/agreeSecondarySales")
@ResponseBody
ResultBean agreeSecondarySales(@RequestBody SecondarySalesDto dto);
@ApiOperation("驳回")
@PutMapping("/rejectSecondarySales")
@ResponseBody
ResultBean rejectSecondarySales(@RequestBody SecondarySalesTaskQuery query);
@ApiOperation("撤回")
@PutMapping("/recallSecondarySales")
@ResponseBody
ResultBean recallSecondarySales(@RequestBody SecondarySalesTaskQuery query);
@ApiOperation("终止")
@PutMapping("/stopSecondarySales")
@ResponseBody
ResultBean stopSecondarySales(@RequestBody SecondarySalesTaskQuery query);
@ApiOperation("获取流程操作标题")
@GetMapping("/getFlowOperateTitle")
@ResponseBody
ResultBean<String> getFlowOperateTitle(@SpringQueryMap SecondarySalesQuery query);
@ApiOperation("详情")
@GetMapping("/getSecondarySales/{sid}")
@ResponseBody
ResultBean<SecondarySalesAppVos> getSecondarySales(@PathVariable("sid") String sid);
@ApiOperation(value = "加签")
@PutMapping(value = "/delegate")
@ResponseBody
public ResultBean delegate(@RequestBody SecondarySalesDelegateQuery delegateQuery);
@ApiOperation(value = "特殊环节初始化")
@GetMapping(value = "/getFlowOperateTitleBy")
@ResponseBody
ResultBean<SecondSalesInitVo> getFlowOperateTitleBy(@SpringQueryMap SecondarySalesQuery query);
}

12
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesFeignFallback.java

@ -0,0 +1,12 @@
package com.yxt.anrui.terminal.api.risk.secondarysales;
import org.springframework.stereotype.Component;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/29
**/
@Component
public class SecondarySalesFeignFallback {
}

22
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesVehAppVo.java

@ -0,0 +1,22 @@
package com.yxt.anrui.terminal.api.risk.secondarysales;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/29
**/
@Data
public class SecondarySalesVehAppVo {
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车牌号")
private String vehMark;
@ApiModelProperty("车辆类型")
private String vehType;
@ApiModelProperty("车型")
private String modelName;
}

24
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/flowable/SecondarySalesDelegateQuery.java

@ -0,0 +1,24 @@
package com.yxt.anrui.terminal.api.risk.secondarysales.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/29
**/
@Data
public class SecondarySalesDelegateQuery {
private String userSid;
@ApiModelProperty("流程实例id")
@JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty("任务Id")
private String taskId;
@ApiModelProperty("审批人sid")
private String assignee;
@ApiModelProperty("填写意见")
private String views;
}

38
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/flowable/SecondarySalesDto.java

@ -0,0 +1,38 @@
package com.yxt.anrui.terminal.api.risk.secondarysales.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/29
**/
@Data
public class SecondarySalesDto {
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id")
@NotBlank(message = "参数错误:procInsId")
@JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty("车辆评估价格")
private String vehicleEvaluation;
}

23
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/flowable/SecondarySalesQuery.java

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

45
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/flowable/SecondarySalesTaskQuery.java

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

68
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/secondarysales/SecondarySalesRest.java

@ -0,0 +1,68 @@
package com.yxt.anrui.terminal.biz.risk.secondarysales;
import com.yxt.anrui.terminal.api.risk.secondarysales.SecondSalesInitVo;
import com.yxt.anrui.terminal.api.risk.secondarysales.SecondarySalesAppVos;
import com.yxt.anrui.terminal.api.risk.secondarysales.SecondarySalesFeign;
import com.yxt.anrui.terminal.api.risk.secondarysales.flowable.SecondarySalesDelegateQuery;
import com.yxt.anrui.terminal.api.risk.secondarysales.flowable.SecondarySalesDto;
import com.yxt.anrui.terminal.api.risk.secondarysales.flowable.SecondarySalesQuery;
import com.yxt.anrui.terminal.api.risk.secondarysales.flowable.SecondarySalesTaskQuery;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/29
**/
@Controller
@RequestMapping("/risk/v1/SecondarySales")
@Api(tags = "交回车辆二次销售审批")
public class SecondarySalesRest implements SecondarySalesFeign {
@Autowired
private SecondarySalesService secondarySalesService;
@Override
public ResultBean agreeSecondarySales(SecondarySalesDto dto) {
return secondarySalesService.agreeSecondarySales(dto);
}
@Override
public ResultBean rejectSecondarySales(SecondarySalesTaskQuery query) {
return secondarySalesService.rejectSecondarySales(query);
}
@Override
public ResultBean recallSecondarySales(SecondarySalesTaskQuery query) {
return secondarySalesService.recallSecondarySales(query);
}
@Override
public ResultBean stopSecondarySales(SecondarySalesTaskQuery query) {
return secondarySalesService.stopSecondarySales(query);
}
@Override
public ResultBean<String> getFlowOperateTitle(SecondarySalesQuery query) {
return secondarySalesService.getFlowOperateTitle(query);
}
@Override
public ResultBean<SecondarySalesAppVos> getSecondarySales(String sid) {
return secondarySalesService.getSecondarySales(sid);
}
@Override
public ResultBean delegate(SecondarySalesDelegateQuery delegateQuery) {
return secondarySalesService.delegate(delegateQuery);
}
@Override
public ResultBean<SecondSalesInitVo> getFlowOperateTitleBy(SecondarySalesQuery query) {
return secondarySalesService.getFlowOperateTitleBy(query);
}
}

252
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/secondarysales/SecondarySalesService.java

@ -0,0 +1,252 @@
package com.yxt.anrui.terminal.biz.risk.secondarysales;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.yxt.anrui.fin.api.finbillfile.FinBillFileVo;
import com.yxt.anrui.portal.api.appsubsetversion.AppSubVersionVo;
import com.yxt.anrui.riskcenter.api.loanreturninboundapply.ReturnAppVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApplyFeign;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.SecondarySalesAppVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable.*;
import com.yxt.anrui.terminal.api.autoservice.advanceInvoice.ItemEditTextInfo;
import com.yxt.anrui.terminal.api.base.common.CarModelVo;
import com.yxt.anrui.terminal.api.base.common.ItemEditTextInfoCommon;
import com.yxt.anrui.terminal.api.risk.returninbound.ReturnInboundAppVo;
import com.yxt.anrui.terminal.api.risk.secondarysales.SecondSalesInitVo;
import com.yxt.anrui.terminal.api.risk.secondarysales.SecondarySalesAppVos;
import com.yxt.anrui.terminal.api.risk.secondarysales.SecondarySalesCostAppVo;
import com.yxt.anrui.terminal.api.risk.secondarysales.flowable.SecondarySalesDelegateQuery;
import com.yxt.anrui.terminal.api.risk.secondarysales.flowable.SecondarySalesDto;
import com.yxt.anrui.terminal.api.risk.secondarysales.flowable.SecondarySalesQuery;
import com.yxt.anrui.terminal.api.risk.secondarysales.flowable.SecondarySalesTaskQuery;
import com.yxt.anrui.terminal.api.supplychain.vehicleApply.VehicleApplyCarPageVo;
import com.yxt.anrui.terminal.biz.base.common.CommonService;
import com.yxt.common.core.result.ResultBean;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/29
**/
@Service
public class SecondarySalesService {
@Autowired
private LoanSecondarySalesApplyFeign loanSecondarySalesApplyFeign;
@Autowired
private CommonService commonService;
public ResultBean agreeSecondarySales(SecondarySalesDto dto) {
ResultBean rb = ResultBean.fireFail();
CompleteLoanSecondarySalesApplyDto completeDto = new CompleteLoanSecondarySalesApplyDto();
BeanUtil.copyProperties(dto, completeDto);
ResultBean resultBean = loanSecondarySalesApplyFeign.complete(completeDto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean rejectSecondarySales(SecondarySalesTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
LoanSecondarySalesApplyTaskQuery loanSecondarySalesApplyTaskQuery = new LoanSecondarySalesApplyTaskQuery();
BeanUtil.copyProperties(query, loanSecondarySalesApplyTaskQuery);
ResultBean resultBean = loanSecondarySalesApplyFeign.taskReject(loanSecondarySalesApplyTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean recallSecondarySales(SecondarySalesTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
LoanSecondarySalesApplyTaskQuery loanSecondarySalesApplyTaskQuery = new LoanSecondarySalesApplyTaskQuery();
BeanUtil.copyProperties(query, loanSecondarySalesApplyTaskQuery);
ResultBean resultBean = loanSecondarySalesApplyFeign.revokeProcess(loanSecondarySalesApplyTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean stopSecondarySales(SecondarySalesTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
LoanSecondarySalesApplyTaskQuery loanSecondarySalesApplyTaskQuery = new LoanSecondarySalesApplyTaskQuery();
BeanUtil.copyProperties(query, loanSecondarySalesApplyTaskQuery);
ResultBean resultBean = loanSecondarySalesApplyFeign.breakProcess(loanSecondarySalesApplyTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean<String> getFlowOperateTitle(SecondarySalesQuery query) {
ResultBean<String> rb = ResultBean.fireFail();
//0 上一环节 1下一环节
int next = query.getNext();
LoanSecondarySalesApplyNodeQuery getNodeQuery = new LoanSecondarySalesApplyNodeQuery();
BeanUtil.copyProperties(query, getNodeQuery);
String data = "";
if (next == 0) {
ResultBean<List<LoanSecondarySalesApplyNodeVo>> getPreviousNodesForReject = loanSecondarySalesApplyFeign.getPreviousNodesForReject(getNodeQuery);
if (getPreviousNodesForReject.getSuccess()) {
getPreviousNodesForReject.getData().removeAll(Collections.singleton(null));
data = getPreviousNodesForReject.getData().get(0).getName();
} else {
return rb.setMsg(getPreviousNodesForReject.getMsg());
}
} else if (next == 1) {
ResultBean<List<LoanSecondarySalesApplyNodeVo>> getNextNodesForSubmit = loanSecondarySalesApplyFeign.getNextNodesForSubmit(getNodeQuery);
if (getNextNodesForSubmit.getSuccess()) {
getNextNodesForSubmit.getData().removeAll(Collections.singleton(null));
data = getNextNodesForSubmit.getData().get(0).getName();
} else {
return rb.setMsg(getNextNodesForSubmit.getMsg());
}
} else {
return rb.setMsg("参数错误:next");
}
return rb.success().setData(data);
}
public ResultBean<SecondarySalesAppVos> getSecondarySales(String sid) {
ResultBean<SecondarySalesAppVos> rb = ResultBean.fireFail();
ResultBean<SecondarySalesAppVo> resultBean = loanSecondarySalesApplyFeign.getAppDetails(sid);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
SecondarySalesAppVos secondarySalesAppVos = new SecondarySalesAppVos();
BeanUtil.copyProperties(resultBean.getData(), secondarySalesAppVos);
secondarySalesAppVos.setPublishInfo(secondarySalesAppVos.getCreateDept() + "-" + secondarySalesAppVos.getCreateByName());
if (StringUtils.isNotBlank(secondarySalesAppVos.getNper()) && StringUtils.isNotBlank(secondarySalesAppVos.getCurrentPeriod())) {
secondarySalesAppVos.setQsCount(secondarySalesAppVos.getNper() + "/" + secondarySalesAppVos.getCurrentPeriod());
}
if (StringUtils.isNotBlank(secondarySalesAppVos.getCurrentBeMoney()) && StringUtils.isNotBlank(secondarySalesAppVos.getWheFundOccMoney())) {
secondarySalesAppVos.setYqzjzyMoney(secondarySalesAppVos.getCurrentBeMoney() + "/" + secondarySalesAppVos.getWheFundOccMoney());
}
SecondarySalesCostAppVo secondarySalesCostAppVo = secondarySalesAppVos.getLoanSecondarySalesCost();
if (secondarySalesCostAppVo != null) {
String bankSettleCostAssumeDetails = "";
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getBankSettleCost())) {
bankSettleCostAssumeDetails = bankSettleCostAssumeDetails + secondarySalesCostAppVo.getBankSettleCost() + "/";
}
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getBankSettleCostAssume())) {
bankSettleCostAssumeDetails = bankSettleCostAssumeDetails + secondarySalesCostAppVo.getBankSettleCostAssume() + "承担";
}
secondarySalesCostAppVo.setBankSettleCostAssumeDetails(bankSettleCostAssumeDetails);
//车辆违章
String vehicleViolationCostAssumeDetails = "";
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getVehicleViolationCost())) {
vehicleViolationCostAssumeDetails = vehicleViolationCostAssumeDetails + secondarySalesCostAppVo.getVehicleViolationCost() + "/";
}
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getVehicleViolationCostAssume())) {
vehicleViolationCostAssumeDetails = vehicleViolationCostAssumeDetails + secondarySalesCostAppVo.getVehicleViolationCostAssume() + "承担";
}
secondarySalesCostAppVo.setVehicleViolationCostAssumeDetails(vehicleViolationCostAssumeDetails);
//年检费
String inspectYearCostAssumeDetails = "";
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getInspectYearCost())) {
inspectYearCostAssumeDetails = inspectYearCostAssumeDetails + secondarySalesCostAppVo.getInspectYearCost() + "/";
}
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getInspectYearCostAssume())) {
inspectYearCostAssumeDetails = inspectYearCostAssumeDetails + secondarySalesCostAppVo.getInspectYearCostAssume() + "承担";
}
secondarySalesCostAppVo.setInspectYearCostAssumeDetails(inspectYearCostAssumeDetails);
//保险费
String insureCostAssumeDetails = "";
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getInsureCost())) {
insureCostAssumeDetails = insureCostAssumeDetails + secondarySalesCostAppVo.getInsureCost() + "/";
}
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getInsureCostAssume())) {
insureCostAssumeDetails = insureCostAssumeDetails + secondarySalesCostAppVo.getInsureCostAssume() + "承担";
}
secondarySalesCostAppVo.setInsureCostAssumeDetails(insureCostAssumeDetails);
//过户费
String ownershipCostAssumeDetails = "";
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getOwnershipCost())) {
ownershipCostAssumeDetails = ownershipCostAssumeDetails + secondarySalesCostAppVo.getOwnershipCost() + "/";
}
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getOwnershipCostAssume())) {
ownershipCostAssumeDetails = ownershipCostAssumeDetails + secondarySalesCostAppVo.getOwnershipCostAssume() + "承担";
}
secondarySalesCostAppVo.setOwnershipCostAssumeDetails(ownershipCostAssumeDetails);
//停车费
String stopCostAssumeDetails = "";
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getStopCost())) {
stopCostAssumeDetails = stopCostAssumeDetails + secondarySalesCostAppVo.getStopCost() + "/";
}
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getStopCostAssume())) {
stopCostAssumeDetails = stopCostAssumeDetails + secondarySalesCostAppVo.getStopCostAssume() + "承担";
}
secondarySalesCostAppVo.setStopCostAssumeDetails(stopCostAssumeDetails);
//其他费用
String otherCostAssumeDetails = "";
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getOtherCost())) {
otherCostAssumeDetails = otherCostAssumeDetails + secondarySalesCostAppVo.getOtherCost() + "/";
}
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getOtherCostAssume())) {
otherCostAssumeDetails = otherCostAssumeDetails + secondarySalesCostAppVo.getOtherCostAssume() + "承担";
}
secondarySalesCostAppVo.setOtherCostAssumeDetails(otherCostAssumeDetails);
}
ResultBean<CarModelVo> getLoanSolution = commonService.getLoanSolution(secondarySalesAppVos.getSalesOrderSid());
CarModelVo carModelVo = getLoanSolution.getData();
secondarySalesAppVos.setJrfa(carModelVo);
return rb.success().setData(secondarySalesAppVos);
}
public ResultBean delegate(SecondarySalesDelegateQuery delegateQuery) {
ResultBean rb = ResultBean.fireFail();
LoanSecondarySalesApplyDelegateQuery delegateQuery1 = new
LoanSecondarySalesApplyDelegateQuery();
BeanUtil.copyProperties(delegateQuery, delegateQuery1);
ResultBean delegate = loanSecondarySalesApplyFeign.delegate(delegateQuery1);
return rb.success();
}
public ResultBean<SecondSalesInitVo> getFlowOperateTitleBy(SecondarySalesQuery query) {
ResultBean<SecondSalesInitVo> rb = ResultBean.fireFail();
SecondSalesInitVo secondSalesInitVo = new SecondSalesInitVo();
int next = query.getNext();
LoanSecondarySalesApplyNodeQuery getNodeQuery = new LoanSecondarySalesApplyNodeQuery();
BeanUtil.copyProperties(query, getNodeQuery);
String data = "";
if (next == 0) {
ResultBean<List<LoanSecondarySalesApplyNodeVo>> getPreviousNodesForReject = loanSecondarySalesApplyFeign.getPreviousNodesForReject(getNodeQuery);
if (getPreviousNodesForReject.getSuccess()) {
getPreviousNodesForReject.getData().removeAll(Collections.singleton(null));
data = getPreviousNodesForReject.getData().get(0).getName();
} else {
return rb.setMsg(getPreviousNodesForReject.getMsg());
}
} else if (next == 1) {
ResultBean<List<LoanSecondarySalesApplyNodeVo>> getNextNodesForSubmit = loanSecondarySalesApplyFeign.getNextNodesForSubmit(getNodeQuery);
if (getNextNodesForSubmit.getSuccess()) {
getNextNodesForSubmit.getData().removeAll(Collections.singleton(null));
data = getNextNodesForSubmit.getData().get(0).getName();
} else {
return rb.setMsg(getNextNodesForSubmit.getMsg());
}
} else {
return rb.setMsg("参数错误:next");
}
secondSalesInitVo.setTitle(data);
List<ItemEditTextInfoCommon> itemEditTextInfos = new ArrayList<>();
ItemEditTextInfoCommon itemEditTextInfo = new ItemEditTextInfoCommon();
itemEditTextInfo.setTitle("风控中心车辆评估价");
itemEditTextInfo.setType(2);
itemEditTextInfo.setNullAble(false);
itemEditTextInfo.setKey("vehicleEvaluation");
ResultBean<SecondarySalesAppVos> getSecondarySales = getSecondarySales(query.getBusinessSid());
SecondarySalesAppVos secondarySalesAppVos = getSecondarySales.getData();
itemEditTextInfo.setText(secondarySalesAppVos.getLoanSecondarySalesCost().getVehicleEvaluation());
itemEditTextInfos.add(itemEditTextInfo);
secondSalesInitVo.setList(itemEditTextInfos);
return rb.success().setData(secondSalesInitVo);
}
}

76
doc/databases/risk_center.sql

@ -1618,40 +1618,48 @@ CREATE TABLE `loan_secondary_sales_veh`
DROP TABLE IF EXISTS `loan_secondary_sales_cost`;
CREATE TABLE `loan_secondary_sales_cost`
(
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
`state` int(32) DEFAULT '1' COMMENT '状态',
`isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`mainSid` varchar(64) DEFAULT NULL COMMENT '主表sid',
`arrearsAll` decimal(10, 2) DEFAULT NULL COMMENT '欠款合计',
`loanDeposit` decimal(10, 2) DEFAULT NULL COMMENT '贷款保证金',
`vehPrice` decimal(10, 2) DEFAULT NULL COMMENT '车辆售价',
`collectionCost` decimal(10, 2) DEFAULT NULL COMMENT '催收费用',
`bankSettleCost` decimal(10, 2) DEFAULT NULL COMMENT '资方结清费用',
`bankSettleCostAssume` varchar(64) DEFAULT NULL COMMENT '资方结清费用承担方',
`vehicleViolationCost` decimal(10, 2) DEFAULT NULL COMMENT '车辆违章费用',
`vehicleViolationCostAssume` varchar(64) DEFAULT NULL COMMENT '车辆违章费用承担方',
`inspectYearCost` decimal(10, 2) DEFAULT NULL COMMENT '年检费',
`inspectYearCostAssume` varchar(64) DEFAULT NULL COMMENT '年检费承担方',
`insureCost` decimal(10, 2) DEFAULT NULL COMMENT '保险费',
`insureCostAssume` varchar(64) DEFAULT NULL COMMENT '保险费承担方',
`ownershipCost` decimal(10, 2) DEFAULT NULL COMMENT '过户费',
`ownershipCostAssume` varchar(64) DEFAULT NULL COMMENT '过户费承担方',
`stopCost` decimal(10, 2) DEFAULT NULL COMMENT '停车费',
`stopCostAssume` varchar(64) DEFAULT NULL COMMENT '停车费承担方',
`otherCost` decimal(10, 2) DEFAULT NULL COMMENT '其他费用',
`otherCostAssume` varchar(64) DEFAULT NULL COMMENT '其他费用承担方',
`costDescription` text DEFAULT NULL COMMENT '费用说明',
`lossPrice` decimal(10, 2) DEFAULT NULL COMMENT '预计亏损金额',
`debtDisposal` text DEFAULT NULL COMMENT '后续欠款处置方向',
`files` text DEFAULT NULL COMMENT '附件',
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
`state` int(32) DEFAULT '1' COMMENT '状态',
`isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`mainSid` varchar(64) DEFAULT NULL COMMENT '主表sid',
`arrearsAll` decimal(10, 2) DEFAULT NULL COMMENT '欠款合计',
`loanDeposit` decimal(10, 2) DEFAULT NULL COMMENT '贷款保证金',
`vehPrice` decimal(10, 2) DEFAULT NULL COMMENT '车辆售价',
`collectionCost` decimal(10, 2) DEFAULT NULL COMMENT '催收费用',
`bankSettleCost` decimal(10, 2) DEFAULT NULL COMMENT '资方结清费用',
`bankSettleCostAssume` varchar(64) DEFAULT NULL COMMENT '资方结清费用承担方',
`bankSettleCostAssumeKey` varchar(64) DEFAULT NULL COMMENT '资方结清费用承担方',
`vehicleViolationCost` decimal(10, 2) DEFAULT NULL COMMENT '车辆违章费用',
`vehicleViolationCostAssume` varchar(64) DEFAULT NULL COMMENT '车辆违章费用承担方',
`vehicleViolationCostAssumeKey` varchar(64) DEFAULT NULL COMMENT '车辆违章费用承担方',
`inspectYearCost` decimal(10, 2) DEFAULT NULL COMMENT '年检费',
`inspectYearCostAssume` varchar(64) DEFAULT NULL COMMENT '年检费承担方',
`inspectYearCostAssumeKey` varchar(64) DEFAULT NULL COMMENT '年检费承担方',
`insureCost` decimal(10, 2) DEFAULT NULL COMMENT '保险费',
`insureCostAssume` varchar(64) DEFAULT NULL COMMENT '保险费承担方',
`insureCostAssumeKey` varchar(64) DEFAULT NULL COMMENT '保险费承担方',
`ownershipCost` decimal(10, 2) DEFAULT NULL COMMENT '过户费',
`ownershipCostAssume` varchar(64) DEFAULT NULL COMMENT '过户费承担方',
`ownershipCostAssumeKey` varchar(64) DEFAULT NULL COMMENT '过户费承担方',
`stopCost` decimal(10, 2) DEFAULT NULL COMMENT '停车费',
`stopCostAssume` varchar(64) DEFAULT NULL COMMENT '停车费承担方',
`stopCostAssumeKey` varchar(64) DEFAULT NULL COMMENT '停车费承担方',
`otherCost` decimal(10, 2) DEFAULT NULL COMMENT '其他费用',
`otherCostAssume` varchar(64) DEFAULT NULL COMMENT '其他费用承担方',
`otherCostAssumeKey` varchar(64) DEFAULT NULL COMMENT '其他费用承担方',
`costDescription` text DEFAULT NULL COMMENT '费用说明',
`lossPrice` decimal(10, 2) DEFAULT NULL COMMENT '预计亏损金额',
`debtDisposal` text DEFAULT NULL COMMENT '后续欠款处置方向',
`files` text DEFAULT NULL COMMENT '附件',
`vehicleEvaluation` decimal(10, 2) DEFAULT NULL COMMENT '车辆评估价格',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB

Loading…
Cancel
Save