该方法用于批量导入NB电表,支持预导入和非预导入设备,并进行数据校验和同步到前置机。

方法参数

  • communityId: 小区ID
  • modelId: 电表型号ID
  • schemeId: 电价方案ID
  • excelNbMeterDtos: 待导入的电表信息列表

方法逻辑

  1. 校验用户是否为租户用户,非租户用户不支持NB电表的批量导入。
  2. 校验Excel导入数据。
  3. 查询归属小区和设备型号,并根据电价方案ID查询电价方案。
  4. 如果选择了复费率的电价,则需要校验尖峰平谷的底度数是否都有值。
  5. 自动处理归属的楼栋单元。
  6. 处理预导入的设备:
    • 获取预导入电表信息列表。
    • 校验电表编号是否在平台预导入,如果未预导入,则提示用户更正。
    • 根据表格内填入数据,修改预导入电表信息,包括底度数、安装信息、密码等级、密码等。
    • 设置楼栋单元信息。
  7. 处理非预导入设备:
    • 校验上传数据是否完整。
    • 创建新的电表信息,并进行数据保存。
    • 同步数据到前置机,根据IoT平台的类型分组进行同步。

代码解释

nbElectricMeterPreImportList 中的 setPwdLevel 方法是在 preImportList.forEach 循环中调用的,这意味着每次循环中都会设置 nbElectricMeter 对象的 pwdLevel 属性。

如果 setPwdLevel 方法没有生效,可能是以下原因:

  1. preImportList 列表中的元素没有调用 setPwdLevel 方法。请检查 ImportExcelNbElectricMeterDto 类的定义,确保 pwdLevel 字段存在并且有相应的 getter 和 setter 方法。
  2. preImportList 列表中的元素的 pwdLevel 字段值为 null 或空字符串,导致 setPwdLevel 方法没有实际设置属性值。请确保在调用 setPwdLevel 方法之前,pwdLevel 字段的值是非空的。
  3. nbElectricMeter 对象在其他地方被修改或重新赋值,导致 setPwdLevel 方法设置的值被覆盖。请检查代码中是否有其他地方修改了 nbElectricMeter 对象的 pwdLevel 属性。

如果以上解决方法都无效,请提供更多关于问题的上下文信息,以便更好地理解问题并给出准确的解决方案。


原文地址: https://www.cveoy.top/t/topic/gOCj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录