Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
dimengzhe 3 weeks ago
parent
commit
dfb444d441
  1. 136
      anrui-riskcenter-ui/src/views/secondarysales/secondarysalesAdd.vue
  2. 47
      anrui-riskcenter-ui/src/views/secondarysales/secondarysalesInfo.vue
  3. 47
      anrui-riskcenter-ui/src/views/workFlow/ercixiaoshouFlow/secondarysalesByPGJ.vue
  4. 47
      anrui-riskcenter-ui/src/views/workFlow/ercixiaoshouFlow/secondarysalesDaiBan.vue
  5. 134
      anrui-riskcenter-ui/src/views/workFlow/ercixiaoshouFlow/secondarysalesEdit.vue
  6. 47
      anrui-riskcenter-ui/src/views/workFlow/ercixiaoshouFlow/secondarysalesYiBan.vue
  7. 19
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeign.java
  8. 112
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateTypeStatMxVo.java
  9. 55
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateTypeStatQuery.java
  10. 70
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateTypeStatVo.java
  11. 3
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.java
  12. 43
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.xml
  13. 5
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateService.java
  14. 4
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.java
  15. 123
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.xml
  16. 17
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java
  17. 105
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java
  18. 20
      anrui-scm/anrui-scm-ui/src/api/statement/rebateType.js
  19. 9
      anrui-scm/anrui-scm-ui/src/router/modules/codemenu.js
  20. 117
      anrui-scm/anrui-scm-ui/src/views/statement/rebateSummary/rebateTypeDetails.vue
  21. 103
      anrui-scm/anrui-scm-ui/src/views/statement/rebateType/rebateNameByDetail.vue
  22. 246
      anrui-scm/anrui-scm-ui/src/views/statement/rebateType/rebateTypeByDetail.vue

136
anrui-riskcenter-ui/src/views/secondarysales/secondarysalesAdd.vue

@ -178,6 +178,11 @@
<el-form-item><span class="addinputInfo">{{ formobj.loanSecondarySalesCost.vehicleEvaluation }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<span style="color: red;font-weight: bold">以下费用客户自行处理的无需录入</span>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">资方结清费用</div>
@ -280,10 +285,16 @@
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.loanSecondarySalesCost.costDescription" clearable placeholder=""/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">购方应交总金额</div>
<el-form-item><span class="addinputInfo">{{ purchaserMoney }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">预计亏损金额</div>
<el-form-item><span class="addinputInfo">{{ lossPrice() }}</span></el-form-item>
<el-form-item><span class="addinputInfo">{{ lossPrice }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
@ -410,6 +421,84 @@ export default {
rules: {}
}
},
computed: {
// = +
purchaserMoney() {
let money = 0
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.vehPrice !== '' ? this.formobj.loanSecondarySalesCost.vehPrice : 0)) * 100) / 100
//
if (this.formobj.loanSecondarySalesCost.bankSettleCost !== '' && this.formobj.loanSecondarySalesCost.bankSettleCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.bankSettleCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.vehicleViolationCost !== '' && this.formobj.loanSecondarySalesCost.vehicleViolationCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.vehicleViolationCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.inspectYearCost !== '' && this.formobj.loanSecondarySalesCost.inspectYearCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.inspectYearCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.insureCost !== '' && this.formobj.loanSecondarySalesCost.insureCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.insureCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.ownershipCost !== '' && this.formobj.loanSecondarySalesCost.ownershipCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.ownershipCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.stopCost !== '' && this.formobj.loanSecondarySalesCost.stopCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.stopCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.otherCost !== '' && this.formobj.loanSecondarySalesCost.otherCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.otherCost)) * 100) / 100
}
return money
},
// = - - + +
lossPrice() {
let money = '0'
money = Math.round((parseFloat(this.formobj.loanSecondarySalesCost.arrearsAll) - parseFloat(this.formobj.loanSecondarySalesCost.loanDeposit)) * 100) / 100
//
if (this.formobj.loanSecondarySalesCost.vehPrice !== '') {
money = Math.round((parseFloat(money) - parseFloat(this.formobj.loanSecondarySalesCost.vehPrice)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.collectionCost !== '') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.collectionCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.bankSettleCost !== '' && this.formobj.loanSecondarySalesCost.bankSettleCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.bankSettleCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.vehicleViolationCost !== '' && this.formobj.loanSecondarySalesCost.vehicleViolationCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.vehicleViolationCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.inspectYearCost !== '' && this.formobj.loanSecondarySalesCost.inspectYearCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.inspectYearCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.insureCost !== '' && this.formobj.loanSecondarySalesCost.insureCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.insureCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.ownershipCost !== '' && this.formobj.loanSecondarySalesCost.ownershipCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.ownershipCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.stopCost !== '' && this.formobj.loanSecondarySalesCost.stopCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.stopCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.otherCost !== '' && this.formobj.loanSecondarySalesCost.otherCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.otherCost)) * 100) / 100
}
return money
}
},
methods: {
UpNumber(e) {
e.target.value = e.target.value.replace(/[^0-9.]/g, '') // .
@ -524,53 +613,11 @@ export default {
this.formobj.loanSecondarySalesCost.otherCostAssume = ''
}
},
// = - - + +
lossPrice() {
let money = '0'
money = Math.round((parseFloat(this.formobj.loanSecondarySalesCost.arrearsAll) - parseFloat(this.formobj.loanSecondarySalesCost.loanDeposit)) * 100) / 100
//
if (this.formobj.loanSecondarySalesCost.vehPrice !== '') {
money = Math.round((parseFloat(money) - parseFloat(this.formobj.loanSecondarySalesCost.vehPrice)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.collectionCost !== '') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.collectionCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.bankSettleCost !== '' && this.formobj.loanSecondarySalesCost.bankSettleCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.bankSettleCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.vehicleViolationCost !== '' && this.formobj.loanSecondarySalesCost.vehicleViolationCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.vehicleViolationCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.inspectYearCost !== '' && this.formobj.loanSecondarySalesCost.inspectYearCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.inspectYearCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.insureCost !== '' && this.formobj.loanSecondarySalesCost.insureCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.insureCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.ownershipCost !== '' && this.formobj.loanSecondarySalesCost.ownershipCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.ownershipCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.stopCost !== '' && this.formobj.loanSecondarySalesCost.stopCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.stopCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.otherCost !== '' && this.formobj.loanSecondarySalesCost.otherCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.otherCost)) * 100) / 100
}
this.formobj.loanSecondarySalesCost.lossPrice = money
return money
},
resetState() {
this.viewState = 1
},
saveOrUpdate() {
this.formobj.loanSecondarySalesCost.lossPrice = this.lossPrice
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
@ -588,6 +635,7 @@ export default {
})
},
submit() {
this.formobj.loanSecondarySalesCost.lossPrice = this.lossPrice
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true

47
anrui-riskcenter-ui/src/views/secondarysales/secondarysalesInfo.vue

@ -161,6 +161,11 @@
<el-form-item><span class="addinputInfo">{{ formobj.loanSecondarySalesCost.vehicleEvaluation }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<span style="color: red;font-weight: bold">以下费用客户自行处理的无需录入</span>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">资方结清费用</div>
@ -235,6 +240,12 @@
<el-form-item><span class="addinputInfo">{{ formobj.loanSecondarySalesCost.costDescription }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">购方应交总金额</div>
<el-form-item><span class="addinputInfo">{{ purchaserMoney }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">预计亏损金额</div>
@ -347,6 +358,42 @@ export default {
rules: {}
}
},
computed: {
// = +
purchaserMoney() {
let money = 0
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.vehPrice !== '' ? this.formobj.loanSecondarySalesCost.vehPrice : 0)) * 100) / 100
//
if (this.formobj.loanSecondarySalesCost.bankSettleCost !== '' && this.formobj.loanSecondarySalesCost.bankSettleCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.bankSettleCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.vehicleViolationCost !== '' && this.formobj.loanSecondarySalesCost.vehicleViolationCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.vehicleViolationCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.inspectYearCost !== '' && this.formobj.loanSecondarySalesCost.inspectYearCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.inspectYearCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.insureCost !== '' && this.formobj.loanSecondarySalesCost.insureCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.insureCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.ownershipCost !== '' && this.formobj.loanSecondarySalesCost.ownershipCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.ownershipCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.stopCost !== '' && this.formobj.loanSecondarySalesCost.stopCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.stopCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.otherCost !== '' && this.formobj.loanSecondarySalesCost.otherCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.otherCost)) * 100) / 100
}
return money
}
},
methods: {
showInfo(row) {
this.viewTitle = '交回车辆二次销售申请详情'

47
anrui-riskcenter-ui/src/views/workFlow/ercixiaoshouFlow/secondarysalesByPGJ.vue

@ -164,6 +164,11 @@
<el-form-item><el-input class="addinputInfo addinputw" @keyup.native="UpNumber" v-model="formobj.loanSecondarySalesCost.vehicleEvaluation" clearable placeholder=""/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<span style="color: red;font-weight: bold">以下费用客户自行处理的无需录入</span>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">资方结清费用</div>
@ -238,6 +243,12 @@
<el-form-item><span class="addinputInfo">{{ formobj.loanSecondarySalesCost.costDescription }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">购方应交总金额</div>
<el-form-item><span class="addinputInfo">{{ purchaserMoney }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">预计亏损金额</div>
@ -454,6 +465,42 @@ export default {
}
}, '*')
},
computed: {
// = +
purchaserMoney() {
let money = 0
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.vehPrice !== '' ? this.formobj.loanSecondarySalesCost.vehPrice : 0)) * 100) / 100
//
if (this.formobj.loanSecondarySalesCost.bankSettleCost !== '' && this.formobj.loanSecondarySalesCost.bankSettleCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.bankSettleCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.vehicleViolationCost !== '' && this.formobj.loanSecondarySalesCost.vehicleViolationCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.vehicleViolationCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.inspectYearCost !== '' && this.formobj.loanSecondarySalesCost.inspectYearCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.inspectYearCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.insureCost !== '' && this.formobj.loanSecondarySalesCost.insureCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.insureCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.ownershipCost !== '' && this.formobj.loanSecondarySalesCost.ownershipCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.ownershipCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.stopCost !== '' && this.formobj.loanSecondarySalesCost.stopCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.stopCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.otherCost !== '' && this.formobj.loanSecondarySalesCost.otherCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.otherCost)) * 100) / 100
}
return money
}
},
methods: {
UpNumber(e) {
e.target.value = e.target.value.replace(/[^0-9.]/g, '') // .

47
anrui-riskcenter-ui/src/views/workFlow/ercixiaoshouFlow/secondarysalesDaiBan.vue

@ -164,6 +164,11 @@
<el-form-item><span class="addinputInfo">{{ formobj.loanSecondarySalesCost.vehicleEvaluation }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<span style="color: red;font-weight: bold">以下费用客户自行处理的无需录入</span>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">资方结清费用</div>
@ -238,6 +243,12 @@
<el-form-item><span class="addinputInfo">{{ formobj.loanSecondarySalesCost.costDescription }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">购方应交总金额</div>
<el-form-item><span class="addinputInfo">{{ purchaserMoney }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">预计亏损金额</div>
@ -454,6 +465,42 @@ export default {
}
}, '*')
},
computed: {
// = +
purchaserMoney() {
let money = 0
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.vehPrice !== '' ? this.formobj.loanSecondarySalesCost.vehPrice : 0)) * 100) / 100
//
if (this.formobj.loanSecondarySalesCost.bankSettleCost !== '' && this.formobj.loanSecondarySalesCost.bankSettleCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.bankSettleCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.vehicleViolationCost !== '' && this.formobj.loanSecondarySalesCost.vehicleViolationCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.vehicleViolationCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.inspectYearCost !== '' && this.formobj.loanSecondarySalesCost.inspectYearCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.inspectYearCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.insureCost !== '' && this.formobj.loanSecondarySalesCost.insureCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.insureCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.ownershipCost !== '' && this.formobj.loanSecondarySalesCost.ownershipCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.ownershipCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.stopCost !== '' && this.formobj.loanSecondarySalesCost.stopCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.stopCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.otherCost !== '' && this.formobj.loanSecondarySalesCost.otherCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.otherCost)) * 100) / 100
}
return money
}
},
methods: {
showInfo(sid) {
this.viewTitle = '交回车辆二次销售申请详情'

134
anrui-riskcenter-ui/src/views/workFlow/ercixiaoshouFlow/secondarysalesEdit.vue

@ -177,6 +177,11 @@
<el-form-item><span class="addinputInfo">{{ formobj.loanSecondarySalesCost.vehicleEvaluation }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<span style="color: red;font-weight: bold">以下费用客户自行处理的无需录入</span>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">资方结清费用</div>
@ -279,10 +284,16 @@
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.loanSecondarySalesCost.costDescription" clearable placeholder=""/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">购方应交总金额</div>
<el-form-item><span class="addinputInfo">{{ purchaserMoney }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">预计亏损金额</div>
<el-form-item><span class="addinputInfo">{{ lossPrice() }}</span></el-form-item>
<el-form-item><span class="addinputInfo">{{ lossPrice }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
@ -426,6 +437,84 @@ export default {
}
}, '*')
},
computed: {
// = +
purchaserMoney() {
let money = 0
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.vehPrice !== '' ? this.formobj.loanSecondarySalesCost.vehPrice : 0)) * 100) / 100
//
if (this.formobj.loanSecondarySalesCost.bankSettleCost !== '' && this.formobj.loanSecondarySalesCost.bankSettleCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.bankSettleCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.vehicleViolationCost !== '' && this.formobj.loanSecondarySalesCost.vehicleViolationCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.vehicleViolationCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.inspectYearCost !== '' && this.formobj.loanSecondarySalesCost.inspectYearCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.inspectYearCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.insureCost !== '' && this.formobj.loanSecondarySalesCost.insureCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.insureCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.ownershipCost !== '' && this.formobj.loanSecondarySalesCost.ownershipCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.ownershipCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.stopCost !== '' && this.formobj.loanSecondarySalesCost.stopCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.stopCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.otherCost !== '' && this.formobj.loanSecondarySalesCost.otherCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.otherCost)) * 100) / 100
}
return money
},
// = - - + +
lossPrice() {
let money = '0'
money = Math.round((parseFloat(this.formobj.loanSecondarySalesCost.arrearsAll) - parseFloat(this.formobj.loanSecondarySalesCost.loanDeposit)) * 100) / 100
//
if (this.formobj.loanSecondarySalesCost.vehPrice !== '') {
money = Math.round((parseFloat(money) - parseFloat(this.formobj.loanSecondarySalesCost.vehPrice)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.collectionCost !== '') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.collectionCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.bankSettleCost !== '' && this.formobj.loanSecondarySalesCost.bankSettleCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.bankSettleCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.vehicleViolationCost !== '' && this.formobj.loanSecondarySalesCost.vehicleViolationCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.vehicleViolationCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.inspectYearCost !== '' && this.formobj.loanSecondarySalesCost.inspectYearCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.inspectYearCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.insureCost !== '' && this.formobj.loanSecondarySalesCost.insureCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.insureCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.ownershipCost !== '' && this.formobj.loanSecondarySalesCost.ownershipCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.ownershipCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.stopCost !== '' && this.formobj.loanSecondarySalesCost.stopCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.stopCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.otherCost !== '' && this.formobj.loanSecondarySalesCost.otherCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.otherCost)) * 100) / 100
}
return money
}
},
methods: {
UpNumber(e) {
e.target.value = e.target.value.replace(/[^0-9.]/g, '') // .
@ -542,49 +631,6 @@ export default {
this.formobj.loanSecondarySalesCost.otherCostAssume = ''
}
},
// = - - + +
lossPrice() {
let money = '0'
money = Math.round((parseFloat(this.formobj.loanSecondarySalesCost.arrearsAll) - parseFloat(this.formobj.loanSecondarySalesCost.loanDeposit)) * 100) / 100
//
if (this.formobj.loanSecondarySalesCost.vehPrice !== '') {
money = Math.round((parseFloat(money) - parseFloat(this.formobj.loanSecondarySalesCost.vehPrice)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.collectionCost !== '') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.collectionCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.bankSettleCost !== '' && this.formobj.loanSecondarySalesCost.bankSettleCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.bankSettleCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.vehicleViolationCost !== '' && this.formobj.loanSecondarySalesCost.vehicleViolationCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.vehicleViolationCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.inspectYearCost !== '' && this.formobj.loanSecondarySalesCost.inspectYearCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.inspectYearCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.insureCost !== '' && this.formobj.loanSecondarySalesCost.insureCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.insureCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.ownershipCost !== '' && this.formobj.loanSecondarySalesCost.ownershipCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.ownershipCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.stopCost !== '' && this.formobj.loanSecondarySalesCost.stopCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.stopCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.otherCost !== '' && this.formobj.loanSecondarySalesCost.otherCostAssume === '公司') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.otherCost)) * 100) / 100
}
this.formobj.loanSecondarySalesCost.lossPrice = money
return money
},
resetState() {
this.viewState = 1
},

47
anrui-riskcenter-ui/src/views/workFlow/ercixiaoshouFlow/secondarysalesYiBan.vue

@ -161,6 +161,11 @@
<el-form-item><span class="addinputInfo">{{ formobj.loanSecondarySalesCost.vehicleEvaluation }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<span style="color: red;font-weight: bold">以下费用客户自行处理的无需录入</span>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">资方结清费用</div>
@ -235,6 +240,12 @@
<el-form-item><span class="addinputInfo">{{ formobj.loanSecondarySalesCost.costDescription }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">购方应交总金额</div>
<el-form-item><span class="addinputInfo">{{ purchaserMoney }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">预计亏损金额</div>
@ -382,6 +393,42 @@ export default {
}
}, '*')
},
computed: {
// = +
purchaserMoney() {
let money = 0
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.vehPrice !== '' ? this.formobj.loanSecondarySalesCost.vehPrice : 0)) * 100) / 100
//
if (this.formobj.loanSecondarySalesCost.bankSettleCost !== '' && this.formobj.loanSecondarySalesCost.bankSettleCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.bankSettleCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.vehicleViolationCost !== '' && this.formobj.loanSecondarySalesCost.vehicleViolationCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.vehicleViolationCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.inspectYearCost !== '' && this.formobj.loanSecondarySalesCost.inspectYearCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.inspectYearCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.insureCost !== '' && this.formobj.loanSecondarySalesCost.insureCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.insureCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.ownershipCost !== '' && this.formobj.loanSecondarySalesCost.ownershipCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.ownershipCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.stopCost !== '' && this.formobj.loanSecondarySalesCost.stopCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.stopCost)) * 100) / 100
}
//
if (this.formobj.loanSecondarySalesCost.otherCost !== '' && this.formobj.loanSecondarySalesCost.otherCostAssume === '购方') {
money = Math.round((parseFloat(money) + parseFloat(this.formobj.loanSecondarySalesCost.otherCost)) * 100) / 100
}
return money
}
},
methods: {
showInfo(sid) {
this.viewTitle = '交回车辆二次销售申请详情'

19
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeign.java

@ -33,6 +33,7 @@ import com.yxt.common.core.vo.PagerVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.text.ParseException;
@ -65,6 +66,16 @@ public interface ScmVehRebateFeign {
@ResponseBody
public ResultBean<List<ScmVehRebateStatMxVo>> getDetail(@PathVariable("sid") String sid);
@ApiOperation("返利类型统计")
@PostMapping("/typeStatistics")
@ResponseBody
public ResultBean<PagerVo<ScmVehRebateTypeStatVo>> typeStatistics(@RequestBody PagerQuery<ScmVehRebateTypeStatQuery> pq);
@ApiOperation("返利类型明细")
@PostMapping("/getTypeDetail")
@ResponseBody
public ResultBean<List<ScmVehRebateTypeStatMxVo>> getTypeDetail(@RequestParam("sid") String sid, @RequestParam("type") String type);
@ApiOperation("单车返利未预提申请选择单车返利信息")
@PostMapping("/withApplyGetVehRebate")
@ResponseBody
@ -87,7 +98,7 @@ public interface ScmVehRebateFeign {
@ApiOperation(value = "一次导入")
@PostMapping("/getExcelOneInfo")
@ResponseBody
public ResultBean getExcelOneInfo(@RequestParam(value = "file") MultipartFile file, HttpServletRequest request,@RequestParam("userSid") String userSid,@RequestParam("orgPath") String orgPath) throws IOException, ParseException;
public ResultBean getExcelOneInfo(@RequestParam(value = "file") MultipartFile file, HttpServletRequest request, @RequestParam("userSid") String userSid, @RequestParam("orgPath") String orgPath) throws IOException, ParseException;
@ApiOperation("二次导出")
@PostMapping("/excelListTwo")
@ -96,7 +107,7 @@ public interface ScmVehRebateFeign {
@ApiOperation(value = "二次导入")
@PostMapping("/getExcelTwoInfo")
@ResponseBody
public ResultBean getExcelTwoInfo(@RequestParam(value = "file") MultipartFile file, HttpServletRequest request,@RequestParam("userSid") String userSid,@RequestParam("orgPath") String orgPath) throws IOException, ParseException;
public ResultBean getExcelTwoInfo(@RequestParam(value = "file") MultipartFile file, HttpServletRequest request, @RequestParam("userSid") String userSid, @RequestParam("orgPath") String orgPath) throws IOException, ParseException;
@ApiOperation("单车返利核对申请选择已上传单车返利信息")
@PostMapping("/checkApplyGetAlreadyUploadVehRebate")
@ -136,7 +147,7 @@ public interface ScmVehRebateFeign {
@ApiOperation(value = "导入")
@PostMapping("/getExcelInfo")
@ResponseBody
public ResultBean getExcelInfo(@RequestParam(value = "file") MultipartFile file, HttpServletRequest request,@RequestParam("userSid") String userSid,@RequestParam("orgPath") String orgPath) throws IOException, ParseException;
public ResultBean getExcelInfo(@RequestParam(value = "file") MultipartFile file, HttpServletRequest request, @RequestParam("userSid") String userSid, @RequestParam("orgPath") String orgPath) throws IOException, ParseException;
@ApiOperation("根据车辆sid删除记录")
@DeleteMapping("/delByVehSid")
@ -146,5 +157,5 @@ public interface ScmVehRebateFeign {
@ApiOperation("根据车辆sid、分公司sid、返利类型key删除单车返利记录")
@DeleteMapping("/delByVehSid2")
@ResponseBody
ResultBean delByVehSid2(@RequestParam("vehSid") String vehSid,@RequestParam("useOrgSid") String useOrgSid,@RequestParam("key") String key);
ResultBean delByVehSid2(@RequestParam("vehSid") String vehSid, @RequestParam("useOrgSid") String useOrgSid, @RequestParam("key") String key);
}

112
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateTypeStatMxVo.java

@ -0,0 +1,112 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.scm.api.scmvehrebate;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class ScmVehRebateTypeStatMxVo implements Vo {
private String sid;
@ApiModelProperty("采购系统")
private String purchaseSystemName;
@ApiModelProperty("车型名称")
private String vehModelName;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("返利项目")
private String project;
@ApiModelProperty("所属年月")
private String palceGenDate;
@ApiModelProperty("返利类型")
private String rebateTypeValue;
@ApiModelProperty("返利名称")
private String rebateName;
@ApiModelProperty("预计返利")
private BigDecimal estimateRebate;
@ApiModelProperty("上传金额")
private BigDecimal uploadMoney;
@ApiModelProperty("二次上传金额")
private BigDecimal secondaryUploadMoney;
@ApiModelProperty("待确定金额")
private BigDecimal stayDetermineMoney;
@ApiModelProperty("调整金额")
private BigDecimal adjustmentMoney;
@ApiModelProperty("未上传金额")
private BigDecimal notUploadMoney;
@ApiModelProperty("其中预计费用")
private BigDecimal expectCost;
@ApiModelProperty("其中上传费用")
private BigDecimal money;
@ApiModelProperty("创建日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty("预提日期")
private String withholdingDate;
@ApiModelProperty("上传日期")
private String uploadDate;
@ApiModelProperty("二次上传日期")
private String secondaryUploadDate;
@ApiModelProperty("状态")
private String state;
@ApiModelProperty("一次核对状态")
private String onceCheckState;
@ApiModelProperty("二次核对状态")
private String secondCheckState;
@ApiModelProperty("品牌名称")
private String brandName;
@ApiModelProperty("分公司")
private String useOrgName;
@ApiModelProperty("事业部")
private String division;
@ApiModelProperty("车辆入库价")
private BigDecimal manufactorSettlementPrice;
@ApiModelProperty("运费")
private BigDecimal freight;
@ApiModelProperty("上装金额")
private BigDecimal topAmount;
@ApiModelProperty("计算方式")
private String calculationModeValue;
@ApiModelProperty("计算标准")
private String calculationStandard;
@ApiModelProperty("备注")
private String remarks;
}

55
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateTypeStatQuery.java

@ -0,0 +1,55 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.scm.api.scmvehrebate;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ScmVehRebateTypeStatQuery implements Query {
@ApiModelProperty("事业部")
private String division;
@ApiModelProperty("分公司")
private String useOrgName;
@ApiModelProperty("采购系统")
private String purchaseSystemName;
@ApiModelProperty("品牌名称")
private String brandName;
@ApiModelProperty("返利项目")
private String project;
@ApiModelProperty("返利类型")
private String rebateTypeValue;
@ApiModelProperty("所属年月")
private String palceGenDateStart;
private String palceGenDateEnd;
private String userSid;
private String orgPath;
private String menuUrl;
private String menuSid;
}

70
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateTypeStatVo.java

@ -0,0 +1,70 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.scm.api.scmvehrebate;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
public class ScmVehRebateTypeStatVo implements Vo {
@ApiModelProperty("采购系统")
private String purchaseSystemName;
@ApiModelProperty("返利项目")
private String project;
@ApiModelProperty("所属年月")
private String palceGenDate;
@ApiModelProperty("返利类型")
private String rebateTypeValue;
@ApiModelProperty("预计返利")
private BigDecimal estimateRebate;
@ApiModelProperty("上传金额")
private BigDecimal uploadMoney;
@ApiModelProperty("调整金额")
private BigDecimal adjustmentMoney;
@ApiModelProperty("未上传金额")
private BigDecimal notUploadMoney;
@ApiModelProperty("预计支出费用")
private BigDecimal expectItureCost;
@ApiModelProperty("预计待支付费用")
private BigDecimal expectTreatCost;
@ApiModelProperty("预计抵顶费用")
private BigDecimal expectSuppCost;
@ApiModelProperty("剩余")
private BigDecimal balance;
@ApiModelProperty("品牌名称")
private String brandName;
@ApiModelProperty("分公司")
private String useOrgName;
@ApiModelProperty("事业部")
private String division;
private String sid;//返利管理sid
}

3
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.java

@ -31,6 +31,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.scm.api.scmspecialrebate.*;
import com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateTypeStatMxVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
@ -75,4 +76,6 @@ public interface ScmSpecialRebateMapper extends BaseMapper<ScmSpecialRebate> {
List<ScmSpecialRebateVo> checkApplyGetSpecialRebateAll(@Param(Constants.WRAPPER) QueryWrapper<ScmSpecialRebate> qw);
List<ScmSpecialRebateVo> listAll(@Param(Constants.WRAPPER) QueryWrapper<ScmSpecialRebate> qw);
List<ScmVehRebateTypeStatMxVo> getTypeDetail(@Param("sids") List<String> sids);
}

43
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.xml

@ -182,4 +182,47 @@
${ew.sqlSegment}
</where>
</select>
<select id="getTypeDetail" resultType="com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateTypeStatMxVo">
SELECT
r.sid,
r.purchaseSystemName,
'专项返利' AS project,
r.rebateTypeValue,
r.rebateName,
r.palceGenDate,
r.estimateRebate,
r.uploadMoney,
r.secondaryUploadMoney,
r.stayDetermineMoney,
r.adjustmentMoney,
r.estimateRebate - IFNULL(r.uploadMoney,0) - IFNULL(r.secondaryUploadMoney,0) + IFNULL(r.adjustmentMoney,0) AS notUploadMoney,
r.expectItureCost + r.expectTreatCost + r.expectSuppCost AS expectCost,
r.onceItureCost + r.onceTreatCost + r.onceSuppCost + r.secondItureCost + r.secondTreatCost + r.secondSuppCost AS money,
r.createTime,
r.withholdingDate,
r.uploadDate,
r.secondaryUploadDate,
r.state,
r.onceCheckState,
IF(r.secondaryUploadMoney > 0 AND r.isAdjustment = '是','是','否') AS secondCheckState,
r.brandName,
r.useOrgName,
o.name AS division,
r.remarks
FROM
scm_special_rebate r
LEFT JOIN (
SELECT o1.name,o2.sid FROM anrui_portal.sys_organization o1
LEFT JOIN anrui_portal.sys_organization o2
ON o1.sid = o2.psid
) AS o
ON o.sid = r.useOrgSid
<if test="sids != null and sids.size() != 0">
WHERE r.sid IN
<foreach collection="sids" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</select>
</mapper>

5
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateService.java

@ -43,6 +43,7 @@ import com.yxt.anrui.scm.api.scmspecialrebate.*;
import com.yxt.anrui.scm.api.scmspecialrebate.OneExcelInfo;
import com.yxt.anrui.scm.api.scmspecialrebate.TwoExcelInfo;
import com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebate;
import com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateTypeStatMxVo;
import com.yxt.anrui.scm.biz.scmspecialrebatevehs.ScmSpecialrebateVehsService;
import com.yxt.common.core.result.ResultBean;
import org.apache.commons.lang3.StringUtils;
@ -2491,4 +2492,8 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate
}
return scmSpecialRebateExcelVos;
}
public List<ScmVehRebateTypeStatMxVo> getTypeDetail(List<String> sids) {
return baseMapper.getTypeDetail(sids);
}
}

4
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.java

@ -42,6 +42,8 @@ public interface ScmVehRebateMapper extends BaseMapper<ScmVehRebate> {
IPage<ScmVehRebateStatVo> statistics(IPage<ScmVehRebate> page, @Param(Constants.WRAPPER) QueryWrapper<ScmVehRebate> qw);
IPage<ScmVehRebateTypeStatVo> typeStatistics(IPage<ScmVehRebate> page, @Param(Constants.WRAPPER) QueryWrapper<ScmVehRebate> qw);
IPage<ScmVehRebateVo> selectPageVoUpload(IPage<ScmVehRebate> page, @Param(Constants.WRAPPER) QueryWrapper<ScmVehRebate> qw);
@Update("update scm_veh_rebate set state = #{state} where sid = #{sid}")
@ -80,4 +82,6 @@ public interface ScmVehRebateMapper extends BaseMapper<ScmVehRebate> {
int delByVehSid2(@Param("vehSid") String vehSid, @Param("useOrgSid") String useOrgSid, @Param("key") String key);
List<ScmVehRebateStatMxVo> getDetail(String vehSid);
List<ScmVehRebateTypeStatMxVo> getTypeDetail(@Param("sids") List<String> sids);
}

123
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.xml

@ -26,7 +26,7 @@
r.vehSid,
r.vinNo,
DATE_FORMAT(v.salesDate, '%Y-%m-%d') AS saleDate,
DATE_FORMAT(v.salesDate, '%Y-%m-%d') AS acSaleDate,
DATE_FORMAT(v.solidDate, '%Y-%m-%d') AS acSaleDate,
SUM(r.estimateRebate) AS estimateRebate,
SUM(r.uploadMoney) AS uploadMoney,
SUM(r.secondaryUploadMoney) AS secondaryUploadMoney,
@ -278,14 +278,129 @@
r.remarks
FROM
scm_veh_rebate r
LEFT JOIN anrui_base.base_vehicle v
ON r.vehSid = v.sid
LEFT JOIN (
SELECT o1.name,o2.sid FROM anrui_portal.sys_organization o1
LEFT JOIN anrui_portal.sys_organization o2
ON o1.sid = o2.psid
) AS o
ON o.sid = r.useOrgSid
WHERE vehSid = #{vehSid}
WHERE r.vehSid = #{vehSid}
</select>
<select id="typeStatistics" resultType="com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateTypeStatVo">
SELECT
GROUP_CONCAT(r.sid) AS sid,
r.purchaseSystemName,
'单车返利' AS project,
r.palceGenDate AS palceGenDate,
r.rebateTypeValue,
SUM(r.estimateRebate) AS estimateRebate,
SUM(r.uploadMoney) + SUM(r.secondaryUploadMoney) AS uploadMoney,
SUM(r.adjustmentMoney) AS adjustmentMoney,
SUM(r.estimateRebate) - IFNULL(SUM(r.uploadMoney), 0) - IFNULL(SUM(r.secondaryUploadMoney), 0) + IFNULL(SUM(r.adjustmentMoney), 0) AS notUploadMoney,
'' AS expectItureCost,
SUM(r.expectTreatCost) AS expectTreatCost,
SUM(r.expectSuppCost) AS expectSuppCost,
SUM(r.estimateRebate) - IFNULL(SUM(r.uploadMoney), 0) - IFNULL(SUM(r.secondaryUploadMoney), 0) + IFNULL(SUM(r.adjustmentMoney), 0) - SUM(r.expectTreatCost) - SUM(r.expectSuppCost) AS balance,
r.brandName,
r.useOrgName,
o.name AS division
FROM
scm_veh_rebate r
LEFT JOIN
(SELECT
o1.name,
o2.sid
FROM
anrui_portal.sys_organization o1
LEFT JOIN anrui_portal.sys_organization o2
ON o1.sid = o2.psid) AS o
ON o.sid = r.useOrgSid
<where>
${ew.sqlSegment}
</where>
UNION ALL
SELECT
GROUP_CONCAT(r.sid) AS sid,
r.purchaseSystemName,
'专项返利' AS project,
r.palceGenDate AS palceGenDate,
r.rebateTypeValue,
SUM(r.estimateRebate) AS estimateRebate,
SUM(r.uploadMoney) + SUM(r.secondaryUploadMoney) AS uploadMoney,
SUM(r.adjustmentMoney) AS adjustmentMoney,
SUM(r.estimateRebate) - IFNULL(SUM(r.uploadMoney), 0) - IFNULL(SUM(r.secondaryUploadMoney), 0) + IFNULL(SUM(r.adjustmentMoney), 0) AS notUploadMoney,
SUM(r.expectItureCost) AS expectItureCost,
SUM(r.expectTreatCost) AS expectTreatCost,
SUM(r.expectSuppCost) AS expectSuppCost,
SUM(r.estimateRebate) - IFNULL(SUM(r.uploadMoney), 0) - IFNULL(SUM(r.secondaryUploadMoney), 0) + IFNULL(SUM(r.adjustmentMoney), 0) - SUM(r.expectItureCost) - SUM(r.expectTreatCost) - SUM(r.expectSuppCost) AS balance,
r.brandName,
r.useOrgName,
o.name AS division
FROM
scm_special_rebate r
LEFT JOIN
(SELECT
o1.name,
o2.sid
FROM
anrui_portal.sys_organization o1
LEFT JOIN anrui_portal.sys_organization o2
ON o1.sid = o2.psid) AS o
ON o.sid = r.useOrgSid
<where>
${ew.sqlSegment}
</where>
ORDER BY palceGenDate DESC
</select>
<select id="getTypeDetail" resultType="com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateTypeStatMxVo">
SELECT
r.sid,
r.purchaseSystemName,
r.vehModelName,
r.vinNo,
'单车返利' AS project,
r.rebateTypeValue,
r.rebateName,
r.palceGenDate,
r.estimateRebate,
r.uploadMoney,
r.secondaryUploadMoney,
r.stayDetermineMoney,
r.adjustmentMoney,
r.estimateRebate - IFNULL(r.uploadMoney,0) - IFNULL(r.secondaryUploadMoney,0) + IFNULL(r.adjustmentMoney,0) AS notUploadMoney,
r.expectTreatCost + r.expectSuppCost AS expectCost,
r.onceTreatCost + r.onceSuppCost + r.secondTreatCost + r.secondSuppCost AS money,
r.createTime,
r.withholdingDate,
r.uploadDate,
r.secondaryUploadDate,
r.state,
r.onceCheckState,
IF(r.secondaryUploadMoney > 0 AND r.isAdjustment = '是','是','否') AS secondCheckState,
r.brandName,
r.useOrgName,
o.name AS division,
r.manufactorSettlementPrice,
r.freight,
r.topAmount,
r.calculationModeValue,
r.calculationStandard,
r.remarks
FROM
scm_veh_rebate r
LEFT JOIN (
SELECT o1.name,o2.sid FROM anrui_portal.sys_organization o1
LEFT JOIN anrui_portal.sys_organization o2
ON o1.sid = o2.psid
) AS o
ON o.sid = r.useOrgSid
<if test="sids != null and sids.size() != 0">
WHERE r.sid IN
<foreach collection="sids" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</select>
</mapper>

17
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java

@ -40,6 +40,7 @@ import org.apache.poi.xssf.usermodel.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@ -88,6 +89,20 @@ public class ScmVehRebateRest implements ScmVehRebateFeign {
return rb.success().setData(scmVehRebateStatMxVos);
}
@Override
public ResultBean<PagerVo<ScmVehRebateTypeStatVo>> typeStatistics(PagerQuery<ScmVehRebateTypeStatQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<ScmVehRebateTypeStatVo> pv = scmVehRebateService.typeStatistics(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean<List<ScmVehRebateTypeStatMxVo>> getTypeDetail(String sid, String type) {
ResultBean rb = ResultBean.fireFail();
List<ScmVehRebateTypeStatMxVo> scmVehRebateTypeStatMxVos = scmVehRebateService.getTypeDetail(sid, type);
return rb.success().setData(scmVehRebateTypeStatMxVos);
}
@ApiOperation("导出")
@PostMapping("/excelList")
public void excelList(@RequestBody ScmVehRebateQuery query) {
@ -350,7 +365,7 @@ public class ScmVehRebateRest implements ScmVehRebateFeign {
public ResultBean update(ScmVehRebateVehDto dto) {
ResultBean rb = ResultBean.fireFail();
dto.setStayDetermineMoneyNew(dto.getStayDetermineMoney());
if (StringUtils.isBlank(dto.getSecondaryUploadDate())){
if (StringUtils.isBlank(dto.getSecondaryUploadDate())) {
dto.setSecondaryUploadDate("");
}
scmVehRebateService.updateBySid(dto, dto.getSid());

105
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java

@ -39,6 +39,7 @@ 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.scm.api.scmvehrebate.*;
import com.yxt.anrui.scm.biz.scmspecialrebate.ScmSpecialRebateService;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
@ -54,6 +55,7 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
@ -80,6 +82,8 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
private BaseVehicleFeign baseVehicleFeign;
@Autowired
private DictCommonFeign dictCommonFeign;
@Autowired
private ScmSpecialRebateService scmSpecialRebateService;
public PagerVo<ScmVehRebateVo> listPageVo(PagerQuery<ScmVehRebateQuery> pq) {
ScmVehRebateQuery query = pq.getParams();
@ -436,6 +440,84 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
return baseMapper.getDetail(vehSid);
}
public PagerVo<ScmVehRebateTypeStatVo> typeStatistics(PagerQuery<ScmVehRebateTypeStatQuery> pq) {
ScmVehRebateTypeStatQuery query = pq.getParams();
QueryWrapper<ScmVehRebate> qw = new QueryWrapper<>();
//========================================数据授权开始
if (StringUtils.isNotBlank(query.getMenuUrl())) {
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(query.getOrgPath());
privilegeQuery.setMenuUrl(query.getMenuUrl());
privilegeQuery.setMenuSid(query.getMenuSid());
privilegeQuery.setUserSid(query.getUserSid());
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
String orgSidPath = query.getOrgPath();
orgSidPath = orgSidPath + "/";
int i1 = orgSidPath.indexOf("/");
int i2 = orgSidPath.indexOf("/", i1 + 1);
int i3 = orgSidPath.indexOf("/", i2 + 1);
int i4 = orgSidPath.indexOf("/", i3 + 1);
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i1);
qw.like("r.orgPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("r.orgPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("r.orgPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("r.orgPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("r.createBySid", query.getUserSid());
} else {
PagerVo<ScmVehRebateTypeStatVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<ScmVehRebateTypeStatVo> p = new PagerVo<>();
return p;
}
}
if (StringUtils.isNotBlank(query.getDivision())) {
qw.like("o.name", query.getDivision());
}
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("r.useOrgName", query.getUseOrgName());
}
if (StringUtils.isNotBlank(query.getPurchaseSystemName())) {
qw.like("r.purchaseSystemName", query.getPurchaseSystemName());
}
if (StringUtils.isNotBlank(query.getBrandName())) {
qw.like("r.brandName", query.getBrandName());
}
if (StringUtils.isNotBlank(query.getRebateTypeValue())) {
qw.like("r.rebateTypeValue", query.getRebateTypeValue());
}
String palceGenDateStart = query.getPalceGenDateStart();
String palceGenDateEnd = query.getPalceGenDateEnd();
qw.apply(StringUtils.isNotBlank(palceGenDateStart), "r.palceGenDate >= '" + palceGenDateStart + "'").
apply(StringUtils.isNotBlank(palceGenDateEnd), "r.palceGenDate <= '" + palceGenDateEnd + "'"
);
qw.groupBy("r.purchaseSystemName");
qw.groupBy("r.palceGenDate");
qw.groupBy("r.rebateTypeValue");
qw.groupBy("r.brandName");
qw.groupBy("r.useOrgName");
qw.groupBy("o.name");
if (StringUtils.isNotBlank(query.getProject())) {
qw.having("project = {0}", query.getProject());
}
IPage<ScmVehRebate> page = PagerUtil.queryToPage(pq);
IPage<ScmVehRebateTypeStatVo> pagging = baseMapper.typeStatistics(page, qw);
PagerVo<ScmVehRebateTypeStatVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public PagerVo<ScmVehRebateVo> withApplyGetVehRebate(PagerQuery<ScmVehRebateQuery> pq) {
ScmVehRebateQuery query = pq.getParams();
QueryWrapper<ScmVehRebate> qw = new QueryWrapper<>();
@ -1867,7 +1949,7 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
}
}
if (StringUtils.isBlank(excelInfo.getUploadDate()) && StringUtils.isNotBlank(excelInfo.getUploadMoney())) {
if (new BigDecimal(excelInfo.getUploadMoney()).compareTo(BigDecimal.ZERO) != 0){
if (new BigDecimal(excelInfo.getUploadMoney()).compareTo(BigDecimal.ZERO) != 0) {
checkWord.add("上传日期不能为空");
break;
}
@ -1876,8 +1958,8 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
checkWord.add("上传金额不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getUploadDate()) && StringUtils.isNotBlank(excelInfo.getUploadMoney())){
if (new BigDecimal(excelInfo.getUploadMoney()).compareTo(BigDecimal.ZERO) == 0){
if (StringUtils.isNotBlank(excelInfo.getUploadDate()) && StringUtils.isNotBlank(excelInfo.getUploadMoney())) {
if (new BigDecimal(excelInfo.getUploadMoney()).compareTo(BigDecimal.ZERO) == 0) {
checkWord.add("上传金额不能为0");
break;
}
@ -2372,7 +2454,7 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
}
}
if (StringUtils.isBlank(excelInfo.getSecondaryUploadDate()) && StringUtils.isNotBlank(excelInfo.getSecondaryUploadMoney())) {
if (new BigDecimal(excelInfo.getSecondaryUploadMoney()).compareTo(BigDecimal.ZERO) != 0){
if (new BigDecimal(excelInfo.getSecondaryUploadMoney()).compareTo(BigDecimal.ZERO) != 0) {
checkWord.add("二次上传日期不能为空");
break;
}
@ -2381,8 +2463,8 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
checkWord.add("二次上传金额不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getSecondaryUploadDate()) && StringUtils.isNotBlank(excelInfo.getSecondaryUploadMoney())){
if (new BigDecimal(excelInfo.getSecondaryUploadMoney()).compareTo(BigDecimal.ZERO) == 0){
if (StringUtils.isNotBlank(excelInfo.getSecondaryUploadDate()) && StringUtils.isNotBlank(excelInfo.getSecondaryUploadMoney())) {
if (new BigDecimal(excelInfo.getSecondaryUploadMoney()).compareTo(BigDecimal.ZERO) == 0) {
checkWord.add("二次上传金额不能为0");
break;
}
@ -2621,4 +2703,15 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
List<ScmVehRebateExcelVo> scmVehRebateExcelVos = baseMapper.excelList(qw);
return scmVehRebateExcelVos;
}
public List<ScmVehRebateTypeStatMxVo> getTypeDetail(String sid, String type) {
List<ScmVehRebateTypeStatMxVo> scmVehRebateTypeStatMxVos = new ArrayList<>();
List<String> sids = Arrays.asList(sid.split(","));
if ("单车返利".equals(type)) {
scmVehRebateTypeStatMxVos = baseMapper.getTypeDetail(sids);
} else if ("专项返利".equals(type)) {
scmVehRebateTypeStatMxVos = scmSpecialRebateService.getTypeDetail(sids);
}
return scmVehRebateTypeStatMxVos;
}
}

20
anrui-scm/anrui-scm-ui/src/api/statement/rebateType.js

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

9
anrui-scm/anrui-scm-ui/src/router/modules/codemenu.js

@ -1100,6 +1100,15 @@ const codemenu = [{
title: '单车返利统计',
noCache: true
}
},
{
path: '/statement/rebateType',
component: () => import('@/views/statement/rebateType/rebateTypeByDetail.vue'),
name: 'RebateTypeByDetail',
meta: {
title: '厂家返利类型',
noCache: true
}
}
// {
// path: '/statement/rebateSummary',

117
anrui-scm/anrui-scm-ui/src/views/statement/rebateSummary/rebateTypeDetails.vue

@ -0,0 +1,117 @@
<template>
<div class="app-container">
<!--列表页面-->
<div v-show="viewState == 1">
<button-bar view-title="厂家返利汇总统计报表" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<div class="main-content">
<div class="listtop">
<div class="tit">厂家返利汇总统计报表</div>
</div>
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;">
<el-table-column prop="customerName" label="返利类型" align="center" width="120" />
<el-table-column prop="vehMark" label="预提" align="center" min-width="180" />
<el-table-column prop="vinNo" label="上传" align="center" width="150" />
<el-table-column prop="count" label="调整" align="center" width="120" />
<el-table-column label="未上传" align="center">
<el-table-column prop="count" label="合计" align="center" width="120" />
<el-table-column label="其中费用" align="center">
<el-table-column prop="count" label="支出" align="center" width="120" />
<el-table-column prop="count" label="待支付" align="center" width="120" />
<el-table-column prop="count" label="抵顶" align="center" width="120" />
</el-table-column>
<el-table-column prop="count" label="剩余" align="center" width="120" />
</el-table-column>
</el-table>
</div>
</div>
</div>
</div>
</template>
<script>
import ButtonBar from '@/components/ButtonBar'
import req from '@/api/statement/salesstatement'
export default {
name: 'BikeRebateStatistics',
components: {
ButtonBar
},
data() {
return {
btndisabled: false,
btnList: [
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
isSearchShow: false,
searchxianshitit: '显示查询条件',
viewState: 1, // 1 2 3 4
tableKey: 0,
list: [],
FormLoading: false,
listLoading: false,
//
listQuery: {
current: 1,
size: 10,
total: 0,
params: {
goodsSpuName: '',
useOrgSid: '',
startDate: '',
endDate: '',
userSid: '',
orgPath: '',
menuUrl: ''
}
}
}
},
created() {
//
this.getList()
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'doClose':
this.doClose()
break
default:
break
}
},
//
getList() {
this.listLoading = true
req.goodsTrendReport(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
}
})
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
</style>

103
anrui-scm/anrui-scm-ui/src/views/statement/rebateType/rebateNameByDetail.vue

@ -0,0 +1,103 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<div style="margin: 0 auto;">{{title}}</div>
<div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<el-form class="formaddcopy02">
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%">
<el-table-column fixed label="序号" type="index" width="80" :index="index + 1" align="center" />
<el-table-column fixed prop="purchaseSystemName" label="采购系统" align="center" width="110" />
<el-table-column fixed prop="vinNo" label="车架号" align="center" width="90" />
<el-table-column prop="vehModelName" label="车型" align="center" width="200" />
<el-table-column prop="palceGenDate" label="返利项目" align="center" width="85" />
<el-table-column prop="palceGenDate" label="所属年月" align="center" width="85" />
<el-table-column prop="rebateTypeValue" label="返利类型" align="center" width="120" />
<el-table-column prop="rebateName" label="返利名称" align="center" width="130" />
<el-table-column label="返利金额" align="center">
<el-table-column prop="estimateRebate" label="预提" align="center" width="100" />
<el-table-column prop="uploadMoney" label="上传" align="center" width="100" />
<el-table-column prop="secondaryUploadMoney" label="二次上传" align="center" width="100" />
<el-table-column prop="stayDetermineMoney" label="待确定" align="center" width="100" />
<el-table-column prop="adjustmentMoney" label="调整" align="center" width="100" />
<el-table-column prop="notUploadMoney" label="未上传" align="center" width="100" />
</el-table-column>
<el-table-column label="其中费用" align="center">
<el-table-column prop="expectCost" label="预提" align="center" width="100" />
<el-table-column prop="money" label="上传" align="center" width="100" />
</el-table-column>
<el-table-column label="日期" align="center">
<el-table-column prop="createTime" label="创建" align="center" width="95" />
<el-table-column prop="withholdingDate" label="预提" align="center" width="95" />
<el-table-column prop="uploadDate" label="上传" align="center" width="95" />
<el-table-column prop="secondaryUploadDate" label="二次上传" align="center" width="95" />
</el-table-column>
<el-table-column label="状态" align="center">
<el-table-column label="流程" align="center" width="70">
<template slot-scope="scope">
<span>{{ scope.row.state == '0' ? '未计提' : scope.row.state == '1' ? '计提中' : scope.row.state == '2' ? '待核对' : scope.row.state == '3' ? '核对中' : scope.row.state == '4' ? '已核对' : '' }}</span>
</template>
</el-table-column>
<el-table-column label="一次核对状态" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.onceCheckState == '1' ? '是' : scope.row.onceCheckState == '0' ? '否' : scope.row.onceCheckState == '2' ? '一次核对中' : '' }}</span>
</template>
</el-table-column>
<el-table-column prop="secondCheckState" label="二次核对" align="center" width="120" />
</el-table-column>
<el-table-column prop="brandName" label="品牌" align="center" width="140" />
<el-table-column prop="useOrgName" label="分公司" align="center" width="150" />
<el-table-column prop="division" label="事业部" align="center" width="150" />
<el-table-column prop="manufactorSettlementPrice" label="车辆入库价" align="center" width="110" />
<el-table-column label="其中" align="center">
<el-table-column prop="freight" label="运费" align="center" width="100" />
<el-table-column prop="topAmount" label="上装" align="center" width="100" />
</el-table-column>
<el-table-column label="返利计算" align="center">
<el-table-column prop="calculationModeValue" label="方式" align="center" width="80" />
<el-table-column prop="calculationStandard" label="标准" align="center" width="100" />
</el-table-column>
<el-table-column prop="remarks" label="备注" align="center" min-width="200" />
</el-table>
</el-form>
</div>
</div>
</template>
<script>
import req from '@/api/statement/rebateType'
export default {
name: 'RebateNameByDetail',
data() {
return {
index: 0,
tableKey: 0,
listLoading: false,
list: [],
title: ''
}
},
methods: {
showInfo(row) {
this.title = '厂家返利名称明细'
req.getTypeDetail({ sid: row.sid, type: row.project }).then((resp) => {
if (resp.success) {
this.list = resp.data
}
})
},
handleReturn() {
this.list = []
this.$emit('doback')
}
}
}
</script>
<style scoped>
</style>

246
anrui-scm/anrui-scm-ui/src/views/statement/rebateType/rebateTypeByDetail.vue

@ -0,0 +1,246 @@
<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="100px" class="tab-header">
<el-form-item label="事业部">
<el-input v-model="listQuery.params.division" placeholder="" clearable/>
</el-form-item>
<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.purchaseSystemName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="品牌">
<el-input v-model="listQuery.params.brandName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="返利项目">
<el-input v-model="listQuery.params.project" placeholder="" clearable/>
</el-form-item>
<el-form-item label="返利类型">
<el-input v-model="listQuery.params.rebateTypeValue" placeholder="" clearable/>
</el-form-item>
<el-form-item label="所属年月">
<el-date-picker v-model="listQuery.params.palceGenDateStart" type="month" clearable format="yyyy-MM" value-format="yyyy-MM" placeholder="选择日期"/>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.palceGenDateEnd" type="month" clearable format="yyyy-MM" value-format="yyyy-MM" placeholder="选择日期"/>
</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 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 prop="purchaseSystemName" label="采购系统" align="center" width="120" />
<el-table-column prop="project" label="返利项目" align="center" min-width="180" />
<el-table-column prop="palceGenDate" label="所属年月" align="center" min-width="180" />
<el-table-column label="返利类型" align="center" width="150">
<template slot-scope="scope">
<span class="bluezi" @click="toInfo(scope.row)">{{ scope.row.rebateTypeValue }}</span>
</template>
</el-table-column>
<el-table-column prop="estimateRebate" label="预提" align="center" width="120" />
<el-table-column prop="uploadMoney" label="上传" align="center" width="120" />
<el-table-column prop="adjustmentMoney" label="调整" align="center" width="120" />
<el-table-column label="未上传" align="center">
<el-table-column prop="notUploadMoney" label="合计" align="center" width="120" />
<el-table-column label="其中费用" align="center">
<el-table-column prop="expectItureCost" label="支出" align="center" width="120" />
<el-table-column prop="expectTreatCost" label="待支付" align="center" width="120" />
<el-table-column prop="expectSuppCost" label="抵顶" align="center" width="120" />
</el-table-column>
<el-table-column prop="balance" label="剩余" align="center" width="120" />
</el-table-column>
<el-table-column prop="brandName" label="品牌" align="center" width="120" />
<el-table-column prop="useOrgName" label="分公司" align="center" width="120" />
<el-table-column prop="division" 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>
<rebateNameByDetail v-show="viewState == 2" 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/statement/rebateType'
import rebateNameByDetail from './rebateNameByDetail'
export default {
name: 'RebateTypeByDetail',
components: {
Pagination,
pageye,
ButtonBar,
rebateNameByDetail
},
data() {
return {
btndisabled: false,
btnList: [
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
isSearchShow: false,
searchxianshitit: '显示查询条件',
viewState: 1, // 1 2 3 4
tableKey: 0,
list: [],
sids: [], // SIDs
FormLoading: false,
listLoading: false,
//
listQuery: {
current: 1,
size: 5,
total: 0,
params: {
division: '',
useOrgName: '',
purchaseSystemName: '',
brandName: '',
project: '',
rebateTypeValue: '',
palceGenDateStart: '',
palceGenDateEnd: '',
userSid: '',
orgPath: '',
menuUrl: ''
}
}
}
},
created() {
//
this.getList()
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'doClose':
this.doClose()
break
default:
break
}
},
// 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: {
division: '',
useOrgName: '',
purchaseSystemName: '',
brandName: '',
project: '',
rebateTypeValue: '',
palceGenDateStart: '',
palceGenDateEnd: '',
userSid: '',
orgPath: '',
menuUrl: ''
}
}
this.getList()
},
toInfo(row) {
this.viewState = 2
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>
Loading…
Cancel
Save