Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
fanzongzhe0036 5 months ago
parent
commit
a7f9b738f1
  1. 24
      anrui-buscenter/anrui-finmanage-ui/src/api/anruifinmanagement/payment.js
  2. 207
      anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/paymentAdd.vue
  3. 65
      anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/paymentInfo.vue
  4. 168
      anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/relation/top.vue
  5. 174
      anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/relation/trailerCar.vue
  6. 61
      anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/fukuanguanliFlow/fukuanguanli/fukuanDaiBanInfo.vue
  7. 201
      anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/fukuanguanliFlow/fukuanguanli/fukuanEdit.vue
  8. 59
      anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/fukuanguanliFlow/fukuanguanli/fukuanYiBanInfo.vue
  9. 168
      anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/fukuanguanliFlow/fukuanguanli/relation/top.vue
  10. 174
      anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/fukuanguanliFlow/fukuanguanli/relation/trailerCar.vue
  11. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentapply/FinPaymentapplyService.java
  12. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java
  13. 158
      anrui-fin/anrui-fin-biz/src/main/resources/ftl/prePaymentApply.ftl
  14. 3
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java
  15. 26
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/OaSysOrganizationVo.java
  16. 6
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeign.java
  17. 5
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeignFallback.java
  18. 6
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationMapper.java
  19. 66
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationMapper.xml
  20. 52
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationRest.java
  21. 44
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationService.java
  22. 12
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateQuery.java
  23. 7
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapplydetail/ScmVehrebateCheckapplydetailFeign.java
  24. 5
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapplydetail/ScmVehrebateCheckapplydetailFeignFallback.java
  25. 4
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java
  26. 5
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapplydetail/ScmVehrebateCheckapplydetailRest.java
  27. 15
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapplydetail/ScmVehrebateCheckapplydetailService.java
  28. 1
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatewith/ScmVehRebateWithService.java
  29. 3
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormDto.java

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

@ -10,12 +10,30 @@ export default {
headers: { 'Content-Type': 'application/json' }
})
},
// 查询分页列表
pageList: function(params) {
// 查询分页列表 -- 选择主车车辆
pageList: function(data) {
return request({
url: '/base/v1/basevehicle/selectPayVehicleList',
method: 'post',
data: params,
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
// 查询分页列表 -- 选择挂车
trailerApply: function(data) {
return request({
url: '/base/v1/basetrailer/payApply',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
// 查询分页列表 -- 选择上装
topApply: function(data) {
return request({
url: '/base/v1/basevehinstall/payApply',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},

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

@ -54,7 +54,7 @@
<el-col :span="6">
<div class="span-sty"><span class="icon">*</span>是否涉及车辆</div>
<el-form-item prop="isVeh">
<el-radio-group class="addinputInfo" v-model="formobj.isVeh">
<el-radio-group :disabled="formobj.costTypeKey !== '001' && formobj.costTypeKey !== ''" class="addinputInfo" v-model="formobj.isVeh">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
@ -204,12 +204,67 @@
</el-table-column>
</el-table>
</div>
<div v-show="formobj.costTypeKey == '002'"><!-- 款项类别为挂车采购时显示 -->
<div class="title titleOne">
<div>挂车列表</div>
<el-button type="primary" size="mini" icon="el-icon-plus" class="btntopblueline" @click="trailerSelect()">选择</el-button>
</div>
<el-table :key="trailerKey" :data="formobj.trailerList" :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 fixed label="操作" width="100" align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" @click="trailerDelete(scope.$index)">删除</el-button>
</template>
</el-table-column>
<el-table-column prop="trailerTypeValue" label="挂车名称" align="center" min-width="180" />
<el-table-column prop="size" label="外观尺寸" align="center" width="160" />
<el-table-column prop="vinNo" label="车架号" align="center" width="100" />
<el-table-column prop="color" label="箱体颜色" align="center" width="100" />
<el-table-column prop="costPrice" label="厂家结算价" align="center" width="130" />
<el-table-column prop="brandName" label="主车品牌" align="center" width="110" />
<el-table-column prop="vehModel" label="主车车型" align="center" width="100" />
<el-table-column prop="zcVinNo" label="主车车架号" align="center" width="120" />
<el-table-column label="合同/销售订单编号" align="center" width="180">
<template slot-scope="scope">
<span>{{ scope.row.contractNo }}/{{ scope.row.saleOrderNo }}</span>
</template>
</el-table-column>
<el-table-column prop="customerName" label="客户名称" align="center" width="120" />
<el-table-column prop="payType" label="销售类型" align="center" width="150" />
</el-table>
</div>
<div v-show="formobj.costTypeKey == '003'"><!-- 款项类别为上装采购时显示 -->
<div class="title titleOne">
<div>上装列表</div>
<el-button type="primary" size="mini" icon="el-icon-plus" class="btntopblueline" @click="topSelect()">选择</el-button>
</div>
<el-table :key="topKey" :data="formobj.topList" :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 fixed label="操作" width="100" align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" @click="topDelete(scope.$index)">删除</el-button>
</template>
</el-table-column>
<el-table-column prop="installNameValue" label="上装/上装配置名称" align="center" min-width="180" />
<el-table-column prop="size" label="货箱内部尺寸" align="center" width="160" />
<el-table-column prop="vinNo" label="车架号" align="center" width="100" />
<el-table-column prop="color" label="箱体颜色" align="center" width="100" />
<el-table-column prop="costPrice" label="厂家结算价" align="center" width="130" />
<el-table-column prop="brandName" label="主车品牌" align="center" width="110" />
<el-table-column prop="vehModel" label="主车车型" align="center" width="100" />
<el-table-column label="合同/销售订单编号" align="center" width="180">
<template slot-scope="scope">
<span>{{ scope.row.contractNo }}/{{ scope.row.saleOrderNo }}</span>
</template>
</el-table-column>
<el-table-column prop="customerName" label="客户名称" align="center" width="120" />
<el-table-column prop="payType" label="销售类型" align="center" width="150" />
</el-table>
</div>
</el-form>
</div>
</div>
<!--End 添加修改部分-->
<!-- 主车车辆列表选择车辆 -->
<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">
@ -244,6 +299,12 @@
<el-button size="small" @click="paymentClose">关闭</el-button>
</div>
</el-dialog>
<!-- 主车车辆列表选择车辆 -->
<vehcile v-show="viewState == 2" ref="divVehicle" @backData="backData" @doback="resetState" />
<!-- 挂车列表选择车辆 -->
<trailerCar v-show="viewState == 6" ref="divTrailer" @backData="backTrailer" @doback="resetState" />
<!-- 上装列表选择车辆 -->
<top v-show="viewState == 7" ref="divTop" @backData="backTop" @doback="resetState" />
<!-- 关联付款信息新增 -->
<paymentInformationAdd v-show="viewState == 3" ref="divPaymentInformation" @backInformation="backInformation" @doback="resetStateByInformation" />
<!-- 关联付款信息详情 -->
@ -257,6 +318,8 @@
import req from '@/api/anruifinmanagement/payment'
import { typeValues, getOrgSidByPath, getInvoicingList, brandDown, selectNameByOrg, getTypeValueList } from '@/api/jichuxinxi/dictcommons'
import vehcile from './relation/vehcile'
import trailerCar from './relation/trailerCar'
import top from './relation/top'
import paymentInformationAdd from './relation/paymentInformationAdd'
import paymentInformationInfo from './relation/paymentInformationInfo'
import tops from '@/components/publicPage/tops'
@ -265,6 +328,8 @@ export default {
name: 'PaymentAdd',
components: {
vehcile,
trailerCar,
top,
paymentInformationAdd,
paymentInformationInfo,
tops
@ -277,6 +342,8 @@ export default {
tableKey: 0,
vehicleKey: 1,
paymentKey: 2,
trailerKey: 3,
topKey: 4,
index: 0,
carBrand_list: [],
costRange_list: [],
@ -312,8 +379,10 @@ export default {
carBrandSid: '', // sid
carBrandName: '', //
orgSidPath: '',
detailsList: [],
vehicleList: []
detailsList: [], //
vehicleList: [], //
trailerList: [], //
topList: [] //
},
rules: {
carBrandName: [{ required: true, message: '品牌不能为空', trigger: 'change' }],
@ -452,8 +521,12 @@ export default {
const choose = this.costType_list.filter((item) => item.dictValue === value)
if (choose.length > 0 && choose !== null) {
this.formobj.costTypeKey = choose[0].dictKey
if (this.formobj.costTypeKey !== '001') {
this.formobj.isVeh = '0'
}
} else {
this.formobj.costTypeKey = ''
this.formobj.isVeh = ''
}
},
changePayCompany(value) {
@ -489,6 +562,35 @@ export default {
handleDelete(index) {
this.formobj.detailsList.splice(index, 1)
},
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) {
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) {
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].accountName
row.bank = choose[0].depositBank
row.receivingAccount = choose[0].bankAccount
} else {
row.actualPay = ''
row.bank = ''
row.receivingAccount = ''
}
},
handleAddPayment(row, index) {
if (row.paymentType === '') {
this.$message({ showClose: true, type: 'error', message: '付款方式不能为空' })
@ -620,33 +722,64 @@ export default {
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 = ''
}
trailerSelect() {
this.viewState = 6
this.$refs['divTrailer'].showData(this.formobj.trailerList, this.formobj.useOrgSid)
},
changePaymentType(value, row) {
const choose = this.payment_list.filter((item) => item.dictValue === value)
if (choose.length > 0 && choose !== null) {
row.paymentTypeKey = choose[0].dictKey
} else {
row.paymentTypeKey = ''
trailerDelete(index) {
this.formobj.trailerList.splice(index, 1)
},
backTrailer(value) {
this.viewState = 1
value = JSON.parse(JSON.stringify(value))
if (value.length > 0) {
value.forEach((e) => {
this.formobj.trailerList.push({
trailerTypeValue: e.trailerTypeValue, //
size: e.size, //
vinNo: e.vinNo, //
trailerSid: e.trailerSid, // sid
color: e.color, //
costPrice: e.costPrice, //
brandName: e.brandName, //
vehModel: e.vehModel, //
zcVinNo: e.zcVinNo, //
contractNo: e.contractNo, //
saleOrderNo: e.saleOrderNo, //
customerName: e.customerName, //
payType: e.payType //
})
})
}
},
changeActualPay(value, row) {
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].accountName
row.bank = choose[0].depositBank
row.receivingAccount = choose[0].bankAccount
} else {
row.actualPay = ''
row.bank = ''
row.receivingAccount = ''
topSelect() {
this.viewState = 7
this.$refs['divTop'].showData(this.formobj.topList, this.formobj.useOrgSid)
},
topDelete(index) {
this.formobj.topList.splice(index, 1)
},
backTop(value) {
this.viewState = 1
value = JSON.parse(JSON.stringify(value))
if (value.length > 0) {
value.forEach((e) => {
this.formobj.topList.push({
installNameValue: e.installNameValue, //
topSid: e.topSid, // sid
size: e.size, //
vinNo: e.vinNo, //
vehiSid: e.vehiSid, // sid
color: e.color, //
costPrice: e.costPrice, //
brandName: e.brandName, //
vehModel: e.vehModel, //
contractNo: e.contractNo, //
saleOrderNo: e.saleOrderNo, //
customerName: e.customerName, //
payType: e.payType //
})
})
}
},
saveOrUpdate() {
@ -745,6 +878,16 @@ export default {
}, 0)
sums[index] += ''
this.formobj.carTotal = sums[index] += ''
} else if (column.property === 'costPrice') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
}
})
return sums
@ -781,8 +924,10 @@ export default {
carBrandSid: '', // sid
carBrandName: '', //
orgSidPath: '',
detailsList: [],
vehicleList: []
detailsList: [], //
vehicleList: [], //
trailerList: [], //
topList: [] //
}
this.submitdisabled = false
this.$refs['form_obj'].resetFields()

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

@ -121,6 +121,47 @@
</el-table-column>
</el-table>
</div>
<div v-show="formobj.costTypeKey == '002'"><!-- 款项类别为挂车采购时显示 -->
<div class="title">挂车列表</div>
<el-table :key="trailerKey" :data="formobj.trailerList" :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="trailerTypeValue" label="挂车名称" align="center" min-width="180" />
<el-table-column prop="size" label="外观尺寸" align="center" width="160" />
<el-table-column prop="vinNo" label="车架号" align="center" width="100" />
<el-table-column prop="color" label="箱体颜色" align="center" width="100" />
<el-table-column prop="costPrice" label="厂家结算价" align="center" width="130" />
<el-table-column prop="brandName" label="主车品牌" align="center" width="110" />
<el-table-column prop="vehModel" label="主车车型" align="center" width="100" />
<el-table-column prop="zcVinNo" label="主车车架号" align="center" width="120" />
<el-table-column label="合同/销售订单编号" align="center" width="180">
<template slot-scope="scope">
<span>{{ scope.row.contractNo }}/{{ scope.row.saleOrderNo }}</span>
</template>
</el-table-column>
<el-table-column prop="customerName" label="客户名称" align="center" width="120" />
<el-table-column prop="payType" label="销售类型" align="center" width="150" />
</el-table>
</div>
<div v-show="formobj.costTypeKey == '003'"><!-- 款项类别为上装采购时显示 -->
<div class="title">上装列表</div>
<el-table :key="topKey" :data="formobj.topList" :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="installNameValue" label="上装/上装配置名称" align="center" min-width="180" />
<el-table-column prop="size" label="货箱内部尺寸" align="center" width="160" />
<el-table-column prop="vinNo" label="车架号" align="center" width="100" />
<el-table-column prop="color" label="箱体颜色" align="center" width="100" />
<el-table-column prop="costPrice" label="厂家结算价" align="center" width="130" />
<el-table-column prop="brandName" label="主车品牌" align="center" width="110" />
<el-table-column prop="vehModel" label="主车车型" align="center" width="100" />
<el-table-column label="合同/销售订单编号" align="center" width="180">
<template slot-scope="scope">
<span>{{ scope.row.contractNo }}/{{ scope.row.saleOrderNo }}</span>
</template>
</el-table-column>
<el-table-column prop="customerName" label="客户名称" align="center" width="120" />
<el-table-column prop="payType" label="销售类型" align="center" width="150" />
</el-table>
</div>
</el-form>
</div>
</div>
@ -179,6 +220,8 @@ export default {
tableKey: 0,
vehicleKey: 1,
paymentKey: 2,
trailerKey: 3,
topKey: 4,
index: 0,
formobj: {
billNo: '', //
@ -207,8 +250,10 @@ export default {
carBrandSid: '', // sid
carBrandName: '', //
orgSidPath: '',
detailsList: [],
vehicleList: []
detailsList: [], //
vehicleList: [], //
trailerList: [], //
topList: [] //
},
rules: {},
paymentVisible: false, // --
@ -300,6 +345,16 @@ export default {
}, 0)
sums[index] += ''
this.formobj.carTotal = sums[index] += ''
} else if (column.property === 'costPrice') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
}
})
return sums
@ -335,8 +390,10 @@ export default {
carBrandSid: '', // sid
carBrandName: '', //
orgSidPath: '',
detailsList: [],
vehicleList: []
detailsList: [], //
vehicleList: [], //
trailerList: [], //
topList: [] //
}
this.$refs['form_obj'].resetFields()
this.$emit('doback')

168
anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/relation/top.vue

@ -0,0 +1,168 @@
<template>
<div class="app-container">
<div>
<div class="tab-header webtop">
<div>选择上装页面</div>
<div>
<el-button type="primary" size="small" @click="handleConfirm">确定</el-button>
<el-button type="info" size="small" @click="handleColse()">关闭</el-button>
</div>
</div>
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-form-item label="上装名称">
<el-input v-model="listQuery.params.installNameValue" placeholder="" clearable />
</el-form-item>
<el-form-item label="车架号">
<el-input v-model="listQuery.params.vinNo" placeholder="" clearable />
</el-form-item>
<el-form-item label="客户名称">
<el-input v-model="listQuery.params.customerName" placeholder="" clearable />
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" @click="handleFilter" size="small">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="handleReset" size="small">重置</el-button>
</div>
</div>
</div>
<div class="listtop">
<div class="tit">上装列表</div>
</div>
<div class="">
<el-table :key="tableKey" ref="multipleTable" v-loading="listLoading" :data="list" border style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column width="50" type="selection" align="center"/>
<el-table-column width="80" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column prop="installNameValue" label="上装名称" align="center" />
<el-table-column prop="vinNo" label="车架号" align="center" />
<el-table-column prop="brandName" label="主车品牌" align="center" />
<el-table-column prop="customerName" label="客户名称" align="center" />
</el-table>
</div>
<div class="pages">
<div class="tit"/>
<!-- 翻页 -->
<Pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
</div>
</div>
</div>
</template>
<script>
import Pagination from '@/components/pagination'
import req from '@/api/anruifinmanagement/payment'
export default {
name: 'Top',
components: {
Pagination
},
data() {
return {
isSearchShow: false,
searchxianshitit: '隐藏查询条件',
tableKey: 0,
sids: [],
list: [],
multipleSelection: [],
listLoading: false,
listQuery: {
current: 1,
size: 5,
params: {
installNameValue: '',
useOrgSid: '',
vinNo: '',
customerName: '',
sids: []
},
total: 0
}
}
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
handleSelectionChange(row) {
this.multipleSelection = row
},
showData(value, useOrgSid) {
const aa = []
if (value.length > 0) {
for (var i = 0; i < value.length; i++) {
aa.push(value[i].topSid)
}
this.listQuery.params.sids = aa
} else {
this.listQuery.params.sids = []
}
this.listQuery.params.useOrgSid = useOrgSid
this.handleReset()
},
//
getList() {
this.listLoading = true
req.topApply(this.listQuery).then((response) => {
this.listLoading = false
if (response.success) {
this.listQuery.total = response.data.total
this.list = response.data.records
} else {
this.listQuery.total = 0
this.list = []
}
})
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
//
handleReset() {
this.listQuery.current = 1
this.listQuery.size = 5
this.listQuery.total = 0
this.listQuery.params.installNameValue = ''
this.listQuery.params.vinNo = ''
this.listQuery.params.customerName = ''
this.getList()
},
//
handleConfirm() {
if (this.multipleSelection.length > 0) {
this.listQuery.params.useOrgSid = ''
this.listQuery.params.sids = []
this.$emit('backData', this.multipleSelection)
} else {
this.$notify({ title: '提示', message: '请选择至少一条记录!', type: 'error', duration: 2000 })
}
},
//
handleColse() {
this.listQuery.params.useOrgSid = ''
this.listQuery.params.sids = []
this.$emit('doback')
}
}
}
</script>
<style scoped>
</style>

174
anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/relation/trailerCar.vue

@ -0,0 +1,174 @@
<template>
<div class="app-container">
<div>
<div class="tab-header webtop">
<div>选择挂车页面</div>
<div>
<el-button type="primary" size="small" @click="handleConfirm">确定</el-button>
<el-button type="info" size="small" @click="handleColse()">关闭</el-button>
</div>
</div>
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-form-item label="挂车名称">
<el-input v-model="listQuery.params.trailerTypeValue" placeholder="" clearable />
</el-form-item>
<el-form-item label="挂车车架号">
<el-input v-model="listQuery.params.vinNo" placeholder="" clearable />
</el-form-item>
<el-form-item label="主车车架号">
<el-input v-model="listQuery.params.zcVinNo" placeholder="" clearable />
</el-form-item>
<el-form-item label="客户名称">
<el-input v-model="listQuery.params.customerName" placeholder="" clearable />
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" @click="handleFilter" size="small">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="handleReset" size="small">重置</el-button>
</div>
</div>
</div>
<div class="listtop">
<div class="tit">挂车列表</div>
</div>
<div class="">
<el-table :key="tableKey" ref="multipleTable" v-loading="listLoading" :data="list" border style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column width="50" type="selection" align="center"/>
<el-table-column width="80" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column prop="trailerTypeValue" label="挂车名称" align="center" />
<el-table-column prop="vinNo" label="挂车车架号" align="center" />
<el-table-column prop="brandName" label="主车品牌" align="center" />
<el-table-column prop="zcVinNo" label="主车车架号" align="center" />
<el-table-column prop="customerName" label="客户名称" align="center" />
</el-table>
</div>
<div class="pages">
<div class="tit"/>
<!-- 翻页 -->
<Pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
</div>
</div>
</div>
</template>
<script>
import Pagination from '@/components/pagination'
import req from '@/api/anruifinmanagement/payment'
export default {
name: 'TrailerCar',
components: {
Pagination
},
data() {
return {
isSearchShow: false,
searchxianshitit: '隐藏查询条件',
tableKey: 0,
sids: [],
list: [],
multipleSelection: [],
listLoading: false,
listQuery: {
current: 1,
size: 5,
params: {
trailerTypeValue: '',
useOrgSid: '',
vinNo: '',
zcVinNo: '',
customerName: '',
sids: []
},
total: 0
}
}
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
handleSelectionChange(row) {
this.multipleSelection = row
},
showData(value, useOrgSid) {
const aa = []
if (value.length > 0) {
for (var i = 0; i < value.length; i++) {
aa.push(value[i].trailerSid)
}
this.listQuery.params.sids = aa
} else {
this.listQuery.params.sids = []
}
this.listQuery.params.useOrgSid = useOrgSid
this.handleReset()
},
//
getList() {
this.listLoading = true
req.trailerApply(this.listQuery).then((response) => {
this.listLoading = false
if (response.success) {
this.listQuery.total = response.data.total
this.list = response.data.records
} else {
this.listQuery.total = 0
this.list = []
}
})
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
//
handleReset() {
this.listQuery.current = 1
this.listQuery.size = 5
this.listQuery.total = 0
this.listQuery.params.trailerTypeValue = ''
this.listQuery.params.vinNo = ''
this.listQuery.params.zcVinNo = ''
this.listQuery.params.customerName = ''
this.getList()
},
//
handleConfirm() {
if (this.multipleSelection.length > 0) {
this.listQuery.params.useOrgSid = ''
this.listQuery.params.sids = []
this.$emit('backData', this.multipleSelection)
} else {
this.$notify({ title: '提示', message: '请选择至少一条记录!', type: 'error', duration: 2000 })
}
},
//
handleColse() {
this.listQuery.params.useOrgSid = ''
this.listQuery.params.sids = []
this.$emit('doback')
}
}
}
</script>
<style scoped>
</style>

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

@ -123,6 +123,47 @@
</el-table-column>
</el-table>
</div>
<div v-show="formobj.costTypeKey == '002'"><!-- 款项类别为挂车采购时显示 -->
<div class="title">挂车列表</div>
<el-table :key="trailerKey" :data="formobj.trailerList" :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="trailerTypeValue" label="挂车名称" align="center" min-width="180" />
<el-table-column prop="size" label="外观尺寸" align="center" width="160" />
<el-table-column prop="vinNo" label="车架号" align="center" width="100" />
<el-table-column prop="color" label="箱体颜色" align="center" width="100" />
<el-table-column prop="costPrice" label="厂家结算价" align="center" width="130" />
<el-table-column prop="brandName" label="主车品牌" align="center" width="110" />
<el-table-column prop="vehModel" label="主车车型" align="center" width="100" />
<el-table-column prop="zcVinNo" label="主车车架号" align="center" width="120" />
<el-table-column label="合同/销售订单编号" align="center" width="180">
<template slot-scope="scope">
<span>{{ scope.row.contractNo }}/{{ scope.row.saleOrderNo }}</span>
</template>
</el-table-column>
<el-table-column prop="customerName" label="客户名称" align="center" width="120" />
<el-table-column prop="payType" label="销售类型" align="center" width="150" />
</el-table>
</div>
<div v-show="formobj.costTypeKey == '003'"><!-- 款项类别为上装采购时显示 -->
<div class="title">上装列表</div>
<el-table :key="topKey" :data="formobj.topList" :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="installNameValue" label="上装/上装配置名称" align="center" min-width="180" />
<el-table-column prop="size" label="货箱内部尺寸" align="center" width="160" />
<el-table-column prop="vinNo" label="车架号" align="center" width="100" />
<el-table-column prop="color" label="箱体颜色" align="center" width="100" />
<el-table-column prop="costPrice" label="厂家结算价" align="center" width="130" />
<el-table-column prop="brandName" label="主车品牌" align="center" width="110" />
<el-table-column prop="vehModel" label="主车车型" align="center" width="100" />
<el-table-column label="合同/销售订单编号" align="center" width="180">
<template slot-scope="scope">
<span>{{ scope.row.contractNo }}/{{ scope.row.saleOrderNo }}</span>
</template>
</el-table-column>
<el-table-column prop="customerName" label="客户名称" align="center" width="120" />
<el-table-column prop="payType" label="销售类型" align="center" width="150" />
</el-table>
</div>
</el-form>
</div>
</div>
@ -203,6 +244,8 @@ export default {
tableKey: 0,
vehicleKey: 1,
paymentKey: 2,
trailerKey: 3,
topKey: 4,
index: 0,
formobj: {
billNo: '', //
@ -231,8 +274,10 @@ export default {
carBrandSid: '', // sid
carBrandName: '', //
orgSidPath: '',
detailsList: [],
vehicleList: []
detailsList: [], //
vehicleList: [], //
trailerList: [], //
topList: [] //
},
rules: {},
paymentVisible: false, // --
@ -377,6 +422,16 @@ export default {
}, 0)
sums[index] += ''
this.formobj.carTotal = sums[index] += ''
} else if (column.property === 'costPrice') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
}
})
return sums
@ -389,7 +444,7 @@ export default {
this.operation = val
this.currentLink = true
this.dialogList.comment = '同意'
req.getNextNodesForSubmit({ taskDefKey: this.current.taskDefKe, businessSid: this.linkByParameter.businessSid }).then((resp) => {
req.getNextNodesForSubmit({ taskDefKey: this.current.taskDefKey, businessSid: this.linkByParameter.businessSid }).then((resp) => {
if (resp.success) {
var arr = resp.data
this.nextNode = arr[0]

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

@ -53,7 +53,7 @@
<el-col :span="6">
<div class="span-sty"><span class="icon">*</span>是否涉及车辆</div>
<el-form-item prop="isVeh">
<el-radio-group class="addinputInfo" v-model="formobj.isVeh">
<el-radio-group :disabled="formobj.costTypeKey !== '001' && formobj.costTypeKey !== ''" class="addinputInfo" v-model="formobj.isVeh">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
@ -203,12 +203,67 @@
</el-table-column>
</el-table>
</div>
<div v-show="formobj.costTypeKey == '002'"><!-- 款项类别为挂车采购时显示 -->
<div class="title titleOne">
<div>挂车列表</div>
<el-button type="primary" size="mini" icon="el-icon-plus" class="btntopblueline" @click="trailerSelect()">选择</el-button>
</div>
<el-table :key="trailerKey" :data="formobj.trailerList" :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 fixed label="操作" width="100" align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" @click="trailerDelete(scope.$index)">删除</el-button>
</template>
</el-table-column>
<el-table-column prop="trailerTypeValue" label="挂车名称" align="center" min-width="180" />
<el-table-column prop="size" label="外观尺寸" align="center" width="160" />
<el-table-column prop="vinNo" label="车架号" align="center" width="100" />
<el-table-column prop="color" label="箱体颜色" align="center" width="100" />
<el-table-column prop="costPrice" label="厂家结算价" align="center" width="130" />
<el-table-column prop="brandName" label="主车品牌" align="center" width="110" />
<el-table-column prop="vehModel" label="主车车型" align="center" width="100" />
<el-table-column prop="zcVinNo" label="主车车架号" align="center" width="120" />
<el-table-column label="合同/销售订单编号" align="center" width="180">
<template slot-scope="scope">
<span>{{ scope.row.contractNo }}/{{ scope.row.saleOrderNo }}</span>
</template>
</el-table-column>
<el-table-column prop="customerName" label="客户名称" align="center" width="120" />
<el-table-column prop="payType" label="销售类型" align="center" width="150" />
</el-table>
</div>
<div v-show="formobj.costTypeKey == '003'"><!-- 款项类别为上装采购时显示 -->
<div class="title titleOne">
<div>上装列表</div>
<el-button type="primary" size="mini" icon="el-icon-plus" class="btntopblueline" @click="topSelect()">选择</el-button>
</div>
<el-table :key="topKey" :data="formobj.topList" :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 fixed label="操作" width="100" align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" @click="topDelete(scope.$index)">删除</el-button>
</template>
</el-table-column>
<el-table-column prop="installNameValue" label="上装/上装配置名称" align="center" min-width="180" />
<el-table-column prop="size" label="货箱内部尺寸" align="center" width="160" />
<el-table-column prop="vinNo" label="车架号" align="center" width="100" />
<el-table-column prop="color" label="箱体颜色" align="center" width="100" />
<el-table-column prop="costPrice" label="厂家结算价" align="center" width="130" />
<el-table-column prop="brandName" label="主车品牌" align="center" width="110" />
<el-table-column prop="vehModel" label="主车车型" align="center" width="100" />
<el-table-column label="合同/销售订单编号" align="center" width="180">
<template slot-scope="scope">
<span>{{ scope.row.contractNo }}/{{ scope.row.saleOrderNo }}</span>
</template>
</el-table-column>
<el-table-column prop="customerName" label="客户名称" align="center" width="120" />
<el-table-column prop="payType" label="销售类型" align="center" width="150" />
</el-table>
</div>
</el-form>
</div>
</div>
<!--End 添加修改部分-->
<!-- 主车车辆列表选择车辆 -->
<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">
@ -243,6 +298,12 @@
<el-button size="small" @click="paymentClose">关闭</el-button>
</div>
</el-dialog>
<!-- 主车车辆列表选择车辆 -->
<vehcile v-show="viewState == 2" ref="divVehicle" @backData="backData" @doback="resetState"/>
<!-- 挂车列表选择车辆 -->
<trailerCar v-show="viewState == 6" ref="divTrailer" @backData="backTrailer" @doback="resetState" />
<!-- 上装列表选择车辆 -->
<top v-show="viewState == 7" ref="divTop" @backData="backTop" @doback="resetState" />
<!-- 关联付款信息新增 -->
<paymentInformationAdd v-show="viewState == 3" ref="divPaymentInformation" @backInformation="backInformation" @doback="resetStateByInformation" />
<!-- 关联付款信息详情 -->
@ -256,6 +317,8 @@
import req from '@/api/anruifinmanagement/payment'
import { typeValues, brandDown, selectNameByOrg, getInvoicingList, getTypeValueList } from '@/api/jichuxinxi/dictcommons'
import vehcile from './relation/vehcile'
import trailerCar from './relation/trailerCar'
import top from './relation/top'
import paymentInformationAdd from './relation/paymentInformationAdd'
import paymentInformationInfo from './relation/paymentInformationInfo'
import tops from '@/views/workFlow/publicPage/tops'
@ -264,6 +327,8 @@ export default {
name: 'FuKuanEdit',
components: {
vehcile,
trailerCar,
top,
paymentInformationAdd,
paymentInformationInfo,
tops
@ -276,6 +341,8 @@ export default {
tableKey: 0,
vehicleKey: 1,
paymentKey: 2,
trailerKey: 3,
topKey: 4,
index: 0,
carBrand_list: [],
costRange_list: [],
@ -311,8 +378,10 @@ export default {
carBrandSid: '', // sid
carBrandName: '', //
orgSidPath: '',
detailsList: [],
vehicleList: []
detailsList: [], //
vehicleList: [], //
trailerList: [], //
topList: [] //
},
rules: {
carBrandName: [{ required: true, message: '品牌不能为空', trigger: 'change' }],
@ -443,8 +512,12 @@ export default {
const choose = this.costType_list.filter((item) => item.dictValue === value)
if (choose.length > 0 && choose !== null) {
this.formobj.costTypeKey = choose[0].dictKey
if (this.formobj.costTypeKey !== '001') {
this.formobj.isVeh = '0'
}
} else {
this.formobj.costTypeKey = ''
this.formobj.isVeh = ''
}
},
changePayCompany(value) {
@ -480,6 +553,35 @@ export default {
handleDelete(index) {
this.formobj.detailsList.splice(index, 1)
},
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) {
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) {
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].accountName
row.bank = choose[0].depositBank
row.receivingAccount = choose[0].bankAccount
} else {
row.actualPay = ''
row.bank = ''
row.receivingAccount = ''
}
},
handleAddPayment(row, index) {
if (row.paymentType === '') {
this.$message({ showClose: true, type: 'error', message: '付款方式不能为空' })
@ -611,33 +713,64 @@ export default {
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 = ''
}
trailerSelect() {
this.viewState = 6
this.$refs['divTrailer'].showData(this.formobj.trailerList, this.formobj.useOrgSid)
},
changePaymentType(value, row) {
const choose = this.payment_list.filter((item) => item.dictValue === value)
if (choose.length > 0 && choose !== null) {
row.paymentTypeKey = choose[0].dictKey
} else {
row.paymentTypeKey = ''
trailerDelete(index) {
this.formobj.trailerList.splice(index, 1)
},
backTrailer(value) {
this.viewState = 1
value = JSON.parse(JSON.stringify(value))
if (value.length > 0) {
value.forEach((e) => {
this.formobj.trailerList.push({
trailerTypeValue: e.trailerTypeValue, //
size: e.size, //
vinNo: e.vinNo, //
trailerSid: e.trailerSid, // sid
color: e.color, //
costPrice: e.costPrice, //
brandName: e.brandName, //
vehModel: e.vehModel, //
zcVinNo: e.zcVinNo, //
contractNo: e.contractNo, //
saleOrderNo: e.saleOrderNo, //
customerName: e.customerName, //
payType: e.payType //
})
})
}
},
changeActualPay(value, row) {
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].accountName
row.bank = choose[0].depositBank
row.receivingAccount = choose[0].bankAccount
} else {
row.actualPay = ''
row.bank = ''
row.receivingAccount = ''
topSelect() {
this.viewState = 7
this.$refs['divTop'].showData(this.formobj.topList, this.formobj.useOrgSid)
},
topDelete(index) {
this.formobj.topList.splice(index, 1)
},
backTop(value) {
this.viewState = 1
value = JSON.parse(JSON.stringify(value))
if (value.length > 0) {
value.forEach((e) => {
this.formobj.topList.push({
installNameValue: e.installNameValue, //
topSid: e.topSid, // sid
size: e.size, //
vinNo: e.vinNo, //
vehiSid: e.vehiSid, // sid
color: e.color, //
costPrice: e.costPrice, //
brandName: e.brandName, //
vehModel: e.vehModel, //
contractNo: e.contractNo, //
saleOrderNo: e.saleOrderNo, //
customerName: e.customerName, //
payType: e.payType //
})
})
}
},
saveOrUpdate() {
@ -750,6 +883,16 @@ export default {
}, 0)
sums[index] += ''
this.formobj.carTotal = sums[index] += ''
} else if (column.property === 'costPrice') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
}
})
return sums

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

@ -121,6 +121,47 @@
</el-table-column>
</el-table>
</div>
<div v-show="formobj.costTypeKey == '002'"><!-- 款项类别为挂车采购时显示 -->
<div class="title">挂车列表</div>
<el-table :key="trailerKey" :data="formobj.trailerList" :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="trailerTypeValue" label="挂车名称" align="center" min-width="180" />
<el-table-column prop="size" label="外观尺寸" align="center" width="160" />
<el-table-column prop="vinNo" label="车架号" align="center" width="100" />
<el-table-column prop="color" label="箱体颜色" align="center" width="100" />
<el-table-column prop="costPrice" label="厂家结算价" align="center" width="130" />
<el-table-column prop="brandName" label="主车品牌" align="center" width="110" />
<el-table-column prop="vehModel" label="主车车型" align="center" width="100" />
<el-table-column prop="zcVinNo" label="主车车架号" align="center" width="120" />
<el-table-column label="合同/销售订单编号" align="center" width="180">
<template slot-scope="scope">
<span>{{ scope.row.contractNo }}/{{ scope.row.saleOrderNo }}</span>
</template>
</el-table-column>
<el-table-column prop="customerName" label="客户名称" align="center" width="120" />
<el-table-column prop="payType" label="销售类型" align="center" width="150" />
</el-table>
</div>
<div v-show="formobj.costTypeKey == '003'"><!-- 款项类别为上装采购时显示 -->
<div class="title">上装列表</div>
<el-table :key="topKey" :data="formobj.topList" :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="installNameValue" label="上装/上装配置名称" align="center" min-width="180" />
<el-table-column prop="size" label="货箱内部尺寸" align="center" width="160" />
<el-table-column prop="vinNo" label="车架号" align="center" width="100" />
<el-table-column prop="color" label="箱体颜色" align="center" width="100" />
<el-table-column prop="costPrice" label="厂家结算价" align="center" width="130" />
<el-table-column prop="brandName" label="主车品牌" align="center" width="110" />
<el-table-column prop="vehModel" label="主车车型" align="center" width="100" />
<el-table-column label="合同/销售订单编号" align="center" width="180">
<template slot-scope="scope">
<span>{{ scope.row.contractNo }}/{{ scope.row.saleOrderNo }}</span>
</template>
</el-table-column>
<el-table-column prop="customerName" label="客户名称" align="center" width="120" />
<el-table-column prop="payType" label="销售类型" align="center" width="150" />
</el-table>
</div>
</el-form>
</div>
</div>
@ -178,6 +219,8 @@ export default {
tableKey: 0,
vehicleKey: 1,
paymentKey: 2,
trailerKey: 3,
topKey: 4,
index: 0,
formobj: {
billNo: '', //
@ -206,8 +249,10 @@ export default {
carBrandSid: '', // sid
carBrandName: '', //
orgSidPath: '',
detailsList: [],
vehicleList: []
detailsList: [], //
vehicleList: [], //
trailerList: [], //
topList: [] //
},
rules: {},
paymentVisible: false, // --
@ -335,6 +380,16 @@ export default {
}, 0)
sums[index] += ''
this.formobj.carTotal = sums[index] += ''
} else if (column.property === 'costPrice') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
}
})
return sums

168
anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/fukuanguanliFlow/fukuanguanli/relation/top.vue

@ -0,0 +1,168 @@
<template>
<div class="app-container">
<div>
<div class="tab-header webtop">
<div>选择上装页面</div>
<div>
<el-button type="primary" size="small" @click="handleConfirm">确定</el-button>
<el-button type="info" size="small" @click="handleColse()">关闭</el-button>
</div>
</div>
<div class="">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-form-item label="上装名称">
<el-input v-model="listQuery.params.installNameValue" placeholder="" clearable />
</el-form-item>
<el-form-item label="车架号">
<el-input v-model="listQuery.params.vinNo" placeholder="" clearable />
</el-form-item>
<el-form-item label="客户名称">
<el-input v-model="listQuery.params.customerName" placeholder="" clearable />
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" @click="handleFilter" size="small">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="handleReset" size="small">重置</el-button>
</div>
</div>
</div>
<div class="listtop">
<div class="tit">上装列表</div>
</div>
<div class="">
<el-table :key="tableKey" ref="multipleTable" v-loading="listLoading" :data="list" border style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column width="50" type="selection" align="center"/>
<el-table-column width="80" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column prop="installNameValue" label="上装名称" align="center" />
<el-table-column prop="vinNo" label="车架号" align="center" />
<el-table-column prop="brandName" label="主车品牌" align="center" />
<el-table-column prop="customerName" label="客户名称" align="center" />
</el-table>
</div>
<div class="pages">
<div class="tit"/>
<!-- 翻页 -->
<Pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
</div>
</div>
</div>
</template>
<script>
import Pagination from '@/components/pagination'
import req from '@/api/anruifinmanagement/payment'
export default {
name: 'Top',
components: {
Pagination
},
data() {
return {
isSearchShow: false,
searchxianshitit: '隐藏查询条件',
tableKey: 0,
sids: [],
list: [],
multipleSelection: [],
listLoading: false,
listQuery: {
current: 1,
size: 5,
params: {
installNameValue: '',
useOrgSid: '',
vinNo: '',
customerName: '',
sids: []
},
total: 0
}
}
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
handleSelectionChange(row) {
this.multipleSelection = row
},
showData(value, useOrgSid) {
const aa = []
if (value.length > 0) {
for (var i = 0; i < value.length; i++) {
aa.push(value[i].topSid)
}
this.listQuery.params.sids = aa
} else {
this.listQuery.params.sids = []
}
this.listQuery.params.useOrgSid = useOrgSid
this.handleReset()
},
//
getList() {
this.listLoading = true
req.topApply(this.listQuery).then((response) => {
this.listLoading = false
if (response.success) {
this.listQuery.total = response.data.total
this.list = response.data.records
} else {
this.listQuery.total = 0
this.list = []
}
})
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
//
handleReset() {
this.listQuery.current = 1
this.listQuery.size = 5
this.listQuery.total = 0
this.listQuery.params.installNameValue = ''
this.listQuery.params.vinNo = ''
this.listQuery.params.customerName = ''
this.getList()
},
//
handleConfirm() {
if (this.multipleSelection.length > 0) {
this.listQuery.params.useOrgSid = ''
this.listQuery.params.sids = []
this.$emit('backData', this.multipleSelection)
} else {
this.$notify({ title: '提示', message: '请选择至少一条记录!', type: 'error', duration: 2000 })
}
},
//
handleColse() {
this.listQuery.params.useOrgSid = ''
this.listQuery.params.sids = []
this.$emit('doback')
}
}
}
</script>
<style scoped>
</style>

174
anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/fukuanguanliFlow/fukuanguanli/relation/trailerCar.vue

@ -0,0 +1,174 @@
<template>
<div class="app-container">
<div>
<div class="tab-header webtop">
<div>选择挂车页面</div>
<div>
<el-button type="primary" size="small" @click="handleConfirm">确定</el-button>
<el-button type="info" size="small" @click="handleColse()">关闭</el-button>
</div>
</div>
<div class="">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-form-item label="挂车名称">
<el-input v-model="listQuery.params.trailerTypeValue" placeholder="" clearable />
</el-form-item>
<el-form-item label="挂车车架号">
<el-input v-model="listQuery.params.vinNo" placeholder="" clearable />
</el-form-item>
<el-form-item label="主车车架号">
<el-input v-model="listQuery.params.zcVinNo" placeholder="" clearable />
</el-form-item>
<el-form-item label="客户名称">
<el-input v-model="listQuery.params.customerName" placeholder="" clearable />
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" @click="handleFilter" size="small">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="handleReset" size="small">重置</el-button>
</div>
</div>
</div>
<div class="listtop">
<div class="tit">挂车列表</div>
</div>
<div class="">
<el-table :key="tableKey" ref="multipleTable" v-loading="listLoading" :data="list" border style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column width="50" type="selection" align="center"/>
<el-table-column width="80" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column prop="trailerTypeValue" label="挂车名称" align="center" />
<el-table-column prop="vinNo" label="挂车车架号" align="center" />
<el-table-column prop="brandName" label="主车品牌" align="center" />
<el-table-column prop="zcVinNo" label="主车车架号" align="center" />
<el-table-column prop="customerName" label="客户名称" align="center" />
</el-table>
</div>
<div class="pages">
<div class="tit"/>
<!-- 翻页 -->
<Pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
</div>
</div>
</div>
</template>
<script>
import Pagination from '@/components/pagination'
import req from '@/api/anruifinmanagement/payment'
export default {
name: 'TrailerCar',
components: {
Pagination
},
data() {
return {
isSearchShow: false,
searchxianshitit: '隐藏查询条件',
tableKey: 0,
sids: [],
list: [],
multipleSelection: [],
listLoading: false,
listQuery: {
current: 1,
size: 5,
params: {
trailerTypeValue: '',
useOrgSid: '',
vinNo: '',
zcVinNo: '',
customerName: '',
sids: []
},
total: 0
}
}
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
handleSelectionChange(row) {
this.multipleSelection = row
},
showData(value, useOrgSid) {
const aa = []
if (value.length > 0) {
for (var i = 0; i < value.length; i++) {
aa.push(value[i].trailerSid)
}
this.listQuery.params.sids = aa
} else {
this.listQuery.params.sids = []
}
this.listQuery.params.useOrgSid = useOrgSid
this.handleReset()
},
//
getList() {
this.listLoading = true
req.trailerApply(this.listQuery).then((response) => {
this.listLoading = false
if (response.success) {
this.listQuery.total = response.data.total
this.list = response.data.records
} else {
this.listQuery.total = 0
this.list = []
}
})
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
//
handleReset() {
this.listQuery.current = 1
this.listQuery.size = 5
this.listQuery.total = 0
this.listQuery.params.trailerTypeValue = ''
this.listQuery.params.vinNo = ''
this.listQuery.params.zcVinNo = ''
this.listQuery.params.customerName = ''
this.getList()
},
//
handleConfirm() {
if (this.multipleSelection.length > 0) {
this.listQuery.params.useOrgSid = ''
this.listQuery.params.sids = []
this.$emit('backData', this.multipleSelection)
} else {
this.$notify({ title: '提示', message: '请选择至少一条记录!', type: 'error', duration: 2000 })
}
},
//
handleColse() {
this.listQuery.params.useOrgSid = ''
this.listQuery.params.sids = []
this.$emit('doback')
}
}
}
</script>
<style scoped>
</style>

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentapply/FinPaymentapplyService.java

@ -357,7 +357,7 @@ public class FinPaymentapplyService extends MybatisBaseService<FinPaymentapplyMa
String orgCode = resultBean1.getData().getOrgCode();
BillNo b = new BillNo();
b.setOrgCode(orgCode);
b.setBillType(BillTypeEnum.FYSQ.getBillType());
b.setBillType(BillTypeEnum.FKSQ.getBillType());
String bill = Rule.getBill(b);
String billNo = "";
String i = baseMapper.selectNum(bill);

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java

@ -986,7 +986,7 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
finPaymentrecordSourceLCVos.sort(comparing(FinPaymentrecordSourceLCVo::getSpsj));
dataMap.put("lcList", finPaymentrecordSourceLCVos);
}
dataMap.put("payCode", finPaymentrecord.getId());
dataMap.put("payCode", String.valueOf (finPaymentrecord.getId()));
dataMap.put("createTime", DateUtil.format(finPaymentrecord.getCreateTime(), "yyyy-MM-dd"));
dataMap.put("createByName", createByName);
dataMap.put("createByDeptName", deptName);

158
anrui-fin/anrui-fin-biz/src/main/resources/ftl/prePaymentApply.ftl

@ -118,57 +118,35 @@
</w:p>
<w:tbl>
<w:tblPr>
<w:tblStyle w:val="10"/>
<w:tblW w:w="4778" w:type="pct"/>
<w:tblInd w:w="0" w:type="dxa"/>
<w:tblBorders>
<w:top w:val="single" w:color="auto" w:sz="4" w:space="0"/>
<w:left w:val="single" w:color="auto" w:sz="4" w:space="0"/>
<w:bottom w:val="single" w:color="auto" w:sz="4" w:space="0"/>
<w:right w:val="single" w:color="auto" w:sz="4" w:space="0"/>
<w:insideH w:val="single" w:color="auto" w:sz="4" w:space="0"/>
<w:insideV w:val="single" w:color="auto" w:sz="4" w:space="0"/>
<w:top w:val="single" w:sz="4" w:space="0" w:color="auto"/>
<w:left w:val="single" w:sz="4" w:space="0" w:color="auto"/>
<w:bottom w:val="single" w:sz="4" w:space="0" w:color="auto"/>
<w:right w:val="single" w:sz="4" w:space="0" w:color="auto"/>
<w:insideH w:val="single" w:sz="4" w:space="0" w:color="auto"/>
<w:insideV w:val="single" w:sz="4" w:space="0" w:color="auto"/>
</w:tblBorders>
<w:tblLayout w:type="autofit"/>
<w:tblCellMar>
<w:top w:w="0" w:type="dxa"/>
<w:left w:w="108" w:type="dxa"/>
<w:bottom w:w="0" w:type="dxa"/>
<w:right w:w="108" w:type="dxa"/>
</w:tblCellMar>
<w:tblLook w:val="0000" w:firstRow="0" w:lastRow="0" w:firstColumn="0" w:lastColumn="0"
w:noHBand="0" w:noVBand="0"/>
</w:tblPr>
<w:tblGrid>
<w:gridCol w:w="1743"/>
<w:gridCol w:w="4031"/>
<w:gridCol w:w="1744"/>
<w:gridCol w:w="4030"/>
<w:gridCol w:w="2370"/>
</w:tblGrid>
<w:tr>
<w:tblPrEx>
<w:tblBorders>
<w:top w:val="single" w:color="auto" w:sz="4" w:space="0"/>
<w:left w:val="single" w:color="auto" w:sz="4" w:space="0"/>
<w:bottom w:val="single" w:color="auto" w:sz="4" w:space="0"/>
<w:right w:val="single" w:color="auto" w:sz="4" w:space="0"/>
<w:insideH w:val="single" w:color="auto" w:sz="4" w:space="0"/>
<w:insideV w:val="single" w:color="auto" w:sz="4" w:space="0"/>
</w:tblBorders>
<w:tblCellMar>
<w:top w:w="0" w:type="dxa"/>
<w:left w:w="108" w:type="dxa"/>
<w:bottom w:w="0" w:type="dxa"/>
<w:right w:w="108" w:type="dxa"/>
</w:tblCellMar>
</w:tblPrEx>
<w:tr w:rsidR="008C0868" w14:paraId="1CBBE111" w14:textId="77777777" w:rsidTr="008C0868">
<w:trPr>
<w:trHeight w:val="454" w:hRule="atLeast"/>
<w:trHeight w:val="454"/>
</w:trPr>
<w:tc>
<w:tcPr>
<w:tcW w:w="1070" w:type="pct"/>
<w:noWrap w:val="0"/>
<w:tcW w:w="1071" w:type="pct"/>
<w:vAlign w:val="center"/>
</w:tcPr>
<w:p>
<w:p w14:paraId="68D20918" w14:textId="77777777" w:rsidR="008C0868"
w:rsidRDefault="008C0868">
<w:r>
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
@ -181,26 +159,38 @@
<w:tcPr>
<w:tcW w:w="3929" w:type="pct"/>
<w:gridSpan w:val="2"/>
<w:noWrap w:val="0"/>
<w:vAlign w:val="center"/>
</w:tcPr>
<w:p>
<w:p w14:paraId="22F7EFEB" w14:textId="68B0905B" w:rsidR="008C0868"
w:rsidRDefault="008C0868">
<w:bookmarkStart w:id="0" w:name="OLE_LINK1"/>
<w:r>
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
</w:rPr>
<w:t>${applyCode!}</w:t>
</w:r>
<w:bookmarkEnd w:id="0"/>
</w:p>
</w:tc>
</w:tr>
<w:tr w:rsidR="008C0868" w14:paraId="73A61FA1" w14:textId="77777777" w:rsidTr="008C0868">
<w:trPr>
<w:trHeight w:val="454"/>
</w:trPr>
<w:tc>
<w:tcPr>
<w:tcW w:w="1070" w:type="pct"/>
<w:noWrap w:val="0"/>
<w:tcW w:w="1071" w:type="pct"/>
<w:vAlign w:val="center"/>
</w:tcPr>
<w:p>
<w:r>
<w:p w14:paraId="57E58C73" w14:textId="5566BE96" w:rsidR="008C0868"
w:rsidRDefault="008C0868" w:rsidP="008C0868">
<w:pPr>
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
</w:rPr>
</w:pPr>
<w:r w:rsidRPr="00E91B16">
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
</w:rPr>
@ -212,10 +202,15 @@
<w:tcPr>
<w:tcW w:w="3929" w:type="pct"/>
<w:gridSpan w:val="2"/>
<w:noWrap w:val="0"/>
<w:vAlign w:val="center"/>
</w:tcPr>
<w:p>
<w:p w14:paraId="60A6A21D" w14:textId="37393563" w:rsidR="008C0868"
w:rsidRDefault="008C0868" w:rsidP="008C0868">
<w:pPr>
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
@ -919,39 +914,6 @@
</#if>
</#list>
</w:tbl>
<w:p w14:paraId="6A1990AF" w14:textId="77777777" w:rsidR="00B027D8" w:rsidRDefault="0096218C"
w:rsidP="00BF0455">
<w:pPr>
<w:pStyle w:val="a3"/>
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
</w:rPr>
<w:t>下载人:</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
</w:rPr>
<w:t>${downName!} </w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
</w:rPr>
<w:t>下载时间:</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
</w:rPr>
<w:t>${downTime!}</w:t>
</w:r>
</w:p>
<w:p/>
<w:p/>
<w:p>
@ -1046,6 +1008,46 @@
</w:tr>
</#list>
</w:tbl>
<w:p w14:paraId="3CADE75E" w14:textId="77777777" w:rsidR="00B027D8" w:rsidRDefault="0096218C"
w:rsidP="00BF0455">
<w:pPr>
<w:pStyle w:val="a3"/>
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
</w:rPr>
<w:t>下载人:</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
</w:rPr>
<w:t>${downName!}</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
<w:lang w:val="en-US" w:eastAsia="zh-CN"/>
</w:rPr>
<w:t xml:space="preserve"> </w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
</w:rPr>
<w:t>下载时间:</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
</w:rPr>
<w:t>${downTime!}</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:rPr>

3
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java

@ -400,6 +400,9 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
flowTask1.setCreateTime(comment.getTime());
flowTask1.setTaskUserInfos(ll);
flowTask1.setComment(build);
flowTask1.setProcDefId(flowTask.getProcDefId());
flowTask1.setProcVars(flowTask.getProcVars());
flowTask1.setTaskDefKey(histIns.getActivityId());
hisFlowList.add(flowTask1);
} else {
flowTask.setComment(build);

26
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/OaSysOrganizationVo.java

@ -0,0 +1,26 @@
package com.yxt.anrui.portal.api.sysorganization;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2025/1/15
**/
@Data
public class OaSysOrganizationVo {
@ApiModelProperty("部门/组织sid")
private String sid;
@ApiModelProperty("部门/组织名称|员工姓名")
private String name;
@ApiModelProperty("组织全路径")
private String orgSidPath;
@ApiModelProperty("部门所在路径(机构名称,不包含集团,取第一个/后的所有)")
private String orgNamePath;
}

6
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeign.java

@ -105,6 +105,12 @@ public interface SysOrganizationFeign {
@GetMapping("/selectAppOrganization")
public ResultBean<Map<String, Object>> selectAppOrganization(@RequestParam(value = "sid", required = false) String sid);
@ApiOperation("手机OA获取组织架构")
@ResponseBody
@GetMapping("/selectAppOrganization2")
public ResultBean<Map<String, Object>> selectAppOrganization2(@RequestParam(value = "sid", required = false) String sid);
@ApiOperation("组织架构")
@ResponseBody
@GetMapping("/selectListOrg")

5
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeignFallback.java

@ -117,6 +117,11 @@ public class SysOrganizationFeignFallback implements SysOrganizationFeign {
return ResultBean.fireFail().setMsg("接口anrui_portal/sysorganization/selectAppOrganization无法访问");
}
@Override
public ResultBean<Map<String, Object>> selectAppOrganization2(String sid) {
return null;
}
@Override
public ResultBean<List<SysOrgVo>> selectListOrg() {
return null;

6
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationMapper.java

@ -50,8 +50,12 @@ public interface SysOrganizationMapper extends BaseMapper<SysOrganization> {
List<AppContactSysOrganizationVo> selectAppOrganization();
List<OaSysOrganizationVo> selectAppOrganization2();
List<AppContactSysOrganizationVo> selectAppOrganizationByPsid(@Param("psid") String psid);
List<OaSysOrganizationVo> selectAppOrganizationByPsid2(@Param("psid") String psid);
List<SysOrgVo> treeList(String psid);
SysOrganization selectOrgCode();
@ -134,7 +138,7 @@ public interface SysOrganizationMapper extends BaseMapper<SysOrganization> {
List<SysOrganizationVo> tranTwo(String sid);
List<SysOrganizationVo> tranThree(@Param("sid") String sid,@Param("deptSid") String deptSid);
List<SysOrganizationVo> tranThree(@Param("sid") String sid, @Param("deptSid") String deptSid);
List<SysOrganizationVo> tranfour(String sid);

66
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationMapper.xml

@ -77,6 +77,15 @@
WHERE org.psid = (SELECT sid FROM sys_organization WHERE psid = '0')
</select>
<select id="selectAppOrganization2"
resultType="com.yxt.anrui.portal.api.sysorganization.OaSysOrganizationVo">
SELECT sid,
name,
IF((SELECT count(1) FROM sys_organization WHERE psid = org.sid) = 0, org.orgSidPath, '') orgSidPath
FROM sys_organization org
WHERE org.psid = (SELECT sid FROM sys_organization WHERE psid = '0')
</select>
<select id="selectAppOrganizationByPsid"
resultType="com.yxt.anrui.portal.api.sysorganization.AppContactSysOrganizationVo">
SELECT org.sid,
@ -87,6 +96,15 @@
WHERE org.psid = #{psid}
</select>
<select id="selectAppOrganizationByPsid2"
resultType="com.yxt.anrui.portal.api.sysorganization.OaSysOrganizationVo">
SELECT org.sid,
org.name,
IF((SELECT count(1) FROM sys_organization WHERE psid = org.sid) = 0, org.orgSidPath, '') orgSidPath
FROM sys_organization org
WHERE org.psid = #{psid}
</select>
<select id="treeList" resultType="com.yxt.anrui.portal.api.sysorganization.SysOrgVo">
SELECT so.name, so.psid, so.id, so.sid, so.orgSidPath, so.orgCode
FROM sys_organization so
@ -108,7 +126,8 @@
<select id="selectOrgCodeByPsid" resultType="com.yxt.anrui.portal.api.sysorganization.SysOrganization">
SELECT *
FROM sys_organization LIMIT 0,1
FROM sys_organization
LIMIT 0,1
</select>
<select id="selectTreeList" resultType="com.yxt.anrui.portal.api.sysorganization.SysOrgListVo">
@ -189,8 +208,8 @@
<select id="selectByOrgDeptSid" resultType="com.yxt.anrui.portal.api.sysorganization.SysOrgStaffVo">
select distinct si.name staffName, si.sid staffSid, su.sid userSid
from sys_staff_org so
left join sys_staffinfo si on so.staffSid = si.sid
left join sys_user su on su.staffSid = si.sid
left join sys_staffinfo si on so.staffSid = si.sid
left join sys_user su on su.staffSid = si.sid
where so.orgSid = #{orgDeptSid}
and si.personTypeKey != '01'
</select>
@ -198,8 +217,8 @@
<select id="selectByOrgDeptSid2" resultType="com.yxt.anrui.portal.api.sysorganization.SysOrgStaffVo">
select distinct si.name staffName, si.sid staffSid, su.sid userSid
from sys_staff_org so
left join sys_staffinfo si on so.staffSid = si.sid
left join sys_user su on su.staffSid = si.sid
left join sys_staffinfo si on so.staffSid = si.sid
left join sys_user su on su.staffSid = si.sid
where so.orgSid = #{orgDeptSid}
</select>
@ -256,9 +275,9 @@
SELECT *
FROM sys_organization
WHERE (
orgAttributeKey = 'fwz_002'
OR orgAttributeKey = 'fwz_003'
)
orgAttributeKey = 'fwz_002'
OR orgAttributeKey = 'fwz_003'
)
AND psid = #{sid}
</select>
@ -267,15 +286,15 @@
FROM sys_organization
WHERE orgAttributeKey = 'fwz_001'
AND (
psid =
(SELECT psid
FROM sys_organization
WHERE sid = #{sid})
OR sid =
(SELECT psid
FROM sys_organization
WHERE sid = #{sid})
)
psid =
(SELECT psid
FROM sys_organization
WHERE sid = #{sid})
OR sid =
(SELECT psid
FROM sys_organization
WHERE sid = #{sid})
)
AND sid != #{sid}
</select>
@ -285,7 +304,7 @@
WHERE orgAttributeKey = 'fwz_001'
AND sid != #{deptSid}
AND (psid = #{sid}
OR sid = #{sid})
OR sid = #{sid})
</select>
<select id="tranfour" resultType="com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo">
@ -299,9 +318,9 @@
SELECT *
FROM sys_organization
WHERE (
orgAttributeKey = 'fwz_002'
OR orgAttributeKey = 'fwz_003'
)
orgAttributeKey = 'fwz_002'
OR orgAttributeKey = 'fwz_003'
)
AND psid =
(SELECT psid
FROM sys_organization
@ -316,9 +335,8 @@
AND psid = #{sid}
</select>
<select id="selectStaffListByUseOrgSid" resultType="com.yxt.anrui.portal.api.sysorganization.SysFinanceVo">
SELECT DISTINCT
u.sid userSid,
s.`name`
SELECT DISTINCT u.sid userSid,
s.`name`
FROM sys_user as u
LEFT JOIN sys_user_role as ur ON u.sid = ur.userSid
LEFT JOIN sys_staffinfo as s ON u.staffSid = s.sid

52
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationRest.java

@ -121,8 +121,8 @@ public class SysOrganizationRest implements SysOrganizationFeign {
}
@Override
public ResultBean<List<SysOrganizationVo>> tranThree(String sid,String deptSid) {
return new ResultBean<List<SysOrganizationVo>>().success().setData(sysOrganizationService.tranThree(sid,deptSid));
public ResultBean<List<SysOrganizationVo>> tranThree(String sid, String deptSid) {
return new ResultBean<List<SysOrganizationVo>>().success().setData(sysOrganizationService.tranThree(sid, deptSid));
}
@Override
@ -151,12 +151,12 @@ public class SysOrganizationRest implements SysOrganizationFeign {
String zgStaffSid = dto.getZgStaffSid();
//分管人员的sid
String fgStaffSid = dto.getFgStaffSid();
if(StringUtils.isNotBlank(zgStaffSid)){
if (StringUtils.isNotBlank(zgStaffSid)) {
SysStaffinfo sysStaffinfo = sysStaffInfoService.fetchBySid(zgStaffSid);
sysOrganization.setManagerName(sysStaffinfo.getName());
SysUserVo sysUser = sysUserService.selectByStaffsid(zgStaffSid);
sysOrganization.setManagerSid(sysUser.getSid());
}else{
} else {
sysOrganization.setManagerName("");
sysOrganization.setManagerSid("");
}
@ -169,9 +169,9 @@ public class SysOrganizationRest implements SysOrganizationFeign {
}
}
//查询所有该orgSid的staffSid的类型为员工的
List<SysStaffOrg> staffList = sysStaffOrgService.selectStaffByOrgSid(sid,"3");
List<SysStaffOrg> staffList = sysStaffOrgService.selectStaffByOrgSid(sid, "3");
staffList.removeAll(Collections.singleton(null));
if(!staffList.isEmpty()){
if (!staffList.isEmpty()) {
//更新关联表中的orgName和orgNamePath以及orgSidPath
//查询该部门的全部信息
ResultBean resultBean = sysOrganizationService.updateStaffList(sysOrganization);
@ -198,15 +198,15 @@ public class SysOrganizationRest implements SysOrganizationFeign {
//查询分管人员
List<String> stringList1 = new ArrayList<>();
List<String> reduce1 = new ArrayList<>();
if(StringUtils.isNotBlank(fgStaffSid)){
if (StringUtils.isNotBlank(fgStaffSid)) {
stringList1 = Arrays.asList(fgStaffSid.split(","));
reduce1 = stringList1.stream().filter(item -> !stringList.contains(item)).collect(toList());
}else{
} else {
reduce1 = stringList;
}
String orgSid1 = sysStaffOrgService.getOrgByOrgSid(sid);
if(reduce1.size()>0){
for (String s : reduce1){
if (reduce1.size() > 0) {
for (String s : reduce1) {
//查询该人员的组织机构list
List<SysStaffOrgVo> sysStaffOrgVos = sysStaffOrgService.selectByStaffS(s);
List<String> orgList = new ArrayList<>();
@ -221,10 +221,10 @@ public class SysOrganizationRest implements SysOrganizationFeign {
}
}
}
if(!orgList.contains(orgSid1)){
if (!orgList.contains(orgSid1)) {
//根据staffSid查询token
String token = sysUserService.selectByStaffsid(s).getToken();
if(StringUtils.isNotBlank(token)){
if (StringUtils.isNotBlank(token)) {
//清空该token
redisUtil.remove(token);
}
@ -293,7 +293,7 @@ public class SysOrganizationRest implements SysOrganizationFeign {
vo.setFgStaffSid(fgSids);
SysUser sysUser = sysUserService.fetchBySid(entity.getManagerSid());
if(sysUser != null){
if (sysUser != null) {
vo.setZgStaffSid(sysUser.getStaffSid());
vo.setZgNames(entity.getManagerName());
}
@ -319,6 +319,22 @@ public class SysOrganizationRest implements SysOrganizationFeign {
return new ResultBean<Map<String, Object>>().success().setData(map);
}
@Override
public ResultBean<Map<String, Object>> selectAppOrganization2(String sid) {
Map<String, Object> map = new HashMap<>();
List<Map<String, Object>> nameList = sysOrganizationService.selectOrgNameList(sid);
List<OaSysOrganizationVo> list = null;
if (StringUtils.isBlank(sid)) { // 组织架构
list = sysOrganizationService.selectAppOrganization2();
} else { // 组织架构子集
list = sysOrganizationService.selectAppOrganizationSub2(sid);
}
map.put("nameList", nameList);
map.put("list", list);
return new ResultBean<Map<String, Object>>().success().setData(map);
}
@Override
public ResultBean<List<SysOrgVo>> selectListOrg() {
ResultBean<List<SysOrgVo>> rb = ResultBean.fireFail();
@ -340,12 +356,12 @@ public class SysOrganizationRest implements SysOrganizationFeign {
@Override
public ResultBean<List<SysOrgVo>> getListOrgByBrandSid(String orgSid, String brandSid) {
return sysOrganizationService.getListOrgByBrandSid(orgSid,brandSid);
return sysOrganizationService.getListOrgByBrandSid(orgSid, brandSid);
}
@Override
public ResultBean<List<SysOrgVo>> getListOrgByBrandSidNo(String orgSid, String brandSid) {
return sysOrganizationService.getListOrgByBrandSidNo(orgSid,brandSid);
return sysOrganizationService.getListOrgByBrandSidNo(orgSid, brandSid);
}
@Override
@ -451,7 +467,7 @@ public class SysOrganizationRest implements SysOrganizationFeign {
@Override
public ResultBean<SysOrganizationVo> selectByPSid(String sid, String name) {
return sysOrganizationService.selectByPSid(sid,name);
return sysOrganizationService.selectByPSid(sid, name);
}
@Override
@ -482,7 +498,7 @@ public class SysOrganizationRest implements SysOrganizationFeign {
public ResultBean<List<SysFinanceVo>> selectFinance(String orgPath, String userSid) {
ResultBean<List<SysFinanceVo>> rb = ResultBean.fireFail();
String useOrgSid = sysStaffOrgService.getOrgSidByPath(orgPath).getData();
List<SysFinanceVo> list = sysOrganizationService.selectBy("金融服务部",useOrgSid);
List<SysFinanceVo> list = sysOrganizationService.selectBy("金融服务部", useOrgSid);
list.removeAll(Collections.singleton(null));
list = list.stream().filter(v -> StringUtils.isNotBlank(v.getUserSid())).collect(toList());
return rb.success().setData(list);
@ -496,7 +512,7 @@ public class SysOrganizationRest implements SysOrganizationFeign {
@Override
public ResultBean<List<SysOrganization>> selectByOrgCodeAndPsid(String orgCode, String pSid) {
ResultBean rb = ResultBean.fireFail();
List<SysOrganization> sysOrganization = sysOrganizationService.selectByOrgCodeAndPsid(orgCode,pSid);
List<SysOrganization> sysOrganization = sysOrganizationService.selectByOrgCodeAndPsid(orgCode, pSid);
return rb.success().setData(sysOrganization);
}

44
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationService.java

@ -31,6 +31,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import static java.util.stream.Collectors.toList;
@ -347,6 +348,26 @@ public class SysOrganizationService extends MybatisBaseService<SysOrganizationMa
return list;
}
public List<OaSysOrganizationVo> selectAppOrganization2() {
List<OaSysOrganizationVo> list = baseMapper.selectAppOrganization2();
list.stream().forEach(vo -> {
if (StringUtils.isNotBlank(vo.getOrgSidPath())) {
String orgNamePath = "";
String result = vo.getOrgSidPath().split("/", 2)[1];
List<String> orgList = Arrays.asList(result.split("/"));
for (int i = 0; i < orgList.size(); i++) {
String name = fetchBySid(orgList.get(i)).getName();
orgNamePath = orgNamePath + name;
if (i != orgList.size() - 1) {
orgNamePath = orgNamePath + "/";
}
}
vo.setOrgNamePath(orgNamePath);
}
});
return list;
}
public List<AppContactSysOrganizationVo> selectAppOrganizationSub(String psid) {
List<AppContactSysOrganizationVo> list = baseMapper.selectAppOrganizationByPsid(psid);
list.stream().forEach(vo -> {
@ -357,6 +378,29 @@ public class SysOrganizationService extends MybatisBaseService<SysOrganizationMa
return list;
}
public List<OaSysOrganizationVo> selectAppOrganizationSub2(String psid) {
List<OaSysOrganizationVo> list = baseMapper.selectAppOrganizationByPsid2(psid);
list.stream().forEach(vo -> {
if (StringUtils.isNotBlank(vo.getOrgSidPath())) {
// 使用 StringBuilder 进行字符串拼接
StringBuilder orgNamePath = new StringBuilder();
String result = vo.getOrgSidPath().split("/", 2)[1];
List<String> orgList = Arrays.asList(result.split("/"));
// 遍历组织ID列表,拼接名称路径
for (int i = 0; i < orgList.size(); i++) {
String name = fetchBySid(orgList.get(i)).getName();
orgNamePath.append(name);
if (i != orgList.size() - 1) {
orgNamePath.append("/");
}
}
// 设置生成的组织名称路径
vo.setOrgNamePath(orgNamePath.toString());
}
});
return list;
}
/**
* @param
* @description: 获取组织架构即使用组织下拉框

12
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateQuery.java

@ -51,19 +51,21 @@ import java.util.List;
@ApiModel(value = "单车返利表 查询条件", description = "单车返利表 查询条件")
public class ScmVehRebateQuery implements Query {
@ApiModelProperty("品牌")
@ApiModelProperty("品牌")
private String brandName;
@ApiModelProperty("车型名称")
@ApiModelProperty("车型名称")
private String vehModelName;
@ApiModelProperty("车架号")
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("创建开始日期")
private String createStartTime;
@ApiModelProperty("创建结束日期")
private String createEndTime;
@ApiModelProperty("返利类型key")
@ApiModelProperty("返利类型key")
private String rebateTypeKey;
@ApiModelProperty("返利名称")
@ApiModelProperty("返利类型value")
private String rebateTypeValue;
@ApiModelProperty("返利名称")
private String rebateName;
@ApiModelProperty("状态")
private String state;

7
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapplydetail/ScmVehrebateCheckapplydetailFeign.java

@ -72,11 +72,16 @@ public interface ScmVehrebateCheckapplydetailFeign {
@ResponseBody
public ResultBean delBySids(@RequestBody String[] sids);
@ApiOperation("单车返利核对查看详情")
@ApiOperation("单车返利核对查看所有详情")
@GetMapping("/vehRebateCheckDetails/{sid}")
@ResponseBody
public ResultBean<List<ScmVehRebateDetailsVo>> vehRebateCheckDetails(@PathVariable("sid") String sid);
@ApiOperation("单车返利核对查看分组详情")
@GetMapping("/vehRebateGroupDetails/{sid}")
@ResponseBody
public ResultBean<List<ScmVehRebateDetailsVo>> vehRebateGroupDetails(@PathVariable("sid") String sid);
@ApiOperation("app查询明细")
@GetMapping("/appMx/{sid}")
@ResponseBody

5
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapplydetail/ScmVehrebateCheckapplydetailFeignFallback.java

@ -70,6 +70,11 @@ public class ScmVehrebateCheckapplydetailFeignFallback implements ScmVehrebateCh
return null;
}
@Override
public ResultBean<List<ScmVehRebateDetailsVo>> vehRebateGroupDetails(String sid) {
return null;
}
@Override
public ResultBean<List<ScmVehRebateDetailsVo>> appMx(String sid) {
return null;

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

@ -268,8 +268,8 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
if (StringUtils.isNotBlank(query.getVinNo())) {
qw.like("vinNo", query.getVinNo());
}
if (StringUtils.isNotBlank(query.getRebateTypeKey())) {
qw.eq("rebateTypeKey", query.getRebateTypeKey());
if (StringUtils.isNotBlank(query.getRebateTypeValue())) {
qw.eq("rebateTypeValue", query.getRebateTypeValue());
}
if (StringUtils.isNotBlank(query.getRebateName())) {
qw.like("rebateName", query.getRebateName());

5
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapplydetail/ScmVehrebateCheckapplydetailRest.java

@ -80,6 +80,11 @@ public class ScmVehrebateCheckapplydetailRest implements ScmVehrebateCheckapplyd
return scmVehrebateCheckapplydetailService.vehRebateCheckDetails(sid);
}
@Override
public ResultBean<List<ScmVehRebateDetailsVo>> vehRebateGroupDetails(String sid) {
return scmVehrebateCheckapplydetailService.vehRebateGroupDetails(sid);
}
@Override
public ResultBean<List<ScmVehRebateDetailsVo>> appMx(String sid) {
return scmVehrebateCheckapplydetailService.appMx(sid);

15
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapplydetail/ScmVehrebateCheckapplydetailService.java

@ -90,7 +90,7 @@ public class ScmVehrebateCheckapplydetailService extends MybatisBaseService<ScmV
public ResultBean<List<ScmVehRebateDetailsVo>> vehRebateCheckDetails(String sid) {
ResultBean rb = ResultBean.fireFail();
List<ScmVehRebateDetailsVo> scmVehRebateDetailsVos = baseMapper.selByVehRebteSid(sid);
List<ScmVehRebateDetailsVo> scmVehRebateDetailsVos = baseMapper.selByVehRebteSid(sid);
for (ScmVehRebateDetailsVo scmVehRebateDetailsVo : scmVehRebateDetailsVos) {
scmVehRebateDetailsVo.setWithholdCost(scmVehRebateDetailsVo.getExpectTreatCost().add(scmVehRebateDetailsVo.getExpectSuppCost()));
scmVehRebateDetailsVo.setMoney(scmVehRebateDetailsVo.getOnceTreatCost().add(scmVehRebateDetailsVo.getOnceSuppCost()).add(scmVehRebateDetailsVo.getSecondTreatCost()).add(scmVehRebateDetailsVo.getSecondSuppCost()).toString());
@ -122,4 +122,17 @@ public class ScmVehrebateCheckapplydetailService extends MybatisBaseService<ScmV
}
return rb.success().setData(scmVehRebateDetailsVos);
}
public ResultBean<List<ScmVehRebateDetailsVo>> vehRebateGroupDetails(String sid) {
ResultBean rb = ResultBean.fireFail();
List<ScmVehRebateDetailsVo> scmVehRebateDetailsVos = new ArrayList<>();
String[] vehRebateSids = sid.split(",");
for (String vehRebateSid : vehRebateSids) {
ScmVehRebateDetailsVo scmVehRebateDetailsVo = baseMapper.selByVehRebteSidNew(vehRebateSid);
scmVehRebateDetailsVo.setWithholdCost(scmVehRebateDetailsVo.getExpectTreatCost().add(scmVehRebateDetailsVo.getExpectSuppCost()));
scmVehRebateDetailsVo.setMoney(scmVehRebateDetailsVo.getOnceTreatCost().add(scmVehRebateDetailsVo.getOnceSuppCost()).add(scmVehRebateDetailsVo.getSecondTreatCost()).add(scmVehRebateDetailsVo.getSecondSuppCost()).toString());
scmVehRebateDetailsVos.add(scmVehRebateDetailsVo);
}
return rb.success().setData(scmVehRebateDetailsVos);
}
}

1
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatewith/ScmVehRebateWithService.java

@ -149,6 +149,7 @@ public class ScmVehRebateWithService extends MybatisBaseService<ScmVehRebateWith
ScmVehRebateDetailsVo scmVehRebateDetailsVo = new ScmVehRebateDetailsVo();
BeanUtil.copyProperties(scmVehRebate, scmVehRebateDetailsVo);
scmVehRebateDetailsVo.setMoney(scmVehRebateDetailsVo.getOnceTreatCost().add(scmVehRebateDetailsVo.getOnceSuppCost()).add(scmVehRebateDetailsVo.getSecondTreatCost()).add(scmVehRebateDetailsVo.getSecondSuppCost()).toString());
scmVehRebateDetailsVo.setVehRebateSid(scmVehRebate.getSid());
scmVehRebateDetailsVos.add(scmVehRebateDetailsVo);
}
return rb.success().setData(scmVehRebateDetailsVos);

3
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormDto.java

@ -1,9 +1,11 @@
package com.yxt.anrui.oa.biz.oaform;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
@ -13,6 +15,7 @@ import java.util.Date;
**/
@Data
public class OaFormDto implements Dto {
private static final long serialVersionUID = 222593232704685547L;
//保存时赋值
@ApiModelProperty("创建人sid")
private String createBySid;

Loading…
Cancel
Save