change - add下达计划

boardTest
yinq 1 year ago
parent f505ca1a56
commit 3852097234

@ -226,7 +226,22 @@ export const dynamicRoutes = [
meta: { title: '修改生成配置', activeMenu: '/tool/gen' } meta: { title: '修改生成配置', activeMenu: '/tool/gen' }
} }
] ]
} },
{
path: '/mes/release-order',
component: Layout,
hidden: true,
permissions: ['mes/prod:prodOrderInfo:edit'],
children: [
{
path: 'index/:objId(\\d+)',
component: () => import('@/views/mes/prod/prodOrderInfo/releasePlan'),
name: 'releaseOrder',
meta: { title: '订单下达', activeMenu: '/mes/releasePlan' }
}
]
},
] ]
// 防止连续点击多次路由报错 // 防止连续点击多次路由报错

@ -1,7 +1,7 @@
<template> <template>
<div class="login"> <div class="login">
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form"> <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
<h3 class="title">信明橡塑后台管理系统</h3> <h3 class="title">信明橡塑管理系统</h3>
<el-form-item prop="username"> <el-form-item prop="username">
<el-input <el-input
v-model="loginForm.username" v-model="loginForm.username"
@ -56,7 +56,7 @@
</el-form> </el-form>
<!-- 底部 --> <!-- 底部 -->
<div class="el-login-footer"> <div class="el-login-footer">
<span>Copyright © 2018-2024 ruoyi.vip All Rights Reserved.</span> <!-- <span>Copyright © 2018-2024 hwwl.com All Rights Reserved.</span>-->
</div> </div>
</div> </div>
</template> </template>

@ -152,7 +152,7 @@
<span>{{ parseTime(scope.row.enableDate, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.enableDate, '{y}-{m}-{d}') }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="所属产线" align="center" prop="productLineCode" v-if="columns[11].visible"/> <el-table-column label="所属产线" align="center" prop="productLineName" v-if="columns[11].visible"/>
<el-table-column label="启用标识" align="center" prop="isFlag" v-if="columns[12].visible"> <el-table-column label="启用标识" align="center" prop="isFlag" v-if="columns[12].visible">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.is_flag" :value="scope.row.isFlag"/> <dict-tag :options="dict.type.is_flag" :value="scope.row.isFlag"/>

@ -69,6 +69,7 @@
<!-- <el-table-column label="BOM编号" prop="bomCode" />--> <!-- <el-table-column label="BOM编号" prop="bomCode" />-->
<el-table-column label="物料编码" align="center" prop="materialCode"/> <el-table-column label="物料编码" align="center" prop="materialCode"/>
<el-table-column label="物料名称" align="center" prop="materialName"/> <el-table-column label="物料名称" align="center" prop="materialName"/>
<el-table-column label="物料版本" align="center" prop="materialDesc"/>
<el-table-column label="物料类别" align="center" prop="materialType"> <el-table-column label="物料类别" align="center" prop="materialType">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.material_subclass" :value="scope.row.materialType"/> <dict-tag :options="dict.type.material_subclass" :value="scope.row.materialType"/>

@ -100,6 +100,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="成品物料名称" align="center" prop="materialName" v-if="columns[3].visible"/> <el-table-column label="成品物料名称" align="center" prop="materialName" v-if="columns[3].visible"/>
<el-table-column label="物料版本" align="center" prop="materialDesc" v-if="columns[15].visible"/>
<el-table-column label="物料小类" align="center" prop="materialType" v-if="columns[4].visible"> <el-table-column label="物料小类" align="center" prop="materialType" v-if="columns[4].visible">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.material_subclass" :value="scope.row.materialType"/> <dict-tag :options="dict.type.material_subclass" :value="scope.row.materialType"/>
@ -166,6 +167,9 @@
<el-button slot="append" icon="el-icon-search" @click="handleMaterialAdd"></el-button> <el-button slot="append" icon="el-icon-search" @click="handleMaterialAdd"></el-button>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="物料版本" prop="materialDesc">
<el-input v-model="form.materialDesc" placeholder="请输入物料版本"/>
</el-form-item>
<!-- <el-form-item label="所属工厂">--> <!-- <el-form-item label="所属工厂">-->
<!-- <el-select v-model="form.plantCode" placeholder="请选择所属工厂">--> <!-- <el-select v-model="form.plantCode" placeholder="请选择所属工厂">-->
<!-- <el-option--> <!-- <el-option-->
@ -274,6 +278,7 @@ export default {
plantCode: null, plantCode: null,
productLineCode: null, productLineCode: null,
isPlanToStation: null, isPlanToStation: null,
materialDesc: null,
isFlag: null, isFlag: null,
createBy: null, createBy: null,
createTime: null, createTime: null,
@ -302,6 +307,7 @@ export default {
{ key: 12, label: `更新人`, visible: false }, { key: 12, label: `更新人`, visible: false },
{ key: 13, label: `更新时间`, visible: false }, { key: 13, label: `更新时间`, visible: false },
{ key: 14, label: `工单编号`, visible: true }, { key: 14, label: `工单编号`, visible: true },
{ key: 15, label: `物料版本`, visible: true },
], ],
// //
factoryList: [] factoryList: []
@ -335,6 +341,7 @@ export default {
bomCode: null, bomCode: null,
materialCode: null, materialCode: null,
materialName: null, materialName: null,
materialDesc: null,
materialType: 1, materialType: 1,
standardAmount: 1, standardAmount: 1,
parentId: 0, parentId: 0,

@ -9,14 +9,14 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<!-- <el-form-item label="物料编码" prop="materialCode">--> <!-- <el-form-item label="物料编码" prop="materialCode">-->
<!-- <el-input--> <!-- <el-input-->
<!-- v-model="queryParams.materialCode"--> <!-- v-model="queryParams.materialCode"-->
<!-- placeholder="请输入物料编码"--> <!-- placeholder="请输入物料编码"-->
<!-- clearable--> <!-- clearable-->
<!-- @keyup.enter.native="handleQuery"--> <!-- @keyup.enter.native="handleQuery"-->
<!-- />--> <!-- />-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<el-form-item label="物料名称" prop="materialName"> <el-form-item label="物料名称" prop="materialName">
<el-input <el-input
v-model="queryParams.materialName" v-model="queryParams.materialName"
@ -66,22 +66,22 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- <el-form-item label="工作中心" prop="workCenterCode">--> <!-- <el-form-item label="工作中心" prop="workCenterCode">-->
<!-- <el-input--> <!-- <el-input-->
<!-- v-model="queryParams.workCenterCode"--> <!-- v-model="queryParams.workCenterCode"-->
<!-- placeholder="请输入工作中心"--> <!-- placeholder="请输入工作中心"-->
<!-- clearable--> <!-- clearable-->
<!-- @keyup.enter.native="handleQuery"--> <!-- @keyup.enter.native="handleQuery"-->
<!-- />--> <!-- />-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<!-- <el-form-item label="工艺路线" prop="routingCode">--> <!-- <el-form-item label="工艺路线" prop="routingCode">-->
<!-- <el-input--> <!-- <el-input-->
<!-- v-model="queryParams.routingCode"--> <!-- v-model="queryParams.routingCode"-->
<!-- placeholder="请输入工艺路线"--> <!-- placeholder="请输入工艺路线"-->
<!-- clearable--> <!-- clearable-->
<!-- @keyup.enter.native="handleQuery"--> <!-- @keyup.enter.native="handleQuery"-->
<!-- />--> <!-- />-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button> <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-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
@ -89,17 +89,17 @@
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <!-- <el-col :span="1.5">-->
<el-button <!-- <el-button-->
type="primary" <!-- type="primary"-->
plain <!-- plain-->
icon="el-icon-plus" <!-- icon="el-icon-plus"-->
size="mini" <!-- size="mini"-->
@click="handleAdd" <!-- @click="handleAdd"-->
v-hasPermi="['mes/prod:prodOrderInfo:add']" <!-- v-hasPermi="['mes/prod:prodOrderInfo:add']"-->
>新增 <!-- >新增-->
</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"
@ -141,14 +141,14 @@
<el-table v-loading="loading" :data="prodOrderInfoList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="prodOrderInfoList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"/> <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="objId" v-if="columns[0].visible"/>
<el-table-column label="订单编号" align="center" prop="orderCode" v-if="columns[1].visible"/> <el-table-column label="订单编号" align="center" prop="orderCode" v-if="columns[1].visible" width="100"/>
<el-table-column label="销售订单编号" align="center" prop="saleOrderCode" v-if="columns[2].visible"/> <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="saleOrderLineNumber" v-if="columns[3].visible"/>
<el-table-column label="物料编码" align="center" prop="materialCode" v-if="columns[4].visible"/> <el-table-column label="物料编码" align="center" prop="materialCode" v-if="columns[4].visible" width="100"/>
<el-table-column label="物料名称" align="center" prop="materialName" v-if="columns[5].visible"/> <el-table-column label="物料名称" align="center" prop="materialName" v-if="columns[5].visible" width="150"/>
<el-table-column label="物料组" align="center" prop="matkl" v-if="columns[6].visible"/> <el-table-column label="物料组" align="center" prop="matkl" v-if="columns[6].visible"/>
<el-table-column label="BOM编号" align="center" prop="bomCode" v-if="columns[7].visible"/> <el-table-column label="BOM编号" align="center" prop="bomCode" v-if="columns[7].visible"/>
<el-table-column label="订单计划数量" align="center" prop="orderAmount" v-if="columns[8].visible"/> <el-table-column label="订单计划数量" align="center" prop="orderAmount" v-if="columns[8].visible" width="100"/>
<el-table-column label="完成数量" align="center" prop="completeAmount" v-if="columns[9].visible"/> <el-table-column label="完成数量" align="center" prop="completeAmount" v-if="columns[9].visible"/>
<el-table-column label="工单类型" align="center" prop="orderType" v-if="columns[10].visible"/> <el-table-column label="工单类型" align="center" prop="orderType" v-if="columns[10].visible"/>
<el-table-column label="工单状态" align="center" prop="orderStatus" v-if="columns[11].visible"> <el-table-column label="工单状态" align="center" prop="orderStatus" v-if="columns[11].visible">
@ -182,9 +182,9 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="工厂编号" align="center" prop="factoryCode" v-if="columns[17].visible"/> <el-table-column label="工厂编号" align="center" prop="factoryCode" v-if="columns[17].visible"/>
<el-table-column label="下计划标识" align="center" prop="isRelease" v-if="columns[18].visible"> <el-table-column label="下计划标识" align="center" prop="isRelease" v-if="columns[18].visible" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.finish_flag" :value="scope.row.isRelease"/> <dict-tag :options="dict.type.is_release" :value="scope.row.isRelease"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="工作中心" align="center" prop="workCenterCode" v-if="columns[19].visible"/> <el-table-column label="工作中心" align="center" prop="workCenterCode" v-if="columns[19].visible"/>
@ -203,24 +203,31 @@
<span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span> <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-edit" icon="el-icon-bottom"
@click="handleUpdate(scope.row)" @click="handleReleasePlan(scope.row)"
v-hasPermi="['mes/prod:prodOrderInfo:edit']" >下达计划
>修改
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['mes/prod:prodOrderInfo:remove']"
>删除
</el-button> </el-button>
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-edit"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- v-hasPermi="['mes/prod:prodOrderInfo:edit']"-->
<!-- >修改-->
<!-- </el-button>-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['mes/prod:prodOrderInfo:remove']"-->
<!-- >删除-->
<!-- </el-button>-->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -344,6 +351,56 @@
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </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-form>-->
<!-- <div slot="footer" class="dialog-footer">-->
<!-- <el-button type="primary" @click="submitReleaseForm"> </el-button>-->
<!-- <el-button @click="cancel"> </el-button>-->
<!-- </div>-->
<!-- </el-dialog>-->
</div> </div>
</template> </template>
@ -355,6 +412,7 @@ import {
addProdOrderInfo, addProdOrderInfo,
updateProdOrderInfo updateProdOrderInfo
} from '@/api/mes/prod/prodOrderInfo' } from '@/api/mes/prod/prodOrderInfo'
import router from "@//router";
export default { export default {
name: 'ProdOrderInfo', name: 'ProdOrderInfo',
@ -379,6 +437,8 @@ export default {
title: '', title: '',
// //
open: false, open: false,
//
// releaseOpen: false,
// //
daterangeBeginDate: [], daterangeBeginDate: [],
// //
@ -469,9 +529,38 @@ export default {
this.loading = false this.loading = false
}) })
}, },
/** 下达计划 */
handleReleasePlan(row) {
// if (row.isRelease === 0) {
// this.$modal.msgWarning('ERP')
// return
// }
// this.reset()
// const objId = row.objId
// getProdOrderInfo(objId).then(response => {
// this.form = response.data
// this.releaseOpen = true
// this.title = 'ERP'
// })
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, params);
},
/** 下达计划提交 */
submitReleaseForm() {
// addProdOrderInfo(this.form).then(response => {
// this.$modal.msgSuccess('')
// this.open = false
// this.getList()
// })
},
// //
cancel() { cancel() {
this.open = false this.open = false
this.releaseOpen = false
this.reset() this.reset()
}, },
// //

@ -0,0 +1,331 @@
<template>
<div>
<el-card>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-divider content-position="left"><span style="font-weight: bold; font-size: larger;">工单信息</span></el-divider>
<el-row :gutter="10">
<el-col :span="12">
<el-form-item label="工单号:">{{ form.orderCode }}</el-form-item>
<el-form-item label="成品编码:">{{ form.materialCode }}</el-form-item>
<el-form-item label="计划开始时间:">{{ parseTime(form.planBeginTime) }}</el-form-item>
<el-form-item label="计划数量/已派工数量/完成数量:" label-width="220px">
{{ form.planAmount }}/{{ form.dispatchAmount }}/{{ form.completeAmount }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="工艺路线:">{{ form.dispatchName }}</el-form-item>
<el-form-item label="成品名称:">{{ form.materialName }}</el-form-item>
<el-form-item label="计划结束时间:">{{ parseTime(form.planEndTime) }}</el-form-item>
</el-col>
</el-row>
<el-divider content-position="left"><span style="font-weight: bold; font-size: larger;">派工信息</span></el-divider>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button icon="el-icon-plus" size="mini" type="primary" @click="handleAddMesProductPlan">
</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDeleteMesProductPlan"
:disabled="single">删除
</el-button>
</el-col>
</el-row>
<el-table ref="mesProductPlan" :data="mesProductPlanList"
:row-class-name="rowMesProductPlanIndex" @selection-change="handleMesProductPlanSelectionChange">
<el-table-column align="center" type="selection" width="50"/>
<el-table-column align="center" label="序号" prop="index" width="50" v-if="false"/>
<el-table-column align="center" label="派工单号" prop="dispatchCode" width="290">
<template slot-scope="scope">
<el-input v-model="scope.row.dispatchCode" :disabled="true"/>
</template>
</el-table-column>
<el-table-column align="center" label="工序" prop="processName" width="140">
<template slot-scope="scope">
<el-input v-model="scope.row.processName" :disabled="true"/>
</template>
</el-table-column>
<el-table-column align="center" label="步骤" prop="processOrder">
<template slot-scope="scope">
<el-input v-model="scope.row.processOrder" :disabled="true"/>
</template>
</el-table-column>
<el-table-column align="center" label="工位" prop="stationName" width="140">
<template slot-scope="scope">
<el-input v-model="scope.row.stationName" :disabled="true"/>
</template>
</el-table-column>
<el-table-column align="center" label="派工数量" prop="planAmount" width="100">
<template slot-scope="scope">
<el-input v-model="scope.row.planAmount" :disabled="scope.row.oldRowFlag"/>
</template>
</el-table-column>
<el-table-column align="center" label="派工标准工时" prop="productionTime" width="100">
<template slot-scope="scope">
<el-input v-model="scope.row.productionTime" :disabled="scope.row.oldRowFlag"/>
</template>
</el-table-column>
<el-table-column align="center" label="计划开始时间" prop="planBeginTime" width="230">
<template slot-scope="scope">
<el-date-picker v-model="scope.row.planBeginTime" :disabled="scope.row.oldRowFlag" clearable
placeholder="请选择计划开始时间"
type="datetime" value-format="yyyy-MM-dd HH:mm:ss"/>
</template>
</el-table-column>
<el-table-column align="center" label="计划完成时间" prop="planEndTime" width="230">
<template slot-scope="scope">
<el-date-picker v-model="scope.row.planEndTime" :disabled="scope.row.oldRowFlag" clearable
placeholder="请选择计划完成时间"
type="datetime" value-format="yyyy-MM-dd HH:mm:ss"/>
</template>
</el-table-column>
<el-table-column align="center" label="状态" prop="planStatus" width="150">
<template slot-scope="scope">
<el-select v-model="scope.row.planStatus" :disabled="true" placeholder="请选择状态">
<el-option
v-for="dict in dict.type.product_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</template>
</el-table-column>
</el-table>
</el-form>
<el-form label-width="100px">
<el-form-item style="text-align: center;margin-left:-100px;margin-top:10px;">
<el-button type="primary" @click="submitForm()"></el-button>
<el-button @click="close()"></el-button>
</el-form-item>
</el-form>
</el-card>
</div>
</template>
<script>
import { getProdOrderInfo, listProdOrderInfo } from '@/api/mes/prod/prodOrderInfo'
export default {
name: "productPlanEdit",
dicts: ['product_status'],
data() {
return {
blueprintModel: false,
sopViewModel: false,
pictureDetailModel: false,
//
dialogImageUrl: '',
//
single: true,
checkedMesProductPlanList: [],
//
uploadImgUrl: process.env.VUE_APP_BASE_API,
// name
activeName: "columnInfo",
//
tableHeight: document.documentElement.scrollHeight - 245 + "px",
//
tables: [],
//
columns: [],
//
mesProductPlanList: [],
//
info: {},
//
form: {},
//
rules: {
materialId: [
{required: true, message: "物料ID不能为空", trigger: "blur"}
],
},
};
},
created() {
const objId = this.$route.params && this.$route.params.objId;
console.log(123,objId)
if (objId) {
//
getProdOrderInfo(objId).then(res => {
this.form = res.data;
});
// getProductPlan({objId: objId}).then(res => {
// res.data.forEach(e => {
// this.mesProductPlanList.push(e);
// })
// })
}
},
methods: {
/** 提交按钮 */
submitForm() {
let dataList = this.mesProductPlanList.filter(plan => !plan.oldRowFlag);
if (dataList.length === 0) {
this.close();
return;
}
// ( + <= )
// processIdplanAmountplanAmount
const sumList = dataList.reduce((result, {processId, planAmount}) => {
const numericAmount = parseInt(planAmount, 10);
if (!this.isPositiveInteger(numericAmount)) {
this.$modal.msgError("派工数量须为大于等于0的正整数");
return;
}
result[processId] = (result[processId] || 0) + numericAmount;
return result;
}, {});
const uniqueSum = new Set(Object.values(sumList));
if (uniqueSum.size === 1) {
const finalSum = Array.from(uniqueSum)[0];
let dispatchedAmount = this.form.dispatchAmount + finalSum;
if (dispatchedAmount > this.form.planAmount) {
this.$modal.msgError("每个工序的派工数量之和需小于等于该工单计划数量!");
return;
}
dataList.forEach(e => {
e.dispatchedAmount = dispatchedAmount;
}
)
} else {
this.$modal.msgError("每个工序的派工数量之和需相等!");
return;
}
orderAddMesProductPlanList(dataList).then(res => {
this.$modal.msgSuccess(res.msg);
this.close();
});
},
/** 删除按钮操作 */
// handleDeleteMesProductPlan() {
// let productPlan = this.checkedMesProductPlanList[0];
// this.$modal.confirm('"' + productPlan.dispatchCode + '"').then(function () {
// return true;
// }).then(() => {
// if (productPlan.planId === undefined || productPlan.planId === null) {
// //
// const mesProductPlanDetailList = this.mesProductPlanList;
// this.mesProductPlanList = mesProductPlanDetailList.filter(function (item) {
// return productPlan.dispatchCode !== item.dispatchCode
// });
// } else {
// //
// const delList = this.mesProductPlanList;
// let dispatchSum = 0;
// try {
// const planIds = delList.filter(function (item) {
// return productPlan.dispatchCode === item.dispatchCode
// }).map(item => {
// if (item.planStatus !== '1') {
// throw Error("");
// }
// if (item.processId === productPlan.processId) {
// dispatchSum = dispatchSum + item.planAmount;
// }
// return item.planId;
// });
// dispatchSum = this.form.dispatchAmount - dispatchSum;
// delProductplan(planIds).then(res =>{
// //
// updateProductOrder({
// productOrderId: this.form.productOrderId,
// dispatchAmount: dispatchSum
// })
// getProductOrder(this.form.productOrderId).then(res => {
// this.form = res.data;
// });
// });
// const mesProductPlanDetailList = this.mesProductPlanList;
// this.mesProductPlanList = mesProductPlanDetailList.filter(function (item) {
// return productPlan.dispatchCode !== item.dispatchCode
// });
// this.$modal.msgSuccess("");
// } catch (e) {
// this.$modal.msgError(e);
// }
// }
// }).catch(() => {
// });
// },
/** 生产计划明细序号 */
rowMesProductPlanIndex({row, rowIndex}) {
row.index = rowIndex + 1;
},
/** 复选框选中数据 */
handleMesProductPlanSelectionChange(selection) {
this.checkedMesProductPlanList = selection
this.single = selection.length !== 1
},
/** 关闭按钮 */
close() {
const obj = {path: "/mes/plan/productOrder", query: {t: Date.now(), queryParams: this.$route.query.queryParams}};
this.$tab.closeOpenPage(obj);
},
/** 生产计划添加按钮操作 */
handleAddMesProductPlan() {
let dispatchCode = "";
getDispatchCode().then(res => {
dispatchCode = res.msg;
getStationByRouteId(this.form.dispatchId).then(res => {
if (res.data.length === 0) {
this.$modal.msgError("工艺路线未维护工位信息!");
}
let lastProcessId = null;
res.data.forEach((e, index) => {
let obj = {};
obj.dispatchCode = dispatchCode;
obj.processId = e.processId;
obj.processName = e.processName;
obj.processOrder = e.processOrder;
obj.stationId = e.stationId;
obj.stationName = e.stationName;
obj.productionTime = 0;
obj.planBeginTime = this.form.planBeginTime;
obj.planEndTime = this.form.planEndTime;
obj.planStatus = '1';
// multiStationFlag
if (e.multiStationFlag > 1) {
obj.planAmount = 0;
} else {
obj.planAmount = this.form.planAmount - this.form.dispatchAmount;
}
obj.materialId = this.form.materialId;
obj.materialBomId = this.form.materialBomId;
obj.productOrderId = this.form.productOrderId;
// ID
if (lastProcessId == null) {
obj.lastProcessId = 0;
} else if(lastProcessId === obj.processId){
obj.lastProcessId = this.mesProductPlanList[index - 1].lastProcessId;
} else {
obj.lastProcessId = lastProcessId;
}
lastProcessId = e.processId;
// false=true=
obj.oldRowFlag = false;
this.mesProductPlanList.push(obj);
})
})
})
},
},
mounted() {
}
}
;
</script>
Loading…
Cancel
Save