Browse Source

Merge remote-tracking branch 'origin/master'

master
dimengzhe 2 years ago
parent
commit
9f52cde540
  1. 6
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderborrower/BusNoGuaranteeCreditReviewQuery.java
  2. 1
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderborrower/BusSalesOrderBorrowerMapper.xml
  3. 8
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderborrower/BusSalesOrderBorrowerService.java
  4. 28
      anrui-riskcenter-ui/src/api/unsecuredbusiness/unsecuredbusiness.js
  5. 16
      anrui-riskcenter-ui/src/router/index.js
  6. 287
      anrui-riskcenter-ui/src/views/unsecuredbusiness/unsecuredbusiness.vue
  7. 304
      anrui-riskcenter-ui/src/views/unsecuredbusiness/unsecuredbusinessAdd.vue
  8. 163
      anrui-riskcenter-ui/src/views/unsecuredbusiness/unsecuredbusinessInfo.vue
  9. 1
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java
  10. 3
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinbank/LoanFinBankDto.java
  11. 3
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinbank/LoanFinBankInitVo.java
  12. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReview.java
  13. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewDetailsVo.java
  14. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewDto.java
  15. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewFeign.java
  16. 10
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinbank/LoanFinBankRest.java
  17. 23
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinbank/LoanFinBankService.java
  18. 73
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loannoguaranteecreditreview/LoanNoGuaranteeCreditReviewService.java

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

@ -37,6 +37,12 @@ public class BusNoGuaranteeCreditReviewQuery implements Query {
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("家访考察结果")
private String homeVisitKey;
@ApiModelProperty("信审终审结果")
private String creditReviewKey;
@ApiModelProperty("放款审核结果")
private String loanReviewKey;
@ApiModelProperty("家访考察结果")
private String homeVisit;
@ApiModelProperty("信审终审结果")
private String creditReview;

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

@ -54,6 +54,7 @@
FROM bus_sales_order_borrower AS bor
LEFT JOIN bus_sales_order AS bo ON bor.salesOrderSid = bo.sid
LEFT JOIN anrui_riskcenter.loan_noguarantee_credit_review AS cr ON cr.salesOrderSid = bo.sid
<where>${ew.sqlSegment}</where>
</select>
<select id="saleOrderInputLender" resultType="com.yxt.anrui.buscenter.api.bussalesorder.LenderVo">

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

@ -240,7 +240,7 @@ public class BusSalesOrderBorrowerService extends MybatisBaseService<BusSalesOrd
);
//分公司
if (StringUtils.isNotBlank(pagerQuery.getCompany())) {
qw.like("bo.usdOrgName", pagerQuery.getCompany());
qw.like("bo.useOrgName", pagerQuery.getCompany());
}
//销售部门
if (StringUtils.isNotBlank(pagerQuery.getDepartment())) {
@ -264,15 +264,15 @@ public class BusSalesOrderBorrowerService extends MybatisBaseService<BusSalesOrd
}
//家访考察结果
if (StringUtils.isNotBlank(pagerQuery.getHomeVisit())) {
qw.like("cr.homeVisit", pagerQuery.getHomeVisit());
qw.eq("cr.homeVisit", pagerQuery.getHomeVisit());
}
//信审终审结果
if (StringUtils.isNotBlank(pagerQuery.getCreditReview())) {
qw.like("cr.creditReview", pagerQuery.getCreditReview());
qw.eq("cr.creditReview", pagerQuery.getCreditReview());
}
//放款审核结果
if (StringUtils.isNotBlank(pagerQuery.getLoanReview())) {
qw.like("cr.loanReview", pagerQuery.getLoanReview());
qw.eq("cr.loanReview", pagerQuery.getLoanReview());
}
//是否放款
if (StringUtils.isNotBlank(pagerQuery.getIsLoan())) {

28
anrui-riskcenter-ui/src/api/unsecuredbusiness/unsecuredbusiness.js

@ -0,0 +1,28 @@
import request from '@/utils/request'
export default {
// 查询分页列表
listPage: function(params) {
return request({
url: '/buscenter/v1/bussalesorderborrower/noGuaranteeCreditReviewPage',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
saveOrUpdate: function(data) {
return request({
url: '/riskcenter/v1/noguaranteereview/saveReviewInfo',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
fetchBySid: function(data) {
return request({
url: '/riskcenter/v1/noguaranteereview/details',
method: 'get',
params: data
})
}
}

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

@ -283,6 +283,22 @@ export const constantRoutes = [
}
]
},
{
path: '/unsecuredbusiness',
component: Layout,
redirect: '/unsecuredbusiness',
meta: {
title: '非担保信审'
},
children: [
{
path: '/unsecuredbusiness/unsecuredbusiness',
component: () => import('@/views/unsecuredbusiness/unsecuredbusiness.vue'),
name: 'UnsecuredBusiness',
meta: { title: '非担保信审', noCache: true }
}
]
},
// 流程审批
// 金融产品政策报备--编辑

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

@ -0,0 +1,287 @@
<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" label-width="110px" class="tab-header">
<el-form-item label="分公司">
<el-input v-model="listQuery.params.company" placeholder="" clearable/>
</el-form-item>
<el-form-item label="销售部门">
<el-input v-model="listQuery.params.department" placeholder="" clearable/>
</el-form-item>
<el-form-item label="销售专员">
<el-input v-model="listQuery.params.salesman" placeholder="" clearable/>
</el-form-item>
<el-form-item label="订单日期">
<el-date-picker v-model="listQuery.params.startTime" type="date" clearable format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="选择日期"/>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.endTime" type="date" clearable format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="买卖合同编号">
<el-input v-model="listQuery.params.contractNo" 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.bankName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="家访考察结果">
<el-input v-model="listQuery.params.homeVisit" placeholder="" clearable/>
</el-form-item>
<el-form-item label="信审终审结果">
<el-input v-model="listQuery.params.creditReview" placeholder="" clearable/>
</el-form-item>
<el-form-item label="放款审核结果">
<el-input v-model="listQuery.params.loanReview" placeholder="" clearable/>
</el-form-item>
<el-form-item label="是否放款">
<el-input v-model="listQuery.params.isLoan" 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%;" @selection-change="handleSelectionChange">
<el-table-column fixed type="selection" align="center" width="50"/>
<el-table-column fixed label="序号" type="index" width="80" :index="indexMethod" align="center"/>
<el-table-column fixed label="操作" width="100" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toInfo(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column prop="orderDate" label="订单日期" align="center" width="120"/>
<el-table-column prop="company" label="分公司" align="center" width="120"/>
<el-table-column prop="department" label="销售部门" align="center" width="120"/>
<el-table-column prop="salesman" label="销售专员" align="center" width="100"/>
<el-table-column prop="contractNo" label="买卖合同编号" align="center" width="140"/>
<el-table-column prop="borrowerName" label="贷款人" align="center" width="100"/>
<el-table-column prop="mobile" label="手机号码" align="center" width="100"/>
<el-table-column prop="bankName" label="资方" align="center" width="100"/>
<el-table-column prop="homeVisit" label="家访考察结果" align="center" width="140"/>
<el-table-column prop="homeVisitDate" label="家访考察日期" align="center" width="140"/>
<el-table-column prop="creditReview" label="信审终审结果" align="center" width="140"/>
<el-table-column prop="creditReviewDate" label="信审终审日期" align="center" width="140"/>
<el-table-column prop="loanReview" label="放款审核结果" align="center" width="140"/>
<el-table-column prop="loanReviewDate" label="放款审核日期" align="center" width="140"/>
<el-table-column prop="isLoan" label="是否放款" align="center" width="100"/>
<el-table-column prop="isLoanDate" label="放款日期" align="center" width="120"/>
</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>
<!--新增及修改 -->
<unsecuredbusinessAdd v-show="viewState == 2" ref="divAdd" @doback="resetState" @reloadlist="getList"/>
<!--详情 -->
<unsecuredbusinessInfo v-show="viewState == 3" ref="divInfo" @doback="resetState"/>
</div>
</template>
<script>
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import req from '@/api/unsecuredbusiness/unsecuredbusiness'
import unsecuredbusinessAdd from './unsecuredbusinessAdd'
import unsecuredbusinessInfo from './unsecuredbusinessInfo'
export default {
name: 'UnsecuredBusiness',
components: {
Pagination,
pageye,
ButtonBar,
unsecuredbusinessAdd,
unsecuredbusinessInfo
},
data() {
return {
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
FormLoading: false,
listLoading: false,
//
listQuery: {
current: 1,
size: 10,
total: 0,
params: {
userSid: '',
menuUrl: '',
company: '',
department: '',
salesman: '',
orgPath: '',
startTime: '',
endTime: '',
borrowerName: '',
contractNo: '',
bankName: '',
homeVisit: '',
creditReview: '',
loanReview: '',
isLoan: ''
}
}
}
},
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 'toEdit':
this.toEdit()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
// sid
handleSelectionChange(row) {
const aa = []
row.forEach(element => {
aa.push(element.salesOrderSid)
})
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: 10,
total: 0,
params: {
userSid: '',
menuUrl: '',
company: '',
department: '',
salesman: '',
orgPath: '',
startTime: '',
endTime: '',
borrowerName: '',
contractNo: '',
bankName: '',
homeVisit: '',
creditReview: '',
loanReview: '',
isLoan: ''
}
}
this.getList()
},
toEdit(row) {
if (this.sids.length === 1) {
this.viewState = 2
this.$refs['divAdd'].showEdit(this.sids[0])
} else {
this.$message({ showClose: true, type: 'error', message: '请选择一条记录进行编辑操作' })
}
},
toInfo(row) {
this.viewState = 3
this.$refs['divInfo'].showInfo(row)
},
resetState() {
this.viewState = 1
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
</style>

304
anrui-riskcenter-ui/src/views/unsecuredbusiness/unsecuredbusinessAdd.vue

@ -0,0 +1,304 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate()">保存</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="12">
<div class="span-sty">销售专员</div>
<el-form-item><span class="addinputInfo">{{ formobj.salesman }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">贷款人</div>
<el-form-item><span class="addinputInfo">{{ formobj.borrowerName }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">家访考察结果</div>
<el-form-item>
<el-select class="addinputInfo" v-model="formobj.homeVisitKey" @change="homeVisitChange" placeholder="请选择" clearable filterable>
<el-option v-for="item in result_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">家访考察日期</div>
<el-form-item>
<el-date-picker class="addinputInfo" v-model="formobj.homeVisitDate" type="date" clearable format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">资方信审终审结果</div>
<el-form-item>
<el-select class="addinputInfo" v-model="formobj.creditReviewKey" @change="creditReviewChange" placeholder="请选择" clearable filterable>
<el-option v-for="item in result_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">信审终审日期</div>
<el-form-item>
<el-date-picker class="addinputInfo" v-model="formobj.creditReviewDate" type="date" clearable format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">资方放款审核结果</div>
<el-form-item>
<el-select class="addinputInfo" v-model="formobj.loanReviewKey" @change="loanReviewChange" placeholder="请选择" clearable filterable>
<el-option v-for="item in result_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">返款审核日期</div>
<el-form-item>
<el-date-picker class="addinputInfo" v-model="formobj.loanReviewDate" type="date" clearable format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">是否放款</div>
<el-form-item>
<el-radio-group class="addinputInfo" style="font-size: 1px" v-model="formobj.isLoan">
<el-radio label="是"></el-radio>
<el-radio label="否"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">放款日期</div>
<el-form-item>
<el-date-picker class="addinputInfo" v-model="formobj.isLoanDate" type="date" clearable format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
</el-col>
</el-row>
<div class="title">上传附件</div>
<el-row>
<el-col :span="24">
<div class="span-sty" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center">家访考察结果截图</div>
<el-form-item>
<upload-img ref="uploadImg" class="addinputInfo" v-model="image_list1" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center">资方信审结果截图</div>
<el-form-item>
<upload-img ref="uploadImg" class="addinputInfo" v-model="image_list2" :limit="50" bucket="map" :upload-data="{ type: '0002' }"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center">资方放款审核结果截图</div>
<el-form-item>
<upload-img ref="uploadImg" class="addinputInfo" v-model="image_list3" :limit="50" bucket="map" :upload-data="{ type: '0003' }"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</template>
<script>
import req from '@/api/unsecuredbusiness/unsecuredbusiness'
import { typeValues } from '@/api/Common/dictcommons'
import uploadImg from '@/components/uploadFile/uploadImg'
export default {
name: 'UnsecuredBusinessAdd',
components: {
uploadImg
},
data() {
return {
viewTitle: '',
submitdisabled: false,
result_list: [],
image_list1: [],
image_list2: [],
image_list3: [],
formobj: {
salesOrderSid: '',
salesman: '',
borrowerName: '',
homeVisit: '',
homeVisitKey: '',
homeVisitDate: '',
creditReview: '',
creditReviewKey: '',
creditReviewDate: '',
loanReview: '',
loanReviewKey: '',
loanReviewDate: '',
isLoan: '',
isLoanDate: '',
homeVisitFiles: [],
creditReviewFiles: [],
loanReviewFiles: []
}
}
},
methods: {
showEdit(sid) {
this.viewTitle = '非担保业务进度设置'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
req.fetchBySid({ salesOrderSid: sid }).then((resp) => {
if (resp.success) {
this.formobj = resp.data
if (this.formobj.homeVisitFiles.length > 0) {
this.formobj.homeVisitFiles.forEach((e) => {
this.image_list1.push({
name: '',
url: e
})
})
}
if (this.formobj.creditReviewFiles.length > 0) {
this.formobj.creditReviewFiles.forEach((e) => {
this.image_list2.push({
name: '',
url: e
})
})
}
if (this.formobj.loanReviewFiles.length > 0) {
this.formobj.loanReviewFiles.forEach((e) => {
this.image_list3.push({
name: '',
url: e
})
})
}
}
})
typeValues({ type: 'result' }).then((res) => {
if (res.success) {
this.result_list = res.data
}
})
},
homeVisitChange(val) {
const choose = this.result_list.filter((item) => item.dictKey === val)
if (choose.length > 0 && choose !== null) {
this.formobj.homeVisit = choose[0].dictValue
} else {
this.formobj.homeVisit = ''
}
},
creditReviewChange(val) {
const choose = this.result_list.filter((item) => item.dictKey === val)
if (choose.length > 0 && choose !== null) {
this.formobj.creditReview = choose[0].dictValue
} else {
this.formobj.creditReview = ''
}
},
loanReviewChange(val) {
const choose = this.result_list.filter((item) => item.dictKey === val)
if (choose.length > 0 && choose !== null) {
this.formobj.loanReview = choose[0].dictValue
} else {
this.formobj.loanReview = ''
}
},
saveOrUpdate() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.getUrl()
this.submitdisabled = true
req.saveOrUpdate(this.formobj).then((res) => {
if (res.success) {
this.$message({ showClose: true, type: 'success', message: '保存成功' })
this.handleReturn('true')
}
})
} else {
this.submitdisabled = false
}
}).catch(() => {
this.submitdisabled = false
})
},
getUrl() {
if (this.image_list1.length > 0) {
const aa = []
for (var i = 0; i < this.image_list1.length; i++) {
aa.push(this.image_list1[i].url)
}
this.formobj.homeVisitFiles = aa
} else {
this.formobj.homeVisitFiles = []
}
if (this.image_list2.length > 0) {
const bb = []
for (var m = 0; m < this.image_list2.length; m++) {
bb.push(this.image_list2[m].url)
}
this.formobj.creditReviewFiles = bb
} else {
this.formobj.creditReviewFiles = []
}
if (this.image_list3.length > 0) {
const cc = []
for (var n = 0; n < this.image_list3.length; n++) {
cc.push(this.image_list3[n].url)
}
this.formobj.loanReviewFiles = cc
} else {
this.formobj.loanReviewFiles = []
}
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {
salesOrderSid: '',
salesman: '',
borrowerName: '',
homeVisit: '',
homeVisitKey: '',
homeVisitDate: '',
creditReview: '',
creditReviewKey: '',
creditReviewDate: '',
loanReview: '',
loanReviewKey: '',
loanReviewDate: '',
isLoan: '',
isLoanDate: '',
homeVisitFiles: [],
creditReviewFiles: [],
loanReviewFiles: []
}
this.submitdisabled = false
this.$refs['form_obj'].resetFields()
this.$emit('doback')
}
}
}
</script>
<style scoped>
.span-sty {
width: 160px !important;
}
.addinputInfo {
margin-left: 150px !important;
}
</style>

163
anrui-riskcenter-ui/src/views/unsecuredbusiness/unsecuredbusinessInfo.vue

@ -0,0 +1,163 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="12">
<div class="span-sty">销售专员</div>
<el-form-item><span class="addinputInfo">{{ formobj.salesman }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">贷款人</div>
<el-form-item><span class="addinputInfo">{{ formobj.borrowerName }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">家访考察结果</div>
<el-form-item><span class="addinputInfo">{{ formobj.homeVisit }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">家访考察日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.homeVisitDate }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">资方信审终审结果</div>
<el-form-item><span class="addinputInfo">{{ formobj.creditReview }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">信审终审日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.creditReviewDate }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">资方放款审核结果</div>
<el-form-item><span class="addinputInfo">{{ formobj.loanReview }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">返款审核日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.loanReviewDate }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">是否放款</div>
<el-form-item><span class="addinputInfo">{{ formobj.isLoan }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">放款日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.isLoanDate }}</span></el-form-item>
</el-col>
</el-row>
<div class="title">
上传附件
</div>
<el-row>
<el-col :span="24">
<div class="span-sty" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center">家访考察结果截图</div>
<el-form-item>
<el-image class="addinputInfo" style="width: 100px; height: 100px" v-for="(item, index) in formobj.homeVisitFiles" :key="index" :src="item" :preview-src-list="formobj.homeVisitFiles" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center">资方信审结果截图</div>
<el-form-item>
<el-image class="addinputInfo" style="width: 100px; height: 100px" v-for="(item, index) in formobj.creditReviewFiles" :key="index" :src="item" :preview-src-list="formobj.creditReviewFiles" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center">资方放款审核结果截图</div>
<el-form-item>
<el-image class="addinputInfo" style="width: 100px; height: 100px" v-for="(item, index) in formobj.loanReviewFiles" :key="index" :src="item" :preview-src-list="formobj.loanReviewFiles" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</template>
<script>
import req from '@/api/unsecuredbusiness/unsecuredbusiness'
export default {
name: 'UnsecuredbBusinessInfo',
data() {
return {
viewTitle: '',
formobj: {
salesOrderSid: '',
salesman: '',
borrowerName: '',
homeVisit: '',
homeVisitKey: '',
homeVisitDate: '',
creditReview: '',
creditReviewKey: '',
creditReviewDate: '',
loanReview: '',
loanReviewKey: '',
loanReviewDate: '',
isLoan: '',
isLoanDate: '',
homeVisitFiles: [],
creditReviewFiles: [],
loanReviewFiles: []
}
}
},
methods: {
showInfo(row) {
this.viewTitle = '非担保业务进度详情'
req.fetchBySid({ salesOrderSid: row.salesOrderSid }).then((res) => {
if (res.success) {
this.formobj = res.data
}
})
},
handleReturn() {
this.formobj = {
salesOrderSid: '',
salesman: '',
borrowerName: '',
homeVisit: '',
homeVisitKey: '',
homeVisitDate: '',
creditReview: '',
creditReviewKey: '',
creditReviewDate: '',
loanReview: '',
loanReviewKey: '',
loanReviewDate: '',
isLoan: '',
isLoanDate: '',
homeVisitFiles: [],
creditReviewFiles: [],
loanReviewFiles: []
}
this.$emit('doback')
}
}
}
</script>
<style scoped>
.span-sty {
width: 160px !important;
}
.addinputInfo {
margin-left: 150px !important;
}
</style>

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

@ -14,6 +14,7 @@ public enum LoanFileEnum {
HOME_VISIT_FILES("005", "非担保业务进度家访考察结果"),
CREDIT_REVIEW_FILES("006", "非担保业务进度资方信审结果"),
LOAN_REVIEW_FILES("007", "非担保业务进度资方放款审核结果"),
FIN_BANK("008", "资方"),
;

3
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinbank/LoanFinBankDto.java

@ -8,6 +8,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.ArrayList;
import java.util.List;
/**
* Project: anrui-base(安瑞基础信息模块) <br/>
@ -54,4 +56,5 @@ public class LoanFinBankDto implements Dto {
private String useOrgName;
@ApiModelProperty("使用组织全路径")
private String orgSidPath;
private List<String> finBankFiles = new ArrayList<>();
}

3
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinbank/LoanFinBankInitVo.java

@ -6,6 +6,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.ArrayList;
import java.util.List;
/**
* @author Administrator
@ -37,6 +39,7 @@ public class LoanFinBankInitVo implements Vo {
private String contractSetValue;
@ApiModelProperty("银行卡要求说明")
private String bankCardRemark;
private List<String> finBankFiles = new ArrayList<>();
// @ApiModelProperty("使用组织sid")
// private String useOrgSid;
// @ApiModelProperty("使用组织名称")

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

@ -19,14 +19,20 @@ public class LoanNoGuaranteeCreditReview extends BaseEntity {
private String salesOrderSid;
@ApiModelProperty("家访考察结果")
private String homeVisit;
@ApiModelProperty("家访考察结果")
private String homeVisitKey;
@ApiModelProperty("家访考察日期")
private String homeVisitDate;
@ApiModelProperty("信审终审结果")
private String creditReview;
@ApiModelProperty("信审终审结果")
private String creditReviewKey;
@ApiModelProperty("信审终审日期")
private String creditReviewDate;
@ApiModelProperty("放款审核结果")
private String loanReview;
@ApiModelProperty("放款审核结果")
private String loanReviewKey;
@ApiModelProperty("放款审核日期")
private String loanReviewDate;
@ApiModelProperty("是否放款")

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

@ -20,6 +20,12 @@ public class LoanNoGuaranteeCreditReviewDetailsVo implements Vo {
@ApiModelProperty("贷款人")
private String borrowerName;
@ApiModelProperty("家访考察结果")
private String homeVisitKey;
@ApiModelProperty("信审终审结果")
private String creditReviewKey;
@ApiModelProperty("放款审核结果")
private String loanReviewKey;
@ApiModelProperty("家访考察结果")
private String homeVisit;
@ApiModelProperty("家访考察日期")
private String homeVisitDate;

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

@ -21,6 +21,12 @@ public class LoanNoGuaranteeCreditReviewDto implements Dto {
@ApiModelProperty("贷款人")
private String borrowerName;
@ApiModelProperty("家访考察结果")
private String homeVisitKey;
@ApiModelProperty("信审终审结果")
private String creditReviewKey;
@ApiModelProperty("放款审核结果")
private String loanReviewKey;
@ApiModelProperty("家访考察结果")
private String homeVisit;
@ApiModelProperty("家访考察日期")
private String homeVisitDate;

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

@ -24,7 +24,7 @@ import org.springframework.web.bind.annotation.*;
public interface LoanNoGuaranteeCreditReviewFeign {
@ApiOperation("编辑回显、详情")
@PostMapping("/details")
@GetMapping("/details")
@ResponseBody
public ResultBean<LoanNoGuaranteeCreditReviewDetailsVo> details(@RequestParam("salesOrderSid") String salesOrderSid);

10
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinbank/LoanFinBankRest.java

@ -1,7 +1,9 @@
package com.yxt.anrui.riskcenter.biz.loanfinbank;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum;
import com.yxt.anrui.riskcenter.api.loanfinbank.*;
import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy;
import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService;
import com.yxt.anrui.riskcenter.biz.loanfinpolicy.LoanFinPolicyService;
import com.yxt.common.base.utils.ExportExcelUtils;
import com.yxt.common.core.query.PagerQuery;
@ -45,6 +47,8 @@ public class LoanFinBankRest implements LoanFinBankFeign {
private HttpServletResponse response;
@Autowired
private LoanFinPolicyService loanFinPolicyService;
@Autowired
private LoanFileService loanFileService;
@Override
public ResultBean<PagerVo<LoanFinBankVo>> listPage(PagerQuery<LoanFinBankQuery> pq) {
@ -72,6 +76,12 @@ public class LoanFinBankRest implements LoanFinBankFeign {
if (i == 0) {
return ResultBean.fireFail().setMessage("修改失败");
}
//删除附件表中关于该linkSid的文件
loanFileService.deleteByLinkSid(sid);
List<String> finBankFiles = dto.getFinBankFiles();
if (!finBankFiles.isEmpty()) {
loanFileService.saveAll(sid, finBankFiles, LoanFileEnum.FIN_BANK.getAttachType());
}
return rb.success().setMessage("修改成功");
} else {
//查询资方名称是否重复

23
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinbank/LoanFinBankService.java

@ -6,7 +6,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFile;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum;
import com.yxt.anrui.riskcenter.api.loanfinbank.*;
import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
@ -20,6 +24,7 @@ import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* Project: anrui-base(安瑞基础信息模块) <br/>
@ -43,6 +48,10 @@ public class LoanFinBankService extends MybatisBaseService<LoanFinBankMapper, Lo
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private LoanFileService loanFileService;
public PagerVo<LoanFinBank> listPage(PagerQuery<LoanFinBankQuery> pq) {
LoanFinBankQuery query = pq.getParams();
@ -104,6 +113,12 @@ public class LoanFinBankService extends MybatisBaseService<LoanFinBankMapper, Lo
entity.setCreateBySid(dto.getUserSid());
}
this.saveOrUpdate(entity);
//删除附件表中关于该linkSid的文件
loanFileService.deleteByLinkSid(entity.getSid());
List<String> finBankFiles = dto.getFinBankFiles();
if (!finBankFiles.isEmpty()) {
loanFileService.saveAll(entity.getSid(), finBankFiles, LoanFileEnum.FIN_BANK.getAttachType());
}
}
public LoanFinBankVo fetchByIdVo(String id) {
@ -212,6 +227,14 @@ public class LoanFinBankService extends MybatisBaseService<LoanFinBankMapper, Lo
LoanFinBankInitVo vo = new LoanFinBankInitVo();
LoanFinBank loanFinBank = fetchBySid(sid);
BeanUtil.copyProperties(loanFinBank, vo);
//家访考察结果截图
List<LoanFile> fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.FIN_BANK.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> finBankFiles = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).
collect(Collectors.toList());
vo.setFinBankFiles(finBankFiles);
}
return rb.success().setData(vo);
}

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

@ -1,31 +1,19 @@
package com.yxt.anrui.riskcenter.biz.loannoguaranteecreditreview;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFile;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum;
import com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview.LoanNoGuaranteeCreditReview;
import com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview.LoanNoGuaranteeCreditReviewDetailsVo;
import com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview.LoanNoGuaranteeCreditReviewDto;
import com.yxt.anrui.riskcenter.api.loanparameter.*;
import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -43,12 +31,6 @@ import java.util.stream.Collectors;
@Service
public class LoanNoGuaranteeCreditReviewService extends MybatisBaseService<LoanNoGuaranteeCreditReviewMapper, LoanNoGuaranteeCreditReview> {
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private BusSalesOrderFeign busSalesOrderFeign;
@Autowired
@ -61,12 +43,8 @@ public class LoanNoGuaranteeCreditReviewService extends MybatisBaseService<LoanN
public ResultBean<LoanNoGuaranteeCreditReviewDetailsVo> details(String salesOrderSid) {
ResultBean<LoanNoGuaranteeCreditReviewDetailsVo> rb = ResultBean.fireFail();
LoanNoGuaranteeCreditReviewDetailsVo vo = new LoanNoGuaranteeCreditReviewDetailsVo();
vo.setSalesOrderSid(salesOrderSid);
LoanNoGuaranteeCreditReview entity = baseMapper.selectOneByOrderSid(salesOrderSid);
BeanUtil.copyProperties(entity, vo);
String sid = "";
if (StringUtils.isNotBlank(entity.getSid())) {
sid = entity.getSid();
}
BusSalesOrder busSalesOrder = busSalesOrderFeign.fetchBySid(salesOrderSid).getData();
if (null != busSalesOrder) {
if (StringUtils.isNotBlank(busSalesOrder.getStaffName())) {
@ -79,27 +57,34 @@ public class LoanNoGuaranteeCreditReviewService extends MybatisBaseService<LoanN
vo.setBorrowerName(borrowerDetailsVo.getBorrowerName());
}
}
//家访考察结果截图
List<LoanFile> fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.HOME_VISIT_FILES.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> homeVisitFiles = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).
collect(Collectors.toList());
vo.setHomeVisitFiles(homeVisitFiles);
}
//信审终审结果截图
fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.CREDIT_REVIEW_FILES.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> creditReviewFiles = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList());
vo.setCreditReviewFiles(creditReviewFiles);
}
//放款审核结果截图
fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.LOAN_REVIEW_FILES.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> loanReviewFiles = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList());
vo.setLoanReviewFiles(loanReviewFiles);
if (null != entity) {
BeanUtil.copyProperties(entity, vo);
String sid = "";
if (StringUtils.isNotBlank(entity.getSid())) {
sid = entity.getSid();
}
//家访考察结果截图
List<LoanFile> fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.HOME_VISIT_FILES.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> homeVisitFiles = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).
collect(Collectors.toList());
vo.setHomeVisitFiles(homeVisitFiles);
}
//信审终审结果截图
fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.CREDIT_REVIEW_FILES.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> creditReviewFiles = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList());
vo.setCreditReviewFiles(creditReviewFiles);
}
//放款审核结果截图
fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.LOAN_REVIEW_FILES.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> loanReviewFiles = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList());
vo.setLoanReviewFiles(loanReviewFiles);
}
}
return rb.success().setData(vo);
}

Loading…
Cancel
Save