diff --git a/securitycontrol-commons/securitycontrol-commons-security/src/main/java/com/securitycontrol/common/security/interceptor/ParamSecureHandler.java b/securitycontrol-commons/securitycontrol-commons-security/src/main/java/com/securitycontrol/common/security/interceptor/ParamSecureHandler.java index 44a7541..354551a 100644 --- a/securitycontrol-commons/securitycontrol-commons-security/src/main/java/com/securitycontrol/common/security/interceptor/ParamSecureHandler.java +++ b/securitycontrol-commons/securitycontrol-commons-security/src/main/java/com/securitycontrol/common/security/interceptor/ParamSecureHandler.java @@ -76,6 +76,9 @@ public class ParamSecureHandler implements AsyncHandlerInterceptor { "/largeScreen/deviceEnergyAnalysis/selectEnergyStatsByDateRange", "/largeScreen/deviceEnergyAnalysis/selectDeviceEnergyByDateRange", "/largeScreen/deviceEnergyAnalysis/selectAnomalyByDateRange", + "/largeScreen/deviceEnergyAnalysis/selectLatestAll", + + }; /** diff --git a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/controller/DeviceEnergyAnalysisController.java b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/controller/DeviceEnergyAnalysisController.java index 3d461b9..e3ecf37 100644 --- a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/controller/DeviceEnergyAnalysisController.java +++ b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/controller/DeviceEnergyAnalysisController.java @@ -2,6 +2,7 @@ package com.securitycontrol.screen.controller; import com.securitycontrol.common.core.web.domain.AjaxResult; import com.securitycontrol.screen.domain.DeviceEnergyAnalysis; +import com.securitycontrol.screen.domain.EnergySavingMeasure; import com.securitycontrol.screen.service.DeviceEnergyAnalysisService; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; @@ -63,4 +64,31 @@ public class DeviceEnergyAnalysisController { public AjaxResult selectAnomalyByDateRange(@RequestBody DeviceEnergyAnalysis entity) { return service.selectAnomalyByDateRange(entity); } + + /** + * 查询最新统计日期下的所有节能减排措施数据。 + *
+ * 功能说明: + * 本接口接收客户端传入的查询条件(封装在 EnergySavingMeasure 实体中), + * 并调用 service 层方法,从数据库中获取“最新统计日期”对应的节能减排措施记录列表。 + * 通常用于前端页面展示最近一期的节能数据概览。 + *
+ * 请求方式: + * POST /selectLatestAll + *
+ * 请求参数: + * + * @return AjaxResult 封装的查询结果: + * @RequestBody EnergySavingMeasure entity + * - 可选字段示例: + * - measureName: 节能措施名称(用于精确筛选) + * - siteId / projectId: 工地或项目编号(如表中定义) + *
+ * 响应结果:
+ */
+ @PostMapping("selectLatestAll")
+ public AjaxResult selectLatestAll(@RequestBody EnergySavingMeasure entity) {
+ return service.selectLatestAll(entity);
+ }
+
}
diff --git a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/controller/ProjectProgressNewController.java b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/controller/ProjectProgressNewController.java
index 77f9184..ce100da 100644
--- a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/controller/ProjectProgressNewController.java
+++ b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/controller/ProjectProgressNewController.java
@@ -56,6 +56,7 @@ public class ProjectProgressNewController extends BaseController {
ProjectProgressNew projectProgress4 = new ProjectProgressNew();
ProjectProgressNew projectProgress5 = new ProjectProgressNew();
ProjectProgressNew projectProgress6 = new ProjectProgressNew();
+ ProjectProgressNew projectProgress7 = new ProjectProgressNew();
projectProgress1.setMonth("一月");
projectProgress1.setMonthValue("60");
projectProgress1.setMonthValue2("80");
@@ -74,12 +75,16 @@ public class ProjectProgressNewController extends BaseController {
projectProgress6.setMonth("六月");
projectProgress6.setMonthValue("75");
projectProgress6.setMonthValue2("88");
+ projectProgress7.setMonth("七月");
+ projectProgress7.setMonthValue("85");
+ projectProgress7.setMonthValue2("98");
list.add(projectProgress1);
list.add(projectProgress2);
list.add(projectProgress3);
list.add(projectProgress4);
list.add(projectProgress5);
list.add(projectProgress6);
+ list.add(projectProgress7);
return getDataTable(list);
}
diff --git a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/domain/EnergySavingMeasure.java b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/domain/EnergySavingMeasure.java
new file mode 100644
index 0000000..a960c96
--- /dev/null
+++ b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/domain/EnergySavingMeasure.java
@@ -0,0 +1,68 @@
+package com.securitycontrol.screen.domain;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * EnergySavingMeasure 类表示某个统计周期下的节能减排措施信息。
+ * 用于记录措施名称、覆盖率、统计日期等信息,并追踪创建与更新时间。
+ * 可用于节能数据展示、趋势分析、覆盖率评估等场景。
+ */
+@Data
+public class EnergySavingMeasure {
+
+ /**
+ * 主键ID,自增唯一标识符。
+ */
+ private Long id;
+
+ /**
+ * 节能减排措施名称,例如 "照明节能"、"空调温控"、"智能设备管控" 等。
+ * 用于识别该措施的类型。
+ */
+ private String measureName;
+
+ /**
+ * 覆盖率(coverage rate),表示该措施在工地范围内的实施比例。
+ * 取值范围为 0~1,通常以百分比展示(例如 0.85 表示 85%)。
+ */
+ private BigDecimal coverageRate;
+
+ /**
+ * 统计日期,表示该数据记录对应的时间周期(如某天、某周、某月)。
+ * 一般按日为单位进行统计。
+ */
+ private LocalDate statDate;
+
+ /**
+ * 创建时间,表示该数据记录的创建时间戳。
+ * 由系统自动生成,用于数据追踪。
+ */
+ private LocalDateTime createdAt;
+
+ /**
+ * 更新时间,表示该数据记录的最近一次更新时间戳。
+ * 由系统自动维护,用于记录数据变动历史。
+ */
+ private LocalDateTime updatedAt;
+
+ /**
+ * 查询条件:开始时间(非数据库字段)
+ * 用于按时间段筛选数据
+ */
+ private String startDate;
+
+ /**
+ * 查询条件:结束时间(非数据库字段)
+ * 用于按时间段筛选数据
+ */
+ private String endDate;
+ /**
+ * 工程ID(项目标识)
+ * 用于区分所属工程,可作为查询过滤条件
+ */
+ private String proId;
+}
diff --git a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/domain/EngineeringSafetyAnalysis.java b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/domain/EngineeringSafetyAnalysis.java
index 0f8505d..ba26758 100644
--- a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/domain/EngineeringSafetyAnalysis.java
+++ b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/domain/EngineeringSafetyAnalysis.java
@@ -76,4 +76,16 @@ public class EngineeringSafetyAnalysis extends BaseEntity {
@ApiModelProperty(value = "数量")
private String count;
+ /** 工程名称 */
+ @ApiModelProperty(value = "工程名称")
+ private String proName;
+
+ /** 作业地点 */
+ @ApiModelProperty(value = "作业地点")
+ private String workLocation;
+
+ /** 分析原因 */
+ @ApiModelProperty(value = "分析原因")
+ private String analysisReason;
+
}
diff --git a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/domain/ProjectProgressNew.java b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/domain/ProjectProgressNew.java
index 54ef82f..c14b865 100644
--- a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/domain/ProjectProgressNew.java
+++ b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/domain/ProjectProgressNew.java
@@ -82,6 +82,10 @@ public class ProjectProgressNew extends BaseEntity {
/** 关键路径任务标识(是 / 否) */
private String keyPathFlag;
+ private String delayStatus;
+
+ private String delayPolicy;
+
private String month;
private String monthValue;
diff --git a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/mapper/DeviceEnergyAnalysisMapper.java b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/mapper/DeviceEnergyAnalysisMapper.java
index 654155c..ae68acd 100644
--- a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/mapper/DeviceEnergyAnalysisMapper.java
+++ b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/mapper/DeviceEnergyAnalysisMapper.java
@@ -1,6 +1,7 @@
package com.securitycontrol.screen.mapper;
import com.securitycontrol.screen.domain.DeviceEnergyAnalysis;
+import com.securitycontrol.screen.domain.EnergySavingMeasure;
import org.apache.ibatis.annotations.MapKey;
import org.springframework.stereotype.Repository;
@@ -74,4 +75,31 @@ public interface DeviceEnergyAnalysisMapper {
* @return List
+ * 功能说明:
+ * 该方法根据传入的查询条件(如项目编号、设备类型等),从 energy_saving_measures 表中查询
+ * 最新统计日期(stat_date 最大值)对应的全部数据记录,用于展示当前工地节能措施覆盖情况。
+ *
+ * 查询逻辑:
+ * 1. 确定当前表中最大的 stat_date(即最新的数据日期);
+ * 2. 在该日期下筛选所有匹配查询条件的记录;
+ * 3. 返回按条件过滤的所有记录列表。
+ *
+ * 示例用途:
+ * - 首页或概览页展示最近的节能覆盖数据;
+ * - 周期性报表数据展示;
+ *
+ * 参数:
+ *
+ * @param entity 查询条件封装实体,可包含以下字段(可选):
+ * - measureName: 按措施名称过滤;
+ * - projectId / siteId(如果扩展了这些字段):按项目或施工地过滤;
+ *
+ * 返回值:
+ * @return List
+ * 功能说明:
+ * 该方法根据传入的查询条件(如项目编号、设备类型等),从 energy_saving_measures 表中查询
+ * 最新统计日期(stat_date 最大值)对应的全部数据记录,用于展示当前工地节能措施覆盖情况。
+ *
+ * 查询逻辑:
+ * 1. 确定当前表中最大的 stat_date(即最新的数据日期);
+ * 2. 在该日期下筛选所有匹配查询条件的记录;
+ * 3. 返回按条件过滤的所有记录列表。
+ *
+ * 示例用途:
+ * - 首页或概览页展示最近的节能覆盖数据;
+ * - 周期性报表数据展示;
+ *
+ * 参数:
+ *
+ * @param entity 查询条件封装实体,可包含以下字段(可选):
+ * - measureName: 按措施名称过滤;
+ * - projectId / siteId(如果扩展了这些字段):按项目或施工地过滤;
+ *
+ * 返回值:
+ * @return AjaxResult 封装的查询结果:
+ */
+ AjaxResult selectLatestAll(EnergySavingMeasure entity);
}
diff --git a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/service/impl/DeviceEnergyAnalysisServiceImpl.java b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/service/impl/DeviceEnergyAnalysisServiceImpl.java
index da66386..8c888d4 100644
--- a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/service/impl/DeviceEnergyAnalysisServiceImpl.java
+++ b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/service/impl/DeviceEnergyAnalysisServiceImpl.java
@@ -2,6 +2,7 @@ package com.securitycontrol.screen.service.impl;
import com.securitycontrol.common.core.web.domain.AjaxResult;
import com.securitycontrol.screen.domain.DeviceEnergyAnalysis;
+import com.securitycontrol.screen.domain.EnergySavingMeasure;
import com.securitycontrol.screen.mapper.DeviceEnergyAnalysisMapper;
import com.securitycontrol.screen.service.DeviceEnergyAnalysisService;
import lombok.extern.slf4j.Slf4j;
@@ -80,4 +81,40 @@ public class DeviceEnergyAnalysisServiceImpl implements DeviceEnergyAnalysisServ
return AjaxResult.error("查询能耗异常分析失败");
}
}
+
+ /**
+ * 查询最新统计日期下的所有节能减排措施记录。
+ *
+ * 功能说明:
+ * 该方法根据传入的查询条件(如项目编号、设备类型等),从 energy_saving_measures 表中查询
+ * 最新统计日期(stat_date 最大值)对应的全部数据记录,用于展示当前工地节能措施覆盖情况。
+ *
+ * 查询逻辑:
+ * 1. 确定当前表中最大的 stat_date(即最新的数据日期);
+ * 2. 在该日期下筛选所有匹配查询条件的记录;
+ * 3. 返回按条件过滤的所有记录列表。
+ *
+ * 示例用途:
+ * - 首页或概览页展示最近的节能覆盖数据;
+ * - 周期性报表数据展示;
+ *
+ * 参数:
+ *
+ * @param entity 查询条件封装实体,可包含以下字段(可选):
+ * - measureName: 按措施名称过滤;
+ * - projectId / siteId(如果扩展了这些字段):按项目或施工地过滤;
+ *
+ * 返回值:
+ * @return AjaxResult 封装的查询结果:
+ */
+ @Override
+ public AjaxResult selectLatestAll(EnergySavingMeasure entity) {
+ try {
+ List