Ver código fonte

[26110601] 设备管理页状态字段字典转换与导出对齐: 表格状态列GOOD=在线/否则离线(前端customRender), 导出改走ConfigDeviceExportVo(序号/设备名称/设备类型/所属场站/额定容量- /型号/状态转换值)与表格7列名称顺序一致, 实体移除过时@Excel注解

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
taosj 14 horas atrás
pai
commit
7e513bb5ed

+ 17 - 2
forecast-backend-server/src/main/java/com/ufo/project/config/controller/ConfigDeviceController.java

@@ -20,6 +20,7 @@ import com.ufo.base.framework.aspectj.lang.enums.BusinessType;
 import com.ufo.project.config.domain.ConfigChannel;
 import com.ufo.project.config.domain.ConfigDevice;
 import com.ufo.project.config.domain.ConfigStation;
+import com.ufo.project.config.domain.vo.ConfigDeviceExportVo;
 import com.ufo.project.config.service.IConfigChannelService;
 import com.ufo.project.config.service.IConfigDeviceService;
 import com.ufo.project.config.service.IConfigStationService;
@@ -64,8 +65,14 @@ public class ConfigDeviceController extends BaseController
     {
         List<ConfigDevice> list = configDeviceService.selectConfigDeviceList(configDevice);
         fillNames(list);
-        ExcelUtil<ConfigDevice> util = new ExcelUtil<ConfigDevice>(ConfigDevice.class);
-        util.exportExcel(response, list, "设备配置");
+        List<ConfigDeviceExportVo> exportList = new ArrayList<>();
+        int index = 1;
+        for (ConfigDevice device : list)
+        {
+            exportList.add(new ConfigDeviceExportVo(index++, device.getName(), device.getTp(), device.getStationName(), "-", device.getModel(), statusLabel(device.getStatus())));
+        }
+        ExcelUtil<ConfigDeviceExportVo> util = new ExcelUtil<ConfigDeviceExportVo>(ConfigDeviceExportVo.class);
+        util.exportExcel(response, exportList, "设备配置");
     }
 
     @PreAuthorize("@ss.hasPermi('config:stationDevice:query')")
@@ -150,6 +157,14 @@ public class ConfigDeviceController extends BaseController
         }
     }
 
+    /**
+     * 状态字典转换: GOOD=在线, 否则离线
+     */
+    private String statusLabel(String status)
+    {
+        return "GOOD".equals(status) ? "在线" : "离线";
+    }
+
     /**
      * config_device.config_station_id 是varchar列(存数字字符串), 转为Long用于关联config_station; 非数字值视为无场站
      */

+ 1 - 9
forecast-backend-server/src/main/java/com/ufo/project/config/domain/ConfigDevice.java

@@ -1,5 +1,4 @@
 package com.ufo.project.config.domain;
-import com.ufo.base.framework.aspectj.lang.annotation.Excel;
 
 import lombok.Data;
 
@@ -9,7 +8,7 @@ import lombok.Data;
  * @author ufo
  * @date 2026-08-06
  */
-@Data 
+@Data
 public class ConfigDevice
 {
 
@@ -17,32 +16,25 @@ public class ConfigDevice
     private Long id;
 
     /** 名称 */
-    @Excel(name = "名称")
     private String name;
     /** 设备类型 */
-    @Excel(name = "设备类型")
     private String tp;
     /** 型号 */
-    @Excel(name = "型号")
     private String model;
     /** 状态 */
-    @Excel(name = "状态")
     private String status;
     /**
      * 配置通道ID
      */
-    @Excel(name = "通道")
     private Long configChannelId;
     /**
      * 配置站点ID(数据库列为varchar, 存数字字符串)
      */
-    @Excel(name = "场站")
     private String configStationId;
 
     /**
      * Parent配置设备ID
      */
-    @Excel(name = "父级设备")
     private Long configDeviceId;
 
     /**

+ 126 - 0
forecast-backend-server/src/main/java/com/ufo/project/config/domain/vo/ConfigDeviceExportVo.java

@@ -0,0 +1,126 @@
+package com.ufo.project.config.domain.vo;
+
+import com.ufo.base.framework.aspectj.lang.annotation.Excel;
+import com.ufo.base.framework.aspectj.lang.annotation.Excel.ColumnType;
+
+/**
+ * 设备配置导出行数据(列名/值/顺序与设备管理页表格一致)
+ *
+ * @author ufo
+ * @date 2026-11-06
+ */
+public class ConfigDeviceExportVo
+{
+    /** 序号 */
+    @Excel(name = "序号", cellType = ColumnType.NUMERIC)
+    private Long serial;
+
+    /** 设备名称 */
+    @Excel(name = "设备名称")
+    private String name;
+
+    /** 设备类型 */
+    @Excel(name = "设备类型")
+    private String tp;
+
+    /** 所属场站 */
+    @Excel(name = "所属场站")
+    private String stationName;
+
+    /** 额定容量(无对应数据源, 固定-) */
+    @Excel(name = "额定容量")
+    private String ratedCapacity;
+
+    /** 型号 */
+    @Excel(name = "型号")
+    private String model;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    private String status;
+
+    public ConfigDeviceExportVo()
+    {
+    }
+
+    public ConfigDeviceExportVo(Long serial, String name, String tp, String stationName, String ratedCapacity, String model, String status)
+    {
+        this.serial = serial;
+        this.name = name;
+        this.tp = tp;
+        this.stationName = stationName;
+        this.ratedCapacity = ratedCapacity;
+        this.model = model;
+        this.status = status;
+    }
+
+    public Long getSerial()
+    {
+        return serial;
+    }
+
+    public void setSerial(Long serial)
+    {
+        this.serial = serial;
+    }
+
+    public String getName()
+    {
+        return name;
+    }
+
+    public void setName(String name)
+    {
+        this.name = name;
+    }
+
+    public String getTp()
+    {
+        return tp;
+    }
+
+    public void setTp(String tp)
+    {
+        this.tp = tp;
+    }
+
+    public String getStationName()
+    {
+        return stationName;
+    }
+
+    public void setStationName(String stationName)
+    {
+        this.stationName = stationName;
+    }
+
+    public String getRatedCapacity()
+    {
+        return ratedCapacity;
+    }
+
+    public void setRatedCapacity(String ratedCapacity)
+    {
+        this.ratedCapacity = ratedCapacity;
+    }
+
+    public String getModel()
+    {
+        return model;
+    }
+
+    public void setModel(String model)
+    {
+        this.model = model;
+    }
+
+    public String getStatus()
+    {
+        return status;
+    }
+
+    public void setStatus(String status)
+    {
+        this.status = status;
+    }
+}

+ 4 - 1
forecast-backend-vue/src/views/ufo/electricity/device/TurbineInfo.vue

@@ -114,7 +114,10 @@ const columns = [
     customRender: () => '-'
   },
   {title: '型号', dataIndex: 'model', width: 140},
-  {title: '状态', dataIndex: 'status', width: 90}
+  {
+    title: '状态', dataIndex: 'status', width: 90,
+    customRender: ({text}) => (text === 'GOOD' ? '在线' : '离线')
+  }
 ];
 
 const resetObject = (target, source = {}) => {