Browse Source

Merge remote-tracking branch 'origin/master'

master
fanzongzhe 1 year ago
parent
commit
44276a6b89
  1. 4
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleout/BaseVehicleOutService.java
  2. 4
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicle.java
  3. 4
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicleFeign.java
  4. 5
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicleFeignFallback.java
  5. 23
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/ReaRepaymentDto.java
  6. 3
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.java
  7. 7
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleRest.java
  8. 4
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleService.java
  9. 11
      anrui-riskcenter-ui/src/api/advancerequest/advancerequest.js
  10. 17
      anrui-riskcenter-ui/src/api/overduevehicle/overduevehicle.js
  11. 10
      anrui-riskcenter-ui/src/router/index.js
  12. 240
      anrui-riskcenter-ui/src/views/advancerequest/advancedetails.vue
  13. 4
      anrui-riskcenter-ui/src/views/monthlypayment/monthlypayment.vue
  14. 105
      anrui-riskcenter-ui/src/views/overduevehicle/overduevehicleByRisk.vue
  15. 12
      anrui-riskcenter-ui/src/views/overduevehicle/vehiclecollectionentry.vue
  16. 14
      anrui-riskcenter-ui/src/views/unsecuredbusiness/unsecuredbusiness.vue
  17. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbecollectionrecord/LoanBeCollectionRecordVehInit.java
  18. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbeoverdueveh/LoanBeOverdueVehFegin.java
  19. 25
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbeoverdueveh/ReaRepaymentVo.java
  20. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/DkRecordQuery.java
  21. 14
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/DkRecordVo.java
  22. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereveh/LoanBePadsincereVeh.java
  23. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereveh/LoanBePadsincereVehDetailsVo.java
  24. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereveh/LoanBePadsincereVehDto.java
  25. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleDetailsVo.java
  26. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionrecord/LoanBeCollectionRecordService.java
  27. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.java
  28. 218
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml
  29. 12
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehRest.java
  30. 13
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehService.java
  31. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyMapper.xml
  32. 53
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java
  33. 1
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehService.java
  34. 17
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml
  35. 36
      doc/databases/报表中心.sql

4
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleout/BaseVehicleOutService.java

@ -1638,8 +1638,12 @@ public class BaseVehicleOutService extends MybatisBaseService<BaseVehicleOutMapp
baseVehicleOut.setCreateBySid(baseVehicleOutApply.getCreateBySid());
if ("001".equals(payTypeKey)) {//全款
baseVehicleOut.setCwCustomerNo(baseVehicleZSOutApplyDto.getContractNo());
baseVehicleOut.setTypeKey("001");
baseVehicleOut.setType("全款车");
} else {//贷款
baseVehicleOut.setCwCustomerNo(bdCustomer.getFNumber());
baseVehicleOut.setTypeKey("002");
baseVehicleOut.setType("贷款车");
}
baseVehicleOut.setManPurOrderTypeKey(baseVehicle.getManPurOrderTypeKey());
baseVehicleOut.setManPurOrderTypeValue(baseVehicle.getManPurOrderTypeValue());

4
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicle.java

@ -79,4 +79,8 @@ public class BusSalesOrderVehicle extends BaseEntity {
private String riskStaffUserSid;
@ApiModelProperty("风控专员用户姓名")
private String riskStaffUserName;
@ApiModelProperty("实际还款人姓名")
private String reaRepaymentName;
@ApiModelProperty("实际还款人电话")
private String reaRepaymentPhone;
}

4
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicleFeign.java

@ -157,4 +157,8 @@ public interface BusSalesOrderVehicleFeign {
@GetMapping("/selectByBorrowerSid")
@ResponseBody
ResultBean<List<BusSalesOrderVehicle>> selectByBorrowerSid(@RequestParam("borrowerSid") String borrowerSid);
@ApiOperation("维护实际还款人")
@PostMapping("/maintReaRepayment")
public ResultBean maintReaRepayment(@RequestBody ReaRepaymentDto reaRepaymentDto);
}

5
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicleFeignFallback.java

@ -153,4 +153,9 @@ public class BusSalesOrderVehicleFeignFallback implements BusSalesOrderVehicleFe
return null;
}
@Override
public ResultBean maintReaRepayment(ReaRepaymentDto reaRepaymentDto) {
return null;
}
}

23
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/ReaRepaymentDto.java

@ -0,0 +1,23 @@
package com.yxt.anrui.buscenter.api.bussalesordervehicle;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ReaRepaymentDto {
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车牌号")
private String carNum;
@ApiModelProperty("客户名称")
private String custName;
@ApiModelProperty("贷款人")
private String borrerName;
@ApiModelProperty("实际还款人名称")
private String reaRepaymentName;
@ApiModelProperty("实际还款人电话")
private String reaRepaymentPhone;
@ApiModelProperty("销售订单车辆sid")
private String saleVehSid;
}

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

@ -175,4 +175,7 @@ public interface BusSalesOrderVehicleMapper extends BaseMapper<BusSalesOrderVehi
@Select("select * from bus_sales_order_vehicle where borrowerSid = #{borrowerSid}")
List<BusSalesOrderVehicle> selectByBorrowerSid(String borrowerSid);
@Update("update bus_sales_order_vehicle set reaRepaymentName = #{reaRepaymentName},reaRepaymentPhone = #{reaRepaymentPhone} where sid = #{saleVehSid}")
void maintReaRepayment(@Param("saleVehSid") String saleVehSid,@Param("reaRepaymentName") String reaRepaymentName,@Param("reaRepaymentPhone") String reaRepaymentPhone);
}

7
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleRest.java

@ -173,4 +173,11 @@ public class BusSalesOrderVehicleRest implements BusSalesOrderVehicleFeign {
public ResultBean<List<BusSalesOrderVehicle>> selectByBorrowerSid(String borrowerSid) {
return busSalesOrderVehicleService.selectByBorrowerSid(borrowerSid);
}
@Override
public ResultBean maintReaRepayment(ReaRepaymentDto reaRepaymentDto) {
ResultBean rb = ResultBean.fireFail();
busSalesOrderVehicleService.maintReaRepayment(reaRepaymentDto);
return rb.success();
}
}

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

@ -649,4 +649,8 @@ public class BusSalesOrderVehicleService extends MybatisBaseService<BusSalesOrde
List<BusSalesOrderVehicle> busSalesOrderVehicleList = baseMapper.selectByBorrowerSid(borrowerSid);
return rb.success().setData(busSalesOrderVehicleList);
}
public void maintReaRepayment(ReaRepaymentDto reaRepaymentDto) {
baseMapper.maintReaRepayment(reaRepaymentDto.getSaleVehSid(),reaRepaymentDto.getReaRepaymentName(),reaRepaymentDto.getReaRepaymentPhone());
}
}

11
anrui-riskcenter-ui/src/api/advancerequest/advancerequest.js

@ -1,7 +1,7 @@
import request from '@/utils/request'
export default {
// 查询分页列表
// 垫款申请--查询分页列表
listPage: function(params) {
return request({
url: '/riskcenter/v1/loanbepadsincereapply/listPage',
@ -10,6 +10,15 @@ export default {
headers: { 'Content-Type': 'application/json' }
})
},
// 垫款明细查询--分页列表
dkListPage: function(params) {
return request({
url: '/riskcenter/v1/loanbepadsincereapply/dkListPage',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
saveOrUpdate: function(data) {
return request({
url: '/riskcenter/v1/loanbepadsincereapply/save',

17
anrui-riskcenter-ui/src/api/overduevehicle/overduevehicle.js

@ -28,6 +28,23 @@ export default {
headers: { 'Content-Type': 'application/json' }
})
},
// 初始化--实际还款人
initReaRepayment: function(data) {
return request({
url: '/riskcenter/v1/Loanbeoverdueveh/initReaRepayment',
method: 'post',
params: data
})
},
// 保存--实际还款人
maintReaRepayment: function(data) {
return request({
url: '/buscenter/v1/bussalesordervehicle/maintReaRepayment',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
// 初始化
init: function(data) {
return request({

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

@ -352,14 +352,14 @@ export const constantRoutes = [
component: Layout,
redirect: '/monthlypayment',
meta: {
title: '待划扣还款记录'
title: '资方划扣还款'
},
children: [
{
path: '/monthlypayment/monthlypayment',
component: () => import('@/views/monthlypayment/monthlypayment.vue'),
name: 'MonthlyPayment',
meta: { title: '待划扣还款记录', noCache: true }
meta: { title: '资方划扣还款', noCache: true }
}
]
},
@ -392,6 +392,12 @@ export const constantRoutes = [
component: () => import('@/views/advancerequest/advancerequest.vue'),
name: 'AdvanceRequest',
meta: { title: '垫款申请管理', noCache: true }
},
{
path: '/advancerequest/advancedetails',
component: () => import('@/views/advancerequest/advancedetails.vue'),
name: 'AdvanceDetails',
meta: { title: '垫款明细查询', noCache: true }
}
]
},

240
anrui-riskcenter-ui/src/views/advancerequest/advancedetails.vue

@ -0,0 +1,240 @@
<template>
<div class="app-container">
<!--列表页面-->
<div v-show="viewState == 1">
<button-bar view-title="垫款明细查询" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<!--Start查询列表部分-->
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" class="tab-header">
<el-form-item label="分公司">
<el-input v-model="listQuery.params.useOrgName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="销售部门">
<el-input v-model="listQuery.params.deptName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="垫款申请编号">
<el-input v-model="listQuery.params.billNo" placeholder="" clearable/>
</el-form-item>
<el-form-item label="贷款合同编号">
<el-input v-model="listQuery.params.loanContractNo" placeholder="" clearable/>
</el-form-item>
<el-form-item label="车架号">
<el-input v-model="listQuery.params.vinNo" placeholder="" clearable/>
</el-form-item>
<el-form-item label="资方">
<el-input v-model="listQuery.params.bankName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="资方合同编号">
<el-input v-model="listQuery.params.bankContractNo" placeholder="" clearable/>
</el-form-item>
<el-form-item label="客户名称">
<el-input v-model="listQuery.params.custName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="贷款人">
<el-input v-model="listQuery.params.borrowerName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="期数">
<el-input v-model="listQuery.params.period" placeholder="" clearable/>
</el-form-item>
<el-form-item label="付款账户名称">
<el-input v-model="listQuery.params.paymentAccount" placeholder="" clearable/>
</el-form-item>
<el-form-item label="资方收款账户名称">
<el-input v-model="listQuery.params.bankCollectionAcc" placeholder="" clearable/>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" size="small" @click="handleFilter">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" size="small" @click="handleReset">重置</el-button>
</div>
</div>
</div>
<!--End查询列表部分-->
<div class="listtop">
<div class="tit">垫款明细列表</div>
<pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<!--Start 主页面主要部分 -->
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" :border="true" style="width: 100%;">
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center"/>
<el-table-column prop="useOrgName" label="分公司" width="180px" align="center" />
<el-table-column prop="deptName" label="销售部门" width="180px" align="center" />
<el-table-column prop="billNo" label="垫款申请编号" width="180px" align="center" />
<el-table-column prop="loanContractNo" label="贷款合同编号" width="180px" align="center" />
<el-table-column prop="vinNo" label="车架号" width="180px" align="center" />
<el-table-column prop="bankName" label="资方" width="180px" align="center" />
<el-table-column prop="bankContractNo" label="资方合同编号" width="180px" align="center" />
<el-table-column prop="customerName" label="客户名称" width="180px" align="center" />
<el-table-column prop="borrowerName" label="贷款人" width="180px" align="center" />
<el-table-column prop="period" label="期数" width="180px" align="center" />
<el-table-column prop="sysBeMoney" label="平台逾期月还" width="180px" align="center" />
<el-table-column prop="bankBeMoney" label="资方逾期月还" width="180px" align="center" />
<el-table-column prop="bankBeInter" label="资方逾期利息" width="180px" align="center" />
<el-table-column prop="padMoney" label="垫款金额" width="180px" align="center" />
<el-table-column prop="paymentAccount" label="付款账户名称" width="180px" align="center" />
<el-table-column prop="paymentNum" label="付款账号" width="180px" align="center" />
<el-table-column prop="bankCollectionAcc" label="资方收款账户名称" width="180px" align="center" />
<el-table-column prop="bankCollectionNum" label="资方收款账号" width="180px" align="center" />
<el-table-column prop="remarks" label="备注" min-width="200" header-align="center" align="left" />
</el-table>
</div>
<!--End 主页面主要部分-->
<div class="pages">
<div class="tit"/>
<!-- 翻页 -->
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<!--End查询列表部分-->
</div>
</div>
</div>
</template>
<script>
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import req from '@/api/advancerequest/advancerequest'
export default {
name: 'AdvanceDetails',
components: {
Pagination,
pageye,
ButtonBar
},
data() {
return {
btndisabled: false,
btnList: [
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
isSearchShow: false,
searchxianshitit: '显示查询条件',
viewState: 1, // 1 2 3 4
tableKey: 0,
list: [],
sids: [], // SIDs
FormLoading: false,
listLoading: false,
//
listQuery: {
current: 1,
size: 10,
total: 0,
params: {
bankCollectionAcc: '',
bankName: '',
billNo: '',
borrowerName: '',
custName: '',
loanContractNo: '',
menuUrl: '',
orgPath: '',
paymentAccount: '',
period: '',
useOrgName: '',
userSid: '',
vinNo: ''
}
}
}
},
created() {
//
this.getList()
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'doClose':
this.doClose()
break
default:
break
}
},
//
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
getList() {
this.listLoading = true
this.listQuery.params.userSid = window.sessionStorage.getItem('userSid')
this.listQuery.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
this.listQuery.params.menuUrl = this.$route.path
req.dkListPage(this.listQuery).then(response => {
this.listLoading = false
if (response.success) {
this.list = response.data.records
this.listQuery.total = response.data.total
} else {
this.list = []
this.listQuery.total = 0
}
})
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
//
handleReset() {
this.listQuery = {
current: 1,
size: 10,
total: 0,
params: {
bankCollectionAcc: '',
bankName: '',
billNo: '',
borrowerName: '',
custName: '',
loanContractNo: '',
menuUrl: '',
orgPath: '',
paymentAccount: '',
period: '',
useOrgName: '',
userSid: '',
vinNo: ''
}
}
this.getList()
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
</style>

4
anrui-riskcenter-ui/src/views/monthlypayment/monthlypayment.vue

@ -2,7 +2,7 @@
<div class="app-container">
<!--列表页面-->
<div v-show="viewState == 1">
<button-bar view-title="待划扣还款记录" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<button-bar view-title="资方划扣还款明细" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<!--Start查询列表部分-->
<div class="main-content">
<div class="searchcon">
@ -64,7 +64,7 @@
</div>
<!--End查询列表部分-->
<div class="listtop">
<div class="tit">待划扣月还记录列表</div>
<div class="tit">资方划扣还款明细列表</div>
<pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<!--Start 主页面主要部分 -->

105
anrui-riskcenter-ui/src/views/overduevehicle/overduevehicleByRisk.vue

@ -106,6 +106,57 @@
<collectionmeasuresAdd v-show="viewState == 3" ref="divCollection" @doback="resetState" @reloadlist="getList"/>
<!-- 查看车辆历史催收记录 -->
<vehiclecollectionrecords v-show="viewState == 4" ref="divRecords" @doback="resetState"/>
<!-- 维护还款操作人 -->
<el-dialog title="录入实际还款人" :visible.sync="dialogVisible" width="70%">
<el-form ref="form_obj" :model="formobj" class="formadd">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="5" class="tleftb">
<span>车架号</span>
</el-col>
<el-col :span="7">
<el-form-item><span>{{ formobj.vinNo }}</span></el-form-item>
</el-col>
<el-col :span="5" class="tleftb">
<span>车牌号</span>
</el-col>
<el-col :span="7">
<el-form-item><span>{{ formobj.carNum }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="5" class="tleftb">
<span>客户名称</span>
</el-col>
<el-col :span="7">
<el-form-item><span>{{ formobj.custName }}</span></el-form-item>
</el-col>
<el-col :span="5" class="tleftb">
<span>贷款人</span>
</el-col>
<el-col :span="7">
<el-form-item><span>{{ formobj.borrerName }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="5" class="tleftb">
<span>实际还款人名称</span>
</el-col>
<el-col :span="7">
<el-form-item><el-input v-model="formobj.reaRepaymentName" clearable placeholder="" /></el-form-item>
</el-col>
<el-col :span="5" class="tleftb">
<span>实际还款人电话</span>
</el-col>
<el-col :span="7">
<el-form-item><el-input v-model="formobj.reaRepaymentPhone" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" size="small" @click="handleSave()">保存</el-button>
<el-button size="small" @click="dialogVisible = false">关闭</el-button>
</div>
</el-dialog>
</div>
</template>
@ -131,7 +182,15 @@ export default {
data() {
return {
btndisabled: false,
dialogVisible: false,
btnList: [
{
type: 'primary',
size: 'small',
icon: '',
btnKey: 'toMaintain',
btnLabel: '维护还款操作人'
},
{
type: 'primary',
size: 'small',
@ -204,6 +263,15 @@ export default {
collectionStartDate: '',
collectionEndDate: ''
}
},
formobj: {
borrerName: '',
carNum: '',
custName: '',
reaRepaymentName: '',
reaRepaymentPhone: '',
saleVehSid: '',
vinNo: ''
}
}
},
@ -227,6 +295,9 @@ export default {
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'toMaintain':
this.toMaintain()
break
case 'toCollection':
this.toCollection()
break
@ -304,6 +375,40 @@ export default {
this.viewState = 4
this.$refs['divRecords'].showInfo(row)
},
toMaintain() {
if (this.sids.length === 1) {
this.dialogVisible = true
this.formobj = {
borrerName: '',
carNum: '',
custName: '',
reaRepaymentName: '',
reaRepaymentPhone: '',
saleVehSid: '',
vinNo: ''
}
req.initReaRepayment({ saleVehSid: this.sids[0] }).then((resp) => {
if (resp.success) {
this.formobj = resp.data
}
})
} else {
this.$message({ showClose: true, type: 'error', message: '请选择一条记录进行操作' })
}
},
handleSave() {
if (this.formobj.reaRepaymentName === '' || this.formobj.reaRepaymentPhone === '') {
this.$message({ showClose: true, type: 'error', message: '实际还款人名称和电话不能为空' })
return
}
req.maintReaRepayment(this.formobj).then((res) => {
if (res.success) {
this.$message({ showClose: true, type: 'success', message: '保存成功' })
this.dialogVisible = false
this.getList()
}
})
},
toCollection() {
if (this.sids.length === 1) {
this.viewState = 2

12
anrui-riskcenter-ui/src/views/overduevehicle/vehiclecollectionentry.vue

@ -31,10 +31,15 @@
<div class="title">车辆列表</div>
<el-table :key="tableKey" :data="formobj.loanBeCollectionRecordVehInitList" :index="index" border style="width: 100%">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column fixed width="80" label="操作" align="center">
<template slot-scope="scope">
<el-button type="danger" size="small" @click="handleDelete(scope.$index)">删除</el-button>
</template>
</el-table-column>
<el-table-column fixed prop="vinNo" label="车架号" align="center" width="100" />
<el-table-column prop="carNum" label="车牌号" align="center" width="100" />
<el-table-column prop="custName" label="客户名称" align="center" width="100" />
<el-table-column prop="custPhone" label="联系电话" align="center" width="100" />
<el-table-column prop="custNameAndPhone" label="客户及电话" align="center" width="140" />
<el-table-column prop="reaRepaymentNameAndPhone" label="实际还款人及电话" align="center" width="170" />
<el-table-column prop="loanContractNo" label="贷款合同号" align="center" width="140"/>
<el-table-column prop="bankName" label="资方" align="center" width="100" />
<el-table-column prop="firstBeDate" label="首次逾期日期" align="center" width="140" />
@ -319,6 +324,9 @@ export default {
}
})
},
handleDelete(index) {
this.formobj.loanBeCollectionRecordVehInitList.splice(index, 1)
},
collectionTypeChange(value) {
const choose = this.collectionType_list.filter((item) => item.dictKey === value)
if (choose.length > 0 && choose !== null) {

14
anrui-riskcenter-ui/src/views/unsecuredbusiness/unsecuredbusiness.vue

@ -129,13 +129,13 @@ export default {
btnKey: 'toEdit',
btnLabel: '办理'
},
{
type: 'primary',
size: 'small',
icon: '',
btnKey: 'toPush',
btnLabel: '重推'
},
// {
// type: 'primary',
// size: 'small',
// icon: '',
// btnKey: 'toPush',
// btnLabel: ''
// },
{
type: 'info',
size: 'small',

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbecollectionrecord/LoanBeCollectionRecordVehInit.java

@ -17,6 +17,10 @@ public class LoanBeCollectionRecordVehInit {
private String custName;
@ApiModelProperty("联系电话")
private String custPhone;
@ApiModelProperty("客户及电话")
private String custNameAndPhone;
@ApiModelProperty("实际还款人及电话")
private String reaRepaymentNameAndPhone;
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
@ApiModelProperty("资方")

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbeoverdueveh/LoanBeOverdueVehFegin.java

@ -29,4 +29,8 @@ public interface LoanBeOverdueVehFegin {
@ApiOperation("分配风控专员")
@PostMapping("/allocationRiskStaff")
public ResultBean allocationRiskStaff(@RequestBody AllocationQuery allocationQuery);
@ApiOperation("初始化实际还款人")
@PostMapping("/initReaRepayment")
public ResultBean<ReaRepaymentVo> initReaRepayment(@RequestParam("saleVehSid") String saleVehSid);
}

25
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbeoverdueveh/ReaRepaymentVo.java

@ -0,0 +1,25 @@
package com.yxt.anrui.riskcenter.api.loanbeoverdueveh;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class ReaRepaymentVo {
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车牌号")
private String carNum;
@ApiModelProperty("客户名称")
private String custName;
@ApiModelProperty("贷款人")
private String borrerName;
@ApiModelProperty("实际还款人名称")
private String reaRepaymentName;
@ApiModelProperty("实际还款人电话")
private String reaRepaymentPhone;
@ApiModelProperty("销售订单车辆sid")
private String saleVehSid;
}

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/DkRecordQuery.java

@ -49,12 +49,16 @@ public class DkRecordQuery implements Query {
@ApiModelProperty("分公司")
private String useOrgName;
@ApiModelProperty("发起部门")
private String deptName;
@ApiModelProperty("垫款申请编号")
private String billNo;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
@ApiModelProperty("资方合同编号")
private String bankContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("客户名称")

14
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/DkRecordVo.java

@ -47,6 +47,10 @@ import lombok.Data;
@Data
public class DkRecordVo implements Vo {
@ApiModelProperty("分公司名称")
private String useOrgName;
@ApiModelProperty("申请部门名称")
private String deptName;
@ApiModelProperty("垫款申请编号")
private String billNo;
@ApiModelProperty("车架号")
@ -63,19 +67,19 @@ public class DkRecordVo implements Vo {
private String borrowerName; // 贷款人名称
@ApiModelProperty("期数")
private String period; // 期数
@ApiModelProperty("系统逾期金额")
@ApiModelProperty("平台逾期月还")
private String sysBeMoney; // 系统逾期金额
@ApiModelProperty("资方逾期金额")
@ApiModelProperty("资方逾期月还")
private String bankBeMoney; // 资方逾期金额
@ApiModelProperty("资方逾期息")
@ApiModelProperty("资方逾期息")
private String bankBeInter; // 资方逾期罚息
@ApiModelProperty("垫款金额")
private String padMoney; // 垫款金额
@ApiModelProperty("付款账户")
@ApiModelProperty("付款账户名称")
private String paymentAccount; // 付款账户
@ApiModelProperty("付款账号")
private String paymentNum; // 付款账号
@ApiModelProperty("资方收款账户")
@ApiModelProperty("资方收款账户名称")
private String bankCollectionAcc; // 资方收款账户
@ApiModelProperty("资方收款账号")
private String bankCollectionNum; // 资方收款账号

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereveh/LoanBePadsincereVeh.java

@ -80,6 +80,8 @@ public class LoanBePadsincereVeh extends BaseEntity {
private String bankCollectionAcc; // 资方收款账户
@ApiModelProperty("资方收款账号")
private String bankCollectionNum; // 资方收款账号
@ApiModelProperty("销售订单车辆sid")
private String saleVehSid;
@ApiModelProperty("垫款申请sid")
private String mainSid; // 垫款申请sid

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereveh/LoanBePadsincereVehDetailsVo.java

@ -79,6 +79,8 @@ public class LoanBePadsincereVehDetailsVo implements Vo {
private String bankCollectionAcc; // 资方收款账户
@ApiModelProperty("资方收款账号")
private String bankCollectionNum; // 资方收款账号
@ApiModelProperty("销售订单车辆sid")
private String busVinSid;
@ApiModelProperty("垫款申请sid")
private String mainSid; // 垫款申请sid

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereveh/LoanBePadsincereVehDto.java

@ -79,6 +79,8 @@ public class LoanBePadsincereVehDto implements Dto {
private String bankCollectionAcc; // 资方收款账户
@ApiModelProperty("资方收款账号")
private String bankCollectionNum; // 资方收款账号
@ApiModelProperty("销售订单车辆sid")
private String busVinSid;
@ApiModelProperty("垫款申请sid")
private String mainSid; // 垫款申请sid

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleDetailsVo.java

@ -16,4 +16,6 @@ public class LoanRepaymentScheduleDetailsVo {
private String borrowerName;
@ApiModelProperty("销售订单sid")
private String salesOrderSid;
@ApiModelProperty("销售订单车辆sid")
private String busVinSid;
}

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionrecord/LoanBeCollectionRecordService.java

@ -197,8 +197,10 @@ public class LoanBeCollectionRecordService extends MybatisBaseService<LoanBeColl
loanBeCollectionRecordInit.setSpouseMobile(loanHomevisitInvestigateCustomerDetailsVo.getSpouseMobile());
List<LoanBeCollectionRecordVehInit> loanBeCollectionRecordVehInits = loanBeOverdueVehService.initVehListByBorrSid(busSalesOrderVehicle.getBorrowerSid());
for (LoanBeCollectionRecordVehInit loanBeCollectionRecordVehInit : loanBeCollectionRecordVehInits) {
loanBeCollectionRecordVehInit.setCustNameAndPhone(loanBeCollectionRecordVehInit.getCustName() + loanBeCollectionRecordVehInit.getCustPhone());
BusSalesOrder busSalesOrder = busSalesOrderFeign.fetchBySid(loanBeCollectionRecordVehInit.getSalesOrderSid()).getData();
BusSalesOrderVehicle busSalesOrderVehicle1 = busSalesOrderVehicleFeign.details(loanBeCollectionRecordVehInit.getSaleVehSid()).getData();
loanBeCollectionRecordVehInit.setReaRepaymentNameAndPhone(busSalesOrderVehicle1.getReaRepaymentName() + busSalesOrderVehicle1.getReaRepaymentPhone());
//催收记录sid
loanBeCollectionRecordVehInit.setSaleVehSid(loanBeCollectionRecordVehInit.getSaleVehSid());
//开票管理sid

3
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.java

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.riskcenter.api.loanbecollectionrecord.LoanBeCollectionRecordVehInit;
import com.yxt.anrui.riskcenter.api.loanbeoverdueveh.LoanBeOverdueVehVo;
import com.yxt.anrui.riskcenter.api.loanbeoverdueveh.ReaRepaymentVo;
import com.yxt.anrui.riskcenter.api.loanborrower.AppLoanBorrowerListVo;
import com.yxt.anrui.riskcenter.api.loanborrower.LoanBorrower;
import com.yxt.anrui.riskcenter.api.loanborrower.LoanBorrowerVo;
@ -23,4 +24,6 @@ public interface LoanBeOverdueVehMapper {
void allocationRiskStaff(@Param("saleVehSid") String saleVehSid, @Param("userSid") String userSid, @Param("userName") String userName);
List<LoanBeCollectionRecordVehInit> initVehListByBorrSid(String borrowerSid);
ReaRepaymentVo initReaRepayment(String saleVehSid);
}

218
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml

@ -5,134 +5,148 @@
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.riskcenter.api.loanbeoverdueveh.LoanBeOverdueVehVo">
SELECT a1.busVinSid AS saleVehSid,
a1.`useOrgName`,
a1.`dept`,
a1.`loanContractNo`,
a1.borrowerName,
RIGHT(a1.vinNo,8) AS vinNo,
a1.vehMark AS carNum,
a1.`bankName`,
a1.`bankContractNo`,
a1.dueMoney AS bankMonthRep,
a1.dueDate AS firstBeDate,
COUNT(a1.sid) AS beOverduePeriod,
SUM(a1.yq_total) AS beOverdueMoney,
SUM(a1.yq_hsqs) AS beOverdueMoneyAndPeriod,
SUM(a1.yd_dkje) AS advMoney,
SUM(a1.yd_zjzyf) AS fundPossCostMoney,
a1.riskStaffUserSid,
a1.riskStaffUserName,
a1.createTime,
a1.orgSidPath
FROM (SELECT lrpd.sid,
lrpd.busVinSid,
lrpd.`useOrgName`,
lrpd.`dept`,
lrpd.`loanContractNo`,
lrpd.borrowerName,
lrpd.`vinNo`,
lrpd.`vehMark`,
lrpd.`bankName`,
lrpd.`bankContractNo`,
lrpd.dueMoney,
lrpd.dueDate,
(
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))
) AS yq_total,
(
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))
) / lrpd.`dueMoney` AS yq_hsqs,
lrpd.`paymentMoney` AS yd_dkje,
lrpd.fund AS yd_zjzyf,
lrpd.orgSidPath,
lrpd.createBySid,
bv.riskStaffUserSid,
bv.riskStaffUserName,
lr.createTime
FROM `loan_repayment_plan_details` lrpd
LEFT JOIN `loan_repayment_history` lrh
ON lrh.planDetailSid = lrpd.`sid`
LEFT JOIN anrui_buscenter.`bus_sales_order_vehicle` bv
ON lrpd.busVinSid = bv.sid
LEFT JOIN (SELECT saleVehSid, createTime
FROM loan_be_collection_record
ORDER BY createTime DESC LIMIT 100) lr
ON lrpd.busVinSid = lr.saleVehSid
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
GROUP BY lrpd.`sid`
HAVING (yq_total > 0)) a1
<where>
${ew.sqlSegment}
</where>
</select>
<update id="allocationRiskStaff">
UPDATE
anrui_buscenter.`bus_sales_order_vehicle`
SET riskStaffUserSid = #{userSid},
riskStaffUserName = #{userName}
WHERE sid = #{saleVehSid}
</update>
<select id="initVehListByBorrSid"
resultType="com.yxt.anrui.riskcenter.api.loanbecollectionrecord.LoanBeCollectionRecordVehInit">
SELECT
RIGHT(a1.vinNo, 8) AS vinNo,
a1.customer AS custName,
a1.mobile AS custPhone,
SELECT a1.busVinSid AS saleVehSid,
a1.`useOrgName`,
a1.`dept`,
a1.`loanContractNo`,
a1.`bankName`,
a1.borrowerName,
RIGHT(a1.vinNo,8) AS vinNo,
a1.vehMark AS carNum,
a1.`bankName`,
a1.`bankContractNo`,
a1.dueMoney AS bankMonthRep,
a1.dueDate AS firstBeDate,
COUNT(a1.sid) AS beOverduePeriod,
SUM(a1.yq_total) AS beOverdueMoney,
SUM(a1.yq_hsqs) AS beOverdueMoneyAndPeriod,
a1.busVinSid AS saleVehSid,
a1.salesOrderSid
FROM
(SELECT
lrpd.sid,
SUM(a1.yd_dkje) AS advMoney,
SUM(a1.yd_zjzyf) AS fundPossCostMoney,
a1.riskStaffUserSid,
a1.riskStaffUserName,
a1.createTime,
a1.orgSidPath
FROM (SELECT lrpd.sid,
lrpd.busVinSid,
lrpd.`useOrgName`,
lrpd.`dept`,
lrpd.`loanContractNo`,
lrpd.borrowerName,
lrpd.`vinNo`,
lrpd.`vehMark`,
lrpd.`bankName`,
lrpd.`bankContractNo`,
lrpd.dueMoney,
lrpd.dueDate,
lrpd.vehMark,
(
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))
) AS yq_total,
(
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))
) / lrpd.`dueMoney` AS yq_hsqs,
lrpd.customer,
ct.mobile,
lr.createTime,
lrpd.borrowerSid,
lrpd.salesOrderSid
FROM
`loan_repayment_plan_details` lrpd
lrpd.`paymentMoney` AS yd_dkje,
lrpd.fund AS yd_zjzyf,
lrpd.orgSidPath,
lrpd.createBySid,
bv.riskStaffUserSid,
bv.riskStaffUserName,
lr.createTime
FROM `loan_repayment_plan_details` lrpd
LEFT JOIN `loan_repayment_history` lrh
ON lrh.planDetailSid = lrpd.`sid`
LEFT JOIN anrui_buscenter.`bus_sales_order_vehicle` bv
ON lrpd.busVinSid = bv.sid
LEFT JOIN
(SELECT
saleVehSid,
createTime
FROM
loan_be_collection_record
ORDER BY createTime DESC
LIMIT 100) lr
LEFT JOIN (SELECT saleVehSid, createTime
FROM loan_be_collection_record
ORDER BY createTime DESC LIMIT 100) lr
ON lrpd.busVinSid = lr.saleVehSid
LEFT JOIN anrui_crm.`crm_customer_temp` ct
ON lrpd.customerSid = ct.sid
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
GROUP BY lrpd.`sid`
HAVING (yq_total > 0)) a1
<where>
${ew.sqlSegment}
</where>
</select>
<update id="allocationRiskStaff">
UPDATE
anrui_buscenter.`bus_sales_order_vehicle`
SET riskStaffUserSid = #{userSid},
riskStaffUserName = #{userName}
WHERE sid = #{saleVehSid}
</update>
<select id="initVehListByBorrSid"
resultType="com.yxt.anrui.riskcenter.api.loanbecollectionrecord.LoanBeCollectionRecordVehInit">
SELECT
RIGHT (a1.vinNo, 8) AS vinNo,
a1.customer AS custName,
a1.mobile AS custPhone,
a1.`loanContractNo`,
a1.`bankName`,
a1.vehMark AS carNum,
a1.dueDate AS firstBeDate,
COUNT (a1.sid) AS beOverduePeriod,
SUM (a1.yq_total) AS beOverdueMoney,
SUM (a1.yq_hsqs) AS beOverdueMoneyAndPeriod,
a1.busVinSid AS saleVehSid,
a1.salesOrderSid
FROM
(SELECT
lrpd.sid,
lrpd.busVinSid,
lrpd.`loanContractNo`,
lrpd.`vinNo`,
lrpd.`bankName`,
lrpd.dueDate,
lrpd.vehMark,
(
lrpd.`dueMoney` - SUM (IFNULL(lrh.actualMoney, 0))
) AS yq_total,
(
lrpd.`dueMoney` - SUM (IFNULL(lrh.actualMoney, 0))
) / lrpd.`dueMoney` AS yq_hsqs,
lrpd.customer,
ct.mobile,
lr.createTime,
lrpd.borrowerSid,
lrpd.salesOrderSid
FROM
`loan_repayment_plan_details` lrpd
LEFT JOIN `loan_repayment_history` lrh
ON lrh.planDetailSid = lrpd.`sid`
LEFT JOIN anrui_buscenter.`bus_sales_order_vehicle` bv
ON lrpd.busVinSid = bv.sid
LEFT JOIN
(SELECT
saleVehSid,
createTime
FROM
loan_be_collection_record
ORDER BY createTime DESC
LIMIT 100) lr
ON lrpd.busVinSid = lr.saleVehSid
LEFT JOIN anrui_crm.`crm_customer_temp` ct
ON lrpd.customerSid = ct.sid
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
GROUP BY lrpd.`sid`
HAVING (yq_total > 0)) a1
WHERE a1.borrowerSid = #{borrowerSid}
GROUP BY a1.loanContractNo,
a1.vinNo,
a1.busVinSid
a1.vinNo,
a1.busVinSid
</select>
<select id="initReaRepayment" resultType="com.yxt.anrui.riskcenter.api.loanbeoverdueveh.ReaRepaymentVo">
SELECT DISTINCT ld.`vinNo`,
ld.`vehMark` AS carNum,
ld.`customer` AS custName,
ld.`borrowerName` AS borrerName,
bv.`reaRepaymentName`,
bv.`reaRepaymentPhone`,
ld.`busVinSid` AS saleVehSid
FROM loan_repayment_plan_details ld
LEFT JOIN anrui_buscenter.`bus_sales_order_vehicle` bv
ON ld.`busVinSid` = bv.`sid`
WHERE ld.`busVinSid` = #{saleVehSid}
</select>
</mapper>

12
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehRest.java

@ -1,9 +1,6 @@
package com.yxt.anrui.riskcenter.biz.loanbeoverdueveh;
import com.yxt.anrui.riskcenter.api.loanbeoverdueveh.AllocationQuery;
import com.yxt.anrui.riskcenter.api.loanbeoverdueveh.LoanBeOverdueVehFegin;
import com.yxt.anrui.riskcenter.api.loanbeoverdueveh.LoanBeOverdueVehQuery;
import com.yxt.anrui.riskcenter.api.loanbeoverdueveh.LoanBeOverdueVehVo;
import com.yxt.anrui.riskcenter.api.loanbeoverdueveh.*;
import com.yxt.anrui.riskcenter.api.loanborrower.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
@ -41,4 +38,11 @@ public class LoanBeOverdueVehRest implements LoanBeOverdueVehFegin {
public ResultBean allocationRiskStaff(AllocationQuery allocationQuery) {
return loanBeOverdueVehService.allocationRiskStaff(allocationQuery);
}
@Override
public ResultBean<ReaRepaymentVo> initReaRepayment(String saleVehSid) {
ResultBean rb = ResultBean.fireFail();
ReaRepaymentVo reaRepaymentVo = loanBeOverdueVehService.initReaRepayment(saleVehSid);
return rb.success().setData(reaRepaymentVo);
}
}

13
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehService.java

@ -2,13 +2,13 @@ package com.yxt.anrui.riskcenter.biz.loanbeoverdueveh;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.buscenter.api.bussalesvehicle.BusSalesVehicleFeign;
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loanbecollectionrecord.LoanBeCollectionRecordVehInit;
import com.yxt.anrui.riskcenter.api.loanbeoverdueveh.AllocationQuery;
import com.yxt.anrui.riskcenter.api.loanbeoverdueveh.LoanBeOverdueVehQuery;
import com.yxt.anrui.riskcenter.api.loanbeoverdueveh.LoanBeOverdueVehVo;
import com.yxt.anrui.riskcenter.api.loanbeoverdueveh.*;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
@ -26,6 +26,8 @@ public class LoanBeOverdueVehService {
private SysUserFeign sysUserFeign;
@Autowired
private LoanBeOverdueVehMapper loanBeOverdueVehMapper;
@Autowired
private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign;
public PagerVo<LoanBeOverdueVehVo> listPageVo(PagerQuery<LoanBeOverdueVehQuery> pq) {
LoanBeOverdueVehQuery query = pq.getParams();
@ -186,4 +188,9 @@ public class LoanBeOverdueVehService {
public List<LoanBeCollectionRecordVehInit> initVehListByBorrSid(String borrowerSid) {
return loanBeOverdueVehMapper.initVehListByBorrSid(borrowerSid);
}
public ReaRepaymentVo initReaRepayment(String saleVehSid) {
ReaRepaymentVo reaRepaymentVo = loanBeOverdueVehMapper.initReaRepayment(saleVehSid);
return reaRepaymentVo;
}
}

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyMapper.xml

@ -50,6 +50,8 @@
<select id="dkListPage" resultType="com.yxt.anrui.riskcenter.api.loanbepadsincereapply.DkRecordVo">
SELECT
la.useOrgName,
la.deptName,
la.billNo,
lv.vinNo,
lv.`loanContractNo`,

53
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java

@ -241,6 +241,9 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("la.useOrgName", query.getUseOrgName());
}
if (StringUtils.isNotBlank(query.getDeptName())) {
qw.like("la.deptName", query.getDeptName());
}
if (StringUtils.isNotBlank(query.getBillNo())) {
qw.like("la.billNo", query.getBillNo());
}
@ -250,6 +253,9 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
if (StringUtils.isNotBlank(query.getLoanContractNo())) {
qw.like("lv.loanContractNo", query.getLoanContractNo());
}
if (StringUtils.isNotBlank(query.getBankContractNo())) {
qw.like("lv.bankContractNo", query.getBankContractNo());
}
if (StringUtils.isNotBlank(query.getBankName())) {
qw.like("lv.bankName", query.getBankName());
}
@ -343,9 +349,9 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
BeanUtil.copyProperties(entity, vo);
List<LoanBePadsincereVehDetailsVo> loanBePadsincereVehDetailsVos = loanBePadsincereVehService.selByMainSid(sid);
vo.setLoanBePadsincereVehList(loanBePadsincereVehDetailsVos);
List<LoanFile> loanFiles = loanFileService.selectByLinkSid(sid,LoanFileEnum.BEPADSINCERE.getAttachType());
List<LoanFile> loanFiles = loanFileService.selectByLinkSid(sid, LoanFileEnum.BEPADSINCERE.getAttachType());
List<LoanBePadsincereFile> loanBePadsincereFiles = new ArrayList<>();
if (loanFiles != null && loanFiles.size() > 0){
if (loanFiles != null && loanFiles.size() > 0) {
for (LoanFile loanFile : loanFiles) {
LoanBePadsincereFile loanBePadsincereFile = new LoanBePadsincereFile();
String filePath = loanFile.getFilePath();
@ -391,29 +397,26 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
for (BePadsincereExcelInfo bePadsincereExcelInfo : resultList) {
List<LoanRepaymentScheduleDetailsVo> loanRepaymentScheduleDetailsVos = loanRepaymentScheduleService.selectByBankContractNo(bePadsincereExcelInfo.getBankContractNo());
for (LoanRepaymentScheduleDetailsVo loanRepaymentScheduleDetailsVo : loanRepaymentScheduleDetailsVos) {
String vinNo = loanRepaymentScheduleDetailsVo.getVinNo();
String[] vinNos = vinNo.split(",");
for (String no : vinNos) {
LoanBePadsincereVehDetailsVo loanBePadsincereVehDetailsVo = new LoanBePadsincereVehDetailsVo();
loanBePadsincereVehDetailsVo.setVinNo(no);
loanBePadsincereVehDetailsVo.setLoanContractNo(loanRepaymentScheduleDetailsVo.getLoanContractNo());
loanBePadsincereVehDetailsVo.setBankName(loanRepaymentScheduleDetailsVo.getBankName());
loanBePadsincereVehDetailsVo.setBankContractNo(bePadsincereExcelInfo.getBankContractNo());
BusSalesOrder busSalesOrder = busSalesOrderFeign.fetchBySid(loanRepaymentScheduleDetailsVo.getSalesOrderSid()).getData();
loanBePadsincereVehDetailsVo.setCustomerName(busSalesOrder.getCustomerName());
loanBePadsincereVehDetailsVo.setBorrowerName(loanRepaymentScheduleDetailsVo.getBorrowerName());
loanBePadsincereVehDetailsVo.setPeriod(bePadsincereExcelInfo.getPeriod());
String sysBeMoney = loanRepaymentPlanDetailsService.selBeMoney(no, bePadsincereExcelInfo.getPeriod(), bePadsincereExcelInfo.getBankContractNo());
loanBePadsincereVehDetailsVo.setSysBeMoney(sysBeMoney);
loanBePadsincereVehDetailsVo.setBankBeMoney(String.valueOf(Integer.parseInt(bePadsincereExcelInfo.getBePrincipal()) / vinNos.length));
loanBePadsincereVehDetailsVo.setBankBeInter(String.valueOf(Integer.parseInt(bePadsincereExcelInfo.getBeDefInter()) / vinNos.length));
loanBePadsincereVehDetailsVo.setPadMoney(String.valueOf(Integer.parseInt(loanBePadsincereVehDetailsVo.getBankBeMoney()) + Integer.parseInt(loanBePadsincereVehDetailsVo.getBankBeInter())));
loanBePadsincereVehDetailsVo.setPaymentAccount(bePadsincereExcelInfo.getPaymentAccount());
loanBePadsincereVehDetailsVo.setPaymentNum(bePadsincereExcelInfo.getPaymentNum());
loanBePadsincereVehDetailsVo.setBankCollectionAcc(bePadsincereExcelInfo.getBankCollectionAcc());
loanBePadsincereVehDetailsVo.setBankCollectionNum(bePadsincereExcelInfo.getBankCollectionNum());
resultList2.add(loanBePadsincereVehDetailsVo);
}
LoanBePadsincereVehDetailsVo loanBePadsincereVehDetailsVo = new LoanBePadsincereVehDetailsVo();
loanBePadsincereVehDetailsVo.setVinNo(loanRepaymentScheduleDetailsVo.getVinNo());
loanBePadsincereVehDetailsVo.setLoanContractNo(loanRepaymentScheduleDetailsVo.getLoanContractNo());
loanBePadsincereVehDetailsVo.setBankName(loanRepaymentScheduleDetailsVo.getBankName());
loanBePadsincereVehDetailsVo.setBankContractNo(bePadsincereExcelInfo.getBankContractNo());
BusSalesOrder busSalesOrder = busSalesOrderFeign.fetchBySid(loanRepaymentScheduleDetailsVo.getSalesOrderSid()).getData();
loanBePadsincereVehDetailsVo.setCustomerName(busSalesOrder.getCustomerName());
loanBePadsincereVehDetailsVo.setBorrowerName(loanRepaymentScheduleDetailsVo.getBorrowerName());
loanBePadsincereVehDetailsVo.setPeriod(bePadsincereExcelInfo.getPeriod());
String sysBeMoney = loanRepaymentPlanDetailsService.selBeMoney(loanRepaymentScheduleDetailsVo.getVinNo(), bePadsincereExcelInfo.getPeriod(), bePadsincereExcelInfo.getBankContractNo());
loanBePadsincereVehDetailsVo.setSysBeMoney(sysBeMoney);
loanBePadsincereVehDetailsVo.setBankBeMoney(String.valueOf(Integer.parseInt(bePadsincereExcelInfo.getBePrincipal()) / loanRepaymentScheduleDetailsVos.size()));
loanBePadsincereVehDetailsVo.setBankBeInter(String.valueOf(Integer.parseInt(bePadsincereExcelInfo.getBeDefInter()) / loanRepaymentScheduleDetailsVos.size()));
loanBePadsincereVehDetailsVo.setPadMoney(String.valueOf(Integer.parseInt(loanBePadsincereVehDetailsVo.getBankBeMoney()) + Integer.parseInt(loanBePadsincereVehDetailsVo.getBankBeInter())));
loanBePadsincereVehDetailsVo.setPaymentAccount(bePadsincereExcelInfo.getPaymentAccount());
loanBePadsincereVehDetailsVo.setPaymentNum(bePadsincereExcelInfo.getPaymentNum());
loanBePadsincereVehDetailsVo.setBankCollectionAcc(bePadsincereExcelInfo.getBankCollectionAcc());
loanBePadsincereVehDetailsVo.setBankCollectionNum(bePadsincereExcelInfo.getBankCollectionNum());
loanBePadsincereVehDetailsVo.setBusVinSid(loanRepaymentScheduleDetailsVo.getBusVinSid());
resultList2.add(loanBePadsincereVehDetailsVo);
}
}
if (StringUtils.isNotBlank(importReturn.getCheckInfo())) {

1
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehService.java

@ -84,6 +84,7 @@ public class LoanBePadsincereVehService extends MybatisBaseService<LoanBePadsinc
public void insertByDto(LoanBePadsincereVehDto dto) {
LoanBePadsincereVeh entity = new LoanBePadsincereVeh();
BeanUtil.copyProperties(dto, entity, "id", "sid");
entity.setSaleVehSid(dto.getBusVinSid());
baseMapper.insert(entity);
}

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

@ -41,12 +41,15 @@
<select id="selectByBankContractNo"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleDetailsVo">
SELECT loanContractNo,
vinNo,
bankName,
borrowerName,
salesOrderSid
FROM loan_repayment_schedule
WHERE bankContractNo = #{bankContractNo}
SELECT DISTINCT lrs.loanContractNo,
lrpd.vinNo,
lrs.bankName,
lrs.borrowerName,
lrs.salesOrderSid,
lrpd.busVinSid
FROM loan_repayment_schedule lrs
LEFT JOIN loan_repayment_plan_details lrpd
ON lrpd.scheduleSid = lrs.sid
WHERE lrs.bankContractNo = #{bankContractNo}
</select>
</mapper>

36
doc/databases/报表中心.sql

@ -582,11 +582,11 @@ where DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- ==============================================
-- 欠款出库数量、欠款出库金额万元、金融未放款数量、金融未放款金额(万元)
-- 欠款出库数量--截止当日欠款出库申请通过且未回清款的台数
update daily_report r inner join (
update daily_report r inner join (select sum(cc.scount) as scount,cc.useOrgSid, cc.vehMConfigSid, cc.vehModelSid from (
select count(bdad.id) as scount, ba.useOrgSid, bm.modelConfigSid as vehMConfigSid, bm.modelSid as vehModelSid
from anrui_buscenter.bus_delivered_apply_details bdad
left join anrui_buscenter.bus_delivered_apply ba on ba.sid = bdad.applySid
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.sid = bdad.sid
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.sid = bdad.busVinSid
left join anrui_buscenter.bus_sales_order bo on bo.sid = bv.salesOrderSid
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bo.sid
left join anrui_fin.fin_uncollected_receivables_detailed fd on fd.busVinSid = bdad.busVinSid
@ -594,7 +594,20 @@ update daily_report r inner join (
where ba.nodeState = '已办结'
and ba.typeState = 1
group by bdad.busVinSid, ba.useOrgSid, bm.modelSid, bm.modelConfigSid
having sum(fd.reveivableMoney) > ifnull(sum(fs.subscriptionMoney), 0)) s
having sum(fd.reveivableMoney) > ifnull(sum(fs.subscriptionMoney), 0)
union all
select count(bdad.id) as scount,ba.useOrgSid,bm.modelConfigSid as vehMConfigSid, bm.modelSid as vehModelSid
from anrui_buscenter.bus_arrears_carry_vehicle_details bdad
left join anrui_buscenter.bus_arrears_carry_vehicle_apply ba on ba.sid = bdad.applySid
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.linkSid = bdad.vinSid
left join anrui_buscenter.bus_sales_order bo on bo.sid = bv.salesOrderSid
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bo.sid
left join anrui_fin.fin_uncollected_receivables_detailed fd on fd.busVinSid = bv.sid
left join anrui_fin.fin_selected_receivables_detailed fs on fs.receivablesSid = fd.sid
where ba.nodeState = '已办结'
group by bv.sid, ba.useOrgSid, bm.modelSid, bm.modelConfigSid
having sum(fd.reveivableMoney) > ifnull(sum(fs.subscriptionMoney), 0)) cc
) s
on r.useOrgSid = s.useOrgSid
and r.vehModelSid = s.vehModelSid
and r.vehMConfigSid = s.vehMConfigSid
@ -603,23 +616,34 @@ where DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 欠款出库金融--截止当日欠款出库申请通过且未回清款的台数欠款总额
update daily_report r inner join (
update daily_report r inner join (select sum(cc.scount) as scount,cc.useOrgSid, cc.vehMConfigSid, cc.vehModelSid from (
select (sum(fd.reveivableMoney) - sum(fs.subscriptionMoney)) as scount,
ba.useOrgSid,
bm.modelConfigSid as vehMConfigSid,
bm.modelSid as vehModelSid
from anrui_buscenter.bus_delivered_apply_details bdad
left join anrui_buscenter.bus_delivered_apply ba on ba.sid = bdad.applySid
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.sid = bdad.sid
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.sid = bdad.busVinSid
left join anrui_buscenter.bus_sales_order bo on bo.sid = bv.salesOrderSid
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bo.sid
left join anrui_base.base_vehicle_state bs on bs.busSid = bdad.busVinSid
left join anrui_fin.fin_uncollected_receivables_detailed fd on fd.busVinSid = bdad.busVinSid
left join anrui_fin.fin_selected_receivables_detailed fs on fs.receivablesSid = fd.sid
where ba.nodeState = '已办结'
and ba.typeState = 1
group by bdad.busVinSid, ba.useOrgSid, bm.modelSid, bm.modelConfigSid
having sum(fd.reveivableMoney) > ifnull(sum(fs.subscriptionMoney), 0)
union all
select (sum(fd.reveivableMoney) - sum(fs.subscriptionMoney)) as scount,ba.useOrgSid,bm.modelConfigSid as vehMConfigSid, bm.modelSid as vehModelSid
from anrui_buscenter.bus_arrears_carry_vehicle_details bdad
left join anrui_buscenter.bus_arrears_carry_vehicle_apply ba on ba.sid = bdad.applySid
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.linkSid = bdad.vinSid
left join anrui_buscenter.bus_sales_order bo on bo.sid = bv.salesOrderSid
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bo.sid
left join anrui_fin.fin_uncollected_receivables_detailed fd on fd.busVinSid = bv.sid
left join anrui_fin.fin_selected_receivables_detailed fs on fs.receivablesSid = fd.sid
where ba.nodeState = '已办结'
group by bv.sid, ba.useOrgSid, bm.modelSid, bm.modelConfigSid
having sum(fd.reveivableMoney) > ifnull(sum(fs.subscriptionMoney), 0)) cc
) s
on r.useOrgSid = s.useOrgSid
and r.vehModelSid = s.vehModelSid

Loading…
Cancel
Save