Commit 42ff28d0 authored by Administrator's avatar Administrator

Merge remote-tracking branch 'origin/V20231129-中建一局二公司' into V20231129-中建一局二公司

parents 3478638a 1548dd20
...@@ -3,6 +3,7 @@ package com.dsk.cscec.service.impl; ...@@ -3,6 +3,7 @@ package com.dsk.cscec.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.io.file.FileNameUtil;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
...@@ -83,9 +84,9 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary ...@@ -83,9 +84,9 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary
// cbProjectFileMapper.removeById(cbProjectFile.getId()); // cbProjectFileMapper.removeById(cbProjectFile.getId());
// } else { // } else {
try { try {
if (cbProjectFile.getFileName().equals("成本汇总项目结构汇总")) { if (FileNameUtil.getPrefix(cbProjectFile.getFileName()).equals("成本汇总项目结构汇总")) {
saveCbSummaryProject(projectId, cbProjectFile); saveCbSummaryProject(projectId, cbProjectFile);
} else if (cbProjectFile.getFileName().equals("成本汇总按成本科目")) { } else if (FileNameUtil.getPrefix(cbProjectFile.getFileName()).equals("成本汇总按成本科目")) {
saveCbSummaryCostAccount(projectId, cbProjectFile); saveCbSummaryCostAccount(projectId, cbProjectFile);
} else { } else {
throw new ServiceException("文件名错误"); throw new ServiceException("文件名错误");
......
...@@ -262,6 +262,17 @@ export const updateFeedSummaryRowsApi = (data) => request({ ...@@ -262,6 +262,17 @@ export const updateFeedSummaryRowsApi = (data) => request({
data data
}); });
/**
* 推送工程用量
* @param {*} data
* @returns
*/
export const pushFeedSummaryRowsApi = (data) => request({
url: "/cb/quantity/summary/pushData",
method: "put",
data
});
//工程项目信息 //工程项目信息
......
...@@ -315,10 +315,11 @@ export default { ...@@ -315,10 +315,11 @@ export default {
.el-table__fixed-right-patch { .el-table__fixed-right-patch {
width: 16px !important; width: 16px !important;
z-index: 9; z-index: 9;
top: 0px;
background: #f0f3fa; background: #f0f3fa;
border: 1px solid #e6eaf1; border: 1px solid #e6eaf1;
border-left: unset; border-left: unset;
border-bottom: unset; border-top: unset;
} }
// 自动适配下 减去滚动条高度 // 自动适配下 减去滚动条高度
.el-table__fixed { .el-table__fixed {
......
...@@ -6,12 +6,13 @@ import Decimal from "decimal.js"; ...@@ -6,12 +6,13 @@ import Decimal from "decimal.js";
* @param {*} num2 * @param {*} num2
* @returns * @returns
*/ */
export const add = (num1, num2) => { export const add = (num1, num2, digit = 9, omit = false) => {
const flag = (!parseFloat(num1) && parseFloat(num1) != "0") || (!parseFloat(num2) && parseFloat(num2) != "0"); const flag = (!parseFloat(num1) && parseFloat(num1) != "0") || (!parseFloat(num2) && parseFloat(num2) != "0");
if (flag) throw new Error("传入参数错误,参数不为number"); if (flag) throw new Error("传入参数错误,参数不为number");
const decimal1 = new Decimal(num1); const decimal1 = new Decimal(num1);
const decimal2 = new Decimal(num2); const decimal2 = new Decimal(num2);
return decimal1.plus(decimal2).toString(); const result = decimal1.plus(decimal2);
return omit ? result.toFixed(digit, Decimal.ROUND_UP) : result.toDecimalPlaces(digit, Decimal.ROUND_UP).toString();
}; };
/** /**
...@@ -20,11 +21,13 @@ export const add = (num1, num2) => { ...@@ -20,11 +21,13 @@ export const add = (num1, num2) => {
* @param {*} num2 * @param {*} num2
* @returns * @returns
*/ */
export const subtract = (num1, num2) => { export const subtract = (num1, num2, digit = 9, omit = false) => {
const flag = (!parseFloat(num1) && parseFloat(num1) != "0") || (!parseFloat(num2) && parseFloat(num2) != "0"); const flag = (!parseFloat(num1) && parseFloat(num1) != "0") || (!parseFloat(num2) && parseFloat(num2) != "0");
if (flag) throw new Error("传入参数错误,参数不为number");
const decimal1 = new Decimal(num1); const decimal1 = new Decimal(num1);
const decimal2 = new Decimal(num2); const decimal2 = new Decimal(num2);
return decimal1.minus(decimal2).toString(); const result = decimal1.minus(decimal2);
return omit ? result.toFixed(digit, Decimal.ROUND_UP) : result.toDecimalPlaces(digit, Decimal.ROUND_UP).toString();
}; };
/** /**
...@@ -33,11 +36,13 @@ export const subtract = (num1, num2) => { ...@@ -33,11 +36,13 @@ export const subtract = (num1, num2) => {
* @param {*} num2 * @param {*} num2
* @returns * @returns
*/ */
export const multiply = (num1, num2) => { export const multiply = (num1, num2, digit = 9, omit = false) => {
const flag = (!parseFloat(num1) && parseFloat(num1) != "0") || (!parseFloat(num2) && parseFloat(num2) != "0"); const flag = (!parseFloat(num1) && parseFloat(num1) != "0") || (!parseFloat(num2) && parseFloat(num2) != "0");
if (flag) throw new Error("传入参数错误,参数不为number");
const decimal1 = new Decimal(num1); const decimal1 = new Decimal(num1);
const decimal2 = new Decimal(num2); const decimal2 = new Decimal(num2);
return decimal1.times(decimal2).toString(); const result = decimal1.times(decimal2);
return omit ? result.toFixed(digit, Decimal.ROUND_UP) : result.toDecimalPlaces(digit, Decimal.ROUND_UP).toString();
}; };
/** /**
...@@ -46,9 +51,11 @@ export const multiply = (num1, num2) => { ...@@ -46,9 +51,11 @@ export const multiply = (num1, num2) => {
* @param {*} num2 * @param {*} num2
* @returns * @returns
*/ */
export const divide = (num1, num2) => { export const divide = (num1, num2, digit = 9, omit = false) => {
const flag = (!parseFloat(num1) && parseFloat(num1) != "0") || (!parseFloat(num2) && parseFloat(num2) != "0"); const flag = (!parseFloat(num1) && parseFloat(num1) != "0") || (!parseFloat(num2) && parseFloat(num2) != "0");
if (flag) throw new Error("传入参数错误,参数不为number");
const decimal1 = new Decimal(num1); const decimal1 = new Decimal(num1);
const decimal2 = new Decimal(num2); const decimal2 = new Decimal(num2);
return decimal1.dividedBy(decimal2).toString(); const result = decimal1.dividedBy(decimal2);
return omit ? result.toFixed(digit, Decimal.ROUND_UP) : result.toDecimalPlaces(digit, Decimal.ROUND_UP).toString();
}; };
...@@ -44,7 +44,6 @@ ...@@ -44,7 +44,6 @@
placeholder="起始时间" placeholder="起始时间"
v-model="startTime" v-model="startTime"
@change="startChangeTime" @change="startChangeTime"
:clearable="false"
:picker-options="{ :picker-options="{
start: '00:00', start: '00:00',
step: '01:00', step: '01:00',
...@@ -55,7 +54,6 @@ ...@@ -55,7 +54,6 @@
<el-time-select <el-time-select
placeholder="结束时间" placeholder="结束时间"
v-model="endTime" v-model="endTime"
:clearable="false"
:picker-options="{ :picker-options="{
start: '00:00', start: '00:00',
step: '01:00', step: '01:00',
...@@ -69,9 +67,11 @@ ...@@ -69,9 +67,11 @@
<div class="m-main"> <div class="m-main">
<div class="main-item"> <div class="main-item">
<div class="label">接收方式</div> <div class="label">接收方式</div>
<!--<el-radio v-model="queryParams.radio" label="1">全部</el-radio>--> <el-radio-group v-model="queryParams.receiveMode">
<el-radio v-model="queryParams.receiveMode" label="0">手机短信</el-radio> <!--<el-radio v-model="queryParams.radio" label="1">全部</el-radio>-->
<!--<el-radio v-model="queryParams.radio" label="3">PC</el-radio>--> <el-radio label="0" @click.native.prevent="clickRadio()">手机短信</el-radio>
<!--<el-radio v-model="queryParams.radio" label="3">PC</el-radio>-->
</el-radio-group>
</div> </div>
<div class="main-item" style="line-height: 32px;"> <div class="main-item" style="line-height: 32px;">
<div class="label">手机号码</div> <div class="label">手机号码</div>
...@@ -177,6 +177,9 @@ ...@@ -177,6 +177,9 @@
this.endTime = "" this.endTime = ""
}, },
handleAdd(){ handleAdd(){
if(this.queryParams.receiveMode === '0' && !this.queryParams.phones){
return this.$message.warning('手机号码不能为空');
}
let params={ let params={
pushFrequency:Number(this.queryParams.pushFrequency), pushFrequency:Number(this.queryParams.pushFrequency),
riskType:'', riskType:'',
...@@ -220,6 +223,9 @@ ...@@ -220,6 +223,9 @@
changeTime(val){ changeTime(val){
console.log(val) console.log(val)
}, },
clickRadio(){
this.queryParams.receiveMode = this.queryParams.receiveMode === '0' ? '1' : '0'
},
} }
} }
</script> </script>
......
<template>
<el-dialog :visible.sync="dialogVisible" width="720px" append-to-body class="dialogVisible" title="单位换算">
<el-tabs v-model="currentList" @tab-click="handleClickTab">
<el-tab-pane
:key="index"
v-for="(item, index) in toggleTabs"
:label="item.name"
:name="item.value"
>
{{item.content}}
</el-tab-pane>
<div class="detail-cont-tab">
<div class="select">
<el-select v-model="type1" placeholder="请选择">
<el-option v-for="(item,index) in typeList" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
<i class="el-icon-sort icon"></i>
<el-select v-model="type2" placeholder="请选择">
<el-option v-for="(item,index) in typeList" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</div>
<el-table
:data="tableData"
default-expand-all
border
highlight-current-row
@selection-change="handleSelectionChange"
>
<el-table-column
type="selection"
width="50">
</el-table-column>
<el-table-column label="序号" width="50" align="left">
<template slot-scope="scope">
<span>{{scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="成本科目" width="190" prop="cbSubjectName"></el-table-column>
<el-table-column label="物料验收系统本月用料" width="195">
<template slot-scope="scope">
<span v-if="scope.row.quantities">{{scope.row.quantities}} {{scope.row.quantitiesUnit}}</span>
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="换算后本月用料" prop="hsyl"></el-table-column>
</el-table>
</div>
</el-tabs>
<div slot="footer" class="dialog-footer">
<el-button @click="handleClose()">取消</el-button>
<el-button type="primary">保存结果</el-button>
</div>
</el-dialog>
</template>
<script>
export default {
name: "unitConversion",
props: {
isVisible: {
type: Boolean,
default: false
},
dataList: {
type: Array,
default: () => []
},
},
data() {
return {
dialogVisible:this.isVisible,
currentList: "type1",
toggleTabs:[
{
value: "type1",
name: "长度",
},
{
value: "type2",
name: "面积",
},
{
value: "type3",
name: "重量",
},
{
value: "type4",
name: "体积",
},
// {
// value: "type4",
// name: "质量",
// },
// {
// value: "type5",
// name: "密度",
// },
],
type1:'',
type2:'',
typeList:[
{
dictLabel:'千米',
dictValue:'km'
},
{
dictLabel:'米',
dictValue:'m'
},
{
dictLabel:'分米',
dictValue:'dm'
},
{
dictLabel:'厘米',
dictValue:'cm'
},
{
dictLabel:'毫米',
dictValue:'mm'
},
{
dictLabel:'微米',
dictValue:'μm'
},
],
tableData:this.dataList,
tableList:[]
};
},
//可访问data属性
created() {
console.log(this.dataList)
},
//计算集
computed: {
},
//方法集
methods: {
handleClose () {
this.$emit('refresh')
},
handleClickTab(v){
this.type1='';
this.type2='';
if(v.label === '长度'){
this.typeList=[
{
dictLabel:'千米',
dictValue:'km'
},
{
dictLabel:'米',
dictValue:'m'
},
{
dictLabel:'分米',
dictValue:'dm'
},
{
dictLabel:'厘米',
dictValue:'cm'
},
{
dictLabel:'毫米',
dictValue:'mm'
},
{
dictLabel:'微米',
dictValue:'μm'
},
]
}
if(v.label === '面积'){
this.typeList=[
{
dictLabel:'平方千米',
dictValue:'km²'
},
{
dictLabel:'公顷',
dictValue:'ha'
},
{
dictLabel:'公亩',
dictValue:'a'
},
{
dictLabel:'平方米',
dictValue:'m²'
},
{
dictLabel:'平方分米',
dictValue:'dm²'
},
{
dictLabel:'平方厘米',
dictValue:'cm²'
},
{
dictLabel:'平方毫米',
dictValue:'mm²'
},
]
}
if(v.label === '体积'){
this.typeList=[
{
dictLabel:'吨',
dictValue:'T'
},
{
dictLabel:'千克',
dictValue:'kg'
},
{
dictLabel:'克',
dictValue:'g'
},
]
}
if(v.label === '体积'){
this.typeList=[
{
dictLabel:'立方千米',
dictValue:'km³'
},
{
dictLabel:'立方米',
dictValue:'m³'
},
{
dictLabel:'立方分米',
dictValue:'dm³'
},
{
dictLabel:'立方厘米',
dictValue:'cm³'
},
{
dictLabel:'立方毫米',
dictValue:'mm³'
},
{
dictLabel:'升',
dictValue:'L'
},
{
dictLabel:'分升',
dictValue:'dL'
},
{
dictLabel:'厘升',
dictValue:'cL'
},
{
dictLabel:'毫升',
dictValue:'mL'
},
{
dictLabel:'微升',
dictValue:'μL'
},
]
}
},
handleSelectionChange(val) {
console.log(val)
this.tableList=val;
}
},
}
</script>
<style lang="scss" scoped>
.dialogVisible{
::v-deep .el-dialog {
position:absolute;
top:50%;
left:50%;
transform:translate(-50%,-50%);
margin-top:0 !important;
.el-dialog__body{
flex:1;
overflow: auto;
padding:0;
border-top: 1px solid #EEEEEE;
border-bottom: 1px solid #EEEEEE;
.select{
margin-bottom: 16px;
}
.el-input{
width: 316px !important;
}
.el-tabs__nav-wrap{
padding: 0 16px;
}
.el-tabs__header{
margin: 0;
}
.detail-cont-tab{
padding: 24px 20px;
.icon{
transform: rotate(90deg);
color:#0081FF;
margin: 0 16px;
}
}
}
.el-dialog__footer{
padding: 16px 20px;
}
}
}
</style>
...@@ -55,52 +55,7 @@ ...@@ -55,52 +55,7 @@
</div> </div>
</div> </div>
<el-dialog :visible.sync="dialogVisible" width="720px" append-to-body class="dialogVisible" title="单位换算">
<el-tabs v-model="currentList" @tab-click="handleClickTab">
<el-tab-pane
:key="index"
v-for="(item, index) in toggleTabs"
:label="item.name"
:name="item.value"
>
{{item.content}}
</el-tab-pane>
<div class="detail-cont-tab">
<div class="select">
<el-select v-model="type1" placeholder="请选择">
<el-option v-for="(item,index) in typeList" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
<i class="el-icon-sort icon"></i>
<el-select v-model="type2" placeholder="请选择">
<el-option v-for="(item,index) in typeList" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</div>
<el-table
:data="tableData1"
default-expand-all
border
highlight-current-row
>
<el-table-column
type="selection"
width="50">
</el-table-column>
<el-table-column label="序号" width="50" align="left">
<template slot-scope="scope">
<span>{{scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="成本科目" width="190" prop="cbkm"></el-table-column>
<el-table-column label="物料验收系统本月用料" width="195" prop="wlyl"></el-table-column>
<el-table-column label="换算后本月用料" prop="hsyl"></el-table-column>
</el-table>
</div>
</el-tabs>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogVisible=false">取消</el-button>
<el-button type="primary">保存结果</el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
...@@ -166,60 +121,9 @@ export default { ...@@ -166,60 +121,9 @@ export default {
nodeName: "itemContent", nodeName: "itemContent",
nodeValue: "menuId", nodeValue: "menuId",
}, },
dialogVisible:false,
currentList: "type1",
toggleTabs:[
{
value: "type1",
name: "长度",
},
{
value: "type2",
name: "面积",
},
{
value: "type3",
name: "体积",
},
// {
// value: "type4",
// name: "质量",
// },
// {
// value: "type5",
// name: "密度",
// },
],
tableData1:[], tableData1:[],
tableDataTotal1:0, tableDataTotal1:0,
type1:'',
type2:'',
typeList:[
{
dictLabel:'千米',
dictValue:'千米'
},
{
dictLabel:'米',
dictValue:'米'
},
{
dictLabel:'分米',
dictValue:'分米'
},
{
dictLabel:'厘米',
dictValue:'厘米'
},
{
dictLabel:'毫米',
dictValue:'毫米'
},
{
dictLabel:'微米',
dictValue:'微米'
},
],
}; };
}, },
watch: { watch: {
...@@ -297,118 +201,7 @@ export default { ...@@ -297,118 +201,7 @@ export default {
sortChange(){ sortChange(){
}, },
handleClickTab(v){
this.type1='';
this.type2='';
if(v.label === '长度'){
this.typeList=[
{
dictLabel:'千米',
dictValue:'千米'
},
{
dictLabel:'米',
dictValue:'米'
},
{
dictLabel:'分米',
dictValue:'分米'
},
{
dictLabel:'厘米',
dictValue:'厘米'
},
{
dictLabel:'毫米',
dictValue:'毫米'
},
{
dictLabel:'微米',
dictValue:'微米'
},
]
}
if(v.label === '面积'){
this.typeList=[
{
dictLabel:'平方千米',
dictValue:'平方千米'
},
{
dictLabel:'公顷',
dictValue:'公顷'
},
{
dictLabel:'公亩',
dictValue:'公亩'
},
{
dictLabel:'平方米',
dictValue:'平方米'
},
{
dictLabel:'平方分米',
dictValue:'平方分米'
},
{
dictLabel:'平方厘米',
dictValue:'平方厘米'
},
{
dictLabel:'平方毫米',
dictValue:'平方毫米'
},
]
}
if(v.label === '体积'){
this.typeList=[
{
dictLabel:'立方千米',
dictValue:'立方千米'
},
{
dictLabel:'立方米',
dictValue:'立方米'
},
{
dictLabel:'立方分米',
dictValue:'立方分米'
},
{
dictLabel:'立方厘米',
dictValue:'立方厘米'
},
{
dictLabel:'立方毫米',
dictValue:'立方毫米'
},
{
dictLabel:'升',
dictValue:'升'
},
{
dictLabel:'分升',
dictValue:'分升'
},
{
dictLabel:'毫升',
dictValue:'毫升'
},
{
dictLabel:'微升',
dictValue:'微升'
},
{
dictLabel:'厘升',
dictValue:'厘升'
},
{
dictLabel:'公石',
dictValue:'公石'
},
]
}
},
}, },
} }
</script> </script>
...@@ -436,43 +229,4 @@ export default { ...@@ -436,43 +229,4 @@ export default {
padding: 16px; padding: 16px;
} }
} }
.dialogVisible{
::v-deep .el-dialog {
position:absolute;
top:50%;
left:50%;
transform:translate(-50%,-50%);
margin-top:0 !important;
.el-dialog__body{
flex:1;
overflow: auto;
padding:0;
border-top: 1px solid #EEEEEE;
border-bottom: 1px solid #EEEEEE;
.select{
margin-bottom: 16px;
}
.el-input{
width: 316px !important;
}
.el-tabs__nav-wrap{
padding: 0 16px;
}
.el-tabs__header{
margin: 0;
}
.detail-cont-tab{
padding: 24px 20px;
.icon{
transform: rotate(90deg);
color:#0081FF;
margin: 0 16px;
}
}
}
.el-dialog__footer{
padding: 16px 20px;
}
}
}
</style> </style>
...@@ -142,6 +142,7 @@ export default { ...@@ -142,6 +142,7 @@ export default {
this.$emit("close", menuPath, menuPathArray); this.$emit("close", menuPath, menuPathArray);
}, },
menuSelect(menuPath) { menuSelect(menuPath) {
if (this.comDefaultActive == menuPath) return;
const result = this.getCurrentData(menuPath); const result = this.getCurrentData(menuPath);
this.$emit("select", menuPath, result); this.$emit("select", menuPath, result);
}, },
......
...@@ -198,8 +198,6 @@ export default { ...@@ -198,8 +198,6 @@ export default {
const detail = await getProjectDetailApi(projectId); const detail = await getProjectDetailApi(projectId);
if (detail.code == 200 && detail.data) { if (detail.code == 200 && detail.data) {
if (detail.data.id) detail.data["projectId"] = detail.data.id; if (detail.data.id) detail.data["projectId"] = detail.data.id;
// detail.data["projectId"] = "1754425038355890177";
// detail.data["cbStage"] = 0;
this.detailInfo = detail.data; this.detailInfo = detail.data;
} }
} catch (error) { } catch (error) {
......
...@@ -390,7 +390,7 @@ ...@@ -390,7 +390,7 @@
//查看进度 //查看进度
detailpro(row){ detailpro(row){
this.uploadData = row this.uploadData = row
this.prodetail = true this.prodetail = false//状态不管是否查看,目前手动设置为可修改
this.isupload = true this.isupload = true
}, },
//删除项目 //删除项目
......
...@@ -290,7 +290,6 @@ ...@@ -290,7 +290,6 @@
this.formdata = JSON.parse(JSON.stringify(this.uploadData)) this.formdata = JSON.parse(JSON.stringify(this.uploadData))
this.formdata.cbStage = this.formdata.cbStage.toString() this.formdata.cbStage = this.formdata.cbStage.toString()
this.getDetail() this.getDetail()
console.log(this.formdata )
}, },
methods:{ methods:{
importdata(){ importdata(){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment