update code
parent
340e2fdcd4
commit
9ceceb6f77
|
@ -65,4 +65,12 @@ export function addMonthInvestment(data){
|
|||
method: 'post',
|
||||
data:data
|
||||
})
|
||||
}
|
||||
|
||||
export function batchUpdate(datas){
|
||||
return request({
|
||||
url: '/project/costOutput/batchUpdate',
|
||||
method: 'post',
|
||||
data:datas
|
||||
})
|
||||
}
|
|
@ -1,6 +1,17 @@
|
|||
<template>
|
||||
<div class="cost-month" style="border:solid 1px #409eff;margin: 12px 0px;padding: 6px 12px 0px;position: relative;">
|
||||
<el-button size="small" type="primary" style="position: absolute;top:10px;right:12px;">增加年份</el-button>
|
||||
<el-popover placement="top" v-model="showPop2">
|
||||
<p>选择年份</p>
|
||||
<div style="margin-bottom: 12px;">
|
||||
<el-date-picker v-model="selYear" type="year" placeholder="选择年" :picker-options="{disabledDate:doPick}" >
|
||||
</el-date-picker>
|
||||
</div>
|
||||
<div style="text-align: right; margin: 0">
|
||||
<el-button size="mini" type="text" @click="showPop2 = false">取消</el-button>
|
||||
<el-button type="primary" size="mini" @click="doAddYear">确定</el-button>
|
||||
</div>
|
||||
<el-button slot="reference" size="mini" type="success" style="margin-right: 12px;" round>增加年份</el-button>
|
||||
</el-popover>
|
||||
<el-tabs v-model="activeName">
|
||||
<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">
|
||||
|
@ -16,14 +27,17 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import {addMonthInvestment} from "@/api/project/costOutput.js";
|
||||
export default {
|
||||
name: 'RuoyiUiCostMonth',
|
||||
|
||||
data() {
|
||||
return {
|
||||
selYear:'',
|
||||
names:['','一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'],
|
||||
activeName:'',
|
||||
monthInv:[]
|
||||
monthInv:[],
|
||||
showPop2:false,
|
||||
};
|
||||
},
|
||||
|
||||
|
@ -32,6 +46,14 @@ export default {
|
|||
},
|
||||
|
||||
methods: {
|
||||
doPick(a,b){
|
||||
return this.yearInv.filter(d=>d.year==a.getFullYear()).length>0;
|
||||
},
|
||||
doAddYear(){
|
||||
addMonthInvestment({year:this.$dt(this.selYear).$y,projectId:this.prj.id,costType:9}).then(d=>{
|
||||
this.$emit('success');
|
||||
});
|
||||
},
|
||||
init(d){
|
||||
this.monthInv=d;
|
||||
if(d.filter(it=>it.year==new Date().getFullYear()).length>0){
|
||||
|
|
|
@ -6,15 +6,15 @@
|
|||
<right-toolbar @queryTable="loadData" :search="false">
|
||||
</right-toolbar>
|
||||
</template>
|
||||
<div style="margin-top:12px;">
|
||||
<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" placeholder="请输入总投资">
|
||||
<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">
|
||||
<costYear ref="costYear" @success="doAddYearSuccess">
|
||||
|
||||
</costYear>
|
||||
|
||||
|
@ -22,21 +22,21 @@
|
|||
<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" placeholder="请输入合同金额">
|
||||
<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" placeholder="请输入合同支付金额">
|
||||
<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" placeholder="请输入合同挂账金额">
|
||||
<el-input-number :precision="4" v-model="form.contract3.money" placeholder="请输入合同挂账金额">
|
||||
</el-input-number>
|
||||
<span class="sp-unit">万元</span>
|
||||
</el-form-item>
|
||||
|
@ -47,21 +47,21 @@
|
|||
<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" placeholder="请输入安措金额">
|
||||
<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" placeholder="请输入安措支付金额">
|
||||
<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" placeholder="请输入安措挂账金额">
|
||||
<el-input-number :precision="4" v-model="form.safety3.money" placeholder="请输入安措挂账金额">
|
||||
</el-input-number>
|
||||
<span class="sp-unit">万元</span>
|
||||
</el-form-item>
|
||||
|
@ -69,10 +69,10 @@
|
|||
</el-row>
|
||||
|
||||
<div class="div-title fblue" style="color: #409eff;">月度投资</div>
|
||||
<costMonth ref="costMonth"></costMonth>
|
||||
<costMonth ref="costMonth" @success="doAddYearSuccess"></costMonth>
|
||||
</el-form>
|
||||
<div style="text-align: center;margin-top: 24px;">
|
||||
<el-button type="success">保存</el-button>
|
||||
<el-button type="success" @click="doSave">保存</el-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -82,7 +82,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import { listByProjectId,addYearInvestment,addMonthInvestment } from "@/api/project/costOutput.js";
|
||||
import { listByProjectId,batchUpdate } from "@/api/project/costOutput.js";
|
||||
import costYear from './costYear.vue'
|
||||
import costMonth from './costMonth.vue'
|
||||
export default {
|
||||
|
@ -105,27 +105,60 @@ export default {
|
|||
|
||||
},
|
||||
yearInv:[],//年度投资
|
||||
monthInv:[],//月度产值
|
||||
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();
|
||||
}
|
||||
});
|
||||
},
|
||||
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||[];
|
||||
this.form.totalInv=this.getValue(tmps,1).money||0;
|
||||
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).money||0;
|
||||
this.form.contract2=this.getValue(tmps,4).money||0;
|
||||
this.form.contract3=this.getValue(tmps,5).money||0;
|
||||
this.form.safety1=this.getValue(tmps,6).money||0;
|
||||
this.form.safety2=this.getValue(tmps,7).money||0;
|
||||
this.form.safety3=this.getValue(tmps,8).money||0;
|
||||
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]=[];
|
||||
|
@ -138,8 +171,10 @@ export default {
|
|||
value:obj[k]
|
||||
})
|
||||
}
|
||||
this.$refs.costYear.init(this.yearInv);
|
||||
this.$refs.costMonth.init(this.monthInv);
|
||||
setTimeout(()=>{
|
||||
this.$refs.costYear.init(this.yearInv,this.prj);
|
||||
this.$refs.costMonth.init(this.monthInv,this.prj);
|
||||
},400)
|
||||
});
|
||||
},
|
||||
getValue(tmps,type){
|
||||
|
@ -168,7 +203,11 @@ export default {
|
|||
|
||||
::v-deep .el-drawer__body {
|
||||
padding: 0px 24px;
|
||||
|
||||
.el-popover__reference-wrapper{
|
||||
position: absolute;
|
||||
right: 0px;
|
||||
z-index: 999;
|
||||
}
|
||||
.el-form {
|
||||
overflow: hidden;
|
||||
|
||||
|
|
|
@ -1,6 +1,20 @@
|
|||
<template>
|
||||
<div class="cost-year" style="border:solid 1px #409eff;margin: 12px 0px;padding: 12px 12px 0px;position: relative;">
|
||||
<el-button size="small" type="primary" style="position: absolute;top:10px;right:12px;">增加年份</el-button>
|
||||
|
||||
<el-popover placement="top" v-model="showPop2">
|
||||
<p>选择年份</p>
|
||||
<div style="margin-bottom: 12px;">
|
||||
<el-date-picker v-model="selYear" type="year" placeholder="选择年" :picker-options="{disabledDate:doPick}" >
|
||||
</el-date-picker>
|
||||
</div>
|
||||
<div style="text-align: right; margin: 0">
|
||||
<el-button size="mini" type="text" @click="showPop2 = false">取消</el-button>
|
||||
<el-button type="primary" size="mini" @click="doAddYear">确定</el-button>
|
||||
</div>
|
||||
<el-button slot="reference" size="mini" type="success" style="margin-right: 12px;" round>增加年份</el-button>
|
||||
</el-popover>
|
||||
|
||||
|
||||
<el-tabs v-model="activeName">
|
||||
<el-tab-pane v-for="(it,idx) in yearInv" :label="''+it.year" :name="''+it.year" :key="idx">
|
||||
<el-form-item label="年度投资" class="w400">
|
||||
|
@ -14,13 +28,16 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import {addYearInvestment} from "@/api/project/costOutput.js";
|
||||
export default {
|
||||
name: 'RuoyiUiCostYear',
|
||||
|
||||
data() {
|
||||
return {
|
||||
selYear:'',
|
||||
activeName:'',
|
||||
yearInv:[]
|
||||
yearInv:[],
|
||||
showPop2:false,
|
||||
};
|
||||
},
|
||||
|
||||
|
@ -29,7 +46,16 @@ export default {
|
|||
},
|
||||
|
||||
methods: {
|
||||
init(d){
|
||||
doPick(a,b){
|
||||
return this.yearInv.filter(d=>d.year==a.getFullYear()).length>0;
|
||||
},
|
||||
doAddYear(){
|
||||
addYearInvestment({year:this.$dt(this.selYear).$y,projectId:this.prj.id,costType:2}).then(d=>{
|
||||
this.$emit('success');
|
||||
});
|
||||
},
|
||||
init(d,prj){
|
||||
this.prj=prj;
|
||||
this.yearInv=d;
|
||||
if(d.filter(it=>it.year==new Date().getFullYear()).length>0){
|
||||
this.activeName=""+new Date().getFullYear()
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
package com.yanzhu.jh.bigscreen.web.controller;
|
||||
|
||||
import com.ruoyi.common.constant.Constants;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.redis.RedisCache;
|
||||
import com.yanzhu.jh.project.domain.SurProjectCostOutput;
|
||||
import com.yanzhu.jh.project.service.ISurProjectCostOutputService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/bgscreen/costOut")
|
||||
public class ProjectCostOutputController {
|
||||
@Autowired
|
||||
private ISurProjectCostOutputService surProjectCostOutputService;
|
||||
@Autowired
|
||||
private RedisCache redisCache;
|
||||
|
||||
@PostMapping("/selectYearAndMonth")
|
||||
public AjaxResult selectYearAndMonth(@RequestBody SurProjectCostOutput where){
|
||||
String key="bgscreen_costOut_selectYearAndMonth_"+where.getYear()+"-"+where.getMonth()+"-"+where.getProjectId();
|
||||
Object obj=redisCache.getCacheObject(key);
|
||||
if(obj!=null){
|
||||
return AjaxResult.success(obj);
|
||||
}
|
||||
List<SurProjectCostOutput> list=surProjectCostOutputService.selectYearAndMonth(where);
|
||||
if(list.size()==0){
|
||||
surProjectCostOutputService.initProject(where.getProjectId());
|
||||
}
|
||||
list=surProjectCostOutputService.selectYearAndMonth(where);
|
||||
redisCache.setCacheObject(key, list, Constants.BIGSCREEN_QUERY_CACHE, TimeUnit.MINUTES);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
}
|
|
@ -148,5 +148,17 @@ public class SurProjectCostOutputController extends BaseController
|
|||
}
|
||||
|
||||
|
||||
@PostMapping("/batchUpdate")
|
||||
public AjaxResult batchUpdate(@RequestBody List<SurProjectCostOutput> list){
|
||||
try {
|
||||
for (SurProjectCostOutput it : list) {
|
||||
surProjectCostOutputService.updateSurProjectCostOutput(it);
|
||||
}
|
||||
return AjaxResult.success("保存成功!");
|
||||
}catch (Exception ex){
|
||||
return AjaxResult.error(ex.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -59,4 +59,6 @@ public interface SurProjectCostOutputMapper
|
|||
* @return 结果
|
||||
*/
|
||||
public int deleteSurProjectCostOutputByIds(Long[] ids);
|
||||
|
||||
public List<SurProjectCostOutput> selectYearAndMonth(SurProjectCostOutput where);
|
||||
}
|
||||
|
|
|
@ -69,4 +69,6 @@ public interface ISurProjectCostOutputService
|
|||
public void addYearInvestment(SurProjectCostOutput where);
|
||||
|
||||
public void addMonthInvestment(SurProjectCostOutput where);
|
||||
|
||||
public List<SurProjectCostOutput> selectYearAndMonth(SurProjectCostOutput where);
|
||||
}
|
||||
|
|
|
@ -156,5 +156,10 @@ public class SurProjectCostOutputServiceImpl implements ISurProjectCostOutputSer
|
|||
insertSurProjectCostOutput(it);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SurProjectCostOutput> selectYearAndMonth(SurProjectCostOutput where) {
|
||||
return surProjectCostOutputMapper.selectYearAndMonth(where);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -98,4 +98,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<select id="selectYearAndMonth" parameterType="SurProjectCostOutput" resultMap="SurProjectCostOutputResult">
|
||||
SELECT *
|
||||
FROM sur_project_cost_output
|
||||
WHERE project_id = #{projectId}
|
||||
and (
|
||||
(YEAR=#{year} AND cost_type=2) OR cost_type NOT IN (2, 9)
|
||||
OR (cost_type = 9 AND YEAR = #{year} AND MONTH <= #{month})
|
||||
OR (cost_type = 9 AND YEAR < #{year})
|
||||
)
|
||||
</select>
|
||||
</mapper>
|
Loading…
Reference in New Issue