Compare commits

...

10 Commits

@ -27,4 +27,4 @@ npm run build:stage
# 构建生产环境
npm run build:prod
```
```

@ -51,3 +51,19 @@ export function generateWorkOrder(query) {
params: query
})
}
// ERP获取生产计划管理
export function getERPProductionPlan(objId) {
return request({
url: '/mes/prod/prodOrderInfo/getERPProductionPlan/' + objId,
method: 'get'
})
}
//获取ERP生产订单
export function getERPWorkOrder(orderCode) {
return request({
url: '/mes/prod/prodOrderInfo/getERPWorkOrder/' + orderCode,
method: 'get'
})
}

@ -60,3 +60,12 @@ export function uploadERPStaffSalary(data) {
data: data
})
}
// 查询员工工资汇总报表
export function listSalarySummaryReport(query) {
return request({
url: '/mes/boardPort/salarySummaryReport',
method: 'get',
params: query
})
}

@ -18,7 +18,7 @@ const service = axios.create({
// axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: process.env.VUE_APP_BASE_API,
// 超时
timeout: 10000
timeout: 60000
})
// request拦截器

@ -142,7 +142,8 @@
<el-table-column label="B项电流" align="center" prop="ib" v-if="columns[7].visible"/>
<el-table-column label="C项电流" align="center" prop="ic" v-if="columns[8].visible"/>
<el-table-column label="功率因数" align="center" prop="glys" v-if="columns[10].visible"/>
<el-table-column label="正向有功" align="center" prop="zxyg" v-if="columns[11].visible"/>
<el-table-column label="正向有功" align="center" prop="zxyg" width="100" v-if="columns[11].visible"/>
<el-table-column label="反向有功" align="center" prop="fxyg" width="100" v-if="columns[16].visible"/>
<el-table-column label="有功功率" align="center" prop="activePower" v-if="columns[12].visible"/>
<el-table-column label="无功功率" align="center" prop="reactivePower" v-if="columns[13].visible"/>
<el-table-column label="记录时间" align="center" prop="recordTime" width="180" v-if="columns[9].visible">
@ -328,6 +329,7 @@ export default {
recordTime: null,
glys: null,
zxyg: null,
fxyg: null,
activePower: null,
reactivePower: null,
collectType: null
@ -354,13 +356,14 @@ export default {
{ key: 6, label: `A项电流`, visible: true },
{ key: 7, label: `B项电流`, visible: true },
{ key: 8, label: `C项电流`, visible: true },
{ key: 9, label: `记录时间`, visible: true },
{ key: 9, label: `记录时间`, visible: false },
{ key: 10, label: `功率因数`, visible: true },
{ key: 11, label: `正向有功`, visible: true },
{ key: 12, label: `有功功率`, visible: false },
{ key: 13, label: `无功功率`, visible: false },
{ key: 14, label: `采集方式`, visible: true },
{ key: 15, label: `计量设备名称`, visible: true }
{ key: 15, label: `计量设备名称`, visible: true },
{ key: 16, label: `反向有功`, visible: true },
]
}
},

@ -319,7 +319,7 @@ export default {
{ key: 8, label: `压力`, visible: false },
{ key: 9, label: `密度`, visible: false },
{ key: 10, label: `压力差值`, visible: false },
{ key: 11, label: `记录时间`, visible: true },
{ key: 11, label: `记录时间`, visible: false },
{ key: 12, label: `计量设备名称`, visible: true }
]
}

@ -302,7 +302,7 @@ export default {
{ key: 2, label: `采集时间`, visible: true },
{ key: 3, label: `瞬时流量`, visible: true },
{ key: 4, label: `累计流量`, visible: true },
{ key: 5, label: `记录时间`, visible: true },
{ key: 5, label: `记录时间`, visible: false },
{ key: 6, label: `采集方式`, visible: true },
{ key: 7, label: `计量设备名称`, visible: true }
]

@ -57,6 +57,7 @@
<Chart ref="Chart1" class="chart1"/>
<Chart ref="Chart2" class="chart2"/>
<Chart ref="Chart3" class="chart3"/>
</el-col>
</el-row>
@ -69,10 +70,10 @@ import {
listRecordDnbInstant,
getRecordDnbInstant, dnbInstantList
} from '@/api/ems/record/recordDnbInstant'
import { getMonitorInfoTree } from '@/api/ems/base/baseMonitorInfo'
import {getMonitorInfoTree} from '@/api/ems/base/baseMonitorInfo'
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import { parseTime } from '@/utils/ruoyi'
import {parseTime} from '@/utils/ruoyi'
import Chart from '@/components/Charts/Chart'
import * as echarts from 'echarts'
@ -134,26 +135,26 @@ export default {
//
rules: {
objId: [
{ required: true, message: '编号不能为空', trigger: 'blur' }
{required: true, message: '编号不能为空', trigger: 'blur'}
]
},
columns: [
{ key: 0, label: `主键标识`, visible: false },
{ key: 1, label: `计量设备编号`, visible: true },
{ key: 2, label: `采集时间`, visible: true },
{ key: 3, label: `A项电压`, visible: true },
{ key: 4, label: `B项电压`, visible: true },
{ key: 5, label: `C项电压`, visible: true },
{ key: 6, label: `A项电流`, visible: true },
{ key: 7, label: `B项电流`, visible: true },
{ key: 8, label: `C项电流`, visible: true },
{ key: 9, label: `记录时间`, visible: true },
{ key: 10, label: `功率因数`, visible: true },
{ key: 11, label: `正向有功`, visible: true },
{ key: 12, label: `有功功率`, visible: false },
{ key: 13, label: `无功功率`, visible: false },
{ key: 14, label: `采集方式`, visible: true },
{ key: 15, label: `计量设备名称`, visible: true }
{key: 0, label: `主键标识`, visible: false},
{key: 1, label: `计量设备编号`, visible: true},
{key: 2, label: `采集时间`, visible: true},
{key: 3, label: `A项电压`, visible: true},
{key: 4, label: `B项电压`, visible: true},
{key: 5, label: `C项电压`, visible: true},
{key: 6, label: `A项电流`, visible: true},
{key: 7, label: `B项电流`, visible: true},
{key: 8, label: `C项电流`, visible: true},
{key: 9, label: `记录时间`, visible: true},
{key: 10, label: `功率因数`, visible: true},
{key: 11, label: `正向有功`, visible: true},
{key: 12, label: `有功功率`, visible: false},
{key: 13, label: `无功功率`, visible: false},
{key: 14, label: `采集方式`, visible: true},
{key: 15, label: `计量设备名称`, visible: true}
]
}
},
@ -233,7 +234,7 @@ export default {
/** 查询计量设备信息下拉树结构 */
getTreeselect() {
getMonitorInfoTree({ monitorType: 2 }).then(response => {
getMonitorInfoTree({monitorType: 2}).then(response => {
this.monitorInfoOptions = response.data
})
},
@ -257,7 +258,7 @@ export default {
return
}
let query = JSON.parse(JSON.stringify(this.queryParams))
const { data } = await dnbInstantList(query)
const {data} = await dnbInstantList(query)
let option1 = {
title: {
text: this.selectMonitorName + ' 电流曲线',
@ -336,7 +337,7 @@ export default {
smooth: true, //线
showAllSymbol: true, //
symbol: "emptyCircle", //
symbolSize: 5, //
symbolSize: 1, //
// itemStyle: {
// //线
// color: "#058cff",
@ -355,7 +356,7 @@ export default {
smooth: true, //线
showAllSymbol: true, //
symbol: "emptyCircle", //
symbolSize: 5, //
symbolSize: 1, //
// itemStyle: {
// //线
// color: "#058cff",
@ -374,7 +375,7 @@ export default {
smooth: true, //线
showAllSymbol: true, //
symbol: "emptyCircle", //
symbolSize: 5, //
symbolSize: 1, //
// itemStyle: {
// color: "#058cff",
// },
@ -467,7 +468,7 @@ export default {
smooth: true, //线
showAllSymbol: true, //
symbol: "emptyCircle", //
symbolSize: 5, //
symbolSize: 1, //
// itemStyle: {
// //线
// color: "#058cff",
@ -486,7 +487,7 @@ export default {
smooth: true, //线
showAllSymbol: true, //
symbol: "emptyCircle", //
symbolSize: 5, //
symbolSize: 1, //
// itemStyle: {
// //线
// color: "#058cff",
@ -505,7 +506,7 @@ export default {
smooth: true, //线
showAllSymbol: true, //
symbol: "emptyCircle", //
symbolSize: 5, //
symbolSize: 1, //
// itemStyle: {
// color: "#058cff",
// },
@ -519,8 +520,121 @@ export default {
}
]
}
let option3 = {
title: {
text: this.selectMonitorName + ' 功率曲线',
x: 'center'
},
grid: {
top: '15%',
bottom: '10%',
left: '3%',
right: '3%'
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow',
label: {
show: true
}
}
},
dataZoom: [{
type: 'slider'
}],
legend: {
right: 0
},
xAxis: {
data: data.map(e => e.collectTime),
axisLine: {
show: true, //X线
lineStyle: {
color: '#000'
}
},
axisTick: {
show: true //X
},
axisLabel: {
show: true,
textStyle: {
color: '#000' //X
}
}
},
yAxis: [
{
type: 'value',
name: '功率',
nameTextStyle: {
color: '#000'
},
splitLine: {
show: false
},
axisTick: {
show: true
},
axisLine: {
show: true,
lineStyle: {
color: '#000'
}
},
axisLabel: {
show: true,
textStyle: {
color: '#000'
}
}
}
],
series: [
{
name: '有功功率',
type: 'line',
smooth: true, //线
showAllSymbol: true, //
symbol: "emptyCircle", //
symbolSize: 1, //
// itemStyle: {
// //线
// color: "#058cff",
// },
// lineStyle: {
// color: "#058cff",
// },
// areaStyle: {
// color: "rgba(5,140,255, 0.2)",
// },
data: data.map(e => e.activePower||0)
},
{
name: '无功功率',
type: 'line',
smooth: true, //线
showAllSymbol: true, //
symbol: "emptyCircle", //
symbolSize: 1, //
// itemStyle: {
// //线
// color: "#058cff",
// },
// lineStyle: {
// color: "#058cff",
// },
// areaStyle: {
// color: "rgba(5,140,255, 0.2)",
// },
data: data.map(e => e.reactivePower||0)
},
]
}
this.$refs.Chart1.setData(option1)
this.$refs.Chart2.setData(option2)
this.$refs.Chart3.setData(option3)
echarts.connect(this.$refs.Chart1.chart, this.$refs.Chart2.chart)
this.$refs.Chart1.chart.on('datazoom', (e) => {
option2.dataZoom[0].start = e.start
@ -546,4 +660,9 @@ export default {
width: 100%;
height: 40vh;
}
.chart3 {
width: 100%;
height: 40vh;
}
</style>

@ -15,9 +15,9 @@
<el-select v-model="queryParams.energyType" style="width: 100px" placeholder="请选择能源类型">
<el-option
v-for="item in energyTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
:key="item.energyTypeId"
:label="item.energyName"
:value="item.energyTypeId"
></el-option>
</el-select>
</el-form-item>
@ -103,15 +103,28 @@
>导出
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="info"
plain
icon="el-icon-sort"
size="mini"
@click="toggleExpandAll"
>展开/折叠
</el-button>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-if="refreshTable"
:default-expand-all="isExpandAll"
header-cell-class-name="columnClassName"
id="bootstrap-table"
v-loading="loading"
row-key="objId"
:data="dataList"
@selection-change="handleSelectionChange"
>
@ -124,16 +137,22 @@
min-width="120"
/>
<el-table-column
v-if="time.title && time.colspan == 1"
v-if="time.title && time.colspan == 2"
:key="time.title"
:label="time.title"
>
<el-table-column
min-width="140"
:key="time.title + '_' + time.field"
min-width="120"
:key="time.field"
:label="'耗量(' + measurementUnit + ')'"
:prop="time.field"
/>
<el-table-column
min-width="120"
:key="time.powerField"
:label="'发电量(' + measurementUnit + ')'"
:prop="time.powerField"
/>
</el-table-column>
</template>
</el-table>
@ -157,7 +176,8 @@ import {
getYearsBetween
} from '@/utils/dateReportUtils.js'
import { handleExport } from '@/utils/export.js'
import { parseTime } from '@/utils/ruoyi'
import {handleTree, parseTime} from '@/utils/ruoyi'
import { getBaseEnergyTypeList } from '@/api/ems/base/baseEnergyType'
let data = {}
let optionData = {}
@ -177,6 +197,10 @@ export default {
multiple: true,
//
showSearch: true,
//
refreshTable: true,
//
isExpandAll: false,
//
dataList: null,
// List
@ -190,7 +214,7 @@ export default {
form: {},
//
queryParams: {
energyType: '2',
energyType: 2,
dateType: '10',
startTime: '',
endTime: ''
@ -207,11 +231,7 @@ export default {
{ label: '年', value: '4' }
],
//
energyTypeList: [
{ value: '2', label: '电' },
{ value: '3', label: '水' },
{ value: '4', label: '蒸汽' }
],
energyTypeList: [],
option: {
grid: {
containLabel: true,
@ -337,6 +357,9 @@ export default {
}
},
created() {
getBaseEnergyTypeList({}).then(response => {
this.energyTypeList = response.data
})
const nowDate = parseTime(new Date(), '{y}-{m}-{d}')
this.queryParams.startTime = nowDate + ' 00:00:00'
this.queryParams.endTime = nowDate + ' 23:59:59'
@ -436,60 +459,71 @@ export default {
myChart.setOption(option)
energyPreviewReportList(this.queryParams).then((response) => {
this.dataList = response.data
this.loading = false
this.dataList = this.handleTree(response.data, 'objId');
this.loading = false
const data = response.data || []
if (data.length === 0) return
this.totalConsumption = data.reduce((sum, item) => {
return sum + parseFloat(item.expendSum || 0);
}, 0);
if (parseFloat(data[0].expendSum) > 0){
const keys = Object.keys(data[0])
const filteredKeys = keys.filter(item => item.includes('dateData|'));
const keys = Object.keys(data[0])
const filteredKeys = keys.filter(key => key && !['unitName', 'state', 'expendSum', 'type'].includes(key))
const yData = filteredKeys.map(key => {
return data.reduce((sum, item) => sum + parseFloat(item[key] || 0), 0).toFixed(2)
})
const yData = filteredKeys.map(key => {
return data.reduce((sum, item) => sum + parseFloat(item[key] || 0), 0).toFixed(2)
})
const timeData = filteredKeys.map(key => key.split('dateData|')[1] + ':00:00')
const timeData = filteredKeys.map(key => key.split('expend')[1] + ':00:00')
const sortedData = timeData.map((time, index) => ({
name: time,
value: parseFloat(yData[index]),
time: new Date(time).getTime()
})).sort((a, b) => a.time - b.time)
const sortedData = timeData.map((time, index) => ({
name: time,
value: parseFloat(yData[index]),
time: new Date(time).getTime()
})).sort((a, b) => b.time - a.time);
const xAxisData = sortedData.map(item => item.name.split(':')[0])
const seriesData = sortedData.map(item => item.value)
console.log(sortedData)
myChart.setOption({
dataZoom: [{
show: true,
type: 'slider',
bottom: '3%',
xAxisIndex: 0,
height: 12,
start: 0,
brushSelect: false,
end: (1 / (seriesData.length / 20)) * 100,
textStyle: {
fontSize: 0,
color: 'rgba(0,0,0,0)'
}
}],
xAxis: [{
data: xAxisData
}],
series: [{
data: seriesData
}, {
data: seriesData
}]
})
const xAxisData = sortedData.map(item => item.name.split(':')[0])
const seriesData = sortedData.map(item => item.value)
myChart.setOption({
dataZoom: [{
show: true,
type: 'slider',
bottom: '3%',
xAxisIndex: 0,
height: 12,
start: 0,
brushSelect: false,
end: (1 / (seriesData.length / 20)) * 100,
textStyle: {
fontSize: 0,
color: 'rgba(0,0,0,0)'
}
}],
xAxis: [{
data: xAxisData
}],
series: [{
data: seriesData
}, {
data: seriesData
}]
})
}
})
},
/** 展开/折叠操作 */
toggleExpandAll() {
this.refreshTable = false
this.isExpandAll = !this.isExpandAll
this.$nextTick(() => {
this.refreshTable = true
})
},
/** 查询用户列表 */
getList(dateList) {
this.loading = true
@ -511,20 +545,21 @@ export default {
title: '耗量合计(' + this.measurementUnit + ')',
align: 'center',
rowspan: 2
},
{
field: 'powerExpendSum',
title: '发电量合计(' + this.measurementUnit + ')',
align: 'center',
rowspan: 2
}
)
for (let i in columns) {
this.timeList.push({
title: columns[i],
align: 'center',
colspan: 1,
field: 'expend' + columns[i].substring(0, 13)
})
this.energyList.push({
colspan: 2,
field: 'expend' + columns[i].substring(0, 13),
title: '耗量(' + this.measurementUnit + ')',
align: 'center',
rowspan: 1
powerField: 'powerExpend' + columns[i].substring(0, 13),
})
}
},

@ -121,6 +121,9 @@
<el-table-column label="计量设备编号" align="center" prop="monitorCode" v-if="columns[1].visible"/>
<el-table-column label="计量设备名称" align="center" prop="monitorName" v-if="columns[12].visible"/>
<el-table-column label="耗量" align="center" prop="expend" v-if="columns[3].visible"/>
<el-table-column label="仪表值" align="center" prop="instrumentValue" v-if="columns[2].visible"/>
<el-table-column label="发电量" align="center" prop="powerExpend" v-if="columns[13].visible"/>
<el-table-column label="反向有功仪表值" align="center" prop="powerValue" v-if="columns[14].visible"/>
<el-table-column label="记录时间" align="center" prop="recordTime" width="180" v-if="columns[4].visible">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.recordTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
@ -136,7 +139,6 @@
<span>{{ parseTime(scope.row.endTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
</template>
</el-table-column>
<el-table-column label="仪表值" align="center" prop="instrumentValue" v-if="columns[2].visible"/>
<el-table-column label="修改标识" align="center" prop="updateFlag" v-if="columns[7].visible">
<template slot-scope="scope">
<dict-tag :options="dict.type.update_flag" :value="scope.row.updateFlag"/>
@ -183,11 +185,17 @@
<el-form-item label="计量设备名称" prop="monitorName">
<el-input v-model="form.monitorName" placeholder="计量设备名称" disabled/>
</el-form-item>
<el-form-item label="耗量" prop="expend">
<el-input v-model="form.expend" placeholder="请输入耗量"/>
</el-form-item>
<el-form-item label="仪表值" prop="instrumentValue">
<el-input v-model="form.instrumentValue" placeholder="请输入仪表值"/>
</el-form-item>
<el-form-item label="耗量" prop="expend">
<el-input v-model="form.expend" placeholder="请输入耗量"/>
<el-form-item label="发电量" prop="powerExpend">
<el-input v-model="form.powerExpend" placeholder="请输入发电量"/>
</el-form-item>
<el-form-item label="反向有功仪表值" prop="powerValue">
<el-input v-model="form.powerValue" placeholder="请输入反向有功仪表值"/>
</el-form-item>
<!-- <el-form-item label="记录时间" prop="recordTime">-->
<!-- <el-date-picker clearable-->
@ -293,6 +301,8 @@ export default {
recordTime: null,
beginTime: null,
endTime: null,
powerExpend: null,
powerValue: null,
updateFlag: null
},
//
@ -306,7 +316,7 @@ export default {
columns: [
{ key: 0, label: `主键标识`, visible: false },
{ key: 1, label: `计量设备编号`, visible: true },
{ key: 2, label: `仪表值`, visible: true },
{ key: 2, label: `仪表值`, visible: false },
{ key: 3, label: `耗量`, visible: true },
{ key: 4, label: `记录时间`, visible: false },
{ key: 5, label: `开始时间`, visible: true },
@ -316,7 +326,9 @@ export default {
{ key: 9, label: `创建时间`, visible: false },
{ key: 10, label: `更新人`, visible: false },
{ key: 11, label: `更新时间`, visible: false },
{ key: 12, label: `计量设备名称`, visible: true }
{ key: 12, label: `计量设备名称`, visible: true },
{ key: 13, label: `发电量`, visible: true },
{ key: 14, label: `反向有功仪表值`, visible: false },
]
}
},

@ -72,8 +72,8 @@ export default {
return {
codeUrl: "",
loginForm: {
username: "admin",
password: "admin123",
username: "",
password: "",
rememberMe: false,
code: "",
uuid: ""

@ -307,7 +307,7 @@ export default {
{ key: 1, label: `员工ID`, visible: true },
{ key: 2, label: `员工名称`, visible: true },
{ key: 3, label: `员工类型`, visible: true },
{ key: 4, label: `卡号`, visible: false },
{ key: 4, label: `卡号`, visible: true },
{ key: 5, label: `班组编号`, visible: true },
{ key: 6, label: `手机号`, visible: true },
{ key: 7, label: `用户性别`, visible: true },

@ -94,10 +94,10 @@
<el-table-column label="主键标识" align="center" prop="objId" v-if="columns[0].visible"/>
<el-table-column label="订单编号" align="center" prop="orderCode" width="130" v-if="columns[1].visible"/>
<el-table-column label="工单编号" align="center" prop="planCode" width="230" v-if="columns[2].visible"/>
<el-table-column label="工序编号" align="center" prop="processCode" v-if="columns[3].visible"/>
<el-table-column label="工序编号" align="center" prop="processCode" width="80" v-if="columns[3].visible"/>
<el-table-column label="工位名称" align="center" prop="stationName" width="100" v-if="columns[4].visible"/>
<el-table-column label="员工名称" align="center" prop="staffName" v-if="columns[5].visible"/>
<el-table-column label="生产米数" align="center" prop="completeAmount" v-if="columns[6].visible"/>
<el-table-column label="生产米数" align="center" prop="completeAmount" width="80" v-if="columns[6].visible"/>
<el-table-column label="工单明细开始时间" align="center" prop="planBeginDate" width="180" v-if="columns[7].visible">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.planBeginDate, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
@ -108,7 +108,7 @@
<span>{{ parseTime(scope.row.planEndDate, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
</template>
</el-table-column>
<el-table-column label="生产次数(锅数)" align="center" prop="batchNumber" v-if="columns[14].visible"/>
<el-table-column label="生产次数(锅数)" align="center" prop="batchNumber" width="130" v-if="columns[14].visible"/>
<el-table-column label="启用标识" align="center" prop="isFlag" v-if="columns[9].visible">
<template slot-scope="scope">
<dict-tag :options="dict.type.is_flag" :value="scope.row.isFlag"/>

@ -70,30 +70,30 @@
<!-- >新增-->
<!-- </el-button>-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['mes/prod:prodOrderDetail:edit']"
>修改
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['mes/prod:prodOrderDetail:remove']"
>删除
</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- plain-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['mes/prod:prodOrderDetail:edit']"-->
<!-- >修改-->
<!-- </el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['mes/prod:prodOrderDetail:remove']"-->
<!-- >删除-->
<!-- </el-button>-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button
type="warning"

@ -114,16 +114,39 @@
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
type="primary"
plain
icon="el-icon-delete"
icon="el-icon-plus"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['mes/prod:prodOrderInfo:remove']"
>删除
@click="handleOrder"
v-hasPermi="['mes/prod:prodOrderInfo:edit']"
>同步订单
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-download"
size="mini"
:disabled="multiple"
@click="handleSynchronizationPlan"
v-hasPermi="['mes/prod:prodOrderInfo:edit']"
>同步计划
</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['mes/prod:prodOrderInfo:remove']"-->
<!-- >删除-->
<!-- </el-button>-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button
type="warning"
@ -138,10 +161,13 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="prodOrderInfoList" @selection-change="handleSelectionChange">
<el-table v-loading="loading" :data="prodOrderInfoList" @selection-change="handleSelectionChange"
@sort-change="handleSortChange"
:default-sort="{ prop: 'beginDate', order: 'descending' }"
>
<el-table-column type="selection" width="55" align="center"/>
<el-table-column label="主键标识" align="center" prop="objId" v-if="columns[0].visible"/>
<el-table-column label="任务编号" align="center" prop="orderCode" v-if="columns[1].visible" width="130"/>
<el-table-column label="任务编号" align="center" prop="orderCode" v-if="columns[1].visible" width="130" sortable="custom"/>
<el-table-column label="销售任务编号" align="center" prop="saleOrderCode" v-if="columns[2].visible"/>
<el-table-column label="销售订单行号" align="center" prop="saleOrderLineNumber" v-if="columns[3].visible"/>
<el-table-column label="物料编码" align="center" prop="materialCode" v-if="columns[4].visible" width="100"/>
@ -161,7 +187,7 @@
<dict-tag :options="dict.type.finish_flag" :value="scope.row.finishFlag"/>
</template>
</el-table-column>
<el-table-column label="计划开始时间" align="center" prop="beginDate" width="180" v-if="columns[13].visible">
<el-table-column label="计划开始时间" align="center" prop="beginDate" width="180" v-if="columns[13].visible" sortable="custom">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.beginDate, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
</template>
@ -205,13 +231,13 @@
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100" fixed="right">
<template slot-scope="scope">
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-bottom"-->
<!-- @click="handleReleasePlan(scope.row)"-->
<!-- >订单下达-->
<!-- </el-button>-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-bottom"-->
<!-- @click="handleReleasePlan(scope.row)"-->
<!-- >订单下达-->
<!-- </el-button>-->
<el-button
size="mini"
type="text"
@ -360,54 +386,67 @@
</el-dialog>
<!-- 下达计划对话框 -->
<!-- <el-dialog :title="title" :visible.sync="releaseOpen" width="800px" append-to-body>-->
<!-- <el-form ref="form" :model="form" :rules="rules" label-width="100px">-->
<!-- <el-row :gutter="10">-->
<!-- <el-col :span="12">-->
<!-- <el-form-item label="任务编号" prop="orderCode">-->
<!-- <el-input v-model="form.orderCode" disabled/>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="物料编码" prop="materialCode">-->
<!-- <el-input v-model="form.materialCode" disabled/>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="计划开始时间" prop="beginDate">-->
<!-- <el-date-picker clearable-->
<!-- v-model="form.beginDate"-->
<!-- type="date"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="请选择计划开始时间"-->
<!-- >-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="12">-->
<!-- <el-form-item label="订单计划数量" prop="orderAmount">-->
<!-- <el-input v-model="form.orderAmount" placeholder="请输入订单计划数量" disabled/>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="输送带规格" prop="materialName">-->
<!-- <el-input v-model="form.materialName" disabled/>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="计划结束时间" prop="endDate">-->
<!-- <el-date-picker clearable-->
<!-- v-model="form.endDate"-->
<!-- type="date"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="请选择计划结束时间"-->
<!-- >-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- <el-form-item label="选择BOM" prop="bomCode">-->
<!-- <el-input v-model="form.bomCode" placeholder="请输入BOM编号"/>-->
<!-- </el-form-item>-->
<!-- <el-dialog :title="title" :visible.sync="releaseOpen" width="800px" append-to-body>-->
<!-- <el-form ref="form" :model="form" :rules="rules" label-width="100px">-->
<!-- <el-row :gutter="10">-->
<!-- <el-col :span="12">-->
<!-- <el-form-item label="任务编号" prop="orderCode">-->
<!-- <el-input v-model="form.orderCode" disabled/>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="物料编码" prop="materialCode">-->
<!-- <el-input v-model="form.materialCode" disabled/>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="计划开始时间" prop="beginDate">-->
<!-- <el-date-picker clearable-->
<!-- v-model="form.beginDate"-->
<!-- type="date"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="请选择计划开始时间"-->
<!-- >-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="12">-->
<!-- <el-form-item label="订单计划数量" prop="orderAmount">-->
<!-- <el-input v-model="form.orderAmount" placeholder="请输入订单计划数量" disabled/>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="输送带规格" prop="materialName">-->
<!-- <el-input v-model="form.materialName" disabled/>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="计划结束时间" prop="endDate">-->
<!-- <el-date-picker clearable-->
<!-- v-model="form.endDate"-->
<!-- type="date"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="请选择计划结束时间"-->
<!-- >-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- <el-form-item label="选择BOM" prop="bomCode">-->
<!-- <el-input v-model="form.bomCode" placeholder="请输入BOM编号"/>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<!-- <div slot="footer" class="dialog-footer">-->
<!-- <el-button type="primary" @click="submitReleaseForm"> </el-button>-->
<!-- <el-button @click="cancel"> </el-button>-->
<!-- </div>-->
<!-- </el-dialog>-->
<!-- </el-form>-->
<!-- <div slot="footer" class="dialog-footer">-->
<!-- <el-button type="primary" @click="submitReleaseForm"> </el-button>-->
<!-- <el-button @click="cancel"> </el-button>-->
<!-- </div>-->
<!-- </el-dialog>-->
<!-- 同步ERP订单信息对话框 -->
<el-dialog :title="title" :visible.sync="orderOpen" width="500px" append-to-body>
<el-form ref="form" :model="form" label-width="100px">
<el-form-item label="订单编号" prop="orderCode">
<el-input v-model="form.orderCode" placeholder="请输入任务编号"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="orderSubmitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
@ -417,9 +456,9 @@ import {
getProdOrderInfo,
delProdOrderInfo,
addProdOrderInfo,
updateProdOrderInfo
updateProdOrderInfo, getERPProductionPlan, getERPWorkOrder
} from '@/api/mes/prod/prodOrderInfo'
import router from "@//router";
import router from '@//router'
export default {
name: 'ProdOrderInfo',
@ -444,6 +483,7 @@ export default {
title: '',
//
open: false,
orderOpen: false,
//
// releaseOpen: false,
//
@ -452,6 +492,8 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
orderByColumn: 'beginDate',
isAsc: 'desc' ,
orderCode: null,
saleOrderCode: null,
saleOrderLineNumber: null,
@ -514,7 +556,7 @@ export default {
}
},
created() {
if (this.$route.params != null){
if (this.$route.params != null) {
this.queryParams.params = this.$route.params
}
this.getList()
@ -536,22 +578,31 @@ export default {
},
/** 下达计划 */
handleReleasePlan(row) {
const objId = row.objId;
const orderCode = row.orderCode;
const params = {queryParams: this.queryParams};
this.$tab.closeOpenPage(router.currentRoute);
this.$tab.openPage("订单[" + orderCode + "]下达", '/mes/release-order/index/' + objId, {});
const objId = row.objId
const orderCode = row.orderCode
const params = { queryParams: this.queryParams }
this.$tab.closeOpenPage(router.currentRoute)
this.$tab.openPage('订单[' + orderCode + ']下达', '/mes/release-order/index/' + objId, {})
},
handleSortChange({ column, prop, order }) {
this.queryParams = {
...this.queryParams,
orderByColumn: prop || 'beginDate',
isAsc: order === 'ascending' ? 'asc' : 'desc'
}
this.getList() //
},
/** 查看明细 */
handlePlanDetails(row) {
const params = {orderCode: row.orderCode};
const params = { orderCode: row.orderCode }
// this.$tab.closeOpenPage(router.currentRoute);
this.$tab.openPage("任务[" + row.orderCode + "]订单明细", '/mes/prodOrder-detail/index/' + row.orderCode, {});
this.$tab.openPage('任务[' + row.orderCode + ']订单明细', '/mes/prodOrder-detail/index/' + row.orderCode, {})
},
//
cancel() {
this.open = false
this.releaseOpen = false
this.orderOpen = false
this.reset()
},
//
@ -620,6 +671,12 @@ export default {
this.title = '修改订单信息'
})
},
/** 同步ERP订单按钮操作 */
handleOrder() {
this.reset()
this.orderOpen = true
this.title = '同步ERP订单信息'
},
/** 提交按钮 */
submitForm() {
this.$refs['form'].validate(valid => {
@ -640,6 +697,14 @@ export default {
}
})
},
/** 提交按钮 */
orderSubmitForm() {
getERPWorkOrder(this.form.orderCode).then(response => {
this.$modal.msgSuccess('同步订单成功')
this.orderOpen = false
this.getList()
})
},
/** 删除按钮操作 */
handleDelete(row) {
const objIds = row.objId || this.ids
@ -651,6 +716,16 @@ export default {
}).catch(() => {
})
},
handleSynchronizationPlan(row) {
const objIds = row.objId || this.ids
this.$modal.confirm('是否确认同步订单为"' + objIds + '"的数据项?').then(function() {
return getERPProductionPlan(objIds)
}).then(() => {
this.getList()
this.$modal.msgSuccess('同步成功')
}).catch(() => {
})
},
/** 导出按钮操作 */
handleExport() {
this.download('mes/prod/prodOrderInfo/export', {

@ -129,6 +129,8 @@
<span>{{ parseTime(scope.row.planEndTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
</template>
</el-table-column>
<el-table-column label="工作量" align="center" prop="workload" v-if="columns[72].visible"/>
<el-table-column label="任务进度" align="center" prop="taskProgress" v-if="columns[73].visible"/>
<el-table-column label="关联资源" align="center" prop="associationResource" v-if="columns[7].visible"/>
<el-table-column label="工作效率" align="center" prop="workingEfficiency" v-if="columns[8].visible"/>
<el-table-column label="设备码" align="center" prop="equipmentNo" v-if="columns[9].visible" width="100"/>
@ -635,7 +637,9 @@ export default {
{ key: 68, label: `创建人`, visible: false },
{ key: 69, label: `创建时间`, visible: false },
{ key: 70, label: `更新人`, visible: false },
{ key: 71, label: `更新时间`, visible: false }
{ key: 71, label: `更新时间`, visible: false },
{ key: 72, label: `工作量`, visible: true },
{ key: 73, label: `任务进度`, visible: true },
]
}
},

@ -273,6 +273,16 @@
>
</el-date-picker>
</el-form-item>
<el-form-item label="工单状态" prop="planStatus">
<el-radio-group v-model="form.planStatus">
<el-radio
v-for="dict in dict.type.plan_status"
:key="dict.value"
:label="dict.value"
>{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="完成标识" prop="compFlag">
<el-radio-group v-model="form.compFlag">
<el-radio
@ -283,30 +293,6 @@
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="创建人" prop="createdBy">
<el-input v-model="form.createdBy" placeholder="请输入创建人"/>
</el-form-item>
<el-form-item label="创建时间" prop="createdTime">
<el-date-picker clearable
v-model="form.createdTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择创建时间"
>
</el-date-picker>
</el-form-item>
<el-form-item label="更新人" prop="updatedBy">
<el-input v-model="form.updatedBy" placeholder="请输入更新人"/>
</el-form-item>
<el-form-item label="更新时间" prop="updatedTime">
<el-date-picker clearable
v-model="form.updatedTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择更新时间"
>
</el-date-picker>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>

@ -38,6 +38,16 @@
end-placeholder="结束时间"
></el-date-picker>
</el-form-item>
<el-form-item label="上传ERP标识" prop="isErp">
<el-select v-model="queryParams.isErp" placeholder="请选择打卡类型" clearable>
<el-option
v-for="dict in dict.type.is_erp"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
@ -109,11 +119,19 @@
<el-table-column label="薪资类别" align="center" prop="salaryCategory" v-if="columns[4].visible"/>
<el-table-column label="收入大类" align="center" prop="revenueClass" v-if="columns[5].visible" width="120"/>
<el-table-column label="收入金额" align="center" prop="revenueAmount" v-if="columns[6].visible"/>
<el-table-column label="收入理由" align="center" prop="revenueReason" v-if="columns[7].visible"/>
<el-table-column label="收入理由" align="center" prop="revenueReason" width="200" v-if="columns[7].visible"/>
<el-table-column label="扣罚大类" align="center" prop="fineClass" v-if="columns[8].visible"/>
<el-table-column label="扣罚金额" align="center" prop="fineAmount" v-if="columns[9].visible"/>
<el-table-column label="扣罚理由" align="center" prop="fineReason" v-if="columns[10].visible"/>
<el-table-column label="任务编号" align="center" prop="taskCode" v-if="columns[12].visible" width="120"/>
<el-table-column label="上传ERP标识" align="center" prop="isErp" width="100" v-if="columns[18].visible">
<template slot-scope="scope">
<dict-tag :options="dict.type.is_erp" :value="scope.row.isErp"/>
</template>
</el-table-column>
<el-table-column label="订单编号" align="center" prop="orderCode" v-if="columns[20].visible"/>
<el-table-column label="工单编号" align="center" prop="planCode" v-if="columns[21].visible"/>
<el-table-column label="生产米数" align="center" prop="prodNumber" v-if="columns[19].visible"/>
<el-table-column label="工资系数" align="center" prop="salaryCoefficient" v-if="columns[13].visible"/>
<el-table-column label="开始日期" align="center" prop="beginDate" width="100" v-if="columns[14].visible">
<template slot-scope="scope">
@ -240,6 +258,7 @@ import { parseTime } from '@/utils/ruoyi'
export default {
name: 'RecordStaffSalary',
dicts: ['is_erp'],
data() {
return {
//
@ -279,7 +298,8 @@ export default {
taskCode: null,
salaryCoefficient: null,
beginDate: null,
endDate: null
endDate: null,
isErp: null,
},
//
form: {},
@ -307,7 +327,11 @@ export default {
{ key: 14, label: `开始日期`, visible: true },
{ key: 15, label: `结束日期`, visible: true },
{ key: 16, label: `员工名称`, visible: true },
{ key: 17, label: `班组名称`, visible: true }
{ key: 17, label: `班组名称`, visible: true },
{ key: 18, label: `上传ERP标识`, visible: true },
{ key: 19, label: `生产米数`, visible: false },
{ key: 21, label: `订单编号`, visible: false },
{ key: 22, label: `工单编号`, visible: false },
],
//
teamMembersList: []

@ -0,0 +1,307 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="员工名称" prop="staffName">
<el-input
v-model="queryParams.staffName"
placeholder="请输入员工名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="班组名称" prop="groupId">
<el-select v-model="queryParams.groupId" placeholder="请选择班组名称" clearable>
<el-option
v-for="item in teamMembersList"
:key="item.teamCode"
:label="item.teamName"
:value="item.teamCode"
/>
</el-select>
</el-form-item>
<el-form-item label="事件日期">
<el-date-picker
v-model="daterangeEventDate"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始时间"
end-placeholder="结束时间"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- icon="el-icon-plus"-->
<!-- size="mini"-->
<!-- @click="handleAdd"-->
<!-- v-hasPermi="['mes/record:recordStaffSalary:add']"-->
<!-- >新增-->
<!-- </el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- plain-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['mes/record:recordStaffSalary:edit']"-->
<!-- >修改-->
<!-- </el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['mes/record:recordStaffSalary:remove']"-->
<!-- >删除-->
<!-- </el-button>-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['mes/record:recordStaffSalary:export']"
>导出
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="recordStaffSalaryList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column label="主键标识" align="center" prop="objId" v-if="columns[0].visible"/>
<el-table-column label="员工编号" align="center" prop="staffId" v-if="columns[1].visible"/>
<el-table-column label="员工名称" align="center" prop="staffName" v-if="columns[2].visible"/>
<el-table-column label="身份证" align="center" prop="idCard" v-if="columns[3].visible" width="200"/>
<el-table-column label="班组名称" align="center" prop="teamName" v-if="columns[5].visible" width="230"/>
<el-table-column label="收入金额" align="center" prop="revenueAmount" v-if="columns[4].visible"/>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import {
listSalarySummaryReport
} from '@/api/mes/record/recordStaffSalary'
import { getTeamMembers } from '@/api/mes/base/baseTeamMembers'
import { parseTime } from '@/utils/ruoyi'
export default {
name: 'SalarySummaryReport',
dicts: ['is_erp'],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
recordStaffSalaryList: [],
//
title: '',
//
open: false,
//
daterangeEventDate: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
idCard: null,
groupId: null,
eventDate: null,
salaryCategory: null,
revenueClass: null,
revenueAmount: null,
revenueReason: null,
fineClass: null,
fineAmount: null,
fineReason: null,
taskCode: null,
salaryCoefficient: null,
beginDate: null,
endDate: null,
isErp: null
},
//
form: {},
//
rules: {
objId: [
{ required: true, message: '主键标识不能为空', trigger: 'blur' }
]
},
columns: [
{ key: 0, label: `主键标识`, visible: false },
{ key: 1, label: `员工编号`, visible: true },
{ key: 2, label: `员工名称`, visible: true },
{ key: 3, label: `身份证`, visible: true },
{ key: 4, label: `收入金额`, visible: true },
{ key: 5, label: `班组名称`, visible: true },
],
//
teamMembersList: []
}
},
created() {
const currentDate = new Date()
const firstDay = parseTime(new Date(currentDate.getFullYear(), currentDate.getMonth(), 1), '{y}-{m}-{d}')
const lastDay = parseTime(new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0), '{y}-{m}-{d}')
this.daterangeEventDate[0] = firstDay
this.daterangeEventDate[1] = lastDay
getTeamMembers().then(response => {
this.teamMembersList = response.data
})
this.getList()
},
methods: {
/** 查询员工工资记录列表 */
getList() {
this.loading = true
this.queryParams.params = {}
if (null != this.daterangeEventDate && '' != this.daterangeEventDate) {
this.queryParams.beginEventDate = this.daterangeEventDate[0]
this.queryParams.endEventDate = this.daterangeEventDate[1]
}
listSalarySummaryReport(this.queryParams).then(response => {
this.recordStaffSalaryList = response.rows
this.total = response.total
this.loading = false
})
},
//
cancel() {
this.open = false
this.reset()
},
//
reset() {
this.form = {
objId: null,
idCard: null,
groupId: null,
eventDate: null,
salaryCategory: null,
revenueClass: null,
revenueAmount: null,
revenueReason: null,
fineClass: null,
fineAmount: null,
fineReason: null,
createTime: null,
taskCode: null,
salaryCoefficient: null,
beginDate: null,
endDate: null
}
this.resetForm('form')
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.daterangeEventDate = []
this.resetForm('queryForm')
this.handleQuery()
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.objId)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset()
this.open = true
this.title = '添加员工工资记录'
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset()
const objId = row.objId || this.ids
getRecordStaffSalary(objId).then(response => {
this.form = response.data
this.open = true
this.title = '修改员工工资记录'
})
},
/** 提交按钮 */
submitForm() {
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form.objId != null) {
updateRecordStaffSalary(this.form).then(response => {
this.$modal.msgSuccess('修改成功')
this.open = false
this.getList()
})
} else {
addRecordStaffSalary(this.form).then(response => {
this.$modal.msgSuccess('新增成功')
this.open = false
this.getList()
})
}
}
})
},
/** 删除按钮操作 */
handleDelete(row) {
const objIds = row.objId || this.ids
this.$modal.confirm('是否确认删除员工工资记录编号为"' + objIds + '"的数据项?').then(function() {
return delRecordStaffSalary(objIds)
}).then(() => {
this.getList()
this.$modal.msgSuccess('删除成功')
}).catch(() => {
})
},
/** 导出按钮操作 */
handleExport() {
this.download('mes/boardPort/salarySummaryReport/export', {
...this.queryParams
}, `员工工资汇总报表_${new Date().getTime()}.xlsx`)
}
}
}
</script>

@ -186,6 +186,7 @@ import {
} from '@/api/mes/record/recordStaffSalary'
import { getTeamMembers } from '@/api/mes/base/baseTeamMembers'
import { parseTime } from '@/utils/ruoyi'
import { delRecordStaffCommute } from '@/api/mes/record/recordStaffCommute'
export default {
name: 'TeamEmployeesWages',
@ -237,7 +238,7 @@ export default {
]
},
columns: [
{ key: 0, label: `序号`, visible: true },
{ key: 0, label: `序号`, visible: false },
{ key: 1, label: `身份证`, visible: true },
{ key: 2, label: `班组编号`, visible: true },
{ key: 3, label: `事件日期`, visible: true },
@ -255,7 +256,8 @@ export default {
{ key: 15, label: `员工名称`, visible: true },
],
//
teamMembersList: []
teamMembersList: [],
selectionData: []
}
},
created() {
@ -275,10 +277,9 @@ export default {
this.loading = true
this.queryParams.params = {}
if (null != this.daterangeOrderDate && '' != this.daterangeOrderDate) {
this.queryParams.params['beginOrderDate'] = this.daterangeOrderDate[0]
this.queryParams.params['endOrderDate'] = this.daterangeOrderDate[1]
this.queryParams.params['beginOffWorkTime'] = this.daterangeOrderDate[0]
this.queryParams.params['endOffWorkTime'] = this.daterangeOrderDate[1]
}
selectTeamEmployeesWages(this.queryParams).then(response => {
this.recordStaffSalaryList = response.data
// this.total = response.total
@ -325,21 +326,22 @@ export default {
},
//
handleSelectionChange(selection) {
this.selectionData = selection
this.ids = selection.map(item => item.objId)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
const dataList = this.recordStaffSalaryList;
const dataList = this.selectionData;
if (dataList.length === 0){
this.$modal.msgError('请生成工资后上传!')
this.$modal.msgError('请勾选至少一条工资记录上传!')
return
}
this.$modal.confirm('是否将员工工资上传至ERP系统').then(function() {
this.$modal.confirm('是否将已勾选的员工工资上传至ERP系统').then(function() {
return uploadERPStaffSalary(dataList)
}).then(() => {
this.recordStaffSalaryList = [];
this.getList()
this.$modal.msgSuccess('上传ERP成功')
}).catch(() => {
})

Loading…
Cancel
Save