|
|
|
@ -85,16 +85,16 @@
|
|
|
|
|
</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:productOrder:edit']"
|
|
|
|
|
>修改
|
|
|
|
|
</el-button>
|
|
|
|
|
<!-- <el-button-->
|
|
|
|
|
<!-- type="success"-->
|
|
|
|
|
<!-- plain-->
|
|
|
|
|
<!-- icon="el-icon-edit"-->
|
|
|
|
|
<!-- size="mini"-->
|
|
|
|
|
<!-- :disabled="single"-->
|
|
|
|
|
<!-- @click="handleUpdate"-->
|
|
|
|
|
<!-- v-hasPermi="['mes:productOrder:edit']"-->
|
|
|
|
|
<!-- >修改工单-->
|
|
|
|
|
<!-- </el-button>-->
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="1.5">
|
|
|
|
|
<el-button
|
|
|
|
@ -108,17 +108,17 @@
|
|
|
|
|
>删除
|
|
|
|
|
</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:productOrder:export']"
|
|
|
|
|
>导出
|
|
|
|
|
</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:productOrder:export']"-->
|
|
|
|
|
<!-- >导出-->
|
|
|
|
|
<!-- </el-button>-->
|
|
|
|
|
<!-- </el-col>-->
|
|
|
|
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
|
|
|
|
|
</el-row>
|
|
|
|
|
|
|
|
|
@ -128,10 +128,10 @@
|
|
|
|
|
<el-table-column label="工单编号" align="center" prop="orderCode" v-if="columns[1].visible" width="100"/>
|
|
|
|
|
<el-table-column label="销售订单ID" align="center" prop="saleOrderId" v-if="columns[2].visible" width="100"/>
|
|
|
|
|
<el-table-column label="销售订单编号" align="center" prop="saleorderCode" v-if="columns[3].visible" width="100"/>
|
|
|
|
|
<el-table-column label="销售订单行号" align="center" prop="saleorderLinenumber" v-if="columns[4].visible" width="100"/>
|
|
|
|
|
<el-table-column label="销售订单行号" align="center" prop="saleorderLinenumber" v-if="columns[4].visible" width="110"/>
|
|
|
|
|
<el-table-column label="项目编号" align="center" prop="projectNo" v-if="columns[5].visible"/>
|
|
|
|
|
<el-table-column label="物料名称" align="center" prop="materialName" v-if="columns[6].visible"/>
|
|
|
|
|
<el-table-column label="物料bomID" align="center" prop="materialBomId" v-if="columns[7].visible" width="100"/>
|
|
|
|
|
<el-table-column label="物料名称" align="center" prop="materialName" v-if="columns[6].visible" width="100"/>
|
|
|
|
|
<el-table-column label="物料BOM" align="center" prop="materialBomDesc" v-if="columns[7].visible" width="120"/>
|
|
|
|
|
<el-table-column label="派工类型" align="center" prop="dispatchType" v-if="columns[8].visible">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<dict-tag :options="dict.type.dispatch_type" :value="scope.row.dispatchType"/>
|
|
|
|
@ -142,6 +142,11 @@
|
|
|
|
|
<el-table-column label="计划数量" align="center" prop="planAmount" v-if="columns[11].visible"/>
|
|
|
|
|
<el-table-column label="已派工数量" align="center" prop="dispatchAmount" v-if="columns[12].visible" width="100"/>
|
|
|
|
|
<el-table-column label="完成数量" align="center" prop="completeAmount" v-if="columns[13].visible"/>
|
|
|
|
|
<el-table-column label="工单状态" align="center" prop="orderStatus" v-if="columns[19].visible">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<dict-tag :options="dict.type.plan_status" :value="scope.row.orderStatus"/>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="发布时间" align="center" prop="releaseTime" width="180" v-if="columns[14].visible">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<span>{{ parseTime(scope.row.releaseTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
|
|
|
@ -172,11 +177,6 @@
|
|
|
|
|
<span>{{ parseTime(scope.row.realEndTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="工单状态" align="center" prop="orderStatus" v-if="columns[19].visible">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<dict-tag :options="dict.type.plan_status" :value="scope.row.orderStatus"/>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="库存锁定标识" align="center" prop="stockLockFlag" v-if="columns[20].visible" width="100">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<dict-tag :options="dict.type.active_flag" :value="scope.row.stockLockFlag"/>
|
|
|
|
@ -197,13 +197,15 @@
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150" fixed="right">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<!-- <el-button-->
|
|
|
|
|
<!-- size="mini"-->
|
|
|
|
|
<!-- type="text"-->
|
|
|
|
|
<!-- icon="el-icon-edit"-->
|
|
|
|
|
<!-- @click="handleUpdate(scope.row)"-->
|
|
|
|
|
<!-- v-hasPermi="['mes:productOrder:edit']"-->
|
|
|
|
|
<!-- >修改</el-button>-->
|
|
|
|
|
<el-button
|
|
|
|
|
size="mini"
|
|
|
|
|
type="text"
|
|
|
|
|
icon="el-icon-edit"
|
|
|
|
|
@click="handleUpdate(scope.row)"
|
|
|
|
|
v-if="scope.row.orderStatus === '0'"
|
|
|
|
|
v-hasPermi="['mes:productOrder:edit']"
|
|
|
|
|
>修改工单
|
|
|
|
|
</el-button>
|
|
|
|
|
<el-button
|
|
|
|
|
size="mini"
|
|
|
|
|
type="text"
|
|
|
|
@ -216,6 +218,7 @@
|
|
|
|
|
type="text"
|
|
|
|
|
icon="el-icon-success"
|
|
|
|
|
@click="handlePublish(scope.row)"
|
|
|
|
|
v-if="scope.row.orderStatus === '0'"
|
|
|
|
|
>发布
|
|
|
|
|
</el-button>
|
|
|
|
|
<el-button
|
|
|
|
@ -223,6 +226,7 @@
|
|
|
|
|
type="text"
|
|
|
|
|
icon="el-icon-d-arrow-left"
|
|
|
|
|
@click="handleRecall(scope.row)"
|
|
|
|
|
v-if="scope.row.orderStatus === '1'"
|
|
|
|
|
>撤回
|
|
|
|
|
</el-button>
|
|
|
|
|
<el-button
|
|
|
|
@ -230,15 +234,9 @@
|
|
|
|
|
type="text"
|
|
|
|
|
icon="el-icon-right"
|
|
|
|
|
@click="handleDispatch(scope.row)"
|
|
|
|
|
v-if="scope.row.orderStatus === '1' || scope.row.orderStatus === '3'"
|
|
|
|
|
>生产派工
|
|
|
|
|
</el-button>
|
|
|
|
|
<!-- <el-button-->
|
|
|
|
|
<!-- size="mini"-->
|
|
|
|
|
<!-- type="text"-->
|
|
|
|
|
<!-- icon="el-icon-delete"-->
|
|
|
|
|
<!-- @click="handleDelete(scope.row)"-->
|
|
|
|
|
<!-- v-hasPermi="['mes:productOrder:remove']"-->
|
|
|
|
|
<!-- >删除</el-button>-->
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
@ -459,6 +457,8 @@ export default {
|
|
|
|
|
loading: true,
|
|
|
|
|
// 选中数组
|
|
|
|
|
ids: [],
|
|
|
|
|
// 选中orderCode数组
|
|
|
|
|
orderCodes: [],
|
|
|
|
|
// 非单个禁用
|
|
|
|
|
single: true,
|
|
|
|
|
// 非多个禁用
|
|
|
|
@ -526,7 +526,7 @@ export default {
|
|
|
|
|
{required: true, message: "物料ID不能为空", trigger: "blur"}
|
|
|
|
|
],
|
|
|
|
|
materialBomId: [
|
|
|
|
|
{required: true, message: "物料bomID不能为空", trigger: "blur"}
|
|
|
|
|
{required: true, message: "物料BOM不能为空", trigger: "blur"}
|
|
|
|
|
],
|
|
|
|
|
dispatchType: [
|
|
|
|
|
{required: true, message: "派工类型不能为空", trigger: "change"}
|
|
|
|
@ -546,7 +546,7 @@ export default {
|
|
|
|
|
saleAmount: [
|
|
|
|
|
{required: true, message: "销售数量不能为空", trigger: "blur"},
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value, callback) => callback(Number.isInteger(Number(value)) && Number(value) >= 1 ? undefined : new Error("销售数量需要是大于等于1的整数")),
|
|
|
|
|
validator: (rule, value, callback) => callback(Number.isInteger(Number(value)) && Number(value) >= 0 ? undefined : new Error("销售数量需要是大于等于0的整数")),
|
|
|
|
|
trigger: "blur"
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
@ -563,11 +563,11 @@ export default {
|
|
|
|
|
{key: 1, label: `工单编号`, visible: true},
|
|
|
|
|
{key: 2, label: `销售订单ID`, visible: false},
|
|
|
|
|
{key: 3, label: `销售订单编号`, visible: true},
|
|
|
|
|
{key: 4, label: `销售订单行号`, visible: true},
|
|
|
|
|
{key: 5, label: `项目编号`, visible: true},
|
|
|
|
|
{key: 4, label: `销售订单行号`, visible: false},
|
|
|
|
|
{key: 5, label: `项目编号`, visible: false},
|
|
|
|
|
{key: 6, label: `物料名称`, visible: true},
|
|
|
|
|
{key: 7, label: `物料bomID`, visible: true},
|
|
|
|
|
{key: 8, label: `派工类型`, visible: true},
|
|
|
|
|
{key: 8, label: `派工类型`, visible: false},
|
|
|
|
|
{key: 9, label: `工艺路线`, visible: true},
|
|
|
|
|
{key: 10, label: `销售数量`, visible: true},
|
|
|
|
|
{key: 11, label: `计划数量`, visible: true},
|
|
|
|
@ -580,7 +580,7 @@ export default {
|
|
|
|
|
{key: 18, label: `完成时间`, visible: true},
|
|
|
|
|
{key: 19, label: `工单状态`, visible: true},
|
|
|
|
|
{key: 20, label: `库存锁定标识`, visible: true},
|
|
|
|
|
{key: 21, label: `备注`, visible: true},
|
|
|
|
|
{key: 21, label: `备注`, visible: false},
|
|
|
|
|
{key: 22, label: `创建人`, visible: false},
|
|
|
|
|
{key: 23, label: `创建时间`, visible: false},
|
|
|
|
|
{key: 24, label: `更新人`, visible: false},
|
|
|
|
@ -666,6 +666,7 @@ export default {
|
|
|
|
|
// 多选框选中数据
|
|
|
|
|
handleSelectionChange(selection) {
|
|
|
|
|
this.ids = selection.map(item => item.productOrderId)
|
|
|
|
|
this.orderCodes = selection.map(item => item.orderCode)
|
|
|
|
|
this.single = selection.length !== 1
|
|
|
|
|
this.multiple = !selection.length
|
|
|
|
|
},
|
|
|
|
@ -745,11 +746,22 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
/** 修改按钮操作 */
|
|
|
|
|
handleUpdate(row) {
|
|
|
|
|
console.log(row)
|
|
|
|
|
if (row.orderStatus !== '0') {
|
|
|
|
|
return this.$modal.msgError("该订单状态无法修改!");
|
|
|
|
|
}
|
|
|
|
|
this.reset();
|
|
|
|
|
const productOrderId = row.productOrderId || this.ids
|
|
|
|
|
getProductOrder(productOrderId).then(response => {
|
|
|
|
|
this.form = response.data;
|
|
|
|
|
getMaterialVisionList(response.data.materialId).then(response => {
|
|
|
|
|
this.materialBomList = response.data
|
|
|
|
|
})
|
|
|
|
|
if (response.data.saleOrderId === null) {
|
|
|
|
|
this.noOrderOpen = true;
|
|
|
|
|
} else {
|
|
|
|
|
this.open = true;
|
|
|
|
|
}
|
|
|
|
|
this.title = "修改生产工单";
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
@ -768,18 +780,29 @@ export default {
|
|
|
|
|
handlePublish(row) {
|
|
|
|
|
this.form.productOrderId = row.productOrderId;
|
|
|
|
|
this.form.orderStatus = row.orderStatus;
|
|
|
|
|
this.$modal.confirm('是否确认发布生产工单编号为"' + row.orderCode + '"的数据项?').then(function () {
|
|
|
|
|
return true;
|
|
|
|
|
}).then(() => {
|
|
|
|
|
productOrderPublish(this.form).then(response => {
|
|
|
|
|
this.$modal.msgSuccess("发布成功");
|
|
|
|
|
this.getList();
|
|
|
|
|
this.$router.push("/mes/plan/productplan");
|
|
|
|
|
});
|
|
|
|
|
}).catch(() => {
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/** 撤回 */
|
|
|
|
|
handleRecall(row) {
|
|
|
|
|
this.form.productOrderId = row.productOrderId;
|
|
|
|
|
this.$modal.confirm('是否确认撤回生产工单编号为"' + row.orderCode + '"的数据项?').then(function () {
|
|
|
|
|
return true;
|
|
|
|
|
}).then(() => {
|
|
|
|
|
productOrderRecall(this.form).then(response => {
|
|
|
|
|
this.$modal.msgSuccess("撤回成功");
|
|
|
|
|
this.getList();
|
|
|
|
|
this.$modal.msgSuccess("撤回成功");
|
|
|
|
|
});
|
|
|
|
|
}).catch(() => {
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
@ -791,11 +814,13 @@ export default {
|
|
|
|
|
this.$tab.openPage("工单[" + orderCode + "]生产派工", '/mes/product-plan/index/' + productOrderId, params);
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** 提交按钮 */
|
|
|
|
|
submitForm() {
|
|
|
|
|
this.$refs["form"].validate(valid => {
|
|
|
|
|
if (valid) {
|
|
|
|
|
if (this.form.saleAmount < this.form.planAmount) {
|
|
|
|
|
return this.$modal.msgError("计划数量不能大于销售数量!");
|
|
|
|
|
}
|
|
|
|
|
if (this.form.productOrderId != null) {
|
|
|
|
|
updateProductOrder(this.form).then(response => {
|
|
|
|
|
this.$modal.msgSuccess("修改成功");
|
|
|
|
@ -816,7 +841,10 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
/** 删除按钮操作 */
|
|
|
|
|
handleDelete(row) {
|
|
|
|
|
const productOrderIds = row.productOrderId || this.ids;
|
|
|
|
|
const productOrderIds = row.orderCode || this.orderCodes;
|
|
|
|
|
if (row.orderStatus !== '0' && row.orderStatus !== '8') {
|
|
|
|
|
return this.$modal.msgError("该订单状态无法删除!");
|
|
|
|
|
}
|
|
|
|
|
this.$modal.confirm('是否确认删除生产工单编号为"' + productOrderIds + '"的数据项?').then(function () {
|
|
|
|
|
return delProductOrder(productOrderIds);
|
|
|
|
|
}).then(() => {
|
|
|
|
|