优化种类生成逻辑

This commit is contained in:
geht
2026-05-25 20:42:13 +08:00
parent 441c19e87a
commit 72aeee0f10
8 changed files with 59 additions and 21 deletions

View File

@@ -70,6 +70,9 @@
import MesXslMixerMaterialKindCfgEditModal from './components/MesXslMixerMaterialKindCfgEditModal.vue';
import { columns, searchFormSchema, superQuerySchema } from './MesXslMixerMaterialKindCfg.data';
import { batchDelete, deleteOne, getExportUrl, getImportUrl, list } from './MesXslMixerMaterialKindCfg.api';
//update-begin---author:cursor ---date:20260525 for【XSLMES-20260525-A53】种类配置变更后清除前端 lookup 缓存-----------
import { clearMixingMaterialKindLookupCache } from '../mesXslMixingSpec/MesXslMixingSpec.data';
//update-end---author:cursor ---date:20260525 for【XSLMES-20260525-A53】种类配置变更后清除前端 lookup 缓存-----------
const queryParam = reactive<any>({});
const [registerBatchModal, { openModal: openBatchModal }] = useModal();
@@ -138,6 +141,9 @@
}
function handleSuccess() {
//update-begin---author:cursor ---date:20260525 for【XSLMES-20260525-A53】种类配置变更后清除前端 lookup 缓存-----------
clearMixingMaterialKindLookupCache();
//update-end---author:cursor ---date:20260525 for【XSLMES-20260525-A53】种类配置变更后清除前端 lookup 缓存-----------
selectedRowKeys.value = [];
reload();
}

View File

@@ -1040,12 +1040,12 @@ function matchKindFromLookup(lookup: MixerMaterialKindLookup | null | undefined,
return '';
}
/** 解析混炼示方明细种类:称量方式优先,其次物料小类 ID,最后小类名称兜底 */
/** 解析混炼示方明细种类:称量方式优先,其次物料小类 ID(未命中返回空,由配置表维护) */
export function resolveMixingMaterialKindFromLookup(
lookup: MixerMaterialKindLookup | null | undefined,
weighMode?: string,
minorCategoryId?: string,
minorCategoryName?: string,
_minorCategoryName?: string,
) {
const fromWeighMode = matchKindFromLookup(lookup, weighMode);
if (fromWeighMode) {
@@ -1055,9 +1055,6 @@ export function resolveMixingMaterialKindFromLookup(
if (fromMinorId) {
return fromMinorId;
}
if (minorCategoryName != null && String(minorCategoryName).trim() !== '') {
return String(minorCategoryName).trim();
}
return '';
}
@@ -1107,6 +1104,8 @@ export function applyMixingMaterialFromSelection(row: Recordable, material: Reco
row.mixerMaterialDesc = material.materialDesc || material.materialName || material.materialCode || '';
row.materialMajor = material.majorCategoryId_dictText || '';
row.materialMinor = material.minorCategoryId_dictText || '';
row.materialKind = materialKind || row.materialMinor || '';
//update-begin---author:cursor ---date:20260525 for【XSLMES-20260525-A53】种类仅读配置表移除小类名兜底-----------
row.materialKind = materialKind != null && String(materialKind).trim() !== '' ? String(materialKind).trim() : '';
//update-end---author:cursor ---date:20260525 for【XSLMES-20260525-A53】种类仅读配置表移除小类名兜底-----------
}
//update-end---author:cursor ---date:20260525 for【XSLMES-20260525-A50】混炼示方密炼物料选料弹窗与种类解析-----------

View File

@@ -393,6 +393,12 @@
const weighMode = getPickerWeighMode(row.id);
const payload: Recordable = { ...row, pickerWeighMode: weighMode };
const materialKind = resolveKindForMaterial(row, weighMode);
//update-begin---author:cursor ---date:20260525 for【XSLMES-20260525-A53】选料未匹配种类时提示检查配置-----------
if (!materialKind) {
createMessage.warning('未匹配到种类,请检查密炼物料种类配置');
return;
}
//update-end---author:cursor ---date:20260525 for【XSLMES-20260525-A53】选料未匹配种类时提示检查配置-----------
applyMixingMaterialFromSelection(payload, row, materialKind);
emit('select', payload);
closeModal();

View File

@@ -944,11 +944,9 @@ function onMixingMaterialSelect(payload: Recordable | null) {
if (!payload || !materialPickerRow.value) {
return;
}
applyMixingMaterialFromSelection(
materialPickerRow.value,
payload,
payload.materialKind || payload.materialMinor || '',
);
//update-begin---author:cursor ---date:20260525 for【XSLMES-20260525-A53】选料回填种类仅使用配置解析结果-----------
applyMixingMaterialFromSelection(materialPickerRow.value, payload, payload.materialKind || '');
//update-end---author:cursor ---date:20260525 for【XSLMES-20260525-A53】选料回填种类仅使用配置解析结果-----------
recalcMaterialAccumWeight();
materialPickerRow.value = null;
}