Browse Source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmcollectionrebatecheckapply/ScmCollectionrebateCheckapplyService.java
master
ligaode 4 months ago
parent
commit
721ba32753
  1. 17
      anrui-buscenter/anrui-finmanage-ui/src/api/anruifinmanagement/payment.js
  2. 7
      anrui-buscenter/anrui-finmanage-ui/src/api/jichuxinxi/dictcommons.js
  3. 142
      anrui-buscenter/anrui-finmanage-ui/src/components/publicPage/tops.vue
  4. 8
      anrui-buscenter/anrui-finmanage-ui/src/router/modules/codemenu.js
  5. 176
      anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/payment.vue
  6. 770
      anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/paymentAdd.vue
  7. 416
      anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/paymentInfo.vue
  8. 397
      anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/relation/paymentInformationAdd.vue
  9. 135
      anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/relation/paymentInformationInfo.vue
  10. 54
      anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/relation/vehcile.vue
  11. 405
      anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/fukuanguanliFlow/fukuanguanli/fukuanDaiBanInfo.vue
  12. 750
      anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/fukuanguanliFlow/fukuanguanli/fukuanEdit.vue
  13. 401
      anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/fukuanguanliFlow/fukuanguanli/fukuanYiBanInfo.vue
  14. 397
      anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/fukuanguanliFlow/fukuanguanli/relation/paymentInformationAdd.vue
  15. 135
      anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/fukuanguanliFlow/fukuanguanli/relation/paymentInformationInfo.vue
  16. 57
      anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/fukuanguanliFlow/fukuanguanli/relation/vehcile.vue
  17. 142
      anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/publicPage/tops.vue
  18. 16
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java
  19. 16
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java
  20. 1
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/KingDeeBillId.java
  21. 40
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/costadjustmentsbill/CostAdjustmentsBill.java
  22. 133
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java
  23. 19
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/ApPayBillService.java
  24. 59
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/CostAdjustmentsBillCastToKingDeeBillFields.java
  25. 87
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/CostAdjustmentsBillService.java
  26. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data.json
  27. 116
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_FEntity.json
  28. 13
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_data.json
  29. 38
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_model.json
  30. 97
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/remarks.txt
  31. 5
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmcollectionrebatecheckapply/ScmCollectionrebateCheckapplyFeign.java
  32. 5
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmcollectionrebatecheckapply/ScmCollectionrebateCheckapplyFeignFallback.java
  33. 10
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmcollectionrebatewithapply/ScmCollectionRebateWithApplyFeign.java
  34. 4
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmcollectionrebatewithapply/ScmCollectionRebateWithApplyFeignFallback.java
  35. 10
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatecheckapply/ScmSpecialrebateCheckapplyFeign.java
  36. 4
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatecheckapply/ScmSpecialrebateCheckapplyFeignFallback.java
  37. 5
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatewithapply/ScmSpecialRebateWithApplyFeign.java
  38. 4
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatewithapply/ScmSpecialRebateWithApplyFeignFallback.java
  39. 10
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/ScmVehrebateCheckapplyFeign.java
  40. 4
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/ScmVehrebateCheckapplyFeignFallback.java
  41. 14
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatewithapply/ScmVehRebateWithApplyFeign.java
  42. 4
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatewithapply/ScmVehRebateWithApplyFeignFallback.java
  43. 8
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmcollectionrebatecheckapply/ScmCollectionrebateCheckapplyRest.java
  44. 209
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmcollectionrebatecheckapply/ScmCollectionrebateCheckapplyService.java
  45. 15
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmcollectionrebatewithapply/ScmCollectionRebateWithApplyRest.java
  46. 143
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmcollectionrebatewithapply/ScmCollectionRebateWithApplyService.java
  47. 13
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatecheckapply/ScmSpecialrebateCheckapplyRest.java
  48. 13
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatewithapply/ScmSpecialRebateWithApplyRest.java
  49. 16
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyRest.java
  50. 25
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyService.java
  51. 15
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatewithapply/ScmVehRebateWithApplyRest.java
  52. 43
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatewithapply/ScmVehRebateWithApplyService.java

17
anrui-buscenter/anrui-finmanage-ui/src/api/anruifinmanagement/payment.js

@ -19,11 +19,20 @@ export default {
headers: { 'Content-Type': 'application/json' }
})
},
// 获取厂家销售通路
actualList: function(data) {
// 根据分公司Sid获取本分公司下的付款信息
selectByUseOrgSid: function(data) {
return request({
url: '/base/v1/basemanufacturerbank/payList',
method: 'get'
url: '/fin/v1/finpayment/selectByUseOrgSid',
method: 'get',
params: data
})
},
paymentSave: function(data) {
return request({
url: 'fin/v1/finpayment/save',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
// 保存修改记录

7
anrui-buscenter/anrui-finmanage-ui/src/api/jichuxinxi/dictcommons.js

@ -224,3 +224,10 @@ export function fetchDetails(data) {
method: 'get'
})
}
// 通过sid查询一条记录(上装配置信息)
export function fetchBySidByTops(sid) {
return request({
url: '/base/v1/basevehinstallmodel/fetchDetailsBySid/' + sid,
method: 'get'
})
}

142
anrui-buscenter/anrui-finmanage-ui/src/components/publicPage/tops.vue

@ -0,0 +1,142 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<div>上装配置信息</div>
<div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="dataForm" :model="formobj" class="formaddcopy02">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>车辆功能</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.vehicleTypeValue }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>上装名称</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.installNameValue }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>委改方式</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.refitMethodValue }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>供应商</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.refitFactory }}</span></el-form-item>
</el-col>
</el-row>
<el-row v-if="formobj.installNameKey == '08'">
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>冷机品牌</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.coolerBrand }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>冷机型号</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.coolerModel }}</span></el-form-item>
</el-col>
</el-row>
<div v-if="formobj.installNameKey != '08'">
<el-row>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>货箱内部尺寸</span></div>
<el-form-item>
<div class="addinputInfo addinputwOne">
<span class="inputStyle">{{ formobj.wk_long }}</span>mm,
<span class="inputStyle">{{ formobj.wk_wide }}</span>mm,
<span class="inputStyle">{{ formobj.wk_high }}</span>mm
</div>
</el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>颜色</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.colorValue }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>板材材质</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.plateMaterialValue }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>板材厚度</span></div>
<el-form-item>
<div class="addinputInfo addinputwOne">
<span class="inputStyle">{{ formobj.plateThicknessBottom }}</span>mm,
<span class="inputStyle">{{ formobj.plateThicknessEdge }}</span>mm
</div>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>篷布滑道</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.tarpaulinSlide }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>冷藏冷机</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.refrigerator }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>自卸液压盖板</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.selfUnHyCoPl }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>底板加热</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.floorHeating }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty spanOneWidth"><span>更多配置</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.moreConfig }}</span></el-form-item>
</el-col>
</el-row>
</div>
</el-form>
</div>
</div>
</template>
<script>
import { fetchBySidByTops } from '@/api/jichuxinxi/dictcommons'
export default {
name: 'ShangZhuangInfo',
data() {
return {
formobj: {}
}
},
methods: {
handleReturn() {
this.$emit('doback')
},
showInfo(row) {
fetchBySidByTops(row.sid).then((resp) => {
this.formobj = resp.data
}).catch((e) => {
this.formobj = row
})
console.log('这里是详情回显', row)
}
}
}
</script>
<style scoped>
.spanOneWidth {
width: 110px !important;
}
.addinputwOne {
margin-left: 110px !important;
}
.inputStyle {
display: inline-block;
margin: 0 5px;
}
</style>

8
anrui-buscenter/anrui-finmanage-ui/src/router/modules/codemenu.js

@ -120,7 +120,7 @@ const codemenu = [
children: [{
path: '/anruifinmanagement/fukuanshenqing',
component: () => import('@/views/anruifinmanagement/fukuanshenqing/payment.vue'),
name: 'fukuanshenqingguaili',
name: 'Payment',
meta: { title: '付款申请管理', noCache: true }
}]
},
@ -293,21 +293,21 @@ const codemenu = [
path: '/fukuanguanliFlow/fukuanguanli/fukuanEdit',
component: () =>
import('@/views/workFlow/fukuanguanliFlow/fukuanguanli/fukuanEdit.vue'),
name: 'fukuanEdit'
name: 'FuKuanEdit'
},
// 付款申请管理待办详情
{
path: '/fukuanguanliFlow/fukuanguanli/fukuanDaiBanInfo',
component: () =>
import('@/views/workFlow/fukuanguanliFlow/fukuanguanli/fukuanDaiBanInfo.vue'),
name: 'fukaunDaiBanInfo'
name: 'FuKuanDaiBanInfo'
},
// 付款申请管理已办详情
{
path: '/fukuanguanliFlow/fukuanguanli/fukuanYiBanInfo',
component: () =>
import('@/views/workFlow/fukuanguanliFlow/fukuanguanli/fukuanYiBanInfo.vue'),
name: 'fukuanYiBanInfo'
name: 'FuKuanYiBanInfo'
},
// 开票申请管理编辑
{

176
anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/payment.vue

@ -8,9 +8,36 @@
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" class="tab-header">
<el-form-item label="付款状态">
<el-select v-model="listQuery.params.state" clearable filterable placeholder="请选择">
<el-option v-for="item in state_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option>
<el-form-item label="分公司">
<el-input v-model="listQuery.params.useOrgName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="申请部门">
<el-input v-model="listQuery.params.deptName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="申请人">
<el-input v-model="listQuery.params.name" placeholder="" clearable/>
</el-form-item>
<el-form-item label="单据编号">
<el-input v-model="listQuery.params.billNo" placeholder="" clearable/>
</el-form-item>
<el-form-item label="申请日期">
<el-date-picker v-model="listQuery.params.applyStartDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.applyEndDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="办结日期">
<el-date-picker v-model="listQuery.params.finishStartTime" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.finishEndTime" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="品牌">
<el-select v-model="listQuery.params.carBrandSid" filterable placeholder="请选择" clearable>
<el-option v-for="item in carBrand_list" :key="item.sid" :label="item.brandName" :value="item.sid"/>
</el-select>
</el-form-item>
<el-form-item label="款项范围">
<el-select v-model="listQuery.params.costRangeKey" clearable filterable placeholder="请选择">
<el-option v-for="item in costRange_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option>
</el-select>
</el-form-item>
<el-form-item label="款项类别">
@ -18,20 +45,18 @@
<el-option v-for="item in costType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option>
</el-select>
</el-form-item>
<el-form-item label="款项名称">
<el-select v-model="listQuery.params.costTitleKey" clearable filterable placeholder="请选择">
<el-option v-for="item in costTitle_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option>
<el-form-item label="是否涉及车辆">
<el-select v-model="listQuery.params.isVeh" clearable filterable placeholder="请选择">
<el-option v-for="item in isVeh_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option>
</el-select>
</el-form-item>
<el-form-item label="收款单位">
<el-select v-model="listQuery.params.receiveCompanySid" clearable filterable placeholder="请选择">
<el-option v-for="item in receiveCompany_list" :key="item.sid" :label="item.manufacturerName" :value="item.sid"></el-option>
</el-select>
<el-form-item label="付款单位">
<el-input v-model="listQuery.params.payCompany" placeholder="" clearable/>
</el-form-item>
<el-form-item label="申请日期">
<el-date-picker v-model="listQuery.params.applyStartDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.applyEndDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
<el-form-item label="付款状态">
<el-select v-model="listQuery.params.state" clearable filterable placeholder="请选择">
<el-option v-for="item in state_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option>
</el-select>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
@ -54,52 +79,34 @@
<el-button type="primary" size="mini" @click="toInfo(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column label="状态" align="center">
<el-table-column label="状态" align="center" width="140">
<template slot-scope="scope">
<span v-if="scope.row.nodeState=='待提交'" type="primary" size="mini">待提交</span>
<span v-else @click="flowRecord(scope.row)" class="bluezi">{{ scope.row.nodeState }}</span>
</template>
</el-table-column>
<el-table-column label="业务编号" align="center">
<el-table-column prop="billNo" label="单据编号" align="center" width="170" />
<el-table-column prop="useOrgName" label="分公司" align="center" width="120" />
<el-table-column prop="deptName" label="申请部门" align="center" width="120" />
<el-table-column prop="name" label="申请人" align="center" width="100" />
<el-table-column prop="createTime" label="申请日期" align="center" width="120" />
<el-table-column prop="finishTime" label="办结日期" align="center" width="120" />
<el-table-column prop="carBrandName" label="品牌" align="center" width="100" />
<el-table-column prop="costRangeValue" label="款项范围" align="center" width="120" />
<el-table-column prop="costTypeValue" label="款项类别" align="center" width="120" />
<el-table-column label="是否涉及车辆" align="center" width="140">
<template slot-scope="scope">
<span>{{ scope.row.busSid }}</span>
<span>{{ scope.row.isVeh == '1' ? '是' : '否' }}</span>
</template>
</el-table-column>
<el-table-column label="款项类别" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costTypeValue }}</span>
</template>
</el-table-column>
<el-table-column label="款项名称" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costTitleValue }}</span>
</template>
</el-table-column>
<el-table-column label="收款单位名称" align="center" width="130">
<template slot-scope="scope">
<span>{{ scope.row.receiveCompany }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="收款账号" align="center" width="130px">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ scope.row.receiveBankAccount }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="金额" align="center" width="130px">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ scope.row.cost }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="付款状态" align="center" width="130">
<el-table-column prop="payCompany" label="付款单位" align="center" width="130" />
<el-table-column prop="remarks" label="付款申请备注" align="center" min-width="200" />
<el-table-column prop="paymentTotal" label="金额合计" align="center" width="120" />
<el-table-column label="付款状态" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.state }}</span>
</template>
</el-table-column>
<el-table-column label="备注" align="center" width="130">
<template slot-scope="scope">
<span>{{ scope.row.remarks }}</span>
</template>
</el-table-column>
</el-table>
</div>
<div class="pages">
@ -121,13 +128,13 @@ import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import req from '@/api/anruifinmanagement/payment'
import {typeValues, getOrgSidByPath, selectByOrgSid, selectHaveMessage } from '@/api/jichuxinxi/dictcommons'
import { typeValues, getOrgSidByPath, selectByOrgSid, selectHaveMessage, brandDown } from '@/api/jichuxinxi/dictcommons'
import paymentAdd from './paymentAdd'
import paymentInfo from './paymentInfo'
import { getStorage } from '@/utils/auth'
export default {
name: 'fukuanshenqingguaili',
name: 'Payment',
components: {
Pagination,
pageye,
@ -167,16 +174,27 @@ export default {
receiveCompany_list: [],
state_list: [
{
dictKey: 1,
dictKey: '1',
dictValue: '未付款'
},
{
dictKey: 2,
dictKey: '2',
dictValue: '已付款'
}
],
isVeh_list: [
{
dictKey: '0',
dictValue: '否'
},
{
dictKey: '1',
dictValue: '是'
}
],
carBrand_list: [],
costType_list: [],
costTitle_list: [],
costRange_list: [],
isSearchShow: false,
searchxianshitit: '显示查询条件',
viewState: 1,
@ -188,13 +206,21 @@ export default {
listLoading: false,
listQuery: {
params: {
applyEndDate: '',
useOrgName: '',
deptName: '',
name: '',
billNo: '',
applyStartDate: '',
costTitleKey: '',
costTypeKey: '',
receiveCompany: '',
applyEndDate: '',
finishStartTime: '',
finishEndTime: '',
carBrandSid: '',
costRangeKey: '',
isVeh: '',
payCompany: '',
state: '',
userSid: '',
menuUrl: '',
orgPath: ''
},
current: 1,
@ -245,6 +271,11 @@ export default {
init() {
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((response) => {
if (response.success) {
brandDown({ useOrg: response.data }).then((res) => {
if (res.success) {
this.carBrand_list = res.data
}
})
selectByOrgSid({ orgSid: response.data }).then((resp) => {
if (resp.success) {
this.receiveCompany_list = resp.data
@ -252,14 +283,14 @@ export default {
})
}
})
typeValues({ type: 'payCostType' }).then((res) => {
typeValues({ type: 'paymentCategory' }).then((res) => {
if (res.success) {
this.costType_list = res.data
}
})
typeValues({ type: 'payCostTitle' }).then((res) => {
typeValues({ type: 'paymentScope' }).then((res) => {
if (res.success) {
this.costTitle_list = res.data
this.costRange_list = res.data
}
})
this.getList()
@ -309,14 +340,10 @@ export default {
this.listLoading = true
this.listQuery.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
this.listQuery.params.userSid = window.sessionStorage.getItem('userSid')
this.listQuery.params.menuUrl = this.$route.path
req.listPage(this.listQuery).then((response) => {
console.log('列表查询结果:', response)
this.listLoading = false
if (
response.success &&
response.data &&
response.data.total > 0
) {
if (response.success) {
this.list = response.data.records
this.listQuery.total = response.data.total
} else {
@ -333,13 +360,21 @@ export default {
handleReset() {
this.listQuery = {
params: {
applyEndDate: '',
useOrgName: '',
deptName: '',
name: '',
billNo: '',
applyStartDate: '',
costTitleKey: '',
costTypeKey: '',
receiveCompany: '',
applyEndDate: '',
finishStartTime: '',
finishEndTime: '',
carBrandSid: '',
costRangeKey: '',
isVeh: '',
payCompany: '',
state: '',
userSid: '',
menuUrl: '',
orgPath: ''
},
current: 1,
@ -404,5 +439,6 @@ export default {
}
}
</script>
<style scoped>
</style>

770
anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/paymentAdd.vue

@ -11,187 +11,193 @@
</div>
<div class="listconadd">
<div class="titwu"><span>付款申请</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="4" class="tleftb">
<span>申请日期</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.createTime }}</span></el-form-item>
<div class="span-sty">申请部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>申请人</span>
<el-col :span="8">
<div class="span-sty">申请人</div>
<el-form-item><span class="addinputInfo">{{ formobj.name }}</span></el-form-item>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.name }}</span></el-form-item>
<div class="span-sty">申请日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>款项类别</span>
</el-col>
<el-col :span="8">
<el-col :span="6">
<div class="span-sty">品牌</div>
<el-form-item>
<el-select v-model="formobj.costTypeValue" clearable filterable @change="changeCostType" placeholder="请选择">
<el-option v-for="item in costType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
<el-select class="addinputInfo" v-model="formobj.carBrandName" filterable placeholder="请选择" @change="changeCarBrand" clearable>
<el-option v-for="item in carBrand_list" :key="item.sid" :label="item.brandName" :value="item.brandName"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>款项名称</span>
</el-col>
<el-col :span="8">
<el-col :span="6">
<div class="span-sty">款项范围</div>
<el-form-item>
<el-select v-model="formobj.costTitleValue" clearable filterable @change="changeCostTitle" placeholder="请选择">
<el-option v-for="item in costTitle_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
<el-select class="addinputInfo" v-model="formobj.costRangeValue" clearable filterable @change="changeCostRange" placeholder="请选择">
<el-option v-for="item in costRange_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>业务编号</span>
</el-col>
<el-col :span="8">
<el-col :span="6">
<div class="span-sty">款项类别</div>
<el-form-item>
<el-input v-model="formobj.busSid" class="addinputw" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
</el-col>
<el-col :span="8">
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>付款单位名称</span>
</el-col>
<el-col :span="8">
<el-form-item>
<el-select v-model="formobj.payCompany" filterable placeholder="请选择" @change="changePayCompany" clearable>
<el-option v-for="item in payCompany_list" :key="item.sid" :label="item.name" :value="item.name"/>
<el-select class="addinputInfo" v-model="formobj.costTypeValue" clearable filterable @change="changeCostType" placeholder="请选择">
<el-option v-for="item in costType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>收款单位名称</span>
</el-col>
<el-col :span="8">
<el-col :span="6">
<div class="span-sty"><span class="icon">*</span>是否涉及车辆</div>
<el-form-item>
<el-select v-model="formobj.receiveCompany" filterable placeholder="请选择" @change="changeReceiveCompany" clearable>
<el-option v-for="item in receiveCompany_list" :key="item.sid" :label="item.manufacturerName" :value="item.manufacturerName"/>
</el-select>
<el-radio-group class="addinputInfo" v-model="formobj.isVeh">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>付款备注</span>
</el-col>
<el-col :span="20">
<el-col :span="8">
<div class="span-sty">付款单位</div>
<el-form-item>
<el-input v-model="formobj.remarks" placeholder="更多配置" clearable/>
<el-select class="addinputInfo" v-model="formobj.payCompany" filterable placeholder="请选择" @change="changePayCompany" clearable>
<el-option v-for="item in payCompany_list" :key="item.sid" :label="item.name" :value="item.name"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>品牌</span>
</el-col>
<el-col :span="8">
<div class="span-sty">付款申请备注</div>
<el-form-item>
<el-select v-model="formobj.carBrandName" filterable placeholder="请选择" @change="changeCarBrand" clearable>
<el-option v-for="item in carBrand_list" :key="item.sid" :label="item.brandName" :value="item.brandName"/>
</el-select>
<el-input class="addinputInfo addinputw" v-model="formobj.remarks" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>是否涉及车辆</span>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="icon">*</span>是否事业部领导审批</div>
<el-form-item>
<el-radio v-model="formobj.isVeh" label="1"></el-radio>
<el-radio v-model="formobj.isVeh" label="0"></el-radio>
<el-radio-group class="addinputInfo" v-model="formobj.isLeaderSp">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<div class="title">
<div class="title titleOne">
<div>付款明细</div>
<div>
<el-button type="primary" size="mini" icon="el-icon-plus" class="btntopblueline" @click="handleAdd()">添加</el-button>
</div>
<el-button type="primary" size="mini" icon="el-icon-plus" class="btntopblueline" @click="handleAdd()">添加</el-button>
</div>
<el-table :key="tableKey" :data="formobj.detailsList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column fixed prop="name" label="操作" width="100px" align="center" header-align="center">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column fixed label="操作" width="180" align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" @click="handleDelete(scope.$index)">删除
</el-button>
<el-button size="mini" type="danger" @click="handleDelete(scope.$index)">删除</el-button>
<el-button size="mini" type="primary" @click="handleAddPayment(scope.row, scope.$index)">新增付款信息</el-button>
</template>
</el-table-column>
<el-table-column label="付款方式" align="center">
<el-table-column label="款项名称" align="center" width="200">
<template slot-scope="scope">
<el-select v-model="scope.row.paymentType" placeholder="请选择" filterable @change="changePaymentType($event, scope.row)">
<el-option v-for="item in payment_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"/>
<el-select v-model="scope.row.costTitleValue" clearable filterable @change="changeCostTitle($event, scope.row)" placeholder="请选择">
<el-option v-for="item in costTitle_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="厂家回款通路" align="center">
<el-table-column label="付款方式" align="center" width="200">
<template slot-scope="scope">
<el-select v-model="scope.row.actualPay" placeholder="请选择" filterable @change="changeActualPay($event, scope.row)">
<el-option v-for="item in actualPay_list" :key="item.bankAccount" :label="item.actualPay" :value="item.actualPay"/>
<el-select v-model="scope.row.paymentType" placeholder="请选择" filterable @change="changePaymentType($event, scope.row)">
<el-option v-for="item in payment_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"/>
</el-select>
</template>
</el-table-column>
<el-table-column label="开户行" align="center">
<el-table-column label="厂家回款通路" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.bank }}</span>
<el-select v-model="scope.row.actualPay" placeholder="请选择" filterable @change="changeActualPay($event, scope.row)">
<el-option v-for="item in actualPay_list" :key="item.actualPaySid" :label="item.actualPay" :value="item.actualPay"/>
</el-select>
</template>
</el-table-column>
<el-table-column label="收款银行账号" align="center">
<el-table-column prop="receiveCompany" label="收款单位" align="center" width="150" />
<el-table-column prop="bank" label="开户行" align="center" width="140" />
<el-table-column prop="receivingAccount" label="收款银行账号" align="center" width="160" />
<el-table-column prop="payAccount" label="付款金额(元)" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.receivingAccount }}</span>
<el-input v-model="scope.row.payAccount" placeholder="" clearable @keyup.native="scope.row.payAccount = getNumber(scope.row.payAccount, 2)" @keydown.native="scope.row.payAccount = getNumber(scope.row.payAccount, 2)"></el-input>
</template>
</el-table-column>
<el-table-column prop="payAccount" label="付款金额(元)" align="center">
<el-table-column label="付款备注" align="center" min-width="200">
<template slot-scope="scope">
<el-input v-model="scope.row.payAccount" placeholder="" clearable @keyup.native="UpNumberOne($event, scope.row)" @keydown.native="UpNumberOne($event, scope.row)"></el-input>
<el-input v-model="scope.row.remarks" placeholder="" clearable></el-input>
</template>
</el-table-column>
<el-table-column label="付款备注" align="center">
<el-table-column label="关联付款详情" align="center" width="120">
<template slot-scope="scope">
<el-input v-model="scope.row.remarks" placeholder="" clearable></el-input>
<el-button type="primary" size="mini" v-show="scope.row.finPaymentapplyDetailsBelowList.length > 0" @click="handleLookPayment(scope.row, scope.$index)">查看</el-button>
</template>
</el-table-column>
<el-table-column prop="payAccountTotal" label="关联付款金额" align="center" width="140"/>
</el-table>
<div v-show="formobj.isVeh === '1'">
<div class="title">
<div v-show="formobj.costTypeKey == '001' && formobj.isVeh == '1'"><!-- 款项类别为主车厂家采购且是否涉及车辆为是时显示 -->
<div class="title titleOne">
<div>车辆列表</div>
<div>
<el-button type="primary" size="mini" icon="el-icon-plus" class="btntopblueline" @click="handleselect()">选择</el-button>
<div style="display: flex;flex-direction: row;justify-content: flex-start;align-items: center;">
<div style="margin-right: 10px">
<span><span class="icon">*</span>是否已销售</span>
<el-radio-group v-model="formobj.isSales">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</div>
<div style="margin-right: 10px">
<span><span class="icon">*</span>款项是否已交清</span>
<el-radio-group v-model="formobj.isSettle">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</div>
<el-button type="primary" size="mini" icon="el-icon-plus" class="btntopblueline" @click="toSelect()">选择</el-button>
</div>
</div>
<el-table :key="vehicleKey" :data="formobj.vehicleList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column fixed prop="name" label="操作" width="100px" align="center" header-align="center">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column fixed label="操作" width="100" align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" @click="Delete(scope.$index)">删除
</el-button>
<el-button size="mini" type="danger" @click="toDelete(scope.$index)">删除</el-button>
</template>
</el-table-column>
<el-table-column label="车型" align="center">
<el-table-column prop="modelName" label="车型" align="center" min-width="180" />
<el-table-column prop="vinNo" label="车架号" align="center" width="160" />
<el-table-column prop="marketSegmentsValue" label="版本" align="center" width="100" />
<el-table-column prop="carColor" label="颜色" align="center" width="100" />
<el-table-column prop="emissionStandardValue" label="排放" align="center" width="100" />
<el-table-column prop="tranCaseTypeValue" label="变速箱" align="center" width="110" />
<el-table-column prop="rearAxleValue" label="后桥" align="center" width="100" />
<el-table-column prop="libraryAge" label="厂家库龄" align="center" width="120" />
<el-table-column prop="orgLibraryAge" label="公司库龄" align="center" width="120" />
<el-table-column label="上装名称" align="center" width="130">
<template slot-scope="scope">
<span>{{ scope.row.modelName }}</span>
<span class="bluezi" @click="lookTops(scope.row)">{{ scope.row.topName }}</span>
</template>
</el-table-column>
<el-table-column label="车架号" align="center">
<el-table-column prop="insideCode" label="内部编码" align="center" width="120" />
<el-table-column prop="money" label="厂家结算价" align="center" width="130" />
<el-table-column label="合同/销售订单编号" align="center" width="180">
<template slot-scope="scope">
<span>{{ scope.row.vinNo }}</span>
<span>{{ scope.row.contractNo }}/{{ scope.row.saleBillNo }}</span>
</template>
</el-table-column>
<el-table-column label="厂家结算价" prop="money" align="center">
<el-table-column prop="customerName" label="客户名称" align="center" width="120" />
<el-table-column prop="saleTypeValue" label="销售订单类型" align="center" width="150" />
<el-table-column prop="settlementStatusValue" label="买断状态" align="center" width="120" />
<el-table-column label="是否申请买断" align="center" width="140">
<template slot-scope="scope">
<span>{{ scope.row.money }}</span>
<el-radio-group v-if="scope.row.settlementStatusValue != '已买断'" v-model="scope.row.isSettle">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
<span v-else>{{ scope.row.isSettle }}</span>
</template>
</el-table-column>
</el-table>
@ -200,95 +206,149 @@
</div>
</div>
<!--End 添加修改部分-->
<vehcile v-show="viewState == 2" ref="divVehicle" @backData="backData" @doback="closePage"/>
<!-- 主车车辆列表选择车辆 -->
<vehcile v-show="viewState == 2" ref="divVehicle" @backData="backData" @doback="resetState"/>
<!-- 付款明细表新增关联付款信息 -->
<el-dialog :visible.sync="paymentVisible" width="70%" :show-close="false">
<el-form class="formaddcopy02">
<div class="title titleOne">
<div>关联付款信息列表</div>
<el-button type="primary" size="mini" class="btntopblueline" v-show="paymentBtn" @click="paymentAdd">新增</el-button>
</div>
<el-table :key="paymentKey" :data="paymentInformation.list" :index="index" border style="width: 100%">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column fixed label="操作" width="180" align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" v-show="paymentBtn" @click="paymentDelete(scope.$index)">删除</el-button>
<el-button size="mini" type="primary" @click="paymentLook(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column prop="costTitleValue" label="款项名称" align="center" width="120" />
<el-table-column prop="paymentType" label="付款方式" align="center" width="120" />
<el-table-column prop="receiveCompany" label="收款单位名称" align="center" width="160" />
<el-table-column prop="bank" label="开户行" align="center" width="120" />
<el-table-column prop="receivingAccount" label="银行账号" align="center" width="120" />
<el-table-column prop="payAccount" label="付款金额" align="center" width="120" />
<el-table-column prop="remarks" label="付款备注" align="center" min-width="200" />
<el-table-column prop="isPay" label="后期是否有平仓付款" align="center" width="180">
<template slot-scope="scope">
<span>{{ scope.row.isPay == '1' ? '是' : '否' }}</span>
</template>
</el-table-column>
</el-table>
</el-form>
<div style="text-align: center;padding-top: 5px">
<el-button size="small" type="primary" v-show="paymentBtn" @click="paymentSave">保存</el-button>
<el-button size="small" @click="paymentClose">关闭</el-button>
</div>
</el-dialog>
<!-- 关联付款信息新增 -->
<paymentInformationAdd v-show="viewState == 3" ref="divPaymentInformation" @backInformation="backInformation" @doback="resetStateByInformation" />
<!-- 关联付款信息详情 -->
<paymentInformationInfo v-show="viewState == 4" ref="divPaymentInformationInfo" @doback="resetStateByInformation" />
<!-- 查看上装配置信息 -->
<tops v-show="viewState == 5" ref="divTops" @doback="resetState" />
</div>
</template>
<script>
import req from '@/api/anruifinmanagement/payment'
import {
typeValues,
getOrgSidByPath,
fetchBySid,
getGysByOrgSid,
getListOrg,
brandDown,
selectNameByOrg
} from '@/api/jichuxinxi/dictcommons'
import { typeValues, getOrgSidByPath, fetchBySid, getListOrg, brandDown, selectNameByOrg } from '@/api/jichuxinxi/dictcommons'
import vehcile from './relation/vehcile'
import paymentInformationAdd from './relation/paymentInformationAdd'
import paymentInformationInfo from './relation/paymentInformationInfo'
import tops from '@/components/publicPage/tops'
export default {
name: 'fukuanshenqingAdd',
name: 'PaymentAdd',
components: {
vehcile
vehcile,
paymentInformationAdd,
paymentInformationInfo,
tops
},
data() {
return {
viewTitle: '',
viewState: 1,
submitdisabled: false,
tableKey: 0,
index: 0,
vehicleKey: 1,
viewState: 1,
paymentKey: 2,
index: 0,
carBrand_list: [],
costRange_list: [],
costType_list: [],
costTitle_list: [],
payCompany_list: [],
receiveCompany_list: [],
payment_list: [],
actualPay_list: [],
formobj: {
busSid: '',
comment: '',
costTitleKey: '',
costTitleValue: '',
costTypeKey: '',
costTypeValue: '',
createBySid: '',
instanceId: '',
name: '',
payCompany: '',
payCompanySid: '',
receiveCompany: '',
receiveCompanySid: '',
remarks: '',
sid: '',
taskId: '',
isVeh: '',
carBrandName: '',
carBrandSid: '',
orgPath: '',
billNo: '', //
name: '', //
deptSid: '', // sid
deptName: '', //
createTime: '', //
costRangeKey: '', // Key
costRangeValue: '', // value
isLeaderSp: '', // 10
isSales: '', //
isSettle: '', //
costTypeKey: '', // key
costTypeValue: '', // value
cost: '', //
payCompanySid: '', // sid
payCompany: '', //
busSid: '', // sid
createOrgSid: '', //
useOrgSid: '', // 使
procInstId: '', // id
taskId: '', // id
isVeh: '', // 10
paymentTotal: '', //
carTotal: '', //
carBrandSid: '', // sid
carBrandName: '', //
orgSidPath: '',
detailsList: [],
vehicleList: []
},
rules: {},
submitdisabled: false
paymentVisible: false, // --
paymentBtn: false, // -- --
paymentInformation: { //
index: '',
liquidationPayment: '', //
list: []
}
}
},
methods: {
newDate() {
let date = new Date()
let year = date.getFullYear() //
let month = date.getMonth() + 1 //
let day = date.getDate() //
if (month < 10) {
month = '0' + month
}
if (day < 10) {
day = '0' + day
}
this.formobj.createTime = year + '-' + month + '-' + day
},
UpNumberOne(e, row) {
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)
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 {
//
val = val.replace(reg, '$1.$2')
}
row.payAccount = e.target.value
return val
},
DataDictionary() {
typeValues({ type: 'payCostType' }).then((res) => {
init() {
typeValues({ type: 'paymentScope' }).then((res) => {
if (res.success) {
this.costRange_list = res.data
}
})
typeValues({ type: 'paymentCategory' }).then((res) => {
if (res.success) {
this.costType_list = res.data
}
@ -308,16 +368,11 @@ export default {
this.payment_list = res.data
}
})
},
getPathSidByUserSid() {
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((response) => {
if (response.success) {
getGysByOrgSid({ orgSid: response.data }).then((resp) => {
if (resp.success) {
this.formobj.payCompanySid = response.data
this.receiveCompany_list = resp.data
}
})
this.formobj.createOrgSid = response.data
this.formobj.useOrgSid = response.data
this.formobj.payCompanySid = response.data
fetchBySid(response.data).then((res) => {
if (res.success) {
this.formobj.payCompany = res.data.name
@ -332,19 +387,26 @@ export default {
})
},
showAdd() {
this.newDate()
this.DataDictionary()
this.getPathSidByUserSid()
this.init()
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.viewTitle = '【新增】付款申请'
this.formobj.createBySid = window.sessionStorage.getItem('userSid')
this.formobj.name = window.sessionStorage.getItem('name')
this.formobj.deptName = window.sessionStorage.getItem('defaultOrgPathName').substring(window.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)
this.formobj.deptSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage.getItem('defaultOrgPath').lastIndexOf('/') + 1)
this.formobj.orgPath = window.sessionStorage.getItem('defaultOrgPath')
this.viewTitle = '【新增】付款申请'
var nowDate = new Date()
var date = {
year: nowDate.getFullYear(),
month: nowDate.getMonth() + 1,
day: nowDate.getDate()
}
this.formobj.createTime = date.year + '-' + (date.month >= 10 ? date.month : '0' + date.month) + '-' + (date.day >= 10 ? date.day : '0' + date.day)
},
showEdit(row) {
this.DataDictionary()
this.init()
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
@ -363,151 +425,234 @@ export default {
this.formobj = row
})
},
changeCarBrand(value) {
const choose = this.carBrand_list.filter((item) => item.brandName === value)
if (choose.length > 0 && choose !== null) {
this.formobj.carBrandSid = choose[0].sid
selectNameByOrg({ carBrandSid: this.formobj.carBrandSid }).then((res) => {
if (res.success) {
this.actualPay_list = res.data
}
})
} else {
this.formobj.carBrandSid = ''
this.actualPay_list = []
}
},
changeCostRange(value) {
const choose = this.costRange_list.filter((item) => item.dictValue === value)
if (choose.length > 0 && choose !== null) {
this.formobj.costRangeKey = choose[0].dictKey
} else {
this.formobj.costRangeKey = ''
}
},
changeCostType(value) {
const choose = this.costType_list.filter((item) => item.dictValue === value)
if (choose.length > 0 && choose !== null) {
this.formobj.costTypeKey = choose[0].dictKey
} else {
this.formobj.costTypeKey = ''
}
},
changePayCompany(value) {
const choose = this.payCompany_list.filter((item) => item.name === value)
if (choose.length > 0 && choose !== null) {
this.formobj.payCompanySid = choose[0].sid
} else {
this.formobj.payCompanySid = ''
}
},
handleAdd() {
if (this.formobj.carBrandName === '') {
this.$message({ showClose: true, type: 'error', message: '请先选择品牌' })
return
}
this.formobj.detailsList.push({
costTitleKey: '',
costTitleValue: '',
paymentType: '',
paymentTypeKey: '',
actualPay: '',
receiveCompany: '',
receiveCompanySid: '',
bank: '',
receivingAccount: '',
payAccount: '',
remarks: '',
paymentType: '',
paymentTypeKey: '',
receivingAccount: ''
isPay: '',
payAccountTotal: '',
finPaymentapplyDetailsBelowList: []
})
},
handleDelete(index) {
this.formobj.detailsList.splice(index, 1)
},
handleselect() {
this.viewState = 2
this.$refs['divVehicle'].showData(this.formobj.vehicleList)
handleAddPayment(row, index) {
if (row.paymentType === '') {
this.$message({ showClose: true, type: 'error', message: '付款方式不能为空' })
return
}
this.paymentVisible = true
this.paymentBtn = true
this.paymentInformation.index = index
this.paymentInformation.liquidationPayment = this.formobj.createTime + row.paymentType + '平仓款'
this.paymentInformation.list = JSON.parse(JSON.stringify(row.finPaymentapplyDetailsBelowList))
},
handleLookPayment(row, index) {
this.paymentVisible = true
this.paymentBtn = false
this.paymentInformation.inde = index
this.paymentInformation.liquidationPayment = this.formobj.createTime + row.paymentType + '平仓款'
this.paymentInformation.list = JSON.parse(JSON.stringify(row.finPaymentapplyDetailsBelowList))
},
paymentAdd() {
this.paymentVisible = false
this.viewState = 3
this.$refs['divPaymentInformation'].showAdd(this.formobj.useOrgSid, this.paymentInformation.liquidationPayment)
},
backInformation(value) {
this.viewState = 1
this.paymentVisible = true
value = JSON.parse(JSON.stringify(value))
this.paymentInformation.list.push({
sid: '', // sid
costTitleKey: value.costTitleKey, //
costTitleValue: value.costTitleValue, //
paymentTypeKey: value.paymentTypeKey, // key
paymentType: value.paymentType, // value
receiveCompany: value.receiveCompany, //
receiveCompanySid: value.receiveCompanySid, // sid
bank: value.bank, //
receivingAccount: value.receivingAccount, //
payAccount: value.payAccount, //
detailSid: '', // sid
isPay: value.isPay, //
remarks: value.remarks, //
finPaymentapplyDetailsBelowEveList: value.finPaymentapplyDetailsBelowEveList
})
},
resetStateByInformation() {
this.viewState = 1
this.paymentVisible = true
},
paymentDelete(index) {
this.paymentInformation.list.splice(index, 1)
},
paymentLook(row) {
this.paymentVisible = false
this.viewState = 4
this.$refs['divPaymentInformationInfo'].showInfo(row)
},
Delete(index) {
paymentSave() {
if (this.formobj.detailsList.length > 0) {
this.formobj.detailsList[this.paymentInformation.index].finPaymentapplyDetailsBelowList = this.paymentInformation.list
this.formobj.detailsList.forEach((e) => {
if (e.finPaymentapplyDetailsBelowList.length > 0) {
e.finPaymentapplyDetailsBelowList.forEach((k) => {
e.payAccountTotal = Math.round((parseFloat(e.payAccountTotal !== '' ? e.payAccountTotal : 0) + parseFloat(k.payAccount !== '' ? k.payAccount : 0)) * 100) / 100
})
} else {
e.payAccountTotal = ''
}
})
}
this.paymentClose()
},
paymentClose() {
this.paymentVisible = false
this.paymentBtn = false
this.paymentInformation = {
index: '',
liquidationPayment: '',
list: []
}
},
toSelect() {
if (this.formobj.isSettle !== '' && this.formobj.isSales !== '') {
this.viewState = 2
this.$refs['divVehicle'].showData(this.formobj.vehicleList, this.formobj.useOrgSid, this.formobj.isSales, this.formobj.isSettle)
} else {
this.$message({ showClose: true, type: 'error', message: '是否已销售和款项是否已交清,请选择是或否' })
}
},
toDelete(index) {
this.formobj.vehicleList.splice(index, 1)
},
// --
// --
backData(value) {
this.viewState = 1
value = JSON.parse(JSON.stringify(value))
if (value.length > 0) {
value.forEach((e) => {
this.formobj.vehicleList.push({
vinNo: e.vinNo,
vehiSid: e.vehiSid,
modelName: e.modelName,
applySid: '',
modelName: e.vehicleAlias,
modelSid: e.modelSid,
vinNo: e.vinNo,
vehiSid: e.sid,
money: e.money,
configSid: e.configSid
configSid: e.configSid,
marketSegmentsValue: e.marketSegmentsValue,
carColor: e.carColor,
emissionStandardValue: e.emissionStandardValue,
tranCaseTypeValue: e.tranCaseTypeValue,
rearAxleValue: e.rearAxleValue,
libraryAge: e.libraryAge,
orgLibraryAge: e.orgLibraryAge,
topName: e.topName,
topSid: e.topSid,
insideCode: e.insideCode,
contractNo: e.contractNo,
saleBillNo: e.saleBillNo,
customerName: e.customerName,
saleTypeValue: e.saleTypeValue,
settlementStatusValue: e.settlementStatusValue,
isSettle: e.settlementStatusValue === '已买断' ? '——' : ''
})
})
}
},
changeCarBrand(value) {
let bb = null
this.carBrand_list.forEach((e) => {
if (e.brandName === value) {
bb = {
name: e.brandName,
sid: e.sid
}
}
})
this.formobj.carBrandSid = bb.sid
selectNameByOrg({ carBrandSid: this.formobj.carBrandSid }).then((res) => {
if (res.success) {
this.actualPay_list = res.data
}
})
lookTops(row) {
this.viewState = 5
this.$refs['divTops'].showInfo({ sid: row.topSid })
},
changeCostTitle(value, row) {
const choose = this.costTitle_list.filter((item) => item.dictValue === value)
if (choose.length > 0 && choose !== null) {
row.costTitleKey = choose[0].dictKey
} else {
row.costTitleKey = ''
}
},
changePaymentType(value, row) {
let bb = null
this.payment_list.forEach((e) => {
if (e.dictValue === value) {
bb = {
value: e.dictValue,
key: e.dictKey
}
}
})
row.paymentTypeKey = bb.key
const choose = this.payment_list.filter((item) => item.dictValue === value)
if (choose.length > 0 && choose !== null) {
row.paymentTypeKey = choose[0].dictKey
} else {
row.paymentTypeKey = ''
}
},
changeActualPay(value, row) {
let bb = null
this.actualPay_list.forEach((e) => {
if (e.actualPay === value) {
bb = {
actualPay: e.actualPay,
bankAccount: e.bankAccount,
depositBank: e.depositBank
}
}
})
row.actualPay = bb.actualPay
row.bank = bb.depositBank
row.receivingAccount = bb.bankAccount
},
changeCostType(value) {
let bb = null
this.costType_list.forEach((e) => {
if (e.dictValue === value) {
bb = {
key: e.dictKey,
value: e.dictValue
}
}
})
this.formobj.costTypeKey = bb.key
},
changeCostTitle(value) {
let bb = null
this.costTitle_list.forEach((e) => {
if (e.dictValue === value) {
bb = {
key: e.dictKey,
value: e.dictValue
}
}
})
this.formobj.costTitleKey = bb.key
},
changePayCompany(value) {
let bb = null
this.payCompany_list.forEach((e) => {
if (e.name === value) {
bb = {
name: e.name,
sid: e.sid
}
}
})
this.formobj.payCompanySid = bb.sid
},
changeReceiveCompany(value) {
let bb = null
this.receiveCompany_list.forEach((e) => {
if (e.manufacturerName === value) {
bb = {
manufacturerName: e.manufacturerName,
sid: e.sid
}
}
})
this.formobj.receiveCompanySid = bb.sid
const choose = this.actualPay_list.filter((item) => item.actualPay === value)
if (choose.length > 0 && choose !== null) {
row.actualPay = choose[0].actualPay
row.receiveCompany = choose[0].manufacturerName
row.bank = choose[0].depositBank
row.receivingAccount = choose[0].bankAccount
} else {
row.actualPay = ''
row.bank = ''
row.receivingAccount = ''
}
},
saveOrUpdate() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.saveOrUpdate(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(() => {
@ -527,13 +672,8 @@ export default {
if (valid) {
this.submitdisabled = true
req.submitVehicleApply(this.formobj, this.formobj.sid).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(() => {
@ -564,7 +704,7 @@ export default {
}
}, 0)
sums[index] += ''
this.formobj.payAccountAll = sums[index] += ''
this.formobj.paymentTotal = sums[index] += ''
} else if (column.property === 'money') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
@ -575,45 +715,61 @@ export default {
}
}, 0)
sums[index] += ''
this.formobj.money = sums[index] += ''
} else {
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.amount = sums[index] += ''
} else {
sums[index] = ''
}
this.formobj.carTotal = sums[index] += ''
}
})
return sums
},
resetState() {
this.viewState = 1
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {}
this.submitdisabled = false
this.$refs['form_obj'].resetFields()
this.$emit('doback')
},
closePage() {
this.viewState = 1
}
}
}
</script>
<style scoped>
.title {
.span-sty {
width: 150px !important;
}
.addinputInfo {
margin-left: 140px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 140px !important;
width: calc(100% - 135px);
}
/deep/ .el-form-item__error {
margin-left: 140px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .el-radio-group {
display: inline;
line-height: 1px;
vertical-align: middle;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
/* 覆盖element-ui的单选按钮样式 */
/deep/.titleOne .el-radio__input.is-checked .el-radio__inner {
border-color: #409EFF; /* 未选中状态下的边框颜色 */
background-color: #409EFF; /* 选中后的背景色 */
}
/* 如果需要改变选中后对勾的颜色 */
/deep/.titleOne .el-radio__input.is-checked .el-radio__inner:after {
background-color: #000000; /* 对勾的颜色 */
}
/deep/.titleOne .el-radio__input.is-checked+.el-radio__label {
color: #000000; /* 选中后的字体颜色 */
}
</style>

416
anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/paymentInfo.vue

@ -1,179 +1,270 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<div>付款详情</div>
<div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<div class="titwu"><span>{{ viewTitle }}</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8">
<div class="span-sty">申请部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请人</div>
<el-form-item><span class="addinputInfo">{{ formobj.name }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">品牌</div>
<el-form-item><span class="addinputInfo">{{ formobj.carBrandName }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">款项范围</div>
<el-form-item><span class="addinputInfo">{{ formobj.costRangeValue }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">款项类别</div>
<el-form-item><span class="addinputInfo">{{ formobj.costTypeValue }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">是否涉及车辆</div>
<el-form-item><span class="addinputInfo">{{ formobj.isVeh == '1' ? '是' : '否' }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">付款单位</div>
<el-form-item><span class="addinputInfo">{{ formobj.payCompany }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">付款申请备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.remarks }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">是否事业部领导审批</div>
<el-form-item><span class="addinputInfo">{{ formobj.isLeaderSp == '1' ? '是' : '否' }}</span></el-form-item>
</el-col>
</el-row>
<div class="title">付款明细</div>
<el-table :key="tableKey" :data="formobj.detailsList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column prop="costTitleValue" label="款项名称" align="center" width="200" />
<el-table-column prop="paymentType" label="付款方式" align="center" width="200" />
<el-table-column prop="actualPay" label="厂家回款通路" align="center" width="200" />
<el-table-column prop="receiveCompany" label="收款单位" align="center" width="150" />
<el-table-column prop="bank" label="开户行" align="center" width="140" />
<el-table-column prop="receivingAccount" label="收款银行账号" align="center" width="160" />
<el-table-column prop="payAccount" label="付款金额(元)" align="center" width="150" />
<el-table-column prop="remarks" label="付款备注" align="center" min-width="200" />
<el-table-column label="关联付款详情" align="center" width="120">
<template slot-scope="scope">
<el-button type="primary" size="mini" v-show="scope.row.finPaymentapplyDetailsBelowList.length > 0" @click="handleLookPayment(scope.row, scope.$index)">查看</el-button>
</template>
</el-table-column>
<el-table-column prop="payAccountTotal" label="关联付款金额" align="center" width="140"/>
</el-table>
<div v-show="formobj.costTypeKey == '001' && formobj.isVeh == '1'"><!-- 款项类别为主车厂家采购且是否涉及车辆为是时显示 -->
<div class="title" style="display: flex;flex-direction: row;justify-content: space-between;align-items: center;">
<div>车辆列表</div>
<div style="display: flex;flex-direction: row;justify-content: flex-start;align-items: center;">
<div style="margin-right: 10px">
<span>是否已销售{{ formobj.isSales == '1' ? '是' : '否' }}</span>
</div>
<div>
<span>款项是否已交清{{ formobj.isSettle == '1' ? '是' : '否' }}</span>
</div>
</div>
</div>
<el-table :key="vehicleKey" :data="formobj.vehicleList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column prop="modelName" label="车型" align="center" min-width="180" />
<el-table-column prop="vinNo" label="车架号" align="center" width="160" />
<el-table-column prop="marketSegmentsValue" label="版本" align="center" width="100" />
<el-table-column prop="carColor" label="颜色" align="center" width="100" />
<el-table-column prop="emissionStandardValue" label="排放" align="center" width="100" />
<el-table-column prop="tranCaseTypeValue" label="变速箱" align="center" width="110" />
<el-table-column prop="rearAxleValue" label="后桥" align="center" width="100" />
<el-table-column prop="libraryAge" label="厂家库龄" align="center" width="120" />
<el-table-column prop="orgLibraryAge" label="公司库龄" align="center" width="120" />
<el-table-column prop="topName" label="上装名称" align="center" width="130">
<template slot-scope="scope">
<span class="bluezi" @click="lookTops(scope.row)">{{ scope.row.topName }}</span>
</template>
</el-table-column>
<el-table-column prop="insideCode" label="内部编码" align="center" width="120" />
<el-table-column prop="money" label="厂家结算价" align="center" width="130" />
<el-table-column label="合同/销售订单编号" align="center" width="180">
<template slot-scope="scope">
<span>{{ scope.row.contractNo }}/{{ scope.row.saleBillNo }}</span>
</template>
</el-table-column>
<el-table-column prop="customerName" label="客户名称" align="center" width="120" />
<el-table-column prop="saleTypeValue" label="销售订单类型" align="center" width="150" />
<el-table-column prop="settlementStatusValue" label="买断状态" align="center" width="120" />
<el-table-column label="是否申请买断" align="center" width="140">
<template slot-scope="scope">
<span>{{ scope.row.isSettle == '1' ? '是' : scope.row.isSettle == '0' ? '否' : scope.row.isSettle == '——' ? '——' : '' }}</span>
</template>
</el-table-column>
</el-table>
</div>
</el-form>
</div>
</div>
<div class="listconadd">
<div class="titwu"><span>付款申请</span></div>
<el-form ref="dataForm" :model="formobj" class="formadd">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="4" class="tleftb">
<span>申请日期</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.createTime }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>申请人</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.name }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>款项类别</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.costTypeValue }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>款项名称</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.costTitleValue }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>业务编号</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.busSid }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
</el-col>
<el-col :span="8">
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>付款单位名称</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.payCompany }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>收款单位名称</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.receiveCompany }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>付款备注</span>
</el-col>
<el-col :span="20">
<el-form-item><span>{{ formobj.remarks }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>品牌</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.carBrandName }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>是否涉及车辆</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.isVeh === '1' ? '是' : '否' }}</span></el-form-item>
</el-col>
</el-row>
<div class="title">
<div>付款明细</div>
</div>
<el-table :key="tableKey" :data="formobj.detailsList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="付款方式" align="center">
<!--End 添加修改部分-->
<!-- 付款明细表新增关联付款信息 -->
<el-dialog :visible.sync="paymentVisible" width="70%" :show-close="false">
<el-form class="formaddcopy02">
<div class="title">关联付款信息列表</div>
<el-table :key="paymentKey" :data="paymentInformation.list" :index="index" border style="width: 100%">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column fixed label="操作" width="180" align="center">
<template slot-scope="scope">
<span>{{ scope.row.paymentType }}</span>
<el-button size="mini" type="primary" @click="paymentLook(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column label="厂家回款通路" align="center">
<el-table-column prop="costTitleValue" label="款项名称" align="center" width="120" />
<el-table-column prop="paymentType" label="付款方式" align="center" width="120" />
<el-table-column prop="receiveCompany" label="收款单位名称" align="center" width="160" />
<el-table-column prop="bank" label="开户行" align="center" width="120" />
<el-table-column prop="receivingAccount" label="银行账号" align="center" width="120" />
<el-table-column prop="payAccount" label="付款金额" align="center" width="120" />
<el-table-column prop="remarks" label="付款备注" align="center" min-width="200" />
<el-table-column prop="isPay" label="后期是否有平仓付款" align="center" width="180">
<template slot-scope="scope">
<span>{{ scope.row.actualPay }}</span>
</template>
</el-table-column>
<el-table-column label="开户行" align="center">
<template slot-scope="scope">
<span>{{ scope.row.bank }}</span>
</template>
</el-table-column>
<el-table-column label="收款银行账号" align="center">
<template slot-scope="scope">
<span>{{ scope.row.receivingAccount }}</span>
</template>
</el-table-column>
<el-table-column prop="payAccount" label="付款金额(元)" align="center">
<template slot-scope="scope">
<span>{{ scope.row.payAccount }}</span>
</template>
</el-table-column>
<el-table-column label="付款备注" align="center">
<template slot-scope="scope">
<span>{{ scope.row.remarks }}</span>
<span>{{ scope.row.isPay == '1' ? '是' : '否' }}</span>
</template>
</el-table-column>
</el-table>
<div v-show="formobj.isVeh === '1'">
<div class="title">
<div>车辆列表</div>
</div>
<el-table :key="vehicleKey" :data="formobj.vehicleList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="车型" align="center">
<template slot-scope="scope">
<span>{{ scope.row.modelName }}</span>
</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="厂家结算价" prop="money" align="center">
<template slot-scope="scope">
<span>{{ scope.row.money }}</span>
</template>
</el-table-column>
</el-table>
</div>
</el-form>
</div>
<div style="text-align: center;padding-top: 5px">
<el-button size="small" @click="paymentClose">关闭</el-button>
</div>
</el-dialog>
<!-- 关联付款信息详情 -->
<paymentInformationInfo v-show="viewState == 4" ref="divPaymentInformationInfo" @doback="resetStateByInformation" />
<!-- 查看上装配置信息 -->
<tops v-show="viewState == 5" ref="divTops" @doback="resetState" />
</div>
</template>
<script>
import req from '@/api/anruifinmanagement/payment'
import paymentInformationInfo from './relation/paymentInformationInfo'
import tops from '@/components/publicPage/tops'
export default {
name: 'fukuanshenqingInfo',
name: 'PaymentInfo',
components: {
paymentInformationInfo,
tops
},
data() {
return {
formobj: {},
viewTitle: '',
viewState: 1,
tableKey: 0,
vehicleKey: 1,
index: 0
paymentKey: 2,
index: 0,
formobj: {
billNo: '', //
name: '', //
deptSid: '', // sid
deptName: '', //
createTime: '', //
costRangeKey: '', // Key
costRangeValue: '', // value
isLeaderSp: '', // 10
isSales: '', //
isSettle: '', //
costTypeKey: '', // key
costTypeValue: '', // value
cost: '', //
payCompanySid: '', // sid
payCompany: '', //
busSid: '', // sid
createOrgSid: '', //
useOrgSid: '', // 使
procInstId: '', // id
taskId: '', // id
isVeh: '', // 10
paymentTotal: '', //
carTotal: '', //
carBrandSid: '', // sid
carBrandName: '', //
orgSidPath: '',
detailsList: [],
vehicleList: []
},
rules: {},
paymentVisible: false, // --
paymentInformation: { //
index: '',
liquidationPayment: '', //
list: []
}
}
},
methods: {
handleReturn() {
this.formobj = {}
this.$emit('doback')
},
showInfo(row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.viewTitle = '付款申请'
req.fetchBySid(row.sid).then((resp) => {
this.formobj = resp.data
if (resp.success) {
this.formobj = resp.data
if (this.formobj.vehicleList.length > 0) {
for (var i = 0; i < this.formobj.vehicleList.length; i++) {
if (this.formobj.vehicleList[i].isSettle === '是') {
this.viewTitle = '付款买断申请'
return
}
}
}
}
}).catch((e) => {
this.formobj = row
this.formobj = {}
})
console.log('这里是详情回显', row)
},
handleLookPayment(row, index) {
this.paymentVisible = true
this.paymentInformation.inde = index
this.paymentInformation.liquidationPayment = this.formobj.createTime + row.paymentType + '平仓款'
this.paymentInformation.list = JSON.parse(JSON.stringify(row.finPaymentapplyDetailsBelowList))
},
resetStateByInformation() {
this.viewState = 1
this.paymentVisible = true
},
paymentLook(row) {
this.paymentVisible = false
this.viewState = 4
this.$refs['divPaymentInformationInfo'].showInfo(row)
},
paymentClose() {
this.paymentVisible = false
this.paymentInformation = {
index: '',
liquidationPayment: '',
list: []
}
},
lookTops(row) {
this.viewState = 5
this.$refs['divTops'].showInfo({ sid: row.topSid })
},
//
getSummaries(param) {
@ -195,7 +286,7 @@ export default {
}
}, 0)
sums[index] += ''
this.formobj.payAccountAll = sums[index] += ''
this.formobj.paymentTotal = sums[index] += ''
} else if (column.property === 'money') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
@ -206,29 +297,28 @@ export default {
}
}, 0)
sums[index] += ''
this.formobj.money = sums[index] += ''
} else {
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.amount = sums[index] += ''
} else {
sums[index] = ''
}
this.formobj.carTotal = sums[index] += ''
}
})
return sums
},
resetState() {
this.viewState = 1
},
handleReturn() {
this.formobj = {}
this.$refs['form_obj'].resetFields()
this.$emit('doback')
}
}
}
</script>
<style scoped>
.span-sty {
width: 150px !important;
}
.addinputInfo {
margin-left: 140px !important;
}
</style>

397
anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/relation/paymentInformationAdd.vue

@ -0,0 +1,397 @@
<temp<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" @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" :rules="rules" class="formaddcopy02">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="12">
<div class="span-sty"><span class="icon">*</span>款项名称</div>
<el-form-item prop="costTitleValue">
<el-select class="addinputInfo" v-model="formobj.costTitleValue" placeholder="请选择" @change="costTitleChange" clearable filterable>
<el-option v-for="item in costTitle_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty"><span class="icon">*</span>付款方式</div>
<el-form-item prop="paymentType">
<el-select class="addinputInfo" v-model="formobj.paymentType" placeholder="请选择" @change="paymentChange" clearable filterable>
<el-option v-for="item in payment_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty"><span class="icon">*</span>收款单位名称</div>
<el-form-item prop="receiveCompany">
<el-select class="addinputInfo" v-model="formobj.receiveCompany" placeholder="请选择" @change="receiveCompanyChange" clearable filterable>
<el-option v-for="item in receiveCompany_list" :key="item.sid" :label="item.companyName" :value="item.companyName"></el-option>
</el-select>
<el-button style="margin-left: 10px" type="primary" size="mini" @click="receiveCompanyAdd">添加</el-button>
</el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">银行账号</div>
<el-form-item><span class="addinputInfo">{{ formobj.receivingAccount }}</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.bank }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty"><span class="icon">*</span>付款金额</div>
<el-form-item prop="payAccount"><el-input class="addinputInfo addinputw" @keyup.native="formobj.payAccount = getNumber(formobj.payAccount, 2)" v-model="formobj.payAccount" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">付款备注</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.remarks" clearable placeholder="" /></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty"><span class="icon">*</span>后期是否有平仓付款</div>
<el-form-item prop="isPay">
<el-radio-group class="addinputInfo" v-model="formobj.isPay">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<div v-show="formobj.isPay == '1'">
<div class="title titleOne">
<div>平仓信息</div>
<el-button type="primary" size="mini" class="btntopblueline" @click="toAdd">添加</el-button>
</div>
<el-table :key="tableKey" :data="formobj.finPaymentapplyDetailsBelowEveList" :index="index" border style="width: 100%">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column fixed label="操作" width="100" align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" @click="toDelete(scope.$index)">删除</el-button>
</template>
</el-table-column>
<el-table-column prop="costTitleValue" label="平仓款名称" align="center" />
<el-table-column label="期数" align="center">
<template slot-scope="scope">
<el-input @keyup.native="scope.row.period = getNumber(scope.row.period, 2)" v-model="scope.row.period" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column label="平仓付款日期" align="center">
<template slot-scope="scope">
<el-date-picker v-model="scope.row.exePayDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
</template>
</el-table-column>
<el-table-column label="平仓付款金额" align="center">
<template slot-scope="scope">
<el-input @keyup.native="scope.row.exePayPrice = getNumber(scope.row.exePayPrice, 2)" v-model="scope.row.exePayPrice" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column label="备注" align="center">
<template slot-scope="scope">
<el-input v-model="scope.row.remarks" clearable placeholder="" />
</template>
</el-table-column>
</el-table>
</div>
</el-form>
</div>
</div>
<el-dialog :visible.sync="dialogVisible" width="50%" :show-close="false">
<el-form ref="temp_obj" :model="temp" class="formaddcopy02">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="12">
<div class="span-sty">单位编码</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="temp.companyCode" clearable placeholder=""/></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">单位名称</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="temp.companyName" clearable placeholder=""/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">开户行</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="temp.bank" clearable placeholder=""/></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">银行账号</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="temp.receivingAccount" clearable 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="temp.businessTypeValue" placeholder="请选择" @change="businessTypeChange" clearable filterable>
<el-option v-for="item in businessType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">备注</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="temp.remarks" clearable placeholder=""/></el-form-item>
</el-col>
</el-row>
</el-form>
<div style="text-align: center;padding-top: 5px">
<el-button size="small" type="primary" @click="handleSave">保存</el-button>
<el-button size="small" @click="handleClose">关闭</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import req from '@/api/anruifinmanagement/payment'
import { typeValues } from '@/api/jichuxinxi/dictcommons'
export default {
name: 'PaymentInformationAdd',
data() {
return {
viewTitle: '',
viewState: 1,
tableKey: 0,
index: 0,
costTitle_list: [],
payment_list: [],
receiveCompany_list: [],
businessType_list: [],
liquidationPayment: '', //
formobj: {
sid: '', // sid
costTitleKey: '', //
costTitleValue: '', //
paymentTypeKey: '', // key
paymentType: '', // value
receiveCompany: '', //
receiveCompanySid: '', // sid
bank: '', //
receivingAccount: '', //
payAccount: '', //
detailSid: '', // sid
isPay: '', //
finPaymentapplyDetailsBelowEveList: []
},
dialogVisible: false,
temp: {
companyCode: '', //
companyName: '', //
bank: '', //
receivingAccount: '', //
businessTypeKey: '', // key
businessTypeValue: '', // value
remarks: '', //
useOrgSid: '', // sid
useOrgName: ''
},
rules: {
costTitleValue: [{ required: true, message: '款项名称不能为空', trigger: 'change' }],
paymentType: [{ required: true, message: '付款方式不能为空', trigger: 'change' }],
receiveCompany: [{ required: true, message: '收款单位名称不能为空', trigger: 'change' }],
payAccount: [{ required: true, message: '付款金额不能为空', trigger: 'blur' }],
isPay: [{ required: true, message: '后期是否有平仓付款不能为空', trigger: 'change' }]
}
}
},
methods: {
init() {
typeValues({ type: 'payCostTitle' }).then((res) => {
if (res.success) {
this.costTitle_list = res.data
}
})
typeValues({ type: 'paymentType' }).then((res) => {
if (res.success) {
this.payment_list = res.data
}
})
typeValues({ type: 'cw_businessType' }).then((res) => {
if (res.success) {
this.businessType_list = res.data
}
})
},
showAdd(useOrgSid, liquidationPayment) {
this.viewTitle = '【新增】付款信息'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.init()
this.liquidationPayment = liquidationPayment
this.temp.useOrgSid = useOrgSid
this.selectByUseOrgSid(useOrgSid)
},
selectByUseOrgSid(value) {
req.selectByUseOrgSid({ useOrgSid: value }).then((res) => {
if (res.success) {
this.receiveCompany_list = res.data
}
})
},
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 {
//
val = val.replace(reg, '$1.$2')
}
return val
},
costTitleChange(value) {
const choose = this.costTitle_list.filter((item) => item.dictValue === value)
if (choose !== null && choose.length > 0) {
this.formobj.costTitleKey = choose[0].dictKey
} else {
this.formobj.costTitleKey = ''
}
},
paymentChange(value) {
const choose = this.payment_list.filter((item) => item.dictValue === value)
if (choose !== null && choose.length > 0) {
this.formobj.paymentTypeKey = choose[0].dictKey
} else {
this.formobj.paymentTypeKey = ''
}
},
receiveCompanyChange(value) {
const choose = this.receiveCompany_list.filter((item) => item.companyName === value)
if (choose !== null && choose.length > 0) {
this.formobj.receiveCompanySid = choose[0].sid
this.formobj.receivingAccount = choose[0].companyName
this.formobj.bank = choose[0].bank
} else {
this.formobj.receiveCompanySid = ''
this.formobj.receivingAccount = ''
this.formobj.bank = ''
}
},
receiveCompanyAdd() {
this.dialogVisible = true
},
handleSave() {
req.paymentSave(this.temp).then((res) => {
if (res.success) {
this.$message({ showClose: true, type: 'success', message: '保存成功' })
this.selectByUseOrgSid(this.temp.useOrgSid)
this.handleClose()
}
})
},
handleClose() {
this.dialogVisible = false
this.temp.companyCode = '' //
this.temp.companyName = '' //
this.temp.bank = '' //
this.temp.receivingAccount = '' //
this.temp.businessTypeKey = '' // key
this.temp.businessTypeValue = '' // value
this.temp.remarks = '' //
},
toAdd() {
this.formobj.finPaymentapplyDetailsBelowEveList.push({
sid: '', // sid
costTitleKey: '', //
costTitleValue: this.liquidationPayment, //
detailSid: '', // sid
openDate: '', //
period: '', //
payCompanySid: '', // sid
payCompany: '', //
receiveCompany: '', //
receiveCompanySid: '', // sid
receivingAccount: '', //
actualPay: '', //
bank: '', //
exePayDate: '', //
exePayPrice: '', //
remarks: ''
})
},
toDelete(index) {
this.formobj.finPaymentapplyDetailsBelowEveList.splice(index, 1)
},
businessTypeChange(value) {
const choose = this.businessType_list.filter((item) => item.dictValue === value)
if (choose !== null && choose.length > 0) {
this.temp.businessTypeKey = choose[0].dictKey
} else {
this.temp.businessTypeKey = ''
}
},
saveOrUpdate() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.$emit('backInformation', this.formobj)
this.handleReturn()
}
})
},
handleReturn() {
this.formobj = {
sid: '', // sid
costTitleKey: '', //
costTitleValue: '', //
paymentTypeKey: '', // key
paymentType: '', // value
receiveCompany: '', //
receiveCompanySid: '', // sid
bank: '', //
receivingAccount: '', //
payAccount: '', //
detailSid: '', // sid
isPay: '', //
finPaymentapplyDetailsBelowEveList: []
}
this.$emit('doback')
}
}
}
</script>
<style scoped>
.span-sty {
width: 150px !important;
}
.addinputInfo {
margin-left: 140px !important;
}
/deep/ .el-form-item__error {
margin-left: 140px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 140px !important;
width: calc(100% - 135px);
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .el-radio-group {
display: inline;
line-height: 1px;
vertical-align: middle;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
</style>

135
anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/relation/paymentInformationInfo.vue

@ -0,0 +1,135 @@
<temp<template>
<div class="app-container">
<div v-show="viewState == 1">
<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" :rules="rules" 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.costTitleValue }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">付款方式</div>
<el-form-item><span class="addinputInfo">{{ formobj.paymentType }}</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.receiveCompany }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">银行账号</div>
<el-form-item><span class="addinputInfo">{{ formobj.receivingAccount }}</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.bank }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">付款金额</div>
<el-form-item><span class="addinputInfo">{{ formobj.payAccount }}</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.remarks }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">后期是否有平仓付款</div>
<el-form-item><span class="addinputInfo">{{ formobj.isPay == '1' ? '是' : '否' }}</span></el-form-item>
</el-col>
</el-row>
<div v-show="formobj.isPay == '1'">
<div class="title">平仓信息</div>
<el-table :key="tableKey" :data="formobj.finPaymentapplyDetailsBelowEveList" :index="index" border style="width: 100%">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column prop="costTitleValue" label="平仓款名称" align="center" />
<el-table-column prop="period" label="期数" align="center" />
<el-table-column prop="exePayDate" label="平仓付款日期" align="center" />
<el-table-column prop="exePayPrice" label="平仓付款金额" align="center" />
<el-table-column prop="remarks" label="备注" align="center" />
</el-table>
</div>
</el-form>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'PaymentInformationInfo',
data() {
return {
viewTitle: '',
viewState: 1,
tableKey: 0,
index: 0,
formobj: {
sid: '', // sid
costTitleKey: '', //
costTitleValue: '', //
paymentTypeKey: '', // key
paymentType: '', // value
receiveCompany: '', //
receiveCompanySid: '', // sid
bank: '', //
receivingAccount: '', //
payAccount: '', //
detailSid: '', // sid
isPay: '', //
finPaymentapplyDetailsBelowEveList: []
},
rules: {}
}
},
methods: {
showInfo(row) {
this.viewTitle = '付款信息'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
const value = JSON.parse(JSON.stringify(row))
this.formobj = row
},
handleReturn() {
this.formobj = {
sid: '', // sid
costTitleKey: '', //
costTitleValue: '', //
paymentTypeKey: '', // key
paymentType: '', // value
receiveCompany: '', //
receiveCompanySid: '', // sid
bank: '', //
receivingAccount: '', //
payAccount: '', //
detailSid: '', // sid
isPay: '', //
finPaymentapplyDetailsBelowEveList: []
}
this.$emit('doback')
}
}
}
</script>
<style scoped>
.span-sty {
width: 150px !important;
}
.addinputInfo {
margin-left: 140px !important;
}
</style>

54
anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/relation/vehcile.vue

@ -99,7 +99,7 @@
</el-table-column>
<el-table-column label="颜色" align="center">
<template slot-scope="scope">
<span>{{ scope.row.color }}</span>
<span>{{ scope.row.carColor }}</span>
</template>
</el-table-column>
<el-table-column label="存放地点" align="center">
@ -109,7 +109,7 @@
</el-table-column>
<el-table-column label="厂家结算价" align="center">
<template slot-scope="scope">
<span>{{ scope.row.guidedPrice }}</span>
<span>{{ scope.row.money }}</span>
</template>
</el-table-column>
</el-table>
@ -130,7 +130,7 @@ import req from '@/api/anruifinmanagement/payment'
import { typeValues, brandDown, getOrgSidByPath } from '@/api/jichuxinxi/dictcommons'
export default {
name: 'xianchechaxun',
name: 'Vehcile',
components: {
Pagination
},
@ -149,6 +149,7 @@ export default {
searchxianshitit: '隐藏查询条件',
tableKey: 0,
sids: [],
multipleSelection: [],
list: [],
number: '',
listLoading: false,
@ -168,7 +169,10 @@ export default {
vehicleType: '',
vehicleVersion: '',
userSid: '',
orgSid: '',
orderingNo: '',
isSales: '',
isSettle: '',
vinSidList: []
},
total: 0
@ -210,37 +214,37 @@ export default {
}
})
typeValues({ type: 'productLine' }).then((res) => {
if (res.code === '200') {
if (res.success) {
this.productLine_list = res.data
}
})
typeValues({ type: 'driver' }).then((res) => {
if (res.code === '200') {
if (res.success) {
this.driveForm_list = res.data
}
})
typeValues({ type: 'horsepower' }).then((res) => {
if (res.code === '200') {
if (res.success) {
this.power_list = res.data
}
})
typeValues({ type: 'vehicleVersion' }).then((res) => {
if (res.code === '200') {
if (res.success) {
this.vehicleVersion_list = res.data
}
})
typeValues({ type: 'fuelType' }).then((res) => {
if (res.code === '200') {
if (res.success) {
this.fuelType_list = res.data
}
})
typeValues({ type: 'gearbox' }).then((res) => {
if (res.code === '200') {
if (res.success) {
this.gearboxType_list = res.data
}
})
typeValues({ type: 'emissionStandard' }).then((res) => {
if (res.code === '200') {
if (res.success) {
this.emissionStandard_list = res.data
}
})
@ -292,21 +296,9 @@ export default {
this.getList()
},
handleSelectionChange(row) {
this.sids = []
const aa = []
row.forEach((element) => {
aa.push({
vinNo: element.vinNo,
vehiSid: element.sid,
modelName: element.vehicleAlias,
modelSid: element.modelSid,
money: element.priced,
configSid: element.configSid
})
})
this.sids = aa
this.multipleSelection = row
},
showData(value) {
showData(value, useOrgSid, isSales, isSettle) {
const aa = []
if (value.length > 0) {
for (var i = 0; i < value.length; i++) {
@ -316,19 +308,17 @@ export default {
} else {
this.listQuery.params.vinSidList = []
}
this.listQuery.params.isSales = isSales
this.listQuery.params.isSettle = isSettle
this.listQuery.params.orgSid = useOrgSid
this.init()
},
//
AddUpdateReturn() {
if (this.sids.length > 0) {
this.$emit('backData', this.sids)
if (this.multipleSelection.length > 0) {
this.$emit('backData', this.multipleSelection)
} else {
this.$notify({
title: '提示',
message: '请选择至少一条车型记录!',
type: 'error',
duration: 2000
})
this.$notify({ title: '提示', message: '请选择至少一条记录!', type: 'error', duration: 2000 })
}
}
}

405
anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/fukuanguanliFlow/fukuanguanli/fukuanDaiBanInfo.vue

@ -1,153 +1,162 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<div>付款详情</div>
<div>
<el-button type="primary" size="small" @click="openAgree('同意')"> </el-button>
<el-button type="danger" size="small" @click="openReject('驳回')"> </el-button>
<el-button type="danger" size="small" @click="openStop('终止')"> </el-button>
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" @click="openAgree('同意')"> </el-button>
<el-button type="danger" size="small" @click="openReject('驳回')"> </el-button>
<el-button type="danger" size="small" @click="openStop('终止')"> </el-button>
</div>
</div>
<div class="">
<div class="titwu"><span>{{ viewTitle }}</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8">
<div class="span-sty">申请部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请人</div>
<el-form-item><span class="addinputInfo">{{ formobj.name }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">品牌</div>
<el-form-item><span class="addinputInfo">{{ formobj.carBrandName }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">款项范围</div>
<el-form-item><span class="addinputInfo">{{ formobj.costRangeValue }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">款项类别</div>
<el-form-item><span class="addinputInfo">{{ formobj.costTypeValue }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">是否涉及车辆</div>
<el-form-item><span class="addinputInfo">{{ formobj.isVeh == '1' ? '是' : '否' }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">付款单位</div>
<el-form-item><span class="addinputInfo">{{ formobj.payCompany }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">付款申请备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.remarks }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">是否事业部领导审批</div>
<el-form-item><span class="addinputInfo">{{ formobj.isLeaderSp == '1' ? '是' : '否' }}</span></el-form-item>
</el-col>
</el-row>
<div class="title">付款明细</div>
<el-table :key="tableKey" :data="formobj.detailsList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column prop="costTitleValue" label="款项名称" align="center" width="200" />
<el-table-column prop="paymentType" label="付款方式" align="center" width="200" />
<el-table-column prop="actualPay" label="厂家回款通路" align="center" width="200" />
<el-table-column prop="receiveCompany" label="收款单位" align="center" width="150" />
<el-table-column prop="bank" label="开户行" align="center" width="140" />
<el-table-column prop="receivingAccount" label="收款银行账号" align="center" width="160" />
<el-table-column prop="payAccount" label="付款金额(元)" align="center" width="150" />
<el-table-column prop="remarks" label="付款备注" align="center" min-width="200" />
<el-table-column label="关联付款详情" align="center" width="120">
<template slot-scope="scope">
<el-button type="primary" size="mini" v-show="scope.row.finPaymentapplyDetailsBelowList.length > 0" @click="handleLookPayment(scope.row, scope.$index)">查看</el-button>
</template>
</el-table-column>
<el-table-column prop="payAccountTotal" label="关联付款金额" align="center" width="140"/>
</el-table>
<div v-show="formobj.costTypeKey == '001' && formobj.isVeh == '1'"><!-- 款项类别为主车厂家采购且是否涉及车辆为是时显示 -->
<div class="title" style="display: flex;flex-direction: row;justify-content: space-between;align-items: center;">
<div>车辆列表</div>
<div style="display: flex;flex-direction: row;justify-content: flex-start;align-items: center;">
<div style="margin-right: 10px">
<span>是否已销售{{ formobj.isSales == '1' ? '是' : '否' }}</span>
</div>
<div>
<span>款项是否已交清{{ formobj.isSettle == '1' ? '是' : '否' }}</span>
</div>
</div>
</div>
<el-table :key="vehicleKey" :data="formobj.vehicleList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column prop="modelName" label="车型" align="center" min-width="180" />
<el-table-column prop="vinNo" label="车架号" align="center" width="160" />
<el-table-column prop="marketSegmentsValue" label="版本" align="center" width="100" />
<el-table-column prop="carColor" label="颜色" align="center" width="100" />
<el-table-column prop="emissionStandardValue" label="排放" align="center" width="100" />
<el-table-column prop="tranCaseTypeValue" label="变速箱" align="center" width="110" />
<el-table-column prop="rearAxleValue" label="后桥" align="center" width="100" />
<el-table-column prop="libraryAge" label="厂家库龄" align="center" width="120" />
<el-table-column prop="orgLibraryAge" label="公司库龄" align="center" width="120" />
<el-table-column prop="topName" label="上装名称" align="center" width="130">
<template slot-scope="scope">
<span class="bluezi" @click="lookTops(scope.row)">{{ scope.row.topName }}</span>
</template>
</el-table-column>
<el-table-column prop="insideCode" label="内部编码" align="center" width="120" />
<el-table-column prop="money" label="厂家结算价" align="center" width="130" />
<el-table-column label="合同/销售订单编号" align="center" width="180">
<template slot-scope="scope">
<span>{{ scope.row.contractNo }}/{{ scope.row.saleBillNo }}</span>
</template>
</el-table-column>
<el-table-column prop="customerName" label="客户名称" align="center" width="120" />
<el-table-column prop="saleTypeValue" label="销售订单类型" align="center" width="150" />
<el-table-column prop="settlementStatusValue" label="买断状态" align="center" width="120" />
<el-table-column label="是否申请买断" align="center" width="140">
<template slot-scope="scope">
<span>{{ scope.row.isSettle == '1' ? '是' : scope.row.isSettle == '0' ? '否' : scope.row.isSettle == '——' ? '——' : '' }}</span>
</template>
</el-table-column>
</el-table>
</div>
</el-form>
</div>
</div>
<div class="">
<div class="titwu"><span>付款申请</span></div>
<el-form ref="dataForm" :model="formobj" class="formadd">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="4" class="tleftb">
<span>申请日期</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.createTime }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>申请人</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.name }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>款项类别</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.costTypeValue }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>款项名称</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.costTitleValue }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>业务编号</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.busSid }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
</el-col>
<el-col :span="8">
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>付款单位名称</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.payCompany }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>收款单位名称</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.receiveCompany }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>付款备注</span>
</el-col>
<el-col :span="20">
<el-form-item><span>{{ formobj.remarks }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>品牌</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.carBrandName }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>是否涉及车辆</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.isVeh === '1' ? '是' : '否' }}</span></el-form-item>
</el-col>
</el-row>
<div class="title">
<div>付款明细</div>
</div>
<el-table :key="tableKey" :data="formobj.detailsList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="付款方式" align="center">
<template slot-scope="scope">
<span>{{ scope.row.paymentType }}</span>
</template>
</el-table-column>
<el-table-column label="厂家回款通路" align="center">
<template slot-scope="scope">
<span>{{ scope.row.actualPay }}</span>
</template>
</el-table-column>
<el-table-column label="开户行" align="center">
<!-- 付款明细表新增关联付款信息 -->
<el-dialog :visible.sync="paymentVisible" width="70%" :show-close="false">
<el-form class="formaddcopy02">
<div class="title">关联付款信息列表</div>
<el-table :key="paymentKey" :data="paymentInformation.list" :index="index" border style="width: 100%">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column fixed label="操作" width="180" align="center">
<template slot-scope="scope">
<span>{{ scope.row.bank }}</span>
<el-button size="mini" type="primary" @click="paymentLook(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column label="收款银行账号" align="center">
<el-table-column prop="costTitleValue" label="款项名称" align="center" width="120" />
<el-table-column prop="paymentType" label="付款方式" align="center" width="120" />
<el-table-column prop="receiveCompany" label="收款单位名称" align="center" width="160" />
<el-table-column prop="bank" label="开户行" align="center" width="120" />
<el-table-column prop="receivingAccount" label="银行账号" align="center" width="120" />
<el-table-column prop="payAccount" label="付款金额" align="center" width="120" />
<el-table-column prop="remarks" label="付款备注" align="center" min-width="200" />
<el-table-column prop="isPay" label="后期是否有平仓付款" align="center" width="180">
<template slot-scope="scope">
<span>{{ scope.row.receivingAccount }}</span>
</template>
</el-table-column>
<el-table-column prop="payAccount" label="付款金额(元)" align="center">
<template slot-scope="scope">
<span>{{ scope.row.payAccount }}</span>
</template>
</el-table-column>
<el-table-column label="付款备注" align="center">
<template slot-scope="scope">
<span>{{ scope.row.remarks }}</span>
<span>{{ scope.row.isPay == '1' ? '是' : '否' }}</span>
</template>
</el-table-column>
</el-table>
<div v-show="formobj.isVeh === '1'">
<div class="title">
<div>车辆列表</div>
</div>
<el-table :key="vehicleKey" :data="formobj.vehicleList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="车型" align="center">
<template slot-scope="scope">
<span>{{ scope.row.modelName }}</span>
</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="厂家结算价" prop="money" align="center">
<template slot-scope="scope">
<span>{{ scope.row.money }}</span>
</template>
</el-table-column>
</el-table>
</div>
</el-form>
</div>
<div style="text-align: center;padding-top: 5px">
<el-button size="small" @click="paymentClose">关闭</el-button>
</div>
</el-dialog>
<!-- 关联付款信息详情 -->
<paymentInformationInfo v-show="viewState == 4" ref="divPaymentInformationInfo" @doback="resetStateByInformation" />
<!-- 查看上装配置信息 -->
<tops v-show="viewState == 5" ref="divTops" @doback="resetState" />
<!-- 选择待办人 的弹出框-->
<el-dialog title="选择待办人" :visible.sync="nodeDialogVisible" width="80%">
<el-form label-position="right" class="formadd" >
@ -176,15 +185,60 @@
<script>
import req from '@/api/anruifinmanagement/payment'
import paymentInformationInfo from './relation/paymentInformationInfo'
import tops from '@/components/publicPage/tops'
export default {
name: 'fukuanDaiBanInfo',
name: 'FuKuanDaiBanInfo',
components: {
paymentInformationInfo,
tops
},
data() {
return {
formobj: {},
viewTitle: '',
viewState: 1,
tableKey: 0,
vehicleKey: 1,
paymentKey: 2,
index: 0,
formobj: {
billNo: '', //
name: '', //
deptSid: '', // sid
deptName: '', //
createTime: '', //
costRangeKey: '', // Key
costRangeValue: '', // value
isLeaderSp: '', // 10
isSales: '', //
isSettle: '', //
costTypeKey: '', // key
costTypeValue: '', // value
cost: '', //
payCompanySid: '', // sid
payCompany: '', //
busSid: '', // sid
createOrgSid: '', //
useOrgSid: '', // 使
procInstId: '', // id
taskId: '', // id
isVeh: '', // 10
paymentTotal: '', //
carTotal: '', //
carBrandSid: '', // sid
carBrandName: '', //
orgSidPath: '',
detailsList: [],
vehicleList: []
},
rules: {},
paymentVisible: false, // --
paymentInformation: { //
index: '',
liquidationPayment: '', //
list: []
},
dialogList: {
comment: ''
},
@ -242,12 +296,53 @@ export default {
this.$emit('doback')
},
showInfo(sid) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.viewTitle = '付款申请'
req.fetchBySid(sid).then((resp) => {
this.formobj = resp.data
if (resp.success) {
this.formobj = resp.data
if (this.formobj.vehicleList.length > 0) {
for (var i = 0; i < this.formobj.vehicleList.length; i++) {
if (this.formobj.vehicleList[i].isSettle === '是') {
this.viewTitle = '付款买断申请'
return
}
}
}
}
}).catch((e) => {
this.formobj = {}
})
},
handleLookPayment(row, index) {
this.paymentVisible = true
this.paymentInformation.inde = index
this.paymentInformation.liquidationPayment = this.formobj.createTime + row.paymentType + '平仓款'
this.paymentInformation.list = JSON.parse(JSON.stringify(row.finPaymentapplyDetailsBelowList))
},
resetStateByInformation() {
this.viewState = 1
this.paymentVisible = true
},
paymentLook(row) {
this.paymentVisible = false
this.viewState = 4
this.$refs['divPaymentInformationInfo'].showInfo(row)
},
paymentClose() {
this.paymentVisible = false
this.paymentInformation = {
index: '',
liquidationPayment: '',
list: []
}
},
lookTops(row) {
this.viewState = 5
this.$refs['divTops'].showInfo({ sid: row.topSid })
},
//
getSummaries(param) {
const { columns, data } = param
@ -268,7 +363,7 @@ export default {
}
}, 0)
sums[index] += ''
this.formobj.payAccountAll = sums[index] += ''
this.formobj.paymentTotal = sums[index] += ''
} else if (column.property === 'money') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
@ -279,26 +374,14 @@ export default {
}
}, 0)
sums[index] += ''
this.formobj.money = sums[index] += ''
} else {
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.amount = sums[index] += ''
} else {
sums[index] = ''
}
this.formobj.carTotal = sums[index] += ''
}
})
return sums
},
resetState() {
this.viewState = 1
},
//
openAgree(val) {
this.operation = val
@ -434,4 +517,10 @@ export default {
.rowClass {
border-top: 1px solid #e0e3eb;
}
.span-sty {
width: 150px !important;
}
.addinputInfo {
margin-left: 140px !important;
}
</style>

750
anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/fukuanguanliFlow/fukuanguanli/fukuanEdit.vue

@ -10,187 +10,193 @@
</div>
<div class="">
<div class="titwu"><span>付款申请</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="4" class="tleftb">
<span>申请日期</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.createTime }}</span></el-form-item>
<div class="span-sty">申请部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>申请人</span>
<el-col :span="8">
<div class="span-sty">申请人</div>
<el-form-item><span class="addinputInfo">{{ formobj.name }}</span></el-form-item>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.name }}</span></el-form-item>
<div class="span-sty">申请日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>款项类别</span>
</el-col>
<el-col :span="8">
<el-col :span="6">
<div class="span-sty">品牌</div>
<el-form-item>
<el-select v-model="formobj.costTypeValue" clearable filterable @change="changeCostType" placeholder="请选择">
<el-option v-for="item in costType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
<el-select class="addinputInfo" v-model="formobj.carBrandName" filterable placeholder="请选择" @change="changeCarBrand" clearable>
<el-option v-for="item in carBrand_list" :key="item.sid" :label="item.brandName" :value="item.brandName"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>款项名称</span>
</el-col>
<el-col :span="8">
<el-col :span="6">
<div class="span-sty">款项范围</div>
<el-form-item>
<el-select v-model="formobj.costTitleValue" clearable filterable @change="changeCostTitle" placeholder="请选择">
<el-option v-for="item in costTitle_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
<el-select class="addinputInfo" v-model="formobj.costRangeValue" clearable filterable @change="changeCostRange" placeholder="请选择">
<el-option v-for="item in costRange_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>业务编号</span>
</el-col>
<el-col :span="8">
<el-form-item>
<el-input v-model="formobj.busSid" class="addinputw" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
</el-col>
<el-col :span="8">
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>付款单位名称</span>
</el-col>
<el-col :span="8">
<el-col :span="6">
<div class="span-sty">款项类别</div>
<el-form-item>
<el-select v-model="formobj.payCompany" filterable placeholder="请选择" @change="changePayCompany" clearable>
<el-option v-for="item in payCompany_list" :key="item.sid" :label="item.name" :value="item.name"/>
<el-select class="addinputInfo" v-model="formobj.costTypeValue" clearable filterable @change="changeCostType" placeholder="请选择">
<el-option v-for="item in costType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>收款单位名称</span>
</el-col>
<el-col :span="8">
<el-col :span="6">
<div class="span-sty"><span class="icon">*</span>是否涉及车辆</div>
<el-form-item>
<el-select v-model="formobj.receiveCompany" filterable placeholder="请选择" @change="changeReceiveCompany" clearable>
<el-option v-for="item in receiveCompany_list" :key="item.sid" :label="item.manufacturerName" :value="item.manufacturerName"/>
</el-select>
<el-radio-group class="addinputInfo" v-model="formobj.isVeh">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>付款备注</span>
</el-col>
<el-col :span="20">
<el-col :span="8">
<div class="span-sty">付款单位</div>
<el-form-item>
<el-input v-model="formobj.remarks" placeholder="更多配置" clearable/>
<el-select class="addinputInfo" v-model="formobj.payCompany" filterable placeholder="请选择" @change="changePayCompany" clearable>
<el-option v-for="item in payCompany_list" :key="item.sid" :label="item.name" :value="item.name"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>品牌</span>
</el-col>
<el-col :span="8">
<div class="span-sty">付款申请备注</div>
<el-form-item>
<el-select v-model="formobj.carBrandName" filterable placeholder="请选择" @change="changeCarBrand" clearable>
<el-option v-for="item in carBrand_list" :key="item.sid" :label="item.brandName" :value="item.brandName"/>
</el-select>
<el-input class="addinputInfo addinputw" v-model="formobj.remarks" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>是否涉及车辆</span>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="icon">*</span>是否事业部领导审批</div>
<el-form-item>
<el-radio v-model="formobj.isVeh" label="1"></el-radio>
<el-radio v-model="formobj.isVeh" label="0"></el-radio>
<el-radio-group class="addinputInfo" v-model="formobj.isLeaderSp">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<div class="title">
<div class="title titleOne">
<div>付款明细</div>
<div>
<el-button type="primary" size="mini" icon="el-icon-plus" class="btntopblueline" @click="handleAdd()">添加</el-button>
</div>
<el-button type="primary" size="mini" icon="el-icon-plus" class="btntopblueline" @click="handleAdd()">添加</el-button>
</div>
<el-table :key="tableKey" :data="formobj.detailsList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column fixed prop="name" label="操作" width="100px" align="center" header-align="center">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column fixed label="操作" width="180" align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" @click="handleDelete(scope.$index)">删除
</el-button>
<el-button size="mini" type="danger" @click="handleDelete(scope.$index)">删除</el-button>
<el-button size="mini" type="primary" @click="handleAddPayment(scope.row, scope.$index)">新增付款信息</el-button>
</template>
</el-table-column>
<el-table-column label="付款方式" align="center">
<el-table-column label="款项名称" align="center" width="200">
<template slot-scope="scope">
<el-select v-model="scope.row.paymentType" placeholder="请选择" filterable @change="changePaymentType($event, scope.row)">
<el-option v-for="item in payment_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"/>
<el-select v-model="scope.row.costTitleValue" clearable filterable @change="changeCostTitle($event, scope.row)" placeholder="请选择">
<el-option v-for="item in costTitle_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="厂家销售通路" align="center">
<el-table-column label="付款方式" align="center" width="200">
<template slot-scope="scope">
<el-select v-model="scope.row.actualPay" placeholder="请选择" filterable @change="changeActualPay($event, scope.row)">
<el-option v-for="item in actualPay_list" :key="item.bankAccount" :label="item.actualPay" :value="item.actualPay"/>
<el-select v-model="scope.row.paymentType" placeholder="请选择" filterable @change="changePaymentType($event, scope.row)">
<el-option v-for="item in payment_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"/>
</el-select>
</template>
</el-table-column>
<el-table-column label="开户行" align="center">
<el-table-column label="厂家回款通路" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.bank }}</span>
<el-select v-model="scope.row.actualPay" placeholder="请选择" filterable @change="changeActualPay($event, scope.row)">
<el-option v-for="item in actualPay_list" :key="item.actualPaySid" :label="item.actualPay" :value="item.actualPay"/>
</el-select>
</template>
</el-table-column>
<el-table-column label="收款银行账号" align="center">
<el-table-column prop="receiveCompany" label="收款单位" align="center" width="150" />
<el-table-column prop="bank" label="开户行" align="center" width="140" />
<el-table-column prop="receivingAccount" label="收款银行账号" align="center" width="160" />
<el-table-column prop="payAccount" label="付款金额(元)" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.receivingAccount }}</span>
<el-input v-model="scope.row.payAccount" placeholder="" clearable @keyup.native="scope.row.payAccount = getNumber(scope.row.payAccount, 2)" @keydown.native="scope.row.payAccount = getNumber(scope.row.payAccount, 2)"></el-input>
</template>
</el-table-column>
<el-table-column prop="payAccount" label="付款金额(元)" align="center">
<el-table-column label="付款备注" align="center" min-width="200">
<template slot-scope="scope">
<el-input v-model="scope.row.payAccount" placeholder="" clearable @keyup.native="UpNumberOne($event, scope.row)" @keydown.native="UpNumberOne($event, scope.row)"></el-input>
<el-input v-model="scope.row.remarks" placeholder="" clearable></el-input>
</template>
</el-table-column>
<el-table-column label="付款备注" align="center">
<el-table-column label="关联付款详情" align="center" width="120">
<template slot-scope="scope">
<el-input v-model="scope.row.remarks" placeholder="" clearable></el-input>
<el-button type="primary" size="mini" v-show="scope.row.finPaymentapplyDetailsBelowList.length > 0" @click="handleLookPayment(scope.row, scope.$index)">查看</el-button>
</template>
</el-table-column>
<el-table-column prop="payAccountTotal" label="关联付款金额" align="center" width="140"/>
</el-table>
<div v-show="formobj.isVeh === '1'">
<div class="title">
<div v-show="formobj.costTypeKey == '001' && formobj.isVeh == '1'"><!-- 款项类别为主车厂家采购且是否涉及车辆为是时显示 -->
<div class="title titleOne">
<div>车辆列表</div>
<div>
<el-button type="primary" size="mini" icon="el-icon-plus" class="btntopblueline" @click="handleselect()">选择</el-button>
<div style="display: flex;flex-direction: row;justify-content: flex-start;align-items: center;">
<div style="margin-right: 10px">
<span><span class="icon">*</span>是否已销售</span>
<el-radio-group v-model="formobj.isSales">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</div>
<div style="margin-right: 10px">
<span><span class="icon">*</span>款项是否已交清</span>
<el-radio-group v-model="formobj.isSettle">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</div>
<el-button type="primary" size="mini" icon="el-icon-plus" class="btntopblueline" @click="toSelect()">选择</el-button>
</div>
</div>
<el-table :key="vehicleKey" :data="formobj.vehicleList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column fixed prop="name" label="操作" width="100px" align="center" header-align="center">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column fixed label="操作" width="100" align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" @click="Delete(scope.$index)">删除
</el-button>
<el-button size="mini" type="danger" @click="toDelete(scope.$index)">删除</el-button>
</template>
</el-table-column>
<el-table-column label="车型" align="center">
<el-table-column prop="modelName" label="车型" align="center" min-width="180" />
<el-table-column prop="vinNo" label="车架号" align="center" width="160" />
<el-table-column prop="marketSegmentsValue" label="版本" align="center" width="100" />
<el-table-column prop="carColor" label="颜色" align="center" width="100" />
<el-table-column prop="emissionStandardValue" label="排放" align="center" width="100" />
<el-table-column prop="tranCaseTypeValue" label="变速箱" align="center" width="110" />
<el-table-column prop="rearAxleValue" label="后桥" align="center" width="100" />
<el-table-column prop="libraryAge" label="厂家库龄" align="center" width="120" />
<el-table-column prop="orgLibraryAge" label="公司库龄" align="center" width="120" />
<el-table-column label="上装名称" align="center" width="130">
<template slot-scope="scope">
<span>{{ scope.row.modelName }}</span>
<span class="bluezi" @click="lookTops(scope.row)">{{ scope.row.topName }}</span>
</template>
</el-table-column>
<el-table-column label="车架号" align="center">
<el-table-column prop="insideCode" label="内部编码" align="center" width="120" />
<el-table-column prop="money" label="厂家结算价" align="center" width="130" />
<el-table-column label="合同/销售订单编号" align="center" width="180">
<template slot-scope="scope">
<span>{{ scope.row.vinNo }}</span>
<span>{{ scope.row.contractNo }}/{{ scope.row.saleBillNo }}</span>
</template>
</el-table-column>
<el-table-column label="厂家结算价" prop="money" align="center">
<el-table-column prop="customerName" label="客户名称" align="center" width="120" />
<el-table-column prop="saleTypeValue" label="销售订单类型" align="center" width="150" />
<el-table-column prop="settlementStatusValue" label="买断状态" align="center" width="120" />
<el-table-column label="是否申请买断" align="center" width="140">
<template slot-scope="scope">
<span>{{ scope.row.money }}</span>
<el-radio-group v-if="scope.row.settlementStatusValue != '已买断'" v-model="scope.row.isSettle">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
<span v-else>{{ scope.row.isSettle }}</span>
</template>
</el-table-column>
</el-table>
@ -199,59 +205,121 @@
</div>
</div>
<!--End 添加修改部分-->
<vehcile v-show="viewState == 2" ref="divVehicle" @backData="backData" @doback="closePage"/>
<!-- 主车车辆列表选择车辆 -->
<vehcile v-show="viewState == 2" ref="divVehicle" @backData="backData" @doback="resetState"/>
<!-- 付款明细表新增关联付款信息 -->
<el-dialog :visible.sync="paymentVisible" width="70%" :show-close="false">
<el-form class="formaddcopy02">
<div class="title titleOne">
<div>关联付款信息列表</div>
<el-button type="primary" size="mini" class="btntopblueline" v-show="paymentBtn" @click="paymentAdd">新增</el-button>
</div>
<el-table :key="paymentKey" :data="paymentInformation.list" :index="index" border style="width: 100%">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column fixed label="操作" width="180" align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" v-show="paymentBtn" @click="paymentDelete(scope.$index)">删除</el-button>
<el-button size="mini" type="primary" @click="paymentLook(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column prop="costTitleValue" label="款项名称" align="center" width="120" />
<el-table-column prop="paymentType" label="付款方式" align="center" width="120" />
<el-table-column prop="receiveCompany" label="收款单位名称" align="center" width="160" />
<el-table-column prop="bank" label="开户行" align="center" width="120" />
<el-table-column prop="receivingAccount" label="银行账号" align="center" width="120" />
<el-table-column prop="payAccount" label="付款金额" align="center" width="120" />
<el-table-column prop="remarks" label="付款备注" align="center" min-width="200" />
<el-table-column prop="isPay" label="后期是否有平仓付款" align="center" width="180">
<template slot-scope="scope">
<span>{{ scope.row.isPay == '1' ? '是' : '否' }}</span>
</template>
</el-table-column>
</el-table>
</el-form>
<div style="text-align: center;padding-top: 5px">
<el-button size="small" type="primary" v-show="paymentBtn" @click="paymentSave">保存</el-button>
<el-button size="small" @click="paymentClose">关闭</el-button>
</div>
</el-dialog>
<!-- 关联付款信息新增 -->
<paymentInformationAdd v-show="viewState == 3" ref="divPaymentInformation" @backInformation="backInformation" @doback="resetStateByInformation" />
<!-- 关联付款信息详情 -->
<paymentInformationInfo v-show="viewState == 4" ref="divPaymentInformationInfo" @doback="resetStateByInformation" />
<!-- 查看上装配置信息 -->
<tops v-show="viewState == 5" ref="divTops" @doback="resetState" />
</div>
</template>
<script>
import req from '@/api/anruifinmanagement/payment'
import { typeValues, getOrgSidByPath, fetchBySid, getGysByOrgSid, getListOrg, brandDown, selectNameByOrg } from '@/api/jichuxinxi/dictcommons'
import { typeValues, getListOrg, brandDown, selectNameByOrg } from '@/api/jichuxinxi/dictcommons'
import vehcile from './relation/vehcile'
import paymentInformationAdd from './relation/paymentInformationAdd'
import paymentInformationInfo from './relation/paymentInformationInfo'
import tops from '@/views/workFlow/publicPage/tops'
export default {
name: 'fukuanEdit',
name: 'FuKuanEdit',
components: {
vehcile
vehcile,
paymentInformationAdd,
paymentInformationInfo,
tops
},
data() {
return {
viewTitle: '',
viewState: 1,
submitdisabled: false,
tableKey: 0,
index: 0,
vehicleKey: 1,
viewState: 1,
paymentKey: 2,
index: 0,
carBrand_list: [],
costRange_list: [],
costType_list: [],
costTitle_list: [],
payCompany_list: [],
receiveCompany_list: [],
payment_list: [],
actualPay_list: [],
formobj: {
busSid: '',
comment: '',
costTitleKey: '',
costTitleValue: '',
costTypeKey: '',
costTypeValue: '',
createBySid: '',
instanceId: '',
name: '',
payCompany: '',
payCompanySid: '',
receiveCompany: '',
receiveCompanySid: '',
remarks: '',
sid: '',
taskId: '',
isVeh: '',
carBrandName: '',
carBrandSid: '',
orgPath: '',
billNo: '', //
name: '', //
deptSid: '', // sid
deptName: '', //
createTime: '', //
costRangeKey: '', // Key
costRangeValue: '', // value
isLeaderSp: '', // 10
isSales: '', //
isSettle: '', //
costTypeKey: '', // key
costTypeValue: '', // value
cost: '', //
payCompanySid: '', // sid
payCompany: '', //
busSid: '', // sid
createOrgSid: '', //
useOrgSid: '', // 使
procInstId: '', // id
taskId: '', // id
isVeh: '', // 10
paymentTotal: '', //
carTotal: '', //
carBrandSid: '', // sid
carBrandName: '', //
orgSidPath: '',
detailsList: [],
vehicleList: []
},
rules: {},
submitdisabled: false
paymentVisible: false, // --
paymentBtn: false, // -- --
paymentInformation: { //
index: '',
liquidationPayment: '', //
list: []
}
}
},
created() {
@ -272,18 +340,31 @@ export default {
}, '*')
},
methods: {
UpNumberOne(e, row) {
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)
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 {
//
val = val.replace(reg, '$1.$2')
}
row.payAccount = e.target.value
return val
},
DataDictionary() {
typeValues({ type: 'payCostType' }).then((res) => {
init() {
typeValues({ type: 'paymentScope' }).then((res) => {
if (res.success) {
this.costRange_list = res.data
}
})
typeValues({ type: 'paymentCategory' }).then((res) => {
if (res.success) {
this.costType_list = res.data
}
@ -304,30 +385,8 @@ export default {
}
})
},
getPathSidByUserSid() {
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((response) => {
if (response.success) {
getGysByOrgSid({ orgSid: response.data }).then((resp) => {
if (resp.success) {
this.formobj.payCompanySid = response.data
this.receiveCompany_list = resp.data
}
})
fetchBySid(response.data).then((res) => {
if (res.success) {
this.formobj.payCompany = res.data.name
}
})
brandDown({ useOrg: response.data }).then((res) => {
if (res.success) {
this.carBrand_list = res.data
}
})
}
})
},
showInfo(sid) {
this.DataDictionary()
this.init()
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
@ -341,156 +400,244 @@ export default {
this.actualPay_list = res.data
}
})
brandDown({ useOrg: this.formobj.useOrgSid }).then((res) => {
if (res.success) {
this.carBrand_list = res.data
}
})
}
}).catch((e) => {
this.formobj = {}
})
},
changeCarBrand(value) {
const choose = this.carBrand_list.filter((item) => item.brandName === value)
if (choose.length > 0 && choose !== null) {
this.formobj.carBrandSid = choose[0].sid
selectNameByOrg({ carBrandSid: this.formobj.carBrandSid }).then((res) => {
if (res.success) {
this.actualPay_list = res.data
}
})
} else {
this.formobj.carBrandSid = ''
this.actualPay_list = []
}
},
changeCostRange(value) {
const choose = this.costRange_list.filter((item) => item.dictValue === value)
if (choose.length > 0 && choose !== null) {
this.formobj.costRangeKey = choose[0].dictKey
} else {
this.formobj.costRangeKey = ''
}
},
changeCostType(value) {
const choose = this.costType_list.filter((item) => item.dictValue === value)
if (choose.length > 0 && choose !== null) {
this.formobj.costTypeKey = choose[0].dictKey
} else {
this.formobj.costTypeKey = ''
}
},
changePayCompany(value) {
const choose = this.payCompany_list.filter((item) => item.name === value)
if (choose.length > 0 && choose !== null) {
this.formobj.payCompanySid = choose[0].sid
} else {
this.formobj.payCompanySid = ''
}
},
handleAdd() {
if (this.formobj.carBrandName === '') {
this.$message({ showClose: true, type: 'error', message: '请先选择品牌' })
return
}
this.formobj.detailsList.push({
costTitleKey: '',
costTitleValue: '',
paymentType: '',
paymentTypeKey: '',
actualPay: '',
receiveCompany: '',
receiveCompanySid: '',
bank: '',
receivingAccount: '',
payAccount: '',
remarks: '',
paymentType: '',
paymentTypeKey: '',
receivingAccount: ''
isPay: '',
payAccountTotal: '',
finPaymentapplyDetailsBelowList: []
})
},
handleDelete(index) {
this.formobj.detailsList.splice(index, 1)
},
handleselect() {
this.viewState = 2
this.$refs['divVehicle'].showData(this.formobj.vehicleList)
handleAddPayment(row, index) {
if (row.paymentType === '') {
this.$message({ showClose: true, type: 'error', message: '付款方式不能为空' })
return
}
this.paymentVisible = true
this.paymentBtn = true
this.paymentInformation.index = index
this.paymentInformation.liquidationPayment = this.formobj.createTime + row.paymentType + '平仓款'
this.paymentInformation.list = JSON.parse(JSON.stringify(row.finPaymentapplyDetailsBelowList))
},
handleLookPayment(row, index) {
this.paymentVisible = true
this.paymentBtn = false
this.paymentInformation.inde = index
this.paymentInformation.liquidationPayment = this.formobj.createTime + row.paymentType + '平仓款'
this.paymentInformation.list = JSON.parse(JSON.stringify(row.finPaymentapplyDetailsBelowList))
},
paymentAdd() {
this.paymentVisible = false
this.viewState = 3
this.$refs['divPaymentInformation'].showAdd(this.formobj.useOrgSid, this.paymentInformation.liquidationPayment)
},
backInformation(value) {
this.viewState = 1
this.paymentVisible = true
value = JSON.parse(JSON.stringify(value))
this.paymentInformation.list.push({
sid: '', // sid
costTitleKey: value.costTitleKey, //
costTitleValue: value.costTitleValue, //
paymentTypeKey: value.paymentTypeKey, // key
paymentType: value.paymentType, // value
receiveCompany: value.receiveCompany, //
receiveCompanySid: value.receiveCompanySid, // sid
bank: value.bank, //
receivingAccount: value.receivingAccount, //
payAccount: value.payAccount, //
detailSid: '', // sid
isPay: value.isPay, //
remarks: value.remarks, //
finPaymentapplyDetailsBelowEveList: value.finPaymentapplyDetailsBelowEveList
})
},
resetStateByInformation() {
this.viewState = 1
this.paymentVisible = true
},
paymentDelete(index) {
this.paymentInformation.list.splice(index, 1)
},
paymentLook(row) {
this.paymentVisible = false
this.viewState = 4
this.$refs['divPaymentInformationInfo'].showInfo(row)
},
paymentSave() {
if (this.formobj.detailsList.length > 0) {
this.formobj.detailsList[this.paymentInformation.index].finPaymentapplyDetailsBelowList = this.paymentInformation.list
this.formobj.detailsList.forEach((e) => {
if (e.finPaymentapplyDetailsBelowList.length > 0) {
e.finPaymentapplyDetailsBelowList.forEach((k) => {
e.payAccountTotal = Math.round((parseFloat(e.payAccountTotal !== '' ? e.payAccountTotal : 0) + parseFloat(k.payAccount !== '' ? k.payAccount : 0)) * 100) / 100
})
} else {
e.payAccountTotal = ''
}
})
}
this.paymentClose()
},
paymentClose() {
this.paymentVisible = false
this.paymentBtn = false
this.paymentInformation = {
index: '',
liquidationPayment: '',
list: []
}
},
toSelect() {
if (this.formobj.isSettle !== '' && this.formobj.isSales !== '') {
this.viewState = 2
this.$refs['divVehicle'].showData(this.formobj.vehicleList, this.formobj.useOrgSid, this.formobj.isSales, this.formobj.isSettle)
} else {
this.$message({ showClose: true, type: 'error', message: '是否已销售和款项是否已交清,请选择是或否' })
}
},
Delete(index) {
toDelete(index) {
this.formobj.vehicleList.splice(index, 1)
},
// --
// --
backData(value) {
this.viewState = 1
value = JSON.parse(JSON.stringify(value))
if (value.length > 0) {
value.forEach((e) => {
this.formobj.vehicleList.push({
vinNo: e.vinNo,
vehiSid: e.vehiSid,
modelName: e.modelName,
applySid: '',
modelName: e.vehicleAlias,
modelSid: e.modelSid,
vinNo: e.vinNo,
vehiSid: e.sid,
money: e.money,
configSid: e.configSid
configSid: e.configSid,
marketSegmentsValue: e.marketSegmentsValue,
carColor: e.carColor,
emissionStandardValue: e.emissionStandardValue,
tranCaseTypeValue: e.tranCaseTypeValue,
rearAxleValue: e.rearAxleValue,
libraryAge: e.libraryAge,
orgLibraryAge: e.orgLibraryAge,
topName: e.topName,
topSid: e.topSid,
insideCode: e.insideCode,
contractNo: e.contractNo,
saleBillNo: e.saleBillNo,
customerName: e.customerName,
saleTypeValue: e.saleTypeValue,
settlementStatusValue: e.settlementStatusValue,
isSettle: e.settlementStatusValue === '已买断' ? '——' : ''
})
})
}
},
changeCarBrand(value) {
let bb = null
this.carBrand_list.forEach((e) => {
if (e.brandName === value) {
bb = {
name: e.brandName,
sid: e.sid
}
}
})
this.formobj.carBrandSid = bb.sid
selectNameByOrg({ carBrandSid: this.formobj.carBrandSid }).then((res) => {
if (res.success) {
this.actualPay_list = res.data
}
})
lookTops(row) {
this.viewState = 5
this.$refs['divTops'].showInfo({ sid: row.topSid })
},
changeCostTitle(value, row) {
const choose = this.costTitle_list.filter((item) => item.dictValue === value)
if (choose.length > 0 && choose !== null) {
row.costTitleKey = choose[0].dictKey
} else {
row.costTitleKey = ''
}
},
changePaymentType(value, row) {
let bb = null
this.payment_list.forEach((e) => {
if (e.dictValue === value) {
bb = {
value: e.dictValue,
key: e.dictKey
}
}
})
row.paymentTypeKey = bb.key
const choose = this.payment_list.filter((item) => item.dictValue === value)
if (choose.length > 0 && choose !== null) {
row.paymentTypeKey = choose[0].dictKey
} else {
row.paymentTypeKey = ''
}
},
changeActualPay(value, row) {
let bb = null
this.actualPay_list.forEach((e) => {
if (e.actualPay === value) {
bb = {
actualPay: e.actualPay,
bankAccount: e.bankAccount,
depositBank: e.depositBank
}
}
})
row.actualPay = bb.actualPay
row.bank = bb.depositBank
row.receivingAccount = bb.bankAccount
},
changeCostType(value) {
let bb = null
this.costType_list.forEach((e) => {
if (e.dictValue === value) {
bb = {
key: e.dictKey,
value: e.dictValue
}
}
})
this.formobj.costTypeKey = bb.key
},
changeCostTitle(value) {
let bb = null
this.costTitle_list.forEach((e) => {
if (e.dictValue === value) {
bb = {
key: e.dictKey,
value: e.dictValue
}
}
})
this.formobj.costTitleKey = bb.key
},
changePayCompany(value) {
let bb = null
this.payCompany_list.forEach((e) => {
if (e.name === value) {
bb = {
name: e.name,
sid: e.sid
}
}
})
this.formobj.payCompanySid = bb.sid
},
changeReceiveCompany(value) {
let bb = null
this.receiveCompany_list.forEach((e) => {
if (e.manufacturerName === value) {
bb = {
manufacturerName: e.manufacturerName,
sid: e.sid
}
}
})
this.formobj.receiveCompanySid = bb.sid
const choose = this.actualPay_list.filter((item) => item.actualPay === value)
if (choose.length > 0 && choose !== null) {
row.actualPay = choose[0].actualPay
row.receiveCompany = choose[0].manufacturerName
row.bank = choose[0].depositBank
row.receivingAccount = choose[0].bankAccount
} else {
row.actualPay = ''
row.bank = ''
row.receivingAccount = ''
}
},
saveOrUpdate() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.saveOrUpdate(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 })
//
window.parent.postMessage({
cmd: 'returnHeight',
@ -509,17 +656,16 @@ export default {
})
},
submitVehicleApply() {
if (this.formobj.isVeh === '') {
this.$message({ showClose: true, type: 'error', message: '是否涉及车辆请选择是或否' })
return
}
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.submitVehicleApply(this.formobj, this.formobj.sid).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 })
//
window.parent.postMessage({
cmd: 'returnHeight',
@ -537,6 +683,7 @@ export default {
}
})
},
//
getSummaries(param) {
const { columns, data } = param
const sums = []
@ -556,7 +703,7 @@ export default {
}
}, 0)
sums[index] += ''
this.formobj.payAccountAll = sums[index] += ''
this.formobj.paymentTotal = sums[index] += ''
} else if (column.property === 'money') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
@ -567,27 +714,12 @@ export default {
}
}, 0)
sums[index] += ''
this.formobj.money = sums[index] += ''
} else {
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.amount = sums[index] += ''
} else {
sums[index] = ''
}
this.formobj.carTotal = sums[index] += ''
}
})
return sums
},
closePage() {
resetState() {
this.viewState = 1
}
}
@ -600,11 +732,41 @@ export default {
text-align: center;
padding: 30px 0 20px 0;
}
.title {
.span-sty {
width: 150px !important;
}
.addinputInfo {
margin-left: 140px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 140px !important;
width: calc(100% - 135px);
}
/deep/ .el-form-item__error {
margin-left: 140px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .el-radio-group {
display: inline;
line-height: 1px;
vertical-align: middle;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
/* 覆盖element-ui的单选按钮样式 */
/deep/.titleOne .el-radio__input.is-checked .el-radio__inner {
border-color: #409EFF; /* 未选中状态下的边框颜色 */
background-color: #409EFF; /* 选中后的背景色 */
}
/* 如果需要改变选中后对勾的颜色 */
/deep/.titleOne .el-radio__input.is-checked .el-radio__inner:after {
background-color: #000000; /* 对勾的颜色 */
}
/deep/.titleOne .el-radio__input.is-checked+.el-radio__label {
color: #000000; /* 选中后的字体颜色 */
}
</style>

401
anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/fukuanguanliFlow/fukuanguanli/fukuanYiBanInfo.vue

@ -1,165 +1,219 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<div>付款详情</div>
<div>
<el-button type="danger" size="small" @click="openRevoke()"> </el-button>
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="danger" size="small" @click="openRevoke()"> </el-button>
</div>
</div>
<div class="">
<div class="titwu"><span>{{ viewTitle }}</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8">
<div class="span-sty">申请部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请人</div>
<el-form-item><span class="addinputInfo">{{ formobj.name }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">品牌</div>
<el-form-item><span class="addinputInfo">{{ formobj.carBrandName }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">款项范围</div>
<el-form-item><span class="addinputInfo">{{ formobj.costRangeValue }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">款项类别</div>
<el-form-item><span class="addinputInfo">{{ formobj.costTypeValue }}</span></el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">是否涉及车辆</div>
<el-form-item><span class="addinputInfo">{{ formobj.isVeh == '1' ? '是' : '否' }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">付款单位</div>
<el-form-item><span class="addinputInfo">{{ formobj.payCompany }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">付款申请备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.remarks }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">是否事业部领导审批</div>
<el-form-item><span class="addinputInfo">{{ formobj.isLeaderSp == '1' ? '是' : '否' }}</span></el-form-item>
</el-col>
</el-row>
<div class="title">付款明细</div>
<el-table :key="tableKey" :data="formobj.detailsList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column prop="costTitleValue" label="款项名称" align="center" width="200" />
<el-table-column prop="paymentType" label="付款方式" align="center" width="200" />
<el-table-column prop="actualPay" label="厂家回款通路" align="center" width="200" />
<el-table-column prop="receiveCompany" label="收款单位" align="center" width="150" />
<el-table-column prop="bank" label="开户行" align="center" width="140" />
<el-table-column prop="receivingAccount" label="收款银行账号" align="center" width="160" />
<el-table-column prop="payAccount" label="付款金额(元)" align="center" width="150" />
<el-table-column prop="remarks" label="付款备注" align="center" min-width="200" />
<el-table-column label="关联付款详情" align="center" width="120">
<template slot-scope="scope">
<el-button type="primary" size="mini" v-show="scope.row.finPaymentapplyDetailsBelowList.length > 0" @click="handleLookPayment(scope.row, scope.$index)">查看</el-button>
</template>
</el-table-column>
<el-table-column prop="payAccountTotal" label="关联付款金额" align="center" width="140"/>
</el-table>
<div v-show="formobj.costTypeKey == '001' && formobj.isVeh == '1'"><!-- 款项类别为主车厂家采购且是否涉及车辆为是时显示 -->
<div class="title" style="display: flex;flex-direction: row;justify-content: space-between;align-items: center;">
<div>车辆列表</div>
<div style="display: flex;flex-direction: row;justify-content: flex-start;align-items: center;">
<div style="margin-right: 10px">
<span>是否已销售{{ formobj.isSales == '1' ? '是' : '否' }}</span>
</div>
<div>
<span>款项是否已交清{{ formobj.isSettle == '1' ? '是' : '否' }}</span>
</div>
</div>
</div>
<el-table :key="vehicleKey" :data="formobj.vehicleList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column prop="modelName" label="车型" align="center" min-width="180" />
<el-table-column prop="vinNo" label="车架号" align="center" width="160" />
<el-table-column prop="marketSegmentsValue" label="版本" align="center" width="100" />
<el-table-column prop="carColor" label="颜色" align="center" width="100" />
<el-table-column prop="emissionStandardValue" label="排放" align="center" width="100" />
<el-table-column prop="tranCaseTypeValue" label="变速箱" align="center" width="110" />
<el-table-column prop="rearAxleValue" label="后桥" align="center" width="100" />
<el-table-column prop="libraryAge" label="厂家库龄" align="center" width="120" />
<el-table-column prop="orgLibraryAge" label="公司库龄" align="center" width="120" />
<el-table-column prop="topName" label="上装名称" align="center" width="130">
<template slot-scope="scope">
<span class="bluezi" @click="lookTops(scope.row)">{{ scope.row.topName }}</span>
</template>
</el-table-column>
<el-table-column prop="insideCode" label="内部编码" align="center" width="120" />
<el-table-column prop="money" label="厂家结算价" align="center" width="130" />
<el-table-column label="合同/销售订单编号" align="center" width="180">
<template slot-scope="scope">
<span>{{ scope.row.contractNo }}/{{ scope.row.saleBillNo }}</span>
</template>
</el-table-column>
<el-table-column prop="customerName" label="客户名称" align="center" width="120" />
<el-table-column prop="saleTypeValue" label="销售订单类型" align="center" width="150" />
<el-table-column prop="settlementStatusValue" label="买断状态" align="center" width="120" />
<el-table-column label="是否申请买断" align="center" width="140">
<template slot-scope="scope">
<span>{{ scope.row.isSettle == '1' ? '是' : scope.row.isSettle == '0' ? '否' : scope.row.isSettle == '——' ? '——' : '' }}</span>
</template>
</el-table-column>
</el-table>
</div>
</el-form>
</div>
</div>
<div class="">
<div class="titwu"><span>付款申请</span></div>
<el-form ref="dataForm" :model="formobj" class="formadd">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="4" class="tleftb">
<span>申请日期</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.createTime }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>申请人</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.name }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>款项类别</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.costTypeValue }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>款项名称</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.costTitleValue }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>业务编号</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.busSid }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
</el-col>
<el-col :span="8">
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>付款单位名称</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.payCompany }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>收款单位名称</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.receiveCompany }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>付款备注</span>
</el-col>
<el-col :span="20">
<el-form-item><span>{{ formobj.remarks }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>品牌</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.carBrandName }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>是否涉及车辆</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.isVeh === '1' ? '是' : '否' }}</span></el-form-item>
</el-col>
</el-row>
<div class="title">
<div>付款明细</div>
</div>
<el-table :key="tableKey" :data="formobj.detailsList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="付款方式" align="center">
<template slot-scope="scope">
<span>{{ scope.row.paymentType }}</span>
</template>
</el-table-column>
<el-table-column label="厂家回款通路" align="center">
<template slot-scope="scope">
<span>{{ scope.row.actualPay }}</span>
</template>
</el-table-column>
<el-table-column label="开户行" align="center">
<template slot-scope="scope">
<span>{{ scope.row.bank }}</span>
</template>
</el-table-column>
<el-table-column label="收款银行账号" align="center">
<template slot-scope="scope">
<span>{{ scope.row.receivingAccount }}</span>
</template>
</el-table-column>
<el-table-column prop="payAccount" label="付款金额(元)" align="center">
<!-- 付款明细表新增关联付款信息 -->
<el-dialog :visible.sync="paymentVisible" width="70%" :show-close="false">
<el-form class="formaddcopy02">
<div class="title">关联付款信息列表</div>
<el-table :key="paymentKey" :data="paymentInformation.list" :index="index" border style="width: 100%">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column fixed label="操作" width="180" align="center">
<template slot-scope="scope">
<span>{{ scope.row.payAccount }}</span>
<el-button size="mini" type="primary" @click="paymentLook(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column label="付款备注" align="center">
<el-table-column prop="costTitleValue" label="款项名称" align="center" width="120" />
<el-table-column prop="paymentType" label="付款方式" align="center" width="120" />
<el-table-column prop="receiveCompany" label="收款单位名称" align="center" width="160" />
<el-table-column prop="bank" label="开户行" align="center" width="120" />
<el-table-column prop="receivingAccount" label="银行账号" align="center" width="120" />
<el-table-column prop="payAccount" label="付款金额" align="center" width="120" />
<el-table-column prop="remarks" label="付款备注" align="center" min-width="200" />
<el-table-column prop="isPay" label="后期是否有平仓付款" align="center" width="180">
<template slot-scope="scope">
<span>{{ scope.row.remarks }}</span>
<span>{{ scope.row.isPay == '1' ? '是' : '否' }}</span>
</template>
</el-table-column>
</el-table>
<div v-show="formobj.isVeh === '1'">
<div class="title">
<div>车辆列表</div>
</div>
<el-table :key="vehicleKey" :data="formobj.vehicleList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="车型" align="center">
<template slot-scope="scope">
<span>{{ scope.row.modelName }}</span>
</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="厂家结算价" prop="money" align="center">
<template slot-scope="scope">
<span>{{ scope.row.money }}</span>
</template>
</el-table-column>
</el-table>
</div>
</el-form>
</div>
<div style="text-align: center;padding-top: 5px">
<el-button size="small" @click="paymentClose">关闭</el-button>
</div>
</el-dialog>
<!-- 关联付款信息详情 -->
<paymentInformationInfo v-show="viewState == 4" ref="divPaymentInformationInfo" @doback="resetStateByInformation" />
<!-- 查看上装配置信息 -->
<tops v-show="viewState == 5" ref="divTops" @doback="resetState" />
</div>
</template>
<script>
import req from '@/api/anruifinmanagement/payment'
import paymentInformationInfo from './relation/paymentInformationInfo'
import tops from '@/components/publicPage/tops'
export default {
name: 'fukuanshenqingInfo',
name: 'FuKuanYiBanInfo',
components: {
paymentInformationInfo,
tops
},
data() {
return {
formobj: {},
viewTitle: '',
viewState: 1,
tableKey: 0,
vehicleKey: 1,
paymentKey: 2,
index: 0,
formobj: {
billNo: '', //
name: '', //
deptSid: '', // sid
deptName: '', //
createTime: '', //
costRangeKey: '', // Key
costRangeValue: '', // value
isLeaderSp: '', // 10
isSales: '', //
isSettle: '', //
costTypeKey: '', // key
costTypeValue: '', // value
cost: '', //
payCompanySid: '', // sid
payCompany: '', //
busSid: '', // sid
createOrgSid: '', //
useOrgSid: '', // 使
procInstId: '', // id
taskId: '', // id
isVeh: '', // 10
paymentTotal: '', //
carTotal: '', //
carBrandSid: '', // sid
carBrandName: '', //
orgSidPath: '',
detailsList: [],
vehicleList: []
},
rules: {},
paymentVisible: false, // --
paymentInformation: { //
index: '',
liquidationPayment: '', //
list: []
},
//
linkByParameter: {
businessSid: '',
@ -200,12 +254,53 @@ export default {
},
methods: {
showInfo(sid) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.viewTitle = '付款申请详情'
req.fetchBySid(sid).then((resp) => {
this.formobj = resp.data
if (resp.success) {
this.formobj = resp.data
if (this.formobj.vehicleList.length > 0) {
for (var i = 0; i < this.formobj.vehicleList.length; i++) {
if (this.formobj.vehicleList[i].isSettle === '是') {
this.viewTitle = '付款买断申请'
return
}
}
}
}
}).catch((e) => {
this.formobj = {}
})
},
handleLookPayment(row, index) {
this.paymentVisible = true
this.paymentInformation.inde = index
this.paymentInformation.liquidationPayment = this.formobj.createTime + row.paymentType + '平仓款'
this.paymentInformation.list = JSON.parse(JSON.stringify(row.finPaymentapplyDetailsBelowList))
},
resetStateByInformation() {
this.viewState = 1
this.paymentVisible = true
},
paymentLook(row) {
this.paymentVisible = false
this.viewState = 4
this.$refs['divPaymentInformationInfo'].showInfo(row)
},
paymentClose() {
this.paymentVisible = false
this.paymentInformation = {
index: '',
liquidationPayment: '',
list: []
}
},
lookTops(row) {
this.viewState = 5
this.$refs['divTops'].showInfo({ sid: row.topSid })
},
//
getSummaries(param) {
const { columns, data } = param
@ -226,7 +321,7 @@ export default {
}
}, 0)
sums[index] += ''
this.formobj.payAccountAll = sums[index] += ''
this.formobj.paymentTotal = sums[index] += ''
} else if (column.property === 'money') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
@ -237,26 +332,14 @@ export default {
}
}, 0)
sums[index] += ''
this.formobj.money = sums[index] += ''
} else {
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.amount = sums[index] += ''
} else {
sums[index] = ''
}
this.formobj.carTotal = sums[index] += ''
}
})
return sums
},
resetState() {
this.viewState = 1
},
/** 确认撤回任务 */
openRevoke() {
this.$confirm('是否确认执行撤回操作', '提示', {
@ -303,4 +386,10 @@ export default {
text-align: center;
padding: 30px 0 20px 0;
}
.span-sty {
width: 150px !important;
}
.addinputInfo {
margin-left: 140px !important;
}
</style>

397
anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/fukuanguanliFlow/fukuanguanli/relation/paymentInformationAdd.vue

@ -0,0 +1,397 @@
<temp<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" @click="saveOrUpdate()">保存</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="12">
<div class="span-sty"><span class="icon">*</span>款项名称</div>
<el-form-item prop="costTitleValue">
<el-select class="addinputInfo" v-model="formobj.costTitleValue" placeholder="请选择" @change="costTitleChange" clearable filterable>
<el-option v-for="item in costTitle_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty"><span class="icon">*</span>付款方式</div>
<el-form-item prop="paymentType">
<el-select class="addinputInfo" v-model="formobj.paymentType" placeholder="请选择" @change="paymentChange" clearable filterable>
<el-option v-for="item in payment_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty"><span class="icon">*</span>收款单位名称</div>
<el-form-item prop="receiveCompany">
<el-select class="addinputInfo" v-model="formobj.receiveCompany" placeholder="请选择" @change="receiveCompanyChange" clearable filterable>
<el-option v-for="item in receiveCompany_list" :key="item.sid" :label="item.companyName" :value="item.companyName"></el-option>
</el-select>
<el-button style="margin-left: 10px" type="primary" size="mini" @click="receiveCompanyAdd">添加</el-button>
</el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">银行账号</div>
<el-form-item><span class="addinputInfo">{{ formobj.receivingAccount }}</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.bank }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty"><span class="icon">*</span>付款金额</div>
<el-form-item prop="payAccount"><el-input class="addinputInfo addinputw" @keyup.native="formobj.payAccount = getNumber(formobj.payAccount, 2)" v-model="formobj.payAccount" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">付款备注</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.remarks" clearable placeholder="" /></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty"><span class="icon">*</span>后期是否有平仓付款</div>
<el-form-item prop="isPay">
<el-radio-group class="addinputInfo" v-model="formobj.isPay">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<div v-show="formobj.isPay == '1'">
<div class="title titleOne">
<div>平仓信息</div>
<el-button type="primary" size="mini" class="btntopblueline" @click="toAdd">添加</el-button>
</div>
<el-table :key="tableKey" :data="formobj.finPaymentapplyDetailsBelowEveList" :index="index" border style="width: 100%">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column fixed label="操作" width="100" align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" @click="toDelete(scope.$index)">删除</el-button>
</template>
</el-table-column>
<el-table-column prop="costTitleValue" label="平仓款名称" align="center" />
<el-table-column label="期数" align="center">
<template slot-scope="scope">
<el-input @keyup.native="scope.row.period = getNumber(scope.row.period, 2)" v-model="scope.row.period" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column label="平仓付款日期" align="center">
<template slot-scope="scope">
<el-date-picker v-model="scope.row.exePayDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
</template>
</el-table-column>
<el-table-column label="平仓付款金额" align="center">
<template slot-scope="scope">
<el-input @keyup.native="scope.row.exePayPrice = getNumber(scope.row.exePayPrice, 2)" v-model="scope.row.exePayPrice" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column label="备注" align="center">
<template slot-scope="scope">
<el-input v-model="scope.row.remarks" clearable placeholder="" />
</template>
</el-table-column>
</el-table>
</div>
</el-form>
</div>
</div>
<el-dialog :visible.sync="dialogVisible" width="50%" :show-close="false">
<el-form ref="temp_obj" :model="temp" class="formaddcopy02">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="12">
<div class="span-sty">单位编码</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="temp.companyCode" clearable placeholder=""/></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">单位名称</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="temp.companyName" clearable placeholder=""/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">开户行</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="temp.bank" clearable placeholder=""/></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">银行账号</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="temp.receivingAccount" clearable 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="temp.businessTypeValue" placeholder="请选择" @change="businessTypeChange" clearable filterable>
<el-option v-for="item in businessType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">备注</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="temp.remarks" clearable placeholder=""/></el-form-item>
</el-col>
</el-row>
</el-form>
<div style="text-align: center;padding-top: 5px">
<el-button size="small" type="primary" @click="handleSave">保存</el-button>
<el-button size="small" @click="handleClose">关闭</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import req from '@/api/anruifinmanagement/payment'
import { typeValues } from '@/api/jichuxinxi/dictcommons'
export default {
name: 'PaymentInformationAdd',
data() {
return {
viewTitle: '',
viewState: 1,
tableKey: 0,
index: 0,
costTitle_list: [],
payment_list: [],
receiveCompany_list: [],
businessType_list: [],
liquidationPayment: '', //
formobj: {
sid: '', // sid
costTitleKey: '', //
costTitleValue: '', //
paymentTypeKey: '', // key
paymentType: '', // value
receiveCompany: '', //
receiveCompanySid: '', // sid
bank: '', //
receivingAccount: '', //
payAccount: '', //
detailSid: '', // sid
isPay: '', //
finPaymentapplyDetailsBelowEveList: []
},
dialogVisible: false,
temp: {
companyCode: '', //
companyName: '', //
bank: '', //
receivingAccount: '', //
businessTypeKey: '', // key
businessTypeValue: '', // value
remarks: '', //
useOrgSid: '', // sid
useOrgName: ''
},
rules: {
costTitleValue: [{ required: true, message: '款项名称不能为空', trigger: 'change' }],
paymentType: [{ required: true, message: '付款方式不能为空', trigger: 'change' }],
receiveCompany: [{ required: true, message: '收款单位名称不能为空', trigger: 'change' }],
payAccount: [{ required: true, message: '付款金额不能为空', trigger: 'blur' }],
isPay: [{ required: true, message: '后期是否有平仓付款不能为空', trigger: 'change' }]
}
}
},
methods: {
init() {
typeValues({ type: 'payCostTitle' }).then((res) => {
if (res.success) {
this.costTitle_list = res.data
}
})
typeValues({ type: 'paymentType' }).then((res) => {
if (res.success) {
this.payment_list = res.data
}
})
typeValues({ type: 'cw_businessType' }).then((res) => {
if (res.success) {
this.businessType_list = res.data
}
})
},
showAdd(useOrgSid, liquidationPayment) {
this.viewTitle = '【新增】付款信息'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.init()
this.liquidationPayment = liquidationPayment
this.temp.useOrgSid = useOrgSid
this.selectByUseOrgSid(useOrgSid)
},
selectByUseOrgSid(value) {
req.selectByUseOrgSid({ useOrgSid: value }).then((res) => {
if (res.success) {
this.receiveCompany_list = res.data
}
})
},
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 {
//
val = val.replace(reg, '$1.$2')
}
return val
},
costTitleChange(value) {
const choose = this.costTitle_list.filter((item) => item.dictValue === value)
if (choose !== null && choose.length > 0) {
this.formobj.costTitleKey = choose[0].dictKey
} else {
this.formobj.costTitleKey = ''
}
},
paymentChange(value) {
const choose = this.payment_list.filter((item) => item.dictValue === value)
if (choose !== null && choose.length > 0) {
this.formobj.paymentTypeKey = choose[0].dictKey
} else {
this.formobj.paymentTypeKey = ''
}
},
receiveCompanyChange(value) {
const choose = this.receiveCompany_list.filter((item) => item.companyName === value)
if (choose !== null && choose.length > 0) {
this.formobj.receiveCompanySid = choose[0].sid
this.formobj.receivingAccount = choose[0].companyName
this.formobj.bank = choose[0].bank
} else {
this.formobj.receiveCompanySid = ''
this.formobj.receivingAccount = ''
this.formobj.bank = ''
}
},
receiveCompanyAdd() {
this.dialogVisible = true
},
handleSave() {
req.paymentSave(this.temp).then((res) => {
if (res.success) {
this.$message({ showClose: true, type: 'success', message: '保存成功' })
this.selectByUseOrgSid(this.temp.useOrgSid)
this.handleClose()
}
})
},
handleClose() {
this.dialogVisible = false
this.temp.companyCode = '' //
this.temp.companyName = '' //
this.temp.bank = '' //
this.temp.receivingAccount = '' //
this.temp.businessTypeKey = '' // key
this.temp.businessTypeValue = '' // value
this.temp.remarks = '' //
},
toAdd() {
this.formobj.finPaymentapplyDetailsBelowEveList.push({
sid: '', // sid
costTitleKey: '', //
costTitleValue: this.liquidationPayment, //
detailSid: '', // sid
openDate: '', //
period: '', //
payCompanySid: '', // sid
payCompany: '', //
receiveCompany: '', //
receiveCompanySid: '', // sid
receivingAccount: '', //
actualPay: '', //
bank: '', //
exePayDate: '', //
exePayPrice: '', //
remarks: ''
})
},
toDelete(index) {
this.formobj.finPaymentapplyDetailsBelowEveList.splice(index, 1)
},
businessTypeChange(value) {
const choose = this.businessType_list.filter((item) => item.dictValue === value)
if (choose !== null && choose.length > 0) {
this.temp.businessTypeKey = choose[0].dictKey
} else {
this.temp.businessTypeKey = ''
}
},
saveOrUpdate() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.$emit('backInformation', this.formobj)
this.handleReturn()
}
})
},
handleReturn() {
this.formobj = {
sid: '', // sid
costTitleKey: '', //
costTitleValue: '', //
paymentTypeKey: '', // key
paymentType: '', // value
receiveCompany: '', //
receiveCompanySid: '', // sid
bank: '', //
receivingAccount: '', //
payAccount: '', //
detailSid: '', // sid
isPay: '', //
finPaymentapplyDetailsBelowEveList: []
}
this.$emit('doback')
}
}
}
</script>
<style scoped>
.span-sty {
width: 150px !important;
}
.addinputInfo {
margin-left: 140px !important;
}
/deep/ .el-form-item__error {
margin-left: 140px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 140px !important;
width: calc(100% - 135px);
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .el-radio-group {
display: inline;
line-height: 1px;
vertical-align: middle;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
</style>

135
anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/fukuanguanliFlow/fukuanguanli/relation/paymentInformationInfo.vue

@ -0,0 +1,135 @@
<temp<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="">
<el-form ref="form_obj" :model="formobj" :rules="rules" 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.costTitleValue }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">付款方式</div>
<el-form-item><span class="addinputInfo">{{ formobj.paymentType }}</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.receiveCompany }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">银行账号</div>
<el-form-item><span class="addinputInfo">{{ formobj.receivingAccount }}</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.bank }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">付款金额</div>
<el-form-item><span class="addinputInfo">{{ formobj.payAccount }}</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.remarks }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">后期是否有平仓付款</div>
<el-form-item><span class="addinputInfo">{{ formobj.isPay == '1' ? '是' : '否' }}</span></el-form-item>
</el-col>
</el-row>
<div v-show="formobj.isPay == '1'">
<div class="title">平仓信息</div>
<el-table :key="tableKey" :data="formobj.finPaymentapplyDetailsBelowEveList" :index="index" border style="width: 100%">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column prop="costTitleValue" label="平仓款名称" align="center" />
<el-table-column prop="period" label="期数" align="center" />
<el-table-column prop="exePayDate" label="平仓付款日期" align="center" />
<el-table-column prop="exePayPrice" label="平仓付款金额" align="center" />
<el-table-column prop="remarks" label="备注" align="center" />
</el-table>
</div>
</el-form>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'PaymentInformationInfo',
data() {
return {
viewTitle: '',
viewState: 1,
tableKey: 0,
index: 0,
formobj: {
sid: '', // sid
costTitleKey: '', //
costTitleValue: '', //
paymentTypeKey: '', // key
paymentType: '', // value
receiveCompany: '', //
receiveCompanySid: '', // sid
bank: '', //
receivingAccount: '', //
payAccount: '', //
detailSid: '', // sid
isPay: '', //
finPaymentapplyDetailsBelowEveList: []
},
rules: {}
}
},
methods: {
showInfo(row) {
this.viewTitle = '付款信息'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
const value = JSON.parse(JSON.stringify(row))
this.formobj = row
},
handleReturn() {
this.formobj = {
sid: '', // sid
costTitleKey: '', //
costTitleValue: '', //
paymentTypeKey: '', // key
paymentType: '', // value
receiveCompany: '', //
receiveCompanySid: '', // sid
bank: '', //
receivingAccount: '', //
payAccount: '', //
detailSid: '', // sid
isPay: '', //
finPaymentapplyDetailsBelowEveList: []
}
this.$emit('doback')
}
}
}
</script>
<style scoped>
.span-sty {
width: 150px !important;
}
.addinputInfo {
margin-left: 140px !important;
}
</style>

57
anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/fukuanguanliFlow/fukuanguanli/relation/vehcile.vue

@ -99,7 +99,7 @@
</el-table-column>
<el-table-column label="颜色" align="center">
<template slot-scope="scope">
<span>{{ scope.row.color }}</span>
<span>{{ scope.row.carColor }}</span>
</template>
</el-table-column>
<el-table-column label="存放地点" align="center">
@ -109,7 +109,7 @@
</el-table-column>
<el-table-column label="厂家结算价" align="center">
<template slot-scope="scope">
<span>{{ scope.row.guidedPrice }}</span>
<span>{{ scope.row.money }}</span>
</template>
</el-table-column>
</el-table>
@ -130,7 +130,7 @@ import req from '@/api/anruifinmanagement/payment'
import { typeValues, brandDown, getOrgSidByPath } from '@/api/jichuxinxi/dictcommons'
export default {
name: 'xianchechaxun',
name: 'Vehcile',
components: {
Pagination
},
@ -149,6 +149,7 @@ export default {
searchxianshitit: '隐藏查询条件',
tableKey: 0,
sids: [],
multipleSelection: [],
list: [],
number: '',
listLoading: false,
@ -168,7 +169,10 @@ export default {
vehicleType: '',
vehicleVersion: '',
userSid: '',
orgSid: '',
orderingNo: '',
isSales: '',
isSettle: '',
vinSidList: []
},
total: 0
@ -193,6 +197,7 @@ export default {
getPathSid() {
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => {
if (res.success) {
// -
brandDown({ useOrg: res.data }).then((res) => {
if (res.success) {
this.carBrand_list = res.data
@ -203,45 +208,43 @@ export default {
})
},
shujuzidian() {
// -
typeValues({ type: 'vehicleFunction' }).then((res) => {
if (res.success) {
this.vehicleType_list = res.data
}
})
typeValues({ type: 'productLine' }).then((res) => {
if (res.code === '200') {
if (res.success) {
this.productLine_list = res.data
}
})
typeValues({ type: 'driver' }).then((res) => {
if (res.code === '200') {
if (res.success) {
this.driveForm_list = res.data
}
})
typeValues({ type: 'horsepower' }).then((res) => {
if (res.code === '200') {
if (res.success) {
this.power_list = res.data
}
})
typeValues({ type: 'vehicleVersion' }).then((res) => {
if (res.code === '200') {
if (res.success) {
this.vehicleVersion_list = res.data
}
})
typeValues({ type: 'fuelType' }).then((res) => {
if (res.code === '200') {
if (res.success) {
this.fuelType_list = res.data
}
})
typeValues({ type: 'gearbox' }).then((res) => {
if (res.code === '200') {
if (res.success) {
this.gearboxType_list = res.data
}
})
typeValues({ type: 'emissionStandard' }).then((res) => {
if (res.code === '200') {
if (res.success) {
this.emissionStandard_list = res.data
}
})
@ -293,21 +296,9 @@ export default {
this.getList()
},
handleSelectionChange(row) {
this.sids = []
const aa = []
row.forEach((element) => {
aa.push({
vinNo: element.vinNo,
vehiSid: element.sid,
modelName: element.vehicleAlias,
modelSid: element.modelSid,
money: element.priced,
configSid: element.configSid
})
})
this.sids = aa
this.multipleSelection = row
},
showData(value) {
showData(value, useOrgSid, isSales, isSettle) {
const aa = []
if (value.length > 0) {
for (var i = 0; i < value.length; i++) {
@ -317,19 +308,17 @@ export default {
} else {
this.listQuery.params.vinSidList = []
}
this.listQuery.params.isSales = isSales
this.listQuery.params.isSettle = isSettle
this.listQuery.params.orgSid = useOrgSid
this.init()
},
//
AddUpdateReturn() {
if (this.sids.length > 0) {
this.$emit('backData', this.sids)
if (this.multipleSelection.length > 0) {
this.$emit('backData', this.multipleSelection)
} else {
this.$notify({
title: '提示',
message: '请选择至少一条车型记录!',
type: 'error',
duration: 2000
})
this.$notify({ title: '提示', message: '请选择至少一条记录!', type: 'error', duration: 2000 })
}
}
}

142
anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/publicPage/tops.vue

@ -0,0 +1,142 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<div>上装配置信息</div>
<div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="">
<el-form ref="dataForm" :model="formobj" class="formaddcopy02">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>车辆功能</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.vehicleTypeValue }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>上装名称</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.installNameValue }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>委改方式</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.refitMethodValue }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>供应商</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.refitFactory }}</span></el-form-item>
</el-col>
</el-row>
<el-row v-if="formobj.installNameKey == '08'">
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>冷机品牌</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.coolerBrand }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>冷机型号</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.coolerModel }}</span></el-form-item>
</el-col>
</el-row>
<div v-if="formobj.installNameKey != '08'">
<el-row>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>货箱内部尺寸</span></div>
<el-form-item>
<div class="addinputInfo addinputwOne">
<span class="inputStyle">{{ formobj.wk_long }}</span>mm,
<span class="inputStyle">{{ formobj.wk_wide }}</span>mm,
<span class="inputStyle">{{ formobj.wk_high }}</span>mm
</div>
</el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>颜色</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.colorValue }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>板材材质</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.plateMaterialValue }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>板材厚度</span></div>
<el-form-item>
<div class="addinputInfo addinputwOne">
<span class="inputStyle">{{ formobj.plateThicknessBottom }}</span>mm,
<span class="inputStyle">{{ formobj.plateThicknessEdge }}</span>mm
</div>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>篷布滑道</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.tarpaulinSlide }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>冷藏冷机</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.refrigerator }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>自卸液压盖板</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.selfUnHyCoPl }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>底板加热</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.floorHeating }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty spanOneWidth"><span>更多配置</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.moreConfig }}</span></el-form-item>
</el-col>
</el-row>
</div>
</el-form>
</div>
</div>
</template>
<script>
import { fetchBySidByTops } from '@/api/jichuxinxi/dictcommons'
export default {
name: 'ShangZhuangInfo',
data() {
return {
formobj: {}
}
},
methods: {
handleReturn() {
this.$emit('doback')
},
showInfo(row) {
fetchBySidByTops(row.sid).then((resp) => {
this.formobj = resp.data
}).catch((e) => {
this.formobj = row
})
console.log('这里是详情回显', row)
}
}
}
</script>
<style scoped>
.spanOneWidth {
width: 110px !important;
}
.addinputwOne {
margin-left: 110px !important;
}
.inputStyle {
display: inline-block;
margin: 0 5px;
}
</style>

16
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java

@ -14,6 +14,7 @@ import com.yxt.anrui.fin.api.kingdee.bdsupplier.BdSupplier;
import com.yxt.anrui.fin.api.kingdee.capitalcreditresult.CapitalCreditResult;
import com.yxt.anrui.fin.api.kingdee.cnbankcnt.CNBankacnt;
import com.yxt.anrui.fin.api.kingdee.cnrecpaypurpose.CNRecpaypurpose;
import com.yxt.anrui.fin.api.kingdee.costadjustmentsbill.CostAdjustmentsBill;
import com.yxt.anrui.fin.api.kingdee.orgorganizations.OrgOrganizations;
import com.yxt.anrui.fin.api.kingdee.otherarreceivable.OtherReceivable;
import com.yxt.anrui.fin.api.kingdee.purmrb.PurMrb;
@ -92,6 +93,16 @@ public interface FinKingDeeFeign {
@ResponseBody
ResultBean<String> saveRebateSpecialReviewVoucher(@RequestBody @Valid GeneralVoucher voucher);
@ApiOperation("保存回款返利预提凭证")
@PostMapping("/saveRebateCollectionVoucher")
@ResponseBody
ResultBean<String> saveRebateCollectionVoucher(@RequestBody @Valid GeneralVoucher voucher);
@ApiOperation("保存回款返利核对凭证")
@PostMapping("/saveRebateCollectionReviewVoucher")
@ResponseBody
ResultBean<String> saveRebateCollectionReviewVoucher(@RequestBody @Valid GeneralVoucher voucher);
//---------------------- 返利凭证 ---------------------------------
@ApiOperation("保存凭证的接口")
@PostMapping("/saveVoucher")
@ -171,6 +182,11 @@ public interface FinKingDeeFeign {
@ResponseBody
ResultBean<String> pushOtherReceivableBill(@RequestBody @Valid CapitalCreditResult creditResult);
@ApiOperation("保存成本调整单")
@PostMapping("/pushCostAdjustmentsBill")
@ResponseBody
ResultBean<String> pushCostAdjustmentsBill(@RequestBody @Valid CostAdjustmentsBill costAdjustmentsBill);
@ApiOperation("暂存付款单的接口")
@PostMapping("/draftArReceivebill")

16
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java

@ -14,6 +14,7 @@ import com.yxt.anrui.fin.api.kingdee.bdsupplier.BdSupplier;
import com.yxt.anrui.fin.api.kingdee.capitalcreditresult.CapitalCreditResult;
import com.yxt.anrui.fin.api.kingdee.cnbankcnt.CNBankacnt;
import com.yxt.anrui.fin.api.kingdee.cnrecpaypurpose.CNRecpaypurpose;
import com.yxt.anrui.fin.api.kingdee.costadjustmentsbill.CostAdjustmentsBill;
import com.yxt.anrui.fin.api.kingdee.orgorganizations.OrgOrganizations;
import com.yxt.anrui.fin.api.kingdee.otherarreceivable.OtherReceivable;
import com.yxt.anrui.fin.api.kingdee.purmrb.PurMrb;
@ -68,6 +69,16 @@ implements FinKingDeeFeign{
return null;
}
@Override
public ResultBean<String> saveRebateCollectionVoucher(@Valid GeneralVoucher voucher) {
return null;
}
@Override
public ResultBean<String> saveRebateCollectionReviewVoucher(@Valid GeneralVoucher voucher) {
return null;
}
@Override
public ResultBean<String> saveVoucher(Voucher voucher) {
return null;
@ -143,6 +154,11 @@ implements FinKingDeeFeign{
return null;
}
@Override
public ResultBean<String> pushCostAdjustmentsBill(@Valid CostAdjustmentsBill costAdjustmentsBill) {
return null;
}
@Override
public ResultBean<String> draftArReceivebill(ARReceivebill arReceivebill) {
return null;

1
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/KingDeeBillId.java

@ -7,6 +7,7 @@ public enum KingDeeBillId {
GL_VOUCHER("GL_VOUCHER", "凭证"),
AP_PAYBILL("AP_PAYBILL", "付款单"),
SAL_RETURNSTOCK("SAL_RETURNSTOCK","销售退货单"),
HS_AdjustmentBill("HS_AdjustmentBill","成本调整单"),
AR_RECEIVEBILL("AR_RECEIVEBILL", "收款单"),
STK_INSTOCK("STK_InStock", "采购入库单"),
PUR_MRB("PUR_MRB", "采购退料单"),

40
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/costadjustmentsbill/CostAdjustmentsBill.java

@ -0,0 +1,40 @@
package com.yxt.anrui.fin.api.kingdee.costadjustmentsbill;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/9/12 18:13
*/
@Data
public class CostAdjustmentsBill {
@ApiModelProperty("往来单位/供应商编码")
public String commUnit;
@ApiModelProperty("核算组织/分公司编码")
public String useOrgCode;
@ApiModelProperty("业务日期")
public String bussDate;
@ApiModelProperty("单据明细")
public List<CostAdjustmentsBillDetailDto> resultDetails;
@Data
public static class CostAdjustmentsBillDetailDto implements Dto {
@ApiModelProperty("分公司编码")
public String companyCode;
@ApiModelProperty("物料编码")
public String materialID;
@ApiModelProperty("调整金额")
public String amount;
@ApiModelProperty("部门编码")
public String deptCode;
}
}

133
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java

@ -17,6 +17,7 @@ import com.yxt.anrui.fin.api.kingdee.bdsupplier.BdSupplier;
import com.yxt.anrui.fin.api.kingdee.capitalcreditresult.CapitalCreditResult;
import com.yxt.anrui.fin.api.kingdee.cnbankcnt.CNBankacnt;
import com.yxt.anrui.fin.api.kingdee.cnrecpaypurpose.CNRecpaypurpose;
import com.yxt.anrui.fin.api.kingdee.costadjustmentsbill.CostAdjustmentsBill;
import com.yxt.anrui.fin.api.kingdee.kingdeeUtils.KingDeeOrgAndDeptCode;
import com.yxt.anrui.fin.api.kingdee.kingdeeUtils.KingDeeUtils;
import com.yxt.anrui.fin.api.kingdee.orgorganizations.OrgOrganizations;
@ -28,8 +29,8 @@ import com.yxt.anrui.fin.api.kingdee.saloutstock.SalOutStock;
import com.yxt.anrui.fin.api.kingdee.stkinstock.StkInStock;
import com.yxt.anrui.fin.api.kingdee.stktransferdirect.StkTransferDirect;
import com.yxt.anrui.fin.api.kingdee.voucher.*;
import com.yxt.anrui.fin.biz.kingdee.appaybill.ApPayBillService;
import com.yxt.anrui.fin.biz.kingdee.appayable.APPayableService;
import com.yxt.anrui.fin.biz.kingdee.appaybill.ApPayBillService;
import com.yxt.anrui.fin.biz.kingdee.arreceivebill.ArReceivebillService;
import com.yxt.anrui.fin.biz.kingdee.bank.BDBankService;
import com.yxt.anrui.fin.biz.kingdee.bdcustomer.BdCustomerService;
@ -41,6 +42,7 @@ import com.yxt.anrui.fin.biz.kingdee.bdsupplier.BdSupplierService;
import com.yxt.anrui.fin.biz.kingdee.capitalcreditresult.OtherReceivableBillCreditResultService;
import com.yxt.anrui.fin.biz.kingdee.cnbankcnt.CNBankcntService;
import com.yxt.anrui.fin.biz.kingdee.cnrecpaypurpose.CNRecpaypurposeService;
import com.yxt.anrui.fin.biz.kingdee.costadjustmentsbill.CostAdjustmentsBillService;
import com.yxt.anrui.fin.biz.kingdee.orgorganizations.OrgOrganizationsService;
import com.yxt.anrui.fin.biz.kingdee.otherreceivablebill.OtherReceivableBillService;
import com.yxt.anrui.fin.biz.kingdee.purmrb.PurMrbService;
@ -67,7 +69,9 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Api(tags = "单据调用金蝶的暂存接口")
@RestController("com.yxt.anrui.fin.biz.kingdee.FinKingDeeFeignRest")
@ -75,6 +79,8 @@ import java.util.*;
@Slf4j
public class FinKingDeeFeignRest implements FinKingDeeFeign {
@Autowired
private CostAdjustmentsBillService costAdjustmentsBillService;
/**
* 应付单service
*/
@ -386,7 +392,7 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
dto1.setSummary(voucherDetail.getTimeFlag() + "专项返利预提");
dto1.setSubjectNo(voucherDetail.getSceneCode());
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDebit("-" + voucherDetail.getAmount().toString());
dto1.setDebit(voucherDetail.getAmount().negate().toString());//转负数
resultDetails.add(dto1);
}
if (voucherDetail.getSceneCode().equals("2181.07.00")) {
@ -458,7 +464,7 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
dto1.setSummary(voucherDetail.getTimeFlag() + "专项返利调整");
dto1.setSubjectNo(voucherDetail.getSceneCode());
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDebit("-" + String.valueOf(voucherDetail.getAmount()));
dto1.setDebit(voucherDetail.getAmount().negate().toString());
resultDetails.add(dto1);
}
if (voucherDetail.getSceneCode().equals("2181.07.00")) {
@ -504,7 +510,7 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
dto1.setSummary(voucherDetail.getTimeFlag() + "行销返利上传");
dto1.setSubjectNo(voucherDetail.getSceneCode());
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setCredit("-"+String.valueOf(voucherDetail.getAmount()));
dto1.setCredit(voucherDetail.getAmount().negate().toString());
resultDetails.add(dto1);
}
}
@ -523,7 +529,7 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
dto1.setSummary(voucherDetail.getTimeFlag() + "专项返利调整");
dto1.setSubjectNo(voucherDetail.getSceneCode());
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDebit("-" + String.valueOf(voucherDetail.getAmount()));
dto1.setDebit(voucherDetail.getAmount().negate().toString());
resultDetails.add(dto1);
}
}
@ -535,6 +541,115 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
return voucherService.saveVoucher(newVoucher);
}
@Override
public ResultBean<String> saveRebateCollectionVoucher(@Valid GeneralVoucher voucher) {
ResultBean rb = ResultBean.fireFail();
Voucher newVoucher = new Voucher();
List<Voucher.VoucherResultDetailDto> resultDetails = new ArrayList<>();
if (StringUtils.isNotBlank(voucher.getUseOrgCode())) {
newVoucher.setAccountBook(voucher.getUseOrgCode());
newVoucher.setVoucherNo(voucher.getUseOrgCode());
}
if (StringUtils.isNotBlank(voucher.getBussDate())) {
newVoucher.setBussDate(voucher.getBussDate());
}
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = voucher.getVoucherDetails();
if (!voucherDetails.isEmpty()) {
for (GeneralVoucher.GeneralVoucherDetail voucherDetail : voucherDetails) {
if (voucherDetail.getSceneCode().equals("1161.02.15") || voucherDetail.getSceneCode().equals("1161.01.15")) {
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto();
dto1.setSummary(voucherDetail.getTimeFlag() + "回款返利预提");
dto1.setSubjectNo(voucherDetail.getSceneCode());
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setManufacturer(voucherDetail.getManufacturer());
dto1.setDebit(String.valueOf(voucherDetail.getAmount()));
resultDetails.add(dto1);
}
if (voucherDetail.getSceneCode().equals("2191.03")) {
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto();
dto1.setSummary(voucherDetail.getTimeFlag() + "回款返利预提");
dto1.setSubjectNo(voucherDetail.getSceneCode());
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setCredit(voucherDetail.getAmount().toString());
resultDetails.add(dto1);
}
}
newVoucher.setResultDetails(resultDetails);
}
log.info("FinKingDeeFeignRest-saveVoucher:{}", JSONObject.toJSONString(newVoucher));
return voucherService.saveVoucher(newVoucher);
}
@Override
public ResultBean<String> saveRebateCollectionReviewVoucher(@Valid GeneralVoucher voucher) {
ResultBean rb = ResultBean.fireFail();
Voucher newVoucher = new Voucher();
List<Voucher.VoucherResultDetailDto> resultDetails = new ArrayList<>();
if (StringUtils.isNotBlank(voucher.getUseOrgCode())) {
newVoucher.setAccountBook(voucher.getUseOrgCode());
newVoucher.setVoucherNo(voucher.getUseOrgCode());
}
if (StringUtils.isNotBlank(voucher.getBussDate())) {
newVoucher.setBussDate(voucher.getBussDate());
}
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = voucher.getVoucherDetails();
if (!voucherDetails.isEmpty()) {
for (GeneralVoucher.GeneralVoucherDetail voucherDetail : voucherDetails) {
if (voucherDetail.getRemarks().equals("返利上传")) {
if (voucherDetail.getSceneCode().equals("1161.01.16")) {
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto();
dto1.setSummary(voucherDetail.getTimeFlag() + "回款返利上传");
dto1.setSubjectNo(voucherDetail.getSceneCode());
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setManufacturer(voucherDetail.getManufacturer());
dto1.setDebit(String.valueOf(voucherDetail.getAmount()));
resultDetails.add(dto1);
}
if (voucherDetail.getSceneCode().equals("1161.02.15") ||
voucherDetail.getSceneCode().equals("1161.01.15")) {
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto();
dto1.setSummary(voucherDetail.getTimeFlag() + "回款返利上传");
dto1.setSubjectNo(voucherDetail.getSceneCode());
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setManufacturer(voucherDetail.getManufacturer());
dto1.setCredit(String.valueOf(voucherDetail.getAmount()));
resultDetails.add(dto1);
}
}
if (voucherDetail.getRemarks().equals("返利调整")) {
if (voucherDetail.getSceneCode().equals("6401.13")) {
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto();
dto1.setSummary(voucherDetail.getTimeFlag() + "回款返利上传调整");
dto1.setSubjectNo(voucherDetail.getSceneCode());
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDebit(voucherDetail.getAmount().negate().toString());
resultDetails.add(dto1);
}
if (voucherDetail.getSceneCode().equals("1161.01.15") || voucherDetail.getSceneCode().equals("1161.02.15")) {
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto();
dto1.setSummary(voucherDetail.getTimeFlag() + "回款返利上传调整");
dto1.setSubjectNo(voucherDetail.getSceneCode());
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setManufacturer(voucherDetail.getManufacturer());
dto1.setDebit(String.valueOf(voucherDetail.getAmount()));
resultDetails.add(dto1);
}
if (voucherDetail.getSceneCode().equals("6801")) {
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto();
dto1.setSummary(voucherDetail.getTimeFlag() + "回款返利上传调整");
dto1.setSubjectNo(voucherDetail.getSceneCode());
dto1.setCredit(String.valueOf(voucherDetail.getAmount()));
resultDetails.add(dto1);
}
}
}
newVoucher.setResultDetails(resultDetails);
}
log.info("FinKingDeeFeignRest-saveVoucher:{}", JSONObject.toJSONString(newVoucher));
return voucherService.saveVoucher(newVoucher);
}
@Override
public ResultBean<String> saveVoucher(Voucher voucher) {
@ -1465,6 +1580,12 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
return creditResultService.pushOtherReceivableBill(creditResult);
}
@Override
public ResultBean<String> pushCostAdjustmentsBill(@Valid CostAdjustmentsBill costAdjustmentsBill) {
log.info("FinKingDeeFeignRest-pushOtherReceivableBill:{}", JSONObject.toJSONString(costAdjustmentsBill));
return costAdjustmentsBillService.costAdjustmentsBillService(costAdjustmentsBill);
}
@Override
public ResultBean<String> draftSalesReturnOrders(SalesReturn salesReturn) {
log.info("FinKingDeeFeignRest-draftSalesReturnOrders:{}", JSONObject.toJSONString(salesReturn));

19
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/ApPayBillService.java

@ -1,21 +1,16 @@
package com.yxt.anrui.fin.biz.kingdee.appaybill;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillUrl;
import com.yxt.anrui.fin.api.kingdee.KingDeeCode;
import com.yxt.anrui.fin.api.kingdee.appaybill.ApPayBill;
import com.yxt.anrui.fin.api.kingdee.bdmaterial.BdMaterial;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
import com.yxt.anrui.portal.api.sysmapping.SysMappingInfoQuery;
import com.yxt.anrui.portal.api.sysmapping.SysMappingInfoQueryBatch;
import com.yxt.anrui.portal.api.sysmapping.SysMappingInfoVo;
import com.yxt.common.core.result.ResultBean;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@ -46,11 +41,17 @@ public class ApPayBillService extends FinKingDeeService {
for(int i=0;i<vehicleListMap.size();i++){
Map<String,String> params=vehicleListMap.get(i);
//付款用途
sysMappingInfoVoResultBean = getSysMappingInfoVoResultBean( "付款用途", params.get("FPURPOSEIDKey"), params.get("FPURPOSEIDType"));
if(! sysMappingInfoVoResultBean.getSuccess()){
return rb.setMsg(sysMappingInfoVoResultBean.getMsg());
// sysMappingInfoVoResultBean = getSysMappingInfoVoResultBean( "付款用途", params.get("FPURPOSEIDKey"), params.get("FPURPOSEIDType"));
// if(! sysMappingInfoVoResultBean.getSuccess()){
// return rb.setMsg(sysMappingInfoVoResultBean.getMsg());
// }
// params.put("FPURPOSEID",sysMappingInfoVoResultBean.getData().getMap_itemKey());//"SFKYT08_SYS");
String map_itemKey = sysMappingInfoVoResultBean.getData().getMap_itemKey();
if (map_itemKey.equals("005")) { //根据付款类别来判断付款用途,005定金 对应预付款,其余为采购付款
params.put("FPURPOSEID","SFKYT09_SYS");//预付款
} else {
params.put("FPURPOSEID","SFKYT08_SYS");//采购付款
}
params.put("FPURPOSEID",sysMappingInfoVoResultBean.getData().getMap_itemKey());//"SFKYT08_SYS");
//结算方式
sysMappingInfoVoResultBean = getSysMappingInfoVoResultBean( "结算方式", params.get("FSETTLETYPEIDKey"), params.get("FSETTLETYPEIDType"));
if(!sysMappingInfoVoResultBean.getSuccess()){

59
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/CostAdjustmentsBillCastToKingDeeBillFields.java

@ -0,0 +1,59 @@
package com.yxt.anrui.fin.biz.kingdee.costadjustmentsbill;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.Feature;
import com.yxt.anrui.fin.biz.kingdee.KingDeeUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 封装转换的类
*/
public class CostAdjustmentsBillCastToKingDeeBillFields {
/**
* 构造金蝶需要的数据结构 并对字段赋值
*
* @param map_fEntityModel_
* @param vehicleList
* @return
*/
public static String getKingDeeData(Map<String, String> map_fEntityModel_, List<Map<String, String>> vehicleList) {
/**
* 取模板
*/
String readJsonFile = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data.json");
String fEntityData_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_data.json");
String fEntityModel_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_model.json");
//模板字符创转json
JSONObject jsonObj = JSONObject.parseObject(readJsonFile, Feature.OrderedField);
JSONObject jsonFEntityData_ = JSONObject.parseObject(fEntityData_, Feature.OrderedField);
fEntityModel_ = KingDeeUtils.replaceTemplateParams(fEntityModel_, map_fEntityModel_);
JSONObject jsonFEntityModel_ = JSONObject.parseObject(fEntityModel_, Feature.OrderedField);
List<JSONObject> list_fEntity_ = new ArrayList<>();
//对模板字段赋值 根据传递进来的map数据的集合进行赋值
for (int i = 0; i < vehicleList.size(); i++) {
String fEntity_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_FEntity.json");
Map<String, String> params = vehicleList.get(i);
Map<String, String> map_fEntity_ = new HashMap<>();
for (Map.Entry<String, String> entry : params.entrySet()) {
map_fEntity_.put(entry.getKey(), entry.getValue());
}
fEntity_ = KingDeeUtils.replaceTemplateParams(fEntity_, map_fEntity_);
list_fEntity_.add(JSONObject.parseObject(fEntity_, Feature.OrderedField));
}
jsonFEntityModel_.put("FEntity", JSONArray.parseArray(JSON.toJSONString(list_fEntity_)));
jsonFEntityData_.put("Model", JSONObject.parseObject(JSON.toJSONString(jsonFEntityModel_), Feature.OrderedField));
jsonObj.put("data", jsonFEntityData_.toJSONString());
return jsonObj.toJSONString();
}
}

87
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/CostAdjustmentsBillService.java

@ -0,0 +1,87 @@
package com.yxt.anrui.fin.biz.kingdee.costadjustmentsbill;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillUrl;
import com.yxt.anrui.fin.api.kingdee.costadjustmentsbill.CostAdjustmentsBill;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class CostAdjustmentsBillService extends FinKingDeeService {
/**
* 生成的成本调整单的数据推送到金蝶的平台中
*
* @param costAdjustmentsBill
* @return
*/
public ResultBean costAdjustmentsBillService(CostAdjustmentsBill costAdjustmentsBill) {
ResultBean rb = ResultBean.fireFail();
//业务表的主表数据集合
Map<String, String> map_fEntityModel_ = new HashMap<>();
//往来单位
if (StringUtils.isBlank(costAdjustmentsBill.getCommUnit())) {
return rb.setMsg("往来单位不能为空");
}
map_fEntityModel_.put("FSUPPLIERID", costAdjustmentsBill.getCommUnit());
//业务日期
if (StringUtils.isBlank(costAdjustmentsBill.getBussDate())) {
return rb.setMsg("业务日期不能为空");
}
map_fEntityModel_.put("FDate", costAdjustmentsBill.getBussDate());
//核算组织
if (StringUtils.isBlank(costAdjustmentsBill.getUseOrgCode())) {
return rb.setMsg("核算组织不能为空");
}
map_fEntityModel_.put("FAcctOrgID", costAdjustmentsBill.getUseOrgCode());
List<CostAdjustmentsBill.CostAdjustmentsBillDetailDto> costAdjustmentsBillDetailDtos = costAdjustmentsBill.getResultDetails() == null ? new ArrayList<>() : costAdjustmentsBill.getResultDetails();
//准备 物料列表的数据
ResultBean<List<Map<String, String>>> vehicleListMap = createVehicleListsForReceivableBill(costAdjustmentsBillDetailDtos);
if (!vehicleListMap.getSuccess()) {
return rb.setMsg(vehicleListMap.getMsg());
}
String kingDeeData = CostAdjustmentsBillCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_, vehicleListMap.getData());
try {
ResultBean<String> resultBean1 = accessKingDeeInterface(KingDeeBillId.HS_AdjustmentBill.getID(), kingDeeData, KingDeeBillUrl.SAVE_URL.getURL());
if (!resultBean1.getSuccess()) {
log.info("成本调整单保存失败!");
return rb.setMsg("成本调整单保存失败!");
}
log.info("成本调整单保存成功!");
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
public ResultBean<List<Map<String, String>>> createVehicleListsForReceivableBill(List<CostAdjustmentsBill.CostAdjustmentsBillDetailDto> collectionDetails) {
ResultBean<List<Map<String, String>>> rb = ResultBean.fireFail();
List<Map<String, String>> collectionDetailMap = new ArrayList<>();
for (int i = 0; i < collectionDetails.size(); i++) {
CostAdjustmentsBill.CostAdjustmentsBillDetailDto c = collectionDetails.get(i);
Map<String, String> m = new HashMap<>();
if (StringUtils.isBlank(c.getCompanyCode())) {
return rb.setMsg("库存组织不能为空");
}
if (StringUtils.isBlank(c.getMaterialID())) {
return rb.setMsg("物料编码不能为空");
}
m.put("FStockOrgID", c.getCompanyCode());
m.put("FOwnerID", c.getCompanyCode());
m.put("FMaterialID", c.getMaterialID());
m.put("FDepartmentId", c.getDeptCode());
m.put("FAdjustmentAMOUNT", c.getAmount());
collectionDetailMap.add(m);
}
return rb.success().setData(collectionDetailMap);
}
}

4
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data.json

@ -0,0 +1,4 @@
{
"formId": "HS_AdjustmentBill",
"data": "@KD_data"
}

116
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_FEntity.json

@ -0,0 +1,116 @@
{
"FEntryID": "0",
"FStockOrgID": {
"FNumber": "@KD_FStockOrgID"
},
"FMaterialID": {
"FNumber": "@KD_FMaterialID"
},
"FAuxPropId": {
"FAUXPROPID__FF100001": {
"FNumber": ""
},
"FAUXPROPID__FF100005": {
"FNumber": ""
},
"FAUXPROPID__FF100002": {
"FNumber": ""
},
"FAUXPROPID__FF100004": {
"FNumber": ""
},
"FAUXPROPID__FF100006": {
"FNumber": ""
}
},
"FLOT": {
"FNumber": ""
},
"FBOMId": {
"FNumber": ""
},
"FSTOCKSTATUSID": {
"FNumber": "KCZT01_SYS"
},
"FAdjustmentAMOUNT": "@KD_FAdjustmentAMOUNT",
"FAdjustmentAMOUNTFor": "0",
"FStockID": {
"FNumber": "ARZSCK"
},
"FOwnerID": {
"FNumber": "@KD_FOwnerID"
},
"FSTOCKLOCID": {
"FSTOCKLOCID__FF100001": {
"FNumber": ""
},
"FSTOCKLOCID__FF100002": {
"FNumber": ""
},
"FSTOCKLOCID__FF100003": {
"FNumber": ""
},
"FSTOCKLOCID__FF100004": {
"FNumber": ""
},
"FSTOCKLOCID__FF100005": {
"FNumber": ""
},
"FSTOCKLOCID__FF100006": {
"FNumber": ""
},
"FSTOCKLOCID__FF100007": {
"FNumber": ""
},
"FSTOCKLOCID__FF100008": {
"FNumber": ""
},
"FSTOCKLOCID__FF100009": {
"FNumber": ""
},
"FSTOCKLOCID__FF100010": {
"FNumber": ""
}
},
"FAcctgRangeID": {
"FNumber": ""
},
"FMtoNo": "",
"FSeqId": "",
"FPROJECTNO": "",
"FOwnerTypeId": "",
"FPrice": "0",
"FSeqEntryId": "0",
"FInvoiceRateType": {
"FNumber": ""
},
"FStockRateType": {
"FNumber": ""
},
"FOriginalCurrencyId": {
"FNumber": ""
},
"FStockRate": "0",
"FInvoiceRate": "0",
"FRateDiff": "0",
"FPriceDiff": "0",
"FQty": "0",
"FCostCenterID": {
"FNumber": ""
},
"FSRCSEQ": "0",
"FSRCBILLNO": "",
"FSRCBILLTYPEID": {
"FNumber": ""
},
"FDepartmentId": {
"FNUMBER": "@KD_FDepartmentId"
},
"FExpense": [{
"FExpenseEntryID": "0",
"FExpenseID": {
"FNumber": ""
},
"FExpenseAmount": "0"
}]
}

13
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_data.json

@ -0,0 +1,13 @@
{
"Creator": "",
"NeedUpDateFields": [],
"NeedReturnFields": [],
"IsDeleteEntry": "True",
"SubSystemId": "",
"IsVerifyBaseDataField": "false",
"IsEntryBatchFill": "True",
"ValidateFlag": "True",
"NumberSearch": "True",
"InterationFlags": "",
"Model": {}
}

38
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_model.json

@ -0,0 +1,38 @@
{
"FID": "0",
"FBillTypeID": {
"FNUMBER": "CGRKTZD01_SYS"
},
"FBillNo": "",
"FBusinessType": "1",
"FSUPPLIERID": {
"FNumber": "@KD_FSUPPLIERID"
},
"FDate": "@KD_FDATE",
"FACCTGSYSTEMID": {
"FNumber": "01"
},
"FAcctOrgID": {
"FNumber": "@KD_FAcctOrgID"
},
"FACCTPOLICYID": {
"FNumber": "KJZC01_SYS"
},
"FCurrencyID": {
"FNumber": ""
},
"FAdjustmentReason": "",
"FAcctgId": "0",
"FDocumentStatus": "",
"FCreateOrgId": {
"FNumber": ""
},
"FCreatorId": {
"FUserID": ""
},
"FInOutIndex": "",
"F_PAEZ_Assistant": {
"FNumber": "01"
},
"FEntity": []
}

97
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/remarks.txt

@ -0,0 +1,97 @@
一、请求参数说明:
1.formid:业务对象表单Id,字符串类型(必录)
2.data:Json格式数据(详情参考Json格式数据)(必录)
2.1.Creator:创建者内码(非必录)
2.2.NeedUpDateFields:需要更新的字段,数组类型,格式:[key1,key2,...](非必录),注(更新单据体字段得加上单据体key)
2.3.NeedReturnFields:需返回结果的字段集合,数组类型,格式:[key,entitykey.key,...](非必录),注(返回单据体字段格式:entitykey.key)
2.4.IsDeleteEntry:是否删除已存在的分录,布尔类型,默认true(非必录)
2.5.SubSystemId:表单所在的子系统内码,字符串类型(非必录)
2.6.IsVerifyBaseDataField:是否验证所有的基础资料有效性,布尔类,默认false(非必录)
2.7.IsEntryBatchFill:是否批量填充分录,默认true(非必录)
2.8.ValidateFlag:是否验证标志,布尔类型,默认true(非必录)
2.9.NumberSearch:是否用编码搜索基础资料,布尔类型,默认true(非必录)
2.10.InterationFlags:交互标志集合,字符串类型,分号分隔,格式:"flag1;flag2;..."(非必录),例如(允许负库存标识:STK_InvCheckResult)
2.11.Model:表单数据包,Json类型(必录)
字段说明:
来源单据号:FSRCBILLNO
原单分录内码:FSRCEntryID
来源单据行号:FSRCSEQ
原单内码:FSRCBILLID
成本中心:FCostCenterID
数量:FQty
来源单据类别:FSRCBILLTYPEID
汇率差异:FRateDiff
入库单汇率类型:FStockRateType
发票汇率类型:FInvoiceRateType
价格差异:FPriceDiff
原币币别:FOriginalCurrencyId
采购入库单汇率:FStockRate
应付单汇率:FInvoiceRate
存货类别:FMaterialType
出入库序列:FInOutIndex (必填项)
来源类型:FFROMTYPE
成本调整类型:F_PAEZ_Assistant
期初类型:FINITTYPE
物料编码:FMaterialID (必填项)
物料名称:FMaterialName
规格型号:FMaterialModel
仓库名称:FStockName
核算范围编码:FAcctgRangeID
核算范围:FAcctgRangeName
仓库:FStockID (必填项)
核算维度Id:FAcctgDimeEntryId
FSeqEntryId:FSeqEntryId
应付单编号:FInvoiceBillNo
维度ID:FDimeentryId
库存状态:FSTOCKSTATUSID (必填项)
单价:FPrice
跨期调整:FCrossPeriodAdjust
费用项目:FExpenseID
费用项目名称:FExpenseName
金额:FExpenseAmount
部门:FDepartmentId
应付单行号:FInvoiceSeq
应付单单据类型:FInvoiceBillTypeId
钩稽序号:FHookLogID
批号:FLOT
货主名称:FOwnerName
调整金额(原币):FAdjustmentAMOUNTFor
BOM版本:FBOMId
调整金额:FAdjustmentAMOUNT
货主:FOwnerID (必填项)
库存组织:FStockOrgID (必填项)
库存组织名称:FStockOrgName
仓位:FSTOCKLOCID
货主类型:FOwnerTypeId
辅助属性:FAuxPropId
基本单位:FBASICUNITID
计划跟踪号:FMtoNo
项目编号:FPROJECTNO
序列号:FSeqId
修改日期:FModifyDate
创建人:FCreatorId
审核人:FAuditorID
审核日期:FAuditDate
创建日期:FCreateDate
创建组织:FCreateOrgId (必填项)
单据状态:FDocumentStatus (必填项)
币别:FCurrencyID
业务日期:FDate
单据编号:FBillNo
核算体系名称:FACCTGSYSTEMNAME
核算体系编码:FACCTGSYSTEMID (必填项)
往来单位:FSUPPLIERID
会计政策名称:FACCTPOLICYNAME
是否为出库核算生成:FIsAcctgGenerate
核算内码:FAcctgId
会计政策编码:FACCTPOLICYID (必填项)
调整原因:FAdjustmentReason
修改人:FModifierId
作废人:FForbidderID
作废状态:FForbidStatus
作废日期:FForbidDate
核算组织名称:FAcctOrgName
核算组织编码:FAcctOrgID (必填项)
业务类型:FBusinessType
单据类型:FBillTypeID

5
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmcollectionrebatecheckapply/ScmCollectionrebateCheckapplyFeign.java

@ -66,6 +66,11 @@ import java.util.List;
fallback = ScmCollectionrebateCheckapplyFeignFallback.class)
public interface ScmCollectionrebateCheckapplyFeign {
@ApiOperation("重推凭证")
@PostMapping("/rePushVoucher")
public ResultBean rePushVoucher(@RequestParam("sid") String sid);
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
@ResponseBody

5
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmcollectionrebatecheckapply/ScmCollectionrebateCheckapplyFeignFallback.java

@ -54,6 +54,11 @@ import java.util.List;
@Component
public class ScmCollectionrebateCheckapplyFeignFallback implements ScmCollectionrebateCheckapplyFeign {
@Override
public ResultBean rePushVoucher(String sid) {
return null;
}
@Override
public ResultBean<PagerVo<ScmCollectionrebateCheckapplyVo>> listPage(PagerQuery<ScmCollectionrebateCheckapplyQuery> pq) {
ResultBean rb = ResultBean.fireFail();

10
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmcollectionrebatewithapply/ScmCollectionRebateWithApplyFeign.java

@ -27,12 +27,11 @@ package com.yxt.anrui.scm.api.scmcollectionrebatewithapply;
import com.yxt.anrui.scm.api.flow.FlowTaskVo;
import com.yxt.anrui.scm.api.scmcollectionrebatewithapply.flow.*;
import com.yxt.anrui.scm.api.scmvehrebatewithapply.flow.ScmVehRebateWithApplyDelegateQuery;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
@ -62,6 +61,11 @@ import java.util.List;
fallback = ScmCollectionRebateWithApplyFeignFallback.class)
public interface ScmCollectionRebateWithApplyFeign {
@ApiOperation("重推凭证")
@PostMapping("/rePushVoucher")
public ResultBean rePushVoucher(@RequestParam("sid") String sid);
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
@ResponseBody

4
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmcollectionrebatewithapply/ScmCollectionRebateWithApplyFeignFallback.java

@ -50,6 +50,10 @@ import java.util.List;
@Component
public class ScmCollectionRebateWithApplyFeignFallback implements ScmCollectionRebateWithApplyFeign {
@Override
public ResultBean rePushVoucher(String sid) {
return null;
}
@Override
public ResultBean<PagerVo<ScmCollectionRebateWithApplyVo>> listPage(PagerQuery<ScmCollectionRebateWithApplyQuery> pq) {
ResultBean rb = ResultBean.fireFail();

10
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatecheckapply/ScmSpecialrebateCheckapplyFeign.java

@ -27,12 +27,11 @@ package com.yxt.anrui.scm.api.scmspecialrebatecheckapply;
import com.yxt.anrui.scm.api.flow.FlowTaskVo;
import com.yxt.anrui.scm.api.scmspecialrebatecheckapply.flow.*;
import com.yxt.anrui.scm.api.scmspecialrebatedistribute.flow.ScmSpecialRebatedistributeDelegateQuery;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
@ -62,6 +61,11 @@ import java.util.List;
fallback = ScmSpecialrebateCheckapplyFeignFallback.class)
public interface ScmSpecialrebateCheckapplyFeign {
@ApiOperation("重推凭证")
@PostMapping("/rePushVoucher")
public ResultBean rePushVoucher(@RequestParam("sid") String sid);
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
@ResponseBody

4
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatecheckapply/ScmSpecialrebateCheckapplyFeignFallback.java

@ -53,6 +53,10 @@ import java.util.List;
@Component
public class ScmSpecialrebateCheckapplyFeignFallback implements ScmSpecialrebateCheckapplyFeign {
@Override
public ResultBean rePushVoucher(String sid) {
return null;
}
@Override
public ResultBean<PagerVo<ScmSpecialrebateCheckapplyVo>> listPage(PagerQuery<ScmSpecialrebateCheckapplyQuery> pq){
ResultBean rb = ResultBean.fireFail();

5
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatewithapply/ScmSpecialRebateWithApplyFeign.java

@ -61,6 +61,11 @@ import java.util.List;
fallback = ScmSpecialRebateWithApplyFeignFallback.class)
public interface ScmSpecialRebateWithApplyFeign {
@ApiOperation("重推凭证")
@PostMapping("/rePushVoucher")
public ResultBean rePushVoucher(@RequestParam("sid") String sid);
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
@ResponseBody

4
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatewithapply/ScmSpecialRebateWithApplyFeignFallback.java

@ -50,6 +50,10 @@ import java.util.List;
@Component
public class ScmSpecialRebateWithApplyFeignFallback implements ScmSpecialRebateWithApplyFeign {
@Override
public ResultBean rePushVoucher(String sid) {
return null;
}
@Override
public ResultBean<PagerVo<ScmSpecialRebateWithApplyVo>> listPage(PagerQuery<ScmSpecialRebateWithApplyQuery> pq){
ResultBean rb = ResultBean.fireFail();

10
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/ScmVehrebateCheckapplyFeign.java

@ -27,12 +27,11 @@ package com.yxt.anrui.scm.api.scmvehrebatecheckapply;
import com.yxt.anrui.scm.api.flow.FlowTaskVo;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.*;
import com.yxt.anrui.scm.api.scmvehrebatewithapply.flow.ScmVehRebateWithApplyDelegateQuery;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
@ -62,6 +61,11 @@ import java.util.List;
fallback = ScmVehrebateCheckapplyFeignFallback.class)
public interface ScmVehrebateCheckapplyFeign {
@ApiOperation("重推凭证")
@PostMapping("/rePushVoucher")
public ResultBean rePushVoucher(@RequestParam("sid") String sid);
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
@ResponseBody

4
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/ScmVehrebateCheckapplyFeignFallback.java

@ -50,6 +50,10 @@ import java.util.List;
@Component
public class ScmVehrebateCheckapplyFeignFallback implements ScmVehrebateCheckapplyFeign {
@Override
public ResultBean rePushVoucher(String sid) {
return null;
}
@Override
public ResultBean<PagerVo<ScmVehrebateCheckapplyVo>> listPage(PagerQuery<ScmVehrebateCheckapplyQuery> pq){
ResultBean rb = ResultBean.fireFail();

14
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatewithapply/ScmVehRebateWithApplyFeign.java

@ -26,13 +26,12 @@
package com.yxt.anrui.scm.api.scmvehrebatewithapply;
import com.yxt.anrui.scm.api.flow.FlowTaskVo;
import com.yxt.anrui.scm.api.scmspecialrebatewithapply.flow.ScmSpecialRebateWithApplyDelegateQuery;
import com.yxt.anrui.scm.api.scmvehrebatewithapply.flow.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
@ -62,6 +61,11 @@ import java.util.List;
fallback = ScmVehRebateWithApplyFeignFallback.class)
public interface ScmVehRebateWithApplyFeign {
@ApiOperation("重推凭证")
@PostMapping("/rePushVoucher")
public ResultBean rePushVoucher(@RequestParam("sid") String sid);
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
@ResponseBody
@ -71,12 +75,12 @@ public interface ScmVehRebateWithApplyFeign {
@PostMapping("/save")
@ResponseBody
public ResultBean save(@RequestBody ScmVehRebateWithApplyDto dto);
@ApiOperation("根据sid删除记录")
@DeleteMapping("/delBySids")
@ResponseBody
public ResultBean delBySids(@RequestBody String[] sids);
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
@ResponseBody

4
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatewithapply/ScmVehRebateWithApplyFeignFallback.java

@ -50,6 +50,10 @@ import java.util.List;
@Component
public class ScmVehRebateWithApplyFeignFallback implements ScmVehRebateWithApplyFeign {
@Override
public ResultBean rePushVoucher(String sid) {
return null;
}
@Override
public ResultBean<PagerVo<ScmVehRebateWithApplyVo>> listPage(PagerQuery<ScmVehRebateWithApplyQuery> pq){
ResultBean rb = ResultBean.fireFail();

8
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmcollectionrebatecheckapply/ScmCollectionrebateCheckapplyRest.java

@ -35,7 +35,6 @@ import com.yxt.anrui.scm.api.scmcollectionrebatecheckapply.flow.ScmCollectionReb
import com.yxt.anrui.scm.api.scmcollectionrebatecheckapply.flow.SubmitScmCollectionRebateCheckApplyDto;
import com.yxt.anrui.scm.api.scmcollectionrebatewithapply.flow.GetNodeQuery;
import com.yxt.anrui.scm.api.scmcollectionrebatewithapply.flow.GetNodeVo;
import com.yxt.anrui.scm.api.scmspecialrebatewithapply.ScmSpecialRebateWithApply;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -76,6 +75,13 @@ public class ScmCollectionrebateCheckapplyRest implements ScmCollectionrebateChe
return rb.success().setData(pv);
}
@Override
public ResultBean rePushVoucher(String sid) {
ResultBean rb = ResultBean.fireFail();
scmCollectionrebateCheckapplyService.pusCollectionRebateWithVoucher(sid);
return rb.success();
}
@Override
@ApiOperation("新增或修改")
@PostMapping("/save")

209
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmcollectionrebatecheckapply/ScmCollectionrebateCheckapplyService.java

@ -26,10 +26,15 @@
package com.yxt.anrui.scm.biz.scmcollectionrebatecheckapply;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basemanufacturer.BaseManufacturer;
import com.yxt.anrui.base.api.basemanufacturer.BaseManufacturerFeign;
import com.yxt.anrui.base.api.basevehiclebrand.BaseVehicleBrand;
import com.yxt.anrui.base.api.basevehiclebrand.BaseVehicleBrandFeign;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.fin.api.kingdee.voucher.GeneralVoucher;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery;
@ -37,6 +42,8 @@ import com.yxt.anrui.flowable.api.flow2.FlowFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery;
@ -44,30 +51,27 @@ import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.scm.api.flow.FlowTaskVo;
import com.yxt.anrui.scm.api.scmcollectionrebatecheckapply.flow.ScmCollectionRebateCheckApplyDelegateQuery;
import com.yxt.anrui.scm.api.scmcollectionrebate.ScmCollectionRebate;
import com.yxt.anrui.scm.api.scmcollectionrebatecheckapply.*;
import com.yxt.anrui.scm.api.scmcollectionrebatecheckapply.flow.SubmitScmCollectionRebateCheckApplyDto;
import com.yxt.anrui.scm.api.scmcollectionrebatecheckapplydetail.ScmCollectionrebateCheckapplydetail;
import com.yxt.anrui.scm.api.scmcollectionrebatecheckapplydetail.ScmCollectionrebateCheckapplydetailDetailsVo;
import com.yxt.anrui.scm.api.scmcollectionrebatecheckapplydetail.ScmCollectionrebateCheckapplydetailDto;
import com.yxt.anrui.scm.api.scmcollectionrebatecheckapplydetail.ScmCollectionrebateCheckapplydetailVo;
import com.yxt.anrui.scm.api.scmcollectionrebatewithapply.ScmCollectionRebateWithApplyVo;
import com.yxt.anrui.scm.api.scmcollectionrebatewithapply.flow.GetNodeQuery;
import com.yxt.anrui.scm.api.scmcollectionrebatewithapply.flow.GetNodeVo;
import com.yxt.anrui.scm.biz.scmcollectionrebate.ScmCollectionRebateService;
import com.yxt.anrui.scm.biz.scmcollectionrebatecheckapplydetail.ScmCollectionrebateCheckapplydetailService;
import com.yxt.common.core.result.ResultBean;
import org.apache.commons.lang3.StringUtils;
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 com.yxt.anrui.scm.api.scmcollectionrebatecheckapply.ScmCollectionrebateCheckapply;
import com.yxt.anrui.scm.api.scmcollectionrebatecheckapply.ScmCollectionrebateCheckapplyQuery;
import com.yxt.anrui.scm.api.scmcollectionrebatecheckapply.ScmCollectionrebateCheckapplyVo;
import com.yxt.anrui.scm.api.scmcollectionrebatecheckapply.ScmCollectionrebateCheckapplyDetailsVo;
import com.yxt.anrui.scm.api.scmcollectionrebatecheckapply.ScmCollectionrebateCheckapplyDto;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@ -87,6 +91,14 @@ import java.util.stream.Collectors;
@Service
public class ScmCollectionrebateCheckapplyService extends MybatisBaseService<ScmCollectionrebateCheckapplyMapper, ScmCollectionrebateCheckapply> {
@Autowired
private FinKingDeeFeign finKingDeeFeign;
@Autowired
private BaseVehicleBrandFeign baseVehicleBrandFeign;
@Autowired
private BaseManufacturerFeign baseManufacturerFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private ScmCollectionrebateCheckapplydetailService scmCollectionrebateCheckapplydetailService;
@Autowired
@ -99,6 +111,8 @@ public class ScmCollectionrebateCheckapplyService extends MybatisBaseService<Scm
private SysUserFeign sysUserFeign;
@Autowired
private FlowFeign flowFeign;
@Autowired
private ScmCollectionRebateService scmCollectionRebateService;
public PagerVo<ScmCollectionrebateCheckapplyVo> listPageVo(PagerQuery<ScmCollectionrebateCheckapplyQuery> pq) {
ScmCollectionrebateCheckapplyQuery query = pq.getParams();
@ -347,6 +361,179 @@ public class ScmCollectionrebateCheckapplyService extends MybatisBaseService<Scm
return baseMapper.updateFlowFiled(beanToMap);
}
/**
* 推送回款返利核对凭证
*
* @param sid
*/
public void pusCollectionRebateWithVoucher(String sid) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
int month = calendar.get(Calendar.MONTH);
calendar.set(Calendar.MONTH, month - 1);
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
Date endTime = calendar.getTime();//上个月最后一天
String format = sdf.format(endTime);
String summaryTag = "";//摘要前缀
ScmCollectionrebateCheckapply entity = fetchBySid(sid);
if (null != entity) {
if (StringUtils.isNotBlank(entity.getCheckApply())) {
summaryTag = entity.getCheckApply();
}
}
List<ScmCollectionRebate> scmVehRebates = new ArrayList<>();
List<ScmCollectionrebateCheckapplydetailVo> scmVehrebateCheckapplydetailVos = scmCollectionrebateCheckapplydetailService.selByMainSid(sid);
if (!scmVehrebateCheckapplydetailVos.isEmpty()) {
for (ScmCollectionrebateCheckapplydetailVo s : scmVehrebateCheckapplydetailVos) {
ScmCollectionRebate v = scmCollectionRebateService.fetchBySid(s.getCollectionRebateSid());
if (null != v) {
scmVehRebates.add(v);
}
}
}
//按照采购系统分组
if (!scmVehRebates.isEmpty()) {
Map<String, List<ScmCollectionRebate>> map = scmVehRebates.stream().collect(Collectors.groupingBy(ScmCollectionRebate::getPurchaseSystemSid));
String finalSummaryTag = summaryTag;
String[] split = finalSummaryTag.split("年");
String y1 = split[0]; //预提申请标题年份
map.forEach((k, v) -> {
List<ScmCollectionRebate> rebates = v;
GeneralVoucher generalVoucher = new GeneralVoucher();
generalVoucher.setBussDate(format);
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>();
if (!v.isEmpty()) {
for (ScmCollectionRebate rebate : v) {
if (StringUtils.isNotBlank(rebate.getUseOrgSid())) {
String useOrgSid = rebate.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
}
String deptCode = "";//部门编码
String gysCode = "";//厂商编码
SysOrganizationVo data = sysOrganizationFeign.fetchBySid(rebate.getPurchaseSystemSid()).getData();
if (null != data) {
deptCode = data.getOrgCode();
}
if (StringUtils.isNotBlank(rebate.getBrandSid())) {
String brandSid = rebate.getBrandSid();
BaseVehicleBrand baseVehicleBrand = baseVehicleBrandFeign.fetchBySid(brandSid);
if (null != baseVehicleBrand) {
String manufacturerSid = baseVehicleBrand.getManufacturerSid();
if (StringUtils.isNotBlank(manufacturerSid)) {
BaseManufacturer baseManufacturer = baseManufacturerFeign.fetchBySid(manufacturerSid).getData();
if (null != baseManufacturer) {
gysCode = baseManufacturer.getManufacturerCode();
}
}
}
}
BigDecimal shangchuanMoney = BigDecimal.ZERO;//上传金额
BigDecimal chaMoney = BigDecimal.ZERO;//差额
if (null != rebate.getUploadMoney()) {
shangchuanMoney = rebate.getUploadMoney();
}
if (null != rebate.getAdjustmentMoney()) {
chaMoney = rebate.getAdjustmentMoney();
}
String palceGenDate = rebate.getCollectionDate();
String[] palceGenDateSplit = palceGenDate.split("-");
String y2 = palceGenDateSplit[0];//所属年份
if (y1.equals(y2)) {
//本年
if (shangchuanMoney.compareTo(BigDecimal.ZERO) != 0) {
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail.setTimeFlag(finalSummaryTag);
voucherDetail.setDeptCode(deptCode); //部门编码赋值
voucherDetail.setManufacturer(gysCode);
voucherDetail.setAmount(shangchuanMoney);
voucherDetail.setSceneCode("1161.01.16");
voucherDetail.setRemarks("返利上传");
voucherDetails.add(voucherDetail);
GeneralVoucher.GeneralVoucherDetail voucherDetail2 = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail2.setTimeFlag(finalSummaryTag);
voucherDetail2.setDeptCode(deptCode); //部门编码赋值
voucherDetail2.setManufacturer(gysCode);
voucherDetail2.setAmount(shangchuanMoney);
voucherDetail2.setSceneCode("1161.01.15");
voucherDetail2.setRemarks("返利上传");
voucherDetails.add(voucherDetail2);
}
if (chaMoney.compareTo(BigDecimal.ZERO) != 0) {
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail.setTimeFlag(finalSummaryTag);
voucherDetail.setDeptCode(deptCode); //部门编码赋值
voucherDetail.setAmount(chaMoney);
voucherDetail.setSceneCode("6401.13");
voucherDetail.setRemarks("返利调整");
voucherDetails.add(voucherDetail);
GeneralVoucher.GeneralVoucherDetail voucherDetail2 = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail2.setTimeFlag(finalSummaryTag);
voucherDetail2.setDeptCode(deptCode); //部门编码赋值
voucherDetail2.setManufacturer(gysCode);
voucherDetail2.setAmount(chaMoney);
voucherDetail2.setSceneCode("1161.01.15");
voucherDetail2.setRemarks("返利调整");
voucherDetails.add(voucherDetail2);
}
} else {
//上年
if (shangchuanMoney.compareTo(BigDecimal.ZERO) != 0) {
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail.setTimeFlag(finalSummaryTag);
voucherDetail.setDeptCode(deptCode); //部门编码赋值
voucherDetail.setManufacturer(gysCode);
voucherDetail.setAmount(shangchuanMoney);
voucherDetail.setSceneCode("1161.01.16");
voucherDetail.setRemarks("返利上传");
voucherDetails.add(voucherDetail);
GeneralVoucher.GeneralVoucherDetail voucherDetail2 = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail2.setTimeFlag(finalSummaryTag);
voucherDetail2.setDeptCode(deptCode); //部门编码赋值
voucherDetail2.setManufacturer(gysCode);
voucherDetail2.setAmount(shangchuanMoney);
voucherDetail2.setSceneCode("1161.02.15");
voucherDetail2.setRemarks("返利上传");
voucherDetails.add(voucherDetail2);
}
if (chaMoney.compareTo(BigDecimal.ZERO) != 0) {
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail.setTimeFlag(finalSummaryTag);
voucherDetail.setAmount(chaMoney);
voucherDetail.setSceneCode("6801");
voucherDetail.setRemarks("返利调整");
voucherDetails.add(voucherDetail);
GeneralVoucher.GeneralVoucherDetail voucherDetail2 = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail2.setTimeFlag(finalSummaryTag);
voucherDetail2.setDeptCode(deptCode); //部门编码赋值
voucherDetail2.setManufacturer(gysCode);
voucherDetail2.setAmount(chaMoney);
voucherDetail2.setSceneCode("1161.02.15");
voucherDetail2.setRemarks("返利调整");
voucherDetails.add(voucherDetail2);
}
}
}
if (!voucherDetails.isEmpty()) {
generalVoucher.setVoucherDetails(voucherDetails);
finKingDeeFeign.saveRebateCollectionReviewVoucher(generalVoucher);
}
}
});
}
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
ScmCollectionrebateCheckapply scmCollectionrebateCheckapply = fetchBySid(bv.getBusinessSid());

15
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmcollectionrebatewithapply/ScmCollectionRebateWithApplyRest.java

@ -29,6 +29,7 @@ import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.scm.api.flow.FlowTaskVo;
import com.yxt.anrui.scm.api.scmcollectionrebatewithapply.*;
import com.yxt.anrui.scm.api.scmcollectionrebatewithapply.flow.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
@ -40,13 +41,6 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.yxt.anrui.scm.api.scmcollectionrebatewithapply.ScmCollectionRebateWithApply;
import com.yxt.anrui.scm.api.scmcollectionrebatewithapply.ScmCollectionRebateWithApplyQuery;
import com.yxt.anrui.scm.api.scmcollectionrebatewithapply.ScmCollectionRebateWithApplyVo;
import com.yxt.anrui.scm.api.scmcollectionrebatewithapply.ScmCollectionRebateWithApplyDetailsVo;
import com.yxt.anrui.scm.api.scmcollectionrebatewithapply.ScmCollectionRebateWithApplyDto;
import com.yxt.anrui.scm.api.scmcollectionrebatewithapply.ScmCollectionRebateWithApplyFeign;
@Api(tags = "回款返利预提申请表")
@RestController
@RequestMapping("v1/scmcollectionrebatewithapply")
@ -98,6 +92,13 @@ public class ScmCollectionRebateWithApplyRest implements ScmCollectionRebateWith
return scmCollectionRebateWithApplyService.complete(bv);
}
@Override
public ResultBean rePushVoucher(String sid) {
ResultBean rb = ResultBean.fireFail();
scmCollectionRebateWithApplyService.pushCollectionRebateWithVoucher(sid);
return rb.success();
}
@Override
public ResultBean revokeProcess(FlowTaskVo flowTaskVo) {
return scmCollectionRebateWithApplyService.revokeProcess(flowTaskVo);

143
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmcollectionrebatewithapply/ScmCollectionRebateWithApplyService.java

@ -26,11 +26,16 @@
package com.yxt.anrui.scm.biz.scmcollectionrebatewithapply;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basemanufacturer.BaseManufacturer;
import com.yxt.anrui.base.api.basemanufacturer.BaseManufacturerFeign;
import com.yxt.anrui.base.api.basevehiclebrand.BaseVehicleBrand;
import com.yxt.anrui.base.api.basevehiclebrand.BaseVehicleBrandFeign;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.fin.api.kingdee.voucher.GeneralVoucher;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery;
@ -38,6 +43,8 @@ import com.yxt.anrui.flowable.api.flow2.FlowFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery;
@ -45,12 +52,12 @@ import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.scm.api.flow.FlowTaskVo;
import com.yxt.anrui.scm.api.scmcollectionrebate.ScmCollectionRebate;
import com.yxt.anrui.scm.api.scmcollectionrebate.ScmCollectionRebateVo;
import com.yxt.anrui.scm.api.scmcollectionrebatedistribution.ScmCollectionRebateDistribution;
import com.yxt.anrui.scm.api.scmcollectionrebateveh.ScmCollectionRebateVehDetailsVo;
import com.yxt.anrui.scm.api.scmcollectionrebatewith.ScmCollectionRebateWith;
import com.yxt.anrui.scm.api.scmcollectionrebatewith.ScmCollectionRebateWithDetailsVo;
import com.yxt.anrui.scm.api.scmcollectionrebatewith.ScmCollectionRebateWithDto;
import com.yxt.anrui.scm.api.scmcollectionrebatewithapply.*;
import com.yxt.anrui.scm.api.scmcollectionrebatewithapply.flow.GetNodeQuery;
import com.yxt.anrui.scm.api.scmcollectionrebatewithapply.flow.GetNodeVo;
import com.yxt.anrui.scm.api.scmcollectionrebatewithapply.flow.ScmCollectionRebateWithApplyDelegateQuery;
@ -59,28 +66,31 @@ import com.yxt.anrui.scm.biz.scmcollectionrebate.ScmCollectionRebateService;
import com.yxt.anrui.scm.biz.scmcollectionrebatedistribution.ScmCollectionRebateDistributionService;
import com.yxt.anrui.scm.biz.scmcollectionrebateveh.ScmCollectionRebateVehService;
import com.yxt.anrui.scm.biz.scmcollectionrebatewith.ScmCollectionRebateWithService;
import org.apache.commons.lang3.StringUtils;
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 com.yxt.anrui.scm.api.scmcollectionrebatewithapply.ScmCollectionRebateWithApply;
import com.yxt.anrui.scm.api.scmcollectionrebatewithapply.ScmCollectionRebateWithApplyQuery;
import com.yxt.anrui.scm.api.scmcollectionrebatewithapply.ScmCollectionRebateWithApplyVo;
import com.yxt.anrui.scm.api.scmcollectionrebatewithapply.ScmCollectionRebateWithApplyDetailsVo;
import com.yxt.anrui.scm.api.scmcollectionrebatewithapply.ScmCollectionRebateWithApplyDto;
import com.yxt.anrui.scm.api.scmcollectionrebatewithapply.ScmCollectionRebateWithApplyFeign;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class ScmCollectionRebateWithApplyService extends MybatisBaseService<ScmCollectionRebateWithApplyMapper, ScmCollectionRebateWithApply> {
@Autowired
private FinKingDeeFeign finKingDeeFeign;
@Autowired
private BaseVehicleBrandFeign baseVehicleBrandFeign;
@Autowired
private BaseManufacturerFeign baseManufacturerFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private ScmCollectionRebateWithService scmCollectionRebateWithService;
@Autowired
@ -372,6 +382,118 @@ public class ScmCollectionRebateWithApplyService extends MybatisBaseService<ScmC
return baseMapper.updateFlowFiled(beanToMap);
}
/**
* 推送回款预提凭证
* @param sid
*/
public void pushCollectionRebateWithVoucher(String sid) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar=Calendar.getInstance();
int month=calendar.get(Calendar.MONTH);
calendar.set(Calendar.MONTH, month-1);
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
Date endTime = calendar.getTime();//上个月最后一天
String format = sdf.format(endTime);
String summaryTag = "";//摘要前缀
ScmCollectionRebateWithApply entity = fetchBySid(sid);
if (null != entity) {
if (StringUtils.isNotBlank(entity.getCollectionApply())) {
summaryTag = entity.getCollectionApply();
}
}
List<ScmCollectionRebate> scmVehRebates = new ArrayList<>();
List<String> vehRebateSids = scmCollectionRebateWithService.fetchCollectionReBateSidByMainSid(sid);
if (!vehRebateSids.isEmpty()) {
for (String s : vehRebateSids) {
ScmCollectionRebate v = scmCollectionRebateService.fetchBySid(s);
if (null != v) {
scmVehRebates.add(v);
}
}
}
//按照采购系统分组
if (!scmVehRebates.isEmpty()) {
Map<String, List<ScmCollectionRebate>> map = scmVehRebates.stream().collect(Collectors.groupingBy(ScmCollectionRebate::getPurchaseSystemSid));
String finalSummaryTag = summaryTag;
String[] split = finalSummaryTag.split("年");
String y1 = split[0]; //预提申请标题年份
map.forEach((k, v) -> {
List<ScmCollectionRebate> rebates = v;
GeneralVoucher generalVoucher = new GeneralVoucher();
generalVoucher.setBussDate(format);
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>();
if (!v.isEmpty()) {
for (ScmCollectionRebate rebate : v) {
if (StringUtils.isNotBlank(rebate.getUseOrgSid())) {
String useOrgSid = rebate.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
}
String deptCode = "";//部门编码
String gysCode = "";//厂商编码
SysOrganizationVo data = sysOrganizationFeign.fetchBySid(rebate.getPurchaseSystemSid()).getData();
if (null != data) {
deptCode = data.getOrgCode();
}
if (StringUtils.isNotBlank(rebate.getBrandSid())) {
String brandSid = rebate.getBrandSid();
BaseVehicleBrand baseVehicleBrand = baseVehicleBrandFeign.fetchBySid(brandSid);
if (null != baseVehicleBrand) {
String manufacturerSid = baseVehicleBrand.getManufacturerSid();
if (StringUtils.isNotBlank(manufacturerSid)) {
BaseManufacturer baseManufacturer = baseManufacturerFeign.fetchBySid(manufacturerSid).getData();
if (null != baseManufacturer) {
gysCode = baseManufacturer.getManufacturerCode();
}
}
}
}
BigDecimal fanliMoney = BigDecimal.ZERO;// 其中返利金
if (null != rebate.getEstimateRebate()) {
fanliMoney = rebate.getEstimateRebate();
}
if (fanliMoney.compareTo(BigDecimal.ZERO) != 0) {
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail.setTimeFlag(finalSummaryTag);
voucherDetail.setDeptCode(deptCode); //部门编码赋值
voucherDetail.setSceneCode("2191.03");
voucherDetail.setAmount(fanliMoney);
voucherDetails.add(voucherDetail);
GeneralVoucher.GeneralVoucherDetail voucherDetail2 = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail2.setTimeFlag(finalSummaryTag);
voucherDetail2.setDeptCode(deptCode); //部门编码赋值
voucherDetail2.setManufacturer(gysCode);
String palceGenDate = rebate.getCollectionDate();
String[] palceGenDateSplit = palceGenDate.split("-");
String y2 = palceGenDateSplit[0];//所属年份
if (y1.equals(y2)) {
voucherDetail2.setSceneCode("1161.01.15");
} else {
voucherDetail2.setSceneCode("1161.02.15");
}
voucherDetail2.setAmount(fanliMoney);
voucherDetails.add(voucherDetail2);
}
}
if (!voucherDetails.isEmpty()) {
generalVoucher.setVoucherDetails(voucherDetails);
finKingDeeFeign.saveRebateCollectionVoucher(generalVoucher);
}
}
});
}
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
ScmCollectionRebateWithApply scmCollectionRebateWithApply = fetchBySid(bv.getBusinessSid());
@ -400,6 +522,7 @@ public class ScmCollectionRebateWithApplyService extends MybatisBaseService<ScmC
scmCollectionRebateDistributionService.save(scmCollectionRebateDistribution);
}
}
pushCollectionRebateWithVoucher(bv.getBusinessSid()); //回款返利预提凭证
}
return rb.success().setData(resultBean.getData());
} else {

13
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatecheckapply/ScmSpecialrebateCheckapplyRest.java

@ -29,6 +29,7 @@ import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.scm.api.flow.FlowTaskVo;
import com.yxt.anrui.scm.api.scmspecialrebatecheckapply.*;
import com.yxt.anrui.scm.api.scmspecialrebatecheckapply.flow.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
@ -39,11 +40,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.yxt.anrui.scm.api.scmspecialrebatecheckapply.ScmSpecialrebateCheckapplyQuery;
import com.yxt.anrui.scm.api.scmspecialrebatecheckapply.ScmSpecialrebateCheckapplyVo;
import com.yxt.anrui.scm.api.scmspecialrebatecheckapply.ScmSpecialrebateCheckapplyDetailsVo;
import com.yxt.anrui.scm.api.scmspecialrebatecheckapply.ScmSpecialrebateCheckapplyDto;
import com.yxt.anrui.scm.api.scmspecialrebatecheckapply.ScmSpecialrebateCheckapplyFeign;
@Api(tags = "专项返利核对申请表")
@RestController
@ -53,6 +49,13 @@ public class ScmSpecialrebateCheckapplyRest implements ScmSpecialrebateCheckappl
@Autowired
private ScmSpecialrebateCheckapplyService scmSpecialrebateCheckapplyService;
@Override
public ResultBean rePushVoucher(String sid) {
ResultBean rb = ResultBean.fireFail();
scmSpecialrebateCheckapplyService.pushSpecialRebateWithVoucher(sid,"1");
return rb.success();
}
@Override
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")

13
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatewithapply/ScmSpecialRebateWithApplyRest.java

@ -29,6 +29,7 @@ import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.scm.api.flow.FlowTaskVo;
import com.yxt.anrui.scm.api.scmspecialrebatewithapply.*;
import com.yxt.anrui.scm.api.scmspecialrebatewithapply.flow.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
@ -39,11 +40,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.yxt.anrui.scm.api.scmspecialrebatewithapply.ScmSpecialRebateWithApplyQuery;
import com.yxt.anrui.scm.api.scmspecialrebatewithapply.ScmSpecialRebateWithApplyVo;
import com.yxt.anrui.scm.api.scmspecialrebatewithapply.ScmSpecialRebateWithApplyDetailsVo;
import com.yxt.anrui.scm.api.scmspecialrebatewithapply.ScmSpecialRebateWithApplyDto;
import com.yxt.anrui.scm.api.scmspecialrebatewithapply.ScmSpecialRebateWithApplyFeign;
/**
* Project: anrui-scm(专项返利) <br/>
@ -66,6 +62,13 @@ public class ScmSpecialRebateWithApplyRest implements ScmSpecialRebateWithApplyF
@Autowired
private ScmSpecialRebateWithApplyService scmSpecialRebateWithApplyService;
@Override
public ResultBean rePushVoucher(String sid) {
ResultBean rb = ResultBean.fireFail();
scmSpecialRebateWithApplyService.pushSpecialRebateWithVoucher(sid);
return rb.success();
}
@Override
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")

16
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyRest.java

@ -29,6 +29,7 @@ import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.scm.api.flow.FlowTaskVo;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.*;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.*;
import com.yxt.anrui.scm.biz.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetailService;
import com.yxt.common.core.query.PagerQuery;
@ -39,16 +40,8 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapply;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapplyQuery;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapplyVo;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapplyDetailsVo;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapplyDto;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapplyFeign;
/**
* Project: anrui-scm(单车返利核对) <br/>
* File: ScmVehrebateCheckapplyFeignFallback.java <br/>
@ -72,6 +65,13 @@ public class ScmVehrebateCheckapplyRest implements ScmVehrebateCheckapplyFeign {
@Autowired
private ScmVehrebateCheckapplydetailService scmVehrebateCheckapplydetailService;
@Override
public ResultBean rePushVoucher(String sid) {
ResultBean rb = ResultBean.fireFail();
scmVehrebateCheckapplyService.pushVehRebateWithVoucher(sid,"1");
return rb.success();
}
@Override
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")

25
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyService.java

@ -37,6 +37,7 @@ import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeig
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.fin.api.kingdee.costadjustmentsbill.CostAdjustmentsBill;
import com.yxt.anrui.fin.api.kingdee.voucher.GeneralVoucher;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
@ -478,8 +479,12 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba
GeneralVoucher generalVoucher = new GeneralVoucher();
generalVoucher.setBussDate(format);
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>();
CostAdjustmentsBill costAdjustmentsBill = new CostAdjustmentsBill();
costAdjustmentsBill.setBussDate(format);
List<CostAdjustmentsBill.CostAdjustmentsBillDetailDto> resultDetails = new ArrayList<>();
if (!v.isEmpty()) {
for (ScmVehRebate rebate : v) {
String useOrgCode = "";
String deptCode = ""; //采购系统部门编码
String salesDeptCode = ""; //销售部门编码
String customerCode = ""; //出库单客户编码
@ -493,6 +498,7 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba
if (null != vehicle) {
if (StringUtils.isNotBlank(vehicle.getManufacturerCode())) {
gysCode = vehicle.getManufacturerCode();
costAdjustmentsBill.setCommUnit(vehicle.getManufacturerCode());
}
vinCode = vehicle.getVinNo().substring(vehicle.getVinNo().length() - 8);
}
@ -518,6 +524,8 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
costAdjustmentsBill.setUseOrgCode(organizationVo.getOrgCode());
useOrgCode = organizationVo.getOrgCode();
}
}
@ -649,6 +657,19 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba
voucherDetails.add(voucherDetail2);
}
}
if (null != rebate.getDiffAmount()) {
BigDecimal esRebate = rebate.getDiffAmount();
if (esRebate.compareTo(BigDecimal.ZERO) != 0) {
CostAdjustmentsBill.CostAdjustmentsBillDetailDto dto = new CostAdjustmentsBill.CostAdjustmentsBillDetailDto();
dto.setCompanyCode(useOrgCode);
dto.setMaterialID(vinCode);
dto.setDeptCode(deptCode);
dto.setAmount(esRebate.negate().toString());
resultDetails.add(dto);
}
}
}
}
@ -728,6 +749,10 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba
generalVoucher.setVoucherDetails(voucherDetails);
finKingDeeFeign.saveRebateReviewVoucher(generalVoucher);
}
if (!resultDetails.isEmpty()) {
costAdjustmentsBill.setResultDetails(resultDetails);
finKingDeeFeign.pushCostAdjustmentsBill(costAdjustmentsBill);
}
}
});
}

15
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatewithapply/ScmVehRebateWithApplyRest.java

@ -29,23 +29,17 @@ import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.scm.api.flow.FlowTaskVo;
import com.yxt.anrui.scm.api.scmvehrebatewithapply.*;
import com.yxt.anrui.scm.api.scmvehrebatewithapply.flow.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.ibatis.annotations.Delete;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.yxt.anrui.scm.api.scmvehrebatewithapply.ScmVehRebateWithApply;
import com.yxt.anrui.scm.api.scmvehrebatewithapply.ScmVehRebateWithApplyQuery;
import com.yxt.anrui.scm.api.scmvehrebatewithapply.ScmVehRebateWithApplyVo;
import com.yxt.anrui.scm.api.scmvehrebatewithapply.ScmVehRebateWithApplyDetailsVo;
import com.yxt.anrui.scm.api.scmvehrebatewithapply.ScmVehRebateWithApplyDto;
import com.yxt.anrui.scm.api.scmvehrebatewithapply.ScmVehRebateWithApplyFeign;
/**
* Project: anrui-scm(单车返利预提申请) <br/>
@ -68,6 +62,13 @@ public class ScmVehRebateWithApplyRest implements ScmVehRebateWithApplyFeign {
@Autowired
private ScmVehRebateWithApplyService scmVehRebateWithApplyService;
@Override
public ResultBean rePushVoucher(String sid) {
ResultBean rb = ResultBean.fireFail();
scmVehRebateWithApplyService.pushVehRebateWithVoucher(sid);
return rb.success();
}
@Override
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")

43
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatewithapply/ScmVehRebateWithApplyService.java

@ -32,6 +32,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basevehicle.BaseVehicle;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.fin.api.kingdee.costadjustmentsbill.CostAdjustmentsBill;
import com.yxt.anrui.fin.api.kingdee.voucher.GeneralVoucher;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
@ -420,17 +421,25 @@ public class ScmVehRebateWithApplyService extends MybatisBaseService<ScmVehRebat
GeneralVoucher generalVoucher = new GeneralVoucher();
generalVoucher.setBussDate(format);
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>();
CostAdjustmentsBill costAdjustmentsBill = new CostAdjustmentsBill();
costAdjustmentsBill.setBussDate(format);
List<CostAdjustmentsBill.CostAdjustmentsBillDetailDto> resultDetails = new ArrayList<>();
if (!v.isEmpty()) {
for (ScmVehRebate rebate : v) {
String useOrgCode = "";
String vinCode = "";
String deptCode = "";
if (StringUtils.isNotBlank(rebate.getUseOrgSid())) {
String useOrgSid = rebate.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
costAdjustmentsBill.setUseOrgCode(organizationVo.getOrgCode());
useOrgCode = organizationVo.getOrgCode();
}
}
if (!rebate.getRebateTypeValue().equals("金融贴息")) {
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
if (StringUtils.isNotBlank(rebate.getUseOrgSid())) {
String useOrgSid = rebate.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
}
voucherDetail.setTimeFlag(finalSummaryTag);
String palceGenDate = rebate.getPalceGenDate();
String[] palceGenDateSplit = palceGenDate.split("-");
@ -443,12 +452,15 @@ public class ScmVehRebateWithApplyService extends MybatisBaseService<ScmVehRebat
SysOrganizationVo data = sysOrganizationFeign.fetchBySid(rebate.getPurchaseSystemSid()).getData();
if (null != data) {
voucherDetail.setDeptCode(data.getOrgCode()); //部门编码赋值
deptCode = data.getOrgCode();
}
BaseVehicle vehicle = baseVehicleFeign.fetchBySid(rebate.getVehSid()).getData();
if (null != vehicle) {
if (StringUtils.isNotBlank(vehicle.getManufacturerCode())) {
voucherDetail.setManufacturer(vehicle.getManufacturerCode());
costAdjustmentsBill.setCommUnit(vehicle.getManufacturerCode());
}
vinCode = vehicle.getVinNo().substring(vehicle.getVinNo().length() - 8);
}
voucherDetail.setCustomerCode("DZFCJFL");
if (null != rebate.getExpectTreatCost()) {
@ -457,12 +469,29 @@ public class ScmVehRebateWithApplyService extends MybatisBaseService<ScmVehRebat
voucherDetails.add(voucherDetail);
}
}
//添加成本调整单
if (StringUtils.isNotBlank(rebate.getEstimateRebate())) {
BigDecimal esRebate = new BigDecimal(rebate.getEstimateRebate());
if (esRebate.compareTo(BigDecimal.ZERO) != 0) {
CostAdjustmentsBill.CostAdjustmentsBillDetailDto dto = new CostAdjustmentsBill.CostAdjustmentsBillDetailDto();
dto.setCompanyCode(useOrgCode);
dto.setMaterialID(vinCode);
dto.setDeptCode(deptCode);
dto.setAmount(esRebate.negate().toString());
resultDetails.add(dto);
}
}
}
}
if (!voucherDetails.isEmpty()) {
generalVoucher.setVoucherDetails(voucherDetails);
finKingDeeFeign.saveRebatePrepareVoucher(generalVoucher);
}
if (!resultDetails.isEmpty()) {
costAdjustmentsBill.setResultDetails(resultDetails);
finKingDeeFeign.pushCostAdjustmentsBill(costAdjustmentsBill);
}
}
});
}

Loading…
Cancel
Save