Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
God 9 months ago
parent
commit
8806c008fa
  1. 7
      anrui-riskcenter-ui/src/api/settlethevehicleaccount/settlethevehicleaccount.js
  2. 36
      anrui-riskcenter-ui/src/views/settlethevehicleaccount/settlethevehicleaccount.vue
  3. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyRest.java
  4. 17
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyService.java
  5. 4828
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/jqsq2.ftl
  6. 4047
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/jqsq3.ftl
  7. 144
      anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementAdd.vue
  8. 7
      anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementByVehicle.vue
  9. 103
      anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementEdit.vue

7
anrui-riskcenter-ui/src/api/settlethevehicleaccount/settlethevehicleaccount.js

@ -9,5 +9,12 @@ export default {
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
downloadPdf: function(data) {
return request({
url: '/riskcenter/v1/LoanSettleApply/downloadPdf',
method: 'post',
params: data
})
}
}

36
anrui-riskcenter-ui/src/views/settlethevehicleaccount/settlethevehicleaccount.vue

@ -49,6 +49,11 @@
<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="80">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="toDownload(scope.row)">下载</el-button>
</template>
</el-table-column>
<el-table-column prop="typeStateValue" label="结清类型" width="100" header-align="center" />
<el-table-column prop="useOrgName" label="分公司" align="center" width="130" />
<el-table-column prop="createDept" label="销售部门" align="center" width="130" />
@ -58,8 +63,8 @@
<el-table-column prop="loanName" label="贷款人" align="center" width="130" />
<el-table-column prop="settingDate" label="结清日期" align="center" width="130" />
<el-table-column prop="bankSettlePrice" label="资方结清金额" align="center" width="130" />
<el-table-column prop="settleAll" label="公司正常结清合计" align="center" width="140" />
<el-table-column prop="amountTo" label="减免后结清合计" align="center" width="130" />
<el-table-column prop="settleAll" label="公司正常结清合计" align="center" width="160" />
<el-table-column prop="amountTo" label="减免后结清合计" align="center" width="150" />
<el-table-column prop="profit" label="结清利润" align="center" width="130" />
</el-table>
</div>
@ -82,6 +87,7 @@ import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import req from '@/api/settlethevehicleaccount/settlethevehicleaccount'
import { typeValues } from '@/api/Common/dictcommons'
import { getStorage } from '@/utils/auth'
export default {
name: 'SettleTheVehicleAccount',
@ -223,6 +229,32 @@ export default {
}
this.getList()
},
toDownload(row) {
req.downloadPdf({ sid: row.sid }).then((res) => {
if (res.success) {
var xhr = new XMLHttpRequest()
xhr.open('GET', process.env.VUE_APP_BASE_API + '/base/file/download?filePath=' + res.data + '&outFileName=' + '结算', true)
xhr.setRequestHeader('token', getStorage())
xhr.responseType = 'blob'
xhr.onload = function(e) {
//
var blob = this.response
var filename = '结算.pdf'
var a = document.createElement('a')
// blob.type="application/octet-stream";
// url
var url = URL.createObjectURL(blob)
a.href = url
a.download = filename
a.click()
// URL
window.URL.revokeObjectURL(url)
}
//
xhr.send()
}
}).catch(() => {})
},
toInfo(row) {
this.viewState = 4
this.$refs['divInfo'].showInfo(row)

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyRest.java

@ -22,7 +22,7 @@ import java.util.List;
@RestController
@RequestMapping("v1/LoanSettleApply")
@Api(tags = "结清申请")
public abstract class LoanSettleApplyRest implements LoanSettleApplyFeign {
public class LoanSettleApplyRest implements LoanSettleApplyFeign {
@Autowired
private LoanSettleApplyService loanSettleApplyService;

17
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyService.java

@ -2734,11 +2734,26 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
}
dataMap.put("photoPath64", photoList);
//获取模板
// //模板路径
// String sourcePath = "D:\\anrui\\upload\\template\\";
// //生成word文件名
// String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
// long seconds = System.currentTimeMillis();
// String typeName = dateStr + seconds + ".doc";
// // 生成文件路径
// String targetPath = sourcePath + dateStr;
// WordUtils.creatWord(dataMap, "jqsq2", sourcePath, targetPath, typeName);
// //新生成的word路径
// String wordPath = targetPath + "\\" + typeName;
// //生成出门证文件名
// String pdfName = "结算申请_" + dateStr + seconds + ".pdf";
// WordUtils.doc2pdf(wordPath, targetPath, pdfName, data.getCreateByName());
// return rb.success().setData("template/" + dateStr + "/" + pdfName);
String temp = "/template/";
String targetPath = docPdfComponent.getUploadTemplateUrl();
try {
//获取模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/jqsq2.ftl");
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/jqsq3.ftl");
//生成word文件名
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
long seconds = System.currentTimeMillis();

4828
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/jqsq2.ftl

File diff suppressed because it is too large

4047
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/jqsq3.ftl

File diff suppressed because it is too large

144
anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementAdd.vue

@ -56,7 +56,7 @@
<span>计算标准(%)</span>
</el-col>
<el-col :span="12">
<el-form-item><el-input v-model="formobj.calculationStandard" @keyup.native="UpNumber" clearable placeholder="" class="addinputw"></el-input></el-form-item>
<el-form-item><el-input v-model="formobj.calculationStandard" @keyup.native="formobj.calculationStandard = getNumber(formobj.calculationStandard, 2)" clearable placeholder="" class="addinputw"></el-input></el-form-item>
</el-col>
</el-row>
<div class="title">
@ -74,26 +74,10 @@
</el-button>
</template>
</el-table-column>
<el-table-column label="车架号" align="center">
<template slot-scope="scope">
<span>{{ scope.row.vinNo }}</span>
</template>
</el-table-column>
<el-table-column label="厂家结算价" align="center">
<template slot-scope="scope">
<span>{{ scope.row.manufactorSettlementPrice }}</span>
</template>
</el-table-column>
<el-table-column label="其中运费" align="center">
<template slot-scope="scope">
<span>{{ scope.row.freight }}</span>
</template>
</el-table-column>
<el-table-column prop="estimateRebate" label="预计返利" align="center">
<template slot-scope="scope">
<span>{{ estimateRebate(scope.row) }}</span>
</template>
</el-table-column>
<el-table-column prop="vinNo" label="车架号" align="center" />
<el-table-column prop="manufactorSettlementPrice" label="厂家结算价" align="center" />
<el-table-column prop="freight" label="其中运费" align="center" />
<el-table-column prop="estimateRebate" label="预计返利" align="center" />
<el-table-column label="备注" align="center">
<template slot-scope="scope">
<el-input v-model="scope.row.remarks" clearable placeholder="" class="addinputw"></el-input>
@ -157,55 +141,23 @@ export default {
}
})
},
UpNumber(e) {
if (this.formobj.calculationModeValue === '') {
this.formobj.calculationStandard = ''
this.$message({ showClose: true, type: 'error', message: '请先选择计算方式' })
return
getNumber(val, limit) {
val = val.replace(/[^0-9.]/g, '') //
val = val.replace(/^00/, '0.') // 0
val = val.replace(/^\./g, '0.') // 0.
val = val.replace(/\.{2,}/g, '.') //
val = val.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.'); //
/^0\d+/.test(val) ? val = val.slice(1) : '' // 0
const str = '^(\\d+)\\.(\\d{' + limit + '}).*$'
const reg = new RegExp(str)
if (limit === 0) {
//
val = val.replace(reg, '$1')
} else {
if (this.formobj.calculationModeKey === '001') {
e.target.value = e.target.value.replace(/[^\d.]/g, '') // ."-"
e.target.value = e.target.value.replace(/^00/, '0.') // 0
e.target.value = e.target.value.replace(/\.{2,}/g, '.') // .
e.target.value = e.target.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3') //
if (e.target.value.indexOf('.') < 0 && e.target.value !== '' && e.target.value !== '-') {
// 0102
e.target.value = parseFloat(e.target.value)
}
this.formobj.calculationStandard = e.target.value
} else if (this.formobj.calculationModeKey === '002') {
e.target.value = e.target.value.replace(/[^\d]/g, '') // ."-"
e.target.value = e.target.value.replace(/^00/, '0') // 0
if (e.target.value.indexOf('.') < 0 && e.target.value !== '' && e.target.value !== '-') {
// 0102
console.log(e.target.value)
e.target.value = parseFloat(e.target.value)
}
this.formobj.calculationStandard = e.target.value
}
//
val = val.replace(reg, '$1.$2')
}
},
estimateRebate(row) {
if (this.formobj.calculationModeKey === '001') {
var price = ''
price = parseFloat(row.manufactorSettlementPrice) - parseFloat(row.freight)
row.estimateRebate = this.multiplication(price, (parseFloat(this.formobj.calculationStandard) / 100))
} else if (this.formobj.calculationModeKey === '002') {
row.estimateRebate = this.formobj.calculationStandard
}
return row.estimateRebate
},
multiplication(arg1, arg2) {
var m = 0
var s1 = arg1.toString()
var s2 = arg2.toString()
try {
m += s1.split('.')[1].length
} catch (e) {}
try {
m += s2.split('.')[1].length
} catch (e) {}
return Number(s1.replace('.', '')) * Number(s2.replace('.', '')) / Math.pow(10, m)
return val
},
showAdd() {
this.$nextTick(() => {
@ -217,33 +169,29 @@ export default {
this.viewTitle = '【新增】单车返利'
},
changeRebateType(value) {
let bb = null
this.rebateType_list.forEach((e) => {
if (e.dictValue === value) {
bb = {
key: e.dictKey,
value: e.dictValue
}
}
})
this.formobj.rebateTypeKey = bb.key
const choose = this.rebateType_list.filter((item) => item.dictValue === value)
if (choose !== null && choose.length > 0) {
this.formobj.rebateTypeKey = choose[0].dictKey
} else {
this.formobj.rebateTypeKey = ''
}
},
changeCalculationMode(value) {
let bb = null
this.calculationMode_list.forEach((e) => {
if (e.dictValue === value) {
bb = {
key: e.dictKey,
value: e.dictValue
}
}
})
this.formobj.calculationModeKey = bb.key
const choose = this.calculationMode_list.filter((item) => item.dictValue === value)
if (choose !== null && choose.length > 0) {
this.formobj.calculationModeKey = choose[0].dictKey
} else {
this.formobj.calculationModeKey = ''
}
},
//
addjacket() {
this.viewState = 2
this.$refs['divSelect'].showData(this.formobj.scmVehRebateVehs)
if (this.formobj.calculationModeValue !== '' && this.formobj.calculationStandard !== '') {
this.viewState = 2
this.$refs['divSelect'].showData(this.formobj.scmVehRebateVehs)
} else {
this.$message({ showClose: true, type: 'error', message: '请先选择计算方式及填写计算标准' })
}
},
backData(value) {
this.viewState = 1
@ -263,6 +211,15 @@ export default {
})
})
}
this.formobj.scmVehRebateVehs.forEach((e) => {
// = - * / 100
if (this.formobj.calculationModeKey === '001') {
e.estimateRebate = Math.round(((parseFloat(e.manufactorSettlementPrice !== '' ? e.manufactorSettlementPrice : 0) - parseFloat(e.freight !== '' ? e.freight : 0)) * (parseFloat(this.formobj.calculationStandard) / 100)) * 100) / 100
} else if (this.formobj.calculationModeKey === '002') {
// =
e.estimateRebate = this.formobj.calculationStandard
}
})
},
//
dataDelete(index) {
@ -282,11 +239,7 @@ export default {
req.save(this.formobj).then((resp) => {
this.submitdisabled = false
if (resp.success) {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.$message({ showClose: true, type: 'success', message: resp.msg })
this.handleReturn('true')
}
}).catch(() => {
@ -317,7 +270,6 @@ export default {
}
}, 0)
sums[index] += ''
// this.formobj.currentAmount = sums[index] += ''
} else {
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {

7
anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementByVehicle.vue

@ -317,12 +317,7 @@ export default {
if (this.sids.length > 0) {
this.$emit('backData', this.sids)
} else {
this.$notify({
title: '提示',
message: '请选择至少一条车型记录!',
type: 'error',
duration: 2000
})
this.$notify({ title: '提示', message: '请选择至少一条车型记录!', type: 'error', duration: 2000 })
}
}
}

103
anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementEdit.vue

@ -56,7 +56,7 @@
<span>计算标准(%)</span>
</el-col>
<el-col :span="12">
<el-form-item><el-input v-model="formobj.calculationStandard" @keyup.native="UpNumber" clearable placeholder="" class="addinputw"></el-input></el-form-item>
<el-form-item><el-input v-model="formobj.calculationStandard" @input="estimateRebateInput" @keyup.native="formobj.calculationStandard = getNumber(formobj.calculationStandard, 2)" clearable placeholder="" class="addinputw"></el-input></el-form-item>
</el-col>
</el-row>
<div class="title">
@ -94,7 +94,7 @@
</el-col>
<el-col :span="4">
<el-form-item>
<span>{{ estimateRebate() }}</span>
<span>{{ formobj.estimateRebate }}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
@ -157,79 +157,48 @@ export default {
}
})
},
UpNumber(e) {
if (this.formobj.calculationModeValue === '') {
this.formobj.calculationStandard = ''
this.$message({ showClose: true, type: 'error', message: '请先选择计算方式' })
return
getNumber(val, limit) {
val = val.replace(/[^0-9.]/g, '') //
val = val.replace(/^00/, '0.') // 0
val = val.replace(/^\./g, '0.') // 0.
val = val.replace(/\.{2,}/g, '.') //
val = val.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.'); //
/^0\d+/.test(val) ? val = val.slice(1) : '' // 0
const str = '^(\\d+)\\.(\\d{' + limit + '}).*$'
const reg = new RegExp(str)
if (limit === 0) {
//
val = val.replace(reg, '$1')
} else {
if (this.formobj.calculationModeKey === '001') {
e.target.value = e.target.value.replace(/[^\d.]/g, '') // ."-"
e.target.value = e.target.value.replace(/^00/, '0.') // 0
e.target.value = e.target.value.replace(/\.{2,}/g, '.') // .
e.target.value = e.target.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3') //
if (e.target.value.indexOf('.') < 0 && e.target.value !== '' && e.target.value !== '-') {
// 0102
e.target.value = parseFloat(e.target.value)
}
this.formobj.calculationStandard = e.target.value
} else if (this.formobj.calculationModeKey === '002') {
e.target.value = e.target.value.replace(/[^\d]/g, '') // ."-"
e.target.value = e.target.value.replace(/^00/, '0') // 0
if (e.target.value.indexOf('.') < 0 && e.target.value !== '' && e.target.value !== '-') {
// 0102
console.log(e.target.value)
e.target.value = parseFloat(e.target.value)
}
this.formobj.calculationStandard = e.target.value
}
//
val = val.replace(reg, '$1.$2')
}
return val
},
estimateRebate() {
estimateRebateInput() {
if (this.formobj.calculationModeKey === '001') {
var price = ''
price = parseFloat(this.formobj.manufactorSettlementPrice) - parseFloat(this.formobj.freight)
this.formobj.estimateRebate = this.multiplication(price, (parseFloat(this.formobj.calculationStandard) / 100))
// = - * / 100
this.formobj.estimateRebate = Math.round(((parseFloat(this.formobj.manufactorSettlementPrice !== '' ? this.formobj.manufactorSettlementPrice : 0) - parseFloat(this.formobj.freight !== '' ? this.formobj.freight : 0)) * (parseFloat(this.formobj.calculationStandard) / 100)) * 100) / 100
} else if (this.formobj.calculationModeKey === '002') {
// =
this.formobj.estimateRebate = this.formobj.calculationStandard
}
return this.formobj.estimateRebate
},
multiplication(arg1, arg2) {
var m = 0
var s1 = arg1.toString()
var s2 = arg2.toString()
try {
m += s1.split('.')[1].length
} catch (e) {}
try {
m += s2.split('.')[1].length
} catch (e) {}
return Number(s1.replace('.', '')) * Number(s2.replace('.', '')) / Math.pow(10, m)
},
changeRebateType(value) {
let bb = null
this.rebateType_list.forEach((e) => {
if (e.dictValue === value) {
bb = {
key: e.dictKey,
value: e.dictValue
}
}
})
this.formobj.rebateTypeKey = bb.key
const choose = this.rebateType_list.filter((item) => item.dictValue === value)
if (choose !== null && choose.length > 0) {
this.formobj.rebateTypeKey = choose[0].dictKey
} else {
this.formobj.rebateTypeKey = ''
}
},
changeCalculationMode(value) {
let bb = null
this.calculationMode_list.forEach((e) => {
if (e.dictValue === value) {
bb = {
key: e.dictKey,
value: e.dictValue
}
}
})
this.formobj.calculationModeKey = bb.key
const choose = this.calculationMode_list.filter((item) => item.dictValue === value)
if (choose !== null && choose.length > 0) {
this.formobj.calculationModeKey = choose[0].dictKey
} else {
this.formobj.calculationModeKey = ''
}
},
showEdit(row) {
this.init()
@ -250,11 +219,7 @@ export default {
req.update(this.formobj).then((resp) => {
this.submitdisabled = false
if (resp.success) {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.$message({ showClose: true, type: 'success', message: resp.msg })
this.handleReturn('true')
}
}).catch(() => {

Loading…
Cancel
Save