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

Row 49:计划并网容量各月之和未校验不能大于"本项目场站设计容量"

严重 2.1.待开发 全部类型 五区 模块:计划并网信息 / 计划并网容量信息 处理人:王献梓

1基本信息

问题描述五区:计划并网容量之和不能大于"本项目场站设计容量"。
所属模块计划并网信息 / 计划并网容量信息
严重程度严重(阻断流程:是)
涉及类型全部类型
提出人文日明
处理人 / 状态王献梓 / 2.1.待开发(待调整)

2问题截图

计划并网容量信息月度填报表格
图1:"测试0808666"项目 → 计划并网容量信息 Tab,2026/2027 年各月容量填报表格(红框),8月填写111,另有多月22,明显已超出场站设计容量
项目基本信息-本项目场站设计容量字段
图2:项目基本信息 Tab,"本项目场站设计容量"字段(红框)填写为 100MW,但图1中各月计划并网容量合计已远超 100MW,系统未阻止保存

3旧代码定位(backup730 分支)

①"本项目场站设计容量"字段定义 —— src/views/projectNew/components/baseInfo/components/stationInfo.vue 第 62 行:

<el-form-item :required="proStatus" label="本项目场站设计容量" prop="designCapacity" class="blue-required">

(集中式类型对应组件为 stationInfo.vue,生物质/新型储能/中压分布式对应 stationInfoSWZ.vue / stationInfoXXCN.vue / stationInfoZY.vue,字段 prop 均为 designCapacity)。

② 计划并网容量保存校验入口 —— src/views/projectNew/components/planInfo/jhbwDetail.vue 第 789-831 行 handleSave(index)

handleSave(index) {
  let impl = this.projectImp.implList[index]
  let bakPstatus = impl.bakPstatus
  if (bakPstatus == '0' || this.type == 'zyfbsxny' || this.type == 'swz') {
    // ...(预计首次/全部并网时间校验,797-808行)
    let yearMonthList = this.requiredYearMonthList[index]
    for (let i = 0; i < yearMonthList.length; i++) {          // 第810行:逐月循环
      let yearMonth = yearMonthList[i]
      let capa = this.getCapaByYearMonth(index, yearMonth, false)
      if (bakPstatus == '0') {
        if (!capa || capa <= 0) {
          this.$message.error(`请填写${yearMonth}的容量(MW),并且必须大于0`)   // 第814行:只校验"必填且>0"
          return
        }
      }
      // ... 816-822行:能量(MWh)必填校验
      // 全程没有对 yearMonthList 各月 capa 求和,也没有和场站 designCapacity 做比较
    }
  }
  // ...
}
根因说明:
校验缺项:第 810-825 行的逐月循环只校验"每个月是否填写、是否大于0",从未对 yearMonthList 各月容量做累加求和,也没有拿场站的 designCapacity(本项目场站设计容量)做上限比较,因此截图中"设计容量100MW,各月合计>200MW"仍能顺利保存并提交。
数据来源缺口: jhbwDetail.vue 组件的 props(第 551 行 props: ['planId', 'implId', 'status', 'type'])以及数据加载方法 getById()(第 640-660 行 projectPlanApi.getByPlanId(this.planId))目前都不包含场站 designCapacity 字段,需要新增该字段的传递路径,如实说明:未能在现有代码中确认 projectImp 响应体内是否已透传 designCapacity,修复时需与后端接口 xnybw5b@730backup NePjApplyFlowController#getByPlanId 确认或联调补充该字段。

4修复方案

4.1 后端:确认/补充 xnybw5b@730backup:NePjApplyFlowAppService(getByPlanId 对应实现)返回体中携带场站 designCapacity(若已有对应字段则直接复用,避免重复查询)。

4.2 前端:修复代码文件 src/views/projectNew/components/planInfo/jhbwDetail.vue,在 handleSave(index) 第 825 行(逐月校验循环结束后、原第 826 行 showMwh 判断之外)新增容量之和校验:

// 826行之后新增:各月容量之和不能超过场站设计容量
let totalCapa = 0
for (let i = 0; i < yearMonthList.length; i++) {
  totalCapa += Number(this.getCapaByYearMonth(index, yearMonthList[i], false)) || 0
}
let designCapacity = Number(impl.designCapacity || this.projectImp.designCapacity)
if (designCapacity > 0 && totalCapa > designCapacity) {
  this.$message.error(
    `计划并网容量合计(${totalCapa}MW)不能大于本项目场站设计容量(${designCapacity}MW),请检查各月填报数据`
  )
  return
}
建议同时在保存按钮点击前做前端实时提示(如在表格下方展示"已填合计 / 设计容量上限"对比数字),减少用户填完全部数据后才收到报错的返工成本。
效果:各月计划并网容量之和一旦超过该项目场站设计容量,保存并提交审核时会被拦截并给出明确提示,避免出现截图中"设计容量100MW、计划并网合计超200MW"仍能通过校验提交的问题。