diff --git a/aucma-base/src/main/java/com/aucma/base/controller/BaseDeviceParamValController.java b/aucma-base/src/main/java/com/aucma/base/controller/BaseDeviceParamValController.java index 5c14a7a..593ab47 100644 --- a/aucma-base/src/main/java/com/aucma/base/controller/BaseDeviceParamValController.java +++ b/aucma-base/src/main/java/com/aucma/base/controller/BaseDeviceParamValController.java @@ -3,6 +3,7 @@ package com.aucma.base.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; +import com.aucma.common.annotation.Anonymous; import com.aucma.common.utils.DateUtils; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; @@ -118,5 +119,32 @@ public class BaseDeviceParamValController extends BaseController { return success(list); } + /** + * 获取设备状态统计(基于三色灯参数) + * 返回:设备数量、开机率、运行台数、停机台数、待机台数、未开机台数 + */ + @PreAuthorize("@ss.hasPermi('baseDeviceParamVal:val:list')" ) + @GetMapping("/statistics" ) + public AjaxResult statistics() { + return success(baseDeviceParamValService.selectDeviceStatusStatistics()); + } + + /** + * 获取每个设备的编号、名称、三色灯状态 + */ + @PreAuthorize("@ss.hasPermi('baseDeviceParamVal:val:list')" ) + @GetMapping("/deviceStatus" ) + public AjaxResult deviceStatus() { + return success(baseDeviceParamValService.selectDeviceStatusList()); + } + + /** + * 获取每个设备的开机时间当天最新值 + */ + @PreAuthorize("@ss.hasPermi('baseDeviceParamVal:val:list')" ) + @GetMapping("/deviceStartTime" ) + public AjaxResult deviceStartTime() { + return success(baseDeviceParamValService.selectDeviceStartTimeList()); + } } diff --git a/aucma-base/src/main/java/com/aucma/base/mapper/BaseDeviceParamValMapper.java b/aucma-base/src/main/java/com/aucma/base/mapper/BaseDeviceParamValMapper.java index ca51bb3..dd8bda0 100644 --- a/aucma-base/src/main/java/com/aucma/base/mapper/BaseDeviceParamValMapper.java +++ b/aucma-base/src/main/java/com/aucma/base/mapper/BaseDeviceParamValMapper.java @@ -1,6 +1,8 @@ package com.aucma.base.mapper; import java.util.List; +import java.util.Map; + import com.aucma.base.domain.BaseDeviceParamVal; /** @@ -66,4 +68,25 @@ public interface BaseDeviceParamValMapper * @return 结果 */ public int deleteBaseDeviceParamValByRecordIds(Long[] recordIds); + + /** + * 查询设备状态统计(基于三色灯参数) + * + * @return 设备状态统计Map + */ + public Map selectDeviceStatusStatistics(); + + /** + * 获取每个设备的编号、名称、三色灯状态 + * + * @return 设备状态列表 + */ + public List> selectDeviceStatusList(); + + /** + * 获取每个设备的开机时间当天最新值 + * + * @return 设备开机时间列表 + */ + public List> selectDeviceStartTimeList(); } diff --git a/aucma-base/src/main/java/com/aucma/base/service/IBaseDeviceParamValService.java b/aucma-base/src/main/java/com/aucma/base/service/IBaseDeviceParamValService.java index 1918bd5..8ea6640 100644 --- a/aucma-base/src/main/java/com/aucma/base/service/IBaseDeviceParamValService.java +++ b/aucma-base/src/main/java/com/aucma/base/service/IBaseDeviceParamValService.java @@ -1,6 +1,8 @@ package com.aucma.base.service; import java.util.List; +import java.util.Map; + import com.aucma.base.domain.BaseDeviceParamVal; /** @@ -66,4 +68,25 @@ public interface IBaseDeviceParamValService * @return 结果 */ public int deleteBaseDeviceParamValByRecordId(Long recordId); + + /** + * 查询设备状态统计(基于三色灯参数) + * + * @return 设备状态统计Map + */ + public Map selectDeviceStatusStatistics(); + + /** + * 获取每个设备的编号、名称、三色灯状态 + * + * @return 设备状态列表 + */ + public List> selectDeviceStatusList(); + + /** + * 获取每个设备的开机时间当天最新值 + * + * @return 设备开机时间列表 + */ + public List> selectDeviceStartTimeList(); } diff --git a/aucma-base/src/main/java/com/aucma/base/service/impl/BaseDeviceParamValServiceImpl.java b/aucma-base/src/main/java/com/aucma/base/service/impl/BaseDeviceParamValServiceImpl.java index eaf30a4..167e859 100644 --- a/aucma-base/src/main/java/com/aucma/base/service/impl/BaseDeviceParamValServiceImpl.java +++ b/aucma-base/src/main/java/com/aucma/base/service/impl/BaseDeviceParamValServiceImpl.java @@ -1,7 +1,9 @@ package com.aucma.base.service.impl; import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -116,4 +118,79 @@ public class BaseDeviceParamValServiceImpl implements IBaseDeviceParamValService { return baseDeviceParamValMapper.deleteBaseDeviceParamValByRecordId(recordId); } + + /** + * 查询设备状态统计(基于三色灯参数) + * + * @return 设备状态统计Map + */ + @Override + public Map selectDeviceStatusStatistics() + { + try { + Map result = baseDeviceParamValMapper.selectDeviceStatusStatistics(); + if (result == null) { + result = new HashMap<>(); + result.put("totalCount", 0); + result.put("runningCount", 0); + result.put("stoppedCount", 0); + result.put("standbyCount", 0); + result.put("notStartedCount", 0); + result.put("runningRate", "0%"); + return result; + } + // 计算开机率 + Object totalObj = result.get("TOTALCOUNT"); + Object runningObj = result.get("RUNNINGCOUNT"); + int total = totalObj != null ? ((Number) totalObj).intValue() : 0; + int running = runningObj != null ? ((Number) runningObj).intValue() : 0; + String runningRate = total > 0 ? String.format("%.2f%%", (running * 100.0 / total)) : "0%"; + result.put("runningRate", runningRate); + return result; + } catch (Exception e) { + log.error("查询设备状态统计失败: {}", e.getMessage()); + Map result = new HashMap<>(); + result.put("totalCount", 0); + result.put("runningCount", 0); + result.put("stoppedCount", 0); + result.put("standbyCount", 0); + result.put("notStartedCount", 0); + result.put("runningRate", "0%"); + return result; + } + } + + /** + * 获取每个设备的编号、名称、三色灯状态 + * + * @return 设备状态列表 + */ + @Override + public List> selectDeviceStatusList() + { + try { + List> list = baseDeviceParamValMapper.selectDeviceStatusList(); + return list != null ? list : Collections.emptyList(); + } catch (Exception e) { + log.error("查询设备状态列表失败: {}", e.getMessage()); + return Collections.emptyList(); + } + } + + /** + * 获取每个设备的开机时间当天最新值 + * + * @return 设备开机时间列表 + */ + @Override + public List> selectDeviceStartTimeList() + { + try { + List> list = baseDeviceParamValMapper.selectDeviceStartTimeList(); + return list != null ? list : Collections.emptyList(); + } catch (Exception e) { + log.error("查询设备开机时间列表失败: {}", e.getMessage()); + return Collections.emptyList(); + } + } } diff --git a/aucma-base/src/main/resources/mapper/base/BaseDeviceParamValMapper.xml b/aucma-base/src/main/resources/mapper/base/BaseDeviceParamValMapper.xml index 66bcabc..18aab62 100644 --- a/aucma-base/src/main/resources/mapper/base/BaseDeviceParamValMapper.xml +++ b/aucma-base/src/main/resources/mapper/base/BaseDeviceParamValMapper.xml @@ -111,4 +111,97 @@ ) WHERE rn = 1 ) WHERE row_num <= 200 + + + + + + + + + \ No newline at end of file diff --git a/aucma-production/src/main/java/com/aucma/production/domain/AndonEventLog.java b/aucma-production/src/main/java/com/aucma/production/domain/AndonEventLog.java index bafc982..3653160 100644 --- a/aucma-production/src/main/java/com/aucma/production/domain/AndonEventLog.java +++ b/aucma-production/src/main/java/com/aucma/production/domain/AndonEventLog.java @@ -26,7 +26,7 @@ private static final long serialVersionUID=1L; private Long eventId; /** 操作类型(创建/确认/分配/升级/解决/取消/评论) */ - @Excel(name = "操作类型", readConverterExp = "创=建/确认/分配/升级/解决/取消/评论") + @Excel(name = "操作类型", readConverterExp = "=创建/确认/分配/升级/解决/取消/评论") private String operation; /** 操作内容 */