Yangwl 4 months ago
commit de0f12eef5

@ -100,3 +100,11 @@ export function getRepairWorkOrderCostTime(data) {
params: data,
});
}
export function getFaultRateList(data) {
return request({
url: '/device/deviceInterface/getFaultRateList',
method: 'get',
params: data
});
}

@ -42,3 +42,12 @@ export function delAttendanceRecords(id) {
method: 'delete'
})
}
// 查询MES打卡记录列表
export function getPostAttendanceList(query) {
return request({
url: '/mes/AttendanceRecords/postAttendance/list',
method: 'get',
params: query
})
}

@ -240,3 +240,11 @@ export function addwmsFpStorageNewsTS(data) {
data: data
});
}
export function batchSapTl(data) {
return request({
url: '/wms/outorder/batchSapTl',
method: 'post',
data: data
});
}

@ -25,6 +25,10 @@
</div>
</div>
</div>
<div id="ranking-board">
<div class="ranking-board-title">线体故障率()</div>
<dv-scroll-ranking-board :config="config" />
</div>
</div>
</template>
@ -33,6 +37,7 @@ import {
getCompletedRate,
} from "@/api/kanban/spectaculars";
import {getFaultRateList, getworkFaultDesc} from "@/api/kanban/equipment";
export default {
name: 'Cards',
data () {
@ -41,6 +46,12 @@ export default {
],
equipmentinfo: {},
config: {
data: [],
unit:"%",
sort:false,
rowNum: 13
}
}
},
methods: {
@ -129,12 +140,31 @@ export default {
},
randomExtend (minNum, maxNum) {
if (arguments.length === 1) {
return parseInt(Math.random() * minNum + 1, 10)
} else {
return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10)
}
async getdatalist() {
getFaultRateList({ poolName: "ds_1000" }).then(res=>{
if (res.data){
let processedData = [];
for (const item of res.data){
processedData.push({
name: item.lineName || '未知分类', //
value: Number(item.faultRate).toFixed(2) || 0 //
})
}
const asc = [...processedData].sort((a, b) => b.value - a.value);
this.config = {
...this.config, //
data: asc
};
}else {
//
this.config.data = [{ name: '暂无数据', value: 0 }];
}
}).catch((error)=>{
console.error('数据获取失败:', error);
//
this.config.data = [{ name: '数据异常', value: 0 }];
})
}
},
mounted () {
@ -142,9 +172,15 @@ export default {
createData()
this.getdatalist();
//
this.timer = setInterval(() => {
this.getdatalist();
}, 60000); // 60
setInterval(this.createData, 30000)
}
},
}
</script>
@ -217,4 +253,27 @@ export default {
}
}
}
#ranking-board {
width: 20%;
height: 100%;
box-shadow: 0 0 3px blue;
display: flex;
flex-direction: column;
background-color: rgba(6, 30, 93, 0.5);
border-top: 2px solid rgba(1, 153, 209, .5);
box-sizing: border-box;
padding: 0px 30px;
.ranking-board-title {
font-weight: bold;
height: 50px;
display: flex;
align-items: center;
font-size: 20px;
}
.dv-scroll-ranking-board {
flex: 1;
}
}
</style>

@ -457,6 +457,12 @@
/>
</template>
</el-table-column>
<el-table-column
width="150"
label="点检结果"
align="center"
prop="checkResult"
/>
<el-table-column
width="150"
label="计划编码"

@ -280,6 +280,9 @@
<el-form-item label="CBS物理编号" prop="physicalCode">
<el-input v-model="form.physicalCode" placeholder="physicalCode" />
</el-form-item>
<el-form-item label="通讯地址" prop="addressCode">
<el-input v-model="form.addressCode" placeholder="请填写通讯地址" />
</el-form-item>
<el-form-item label="计量设备状态" prop="monitorStatus">
<el-radio-group v-model="form.monitorStatus">
<el-radio

@ -0,0 +1,134 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="岗位" prop="post">
<el-input
v-model="queryParams.post"
placeholder="请输入岗位"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="出勤日期" prop="deliveryTimeArray">
<el-date-picker
v-model="queryDates"
value-format="yyyy-MM-dd"
type="daterange"
:clearable="false"
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="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['mes:attached:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="list" >
<el-table-column label="序号" align="center" prop="sort" width="150"/>
<el-table-column label="岗位(HR)" align="center" prop="post" width="150"/>
<el-table-column label="总人数" align="center" prop="allNum" />
<el-table-column label="当日出勤" align="center" prop="attendNum" />
<el-table-column label="当日缺勤" align="center" prop="diffNum" />
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import { listAttached, getAttached, delAttached, addAttached, updateAttached } from "@/api/mes/attached";
import { getToken } from "@/utils/auth";
import {formatDate} from "@/utils";
import {getPostAttendanceList} from "@/api/mes/AttendanceRecords";
import {parseTime} from "@/utils/ruoyi";
export default {
name: "postAttached",
data() {
return {
//
loading: true,
//
showSearch: true,
//
total: 0,
list:[],
queryDates:[parseTime(new Date(),'{y}-{m}-{d}'),parseTime(new Date(),'{y}-{m}-{d}')],
//
queryParams: {
pageNum: 1,
pageSize: 20,
post: undefined,
beginDate:parseTime(new Date(),'{y}-{m}-{d}'),
endDate:parseTime(new Date(),'{y}-{m}-{d}'),
},
};
},
created() {
this.getList();
},
methods: {
/** 查询物料附属信息列表 */
getList() {
this.loading = true;
this.queryParams.beginDate = this.queryDates[0];
this.queryParams.endDate = this.queryDates[1];
getPostAttendanceList(this.queryParams).then(response => {
this.list = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.queryDates = [parseTime(new Date(),'{y}-{m}-{d}'),parseTime(new Date(),'{y}-{m}-{d}')]
this.resetForm("queryForm");
this.handleQuery();
},
/** 导出按钮操作 */
handleExport() {
this.download('mes/AttendanceRecords/postAttendance/export', {
...this.queryParams
}, `岗位出勤人数报表_${new Date().getTime()}.xlsx`)
},
}
};
</script>

@ -75,6 +75,20 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="检测状态" prop="checkStatus">
<el-select
v-model="queryParams.checkStatus"
placeholder="检测状态"
clearable
>
<el-option
v-for="dict in dict.type.check_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="检验时间" prop="checkTimeArray">
<el-date-picker
v-model="queryParams.checkTimeArray"

@ -89,6 +89,20 @@
/>
</el-select>
</el-form-item>
<el-form-item label="检测状态" prop="checkStatus">
<el-select
v-model="queryParams.checkStatus"
placeholder="检测状态"
clearable
>
<el-option
v-for="dict in dict.type.check_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="生产时间" prop="incomeTimeArray">
<el-date-picker
v-model="queryParams.incomeTimeArray"

@ -72,7 +72,7 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>-->
<el-form-item label="入库时间" prop="incomeTimeArray">
<el-form-item label="任务时间" prop="incomeTimeArray">
<el-date-picker
v-model="queryParams.incomeTimeArray"
format="yyyy-MM-dd HH:mm:ss"
@ -82,7 +82,7 @@
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-form-item label="检测地点" prop="checkLoc">
<el-input
v-model="queryParams.checkLoc"
@ -123,6 +123,20 @@
/>
</el-select>
</el-form-item>
<el-form-item label="检验状态" prop="checkStatus">
<el-select
v-model="queryParams.checkStatus"
placeholder="检验状态"
clearable
>
<el-option
v-for="dict in dict.type.check_status"
: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>

@ -53,7 +53,7 @@
<el-table-column label="样品名称" align="center" prop="materialName" width="200" :show-overflow-tooltip="true" />
<el-table-column label="生成批号" align="center" prop="incomeBatchNo" width="200" :show-overflow-tooltip="true" />
<el-table-column label="订单号" align="center" prop="workOrderCodeSap" width="130"/>
<el-table-column label="留样人" align="center" prop="sampleUserName" />
<el-table-column label="留样日期" align="center" prop="sampleTime" width="100" >
<template slot-scope="scope">
<span>{{ parseTime(scope.row.sampleTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>

@ -181,7 +181,8 @@
<el-table-column label="物料收货返回信息" align="center" prop="accountingMessage" width="150"/>
<el-table-column label="暂收物料凭证年度" align="center" prop="userDefined2" />
<el-table-column label="暂收返回信息" align="center" prop="userDefined3" />
<el-table-column label="收货人" align="center" prop="createBy" />
<el-table-column label="物料冲销凭证" align="center" prop="userDefined10" width="150"/>
<el-table-column label="收货人" align="center" prop="createBy" />
<el-table-column label="收货时间" align="center" prop="requestTime" width="150"/>
</el-table>

@ -45,6 +45,9 @@
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" @click="handleSAP"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" @click="handleBatchSAP"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['wms:outorder:add']">生成退货单</el-button>
@ -84,6 +87,7 @@
<el-table-column label="序号" type="index" v-if="false" />
<el-table-column label="工厂编码" align="center" prop="siteCode" v-if="false" />
<el-table-column label="id" align="center" prop="id" v-if="false" />
<el-table-column label="序号" align="center" prop="sort" />
<el-table-column label="退料单号" align="center" prop="produceCode" width="150"/>
<el-table-column label="出库单号" align="center" prop="userDefined4" width="150"/>
<el-table-column label="生产日期" align="center" prop="needDate" width="150"/>
@ -315,10 +319,11 @@
<el-table
v-if="refreshNewWorkerTable" v-loading="newWorkerLoading" class="my-print-table" :data="printData.workTable"
border style="width: 1000px;padding-bottom: 1px;">
<el-table-column prop="sort" label="序号" :width="50" align="center" ></el-table-column>
<el-table-column prop="materialCode" label="物料编码" :width="150" :formatter="productCodeFormate"></el-table-column>
<el-table-column prop="materialDesc" label="物料描述" :width="280"></el-table-column>
<el-table-column prop="unit" width="55" label="单位"></el-table-column>
<el-table-column prop="userDefined5" width="165" label="批号"></el-table-column>
<el-table-column prop="userDefined5" width="115" label="批号"></el-table-column>
<el-table-column prop="planNumber" label="计划数量" width="100"></el-table-column>
<!-- <el-table-column prop="planNumber" width="75" label="实发数量"></el-table-column>-->
<el-table-column prop="routeCode" width="75" label="备注"></el-table-column>
@ -364,10 +369,11 @@ import {
removeReturn,
getIdCardListTH,
listReturnDY,
listOutorderZU
listOutorderZU, batchSapTl
} from '@/api/wms/outorderfc'
import moment from "moment/moment";
import JsBarcode from "jsbarcode";
import printJS from "print-js";
export default {
name: "Outorder",
@ -1013,7 +1019,26 @@ export default {
this.download('wms/outorder/export', {
...this.queryParams
}, `outorder_${new Date().getTime()}.xlsx`)
}
}
},
/**
* 批量过账操作
* **/
handleBatchSAP(){
//退
if (this.selectabletrows.length <= 0){
this.$modal.msgError("请选择数据操作!");
return;
}
let postData = this.selectabletrows.map(item => (item.produceCode));
const params = [...new Set(postData)];
batchSapTl(params).then(response => {
this.$modal.msgSuccess("操作完成");
});
}
},
};
</script>

Loading…
Cancel
Save