Browse Source

feat(i18n): 实现设备数据导入服务的国际化错误消息

- 添加 PmsI18nHelper 依赖注入以支持多语言错误消息
- 将硬编码的中文错误消息替换为国际化资源键
- 在 messages_en_US.properties 中添加英文错误消息定义
- 在 messages_zh_CN.properties 中添加中文错误消息定义
- 统一异常处理使用 RuntimeException 包装国际化消息
- 支持设备数据采集、物料编码、检验项目等多场景错误提示
master
qiankanghui 2 weeks ago
parent
commit
035340c3f5
  1. 20
      cclqms-java/src/main/java/com/gaotao/modules/pms/service/Impl/EquipmentDataImportServiceImpl.java
  2. 12
      cclqms-java/src/main/resources/i18n/messages_en_US.properties
  3. 12
      cclqms-java/src/main/resources/i18n/messages_zh_CN.properties
  4. 3480
      cclqms-vue/yarn.lock

20
cclqms-java/src/main/java/com/gaotao/modules/pms/service/Impl/EquipmentDataImportServiceImpl.java

@ -4,6 +4,7 @@ import com.gaotao.common.exception.XJException;
import com.gaotao.modules.pms.data.*; import com.gaotao.modules.pms.data.*;
import com.gaotao.modules.pms.mapper.QcMapper; import com.gaotao.modules.pms.mapper.QcMapper;
import com.gaotao.modules.pms.service.EquipmentDataImportService; import com.gaotao.modules.pms.service.EquipmentDataImportService;
import com.gaotao.modules.pms.util.PmsI18nHelper;
import com.gaotao.modules.reader.entity.EquipmentDataDetail; import com.gaotao.modules.reader.entity.EquipmentDataDetail;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -28,6 +29,9 @@ public class EquipmentDataImportServiceImpl implements EquipmentDataImportServic
@Autowired @Autowired
private QcMapper qcMapper; private QcMapper qcMapper;
@Autowired
private PmsI18nHelper pmsI18nHelper;
@Override @Override
public void importAll(QcFAIRecordData data) { public void importAll(QcFAIRecordData data) {
importInternal(data, null); importInternal(data, null);
@ -36,7 +40,7 @@ public class EquipmentDataImportServiceImpl implements EquipmentDataImportServic
@Override @Override
public void importByItem(QcFAIRecordData data) { public void importByItem(QcFAIRecordData data) {
if (StringUtils.isBlank(data.getItemNo())) { if (StringUtils.isBlank(data.getItemNo())) {
throw new XJException("数据采集失败(未指定检验项目)!", 400);
throw new RuntimeException(pmsI18nHelper.text("pms.error.collect.itemNo.empty", null, "数据采集失败(未指定检验项目)!"));
} }
importInternal(data, data.getItemNo()); importInternal(data, data.getItemNo());
} }
@ -44,18 +48,18 @@ public class EquipmentDataImportServiceImpl implements EquipmentDataImportServic
private void importInternal(QcFAIRecordData data, String itemNoFilter) { private void importInternal(QcFAIRecordData data, String itemNoFilter) {
String partNo = qcMapper.getInspectionPartNo(data); String partNo = qcMapper.getInspectionPartNo(data);
if (StringUtils.isBlank(partNo)) { if (StringUtils.isBlank(partNo)) {
throw new XJException("数据采集失败(未获取到检验单物料编码)!", 400);
throw new RuntimeException(pmsI18nHelper.text("pms.error.collect.partNo.empty", null, "数据采集失败(未获取到检验单物料编码)!"));
} }
Map<String, EquipmentDataAcquisitionData> acquisitionByItem = loadAcquisitionByItem(data, itemNoFilter); Map<String, EquipmentDataAcquisitionData> acquisitionByItem = loadAcquisitionByItem(data, itemNoFilter);
if (CollectionUtils.isEmpty(acquisitionByItem)) { if (CollectionUtils.isEmpty(acquisitionByItem)) {
throw new XJException("数据采集失败(未找到检验单所选设备,请先开始检验并选择设备)!", 400);
throw new RuntimeException(pmsI18nHelper.text("pms.error.equipment.notFound", null, "数据采集失败(未找到检验单所选设备,请先开始检验并选择设备)!"));
} }
List<String> inspectionItems; List<String> inspectionItems;
if (itemNoFilter != null) { if (itemNoFilter != null) {
if (!acquisitionByItem.containsKey(itemNoFilter)) { if (!acquisitionByItem.containsKey(itemNoFilter)) {
throw new XJException("数据采集失败(未找到该项目所选设备,请先开始检验并选择设备)!", 400);
throw new RuntimeException(pmsI18nHelper.text("pms.error.equipment.notFound", null, "数据采集失败(未找到该项目所选设备,请先开始检验并选择设备)!"));
} }
inspectionItems = Collections.singletonList(itemNoFilter); inspectionItems = Collections.singletonList(itemNoFilter);
} else { } else {
@ -64,7 +68,7 @@ public class EquipmentDataImportServiceImpl implements EquipmentDataImportServic
List<ItemImportTarget> targets = resolveImportTargets(data, inspectionItems, acquisitionByItem); List<ItemImportTarget> targets = resolveImportTargets(data, inspectionItems, acquisitionByItem);
if (targets.isEmpty()) { if (targets.isEmpty()) {
throw new XJException("当前项目未配置关联设备。", 400);
throw new RuntimeException(pmsI18nHelper.text("pms.error.item.noEquipment", null, "当前项目未配置关联设备。"));
} }
boolean imported = false; boolean imported = false;
@ -96,7 +100,7 @@ public class EquipmentDataImportServiceImpl implements EquipmentDataImportServic
List<EquipmentDataDetail> parsedRows = qcMapper.listLatestEquipmentDataDetail( List<EquipmentDataDetail> parsedRows = qcMapper.listLatestEquipmentDataDetail(
data.getSite(), data.getBuNo(), target.getEquipmentNo()); data.getSite(), data.getBuNo(), target.getEquipmentNo());
if (CollectionUtils.isEmpty(parsedRows)) { if (CollectionUtils.isEmpty(parsedRows)) {
throw new XJException("未获取到检测设备数据,请检查设备!", 400);
throw new RuntimeException(pmsI18nHelper.text("pms.error.equipment.dataNotFound", null, "未获取到检测设备数据,请检查设备!"));
} }
int fileMaxColumn = resolveFileMaxColumn(parsedRows); int fileMaxColumn = resolveFileMaxColumn(parsedRows);
@ -110,9 +114,9 @@ public class EquipmentDataImportServiceImpl implements EquipmentDataImportServic
if (!imported) { if (!imported) {
if (hasFileModeTarget && !hasMappingConfig) { if (hasFileModeTarget && !hasMappingConfig) {
throw new XJException("当前物料及设备未配置文件列映射关系。", 400);
throw new RuntimeException(pmsI18nHelper.text("pms.error.fileMapping.notConfigured", null, "当前物料及设备未配置文件列映射关系。"));
} }
throw new XJException("未获取到检测设备数据,请检查设备!", 400);
throw new RuntimeException(pmsI18nHelper.text("pms.error.equipment.dataNotFound", null, "未获取到检测设备数据,请检查设备!"));
} }
} }

12
cclqms-java/src/main/resources/i18n/messages_en_US.properties

@ -76,3 +76,15 @@ pms.error.customer.exists=The customer to be added already exists.
pms.error.supplier.notExists=Supplier does not exist. pms.error.supplier.notExists=Supplier does not exist.
pms.error.labelType.exists=The label code already exists. pms.error.labelType.exists=The label code already exists.
pms.error.equipment.notFound=Data collection failed (selected equipment for inspection order not found. Please start inspection and select equipment first).
pms.error.collect.partNo.empty=Data collection failed (inspection order material code not found)!
pms.error.collect.itemNo.empty=Data collection failed (inspection item not specified)!
pms.error.item.noEquipment=Current item is not configured with associated equipment.
pms.error.equipment.dataNotFound=No detection equipment data retrieved. Please check the equipment!
pms.error.fileMapping.notConfigured=File column mapping relationship is not configured for current material and equipment.

12
cclqms-java/src/main/resources/i18n/messages_zh_CN.properties

@ -76,3 +76,15 @@ pms.error.customer.exists=待新增的客户已存在!
pms.error.supplier.notExists=供应商不存在! pms.error.supplier.notExists=供应商不存在!
pms.error.labelType.exists=该标签编码已存在! pms.error.labelType.exists=该标签编码已存在!
pms.error.equipment.notFound=数据采集失败(未找到检验单所选设备,请先开始检验并选择设备)!
pms.error.collect.partNo.empty=数据采集失败(未获取到检验单物料编码)!
pms.error.collect.itemNo.empty=数据采集失败(未指定检验项目)!
pms.error.item.noEquipment=当前项目未配置关联设备。
pms.error.equipment.dataNotFound=未获取到检测设备数据,请检查设备!
pms.error.fileMapping.notConfigured=当前物料及设备未配置文件列映射关系。

3480
cclqms-vue/yarn.lock
File diff suppressed because it is too large
View File

Loading…
Cancel
Save