update 半制品、成型新增计划、下发选中计划

master
yinq 3 days ago
parent 3e0a8f695a
commit a176bad142

@ -109,3 +109,14 @@ export function orderAddProductPlanList(data) {
data: data
})
}
/**
*
* @param planId
*/
export const issuePlanInfo = (workshopId: string | number, planId: string | number | Array<string | number>) => {
return request({
url: '/mes/planInfo/issuePlanInfo/' + workshopId + "/" + planId,
method: 'get'
});
};

@ -11,18 +11,25 @@
<el-form-item label='计划编号' prop='planCode'>
<el-input v-model='queryParams.planCode' placeholder='请输入计划编号' clearable @keyup.enter='handleQuery' />
</el-form-item>
<!-- <el-form-item label="物料ID" prop="materialId">-->
<!-- <el-input v-model="queryParams.materialId" placeholder="请输入物料ID" clearable @keyup.enter="handleQuery" />-->
<!-- </el-form-item>-->
<el-form-item label='物料名称' prop='materialName'>
<el-input v-model='queryParams.materialName' placeholder='请输入物料名称' clearable @keyup.enter='handleQuery' />
</el-form-item>
<!-- <el-form-item label="物料BOM" prop="materialBomId">-->
<!-- <el-input v-model="queryParams.materialBomId" placeholder="请输入物料BOM" clearable @keyup.enter="handleQuery" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="工序ID" prop="processId">-->
<!-- <el-input v-model="queryParams.processId" placeholder="请输入工序ID" clearable @keyup.enter="handleQuery" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="下达ID" prop="releaseId">-->
<!-- <el-input v-model="queryParams.releaseId" placeholder="请输入下达ID" clearable @keyup.enter="handleQuery" />-->
<!-- </el-form-item>-->
<el-form-item label='机台名称' prop='releaseId'>
<el-select v-model='queryParams.releaseId' placeholder='请选择机台名称'>
<el-option
v-for='item in releaseList'
:key='item.machineId'
:label='item.machineName'
:value='item.machineId'
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="计划开始时间" prop="planBeginTime">-->
<!-- <el-date-picker clearable-->
<!-- v-model="queryParams.planBeginTime"-->
@ -59,30 +66,45 @@
<el-card shadow='never'>
<template #header>
<el-row :gutter='10' class='mb8'>
<!-- <el-col :span='1.5'>-->
<!-- <el-button type='primary' plain icon='Plus' @click='handleAdd' v-hasPermi="['mes:planInfo:add']">-->
<!-- </el-button>-->
<!-- </el-col>-->
<el-col :span='1.5'>
<el-button type='primary' plain icon='Plus' @click='handleAdd' v-hasPermi="['mes:planInfo:add']">
</el-button>
</el-col>
<el-col :span='1.5'>
<el-button type='primary' plain icon='Plus' @click='handleBatchAdd' v-hasPermi="['mes:planInfo:add']"
v-if="workshopId == '4'">硫化新增
<el-button type='primary' plain icon='Plus' @click='handleSfpBatchAdd' v-hasPermi="['mes:planInfo:add']"
v-if="workshopId === '2'">半制品新增
</el-button>
</el-col>
<el-col :span='1.5'>
<el-button type='success' plain icon='Edit' :disabled='single' @click='handleUpdate()'
v-hasPermi="['mes:planInfo:edit']">修改
<el-button type='primary' plain icon='Plus' @click='handleFormingBatchAdd' v-hasPermi="['mes:planInfo:add']"
v-if="workshopId === '3'">成型新增
</el-button>
</el-col>
<el-col :span='1.5'>
<el-button type='danger' plain icon='Delete' :disabled='multiple' @click='handleDelete()'
v-hasPermi="['mes:planInfo:remove']">删除
<el-button type='primary' plain icon='Plus' @click='handleVulBatchAdd' v-hasPermi="['mes:planInfo:add']"
v-if="workshopId === '4'">硫化新增
</el-button>
</el-col>
<el-col :span='1.5'>
<el-button type='warning' plain icon='Download' @click='handleExport' v-hasPermi="['mes:planInfo:export']">
导出
<el-button type='danger' plain icon='Bottom' :disabled='multiple' @click='handleIssuePlanInfo()'
v-hasPermi="['mes:planInfo:add']">下发选中计划
</el-button>
</el-col>
<!-- <el-col :span='1.5'>-->
<!-- <el-button type='success' plain icon='Edit' :disabled='single' @click='handleUpdate()'-->
<!-- v-hasPermi="['mes:planInfo:edit']">修改-->
<!-- </el-button>-->
<!-- </el-col>-->
<!-- <el-col :span='1.5'>-->
<!-- <el-button type='danger' plain icon='Delete' :disabled='multiple' @click='handleDelete()'-->
<!-- v-hasPermi="['mes:planInfo:remove']">删除-->
<!-- </el-button>-->
<!-- </el-col>-->
<!-- <el-col :span='1.5'>-->
<!-- <el-button type='warning' plain icon='Download' @click='handleExport' v-hasPermi="['mes:planInfo:export']">-->
<!-- 导出-->
<!-- </el-button>-->
<!-- </el-col>-->
<right-toolbar v-model:showSearch='showSearch' :columns='columns' :search='true'
@queryTable='getList'></right-toolbar>
</el-row>
@ -348,7 +370,183 @@
</div>
</el-dialog>
<!-- 批量添加生产工单信息对话框 -->
<!-- 批量添加半制品计划信息对话框 -->
<el-dialog :title='sfpBatchDialog.title' v-model='sfpBatchDialog.visible' width='800px' append-to-body>
<el-container style='height: 500px; border: 1px solid #eee'>
<div style='width: 400px; height: 100%; overflow: auto'>
<el-table v-loading='loading' :data='prodBaseMachineInfoList'
@selection-change='handleSelectionMachineChange'>
<el-table-column type='selection' width='55' align='center' />
<el-table-column label='主键标识' align='center' prop='machineId' v-if='false' />
<el-table-column label='机台编号' align='center' prop='machineCode' />
<el-table-column label='机台名称' align='center' prop='machineName' />
</el-table>
</div>
<el-container>
<el-header style='text-align: right; font-size: 12px'>
<el-form ref='planInfoFormRef' :model='form' :rules='rules' label-width='100px'>
<el-form-item label='物料名称' prop='materialId'>
<el-input v-model='form.materialName' placeholder='请点击检索物料' @click='handleMaterialAdd' readonly>
<template #append>
<el-icon class='el-input__icon'>
<search />
</el-icon>
</template>
</el-input>
</el-form-item>
<el-form-item label='物料BOM' prop='materialBoMName'>
<el-input v-model='form.materialBoMName' placeholder='请点击检索物料BOM' @click='handleMaterialBomAdd'
readonly>
<template #append>
<el-icon class='el-input__icon'>
<search />
</el-icon>
</template>
</el-input>
</el-form-item>
<el-form-item label='工序名称' prop='processId'>
<el-select v-model='form.processId' placeholder='请选择工序'>
<el-option
v-for='item in processList'
:key='item.processId'
:label='item.processName'
:value='item.processId'
/>
</el-select>
</el-form-item>
<el-form-item label='计划开始时间' prop='planBeginTime'>
<el-date-picker clearable
v-model='form.planBeginTime'
type='date'
value-format='YYYY-MM-DD HH:mm:ss'
placeholder='请选择计划开始时间'>
</el-date-picker>
</el-form-item>
<el-form-item label='计划结束时间' prop='planEndTime'>
<el-date-picker clearable
v-model='form.planEndTime'
type='date'
value-format='YYYY-MM-DD HH:mm:ss'
placeholder='请选择计划结束时间'>
</el-date-picker>
</el-form-item>
<el-form-item label='班组' prop='classTeamId'>
<el-select v-model='form.classTeamId' placeholder='请选择班组'>
<el-option
v-for='item in classTeamList'
:key='item.classTeamId'
:label='item.teamName'
:value='item.classTeamId'
/>
</el-select>
</el-form-item>
<el-form-item label='早班数量' prop='planAmount1'>
<el-input-number v-model='form.planAmount1' placeholder='请输入计划数量' style='width: 200px;' />
</el-form-item>
<el-form-item label='中班数量' prop='planAmount2'>
<el-input-number v-model='form.planAmount2' placeholder='请输入计划数量' style='width: 200px;' />
</el-form-item>
<el-form-item label='晚班数量' prop='planAmount3'>
<el-input-number v-model='form.planAmount3' placeholder='请输入计划数量' style='width: 200px;' />
</el-form-item>
</el-form>
</el-header>
</el-container>
</el-container>
<template #footer>
<div class='dialog-footer'>
<el-button :loading='buttonLoading' type='primary' @click='submitForm'> </el-button>
<el-button @click='cancel'> </el-button>
</div>
</template>
</el-dialog>
<!-- 批量添加成型计划信息对话框 -->
<el-dialog :title='formingBatchDialog.title' v-model='formingBatchDialog.visible' width='800px' append-to-body>
<el-container style='height: 500px; border: 1px solid #eee'>
<div style='width: 400px; height: 100%; overflow: auto'>
<el-table v-loading='loading' :data='prodBaseMachineInfoList'
@selection-change='handleSelectionMachineChange'>
<el-table-column type='selection' width='55' align='center' />
<el-table-column label='主键标识' align='center' prop='machineId' v-if='false' />
<el-table-column label='机台编号' align='center' prop='machineCode' />
<el-table-column label='机台名称' align='center' prop='machineName' />
</el-table>
</div>
<el-container>
<el-header style='text-align: right; font-size: 12px'>
<el-form ref='planInfoFormRef' :model='form' :rules='rules' label-width='100px'>
<el-form-item label='物料名称' prop='materialId'>
<el-input v-model='form.materialName' placeholder='请点击检索物料' @click='handleMaterialAdd' readonly>
<template #append>
<el-icon class='el-input__icon'>
<search />
</el-icon>
</template>
</el-input>
</el-form-item>
<el-form-item label='物料BOM' prop='materialBoMName'>
<el-input v-model='form.materialBoMName' placeholder='请点击检索物料BOM' @click='handleMaterialBomAdd'
readonly>
<template #append>
<el-icon class='el-input__icon'>
<search />
</el-icon>
</template>
</el-input>
</el-form-item>
<el-form-item label='计划开始时间' prop='planBeginTime'>
<el-date-picker clearable
v-model='form.planBeginTime'
type='date'
value-format='YYYY-MM-DD HH:mm:ss'
placeholder='请选择计划开始时间'>
</el-date-picker>
</el-form-item>
<el-form-item label='计划结束时间' prop='planEndTime'>
<el-date-picker clearable
v-model='form.planEndTime'
type='date'
value-format='YYYY-MM-DD HH:mm:ss'
placeholder='请选择计划结束时间'>
</el-date-picker>
</el-form-item>
<el-form-item label='班组' prop='classTeamId'>
<el-select v-model='form.classTeamId' placeholder='请选择班组'>
<el-option
v-for='item in classTeamList'
:key='item.classTeamId'
:label='item.teamName'
:value='item.classTeamId'
/>
</el-select>
</el-form-item>
<el-form-item label='早班数量' prop='planAmount1'>
<el-input-number v-model='form.planAmount1' placeholder='请输入计划数量' style='width: 200px;' />
</el-form-item>
<el-form-item label='中班数量' prop='planAmount2'>
<el-input-number v-model='form.planAmount2' placeholder='请输入计划数量' style='width: 200px;' />
</el-form-item>
<el-form-item label='晚班数量' prop='planAmount3'>
<el-input-number v-model='form.planAmount3' placeholder='请输入计划数量' style='width: 200px;' />
</el-form-item>
</el-form>
</el-header>
</el-container>
</el-container>
<template #footer>
<div class='dialog-footer'>
<el-button :loading='buttonLoading' type='primary' @click='submitForm'> </el-button>
<el-button @click='cancel'> </el-button>
</div>
</template>
</el-dialog>
<!-- 批量添加硫化计划信息对话框 -->
<el-dialog :title='vulBatchDialog.title' v-model='vulBatchDialog.visible' width='1200px' append-to-body>
<el-container style='height: 500px; border: 1px solid #eee'>
<div style='width: 400px; height: 100%; overflow: auto'>
@ -532,7 +730,7 @@ import {
delPlanInfo,
addPlanInfo,
updatePlanInfo,
orderAddProductPlanList
orderAddProductPlanList, issuePlanInfo
} from '@/api/mes/planInfo';
import { PlanInfoVO, PlanInfoQuery, PlanInfoForm } from '@/api/mes/planInfo/types';
import { getBaseShiftInfoList } from '@/api/mes/baseShiftInfo';
@ -543,7 +741,6 @@ import { getProcessInfoList } from '@/api/mes/baseProcessInfo';
import { getStationInfoList } from '@/api/mes/baseStationInfo';
import { getProdBaseMachineInfoList } from '@/api/mes/prodBaseMachineInfo';
import { ProdBaseMachineInfoVO } from '@/api/mes/prodBaseMachineInfo/types';
import { OssVO } from '@/api/system/oss/types';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const {
@ -572,6 +769,16 @@ const dialog = reactive<DialogOption>({
title: ''
});
const sfpBatchDialog = reactive<DialogOption>({
visible: false,
title: ''
});
const formingBatchDialog = reactive<DialogOption>({
visible: false,
title: ''
});
const vulBatchDialog = reactive<DialogOption>({
visible: false,
title: ''
@ -604,10 +811,10 @@ const getClassTeamSelect = async () => {
classTeamList.value = res.data;
};
/*获取工序下拉框*/
/*获取半制品工序下拉框*/
const getProcessSelect = async () => {
let res = await getProcessInfoList(null);
processList.value = res.data;
let res = await getProcessInfoList({ processType: 1 });
processList.value = res.data.filter(item => item.processId !== 17 && item.processId !== 18);
};
/*获取工位下拉框*/
@ -756,9 +963,6 @@ const getWorkshopId = async () => {
const router = useRouter();
workshopId.value = router.currentRoute._rawValue.query && router.currentRoute._rawValue.query.workshopId;
queryParams.value.workshopId = workshopId.value;
console.log('----');
console.log(queryParams);
console.log(workshopId.value);
};
/** 查询生产计划信息列表 */
@ -774,6 +978,8 @@ const getList = async () => {
const cancel = () => {
reset();
dialog.visible = false;
sfpBatchDialog.visible = false;
formingBatchDialog.visible = false;
vulBatchDialog.visible = false;
};
@ -815,11 +1021,30 @@ const handleAdd = () => {
dialog.title = '添加生产计划信息';
};
/** 新增按钮操作 */
const handleBatchAdd = () => {
/** 新增半制品按钮操作 */
const handleSfpBatchAdd = () => {
reset();
machineIds.value = [];
sfpBatchDialog.visible = true;
sfpBatchDialog.title = '添加半制品生产计划信息';
};
/** 新增成型按钮操作 */
const handleFormingBatchAdd = () => {
reset();
machineIds.value = [];
formingBatchDialog.visible = true;
formingBatchDialog.title = '添加成型生产计划信息';
form.value.processId = 17;
};
/** 新增硫化按钮操作 */
const handleVulBatchAdd = () => {
reset();
machineIds.value = [];
vulBatchDialog.visible = true;
vulBatchDialog.title = '批量添加生产计划信息';
vulBatchDialog.title = '添加硫化生产计划信息';
form.value.processId = 18;
};
/** 修改按钮操作 */
@ -838,27 +1063,27 @@ const submitForm = () => {
planInfoFormRef.value?.validate(async (valid: boolean) => {
if (valid) {
buttonLoading.value = true;
form.value.finishFlag = form.value.finishFlag.join(',');
if (form.value.planId) {
await updatePlanInfo(form.value).finally(() => buttonLoading.value = false);
} else if (vulBatchDialog.visible) {
//
let assemblyData = batchesAddAssemblyData();
if (machineIds.value.length == 0) {
proxy?.$modal.msgWarning('请选择机台!');
return;
}
await orderAddProductPlanList({
mesProductPlanList: assemblyData,
productOrderId: 0,
machineIds: machineIds.value
}).finally(() => buttonLoading.value = false);
machineIds.value = [];
} else {
await addPlanInfo(form.value).finally(() => buttonLoading.value = false);
form.value.finishFlag = form.value.finishFlag !== null ? form.value.finishFlag.join(',') : null;
// if (form.value.planId) {
// await updatePlanInfo(form.value).finally(() => buttonLoading.value = false);
// } else {
// await addPlanInfo(form.value).finally(() => buttonLoading.value = false);
// }
//
let assemblyData = batchesAddAssemblyData();
if (machineIds.value.length == 0) {
proxy?.$modal.msgWarning('请选择机台!');
return;
}
await orderAddProductPlanList({
mesProductPlanList: assemblyData,
productOrderId: 0,
machineIds: machineIds.value
}).finally(() => buttonLoading.value = false);
proxy?.$modal.msgSuccess('操作成功');
dialog.visible = false;
sfpBatchDialog.visible = false;
formingBatchDialog.visible = false;
vulBatchDialog.visible = false;
await getList();
}
@ -869,25 +1094,24 @@ const submitForm = () => {
const batchesAddAssemblyData = () => {
const formData = form.value;
formData.workshopId = workshopId.value;//
formData.processId = 18;//
let list = [];
if (formData.planAmount1 > 0) {
let data = { ...formData };
data.modelCode = 'L';
data.modelCode = formData.workshopId === '4' ? 'L' : null;
data.shiftId = '1';
data.planAmount = formData.planAmount1;
list.push(data);
}
if (formData.planAmount2 > 0) {
let data = { ...formData };
data.modelCode = 'L';
data.modelCode = formData.workshopId === '4' ? 'L' : null;
data.shiftId = '2';
data.planAmount = formData.planAmount2;
list.push(data);
}
if (formData.planAmount3 > 0) {
let data = { ...formData };
data.modelCode = 'L';
data.modelCode = formData.workshopId === '4' ? 'L' : null;
data.shiftId = '3';
data.planAmount = formData.planAmount3;
list.push(data);
@ -925,6 +1149,16 @@ const handleDelete = async (row?: PlanInfoVO) => {
await getList();
};
/** 下发选中计划 */
const handleIssuePlanInfo = async (row?: PlanInfoVO) => {
const _planIds = row?.planId || ids.value;
await proxy?.$modal.confirm('是否下发已选中的生产计划?').finally(() => loading.value = false);
await issuePlanInfo(workshopId.value, _planIds);
proxy?.$modal.msgSuccess('下发选中计划成功');
await getList();
};
/** 导出按钮操作 */
const handleExport = () => {
proxy?.download('mes/planInfo/export', {
@ -968,10 +1202,10 @@ onMounted(() => {
});
// processId
watch(
() => form.value.processId, (newValue, oldValue) => {
//
getReleaseSelect();
}
);
// watch(
// () => form.value.processId, (newValue, oldValue) => {
// //
// getReleaseSelect();
// }
// );
</script>

Loading…
Cancel
Save