From 8eea3cbb749ce697c040d72f2a118e856c433883 Mon Sep 17 00:00:00 2001 From: tangwei Date: Sat, 25 Apr 2026 18:22:35 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E8=BF=87=E9=B1=BC?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=AF=BC=E5=85=A5=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/FishImportServiceImpl.java | 80 ++++++++----------- 1 file changed, 35 insertions(+), 45 deletions(-) diff --git a/backend/src/main/java/com/yfd/platform/data/service/impl/FishImportServiceImpl.java b/backend/src/main/java/com/yfd/platform/data/service/impl/FishImportServiceImpl.java index 338d3ce..388eb15 100644 --- a/backend/src/main/java/com/yfd/platform/data/service/impl/FishImportServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/data/service/impl/FishImportServiceImpl.java @@ -59,7 +59,6 @@ public class FishImportServiceImpl implements IFishImportService { private static final Map FISH_DICT_CACHE = new LinkedHashMap<>(); private static final Map FPSS_BH_CACHE = new LinkedHashMap<>(); - private static final Map DIRECTION_DICT_CACHE = new LinkedHashMap<>(); private static final Map ISFS_DICT_CACHE = new LinkedHashMap<>(); private static final String DICT_CODE_FISH = "FISH_TYPE"; @@ -94,7 +93,7 @@ public class FishImportServiceImpl implements IFishImportService { EXCEL_COLUMN_INDEX_MAPPING.put(0, "baseName"); EXCEL_COLUMN_INDEX_MAPPING.put(1, "stationName"); EXCEL_COLUMN_INDEX_MAPPING.put(2, "fpname"); - EXCEL_COLUMN_INDEX_MAPPING.put(3, "tm"); + EXCEL_COLUMN_INDEX_MAPPING.put(3, "strdt"); EXCEL_COLUMN_INDEX_MAPPING.put(4, "ftp"); EXCEL_COLUMN_INDEX_MAPPING.put(5, "isfs"); EXCEL_COLUMN_INDEX_MAPPING.put(6, "direction"); @@ -184,7 +183,8 @@ public class FishImportServiceImpl implements IFishImportService { switch (fieldName) { case "stationName": if (!StringUtils.hasText(cellValue)) { - missingRequiredFields.add("电站名称"); + importRow.getWarnings().add(fieldName); + data.setEngName(cellValue.trim()); } else { String stcd = resolveStationCode(cellValue.trim()); if (stcd == null) { @@ -197,7 +197,9 @@ public class FishImportServiceImpl implements IFishImportService { break; case "baseName": if (!StringUtils.hasText(cellValue)) { - missingRequiredFields.add("水电基地"); + importRow.getWarnings().add(fieldName); + data.setBaseId(cellValue.trim()); + data.setBaseName(cellValue.trim()); } else { String baseId = resolveBaseCode(cellValue.trim()); if (baseId == null) { @@ -215,6 +217,7 @@ public class FishImportServiceImpl implements IFishImportService { String rvcd = resolveRiverCode(cellValue.trim()); if (rvcd == null) { importRow.getWarnings().add(fieldName); + data.setRvcd(cellValue); } else { data.setRvcd(rvcd); } @@ -222,18 +225,20 @@ public class FishImportServiceImpl implements IFishImportService { break; case "tm": if (!StringUtils.hasText(cellValue)) { - missingRequiredFields.add("过鱼时间"); + importRow.getWarnings().add(fieldName); } else { Date tm = parseDate(cellValue); if (tm == null) { - importRow.getWarnings().add("过鱼时间格式错误: " + cellValue); + importRow.getWarnings().add(fieldName); } data.setTm(tm); } break; case "ftp": if (!StringUtils.hasText(cellValue)) { - missingRequiredFields.add("鱼种类"); + importRow.getWarnings().add(fieldName); + data.setFtp(cellValue.trim()); + data.setFtpName(cellValue.trim()); } else { String stcd = resolveFishDictCode(cellValue.trim()); if (stcd == null) { @@ -251,7 +256,8 @@ public class FishImportServiceImpl implements IFishImportService { break; case "fcnt": if (!StringUtils.hasText(cellValue)) { - missingRequiredFields.add("过鱼数量"); + importRow.getWarnings().add(fieldName); + data.setFcnt(parseInteger(cellValue)); } else { Integer fcnt = parseInteger(cellValue); if (fcnt == null) { @@ -265,14 +271,23 @@ public class FishImportServiceImpl implements IFishImportService { data.setFwet(cellValue.trim()); break; case "strdt": - data.setStrdt(parseDate(cellValue)); + if (!StringUtils.hasText(cellValue)) { + importRow.getWarnings().add(fieldName); + } else { + Date strdt = parseDate(cellValue); + if (strdt == null) { + importRow.getWarnings().add(fieldName); + } + data.setStrdt(strdt); + } break; case "enddt": data.setEnddt(parseDate(cellValue)); break; case "direction": if (!StringUtils.hasText(cellValue)) { - missingRequiredFields.add("游向"); + importRow.getWarnings().add(fieldName); + data.setDirection(cellValue.trim()); } else { String direction = resolveDirection(cellValue.trim(), importRow); data.setDirection(direction); @@ -507,28 +522,16 @@ public class FishImportServiceImpl implements IFishImportService { } String lowerName = direction.toLowerCase().trim(); - if (!DIRECTION_DICT_CACHE.isEmpty()) { - if (DIRECTION_DICT_CACHE.containsKey(lowerName)) { - return DIRECTION_DICT_CACHE.get(lowerName); - } - for (Map.Entry entry : DIRECTION_DICT_CACHE.entrySet()) { - if (entry.getKey().contains(lowerName) || lowerName.contains(entry.getKey())) { - return entry.getValue(); - } - } - } - if (lowerName.contains("上行") && lowerName.contains("折返")) { - return "上行折返"; + return "03"; } else if (lowerName.contains("下行") && lowerName.contains("折返")) { - return "下行折返"; + return "04"; } else if (lowerName.contains("上行")) { - return "上行"; + return "01"; } else if (lowerName.contains("下行")) { - return "下行"; + return "02"; } - - importRow.getWarnings().add("无法识别的游向: " + direction + ",请手动选择"); + importRow.getWarnings().add("direction"); return direction; } @@ -537,25 +540,12 @@ public class FishImportServiceImpl implements IFishImportService { return null; } String lowerName = value.toLowerCase().trim(); - - if (!ISFS_DICT_CACHE.isEmpty()) { - if (ISFS_DICT_CACHE.containsKey(lowerName)) { - return ISFS_DICT_CACHE.get(lowerName); - } - for (Map.Entry entry : ISFS_DICT_CACHE.entrySet()) { - if (entry.getKey().contains(lowerName) || lowerName.contains(entry.getKey())) { - return entry.getValue(); - } - } + if (lowerName.equals("是")) { + return "1"; + } else if (lowerName.equals("否") ) { + return "0"; } - - if (lowerName.equals("1") || lowerName.equals("是") || lowerName.equals("yes") || lowerName.equals("true")) { - return "是"; - } else if (lowerName.equals("0") || lowerName.equals("否") || lowerName.equals("no") || lowerName.equals("false")) { - return "否"; - } - - importRow.getWarnings().add("无法识别的【是否鱼苗】值: " + value + ",将默认设置为【否】"); + importRow.getWarnings().add("isfs"); return "否"; }