update code
parent
470b29b69d
commit
11fac30ca2
|
@ -0,0 +1,132 @@
|
||||||
|
<template>
|
||||||
|
<div class="cost-contract" style="margin-top:4px;">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
<span style="color: #409eff;">
|
||||||
|
{{ costType==11? '工程进度款支付明细':'支付明细'}}
|
||||||
|
</span>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="16" style="text-align: right;">
|
||||||
|
<el-button type="success" @click="doAdd">增加期数</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<div style="padding: 0px; border:solid 1px #ccc;border-radius: 4px;margin-top:4px;max-height: calc(100vh - 360px);overflow-y: auto;" class="scroll data-list">
|
||||||
|
<el-row v-for="(it, idx) in dataList" :key="idx" :class="'row-'+idx%2+(it.isErr?' is-error':'')">
|
||||||
|
<el-col :span="2">
|
||||||
|
第{{ idx + 1 }}期
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="申请金额">
|
||||||
|
<el-input-number style="width: 130px;" :precision="4" @input="chkRowData(it)" v-model="it.money" :class="it.money>0?'':'txt-error'" placeholder="申请金额">
|
||||||
|
</el-input-number>
|
||||||
|
<span class="sp-unit">万元</span>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="申请日期">
|
||||||
|
<el-date-picker style="width: 140px;" v-model="it.date1" type="date" placeholder="申请日期" :class="it.date1?'':' txt-error'">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="支付金额">
|
||||||
|
<el-input-number style="width: 130px;" :precision="4" @input="chkRowData(it)" v-model="it.money2" placeholder="支付金额" >
|
||||||
|
</el-input-number>
|
||||||
|
<span class="sp-unit">万元</span>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="挂账金额">
|
||||||
|
<el-input-number style="width: 130px;" :precision="4" v-model="it.money3" disabled placeholder="挂账金额">
|
||||||
|
</el-input-number>
|
||||||
|
<span class="sp-unit">万元</span>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="2">
|
||||||
|
<el-button size="mini" @click="doDelete(it,idx)">删除</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
prj:null,
|
||||||
|
costType:11,
|
||||||
|
dataList: []
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
mounted() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
doDelete(row,idx){
|
||||||
|
this.$confirm('确定删除此行数据??', '提示', { type: 'warning' }).then(()=>{
|
||||||
|
this.dataList.splice(idx,1);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
chkRowData(row){
|
||||||
|
row.money3=row.money*1-row.money2*1;
|
||||||
|
row.isErr=(row.money*1+row.money2*1)==0 || !row.date1;
|
||||||
|
this.$emit("change",this.dataList);
|
||||||
|
},
|
||||||
|
doAdd() {
|
||||||
|
this.dataList.push({
|
||||||
|
costType:this.costType,
|
||||||
|
money: '',
|
||||||
|
money2: '',
|
||||||
|
money3: '',
|
||||||
|
projectId:this.prj.id,
|
||||||
|
date1: undefined,
|
||||||
|
isErr:true
|
||||||
|
});
|
||||||
|
},
|
||||||
|
init(d,prj,costType){
|
||||||
|
this.costType=costType;
|
||||||
|
this.prj=prj;
|
||||||
|
if(d.length==0){
|
||||||
|
this.doAdd();
|
||||||
|
}else{
|
||||||
|
this.dataList=d.map(it=>{
|
||||||
|
let obj={...it}
|
||||||
|
obj.isErr=false;
|
||||||
|
return obj;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
checkData(){
|
||||||
|
return this.dataList.filter(d=>d.isErr).length==0;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss">
|
||||||
|
.cost-contract{
|
||||||
|
.data-list{
|
||||||
|
.el-row{
|
||||||
|
line-height: 36px;
|
||||||
|
padding:0px 10px;
|
||||||
|
&.row-1{
|
||||||
|
background-color: #eeeeee;
|
||||||
|
}
|
||||||
|
.el-form-item {
|
||||||
|
margin-bottom: 2px !important;
|
||||||
|
margin-top:2px !important;
|
||||||
|
}
|
||||||
|
&.is-error{
|
||||||
|
.txt-error{
|
||||||
|
.el-input__inner{
|
||||||
|
border:solid 1px red;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -11,8 +11,8 @@
|
||||||
<el-button type="primary" size="mini" @click="doAddYear">确定</el-button>
|
<el-button type="primary" size="mini" @click="doAddYear">确定</el-button>
|
||||||
</div>
|
</div>
|
||||||
<el-button slot="reference" size="mini" type="success" style="margin-right: 12px;" round>增加年份</el-button>
|
<el-button slot="reference" size="mini" type="success" style="margin-right: 12px;" round>增加年份</el-button>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
<el-tabs v-model="activeName">
|
<el-tabs v-model="activeName" >
|
||||||
<el-tab-pane v-for="(it,idx) in monthInv" :label="''+it.year" :name="''+it.year" :key="idx">
|
<el-tab-pane v-for="(it,idx) in monthInv" :label="''+it.year" :name="''+it.year" :key="idx">
|
||||||
<el-col v-for="(item,idxx) in it.value" :key="idxx" :span="12">
|
<el-col v-for="(item,idxx) in it.value" :key="idxx" :span="12">
|
||||||
<el-form-item :label="names[item.month]" class="w200" >
|
<el-form-item :label="names[item.month]" class="w200" >
|
||||||
|
@ -32,7 +32,8 @@ export default {
|
||||||
name: 'RuoyiUiCostMonth',
|
name: 'RuoyiUiCostMonth',
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
prj:null,
|
||||||
selYear:'',
|
selYear:'',
|
||||||
names:['','一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'],
|
names:['','一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'],
|
||||||
activeName:'',
|
activeName:'',
|
||||||
|
@ -57,11 +58,13 @@ export default {
|
||||||
},
|
},
|
||||||
init(d,prj){
|
init(d,prj){
|
||||||
this.monthInv=d;
|
this.monthInv=d;
|
||||||
this.prj=prj;
|
this.prj=prj;
|
||||||
if(d.filter(it=>it.year==new Date().getFullYear()).length>0){
|
if(d.filter(it=>it.year==new Date().getFullYear()).length>0){
|
||||||
this.activeName=""+new Date().getFullYear()
|
this.activeName=""+new Date().getFullYear()
|
||||||
}else{
|
}else{
|
||||||
this.activeName=""+d.year;
|
if(d.length>0){
|
||||||
|
this.activeName=""+d[0].year;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -0,0 +1,251 @@
|
||||||
|
<template>
|
||||||
|
<div class="project-cost-outpu-drawer" v-if="isOpen">
|
||||||
|
<el-drawer v-if="isOpen" :visible.sync="isOpen" direction="rtl" size="50%" style="padding-left: 20px">
|
||||||
|
<template slot="title">
|
||||||
|
<div>{{ (title) + " 【项目成本产值管理】" }}</div>
|
||||||
|
<right-toolbar @queryTable="loadData" :search="false">
|
||||||
|
</right-toolbar>
|
||||||
|
</template>
|
||||||
|
<div style="margin-top:12px;" v-if="form.totalInv">
|
||||||
|
<el-form ref="form" label-width="160px">
|
||||||
|
<el-form-item label="总投资" class="w400">
|
||||||
|
<el-input-number :precision="4" v-model="form.totalInv.money" placeholder="请输入总投资">
|
||||||
|
</el-input-number>
|
||||||
|
<span class="sp-unit">万元</span>
|
||||||
|
</el-form-item>
|
||||||
|
<div class="div-title fblue" style="color: #409eff;">年度投资</div>
|
||||||
|
<costYear ref="costYear" @success="doAddYearSuccess">
|
||||||
|
|
||||||
|
</costYear>
|
||||||
|
|
||||||
|
<div class="div-title fblue" style="color: #409eff;border-bottom: solid 1px #409eff;line-height: 40px;">合同金额</div>
|
||||||
|
<el-row style="margin-top:12px;">
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="合同金额" class="w200">
|
||||||
|
<el-input-number :precision="4" v-model="form.contract1.money" placeholder="请输入合同金额">
|
||||||
|
</el-input-number>
|
||||||
|
<span class="sp-unit">万元</span>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="合同支付金额" class="w200">
|
||||||
|
<el-input-number :precision="4" v-model="form.contract2.money" placeholder="请输入合同支付金额">
|
||||||
|
</el-input-number>
|
||||||
|
<span class="sp-unit">万元</span>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="合同挂账金额" class="w200">
|
||||||
|
<el-input-number :precision="4" v-model="form.contract3.money" placeholder="请输入合同挂账金额">
|
||||||
|
</el-input-number>
|
||||||
|
<span class="sp-unit">万元</span>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<div class="div-title fblue" style="color: #409eff;border-bottom: solid 1px #409eff;line-height: 40px;">安措费</div>
|
||||||
|
<el-row style="margin-top:12px;">
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="安措费金额" class="w200">
|
||||||
|
<el-input-number :precision="4" v-model="form.safety1.money" placeholder="请输入安措费金额">
|
||||||
|
</el-input-number>
|
||||||
|
<span class="sp-unit">万元</span>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="安措支付金额" class="w200">
|
||||||
|
<el-input-number :precision="4" v-model="form.safety2.money" placeholder="请输入安措支付金额">
|
||||||
|
</el-input-number>
|
||||||
|
<span class="sp-unit">万元</span>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="安措挂账金额" class="w200">
|
||||||
|
<el-input-number :precision="4" v-model="form.safety3.money" placeholder="请输入安措挂账金额">
|
||||||
|
</el-input-number>
|
||||||
|
<span class="sp-unit">万元</span>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<div class="div-title fblue" style="color: #409eff;">月度产值</div>
|
||||||
|
<costMonth ref="costMonth" @success="doAddYearSuccess"></costMonth>
|
||||||
|
</el-form>
|
||||||
|
<div style="text-align: center;margin-top: 24px;">
|
||||||
|
<el-button type="success" @click="doSave">保存</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</el-drawer>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { listByProjectId,batchUpdate } from "@/api/project/costOutput.js";
|
||||||
|
import costYear from './costYear.vue'
|
||||||
|
import costMonth from './costMonth.vue'
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
costYear,costMonth
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
title:'',
|
||||||
|
isOpen: false,
|
||||||
|
prj: null,
|
||||||
|
form:{
|
||||||
|
totalInv:null,//总投资
|
||||||
|
contract1:null,//合同金额
|
||||||
|
contract2:null,//合同支付金额
|
||||||
|
contract3:null,//合同挂账金额
|
||||||
|
safety1:null,//安措金额
|
||||||
|
safety2:null,//安措支付金额
|
||||||
|
safety3:null,//安措挂账金额
|
||||||
|
|
||||||
|
},
|
||||||
|
yearInv:[],//年度投资
|
||||||
|
monthInv:[],//月度产值
|
||||||
|
oldData:[]
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
mounted() { },
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
doSave(){
|
||||||
|
let objs=this.oldData.map(it=>{
|
||||||
|
let obj={...it};
|
||||||
|
obj.money=obj.money?obj.money*10000:0;
|
||||||
|
return obj;
|
||||||
|
});
|
||||||
|
batchUpdate(objs).then(d=>{
|
||||||
|
if(d.code!=200){
|
||||||
|
this.loadData();
|
||||||
|
}else{
|
||||||
|
this.$modal.msgSuccess("保存成功");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
doAddYearSuccess(){
|
||||||
|
this.loadData();
|
||||||
|
},
|
||||||
|
resetData(tmps){
|
||||||
|
if(this.oldData.length==0){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
tmps.forEach(it=>{
|
||||||
|
let objs=this.oldData.filter(d=>d.id==it.id);
|
||||||
|
if(objs.length>0){
|
||||||
|
it.money=objs[0].money;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
},
|
||||||
|
loadData(init) {
|
||||||
|
listByProjectId(this.prj.id).then((d) => {
|
||||||
|
let tmps=(d.data||[]).map(it=>{
|
||||||
|
it.money=it.money?it.money/10000.0:0;
|
||||||
|
return it;
|
||||||
|
});
|
||||||
|
this.resetData(tmps);
|
||||||
|
this.oldData=tmps;
|
||||||
|
this.form.totalInv=this.getValue(tmps,1);
|
||||||
|
this.yearInv=tmps.filter(it=>it.costType==2);
|
||||||
|
this.form.contract1=this.getValue(tmps,3);
|
||||||
|
this.form.contract2=this.getValue(tmps,4);
|
||||||
|
this.form.contract3=this.getValue(tmps,5);
|
||||||
|
this.form.safety1=this.getValue(tmps,6);
|
||||||
|
this.form.safety2=this.getValue(tmps,7);
|
||||||
|
this.form.safety3=this.getValue(tmps,8);
|
||||||
|
let objs=tmps.filter(it=>it.costType==9);
|
||||||
|
let obj={};
|
||||||
|
this.monthInv=[];
|
||||||
|
objs.forEach(it=>{
|
||||||
|
if(!obj[it.year]){
|
||||||
|
obj[it.year]=[];
|
||||||
|
}
|
||||||
|
obj[it.year].push(it);
|
||||||
|
});
|
||||||
|
for(let k in obj){
|
||||||
|
this.monthInv.push({
|
||||||
|
year:k,
|
||||||
|
value:obj[k]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
setTimeout(()=>{
|
||||||
|
this.$refs.costYear.init(this.yearInv,this.prj);
|
||||||
|
this.$refs.costMonth.init(this.monthInv,this.prj);
|
||||||
|
},400)
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getValue(tmps,type){
|
||||||
|
let objs=tmps.filter(d=>d.costType==type);
|
||||||
|
return objs.length>0?objs[0]:{};
|
||||||
|
},
|
||||||
|
show(prj) {
|
||||||
|
this.prj = prj;
|
||||||
|
this.title = prj.projectName;
|
||||||
|
this.isOpen = true;
|
||||||
|
this.loadData(true);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.project-cost-outpu-drawer {
|
||||||
|
::v-deep .el-drawer {
|
||||||
|
min-width: 1400px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-drawer__header {
|
||||||
|
margin-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-drawer__body {
|
||||||
|
padding: 0px 24px;
|
||||||
|
.el-popover__reference-wrapper{
|
||||||
|
position: absolute;
|
||||||
|
right: 0px;
|
||||||
|
z-index: 999;
|
||||||
|
}
|
||||||
|
.el-form {
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
.el-form-item {
|
||||||
|
margin-bottom: 8px !important;
|
||||||
|
&.w400{
|
||||||
|
.el-input-number{
|
||||||
|
width:400px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.el-input-number{
|
||||||
|
.el-input-number__decrease{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.el-input-number__increase{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.el-input__inner{
|
||||||
|
padding: 0px 12px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.sp-unit{
|
||||||
|
margin-left:12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.div-title{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.lvl-3 {
|
||||||
|
.lbl-title {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -3,185 +3,266 @@
|
||||||
<el-drawer v-if="isOpen" :visible.sync="isOpen" direction="rtl" size="50%" style="padding-left: 20px">
|
<el-drawer v-if="isOpen" :visible.sync="isOpen" direction="rtl" size="50%" style="padding-left: 20px">
|
||||||
<template slot="title">
|
<template slot="title">
|
||||||
<div>{{ (title) + " 【项目成本产值管理】" }}</div>
|
<div>{{ (title) + " 【项目成本产值管理】" }}</div>
|
||||||
<right-toolbar @queryTable="loadData" :search="false">
|
<right-toolbar @queryTable="doQuery" :search="false">
|
||||||
</right-toolbar>
|
</right-toolbar>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<div style="margin-top:12px;" v-if="form.totalInv">
|
<div style="margin-top:12px;" v-if="form.totalInv">
|
||||||
<el-form ref="form" label-width="160px">
|
<el-form ref="form" label-width="100px">
|
||||||
<el-form-item label="总投资" class="w400">
|
<el-tabs v-model="activeName" @tab-click="handleClick">
|
||||||
<el-input-number :precision="4" v-model="form.totalInv.money" placeholder="请输入总投资">
|
<el-tab-pane label="总投资" name="first">
|
||||||
</el-input-number>
|
<el-form-item label="总投资" class="w400">
|
||||||
<span class="sp-unit">万元</span>
|
<el-input-number :precision="4" v-model="form.totalInv.money" placeholder="请输入总投资">
|
||||||
</el-form-item>
|
</el-input-number>
|
||||||
<div class="div-title fblue" style="color: #409eff;">年度投资</div>
|
<span class="sp-unit">万元</span>
|
||||||
<costYear ref="costYear" @success="doAddYearSuccess">
|
</el-form-item>
|
||||||
|
<div class="div-title fblue" style="color: #409eff;">年度投资</div>
|
||||||
|
<costYear ref="costYear" @success="doAddYearSuccess">
|
||||||
|
|
||||||
</costYear>
|
</costYear>
|
||||||
|
|
||||||
<div class="div-title fblue" style="color: #409eff;border-bottom: solid 1px #409eff;line-height: 40px;">合同金额</div>
|
</el-tab-pane>
|
||||||
<el-row style="margin-top:12px;">
|
<el-tab-pane label="合同金额" name="second">
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="合同金额" class="w200">
|
<el-row style="margin-top:12px;">
|
||||||
<el-input-number :precision="4" v-model="form.contract1.money" placeholder="请输入合同金额">
|
<el-col :span="8">
|
||||||
</el-input-number>
|
<el-form-item label="合同金额" class="w200">
|
||||||
<span class="sp-unit">万元</span>
|
<el-input-number :precision="4" v-model="form.contract1.money"
|
||||||
</el-form-item>
|
placeholder="请输入合同金额">
|
||||||
</el-col>
|
</el-input-number>
|
||||||
<el-col :span="8">
|
<span class="sp-unit">万元</span>
|
||||||
<el-form-item label="合同支付金额" class="w200">
|
</el-form-item>
|
||||||
<el-input-number :precision="4" v-model="form.contract2.money" placeholder="请输入合同支付金额">
|
</el-col>
|
||||||
</el-input-number>
|
<el-col :span="8">
|
||||||
<span class="sp-unit">万元</span>
|
<el-form-item label="建安费金额" class="w200">
|
||||||
</el-form-item>
|
<el-input-number :precision="4" v-model="form.contract2.money"
|
||||||
</el-col>
|
placeholder="建安费金额">
|
||||||
<el-col :span="8">
|
</el-input-number>
|
||||||
<el-form-item label="合同挂账金额" class="w200">
|
<span class="sp-unit">万元</span>
|
||||||
<el-input-number :precision="4" v-model="form.contract3.money" placeholder="请输入合同挂账金额">
|
</el-form-item>
|
||||||
</el-input-number>
|
</el-col>
|
||||||
<span class="sp-unit">万元</span>
|
</el-row>
|
||||||
</el-form-item>
|
<costContract ref="costContract" ></costContract>
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<div class="div-title fblue" style="color: #409eff;border-bottom: solid 1px #409eff;line-height: 40px;">安措费</div>
|
</el-tab-pane>
|
||||||
<el-row style="margin-top:12px;">
|
<el-tab-pane label="安措费" name="third">
|
||||||
<el-col :span="8">
|
<el-row style="margin-top:12px;">
|
||||||
<el-form-item label="安措费金额" class="w200">
|
<el-col :span="8">
|
||||||
<el-input-number :precision="4" v-model="form.safety1.money" placeholder="请输入安措费金额">
|
<el-form-item label="安措费金额" class="w200">
|
||||||
</el-input-number>
|
<el-input-number :precision="4" v-model="form.safety1.money"
|
||||||
<span class="sp-unit">万元</span>
|
placeholder="请输入安措费金额">
|
||||||
</el-form-item>
|
</el-input-number>
|
||||||
</el-col>
|
<span class="sp-unit">万元</span>
|
||||||
<el-col :span="8">
|
</el-form-item>
|
||||||
<el-form-item label="安措支付金额" class="w200">
|
</el-col>
|
||||||
<el-input-number :precision="4" v-model="form.safety2.money" placeholder="请输入安措支付金额">
|
<el-col :span="8">
|
||||||
</el-input-number>
|
<el-form-item label="安措支付金额" class="w200">
|
||||||
<span class="sp-unit">万元</span>
|
<el-input-number :precision="4" disabled v-model="form.safety2.money"
|
||||||
</el-form-item>
|
placeholder="请输入安措支付金额">
|
||||||
</el-col>
|
</el-input-number>
|
||||||
<el-col :span="8">
|
<span class="sp-unit">万元</span>
|
||||||
<el-form-item label="安措挂账金额" class="w200">
|
</el-form-item>
|
||||||
<el-input-number :precision="4" v-model="form.safety3.money" placeholder="请输入安措挂账金额">
|
</el-col>
|
||||||
</el-input-number>
|
<el-col :span="8">
|
||||||
<span class="sp-unit">万元</span>
|
<el-form-item label="安措挂账金额" class="w200">
|
||||||
</el-form-item>
|
<el-input-number :precision="4" disabled v-model="form.safety3.money"
|
||||||
</el-col>
|
placeholder="请输入安措挂账金额">
|
||||||
</el-row>
|
</el-input-number>
|
||||||
|
<span class="sp-unit">万元</span>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<costContract ref="costSafety" @change="costSafetyChange"></costContract>
|
||||||
|
</el-tab-pane>
|
||||||
|
<el-tab-pane label="月度产值" name="fourth">
|
||||||
|
<div class="div-title fblue" style="color: #409eff;">月度产值</div>
|
||||||
|
<costMonth ref="costMonth" @success="doAddYearSuccess"></costMonth>
|
||||||
|
|
||||||
<div class="div-title fblue" style="color: #409eff;">月度产值</div>
|
</el-tab-pane>
|
||||||
<costMonth ref="costMonth" @success="doAddYearSuccess"></costMonth>
|
</el-tabs>
|
||||||
</el-form>
|
|
||||||
<div style="text-align: center;margin-top: 24px;">
|
</el-form>
|
||||||
<el-button type="success" @click="doSave">保存</el-button>
|
<div style="text-align: center;margin-top: 24px;">
|
||||||
</div>
|
<el-button type="success" :loading="loading" @click="doSave">保存</el-button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { listByProjectId,batchUpdate } from "@/api/project/costOutput.js";
|
import { listByProjectId, batchUpdate } from "@/api/project/costOutput.js";
|
||||||
import costYear from './costYear.vue'
|
import costYear from './costYear.vue'
|
||||||
import costMonth from './costMonth.vue'
|
import costMonth from './costMonth.vue'
|
||||||
|
import costContract from './costContract.vue'
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
costYear,costMonth
|
costYear, costMonth,costContract
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
title:'',
|
activeName: 'first',
|
||||||
|
title: '',
|
||||||
isOpen: false,
|
isOpen: false,
|
||||||
prj: null,
|
prj: null,
|
||||||
form:{
|
form: {
|
||||||
totalInv:null,//总投资
|
totalInv: null,//总投资
|
||||||
contract1:null,//合同金额
|
contract1: null,//合同金额
|
||||||
contract2:null,//合同支付金额
|
contract2: null,//合同支付金额
|
||||||
contract3:null,//合同挂账金额
|
safety1: null,//安措金额
|
||||||
safety1:null,//安措金额
|
safety2: null,//安措支付金额
|
||||||
safety2:null,//安措支付金额
|
safety3: null,//安措挂账金额
|
||||||
safety3:null,//安措挂账金额
|
|
||||||
|
|
||||||
},
|
},
|
||||||
yearInv:[],//年度投资
|
yearInv: [],//年度投资
|
||||||
monthInv:[],//月度产值
|
monthInv: [],//月度产值
|
||||||
oldData:[]
|
oldData: [],
|
||||||
|
contract:[],//合同金额明细
|
||||||
|
safety:[],//安措支付明细
|
||||||
|
loading:false,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
mounted() { },
|
methods: {
|
||||||
|
doQuery(){
|
||||||
methods: {
|
this.$confirm('确定刷新数据?', '提示', { type: 'warning' }).then(()=>{
|
||||||
doSave(){
|
this.loadData();
|
||||||
let objs=this.oldData.map(it=>{
|
});
|
||||||
let obj={...it};
|
},
|
||||||
obj.money=obj.money?obj.money*10000:0;
|
costSafetyChange(datas){
|
||||||
|
let m2sum=0;
|
||||||
|
let m3sum=0;
|
||||||
|
datas.forEach(d=>{
|
||||||
|
m2sum+=d.money2;
|
||||||
|
m3sum+=d.money3;
|
||||||
|
});
|
||||||
|
this.form.safety2.money=m2sum;
|
||||||
|
this.form.safety3.money=m3sum;
|
||||||
|
},
|
||||||
|
handleClick(tab, event) {
|
||||||
|
},
|
||||||
|
checkData(){
|
||||||
|
if(!this.$refs.costContract.checkData()){
|
||||||
|
this.activeName="second";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(!this.$refs.costSafety.checkData()){
|
||||||
|
this.activeName="third";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
doSave() {
|
||||||
|
if(!this.checkData()){
|
||||||
|
this.$message.error("请填写数据!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let objs = this.oldData.filter(d=>d.costType!=11 && d.costType!=12).map(it => {
|
||||||
|
let obj = { ...it };
|
||||||
|
obj.money = obj.money ? obj.money * 10000 : 0;
|
||||||
return obj;
|
return obj;
|
||||||
});
|
});
|
||||||
batchUpdate(objs).then(d=>{
|
let contractObjs=this.$refs.costContract.dataList.map(it=>{
|
||||||
if(d.code!=200){
|
let obj={...it};
|
||||||
this.loadData();
|
obj.money = obj.money ? obj.money * 10000 : 0;
|
||||||
}else{
|
obj.money2=obj.money2?obj.money2*10000:0;
|
||||||
this.$modal.msgSuccess("保存成功");
|
obj.date1=this.$dt(obj.date1).format("YYYY-MM-DD");
|
||||||
}
|
return obj;
|
||||||
});
|
});
|
||||||
|
let safetyObjs=this.$refs.costSafety.dataList.map(it=>{
|
||||||
|
let obj={...it};
|
||||||
|
obj.money = obj.money ? obj.money * 10000 : 0;
|
||||||
|
obj.money2=obj.money2?obj.money2*10000:0;
|
||||||
|
obj.date1=this.$dt(obj.date1).format("YYYY-MM-DD");
|
||||||
|
return obj;
|
||||||
|
});
|
||||||
|
this.loading=true;
|
||||||
|
batchUpdate([...objs,...contractObjs,...safetyObjs]).then(d => {
|
||||||
|
this.loading=false;
|
||||||
|
if (d.code != 200) {
|
||||||
|
this.loadData();
|
||||||
|
} else {
|
||||||
|
this.$modal.msgSuccess("保存成功");
|
||||||
|
this.loadData();
|
||||||
|
}
|
||||||
|
});
|
||||||
},
|
},
|
||||||
doAddYearSuccess(){
|
doAddYearSuccess() {
|
||||||
this.loadData();
|
this.loadData();
|
||||||
},
|
},
|
||||||
resetData(tmps){
|
resetData(tmps) {
|
||||||
if(this.oldData.length==0){
|
if (this.oldData.length == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
tmps.forEach(it=>{
|
tmps.forEach(it => {
|
||||||
let objs=this.oldData.filter(d=>d.id==it.id);
|
let objs = this.oldData.filter(d => d.id == it.id);
|
||||||
if(objs.length>0){
|
if (objs.length > 0) {
|
||||||
it.money=objs[0].money;
|
it.money = objs[0].money;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
loadData(init) {
|
loadData(init) {
|
||||||
listByProjectId(this.prj.id).then((d) => {
|
listByProjectId(this.prj.id).then((d) => {
|
||||||
let tmps=(d.data||[]).map(it=>{
|
let tmps = (d.data || []).map(it => {
|
||||||
it.money=it.money?it.money/10000.0:0;
|
it.money = it.money ? it.money / 10000.0 : 0;
|
||||||
|
it.money2 = it.money2 ? it.money2 / 10000.0 : 0;
|
||||||
|
it.money3=it.money-it.money2;
|
||||||
|
it.isErr=false;
|
||||||
|
it.date1=this.$dt(it.date1)
|
||||||
return it;
|
return it;
|
||||||
});
|
});
|
||||||
this.resetData(tmps);
|
this.resetData(tmps);
|
||||||
this.oldData=tmps;
|
this.oldData = tmps;
|
||||||
this.form.totalInv=this.getValue(tmps,1);
|
this.form.totalInv = this.getValue(tmps, 1);
|
||||||
this.yearInv=tmps.filter(it=>it.costType==2);
|
this.yearInv = tmps.filter(it => it.costType == 2);
|
||||||
this.form.contract1=this.getValue(tmps,3);
|
this.contract=tmps.filter(it=>it.costType==11);
|
||||||
this.form.contract2=this.getValue(tmps,4);
|
this.safety=tmps.filter(it=>it.costType==12);
|
||||||
this.form.contract3=this.getValue(tmps,5);
|
|
||||||
this.form.safety1=this.getValue(tmps,6);
|
this.form.contract1 = this.getValue(tmps, 3);
|
||||||
this.form.safety2=this.getValue(tmps,7);
|
this.form.contract2 = this.getValue(tmps, 10);
|
||||||
this.form.safety3=this.getValue(tmps,8);
|
|
||||||
let objs=tmps.filter(it=>it.costType==9);
|
this.form.safety1 = this.getValue(tmps, 6);
|
||||||
let obj={};
|
this.form.safety2 = this.getValue(tmps, 7);
|
||||||
this.monthInv=[];
|
this.form.safety3 = this.getValue(tmps, 8);
|
||||||
objs.forEach(it=>{
|
let objs = tmps.filter(it => it.costType == 9);
|
||||||
if(!obj[it.year]){
|
let obj = {};
|
||||||
obj[it.year]=[];
|
this.monthInv = [];
|
||||||
|
objs.forEach(it => {
|
||||||
|
if (!obj[it.year]) {
|
||||||
|
obj[it.year] = [];
|
||||||
}
|
}
|
||||||
obj[it.year].push(it);
|
obj[it.year].push(it);
|
||||||
});
|
});
|
||||||
for(let k in obj){
|
for (let k in obj) {
|
||||||
this.monthInv.push({
|
this.monthInv.push({
|
||||||
year:k,
|
year: k,
|
||||||
value:obj[k]
|
value: obj[k]
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
setTimeout(()=>{
|
setTimeout(() => {
|
||||||
this.$refs.costYear.init(this.yearInv,this.prj);
|
this.$refs.costYear.init(this.yearInv, this.prj);
|
||||||
this.$refs.costMonth.init(this.monthInv,this.prj);
|
this.$refs.costMonth.init(this.monthInv, this.prj);
|
||||||
},400)
|
this.$refs.costContract.init(this.contract,this.prj,11);
|
||||||
|
this.$refs.costSafety.init(this.safety,this.prj,12);
|
||||||
|
}, 400)
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
getValue(tmps,type){
|
getValue(tmps, type) {
|
||||||
let objs=tmps.filter(d=>d.costType==type);
|
let objs = tmps.filter(d => d.costType == type);
|
||||||
return objs.length>0?objs[0]:{};
|
if(objs.length>0){
|
||||||
|
return objs[0];
|
||||||
|
}
|
||||||
|
let obj={
|
||||||
|
money:0,
|
||||||
|
costType:type,
|
||||||
|
projectId:this.prj.id
|
||||||
|
};
|
||||||
|
tmps.push(obj);
|
||||||
|
return obj;
|
||||||
},
|
},
|
||||||
show(prj) {
|
show(prj) {
|
||||||
this.prj = prj;
|
this.prj = prj;
|
||||||
|
@ -192,7 +273,7 @@ export default {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.project-cost-outpu-drawer {
|
.project-cost-outpu-drawer {
|
||||||
::v-deep .el-drawer {
|
::v-deep .el-drawer {
|
||||||
|
@ -205,40 +286,45 @@ export default {
|
||||||
|
|
||||||
::v-deep .el-drawer__body {
|
::v-deep .el-drawer__body {
|
||||||
padding: 0px 24px;
|
padding: 0px 24px;
|
||||||
.el-popover__reference-wrapper{
|
|
||||||
|
.el-popover__reference-wrapper {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 0px;
|
right: 0px;
|
||||||
z-index: 999;
|
z-index: 999;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-form {
|
.el-form {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
.el-form-item {
|
.el-form-item {
|
||||||
margin-bottom: 8px !important;
|
|
||||||
&.w400{
|
&.w400 {
|
||||||
.el-input-number{
|
.el-input-number {
|
||||||
width:400px;
|
width: 400px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.el-input-number{
|
|
||||||
.el-input-number__decrease{
|
.el-input-number {
|
||||||
|
.el-input-number__decrease {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
.el-input-number__increase{
|
|
||||||
|
.el-input-number__increase {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
.el-input__inner{
|
|
||||||
|
.el-input__inner {
|
||||||
padding: 0px 12px;
|
padding: 0px 12px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.sp-unit{
|
|
||||||
margin-left:12px;
|
.sp-unit {
|
||||||
|
margin-left: 12px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.div-title{
|
|
||||||
|
.div-title {}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.lvl-3 {
|
.lvl-3 {
|
||||||
|
|
|
@ -60,7 +60,9 @@ export default {
|
||||||
if(d.filter(it=>it.year==new Date().getFullYear()).length>0){
|
if(d.filter(it=>it.year==new Date().getFullYear()).length>0){
|
||||||
this.activeName=""+new Date().getFullYear()
|
this.activeName=""+new Date().getFullYear()
|
||||||
}else{
|
}else{
|
||||||
this.activeName=""+d.year;
|
if(d.length>0){
|
||||||
|
this.activeName=""+d[0].year;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
sur_project_cost_output
|
||||||
|
增加字段
|
||||||
|
money2
|
||||||
|
date1
|
||||||
|
date2
|
||||||
|
|
||||||
|
数据
|
||||||
|
项目成本产值类型
|
||||||
|
project_cost_output_type
|
||||||
|
|
||||||
|
建安费金额 10
|
||||||
|
工程进度款支付 11
|
||||||
|
安措费支付明细 12
|
|
@ -156,9 +156,7 @@ public class SurProjectCostOutputController extends BaseController
|
||||||
@PostMapping("/batchUpdate")
|
@PostMapping("/batchUpdate")
|
||||||
public AjaxResult batchUpdate(@RequestBody List<SurProjectCostOutput> list){
|
public AjaxResult batchUpdate(@RequestBody List<SurProjectCostOutput> list){
|
||||||
try {
|
try {
|
||||||
for (SurProjectCostOutput it : list) {
|
surProjectCostOutputService.batchUpdate(list);
|
||||||
surProjectCostOutputService.updateSurProjectCostOutput(it);
|
|
||||||
}
|
|
||||||
return AjaxResult.success("保存成功!");
|
return AjaxResult.success("保存成功!");
|
||||||
}catch (Exception ex){
|
}catch (Exception ex){
|
||||||
return AjaxResult.error(ex.getMessage());
|
return AjaxResult.error(ex.getMessage());
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
package com.yanzhu.jh.project.domain;
|
package com.yanzhu.jh.project.domain;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||||
import com.ruoyi.common.annotation.Excel;
|
import com.ruoyi.common.annotation.Excel;
|
||||||
import com.ruoyi.common.core.domain.BaseEntity;
|
import com.ruoyi.common.core.domain.BaseEntity;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目成本产值对象 sur_project_cost_output
|
* 项目成本产值对象 sur_project_cost_output
|
||||||
*
|
*
|
||||||
|
@ -42,6 +45,20 @@ public class SurProjectCostOutput extends BaseEntity
|
||||||
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
|
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
|
||||||
private Long isDel;
|
private Long isDel;
|
||||||
|
|
||||||
|
/** 金额2 */
|
||||||
|
@Excel(name = "金额2")
|
||||||
|
private Long money2;
|
||||||
|
|
||||||
|
/** 日期1 */
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@Excel(name = "日期1", width = 30, dateFormat = "yyyy-MM-dd")
|
||||||
|
private Date date1;
|
||||||
|
|
||||||
|
/** 日期2 */
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@Excel(name = "日期2", width = 30, dateFormat = "yyyy-MM-dd")
|
||||||
|
private Date date2;
|
||||||
|
|
||||||
public void setId(Long id)
|
public void setId(Long id)
|
||||||
{
|
{
|
||||||
this.id = id;
|
this.id = id;
|
||||||
|
@ -105,6 +122,33 @@ public class SurProjectCostOutput extends BaseEntity
|
||||||
{
|
{
|
||||||
return isDel;
|
return isDel;
|
||||||
}
|
}
|
||||||
|
public void setMoney2(Long money2)
|
||||||
|
{
|
||||||
|
this.money2 = money2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getMoney2()
|
||||||
|
{
|
||||||
|
return money2;
|
||||||
|
}
|
||||||
|
public void setDate1(Date date1)
|
||||||
|
{
|
||||||
|
this.date1 = date1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDate1()
|
||||||
|
{
|
||||||
|
return date1;
|
||||||
|
}
|
||||||
|
public void setDate2(Date date2)
|
||||||
|
{
|
||||||
|
this.date2 = date2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDate2()
|
||||||
|
{
|
||||||
|
return date2;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
|
@ -121,6 +165,9 @@ public class SurProjectCostOutput extends BaseEntity
|
||||||
.append("createTime", getCreateTime())
|
.append("createTime", getCreateTime())
|
||||||
.append("updateBy", getUpdateBy())
|
.append("updateBy", getUpdateBy())
|
||||||
.append("updateTime", getUpdateTime())
|
.append("updateTime", getUpdateTime())
|
||||||
|
.append("money2", getMoney2())
|
||||||
|
.append("date1", getDate1())
|
||||||
|
.append("date2", getDate2())
|
||||||
.toString();
|
.toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -73,4 +73,11 @@ public interface ISurProjectCostOutputService
|
||||||
public List<SurProjectCostOutput> selectYearAndMonth(SurProjectCostOutput where);
|
public List<SurProjectCostOutput> selectYearAndMonth(SurProjectCostOutput where);
|
||||||
|
|
||||||
public List<SurProjectCostOutput> sumByDeptId(SurProjectCostOutput where);
|
public List<SurProjectCostOutput> sumByDeptId(SurProjectCostOutput where);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量操作数据
|
||||||
|
* @param list
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public int batchUpdate(List<SurProjectCostOutput> list);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.yanzhu.jh.project.service.impl;
|
package com.yanzhu.jh.project.service.impl;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -127,6 +128,8 @@ public class SurProjectCostOutputServiceImpl implements ISurProjectCostOutputSer
|
||||||
insertSurProjectCostOutput(it);
|
insertSurProjectCostOutput(it);
|
||||||
it.setCostType(8l);//安措挂账金额
|
it.setCostType(8l);//安措挂账金额
|
||||||
insertSurProjectCostOutput(it);
|
insertSurProjectCostOutput(it);
|
||||||
|
it.setCostType(10l);//建安费金额
|
||||||
|
insertSurProjectCostOutput(it);
|
||||||
it.setCostType(9l);//月度投资
|
it.setCostType(9l);//月度投资
|
||||||
it.setYear(year*1l);
|
it.setYear(year*1l);
|
||||||
for(int i=1;i<=12;i++){
|
for(int i=1;i<=12;i++){
|
||||||
|
@ -166,5 +169,40 @@ public class SurProjectCostOutputServiceImpl implements ISurProjectCostOutputSer
|
||||||
public List<SurProjectCostOutput> sumByDeptId(SurProjectCostOutput where) {
|
public List<SurProjectCostOutput> sumByDeptId(SurProjectCostOutput where) {
|
||||||
return surProjectCostOutputMapper.sumByDeptId(where);
|
return surProjectCostOutputMapper.sumByDeptId(where);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int batchUpdate(List<SurProjectCostOutput> list) {
|
||||||
|
SurProjectCostOutput where=new SurProjectCostOutput();
|
||||||
|
where.setCostType(11l);//工程进度款支付
|
||||||
|
List<SurProjectCostOutput> contractList=selectSurProjectCostOutputList(where);
|
||||||
|
where.setCostType(12l);//安措费支付明细
|
||||||
|
List<SurProjectCostOutput> safetyList=selectSurProjectCostOutputList(where);
|
||||||
|
List<Long> contractIds=new ArrayList<>();
|
||||||
|
List<Long> safetyIds=new ArrayList<>();
|
||||||
|
for(SurProjectCostOutput it:list){
|
||||||
|
if(it.getId()!=null){
|
||||||
|
updateSurProjectCostOutput(it);
|
||||||
|
if(it.getCostType().equals(11l)){
|
||||||
|
contractIds.add(it.getId());
|
||||||
|
}
|
||||||
|
if(it.getCostType().equals(12l)){
|
||||||
|
safetyIds.add(it.getId());
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
insertSurProjectCostOutput(it);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(SurProjectCostOutput it :contractList){
|
||||||
|
if(!contractIds.contains(it.getId())){
|
||||||
|
deleteSurProjectCostOutputById(it.getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(SurProjectCostOutput it :safetyList){
|
||||||
|
if(!safetyIds.contains(it.getId())){
|
||||||
|
deleteSurProjectCostOutputById(it.getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list.size();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,10 +17,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<result property="createTime" column="create_time" />
|
<result property="createTime" column="create_time" />
|
||||||
<result property="updateBy" column="update_by" />
|
<result property="updateBy" column="update_by" />
|
||||||
<result property="updateTime" column="update_time" />
|
<result property="updateTime" column="update_time" />
|
||||||
|
<result property="money2" column="money2" />
|
||||||
|
<result property="date1" column="date1" />
|
||||||
|
<result property="date2" column="date2" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectSurProjectCostOutputVo">
|
<sql id="selectSurProjectCostOutputVo">
|
||||||
select id, project_id, money, year, month, cost_type, remark, is_del, create_by, create_time, update_by, update_time from sur_project_cost_output
|
select id, project_id, money, year, month, cost_type, remark, is_del, create_by, create_time, update_by, update_time,money2,date1,date2 from sur_project_cost_output
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="selectSurProjectCostOutputList" parameterType="SurProjectCostOutput" resultMap="SurProjectCostOutputResult">
|
<select id="selectSurProjectCostOutputList" parameterType="SurProjectCostOutput" resultMap="SurProjectCostOutputResult">
|
||||||
|
@ -32,6 +35,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="month != null "> and month = #{month}</if>
|
<if test="month != null "> and month = #{month}</if>
|
||||||
<if test="costType != null "> and cost_type = #{costType}</if>
|
<if test="costType != null "> and cost_type = #{costType}</if>
|
||||||
<if test="isDel != null "> and is_del = #{isDel}</if>
|
<if test="isDel != null "> and is_del = #{isDel}</if>
|
||||||
|
<if test="money2 != null "> and money2 = #{money2}</if>
|
||||||
|
<if test="date1 != null "> and date1 = #{date1}</if>
|
||||||
|
<if test="date2 != null "> and date2 = #{date2}</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
@ -54,6 +60,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="createTime != null">create_time,</if>
|
<if test="createTime != null">create_time,</if>
|
||||||
<if test="updateBy != null">update_by,</if>
|
<if test="updateBy != null">update_by,</if>
|
||||||
<if test="updateTime != null">update_time,</if>
|
<if test="updateTime != null">update_time,</if>
|
||||||
|
<if test="money2 != null">money2,</if>
|
||||||
|
<if test="date1 != null">date1,</if>
|
||||||
|
<if test="date2 != null">date2,</if>
|
||||||
</trim>
|
</trim>
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
<if test="projectId != null">#{projectId},</if>
|
<if test="projectId != null">#{projectId},</if>
|
||||||
|
@ -67,6 +76,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="createTime != null">#{createTime},</if>
|
<if test="createTime != null">#{createTime},</if>
|
||||||
<if test="updateBy != null">#{updateBy},</if>
|
<if test="updateBy != null">#{updateBy},</if>
|
||||||
<if test="updateTime != null">#{updateTime},</if>
|
<if test="updateTime != null">#{updateTime},</if>
|
||||||
|
<if test="money2 != null">#{money2},</if>
|
||||||
|
<if test="date1 != null">#{date1},</if>
|
||||||
|
<if test="date2 != null">#{date2},</if>
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
@ -84,6 +96,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="createTime != null">create_time = #{createTime},</if>
|
<if test="createTime != null">create_time = #{createTime},</if>
|
||||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||||
|
<if test="money2 != null">money2 = #{money2},</if>
|
||||||
|
<if test="date1 != null">date1 = #{date1},</if>
|
||||||
|
<if test="date2 != null">date2 = #{date2},</if>
|
||||||
</trim>
|
</trim>
|
||||||
where id = #{id}
|
where id = #{id}
|
||||||
</update>
|
</update>
|
||||||
|
|
Loading…
Reference in New Issue