diff --git a/ems-admin/pom.xml b/ems-admin/pom.xml
index ed00efc..33dacfd 100644
--- a/ems-admin/pom.xml
+++ b/ems-admin/pom.xml
@@ -39,8 +39,9 @@
- mysql
- mysql-connector-java
+ com.mysql
+ mysql-connector-j
+ 8.0.33
diff --git a/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsAlarmRecordsController.java b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsAlarmRecordsController.java
new file mode 100644
index 0000000..e3fc301
--- /dev/null
+++ b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsAlarmRecordsController.java
@@ -0,0 +1,58 @@
+package com.xzzn.web.controller.ems;
+
+import com.xzzn.common.core.controller.BaseController;
+import com.xzzn.common.core.domain.AjaxResult;
+import com.xzzn.common.core.page.TableDataInfo;
+import com.xzzn.common.utils.StringUtils;
+import com.xzzn.ems.domain.EmsAlarmRecords;
+import com.xzzn.ems.domain.vo.AlarmRecordListRequestVo;
+import com.xzzn.ems.domain.vo.AlarmRecordListResponseVo;
+import com.xzzn.ems.service.IEmsAlarmRecordsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 单站监控-故障告警
+ *
+ * @author xzzn
+ */
+@RestController
+@RequestMapping("/ems/siteAlarm")
+public class EmsAlarmRecordsController extends BaseController
+{
+
+ @Autowired
+ private IEmsAlarmRecordsService iEmsAlarmRecordsService;
+
+ /**
+ * 获取告警详情列表
+ */
+ @GetMapping("/getAlarmDetailList")
+ public TableDataInfo getAlarmDetailList(AlarmRecordListRequestVo requestVo)
+ {
+ startPage();
+ List list = iEmsAlarmRecordsService.getAlarmRecordDetailList(requestVo);
+ return getDataTable(list);
+ }
+
+ /**
+ * 生成工单
+ */
+ @PostMapping("/createTicketNo")
+ public AjaxResult createTicketNo(@RequestBody EmsAlarmRecords emsAlarmRecords)
+ {
+ Long id = emsAlarmRecords.getId();
+ if (id == null) {
+ return error("告警id不能为空");
+ }
+ String ticketNo= iEmsAlarmRecordsService.createTicketNo(id,getUserId());
+ if (StringUtils.isNotEmpty(ticketNo) && ticketNo.contains("T")) {
+ return AjaxResult.success("操作成功", ticketNo);
+ } else {
+ return error(ticketNo);
+ }
+ }
+
+}
diff --git a/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsEnergyPriceConfigController.java b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsEnergyPriceConfigController.java
new file mode 100644
index 0000000..0117d6f
--- /dev/null
+++ b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsEnergyPriceConfigController.java
@@ -0,0 +1,82 @@
+package com.xzzn.web.controller.ems;
+
+import java.util.List;
+
+import com.xzzn.ems.domain.vo.EnergyPriceVo;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.xzzn.common.annotation.Log;
+import com.xzzn.common.core.controller.BaseController;
+import com.xzzn.common.core.domain.AjaxResult;
+import com.xzzn.common.enums.BusinessType;
+import com.xzzn.ems.service.IEmsEnergyPriceConfigService;
+import com.xzzn.common.core.page.TableDataInfo;
+
+/**
+ * 电价配置Controller
+ *
+ * @author xzzn
+ * @date 2025-09-28
+ */
+@RestController
+@RequestMapping("/ems/energyPriceConfig")
+public class EmsEnergyPriceConfigController extends BaseController
+{
+ @Autowired
+ private IEmsEnergyPriceConfigService emsEnergyPriceConfigService;
+
+ /**
+ * 查询电价配置列表
+ */
+ @PreAuthorize("@ss.hasPermi('system:config:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(String siteId, String startTime,String endTime)
+ {
+ List list = emsEnergyPriceConfigService.selectEmsEnergyPriceConfigList(siteId,startTime,endTime);
+ return getDataTable2(list);
+ }
+
+ /**
+ * 获取电价配置详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('system:config:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return success(emsEnergyPriceConfigService.selectEmsEnergyPriceConfigById(id));
+ }
+
+ /**
+ * 新增电价配置
+ */
+ @PreAuthorize("@ss.hasPermi('system:config:add')")
+ @Log(title = "电价配置", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody EnergyPriceVo priceVo)
+ {
+ return toAjax(emsEnergyPriceConfigService.insertEmsEnergyPriceConfig(priceVo));
+ }
+
+ /**
+ * 修改电价配置
+ */
+ @PreAuthorize("@ss.hasPermi('system:config:edit')")
+ @Log(title = "电价配置", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody EnergyPriceVo priceVo)
+ {
+ return toAjax(emsEnergyPriceConfigService.updateEmsEnergyPriceConfig(priceVo));
+ }
+
+ /**
+ * 删除电价配置
+ */
+ @PreAuthorize("@ss.hasPermi('system:config:remove')")
+ @Log(title = "电价配置", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(emsEnergyPriceConfigService.deleteEmsEnergyPriceConfigByIds(ids));
+ }
+}
diff --git a/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsFaultProtectionPlanController.java b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsFaultProtectionPlanController.java
new file mode 100644
index 0000000..58e0570
--- /dev/null
+++ b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsFaultProtectionPlanController.java
@@ -0,0 +1,107 @@
+package com.xzzn.web.controller.ems;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.xzzn.ems.service.IEmsFaultProtectionPlanService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.xzzn.common.annotation.Log;
+import com.xzzn.common.core.controller.BaseController;
+import com.xzzn.common.core.domain.AjaxResult;
+import com.xzzn.common.enums.BusinessType;
+import com.xzzn.ems.domain.EmsFaultProtectionPlan;
+import com.xzzn.common.utils.poi.ExcelUtil;
+import com.xzzn.common.core.page.TableDataInfo;
+
+/**
+ * 故障告警保护方案Controller
+ *
+ * @author xzzn
+ * @date 2025-10-22
+ */
+@RestController
+@RequestMapping("/ems/protectPlan")
+public class EmsFaultProtectionPlanController extends BaseController
+{
+ @Autowired
+ private IEmsFaultProtectionPlanService emsFaultProtectionPlanService;
+
+ /**
+ * 查询故障告警保护方案列表
+ */
+ @PreAuthorize("@ss.hasPermi('system:plan:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(EmsFaultProtectionPlan emsFaultProtectionPlan)
+ {
+ startPage();
+ List list = emsFaultProtectionPlanService.selectEmsFaultProtectionPlanList(emsFaultProtectionPlan);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出故障告警保护方案列表
+ */
+ @PreAuthorize("@ss.hasPermi('system:plan:export')")
+ @Log(title = "故障告警保护方案", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, EmsFaultProtectionPlan emsFaultProtectionPlan)
+ {
+ List list = emsFaultProtectionPlanService.selectEmsFaultProtectionPlanList(emsFaultProtectionPlan);
+ ExcelUtil util = new ExcelUtil(EmsFaultProtectionPlan.class);
+ util.exportExcel(response, list, "故障告警保护方案数据");
+ }
+
+ /**
+ * 获取故障告警保护方案详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('system:plan:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return success(emsFaultProtectionPlanService.selectEmsFaultProtectionPlanById(id));
+ }
+
+ /**
+ * 新增故障告警保护方案
+ */
+ @PreAuthorize("@ss.hasPermi('system:plan:add')")
+ @Log(title = "故障告警保护方案", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody EmsFaultProtectionPlan emsFaultProtectionPlan)
+ {
+ emsFaultProtectionPlan.setCreateBy(getUsername());
+ return toAjax(emsFaultProtectionPlanService.insertEmsFaultProtectionPlan(emsFaultProtectionPlan));
+ }
+
+ /**
+ * 修改故障告警保护方案
+ */
+ @PreAuthorize("@ss.hasPermi('system:plan:edit')")
+ @Log(title = "故障告警保护方案", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody EmsFaultProtectionPlan emsFaultProtectionPlan)
+ {
+ emsFaultProtectionPlan.setUpdateBy(getUsername());
+ return toAjax(emsFaultProtectionPlanService.updateEmsFaultProtectionPlan(emsFaultProtectionPlan));
+ }
+
+ /**
+ * 删除故障告警保护方案
+ */
+ @PreAuthorize("@ss.hasPermi('system:plan:remove')")
+ @Log(title = "故障告警保护方案", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(emsFaultProtectionPlanService.deleteEmsFaultProtectionPlanByIds(ids));
+ }
+}
diff --git a/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsGeneralQueryController.java b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsGeneralQueryController.java
new file mode 100644
index 0000000..107e835
--- /dev/null
+++ b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsGeneralQueryController.java
@@ -0,0 +1,78 @@
+package com.xzzn.web.controller.ems;
+
+import com.xzzn.common.core.controller.BaseController;
+import com.xzzn.common.core.domain.AjaxResult;
+import com.xzzn.common.enums.DeviceCategory;
+import com.xzzn.ems.domain.vo.*;
+import com.xzzn.ems.service.IGeneralQueryService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ *
+ * 综合查询
+ *
+ */
+@RestController
+@RequestMapping("/ems/generalQuery")
+public class EmsGeneralQueryController extends BaseController{
+
+ @Autowired
+ private IGeneralQueryService iGeneralQueryService;
+
+ /**
+ * 获取设备枚举
+ */
+ @GetMapping("/getAllDeviceCategory")
+ public AjaxResult getDeviceCategory()
+ {
+ // 获取所有枚举的信息
+ List