领料单升级

master
zhaoxiaolin 4 months ago
parent 8fd7b12cc8
commit 4bc9da31c8

@ -1,12 +1,19 @@
import request from '@/utils/request' import request from '@/utils/request'
// 打印 // 打印
export function printPrepareByCode(workorderCode) { export function printPrepareByCode(workorderCode,recoil) {
return request({ return request({
url: '/mes/prepareDetail/printPrepareByCode/' + workorderCode, url: '/mes/prepareDetail/printPrepareByCode/' + workorderCode+'/'+recoil,
method: 'get' method: 'get'
}); });
} }
export function printPrepareXByCode(productDate) {
return request({
url: '/mes/prepareDetail/printPrepareXByCode/' + productDate,
method: 'get'
});
}
// 查询mes备料单明细列表 // 查询mes备料单明细列表
export function listPrepareDetail(query) { export function listPrepareDetail(query) {

@ -344,3 +344,11 @@ export function getWarehouseList(query) {
params: query params: query
}); });
} }
// 删除报工报表
export function deleteReportNow(reportCode) {
return request({
url: '/mes/reportWork/deleteReportNow/' + reportCode,
method: 'delete'
});
}

@ -112,17 +112,27 @@
v-hasPermi="['mes:prepare:export']" v-hasPermi="['mes:prepare:export']"
>导出</el-button> >导出</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="success" type="success"
plain plain
:disabled="single" :disabled="single"
icon="el-icon-download" icon="el-icon-download"
size="mini" size="mini"
@click="showPrint" @click="showPrint"
v-hasPermi="['mes:prepare:export']" v-hasPermi="['mes:prepare:export']"
>打印预览</el-button> >打印生产物料</el-button>
</el-col> </el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-download"
size="mini"
@click="showPrintX"
v-hasPermi="['mes:prepare:export']"
>打印反冲物料</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
@ -212,7 +222,7 @@
</div> </div>
</el-dialog> </el-dialog>
<!-- 打印预览弹出层 --> <!-- 打印预览弹出层(生产物料) -->
<el-dialog <el-dialog
title="备料信息" title="备料信息"
:visible.sync="printDialogVisible" :visible.sync="printDialogVisible"
@ -220,72 +230,35 @@
> >
<div id="printFrom" class="my-print-box"> <div id="printFrom" class="my-print-box">
<el-form :ref="formRef" :model="form" :rules="validateRules"> <el-form :model="form">
<!-- 表头-工单信息 --> <!-- 表头-工单信息 -->
<el-row class="my-print-head"> <el-row class="my-print-head">
<el-col :offset="10" :span="5">生产订单备料单(订单物料)</el-col> <el-col :offset="10" :span="5">生产订单备料单({{printData.printTitle}})</el-col>
</el-row> </el-row>
<!-- 导航栏 --> <!-- 导航栏 -->
<el-row class="my-print-nav"> <el-row class="my-print-nav">
<el-col :span="4">工厂:{{printData.factory}}</el-col> <el-col :span="4">工厂:{{printData.factory}}</el-col>
<el-col :span="4">工作中心:{{printData.workCenter}}</el-col> <el-col :span="4">工作中心:{{printData.workCenter}}</el-col>
<el-col :span="4" v-if="printData.prodLineCode!=null">线:{{printData.prodLineCode}}</el-col>
<el-col :span="4">生产日期:{{printData.productDate}}</el-col> <el-col :span="4">生产日期:{{printData.productDate}}</el-col>
<el-col :span="4">打印日期:{{printData.printDate}}</el-col> <el-col :span="4">打印日期:{{printData.printDate}}</el-col>
<el-col :span="4">页次: 1/ 1</el-col> <el-col :span="4">页次: 1/ 1</el-col>
</el-row> </el-row>
<!-- 主数据 --> <!-- 主数据 -->
<el-table <el-table
v-if="refreshNewWorkerTable" v-if="refreshNewWorkerTable" v-loading="newWorkerLoading"class="my-print-table":data="printData.workTable"
v-loading="newWorkerLoading" border style="width: 100%">
class="my-print-table" <el-table-column type="index" label="序号" width="50"></el-table-column>
:data="printData.workTable" <el-table-column prop="materialCode" label="料号" width="130" :formatter="productCodeFormate"></el-table-column>
border <el-table-column prop="materialName" label="物料描述" width="320"></el-table-column>
style="width: 100%"> <el-table-column prop="unit" width="50" label="单位"></el-table-column>
<el-table-column <el-table-column v-if="showWorkorderCode" prop="workorderCode" width="100" label="生产订单" :formatter="orderCodeFormate"></el-table-column>
type="index" <el-table-column prop="quantity" label="请领数量"></el-table-column>
label="序号" <el-table-column prop="fundQuanlity" label="欠领数量"></el-table-column>
width="50"> <el-table-column prop="routeCode" width="80" label="实发数量"></el-table-column>
</el-table-column> <el-table-column prop="recoil" label="反冲物料"></el-table-column>
<el-table-column
prop="materialCode"
label="料号"
width="130" :formatter="productCodeFormate">
</el-table-column>
<el-table-column
prop="materialName"
label="物料描述"
width="320">
</el-table-column>
<el-table-column
prop="unit"
width="50"
label="单位">
</el-table-column>
<el-table-column
prop="workorderCode"
width="100"
label="生产订单" :formatter="orderCodeFormate">
</el-table-column>
<el-table-column
prop="quantity"
label="请领数量">
</el-table-column>
<el-table-column
prop="fundQuanlity"
label="欠领数量">
</el-table-column>
<el-table-column
prop="routeCode"
width="80"
label="实发数量">
</el-table-column>
<el-table-column
prop="recoil"
label="反冲物料">
</el-table-column>
</el-table> </el-table>
<br/> <br/>
<!-- 底部 --> <!-- 底部 -->
<el-row class="my-print-foot"> <el-row class="my-print-foot">
@ -299,22 +272,18 @@
<el-col :offset="1" :span="3">SAP-No:{{printData.SAPNo}}</el-col> <el-col :offset="1" :span="3">SAP-No:{{printData.SAPNo}}</el-col>
<el-col :offset="1" :span="3">Z-PM-F-030-A.2</el-col> <el-col :offset="1" :span="3">Z-PM-F-030-A.2</el-col>
</el-row> </el-row>
</el-form> </el-form>
</div> </div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button type="primary" @click="handlePrint(printData)"> </el-button> <el-button type="primary" @click="handlePrint(printData)"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { listPrepare, getPrepare, delPrepare, addPrepare, updatePrepare } from "@/api/mes/prepare"; import { listPrepare, getPrepare, delPrepare, addPrepare, updatePrepare } from "@/api/mes/prepare";
import {printPrepareByCode} from "@/api/mes/prepareDetail"; import {printPrepareByCode,printPrepareXByCode} from "@/api/mes/prepareDetail";
import moment from "moment/moment"; import moment from "moment/moment";
// import { listPrepareDetail, getPrepareDetail, delPrepareDetail, addPrepareDetail, updatePrepareDetail } from "@/api/mes/prepareDetail"; // import { listPrepareDetail, getPrepareDetail, delPrepareDetail, addPrepareDetail, updatePrepareDetail } from "@/api/mes/prepareDetail";
// import Detail from "./prepareDetail.vue"; // import Detail from "./prepareDetail.vue";
@ -325,11 +294,10 @@ export default {
return { return {
newWorkerLoading: false, newWorkerLoading: false,
refreshNewWorkerTable:true, refreshNewWorkerTable:true,
showWorkorderCode:true,
// //
selectPrepare:[], selectPrepare:[],
// //
formRef: 'form',
validateRules: [],
printData: { printData: {
printable: 'printFrom', printable: 'printFrom',
ignore: ['no-print'], ignore: ['no-print'],
@ -443,7 +411,7 @@ export default {
properties: params.properties || null properties: params.properties || null
}) })
}, },
// // ()
showPrint() { showPrint() {
// //
this.printData.workCenter = "暂无数据"; this.printData.workCenter = "暂无数据";
@ -451,24 +419,53 @@ export default {
this.printData.workTable = []; this.printData.workTable = [];
this.printData.factory = null; this.printData.factory = null;
this.printData.productDate = null; this.printData.productDate = null;
this.printData.prodLineCode = null;
// //
this.printDialogVisible = true; this.printDialogVisible = true;
this.newWorkerLoading = true // true this.newWorkerLoading = true // true
this.refreshNewWorkerTable = false // refreshProTablefalse this.refreshNewWorkerTable = false // refreshProTablefalse
printPrepareByCode(this.selectPrepare[0].workorderCode).then(response => { printPrepareByCode(this.selectPrepare[0].workorderCode,'0').then(response => {
console.log(response.data) this.showWorkorderCode = true;
this.printData.printTitle = '订单物料';
this.printData.factory = response.data.mesPrepareDetailList[0].factoryCode this.printData.factory = response.data.mesPrepareDetailList[0].factoryCode
this.printData.productDate = response.data.mesPrepareDetailList[0].productDate this.printData.productDate = response.data.mesPrepareDetailList[0].productDate
this.printData.printDate = moment(new Date()).format('YYYY-MM-DD') this.printData.printDate = moment(new Date()).format('YYYY-MM-DD')
this.printData.workTable = response.data.mesPrepareDetailList
this.printData.prodLineCode = response.data.mesPrepare.prodLineCode
this.refreshNewWorkerTable = true // refreshProTabletrue
this.newWorkerLoading = false // false
})
},
// ()
showPrintX() {
if(this.queryParams.productDate == null){
this.$modal.msgError("请选择工单生产日期");
return;
}
//
this.printData.workCenter = "暂无数据";
this.printData.printDate = null;
this.printData.workTable = [];
this.printData.factory = null;
this.printData.productDate = null;
this.printData.prodLineCode = null;
//
this.printDialogVisible = true;
this.newWorkerLoading = true // true
this.refreshNewWorkerTable = false // refreshProTablefalse
printPrepareXByCode(moment(this.queryParams.productDate).format('YYYY-MM-DD'),'X').then(response => {
this.showWorkorderCode = false;
this.printData.printTitle = '反冲物料';
this.printData.factory = response.data.mesPrepareDetailList[0].factoryCode
this.printData.productDate = moment(this.queryParams.productDate).format('YYYY-MM-DD')
this.printData.printDate = moment(new Date()).format('YYYY-MM-DD')
this.printData.workTable = response.data.mesPrepareDetailList this.printData.workTable = response.data.mesPrepareDetailList
this.refreshNewWorkerTable = true // refreshProTabletrue this.refreshNewWorkerTable = true // refreshProTabletrue
this.newWorkerLoading = false // false this.newWorkerLoading = false // false
}) })
}, },
//
// handlePrepareDetail(){
// this.$refs.detail.showFlag = true;
// },
// //
indexMethod(index){ indexMethod(index){
return index+1 ; return index+1 ;

@ -351,21 +351,21 @@
<el-table-column label="id" align="center" prop="id" v-if="false" /> <el-table-column label="id" align="center" prop="id" v-if="false" />
<el-table-column label="工单编码" width="130" align="left" prop="workorderCode" <el-table-column label="工单编码" width="130" align="left" prop="workorderCode"
:show-overflow-tooltip="true" /> :show-overflow-tooltip="true" />
<el-table-column label="订单编码" width="110" align="left" prop="workorderCodeSap" <el-table-column label="订单编码" width="105" align="left" prop="workorderCodeSap"
:show-overflow-tooltip="true" :formatter="orderCodeFormate" /> :show-overflow-tooltip="true" :formatter="orderCodeFormate" />
<el-table-column label="报工单号" width="110" align="left" prop="reportCode" <el-table-column label="报工单号" width="115" align="left" prop="reportCode"
:show-overflow-tooltip="true" /> :show-overflow-tooltip="true" />
<el-table-column label="批次" width="250" align="left" prop="batch" <el-table-column label="批次" width="250" align="left" prop="batch"
:show-overflow-tooltip="true" /> :show-overflow-tooltip="true" />
<el-table-column label="单位" align="center" prop="unit" /> <el-table-column label="单位" align="center" prop="unit" />
<el-table-column label="报工数量" width="100" align="left" prop="quantityFeedback" <el-table-column label="报工数量" width="120" align="left" prop="quantityFeedback"
:show-overflow-tooltip="true"> :show-overflow-tooltip="true">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input type="number" size="small" v-model="scope.row.quantityFeedback" <el-input type="number" size="small" v-model="scope.row.quantityFeedback"
@change="handleEdit(scope.$index, scope.row)"></el-input> @change="handleEdit(scope.$index, scope.row)"></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="工时数" align="center" prop="workTime"> <el-table-column label="工时数" align="center" prop="workTime" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input type="number" size="small" v-model="scope.row.workTime" <el-input type="number" size="small" v-model="scope.row.workTime"
@change="handleEdit(scope.$index, scope.row)"></el-input> @change="handleEdit(scope.$index, scope.row)"></el-input>
@ -379,6 +379,13 @@
</el-table-column> </el-table-column>
<el-table-column label="报工单编号" align="center" prop="reportCode" width="120" /> <el-table-column label="报工单编号" align="center" prop="reportCode" width="120" />
<el-table-column label="创建时间" align="center" prop="createTime" width="150" /> <el-table-column label="创建时间" align="center" prop="createTime" width="150" />
<el-table-column fixed="right" label="操作" width="90">
<template slot-scope="scope">
<el-button @click.native.prevent="deleteReportRow(scope.$index, item.libList)" size="small" type="danger" plain
v-if="item.libId == 'order1'">
删除</el-button>
</template>
</el-table-column>
</el-table> </el-table>
<div class="demo-input-suffix"> <div class="demo-input-suffix">
@ -624,7 +631,7 @@
import { import {
listReportWork, listReportWork,
getReportWork, getReportWork,
delReportWork, delReportWork,deleteReportNow,
addReportWork, addReportWork,
getWorkcenterList, getWorkcenterList,
getWarehouseList, getWarehouseList,
@ -900,6 +907,7 @@ export default {
this.queryParams.feedbackTimeEnd = null; this.queryParams.feedbackTimeEnd = null;
} }
this.loading = true; this.loading = true;
listReportWork(this.queryParams).then((response) => { listReportWork(this.queryParams).then((response) => {
this.reportWorkList = response.rows; this.reportWorkList = response.rows;
this.total = response.total; this.total = response.total;
@ -1021,6 +1029,7 @@ export default {
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
this.queryParams.pageNum = 1; this.queryParams.pageNum = 1;
this.queryParams.machineCode = "";
this.getList(); this.getList();
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
@ -1203,6 +1212,7 @@ export default {
// //
getAllLevelReportList(this.queryParams).then((response) => { getAllLevelReportList(this.queryParams).then((response) => {
this.queryParams.workorderCode = ""; this.queryParams.workorderCode = "";
this.queryParams.machineCode = "";
this.openReport = true; this.openReport = true;
this.titleReport = "工单报工详情"; this.titleReport = "工单报工详情";
this.libTabs = response; this.libTabs = response;
@ -1511,6 +1521,30 @@ export default {
this.newWorkerLoading = false; // false this.newWorkerLoading = false; // false
}); });
}, },
//--
deleteReportRow(index, rows) {
this.$modal.confirm('是否确认删除?确认后,不需要点击下方确定,立即生效!').then(function() {
return deleteReportNow(rows[index].reportCode);
}).then(() => {
var sr = rows[index];
this.queryParams.workorderCode = sr.workorderCode;
this.queryParams.machineCode = sr.machineCode;
//
getAllLevelReportList(this.queryParams).then((response) => {
this.queryParams.workorderCode = "";
this.queryParams.machineCode = "";
this.openReport = true;
this.titleReport = "工单报工详情";
this.libTabs = response;
});
rows.splice(index, 1);
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
//-- //--
deleteBomRow(index, rows) { deleteBomRow(index, rows) {
this.$modal this.$modal

@ -875,7 +875,7 @@ export default {
var statusesArray = this.statuses; var statusesArray = this.statuses;
for (var i = 0; i < statusesArray.length; i++) { for (var i = 0; i < statusesArray.length; i++) {
if (statusesArray[i] != 'w0') {// if (statusesArray[i] != 'w0') {//
this.$modal.msgError("已经下达的订单不允许操作"); this.$modal.msgError("工单只有未派发和已派发才可变更!");
return return
} }
} }
@ -1197,7 +1197,7 @@ export default {
if (sum >= this.productData[0].atrr1) { if (sum >= this.productData[0].atrr1) {
this.$message({ this.$message({
message: '请填写完批次信息', message: '数量已经拆分完',
type: 'warning' type: 'warning'
}) })
return return
@ -1331,7 +1331,7 @@ export default {
var statusesArray = this.statuses; var statusesArray = this.statuses;
for (var i = 0; i < statusesArray.length; i++) { for (var i = 0; i < statusesArray.length; i++) {
if (statusesArray[i] == 'w1') {// if (statusesArray[i] == 'w1') {//
this.$modal.msgError("已经下达的订单不允许操作"); this.$modal.msgError("工单只有未派发和已派发才可变更!");
return return
} }
} }

@ -71,7 +71,7 @@
:disabled="single" :disabled="single"
@click="handleUpdateAttached" @click="handleUpdateAttached"
v-hasPermi="['wms:attached:edit']" v-hasPermi="['wms:attached:edit']"
>新增/修改附属属性</el-button >附属属性</el-button
> >
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">

Loading…
Cancel
Save