update mes载具工装关联载具类型

master
yinq 3 weeks ago
parent f9658eaea7
commit 1f9f07b26e

@ -132,6 +132,7 @@ export interface BaseToolingInfoForm extends BaseEntity {
*/
weight?: number;
/**
*
*/
@ -142,6 +143,7 @@ export interface BaseToolingInfoForm extends BaseEntity {
*/
activeFlag?: string;
toolingTypeId?: number;
}
export interface BaseToolingInfoQuery extends PageQuery {

@ -335,15 +335,6 @@ export interface PlanInfoForm extends BaseEntity {
materialBoMName?: string | number;
materialIdL?: string | number;
materialNameL?: string | number;
materialIdR?: string | number;
materialNameR?: string | number;
materialBoMIdL?: string | number;
materialBoMNameL?: string | number;
materialBoMIdR?: string | number;
materialBoMNameR?: string | number;
/**
* id
*/
@ -356,6 +347,24 @@ export interface PlanInfoForm extends BaseEntity {
materialName?: string;
// 业务临时字段补充,便于 index.vue 类型推断
planAmount1?: number;
planAmount2?: number;
planAmount3?: number;
planAmount4?: number;
planAmount5?: number;
planAmount6?: number;
materialIdL?: string | number;
materialNameL?: string;
materialIdR?: string | number;
materialNameR?: string;
materialBomVersion?: string;
materialBomVersionL?: string;
materialBomVersionR?: string;
materialBoMNameL?: string;
materialBoMNameR?: string;
materialBoMIdL?: string | number;
materialBoMIdR?: string | number;
}
export interface PlanInfoQuery extends PageQuery {
@ -520,6 +529,7 @@ export interface PlanInfoQuery extends PageQuery {
*/
params?: any;
planRangeTime?: [string, string];
/**
*

@ -13,11 +13,11 @@
<el-form-item label="工装名称" prop="toolingName">
<el-input v-model="queryParams.toolingName" placeholder="请输入工装名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="工装类型" prop="toolingTypeCode">
<el-select v-model="queryParams.toolingTypeCode" placeholder="请选择工装类型" clearable >
<el-option v-for="dict in tooling_type_code" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<!-- <el-form-item label="工装类型" prop="toolingTypeCode">-->
<!-- <el-select v-model="queryParams.toolingTypeCode" placeholder="请选择工装类型" clearable >-->
<!-- <el-option v-for="dict in tooling_type_code" :key="dict.value" :label="dict.label" :value="dict.value"/>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="工装规格" prop="toolingSpecCode">
<el-select v-model="queryParams.toolingSpecCode" placeholder="请选择工装规格" clearable >
<el-option v-for="dict in tooling_spec_code" :key="dict.value" :label="dict.label" :value="dict.value"/>
@ -74,11 +74,7 @@
<el-table-column label="租户编号" align="center" prop="tenantId" v-if="columns[1].visible"/>
<el-table-column label="工装编号" align="center" prop="toolingCode" v-if="columns[2].visible"/>
<el-table-column label="工装名称" align="center" prop="toolingName" v-if="columns[3].visible"/>
<el-table-column label="工装类型" align="center" prop="toolingTypeCode" v-if="columns[4].visible">
<template #default="scope">
<dict-tag :options="tooling_type_code" :value="scope.row.toolingTypeCode"/>
</template>
</el-table-column>
<el-table-column label="工装类型" align="center" prop="toolingTypeName" v-if="columns[4].visible"/>
<el-table-column label="工装规格" align="center" prop="toolingSpecCode" v-if="columns[5].visible">
<template #default="scope">
<dict-tag :options="tooling_spec_code" :value="scope.row.toolingSpecCode"/>
@ -134,13 +130,13 @@
<el-input v-model="form.toolingName" placeholder="请输入工装名称" />
</el-form-item>
<el-form-item label="工装类型" prop="toolingTypeCode">
<el-select v-model="form.toolingTypeCode" placeholder="请选择工装类型">
<el-select v-model="form.toolingTypeId" placeholder="请选择工装类型">
<el-option
v-for="dict in tooling_type_code"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
v-for="item in toolingTypeList"
:key="item.toolingTypeId"
:label="item.toolingTypeName"
:value="item.toolingTypeId"
/>
</el-select>
</el-form-item>
<el-form-item label="工装规格" prop="toolingSpecCode">
@ -189,8 +185,17 @@
</template>
<script setup name="BaseToolingInfo" lang="ts">
import { listBaseToolingInfo, getBaseToolingInfo, delBaseToolingInfo, addBaseToolingInfo, updateBaseToolingInfo } from '@/api/mes/baseToolingInfo';
import {
listBaseToolingInfo,
getBaseToolingInfo,
delBaseToolingInfo,
addBaseToolingInfo,
updateBaseToolingInfo,
getBaseToolingInfoList
} from '@/api/mes/baseToolingInfo';
import { BaseToolingInfoVO, BaseToolingInfoQuery, BaseToolingInfoForm } from '@/api/mes/baseToolingInfo/types';
import { getFactoryList } from '@/api/mes/baseFactoryInfo';
import { getBaseToolingTypeList } from '@/api/mes/toolingType';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { active_flag, tooling_spec_code, tooling_type_code } = toRefs<any>(proxy?.useDict('active_flag', 'tooling_spec_code', 'tooling_type_code'));
@ -212,6 +217,13 @@ const dialog = reactive<DialogOption>({
title: ''
});
/** 查询工装类型下拉树结构 */
const toolingTypeList = ref([]);
const getToolingTypeListSelect = async () => {
let res = await getBaseToolingTypeList(null);
toolingTypeList.value = res.data;
};
//
const columns = ref<FieldOption[]>([
{ key: 0, label: `主键标识`, visible: false },
@ -362,5 +374,6 @@ const handleExport = () => {
onMounted(() => {
getList();
getToolingTypeListSelect();
});
</script>

@ -238,17 +238,7 @@
</template>
</el-input>
</el-form-item>
<!-- <el-form-item label="归属部门" prop="deptId">-->
<!-- <el-tree-select-->
<!-- v-model="form.materialBomVersion"-->
<!-- :data="materialBomVersionOptions"-->
<!-- :props="{ value: 'id', label: 'label', children: 'children' }"-->
<!-- value-key="id"-->
<!-- placeholder="请选择归属部门"-->
<!-- check-strictly-->
<!-- @change="handleMaterialBomChange"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label='BOM版本' prop='materialBomVersion'>
<el-select v-model='form.materialBomVersion' placeholder='请选择BOM版本'>
<el-option
@ -378,14 +368,14 @@
</el-dialog>
<!-- 添加物料BOM信息对话框 -->
<el-dialog title='选择物料BOM信息' v-model='materialBomOpen' append-to-body>
<BomSelect @selection='handleSelection' ref='bomSelectRef' v-if='materialBomOpen'
:materialIdForm='materialIdForm'></BomSelect>
<div slot='footer' class='dialog-footer'>
<el-button type='primary' @click='submitMaterialBomForm'> </el-button>
<el-button @click='materialBomOpen = false'> </el-button>
</div>
</el-dialog>
<!-- <el-dialog title='选择物料BOM信息' v-model='materialBomOpen' append-to-body>-->
<!-- <BomSelect @selection='handleSelection' ref='bomSelectRef' v-if='materialBomOpen'-->
<!-- :materialIdForm='materialIdForm'></BomSelect>-->
<!-- <div slot='footer' class='dialog-footer'>-->
<!-- <el-button type='primary' @click='submitMaterialBomForm'> </el-button>-->
<!-- <el-button @click='materialBomOpen = false'> </el-button>-->
<!-- </div>-->
<!-- </el-dialog>-->
<!-- 添加物料信息对话框 -->
<el-dialog title='选择物料信息' v-model='materialOpen' width='1200px' append-to-body>
@ -956,7 +946,7 @@ const columns = ref<FieldOption[]>([
{ key: 24, label: `计划状态`, visible: true },
{ key: 25, label: `导入类型`, visible: false },
{ key: 26, label: `完成标识`, visible: true },
{ key: 27, label: `优先级`, visible: true },
{ key: 27, label: `优先级`, visible: false },
{ key: 28, label: `班次`, visible: true },
{ key: 29, label: `班组`, visible: true },
{ key: 30, label: `模号`, visible: true },
@ -1001,7 +991,26 @@ const initFormData: PlanInfoForm = {
modelCode: undefined,
remark: undefined,
materialBoMName: undefined,
workshopId: undefined
workshopId: undefined,
//
planAmount1: undefined,
planAmount2: undefined,
planAmount3: undefined,
planAmount4: undefined,
planAmount5: undefined,
planAmount6: undefined,
materialIdL: undefined,
materialNameL: undefined,
materialIdR: undefined,
materialNameR: undefined,
materialBomVersion: undefined,
materialBomVersionL: undefined,
materialBomVersionR: undefined,
materialBoMNameL: undefined,
materialBoMNameR: undefined,
materialBoMIdL: undefined,
materialBoMIdR: undefined,
shiftName: '',
};
const data = reactive<PageData<PlanInfoForm, PlanInfoQuery>>({
form: { ...initFormData },
@ -1039,7 +1048,11 @@ const data = reactive<PageData<PlanInfoForm, PlanInfoQuery>>({
classTeamId: undefined,
modelCode: undefined,
workshopId: undefined,
params: {}
params: {},
planRangeTime: undefined,
materialName: undefined,
shiftName: '',
shifitId: undefined,
},
rules: {
materialId: [
@ -1060,15 +1073,15 @@ const data = reactive<PageData<PlanInfoForm, PlanInfoQuery>>({
planBeginTime: [
{ required: true, message: '计划日期不能为空', trigger: 'blur' }
],
planAmount1: [
{ required: true, message: '早班数量不能为空', trigger: 'blur' }
],
planAmount2: [
{ required: true, message: '中班数量不能为空', trigger: 'blur' }
],
planAmount3: [
{ required: true, message: '晚班数量不能为空', trigger: 'blur' }
]
// planAmount1: [
// { required: true, message: '', trigger: 'blur' }
// ],
// planAmount2: [
// { required: true, message: '', trigger: 'blur' }
// ],
// planAmount3: [
// { required: true, message: '', trigger: 'blur' }
// ]
}
});
@ -1186,7 +1199,14 @@ const handleUpdate = async (row?: PlanInfoVO) => {
const _planId = row?.planId || ids.value[0];
const res = await getPlanInfo(_planId);
Object.assign(form.value, res.data);
form.value.finishFlag = form.value.finishFlag.split(',');
// finishFlag
if (Array.isArray(form.value.finishFlag)) {
// do nothing
} else if (typeof form.value.finishFlag === 'string') {
form.value.finishFlag = form.value.finishFlag.split(',').filter(Boolean).join(',');
} else {
form.value.finishFlag = [];
}
dialog.visible = true;
dialog.title = '修改生产计划信息';
};
@ -1209,12 +1229,14 @@ const submitForm = () => {
planInfoFormRef.value?.validate(async (valid: boolean) => {
if (valid) {
buttonLoading.value = true;
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);
// }
// finishFlag
if (Array.isArray(form.value.finishFlag)) {
form.value.finishFlag = form.value.finishFlag.join(',');
} else if (typeof form.value.finishFlag === 'string') {
// do nothing
} else {
form.value.finishFlag = '';
}
//
let assemblyData = batchesAddAssemblyData();
if (machineIds.value.length == 0) {
@ -1239,60 +1261,61 @@ const submitForm = () => {
/** 批量新增组装数据 */
const batchesAddAssemblyData = () => {
const formData = form.value;
formData.workshopId = workshopId.value;//
// workshopId
const workshopIdStr = formData.workshopId != null ? String(formData.workshopId) : '';
let list = [];
if (formData.planAmount1 > 0) {
if (typeof formData.planAmount1 === 'number' && formData.planAmount1 > 0) {
let data = { ...formData };
data.modelCode = formData.workshopId === '4' ? 'L' : null;
data.materialId = formData.workshopId === '4' ? formData.materialIdL : formData.materialId;
data.materialBomVersion = formData.workshopId === '4' ? formData.materialBomVersionL : formData.materialBomVersion;
data.modelCode = workshopIdStr === '4' ? 'L' : null;
data.materialId = workshopIdStr === '4' ? formData.materialIdL : formData.materialId;
data.materialBomVersion = workshopIdStr === '4' ? formData.materialBomVersionL : formData.materialBomVersion;
data.shiftId = '1';
data.planAmount = formData.planAmount1;
list.push(data);
}
if (formData.planAmount2 > 0) {
if (typeof formData.planAmount2 === 'number' && formData.planAmount2 > 0) {
let data = { ...formData };
data.modelCode = formData.workshopId === '4' ? 'L' : null;
data.modelCode = workshopIdStr === '4' ? 'L' : null;
data.shiftId = '2';
data.planAmount = formData.planAmount2;
data.materialId = formData.workshopId === '4' ? formData.materialIdL : formData.materialId;
data.materialBomVersion = formData.workshopId === '4' ? formData.materialBomVersionL : formData.materialBomVersion;
data.materialId = workshopIdStr === '4' ? formData.materialIdL : formData.materialId;
data.materialBomVersion = workshopIdStr === '4' ? formData.materialBomVersionL : formData.materialBomVersion;
list.push(data);
}
if (formData.planAmount3 > 0) {
if (typeof formData.planAmount3 === 'number' && formData.planAmount3 > 0) {
let data = { ...formData };
data.modelCode = formData.workshopId === '4' ? 'L' : null;
data.modelCode = workshopIdStr === '4' ? 'L' : null;
data.shiftId = '3';
data.planAmount = formData.planAmount3;
data.materialId = formData.workshopId === '4' ? formData.materialIdL : formData.materialId;
data.materialBomVersion = formData.workshopId === '4' ? formData.materialBomVersionL : formData.materialBomVersion;
data.materialId = workshopIdStr === '4' ? formData.materialIdL : formData.materialId;
data.materialBomVersion = workshopIdStr === '4' ? formData.materialBomVersionL : formData.materialBomVersion;
list.push(data);
}
if (formData.planAmount4 > 0) {
if (typeof formData.planAmount4 === 'number' && formData.planAmount4 > 0) {
let data = { ...formData };
data.modelCode = 'R';
data.shiftId = '1';
data.planAmount = formData.planAmount4;
data.materialId = formData.workshopId === '4' ? formData.materialIdR : formData.materialId;
data.materialBomVersion = formData.workshopId === '4' ? formData.materialBomVersionR : formData.materialBomVersion;
data.materialId = workshopIdStr === '4' ? formData.materialIdR : formData.materialId;
data.materialBomVersion = workshopIdStr === '4' ? formData.materialBomVersionR : formData.materialBomVersion;
list.push(data);
}
if (formData.planAmount5 > 0) {
if (typeof formData.planAmount5 === 'number' && formData.planAmount5 > 0) {
let data = { ...formData };
data.modelCode = 'R';
data.shiftId = '2';
data.planAmount = formData.planAmount5;
data.materialId = formData.workshopId === '4' ? formData.materialIdR : formData.materialId;
data.materialBomVersion = formData.workshopId === '4' ? formData.materialBomVersionR : formData.materialBomVersion;
data.materialId = workshopIdStr === '4' ? formData.materialIdR : formData.materialId;
data.materialBomVersion = workshopIdStr === '4' ? formData.materialBomVersionR : formData.materialBomVersion;
list.push(data);
}
if (formData.planAmount6 > 0) {
if (typeof formData.planAmount6 === 'number' && formData.planAmount6 > 0) {
let data = { ...formData };
data.modelCode = 'R';
data.shiftId = '3';
data.planAmount = formData.planAmount6;
data.materialId = formData.workshopId === '4' ? formData.materialIdR : formData.materialId;
data.materialBomVersion = formData.workshopId === '4' ? formData.materialBomVersionR : formData.materialBomVersion;
data.materialId = workshopIdStr === '4' ? formData.materialIdR : formData.materialId;
data.materialBomVersion = workshopIdStr === '4' ? formData.materialBomVersionR : formData.materialBomVersion;
list.push(data);
}
return list;
@ -1351,15 +1374,15 @@ const submitMaterialForm = () => {
};
/** 新增物料BOM按钮操作 */
const handleMaterialBomAdd = (modelCode) => {
if (form.value.materialId == null && form.value.materialIdL == null
&& form.value.materialIdR == null) {
proxy?.$modal.msgWarning('请先选择物料!');
return;
}
modelCodeRef.value = modelCode;
materialBomOpen.value = true;
};
// const handleMaterialBomAdd = (modelCode) => {
// if (form.value.materialId == null && form.value.materialIdL == null
// && form.value.materialIdR == null) {
// proxy?.$modal.msgWarning('');
// return;
// }
// modelCodeRef.value = modelCode;
// materialBomOpen.value = true;
// };
/** 提交物料BOM信息按钮 */
const submitMaterialBomForm = () => {
@ -1425,12 +1448,6 @@ const getTreeSelect = async () => {
materialBomVersionOptions.value = res.data;
};
async function handleMaterialBomChange(value: number | string) {
const response = await optionselect(value);
postOptions.value = response.data;
form.value.postIds = [];
}
onMounted(() => {
getWorkshopId();

Loading…
Cancel
Save