Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
God 1 year ago
parent
commit
59b98fb14d
  1. 39
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  2. 21
      anrui-riskcenter-ui/src/api/returntheaccount/returntheaccount.js
  3. 16
      anrui-riskcenter-ui/src/router/index.js
  4. 123
      anrui-riskcenter-ui/src/views/repaymentschedule/repaymentscheduleAdd.vue
  5. 404
      anrui-riskcenter-ui/src/views/returntheaccount/returntheaccount.vue
  6. 2
      anrui-riskcenter-ui/src/views/secondarysublet/secondarysubletAdd.vue
  7. 2
      anrui-riskcenter-ui/src/views/workFlow/ercizhuanzuFlow/secondarysubletEdit.vue
  8. 9
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml
  9. 20
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml
  10. 35
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java

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

@ -3804,6 +3804,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
} }
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsFeign.fetchDetails(planSid).getData(); LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsFeign.fetchDetails(planSid).getData();
if (null != planDetails) { if (null != planDetails) {
if (v.getReceivablesName().equals("月还")) {
if (null != planDetails.getPaymentMoney()) { if (null != planDetails.getPaymentMoney()) {
if (planDetails.getPaymentMoney().compareTo(BigDecimal.ZERO) == 1) { if (planDetails.getPaymentMoney().compareTo(BigDecimal.ZERO) == 1) {
String orderSid = planDetails.getSalesOrderSid(); String orderSid = planDetails.getSalesOrderSid();
@ -3840,6 +3841,44 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
} }
} }
} }
if (v.getReceivablesName().equals("资方逾期利息")) {
if (null != planDetails.getPaymentInterest()) {
if (planDetails.getPaymentInterest().compareTo(BigDecimal.ZERO) == 1) {
String orderSid = planDetails.getSalesOrderSid();
ResultBean<LoanFinBank> bankResultBean = loanFinBankFeign.reAdvancesByOrderSid(orderSid);
if (bankResultBean.getData() != null) {
LoanFinBank loanFinBank = bankResultBean.getData();
if (null != loanFinBank.getReAdvances()) {
BigDecimal paymentInterest = planDetails.getPaymentInterest();
String subscriptionMoney = v.getSubscriptionMoney();
BigDecimal subtract = paymentInterest.subtract(new BigDecimal(subscriptionMoney));
planDetails.setPaymentInterest(subtract);
loanRepaymentPlanDetailsFeign.updateByEntity(planDetails);
if (loanFinBank.getReAdvances() == 1) {
FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR();
jr.setCreateBySid(userSid);
SysUserVo userVo = sysUserFeign.fetchBySid(sid).getData();
jr.setCreateByName(userVo.getName());
jr.setBusSid(planSid);
jr.setCurrentReceivableMoney(new BigDecimal(v.getSubscriptionMoney()));
jr.setReveivableMoney(new BigDecimal(v.getSubscriptionMoney()));
jr.setPayCostTitleKey("007");
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());
finUncollectedReceivablesDetailedJRService.insert(jr);
}
}
}
}
}
}
}
} }
//认资金占用费消减平台资金占用费 //认资金占用费消减平台资金占用费
if (v.getReceivablesName().equals("资金占用费")) { if (v.getReceivablesName().equals("资金占用费")) {

21
anrui-riskcenter-ui/src/api/returntheaccount/returntheaccount.js

@ -0,0 +1,21 @@
import request from '@/utils/request'
export default {
// 查询分页列表
listPage: function(params) {
return request({
url: '/riskcenter/v1/LoanReturnVehLedger/listPage',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
update: function(data) {
return request({
url: '/riskcenter/v1/LoanReturnVehLedger/update',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
}
}

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

@ -599,6 +599,22 @@ export const constantRoutes = [
} }
] ]
}, },
{
path: '/returntheaccount',
component: Layout,
redirect: '/returntheaccount',
meta: {
title: '交回车辆台账'
},
children: [
{
path: '/returntheaccount/returntheaccount',
component: () => import('@/views/returntheaccount/returntheaccount.vue'),
name: 'ReturnTheAccount',
meta: { title: '交回车辆台账', noCache: true }
}
]
},
{ {
path: '/surrenderforredemption', path: '/surrenderforredemption',
component: Layout, component: Layout,

123
anrui-riskcenter-ui/src/views/repaymentschedule/repaymentscheduleAdd.vue

@ -2,7 +2,7 @@
<div class="app-container"> <div class="app-container">
<div v-show="viewState == 1"> <div v-show="viewState == 1">
<div class="tab-header webtop"> <div class="tab-header webtop">
<div>{{ viewTitle }}</div> <div>生成还款计划表<span style="color: red">(单车)</span></div>
<div> <div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate()">生成</el-button> <el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate()">生成</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button> <el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
@ -27,7 +27,7 @@
<div class="title titleOne"> <div class="title titleOne">
<div>主金融产品<span>{{ (formobj.policyName) }}</span></div> <div>主金融产品<span>{{ (formobj.policyName) }}</span></div>
<div> <div>
<el-button type="primary" size="mini" class="btntopblueline" @click="lookJR">查看金融方案</el-button> <el-button type="primary" size="mini" class="btntopblueline" @click="lookJR">查看单车金融方案</el-button>
</div> </div>
</div> </div>
<el-row> <el-row>
@ -40,30 +40,30 @@
<el-form-item><span class="addinputInfo">{{ formobj.mainPeriod }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.mainPeriod }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">首期还款日</div> <div class="span-sty"><span class="icon">*</span>首期还款日</div>
<el-form-item><el-date-picker class="addinputInfo" @change="mainRepayDateChange" v-model="formobj.mainRepayDate" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"/></el-form-item> <el-form-item prop="mainRepayDate"><el-date-picker class="addinputInfo" @change="mainRepayDateChange" v-model="formobj.mainRepayDate" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"/></el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">首期月还</div> <div class="span-sty"><span class="icon">*</span>首期月还</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.mainFirstRepay" clearable placeholder=""/></el-form-item> <el-form-item prop="mainFirstRepay"><el-input class="addinputInfo addinputw" v-model="formobj.mainFirstRepay" clearable placeholder=""/></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">期间月还</div> <div class="span-sty"><span class="icon">*</span>期间月还</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.mainMidRepay" clearable placeholder=""/></el-form-item> <el-form-item prop="mainMidRepay"><el-input class="addinputInfo addinputw" v-model="formobj.mainMidRepay" clearable placeholder=""/></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">末期月还</div> <div class="span-sty"><span class="icon">*</span>末期月还</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.mainLastRepay" clearable placeholder=""/></el-form-item> <el-form-item prop="mainLastRepay"><el-input class="addinputInfo addinputw" v-model="formobj.mainLastRepay" clearable placeholder=""/></el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<div v-if="formobj.isOtherPolicy == '1'"> <div v-if="formobj.isOtherPolicy == '1'">
<div class="title">其它融<span>({{ formobj.otherPolicyName }})</span></div> <div class="title">其它融<span>({{ formobj.otherPolicyName }})</span></div>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<div class="span-sty">资方合同号</div> <div class="span-sty"><span class="icon">*</span>资方合同号</div>
<el-form-item> <el-form-item prop="otherBankNo">
<span v-if="formobj.sameBank == '1'" class="addinputInfo">{{ formobj.otherBankNo }}</span> <span v-if="formobj.sameBank == '1'" class="addinputInfo">{{ formobj.otherBankNo }}</span>
<el-input v-else class="addinputInfo" style="width: 30%" v-model="formobj.otherBankNo" clearable placeholder=""/> <el-input v-else class="addinputInfo" style="width: 30%" v-model="formobj.otherBankNo" clearable placeholder=""/>
</el-form-item> </el-form-item>
@ -85,16 +85,16 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">首期月还</div> <div class="span-sty"><span class="icon">*</span>首期月还</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.otherFirstRepay" clearable placeholder=""/></el-form-item> <el-form-item prop="otherFirstRepay"><el-input class="addinputInfo addinputw" v-model="formobj.otherFirstRepay" clearable placeholder=""/></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">期间月还</div> <div class="span-sty"><span class="icon">*</span>期间月还</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.otherMidRepay" clearable placeholder=""/></el-form-item> <el-form-item prop="otherMidRepay"><el-input class="addinputInfo addinputw" v-model="formobj.otherMidRepay" clearable placeholder=""/></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">末期月还</div> <div class="span-sty"><span class="icon">*</span>末期月还</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.otherLastRepay" clearable placeholder=""/></el-form-item> <el-form-item prop="otherLastRepay"><el-input class="addinputInfo addinputw" v-model="formobj.otherLastRepay" clearable placeholder=""/></el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
@ -116,8 +116,73 @@ export default {
financialschemeInfo financialschemeInfo
}, },
data() { data() {
var mainFirstRepay = (rule, value, callback) => {
if (value === '') {
callback(new Error('主金融产品期间月还不能为空'))
} else {
if (value == '0') {
callback(new Error('主金融产品期间月还不能为零'))
} else {
callback()
}
}
}
var mainMidRepay = (rule, value, callback) => {
if (value === '') {
callback(new Error('主金融产品期间月还不能为空'))
} else {
if (value == '0') {
callback(new Error('主金融产品期间月还不能为零'))
} else {
callback()
}
}
}
var mainLastRepay = (rule, value, callback) => {
if (value === '') {
callback(new Error('主金融产品末期月还不能为空'))
} else {
if (value == '0') {
callback(new Error('主金融产品末期月还不能为零'))
} else {
callback()
}
}
}
var otherFirstRepay = (rule, value, callback) => {
if (value === '') {
callback(new Error('其它融首期月还不能为空'))
} else {
if (value == '0') {
callback(new Error('其它融首期月还不能为零'))
} else {
callback()
}
}
}
var otherMdRepay = (rule, value, callback) => {
if (value === '') {
callback(new Error('其它融期间月还不能为空'))
} else {
if (value == '0') {
callback(new Error('其它融期间月还不能为零'))
} else {
callback()
}
}
}
var otherLastRepay = (rule, value, callback) => {
if (value === '') {
callback(new Error('其它融末期月还不能为空'))
} else {
if (value == '0') {
callback(new Error('其它融末期月还不能为零'))
} else {
callback()
}
}
}
return { return {
viewTitle: '',
viewState: 1, viewState: 1,
submitdisabled: false, submitdisabled: false,
formobj: { formobj: {
@ -146,12 +211,20 @@ export default {
userSid: '', userSid: '',
solutionsDetailsssVo: [] solutionsDetailsssVo: []
}, },
rules: {} rules: {
mainRepayDate: [{ required: true, message: '首期还款日不能为空', trigger: 'change' }],
mainFirstRepay: [{ required: true, validator: mainFirstRepay, trigger: 'blur' }],
mainMidRepay: [{ required: true, validator: mainMidRepay, trigger: 'blur' }],
mainLastRepay: [{ required: true, validator: mainLastRepay, trigger: 'blur' }],
otherFirstRepay: [{ required: true, validator: otherFirstRepay, trigger: 'blur' }],
otherMidRepay: [{ required: true, validator: otherMdRepay, trigger: 'blur' }],
otherLastRepay: [{ required: true, validator: otherLastRepay, trigger: 'blur' }],
otherBankNo: [{ required: true, message: '其它融资方合同号不能为空', trigger: 'blur' }]
}
} }
}, },
methods: { methods: {
showEdit(sid) { showEdit(sid) {
this.viewTitle = '生成还款计划表'
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['form_obj'].clearValidate() this.$refs['form_obj'].clearValidate()
}) })
@ -176,6 +249,11 @@ export default {
this.$message({ showClose: true, type: 'success', message: '生成成功' }) this.$message({ showClose: true, type: 'success', message: '生成成功' })
this.handleReturn('true') this.handleReturn('true')
} }
else {
this.submitdisabled = false
}
}).catch(() => {
this.submitdisabled = false
}) })
} }
}) })
@ -233,6 +311,9 @@ export default {
.addinputInfo { .addinputInfo {
margin-left: 120px !important; margin-left: 120px !important;
} }
/deep/ .el-form-item__error {
margin-left: 110px !important;
}
.titleOne { .titleOne {
padding: 7px; padding: 7px;
display: flex; display: flex;

404
anrui-riskcenter-ui/src/views/returntheaccount/returntheaccount.vue

@ -0,0 +1,404 @@
<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.vinNo" placeholder="" clearable/>
</el-form-item>
<el-form-item label="车牌号">
<el-input v-model="listQuery.params.vehMark" placeholder="" clearable/>
</el-form-item>
<el-form-item label="车辆类型">
<el-input v-model="listQuery.params.vehType" placeholder="" clearable/>
</el-form-item>
<el-form-item label="车型">
<el-input v-model="listQuery.params.vehModel" placeholder="" clearable/>
</el-form-item>
<el-form-item label="客户名称">
<el-input v-model="listQuery.params.customer" 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.location" placeholder="" clearable/>
</el-form-item>
<el-form-item label="处置方式">
<el-select v-model="listQuery.params.disposalKey" placeholder="请选择" clearable>
<el-option v-for="item in disposal_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option>
</el-select>
</el-form-item>
<el-form-item label="入库日期">
<el-date-picker v-model="listQuery.params.inboundDateStart" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.inboundDateEnd" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>
</el-form-item>
<el-form-item label="出库日期">
<el-date-picker v-model="listQuery.params.outboundDateStart" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.outEndDate" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>
</el-form-item>
<el-form-item label="库存状态">
<el-select v-model="listQuery.params.vehicleState" placeholder="请选择" clearable>
<el-option v-for="item in vehicleState_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option>
</el-select>
</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%;" @selection-change="handleSelectionChange">
<el-table-column type="selection" align="center" width="50"/>
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center"/>
<el-table-column label="分公司" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.useOrgName }}</span>
</template>
</el-table-column>
<el-table-column label="车架号" align="center" width="120">
<template slot-scope="scope">
<span class="bluezi" @click="lookVin(scope.row)">{{ scope.row.vinNo }}</span>
</template>
</el-table-column>
<el-table-column label="车牌号" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.vehMark }}</span>
</template>
</el-table-column>
<el-table-column label="车辆类型" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.vehType }}</span>
</template>
</el-table-column>
<el-table-column label="车型" align="center" min-width="170">
<template slot-scope="scope">
<span>{{ scope.row.vehModel }}</span>
</template>
</el-table-column>
<el-table-column label="客户名称" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.customer }}</span>
</template>
</el-table-column>
<el-table-column label="贷款人" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.borrowerName }}</span>
</template>
</el-table-column>
<el-table-column label="逾期金额" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.overMoney }}</span>
</template>
</el-table-column>
<el-table-column label="未到期金额" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.notBecomeDueMoney }}</span>
</template>
</el-table-column>
<el-table-column label="存放地点" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.location }}</span>
</template>
</el-table-column>
<el-table-column label="处置方式" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.disposal }}</span>
</template>
</el-table-column>
<el-table-column label="入库价" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.inboundMoney }}</span>
</template>
</el-table-column>
<el-table-column label="入库日期" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.inboundDate }}</span>
</template>
</el-table-column>
<el-table-column label="出库日期" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.outboundDate }}</span>
</template>
</el-table-column>
<el-table-column label="库存状态" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.vehicleState }}</span>
</template>
</el-table-column>
</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>
<!-- 查看交回车辆入库申请详情 -->
<returntostorageInfo v-show="viewState == 2" ref="divStorage" @doback="resetState"/>
<!-- 修改存放地点 -->
<el-dialog title="编辑存放地点" :visible.sync="dialogVisible" width="60%">
<el-form class="formadd" >
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="4" class="tleftb">
<span>存放地点</span>
</el-col>
<el-col :span="20">
<el-form-item><el-input size="small" v-model="formobj.location" placeholder="" class="addinputw" clearable ></el-input></el-form-item>
</el-col>
</el-row>
<div style="text-align:center;margin-top: 20px;">
<el-button type="primary" size="mini" @click="confirm"> </el-button>
<el-button type="info " size="mini" @click="dialogVisible = false"> </el-button>
</div>
</el-form>
</el-dialog>
</div>
</template>
<script>
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import req from '@/api/returntheaccount/returntheaccount'
import { typeValues } from '@/api/Common/dictcommons'
import returntostorageInfo from '../returntostorage/returntostorageInfo'
export default {
name: 'ReturnTheAccount',
components: {
Pagination,
pageye,
ButtonBar,
returntostorageInfo
},
data() {
return {
dialogVisible: false,
formobj: {
location: '',
locationSid: '',
sid: ''
},
btndisabled: false,
btnList: [
{
type: 'primary',
size: 'small',
icon: 'edit',
btnKey: 'toEdit',
btnLabel: '编辑'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
isSearchShow: false,
searchxianshitit: '显示查询条件',
viewState: 1, // 1 2 3 4
tableKey: 0,
list: [],
sids: [], // SIDs
disposal_list: [],
vehicleState_list: [],
FormLoading: false,
listLoading: false,
//
listQuery: {
current: 1,
size: 5,
total: 0,
params: {
borrowerName: '',
customer: '',
disposalKey: '',
inboundDateEnd: '',
inboundDateStart: '',
location: '',
menuUrl: '',
orgPath: '',
outboundDateEnd: '',
outboundDateStart: '',
useOrgName: '',
userSid: '',
vehMark: '',
vehModel: '',
vehType: '',
vehicleState: '',
vinNo: ''
}
}
}
},
created() {
this.init()
this.getList()
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {
init() {
typeValues({ type: 'disposal' }).then((res) => {
if (res.success) {
this.disposal_list = res.data
}
})
typeValues({ type: 'returnVehicleState' }).then((res) => {
if (res.success) {
this.vehicleState_list = res.data
}
})
},
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'toEdit':
this.toEdit()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
// sid
handleSelectionChange(row) {
const aa = []
row.forEach(element => {
aa.push(element.sid)
})
this.sids = aa
},
//
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.listPage(this.listQuery).then(response => {
this.listLoading = false
if (response.success) {
this.list = response.data.records
this.listQuery.total = response.data.total
} else {
this.list = []
this.listQuery.total = 0
}
})
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
//
handleReset() {
this.listQuery = {
current: 1,
size: 5,
total: 0,
params: {
borrowerName: '',
customer: '',
disposalKey: '',
inboundDateEnd: '',
inboundDateStart: '',
location: '',
menuUrl: '',
orgPath: '',
outboundDateEnd: '',
outboundDateStart: '',
useOrgName: '',
userSid: '',
vehMark: '',
vehModel: '',
vehType: '',
vehicleState: '',
vinNo: ''
}
}
this.getList()
},
toEdit() {
if (this.sids.length === 1) {
this.formobj = {
location: '',
locationSid: '',
sid: ''
}
this.dialogVisible = true
} else {
this.$message({ showClose: true, type: 'error', message: '请选择一条记录进行编辑操作' })
}
},
confirm() {
this.formobj.sid = this.sids[0]
req.update(this.formobj).then((resp) => {
if (resp.success) {
this.$message({showClose: true, type: 'success', message: '操作成功' })
this.dialogVisible = false
this.getList()
}
})
},
lookVin(row) {
this.viewState = 2
this.$refs['divStorage'].showInfo({ sid: row.busSid })
},
//
resetState() {
this.viewState = 1
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
</style>

2
anrui-riskcenter-ui/src/views/secondarysublet/secondarysubletAdd.vue

@ -226,7 +226,7 @@ export default {
this.customerType_list = res.data this.customerType_list = res.data
} }
}) })
typeValues({ type: 'documenttype' }).then((res) => { typeValues({ type: 'certificateType' }).then((res) => {
if (res.success) { if (res.success) {
this.certificateType_list = res.data this.certificateType_list = res.data
} }

2
anrui-riskcenter-ui/src/views/workFlow/ercizhuanzuFlow/secondarysubletEdit.vue

@ -242,7 +242,7 @@ export default {
this.customerType_list = res.data this.customerType_list = res.data
} }
}) })
typeValues({ type: 'documenttype' }).then((res) => { typeValues({ type: 'certificateType' }).then((res) => {
if (res.success) { if (res.success) {
this.certificateType_list = res.data this.certificateType_list = res.data
} }

9
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml

@ -178,11 +178,7 @@
<select id="repaymentStatistics" <select id="repaymentStatistics"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymenthistory.RepaymentStatisticsVo"> resultType="com.yxt.anrui.riskcenter.api.loanrepaymenthistory.RepaymentStatisticsVo">
SELECT DISTINCT SELECT DISTINCT
a.*, a.*
IFNULL((SELECT SUM(c.bankBeInter) FROM loan_be_padsincere_apply as ap
LEFT JOIN loan_be_padsincere_veh as c on ap.sid = c.mainSid
WHERE c.saleVehSid = a.busVinSid AND c.period = a.period AND ap.nodeState = '已办结'
),0) as bankBeInter
FROM FROM
( (
SELECT SELECT
@ -202,6 +198,7 @@
pd.borrowerName, pd.borrowerName,
pd.period, pd.period,
pd.paymentMoney, pd.paymentMoney,
pd.paymentInterest as bankBeInter,
pd.fund, pd.fund,
pd.dueMoney, pd.dueMoney,
t.repaidMoney, t.repaidMoney,
@ -378,6 +375,6 @@
FROM loan_transfer_payment_record AS r FROM loan_transfer_payment_record AS r
where r.repaymentHistorySid = #{sid} where r.repaymentHistorySid = #{sid}
and r.state = 1 and r.state = 1
</select> </select>
</mapper> </mapper>

20
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml

@ -148,12 +148,13 @@
pd.overdue, pd.overdue,
t.repaidMoney, t.repaidMoney,
t.outstandingMoney, t.outstandingMoney,
IFNULL(v.bankBeInter, 0) AS bankBeInter, -- IFNULL(v.bankBeInter, 0) AS bankBeInter,
IFNULL(pd.paymentInterest, 0) AS bankBeInter,
pd.overdue AS dueOverdue, pd.overdue AS dueOverdue,
pd.updateTime AS updateDate pd.updateTime AS updateDate
FROM loan_repayment_plan_details AS pd FROM loan_repayment_plan_details AS pd
LEFT JOIN anrui_buscenter.bus_sales_order AS s ON s.sid = pd.salesOrderSid LEFT JOIN anrui_buscenter.bus_sales_order AS s ON s.sid = pd.salesOrderSid
LEFT JOIN loan_be_padsincere_veh AS v ON v.saleVehSid = pd.busVinSid -- LEFT JOIN loan_be_padsincere_veh AS v ON v.saleVehSid = pd.busVinSid
LEFT JOIN ( LEFT JOIN (
SELECT p.sid, SELECT p.sid,
IFNULL(( IFNULL((
@ -289,13 +290,14 @@
pd.salesOrderSid, pd.salesOrderSid,
t.repaidMoney, t.repaidMoney,
t.outstandingMoney, t.outstandingMoney,
IFNULL( v.bankBeInter, 0 ) AS bankBeInter, -- IFNULL( v.bankBeInter, 0 ) AS bankBeInter,
IFNULL( pd.paymentInterest, 0 ) AS bankBeInter,
pd.overdue AS dueOverdue, pd.overdue AS dueOverdue,
pd.updateTime AS updateDate pd.updateTime AS updateDate
FROM FROM
loan_repayment_plan_details AS pd loan_repayment_plan_details AS pd
LEFT JOIN anrui_buscenter.bus_sales_order AS s ON s.sid = pd.salesOrderSid LEFT JOIN anrui_buscenter.bus_sales_order AS s ON s.sid = pd.salesOrderSid
LEFT JOIN loan_be_padsincere_veh AS v ON v.saleVehSid = pd.busVinSid -- LEFT JOIN loan_be_padsincere_veh AS v ON v.saleVehSid = pd.busVinSid
LEFT JOIN ( LEFT JOIN (
SELECT SELECT
p.sid, p.sid,
@ -384,13 +386,14 @@
pd.salesOrderSid, pd.salesOrderSid,
t.repaidMoney, t.repaidMoney,
t.outstandingMoney, t.outstandingMoney,
IFNULL( v.bankBeInter, 0 ) AS bankBeInter, -- IFNULL( v.bankBeInter, 0 ) AS bankBeInter,
IFNULL( pd.paymentInterest, 0 ) AS bankBeInter,
pd.overdue AS dueOverdue, pd.overdue AS dueOverdue,
pd.updateTime AS updateDate pd.updateTime AS updateDate
FROM FROM
loan_repayment_plan_details AS pd loan_repayment_plan_details AS pd
LEFT JOIN anrui_buscenter.bus_sales_order AS s ON s.sid = pd.salesOrderSid LEFT JOIN anrui_buscenter.bus_sales_order AS s ON s.sid = pd.salesOrderSid
LEFT JOIN loan_be_padsincere_veh AS v ON v.saleVehSid = pd.busVinSid -- LEFT JOIN loan_be_padsincere_veh AS v ON v.saleVehSid = pd.busVinSid
LEFT JOIN ( LEFT JOIN (
SELECT SELECT
p.sid, p.sid,
@ -490,13 +493,14 @@
pd.salesOrderSid, pd.salesOrderSid,
t.repaidMoney, t.repaidMoney,
t.outstandingMoney, t.outstandingMoney,
IFNULL( v.bankBeInter, 0 ) AS bankBeInter, -- IFNULL( v.bankBeInter, 0 ) AS bankBeInter,
IFNULL( pd.paymentInterest, 0 ) AS bankBeInter,
pd.overdue AS dueOverdue, pd.overdue AS dueOverdue,
pd.updateTime AS updateDate pd.updateTime AS updateDate
FROM FROM
loan_repayment_plan_details AS pd loan_repayment_plan_details AS pd
LEFT JOIN anrui_buscenter.bus_sales_order AS s ON s.sid = pd.salesOrderSid LEFT JOIN anrui_buscenter.bus_sales_order AS s ON s.sid = pd.salesOrderSid
LEFT JOIN loan_be_padsincere_veh AS v ON v.saleVehSid = pd.busVinSid -- LEFT JOIN loan_be_padsincere_veh AS v ON v.saleVehSid = pd.busVinSid
LEFT JOIN ( LEFT JOIN (
SELECT SELECT
p.sid, p.sid,

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

@ -71,6 +71,7 @@ import com.yxt.messagecenter.api.message.MessagePushTransferDto;
import com.yxt.messagecenter.api.message.PushMessageQuery; import com.yxt.messagecenter.api.message.PushMessageQuery;
import com.yxt.messagecenter.api.message.PushSmsDto; import com.yxt.messagecenter.api.message.PushSmsDto;
import com.yxt.messagecenter.api.messagelist.MessageListDto; import com.yxt.messagecenter.api.messagelist.MessageListDto;
import org.apache.poi.hpsf.Decimal;
import org.apache.tomcat.util.threads.ThreadPoolExecutor; import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
@ -148,6 +149,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
BusSalesOrderLoancontractDetailsVo loancontract = busSalesOrderLoancontractFeign.fetchDetailsBySid(salesOrderSid).getData(); BusSalesOrderLoancontractDetailsVo loancontract = busSalesOrderLoancontractFeign.fetchDetailsBySid(salesOrderSid).getData();
String orderSid = ""; String orderSid = "";
String bankNo = ""; String bankNo = "";
String otherBankNo = "";
if (null != loancontract) { if (null != loancontract) {
// 消贷合同编号 // 消贷合同编号
if (StringUtils.isNotBlank(loancontract.getLoanContractNo())) { if (StringUtils.isNotBlank(loancontract.getLoanContractNo())) {
@ -213,6 +215,9 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
if (null != schedule.getMainLastRepay()) { if (null != schedule.getMainLastRepay()) {
vo.setMainLastRepay(schedule.getMainLastRepay().toString()); vo.setMainLastRepay(schedule.getMainLastRepay().toString());
} }
if (StringUtils.isNotBlank(schedule.getOtherBankNo())) {
otherBankNo = schedule.getOtherBankNo();
}
} }
//查看是否有其他融 //查看是否有其他融
LoanSolutionsOtherpolicy otherpolicy = loanSolutionsOtherpolicyService.selectByLoanSid(loanSolutions.getSid()); LoanSolutionsOtherpolicy otherpolicy = loanSolutionsOtherpolicyService.selectByLoanSid(loanSolutions.getSid());
@ -244,6 +249,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
vo.setOtherBankNo(bankNo); vo.setOtherBankNo(bankNo);
} else { } else {
vo.setSameBank("0"); vo.setSameBank("0");
vo.setOtherBankNo(otherBankNo);
} }
} }
// 其他融产品 // 其他融产品
@ -305,6 +311,11 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
orderSid = loancontract.getSalesOrderSid(); orderSid = loancontract.getSalesOrderSid();
} }
} }
LoanSolutionsDetailsssVo solutionsDetailsssVo = new LoanSolutionsDetailsssVo();
ResultBean<SolutionsDetailsVo> solutionsDetailsVoResultBean = loanSolutionsService.selectDetailss(orderSid);
if (solutionsDetailsVoResultBean.getData() != null) {
BeanUtil.copyProperties(solutionsDetailsVoResultBean.getData(), solutionsDetailsssVo);
}
if (StringUtils.isBlank(dto.getMainRepayDate())) { if (StringUtils.isBlank(dto.getMainRepayDate())) {
return rb.setMsg("请选择主金融产品首期还款日!"); return rb.setMsg("请选择主金融产品首期还款日!");
} }
@ -317,6 +328,18 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
if (StringUtils.isBlank(dto.getMainLastRepay())) { if (StringUtils.isBlank(dto.getMainLastRepay())) {
return rb.setMsg("请填写主金融产品末期月还!"); return rb.setMsg("请填写主金融产品末期月还!");
} }
BigDecimal mainRepay = new BigDecimal(dto.getMainMidRepay());
if (null != solutionsDetailsssVo) {
BigDecimal op = new BigDecimal(solutionsDetailsssVo.getLoanPayMoney());
BigDecimal z = op.add(new BigDecimal("50"));
BigDecimal f = op.add(new BigDecimal("-50"));
if (mainRepay.compareTo(z) > 0) {
return rb.setMsg("填写的主产品月还与金融方案月还正负差值不能大于50");
}
if (mainRepay.compareTo(f) < 0) {
return rb.setMsg("填写的主产品月还与金融方案月还正负差值不能大于50");
}
}
if (dto.getIsOtherPolicy().equals("1")) { if (dto.getIsOtherPolicy().equals("1")) {
if (StringUtils.isBlank(dto.getOtherRepayDate())) { if (StringUtils.isBlank(dto.getOtherRepayDate())) {
return rb.setMsg("请选择其他融首期还款日!"); return rb.setMsg("请选择其他融首期还款日!");
@ -330,6 +353,18 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
if (StringUtils.isBlank(dto.getOtherLastRepay())) { if (StringUtils.isBlank(dto.getOtherLastRepay())) {
return rb.setMsg("请填写其他融末期月还!"); return rb.setMsg("请填写其他融末期月还!");
} }
BigDecimal otherRepay = new BigDecimal(dto.getOtherMidRepay());
if (null != solutionsDetailsssVo) {
BigDecimal op = new BigDecimal(solutionsDetailsssVo.getOtherPolicyMonthlyRepay());
BigDecimal z = op.add(new BigDecimal("50"));
BigDecimal f = op.add(new BigDecimal("-50"));
if (otherRepay.compareTo(z) > 0) {
return rb.setMsg("填写的其他融月还与金融方案其他融月还正负差值不能大于50");
}
if (otherRepay.compareTo(f) < 0) {
return rb.setMsg("填写的其他融月还与金融方案其他融月还正负差值不能大于50");
}
}
} }
if (null != loanRepaymentSchedule) { if (null != loanRepaymentSchedule) {
scheduleSid = loanRepaymentSchedule.getSid(); scheduleSid = loanRepaymentSchedule.getSid();

Loading…
Cancel
Save