生成时间: 2026-08-02 · 数据来源: xnybw平台需求及工作计划.xlsx(南网在线绿能云缺陷跟踪表)· 仅针对 backup730/730backup 分支代码

实际并网容量信息页 · 发电单元信息导入报错

Excel 第 22 行 · 新能源并网五区(xnybw5)
严重性:严重 状态:2.1.待开发 五区

1基本信息

问题描述发电单元信息导入报错
一级模块实际并网信息
二级模块实际并网容量信息
涉及类型全部类型
严重性严重
当前状态2.1.待开发(待调整,需要前端配合)
研发处理人员周小龙
复测情况暂无(待开发中)

2问题截图

文件导入弹窗上传海上风电发电单元.xlsx,浏览器网络面板显示接口importFddy返回code500运行时异常
图1:上传“海上风电发电单元.xlsx”后,浏览器网络面板可见接口 importFddy 返回 {"msg":"运行时异常,请联系管理员!","code":500}

3旧代码涉及的项目文件名及对应行数(backup730 / 730backup)

后端:xnybw5b / src/main/java/cn/csg/so/oms/in/newenergy/project/controller/SjbwController.java(第 194-202 行 importFddy 接口)
把内部抛出的、带有具体原因的 ServiceException 又重新包装成了通用的 RuntimeException
后端:xnybw5b / src/main/java/cn/csg/so/oms/in/newenergy/project/appservice/SjbwAppService.java(第 3110-3138 行 parseFileFdgfswzPower / validateFirstColumnIdHeader)
要求上传文件表头第一列必须精确等于“发电单元ID”,否则直接抛出 ServiceException,解析失败也会包成 ServiceException("解析发电单元导入文件失败,请检查文件格式")

4修复代码涉及的项目文件名及行数

5修复方案

根因分析:截图中浏览器网络面板已经直接证实,导入失败时后端返回的是通用错误码 500、通用文案“运行时异常,请联系管理员!”,而不是任何具体原因。走读 SjbwAppService.parseFileFdgfswzPower() 可以看到,后端其实已经为“表头缺少发电单元ID列”“文件格式解析失败”等情况准备了明确的业务提示语(ServiceException("导入文件第一列必须为发电单元ID") / ServiceException("解析发电单元导入文件失败,请检查文件格式"))。但这些有意义的提示在 Controller 层被“好心办坏事”地统一吞掉了:

修改前(SjbwController.java 第 194-202 行)
@PostMapping("/importFddy")
public Map importFddy(@ModelAttribute SjbwDto dto,
                       @RequestParam("file") MultipartFile file){
    try {
        return sjbwFacade.importFddy(dto,file);
    }catch (Exception e){
        throw new RuntimeException("导入发电单元出错:" + e.getMessage(),e);
    }
}
修改后(建议)
@PostMapping("/importFddy")
public Map importFddy(@ModelAttribute SjbwDto dto,
                       @RequestParam("file") MultipartFile file){
    try {
        return sjbwFacade.importFddy(dto,file);
    } catch (ServiceException se) {
        // 业务校验异常:原样透传给前端展示,不再包装成通用运行时异常
        throw se;
    } catch (Exception e) {
        LOGGER.error("导入发电单元出错", e);
        throw new ServiceException("导入发电单元失败,请检查文件内容或联系管理员");
    }
}

修复后,用户上传格式不符的文件会看到“导入文件第一列必须为发电单元ID”或“解析发电单元导入文件失败,请检查文件格式”这样可操作的提示,而不是一律显示“运行时异常,请联系管理员”。

研发备注“待调整,需要前端配合”,结合上面对表头强校验的走读,推断实际根因很可能是:前端“导入”按钮允许用户直接把“导出”得到的 Excel(或历史遗留模板)重新上传,但该文件的表头格式与 validateFirstColumnIdHeader 要求的“发电单元ID”不完全一致(例如多了空格、列顺序不同、或使用了旧模板)。这部分需要前端与后端共同核对“导入模版下载”按钮生成的模板结构,确保它与后端解析逻辑严格一致,属于前后端模板对齐问题,不是单纯后端可以独立修复的缺陷,因此才会归入本例。