diff --git a/src/main/java/com/spring/modules/part/service/impl/PartInformationServiceImpl.java b/src/main/java/com/spring/modules/part/service/impl/PartInformationServiceImpl.java index d74d299c..869b0ae7 100644 --- a/src/main/java/com/spring/modules/part/service/impl/PartInformationServiceImpl.java +++ b/src/main/java/com/spring/modules/part/service/impl/PartInformationServiceImpl.java @@ -5486,9 +5486,14 @@ public class PartInformationServiceImpl extends ServiceImpl list1 = new ArrayList<>(); + if (partList.isEmpty()) { + flag = false; + exceptionList.add("未读取到有效数据: 请确认模板第一张sheet从第2行开始填写IFS物料编码"); + } for (PlmProjectPartData part : partList) { List list2 = getProjectPartList1(part).getList(); if (list2.isEmpty()) { + flag = false; wrongIfsPartNoRows.add(ifsPartNoMap.get(part.getFinalPartNo())); continue; } @@ -5526,7 +5531,7 @@ public class PartInformationServiceImpl extends ServiceImpl queryUserSettingList = queryUserSettingService.searchQueryUserSetting(menuId, userId); if (!queryUserSettingList.isEmpty()){ appendRohsStatusFieldForUserSetting(menuId, userId, queryUserSettingList); + appendToolApplyFieldsForUserSetting(menuId, userId, queryUserSettingList); return R.ok().put("rows",queryUserSettingList); } List defaultList = defaultService.searchQueryUserSettingDefault(menuId); appendRohsStatusFieldForDefaultSetting(menuId, defaultList); + appendToolApplyFieldsForDefaultSetting(menuId, defaultList); return R.ok().put("rows",defaultList); } @@ -139,6 +155,113 @@ public class QueryUserSettingController { settingList.add(row); } + private void appendToolApplyFieldsForUserSetting(String menuId, String userId, List settingList) { + if (!TOOL_APPLY_MENU_ID.equals(menuId) || settingList == null) { + return; + } + appendToolApplyFieldForUserSetting(menuId, userId, settingList, + TOOL_APPLY_PR_NO_FIELD_NAME, TOOL_APPLY_PR_NO_FIELD_CAPTION, TOOL_APPLY_PR_NO_ORIGINAL_FIELD, STRING_DATA_TYPE); + appendToolApplyFieldForUserSetting(menuId, userId, settingList, + TOOL_APPLY_PO_NO_FIELD_NAME, TOOL_APPLY_PO_NO_FIELD_CAPTION, TOOL_APPLY_PO_NO_ORIGINAL_FIELD, STRING_DATA_TYPE); + appendToolApplyFieldForUserSetting(menuId, userId, settingList, + TOOL_APPLY_SUPPLIER_NAME_FIELD_NAME, TOOL_APPLY_SUPPLIER_NAME_FIELD_CAPTION, TOOL_APPLY_SUPPLIER_NAME_ORIGINAL_FIELD, STRING_DATA_TYPE); + appendToolApplyFieldForUserSetting(menuId, userId, settingList, + TOOL_APPLY_ALL_COST_FIELD_NAME, TOOL_APPLY_ALL_COST_FIELD_CAPTION, TOOL_APPLY_ALL_COST_ORIGINAL_FIELD, NUMBER_DATA_TYPE); + } + + private void appendToolApplyFieldsForDefaultSetting(String menuId, List settingList) { + if (!TOOL_APPLY_MENU_ID.equals(menuId) || settingList == null) { + return; + } + appendToolApplyFieldForDefaultSetting(menuId, settingList, + TOOL_APPLY_PR_NO_FIELD_NAME, TOOL_APPLY_PR_NO_FIELD_CAPTION, TOOL_APPLY_PR_NO_ORIGINAL_FIELD, STRING_DATA_TYPE); + appendToolApplyFieldForDefaultSetting(menuId, settingList, + TOOL_APPLY_PO_NO_FIELD_NAME, TOOL_APPLY_PO_NO_FIELD_CAPTION, TOOL_APPLY_PO_NO_ORIGINAL_FIELD, STRING_DATA_TYPE); + appendToolApplyFieldForDefaultSetting(menuId, settingList, + TOOL_APPLY_SUPPLIER_NAME_FIELD_NAME, TOOL_APPLY_SUPPLIER_NAME_FIELD_CAPTION, TOOL_APPLY_SUPPLIER_NAME_ORIGINAL_FIELD, STRING_DATA_TYPE); + appendToolApplyFieldForDefaultSetting(menuId, settingList, + TOOL_APPLY_ALL_COST_FIELD_NAME, TOOL_APPLY_ALL_COST_FIELD_CAPTION, TOOL_APPLY_ALL_COST_ORIGINAL_FIELD, NUMBER_DATA_TYPE); + } + + private void appendToolApplyFieldForUserSetting(String menuId, String userId, List settingList, + String fieldName, String fieldCaption, String originalField, String dataType) { + if (containsUserSettingField(settingList, fieldName, originalField)) { + return; + } + QueryUserSetting row = new QueryUserSetting(); + row.setMenuId(menuId); + row.setUserId(userId); + row.setDtsName(getDtsNameFromUserSetting(settingList)); + row.setDtsCaption(getDtsCaptionFromUserSetting(settingList)); + row.setFieldName(fieldName); + row.setFieldCaption(fieldCaption); + row.setOriginalField(originalField); + row.setDataType(dataType); + row.setVisible("Y"); + row.setShowSeqNo(getNextSeqFromUserSetting(settingList)); + row.setSymbol(""); + row.setFormula(""); + row.setSortBy(""); + row.setOrderSeq(""); + settingList.add(row); + } + + private void appendToolApplyFieldForDefaultSetting(String menuId, List settingList, + String fieldName, String fieldCaption, String originalField, String dataType) { + if (containsDefaultSettingField(settingList, fieldName, originalField)) { + return; + } + QueryUserSettingDefault row = new QueryUserSettingDefault(); + row.setMenuId(menuId); + row.setDtsName(getDtsNameFromDefaultSetting(settingList)); + row.setDtsCaption(getDtsCaptionFromDefaultSetting(settingList)); + row.setFieldName(fieldName); + row.setFieldCaption(fieldCaption); + row.setOriginalField(originalField); + row.setDataType(dataType); + row.setVisible("Y"); + row.setShowSeqNo(getNextSeqFromDefaultSetting(settingList)); + row.setSymbol(""); + row.setFormula(""); + row.setSortBy(""); + row.setOrderSeq(""); + settingList.add(row); + } + + private boolean containsUserSettingField(List settingList, String fieldName, String originalField) { + String normalizedFieldName = normalizeSettingField(fieldName); + String normalizedOriginalField = normalizeSettingField(originalField); + for (QueryUserSetting item : settingList) { + if (item == null) { + continue; + } + if (normalizedFieldName.equals(normalizeSettingField(item.getFieldName())) + || normalizedOriginalField.equals(normalizeSettingField(item.getOriginalField()))) { + return true; + } + } + return false; + } + + private boolean containsDefaultSettingField(List settingList, String fieldName, String originalField) { + String normalizedFieldName = normalizeSettingField(fieldName); + String normalizedOriginalField = normalizeSettingField(originalField); + for (QueryUserSettingDefault item : settingList) { + if (item == null) { + continue; + } + if (normalizedFieldName.equals(normalizeSettingField(item.getFieldName())) + || normalizedOriginalField.equals(normalizeSettingField(item.getOriginalField()))) { + return true; + } + } + return false; + } + + private String normalizeSettingField(String value) { + return value == null ? "" : value.trim().toLowerCase(); + } + private Integer getNextSeqFromUserSetting(List settingList) { int max = 0; for (QueryUserSetting item : settingList) { diff --git a/src/main/resources/mapper/part/PartInformationMapper.xml b/src/main/resources/mapper/part/PartInformationMapper.xml index 8f75ecd4..dcf6e947 100644 --- a/src/main/resources/mapper/part/PartInformationMapper.xml +++ b/src/main/resources/mapper/part/PartInformationMapper.xml @@ -1472,8 +1472,8 @@ a.plm_part_no, d.customer_part_no FROM part as a - left join plm_project_part as b on a.site = b.site and a.plm_part_no = b.test_part_no - left join plm_project_part as c on a.site = c.site and a.ifs_part_no = c.test_part_no + left join plm_project_part as b on a.site = b.site and a.plm_part_no = b.test_part_no and b.project_id = #{query.projectId} + left join plm_project_part as c on a.site = c.site and a.ifs_part_no = c.test_part_no and b.project_id = #{query.projectId} left join plm_customer_part_info as d on a.site = d.site and d.customer_no = #{query.customerId} and (d.part_no = a.ifs_part_no or d.part_no = a.plm_part_no) where a.site = #{query.site}