Compare commits

...

32 Commits

Author SHA1 Message Date
62e4608a7a Merge remote-tracking branch 'origin/dev' into dev 2025-06-30 21:15:23 +08:00
9fbc6dc6b8 修改 mqtt 密码 2025-06-30 21:15:20 +08:00
3d71b9caba 枚举 2025-06-30 20:33:57 +08:00
a6af1397e9 枚举 2025-06-30 20:01:55 +08:00
2a5ac78394 Merge remote-tracking branch 'origin/dev' into dev 2025-06-30 18:59:00 +08:00
f2e5e07857 紧急修改 siteid 2025-06-30 18:58:53 +08:00
fbab6ea631 电表逻辑修改 2025-06-30 18:14:24 +08:00
337599d1c6 增加工单配置文件 2025-06-30 13:39:51 +08:00
cebd845af1 sql优化 2025-06-30 13:11:05 +08:00
49a3ce2c11 增加mqtt账号密码 2025-06-30 09:46:31 +08:00
551ae90155 删除 lombok 2025-06-29 21:21:37 +08:00
d0b98a0a8a 奉贤数据单独控制 2025-06-29 16:20:13 +08:00
aaacafc0c3 Merge remote-tracking branch 'origin/dev' into dev 2025-06-29 15:41:29 +08:00
c6fc7c00cc 奉贤数据单独控制 2025-06-29 15:41:24 +08:00
ae59143771 单站监控-故障告警 2025-06-29 15:38:31 +08:00
1225559c36 pcs 支路 2025-06-29 15:19:01 +08:00
324beeaa69 优化 2025-06-29 14:45:20 +08:00
aed3f830f5 Merge remote-tracking branch 'origin/dev' into dev
# Conflicts:
#	ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryDataMapper.java
#	ems-system/src/main/resources/mapper/ems/EmsBatteryDataMapper.xml
2025-06-29 14:04:55 +08:00
747ce8a08d 数据分次提交改成一次性提交 2025-06-29 14:03:24 +08:00
d2824b6087 单站监控-单体电池列表分页 2025-06-29 13:40:37 +08:00
bb0f972f55 奉贤数据单独使用 job处理 2025-06-29 13:13:23 +08:00
d1aa8dbd2c 修改site_id & device_id 2025-06-29 10:55:05 +08:00
177e235c0e 修改 device id 2025-06-28 23:07:49 +08:00
1a56bd6526 修改 device id 2025-06-28 21:16:48 +08:00
38e93c9681 修改 device id 2025-06-28 21:11:23 +08:00
73f62c8fa5 单站监控-电表 2025-06-28 14:56:22 +08:00
365dd819b5 奉贤数据接入 2025-06-27 17:08:26 +08:00
31dc8e72c6 mqtt配置 2025-06-27 14:07:45 +08:00
da894c26d1 Merge remote-tracking branch 'origin/dev' into dev 2025-06-27 12:50:58 +08:00
f439228432 mqtt配置 2025-06-27 12:49:14 +08:00
3609b03deb 单体电池-框架 2025-06-27 10:14:15 +08:00
0544929d07 Merge pull request 'work init' (#1) from main into dev
Reviewed-on: #1
2025-06-26 08:22:37 +00:00
95 changed files with 6425 additions and 413 deletions

View File

@ -0,0 +1,37 @@
package com.xzzn.web.controller.ems;
import com.xzzn.common.core.controller.BaseController;
import com.xzzn.common.core.page.TableDataInfo;
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<AlarmRecordListResponseVo> list = iEmsAlarmRecordsService.getAlarmRecordDetailList(requestVo);
return getDataTable(list);
}
}

View File

@ -26,7 +26,7 @@ public class EmsSiteMapController extends BaseController{
* 获取某个站点基本信息 * 获取某个站点基本信息
*/ */
@GetMapping("/getSingleSiteBaseInfo") @GetMapping("/getSingleSiteBaseInfo")
public AjaxResult getSingleSiteBaseInfo(@RequestParam Long siteId) public AjaxResult getSingleSiteBaseInfo(@RequestParam String siteId)
{ {
return success(homePageService.getSingleSiteBaseInfo(siteId)); return success(homePageService.getSingleSiteBaseInfo(siteId));
} }

View File

@ -2,10 +2,15 @@ package com.xzzn.web.controller.ems;
import com.xzzn.common.core.controller.BaseController; import com.xzzn.common.core.controller.BaseController;
import com.xzzn.common.core.domain.AjaxResult; import com.xzzn.common.core.domain.AjaxResult;
import com.xzzn.common.core.page.TableDataInfo;
import com.xzzn.ems.domain.vo.BatteryDataStatsListVo;
import com.xzzn.ems.service.IEmsSiteService;
import com.xzzn.ems.service.ISingleSiteService; import com.xzzn.ems.service.ISingleSiteService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List;
/** /**
* *
* 单站监控 * 单站监控
@ -17,12 +22,14 @@ public class EmsSiteMonitorController extends BaseController{
@Autowired @Autowired
private ISingleSiteService iSingleSiteService; private ISingleSiteService iSingleSiteService;
@Autowired
private IEmsSiteService iEmsSiteService;
/** /**
* 获取单站首页数据 * 获取单站首页数据
*/ */
@GetMapping("/homeView") @GetMapping("/homeView")
public AjaxResult getSingleSiteViewInfo(@RequestParam Long siteId) public AjaxResult getSingleSiteViewInfo(@RequestParam String siteId)
{ {
return success(iSingleSiteService.getSiteMonitorDataVo(siteId)); return success(iSingleSiteService.getSiteMonitorDataVo(siteId));
} }
@ -31,7 +38,7 @@ public class EmsSiteMonitorController extends BaseController{
* 单站监控-设备监控-实时运行头部数据 * 单站监控-设备监控-实时运行头部数据
*/ */
@GetMapping("/runningHeadInfo") @GetMapping("/runningHeadInfo")
public AjaxResult getRunningHeadInfo(@RequestParam Long siteId) public AjaxResult getRunningHeadInfo(@RequestParam String siteId)
{ {
return success(iSingleSiteService.getSiteRunningHeadInfo(siteId)); return success(iSingleSiteService.getSiteRunningHeadInfo(siteId));
} }
@ -40,7 +47,7 @@ public class EmsSiteMonitorController extends BaseController{
* 单站监控-设备监控-实时运行曲线图数据 * 单站监控-设备监控-实时运行曲线图数据
*/ */
@GetMapping("/runningGraph") @GetMapping("/runningGraph")
public AjaxResult getRunningGraph(@RequestParam Long siteId) public AjaxResult getRunningGraph(@RequestParam String siteId)
{ {
return success(iSingleSiteService.getRunningGraph(siteId)); return success(iSingleSiteService.getRunningGraph(siteId));
} }
@ -49,7 +56,7 @@ public class EmsSiteMonitorController extends BaseController{
* 单站监控-设备监控-PCS * 单站监控-设备监控-PCS
*/ */
@GetMapping("/getPcsDetailInfo") @GetMapping("/getPcsDetailInfo")
public AjaxResult getPcsDetailInfo(@RequestParam Long siteId) public AjaxResult getPcsDetailInfo(@RequestParam String siteId)
{ {
return success(iSingleSiteService.getPcsDetailInfo(siteId)); return success(iSingleSiteService.getPcsDetailInfo(siteId));
} }
@ -58,7 +65,7 @@ public class EmsSiteMonitorController extends BaseController{
* 单站监控-设备监控-BMS总览 * 单站监控-设备监控-BMS总览
*/ */
@GetMapping("/getBMSOverView") @GetMapping("/getBMSOverView")
public AjaxResult getBMSOverView(@RequestParam Long siteId) public AjaxResult getBMSOverView(@RequestParam String siteId)
{ {
return success(iSingleSiteService.getBMSOverView(siteId)); return success(iSingleSiteService.getBMSOverView(siteId));
} }
@ -67,7 +74,7 @@ public class EmsSiteMonitorController extends BaseController{
* 单站监控-设备监控-BMS电池簇 * 单站监控-设备监控-BMS电池簇
*/ */
@GetMapping("/getBMSBatteryCluster") @GetMapping("/getBMSBatteryCluster")
public AjaxResult getBMSBatteryCluster(@RequestParam Long siteId) public AjaxResult getBMSBatteryCluster(@RequestParam String siteId)
{ {
return success(iSingleSiteService.getBMSBatteryCluster(siteId)); return success(iSingleSiteService.getBMSBatteryCluster(siteId));
} }
@ -76,26 +83,46 @@ public class EmsSiteMonitorController extends BaseController{
* 获取所有电池堆 * 获取所有电池堆
*/ */
@GetMapping("/getStackNameList") @GetMapping("/getStackNameList")
public AjaxResult getStackNameList(@RequestParam Long siteId) public AjaxResult getStackNameList(@RequestParam String siteId)
{ {
return success(iSingleSiteService.getBMSBatteryCluster(siteId)); return success(iEmsSiteService.getAllStackInfo(siteId));
} }
/** /**
* 获取所有电池簇 * 获取所有电池簇
*/ */
@GetMapping("/getClusterNameList") @GetMapping("/getClusterNameList")
public AjaxResult getClusterNameList(@RequestParam Long siteId) public AjaxResult getClusterNameList(@RequestParam String stackDeviceId)
{ {
return success(iSingleSiteService.getBMSBatteryCluster(siteId)); return success(iEmsSiteService.getAllClusterInfo(stackDeviceId));
} }
/** /**
* 液冷设备参数 * 液冷设备参数
*/ */
@GetMapping("/getCoolingDataList") @GetMapping("/getCoolingDataList")
public AjaxResult getCoolingDataList(@RequestParam Long siteId) public AjaxResult getCoolingDataList(@RequestParam String siteId)
{ {
return success(iSingleSiteService.getCoolingDataList(siteId)); return success(iSingleSiteService.getCoolingDataList(siteId));
} }
/**
* 获取电池簇下面的单体电池数据
*/
@GetMapping("/getClusterDataInfoList")
public TableDataInfo getClusterDataInfoList(@RequestParam String clusterDeviceId)
{
startPage();
List<BatteryDataStatsListVo> list = iSingleSiteService.getClusterDataInfoList(clusterDeviceId);
return getDataTable(list);
}
/**
* 电表数据
*/
@GetMapping("/getAmmeterDataList")
public AjaxResult getAmmeterDataList(@RequestParam String siteId)
{
return success(iSingleSiteService.getAmmeterDataList(siteId));
}
} }

View File

@ -0,0 +1,463 @@
package com.xzzn.web.controller.ems;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.TypeReference;
import com.xzzn.common.utils.DateUtils;
import com.xzzn.common.utils.StringUtils;
import com.xzzn.ems.domain.*;
import com.xzzn.ems.service.*;
import com.xzzn.framework.manager.MqttLifecycleManager;
import com.xzzn.framework.web.service.MqttPublisher;
import com.xzzn.framework.web.service.MqttSubscriber;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
import org.eclipse.paho.client.mqttv3.IMqttMessageListener;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import java.math.BigDecimal;
import java.util.*;
@Service
public class MqttMessageController implements MqttPublisher, MqttSubscriber {
private static final Log log = LogFactory.getLog(MqttMessageController.class);
private final MqttLifecycleManager mqttLifecycleManager;
@Autowired
private IEmsMqttMessageService emsMqttMessageService;
@Autowired
private IEmsBatteryDataService emsBatteryDataService;
@Autowired
private IEmsPcsDataService emsPcsDataService;
@Autowired
private IEmsPcsBranchDataService emsPcsBranchDataService;
@Autowired
private IEmsBatteryClusterService emsBatteryClusterService;
@Autowired
private IEmsBatteryStackService emsBatteryStackService;
@Autowired
public MqttMessageController(MqttLifecycleManager mqttLifecycleManager) {
this.mqttLifecycleManager = mqttLifecycleManager;
}
@PostConstruct
public void init() {
// 订阅系统状态主题
subscribe("021_FXX_01_UP", 1, this::handleDeviceData);
subscribe("021_FXX_01_RECALL", 1, this::handleDeviceData);
subscribe("021_FXX_01_DOWN", 1, this::handleDeviceData);
subscribe("021_FXX_01", 1, this::handleSystemStatus);
}
// 处理系统状态消息
private void handleSystemStatus(String topic, MqttMessage message) {
String payload = new String(message.getPayload());
System.out.println("[SYSTEM] Status update: " + payload);
try {
// 业务处理逻辑
EmsMqttMessage mqttMessage = new EmsMqttMessage();
mqttMessage.setMqttTopic(topic);
mqttMessage.setMqttMessage(payload);
mqttMessage.setCreateTime(new java.util.Date());
mqttMessage.setUpdateTime(new java.util.Date());
mqttMessage.setCreateBy("system");
mqttMessage.setUpdateBy("system");
emsMqttMessageService.insertEmsMqttMessage(mqttMessage);
} catch (Exception e) {
log.error("Failed to process system status message: " + e.getMessage(), e);
}
}
// 处理设备数据
private void handleDeviceData(String topic, MqttMessage message) {
String payload = new String(message.getPayload());
System.out.println("[DEVICE] data: " + payload);
try {
// 业务处理逻辑
handleFxData(payload);
EmsMqttMessage mqttMessage = new EmsMqttMessage();
mqttMessage.setMqttTopic(topic);
mqttMessage.setMqttMessage(payload);
mqttMessage.setCreateTime(new java.util.Date());
mqttMessage.setUpdateTime(new java.util.Date());
mqttMessage.setCreateBy("system");
mqttMessage.setUpdateBy("system");
emsMqttMessageService.insertEmsMqttMessage(mqttMessage);
} catch (Exception e) {
log.error("Failed to process system status message: " + e.getMessage(), e);
}
}
@Override
public void publish(String topic, String message) throws MqttException {
mqttLifecycleManager.publish(topic, message, 0);
}
@Override
public void publish(String topic, String message, int qos) throws MqttException {
mqttLifecycleManager.publish(topic, message, qos);
}
@Override
public void subscribe(String topic, int qos, IMqttMessageListener listener) {
mqttLifecycleManager.subscribe(topic, qos, listener);
}
// 发送设备控制命令
public void sendDeviceCommand(String deviceId, String command) {
try {
String topic = "devices/" + deviceId + "/commands";
publish(topic, command, 1);
} catch (MqttException e) {
System.err.println("Failed to send command to device " + deviceId);
}
}
private void handleFxData(String message) {
JSONArray arraylist = JSONArray.parseArray(message);
for (int i = 0; i < arraylist.size(); i++) {
JSONObject obj = JSONObject.parseObject(arraylist.get(i).toString());
String deviceId = obj.get("Device").toString();
String jsonData = obj.get("Data").toString();
log.info("deviceId:" + deviceId);
if (deviceId.contains("BMS")) {
log.info("====================");
log.info("BMS data:"+ jsonData);
//BMS 电池簇
EmsBatteryCluster data = new EmsBatteryCluster();
// 设置所有 BigDecimal 类型字段为 ZERO
data.setChargeableCapacity(BigDecimal.ZERO);
data.setTotalChargedCapacity(BigDecimal.ZERO);
data.setDischargeableCapacity(BigDecimal.ZERO);
data.setTotalDischargedCapacity(BigDecimal.ZERO);
data.setSoh(BigDecimal.ZERO);
data.setAverageTemperature(BigDecimal.ZERO);
data.setInsulationResistance(BigDecimal.ZERO);
data.setCurrentSoc(BigDecimal.ZERO);
data.setMaxAllowedChargePower(BigDecimal.ZERO);
data.setMaxAllowedDischargePower(BigDecimal.ZERO);
data.setMaxAllowedChargeVoltage(BigDecimal.ZERO);
data.setMaxAllowedDischargeVoltage(BigDecimal.ZERO);
data.setMaxAllowedChargeCurrent(BigDecimal.ZERO);
data.setMaxAllowedDischargeCurrent(BigDecimal.ZERO);
data.setBatteryPackVoltage(BigDecimal.ZERO);
data.setBatteryPackCurrent(BigDecimal.ZERO);
data.setBatteryPackTemp(BigDecimal.ZERO);
data.setBatteryPackSoc(BigDecimal.ZERO);
data.setBatteryPackSoh(BigDecimal.ZERO);
data.setBatteryPackInsulationResistance(BigDecimal.ZERO);
data.setAvgCellVoltage(BigDecimal.ZERO);
data.setAvgCellTemp(BigDecimal.ZERO);
data.setMaxCellVoltage(BigDecimal.ZERO);
data.setMinCellVoltage(BigDecimal.ZERO);
data.setMaxCellTemp(BigDecimal.ZERO);
data.setMinCellTemp(BigDecimal.ZERO);
data.setMaxCellSoc(BigDecimal.ZERO);
data.setMinCellSoc(BigDecimal.ZERO);
data.setMaxCellSoh(BigDecimal.ZERO);
data.setMinCellSoh(BigDecimal.ZERO);
data.setTotalChargeEnergy(BigDecimal.ZERO);
data.setTotalDischargeEnergy(BigDecimal.ZERO);
// 其他非 BigDecimal 字段
data.setWorkStatus("1"); // 或其他默认值
data.setPcsCommunicationStatus("1");
data.setEmsCommunicationStatus("1");
data.setCreateBy("system");
data.setCreateTime(DateUtils.getNowDate());
data.setUpdateBy("system");
data.setUpdateTime(DateUtils.getNowDate());
data.setSiteId("021_FXX_01");
data.setDeviceId(deviceId);
data.setMaxCellVoltageId(Long.parseLong("1"));
data.setMinCellVoltageId(Long.parseLong("1"));
data.setMaxCellTempId(Long.parseLong("1"));
data.setMinCellTempId(Long.parseLong("1"));
data.setMaxCellSocId(Long.parseLong("1"));
data.setMinCellSocId(Long.parseLong("1"));
data.setMaxCellSohId(Long.parseLong("1"));
data.setMinCellSohId(Long.parseLong("1"));
data.setStackDeviceId("1");
emsBatteryClusterService.insertEmsBatteryCluster(data);
//电池堆
//BMS 电池簇
EmsBatteryStack dataStack = new EmsBatteryStack();
// 设置所有 BigDecimal 类型字段为 ZERO
dataStack.setChargeableCapacity(BigDecimal.ZERO);
dataStack.setTotalChargedCapacity(BigDecimal.ZERO);
dataStack.setDischargeableCapacity(BigDecimal.ZERO);
dataStack.setTotalDischargedCapacity(BigDecimal.ZERO);
dataStack.setSoh(BigDecimal.ZERO);
dataStack.setAverageTemperature(BigDecimal.ZERO);
dataStack.setInsulationResistance(BigDecimal.ZERO);
dataStack.setCurrentSoc(BigDecimal.ZERO);
dataStack.setMaxAllowedChargePower(BigDecimal.ZERO);
dataStack.setMaxAllowedDischargePower(BigDecimal.ZERO);
dataStack.setMaxAllowedChargeVoltage(BigDecimal.ZERO);
dataStack.setMaxAllowedDischargeVoltage(BigDecimal.ZERO);
dataStack.setMaxAllowedChargeCurrent(BigDecimal.ZERO);
dataStack.setMaxAllowedDischargeCurrent(BigDecimal.ZERO);
dataStack.setBatteryPackVoltage(BigDecimal.ZERO);
dataStack.setBatteryPackCurrent(BigDecimal.ZERO);
dataStack.setBatteryPackTemp(BigDecimal.ZERO);
dataStack.setBatteryPackSoc(BigDecimal.ZERO);
dataStack.setBatteryPackSoh(BigDecimal.ZERO);
dataStack.setBatteryPackInsulationResistance(BigDecimal.ZERO);
dataStack.setAvgCellVoltage(BigDecimal.ZERO);
dataStack.setAvgCellTemp(BigDecimal.ZERO);
dataStack.setMaxCellVoltage(BigDecimal.ZERO);
dataStack.setMinCellVoltage(BigDecimal.ZERO);
dataStack.setMaxCellTemp(BigDecimal.ZERO);
dataStack.setMinCellTemp(BigDecimal.ZERO);
dataStack.setMaxCellSoc(BigDecimal.ZERO);
dataStack.setMinCellSoc(BigDecimal.ZERO);
dataStack.setMaxCellSoh(BigDecimal.ZERO);
dataStack.setMinCellSoh(BigDecimal.ZERO);
dataStack.setTotalChargeEnergy(BigDecimal.ZERO);
dataStack.setTotalDischargeEnergy(BigDecimal.ZERO);
// 其他非 BigDecimal 字段
dataStack.setWorkStatus("1"); // 或其他默认值
dataStack.setPcsCommunicationStatus("1");
dataStack.setEmsCommunicationStatus("1");
dataStack.setCreateBy("system");
dataStack.setCreateTime(DateUtils.getNowDate());
dataStack.setUpdateBy("system");
dataStack.setUpdateTime(DateUtils.getNowDate());
dataStack.setSiteId("021_FXX_01");
dataStack.setDeviceId(deviceId);
dataStack.setMaxCellVoltageId(Long.parseLong("1"));
dataStack.setMinCellVoltageId(Long.parseLong("1"));
dataStack.setMaxCellTempId(Long.parseLong("1"));
dataStack.setMinCellTempId(Long.parseLong("1"));
dataStack.setMaxCellSocId(Long.parseLong("1"));
dataStack.setMinCellSocId(Long.parseLong("1"));
dataStack.setMaxCellSohId(Long.parseLong("1"));
dataStack.setMinCellSohId(Long.parseLong("1"));
emsBatteryStackService.insertEmsBatteryStack(dataStack);
//单体电池
Map<String, Map<String, Object>> records = processData(JSON.parseObject(jsonData, new TypeReference<Map<String, Object>>() {}));
List<EmsBatteryData> list = new ArrayList<>();
//单体电池
for (Map.Entry<String, Map<String, Object>> record : records.entrySet()) {
String recordId = record.getKey();
Map<String, Object> fields = record.getValue();
EmsBatteryData batteryData = new EmsBatteryData();
batteryData.setDeviceId(recordId);
batteryData.setBatteryCellId(recordId);
batteryData.setSoc(StringUtils.getBigDecimal(fields.get("DTSOC")));
batteryData.setSoh(StringUtils.getBigDecimal(fields.get("DTSOH")));
batteryData.setTemperature(StringUtils.getBigDecimal(fields.get("DTWD")));
batteryData.setVoltage(StringUtils.getBigDecimal(fields.get("DTDY")));
batteryData.setBatteryCluster(deviceId);
batteryData.setBatteryPack(deviceId);
// 时间戳
batteryData.setDataTimestamp(new Date());
// ID字段
batteryData.setSiteId(("021_FXX_01"));
batteryData.setClusterDeviceId(("021"));
list.add(batteryData);
}
if (list.size() > 0 ) {
emsBatteryDataService.insertEmsBatteryDataList(list);
}
} else if (deviceId.contains("PCS")) {
log.info("====================");
log.info("PCS data:"+ jsonData);
//pcs
EmsPcsData pcsData = new EmsPcsData();
// 时间与状态类字段
pcsData.setDataUpdateTime(new Date());
pcsData.setWorkStatus("A");
pcsData.setGridStatus("B");
pcsData.setDeviceStatus("C");
pcsData.setControlMode("D");
// 功率与能量类字段
pcsData.setTotalActivePower(BigDecimal.ZERO);
pcsData.setDailyAcChargeEnergy(BigDecimal.ZERO);
pcsData.setTotalReactivePower(BigDecimal.ZERO);
pcsData.setDailyAcDischargeEnergy(BigDecimal.ZERO);
pcsData.setTotalApparentPower(BigDecimal.ZERO);
pcsData.setTotalPowerFactor(BigDecimal.ZERO);
pcsData.setDcPower(BigDecimal.ZERO);
pcsData.setTotalAcChargeEnergy(BigDecimal.ZERO);
pcsData.setTotalAcDischargeEnergy(BigDecimal.ZERO);
pcsData.setAcChargeActivePower(BigDecimal.ZERO);
pcsData.setAcCapacitiveReactivePower(BigDecimal.ZERO);
pcsData.setAcDischargeActivePower(BigDecimal.ZERO);
pcsData.setAcInductiveReactivePower(BigDecimal.ZERO);
pcsData.setMaxCapacitivePowerCapacity(BigDecimal.ZERO);
pcsData.setMaxInductivePowerCapacity(BigDecimal.ZERO);
pcsData.setMaxChargePowerCapacity(BigDecimal.ZERO);
pcsData.setMaxDischargePowerCapacity(BigDecimal.ZERO);
// 温度与环境参数
pcsData.setPcsModuleTemperature(BigDecimal.ZERO);
pcsData.setPcsEnvironmentTemperature(BigDecimal.ZERO);
pcsData.setAcFrequency(BigDecimal.ZERO);
// 状态指示类
pcsData.setBranchStatus("A");
pcsData.setDischargeStatus("A");
pcsData.setAcSwitchStatus("A");
pcsData.setDcSwitchStatus("A");
pcsData.setRemoteControlStatus("A");
// 直流参数
pcsData.setDcVoltage(BigDecimal.ZERO);
pcsData.setDcCurrent(BigDecimal.ZERO);
// 系统管理字段
// data.setCreateBy(BigDecimal.ZERO);
// data.setCreateTime(BigDecimal.ZERO);
// data.setUpdateBy(BigDecimal.ZERO);
// data.setUpdateTime(BigDecimal.ZERO);
// data.setRemark(BigDecimal.ZERO);
pcsData.setSiteId("021_FXX_01");
pcsData.setDeviceId(deviceId);
pcsData.setDateMonth(DateUtils.getNowMonthLong());
pcsData.setDateDay(DateUtils.getNowDayLong());
pcsData.setDeviceId(deviceId);
emsPcsDataService.insertEmsPcsData(pcsData);
Map<String, Map<String, Object>> records = processDataPrefix(JSON.parseObject(jsonData, new TypeReference<Map<String, Object>>() {}));
List<EmsPcsBranchData> list = new ArrayList<>();
//PCS支路
for (Map.Entry<String, Map<String, Object>> record : records.entrySet()) {
String recordId = record.getKey();
Map<String, Object> fields = record.getValue();
EmsPcsBranchData data = new EmsPcsBranchData();
data.setDeviceId(recordId);
data.setDcPower(BigDecimal.ZERO);
data.setDcVoltage(BigDecimal.ZERO);
data.setDcCurrent(BigDecimal.ZERO);
data.setGridUVoltage(BigDecimal.ZERO);
data.setGridVVoltage(BigDecimal.ZERO);
data.setGridWVoltage(BigDecimal.ZERO);
data.setOutputUCurrent(BigDecimal.ZERO);
data.setOutputVCurrent(BigDecimal.ZERO);
data.setOutputWCurrent(BigDecimal.ZERO);
data.setApparentPower(BigDecimal.ZERO);
data.setActivePower(BigDecimal.ZERO);
data.setReactivePower(BigDecimal.ZERO);
data.setPowerFactor(BigDecimal.ZERO);
data.setFrequency(BigDecimal.ZERO);
data.setInternalTemp(BigDecimal.ZERO);
data.setuIgbtTemp(BigDecimal.ZERO);
data.setvIgbtTemp(BigDecimal.ZERO);
data.setwIgbtTemp(BigDecimal.ZERO);
data.setAvailablePower(BigDecimal.ZERO);
data.setTotalLoadRatio(BigDecimal.ZERO);
data.setAcLeakageCurrent(BigDecimal.ZERO);
data.setInsulationResistance(BigDecimal.ZERO);
data.setBranchId(Long.parseLong("1"));
list.add(data);
}
if (list.size() > 0 ) {
emsPcsBranchDataService.insertEmsPcsBranchDataList(list);
}
}
}
}
// 数据分组处理
private static Map<String, Map<String, Object>> processData(Map<String, Object> rawData) {
Map<String, Map<String, Object>> records = new HashMap<>();
for (Map.Entry<String, Object> entry : rawData.entrySet()) {
String key = entry.getKey();
// 提取记录ID最后3位
String recordId = key.substring(key.length() - 3);
try {
Long.parseLong(recordId);
} catch (Exception e) {
continue;
}
// 提取字段类型(前缀)
String fieldType = key.substring(0, key.length() - 3);
// 初始化记录
records.putIfAbsent(recordId, new HashMap<>());
// 存入字段值
records.get(recordId).put(fieldType, entry.getValue());
}
return records;
}
private static Map<String, Map<String, Object>> processDataPrefix(Map<String, Object> rawData) {
Map<String, Map<String, Object>> records = new HashMap<>();
for (Map.Entry<String, Object> entry : rawData.entrySet()) {
String key = entry.getKey();
// 确保键长度足够
if (key.length() < 3) {
continue;
}
// 提取记录ID前3位
String recordId = key.substring(0, 3);
if (!recordId.startsWith("DY")) {
continue;
}
// 提取字段类型(剩余部分)
String fieldType = key.substring(3);
// 初始化记录
records.putIfAbsent(recordId, new HashMap<>());
// 存入字段值
records.get(recordId).put(fieldType, entry.getValue());
}
return records;
}
}

View File

@ -0,0 +1,29 @@
package com.xzzn.web.controller.ems.data;
public class FXDataProcess {
public void batteryClusterProcess(String data) {
}
public void batteryStackProcess(String data) {
}
public void batteryDataProcess(String data) {
}
public void pcsProcess(String data) {
}
public void pcsBranchProcess(String data) {
}
public void coolingProcess(String data) {
}
public void ameterProcess(String data) {
}
}

View File

@ -127,3 +127,12 @@ xss:
excludes: /system/notice excludes: /system/notice
# 匹配链接 # 匹配链接
urlPatterns: /system/*,/monitor/*,/tool/* urlPatterns: /system/*,/monitor/*,/tool/*
mqtt:
broker.url: tcp://122.51.194.184:1883
client.id: ems-cloud
username: dmbroker
password: qwer1234
connection-timeout: 15
keep-alive-interval: 30
automatic-reconnect: true

View File

@ -0,0 +1,30 @@
package com.xzzn.common.enums;
/**
* alarm-告警等级
*
* @author xzzn
*/
public enum AlarmLevelStatus
{
WARNING("A", "提示"), GENERAL("B", "一般"), SERIOUS("C", "严重"), EMERGENCY("D", "紧急");
private final String code;
private final String info;
AlarmLevelStatus(String code, String info)
{
this.code = code;
this.info = info;
}
public String getCode()
{
return code;
}
public String getInfo()
{
return info;
}
}

View File

@ -0,0 +1,30 @@
package com.xzzn.common.enums;
/**
* alarm-告警状态
*
* @author xzzn
*/
public enum AlarmStatus
{
WAITING("0", "待处理"), DONE("1", "已处理"),PROCESSING("2", "处理中");
private final String code;
private final String info;
AlarmStatus(String code, String info)
{
this.code = code;
this.info = info;
}
public String getCode()
{
return code;
}
public String getInfo()
{
return info;
}
}

View File

@ -0,0 +1,30 @@
package com.xzzn.common.enums;
/**
* ammeter-电表数据类别
*
* @author xzzn
*/
public enum AmmeterCategoryStatus
{
TOTAL_CHARGE("1", "累计充电量"), TOTAL_DISCHARGE("2", "累计放电量"), DAILY_CHARGE("3", "日充电量"), DAILY_DISCHARGE("4", "日放电量");
private final String code;
private final String info;
AmmeterCategoryStatus(String code, String info)
{
this.code = code;
this.info = info;
}
public String getCode()
{
return code;
}
public String getInfo()
{
return info;
}
}

View File

@ -0,0 +1,30 @@
package com.xzzn.common.enums;
/**
* pcs-branch-支路状态
*
* @author xzzn
*/
public enum BranchStatus
{
STANDBY("0", "备用"), NORMAL("1", "正常"), SWITCHING("2", "切换中");
private final String code;
private final String info;
BranchStatus(String code, String info)
{
this.code = code;
this.info = info;
}
public String getCode()
{
return code;
}
public String getInfo()
{
return info;
}
}

View File

@ -0,0 +1,30 @@
package com.xzzn.common.enums;
/**
* 充电状态&放电状态
*
* @author xzzn
*/
public enum ChargeStatus
{
CHARGING("1", "充电"), STANDBY("2", "待机"), DISCHARGING("3", "放电");
private final String code;
private final String info;
ChargeStatus(String code, String info)
{
this.code = code;
this.info = info;
}
public String getCode()
{
return code;
}
public String getInfo()
{
return info;
}
}

View File

@ -0,0 +1,30 @@
package com.xzzn.common.enums;
/**
* device-通信状态
*
* @author xzzn
*/
public enum CommunicationStatus
{
OK("0", "正常"), SUSPEND("1", "通信中断") ,EXCEPTION("1", "异常");
private final String code;
private final String info;
CommunicationStatus(String code, String info)
{
this.code = code;
this.info = info;
}
public String getCode()
{
return code;
}
public String getInfo()
{
return info;
}
}

View File

@ -0,0 +1,30 @@
package com.xzzn.common.enums;
/**
* pcs-控制模式
*
* @author xzzn
*/
public enum ControlModeStatus
{
REMOTE("0", "远程"), LOCAL("1", "本地");
private final String code;
private final String info;
ControlModeStatus(String code, String info)
{
this.code = code;
this.info = info;
}
public String getCode()
{
return code;
}
public String getInfo()
{
return info;
}
}

View File

@ -0,0 +1,30 @@
package com.xzzn.common.enums;
/**
* pcs-设备状态
*
* @author xzzn
*/
public enum DeviceStatus
{
ONLINE("0", "在线"), OFFLINE("1", "离线"), UNDER_REPAIR("2", "维修中");
private final String code;
private final String info;
DeviceStatus(String code, String info)
{
this.code = code;
this.info = info;
}
public String getCode()
{
return code;
}
public String getInfo()
{
return info;
}
}

View File

@ -0,0 +1,20 @@
package com.xzzn.common.enums;
/**
* device-设备类型
*
* @author xzzn
*/
public enum DeviceType
{
/**
* 网络设备
*/
TCP,
/**
* 串口设备
*/
RTU
}

View File

@ -0,0 +1,30 @@
package com.xzzn.common.enums;
/**
* pcs-并网状态
*
* @author xzzn
*/
public enum GridStatus
{
GRID("0", "并网"), NOTGRID("1", "未并网");
private final String code;
private final String info;
GridStatus(String code, String info)
{
this.code = code;
this.info = info;
}
public String getCode()
{
return code;
}
public String getInfo()
{
return info;
}
}

View File

@ -0,0 +1,30 @@
package com.xzzn.common.enums;
/**
* strategy-策略状态
*
* @author xzzn
*/
public enum StrategyStatus
{
NOT_ENABLED("0", "未启用"), RUNNING("1", "已运行"),SUSPENDED("2", "已暂停"), DISABLE("1", "禁用"),DELETE("2", "删除");
private final String code;
private final String info;
StrategyStatus(String code, String info)
{
this.code = code;
this.info = info;
}
public String getCode()
{
return code;
}
public String getInfo()
{
return info;
}
}

View File

@ -0,0 +1,30 @@
package com.xzzn.common.enums;
/**
* pcs-开关状态
*
* @author xzzn
*/
public enum SwitchStatus
{
CLOSED("0", "闭合"), DISCONNECT("1", "断开"), FAULT_DISCONNECT("2", "故障断开");
private final String code;
private final String info;
SwitchStatus(String code, String info)
{
this.code = code;
this.info = info;
}
public String getCode()
{
return code;
}
public String getInfo()
{
return info;
}
}

View File

@ -0,0 +1,30 @@
package com.xzzn.common.enums;
/**
* pcs-工作状态
*
* @author xzzn
*/
public enum WorkStatus
{
NORMAL("0", "正常"), ABNORMAL("1", "异常"), STOP("2", "停止");
private final String code;
private final String info;
WorkStatus(String code, String info)
{
this.code = code;
this.info = info;
}
public String getCode()
{
return code;
}
public String getInfo()
{
return info;
}
}

View File

@ -8,6 +8,7 @@ import java.time.LocalDateTime;
import java.time.LocalTime; import java.time.LocalTime;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.util.Calendar;
import java.util.Date; import java.util.Date;
import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.lang3.time.DateFormatUtils;
@ -188,4 +189,15 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault()); ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
return Date.from(zdt.toInstant()); return Date.from(zdt.toInstant());
} }
public static Long getNowMonthLong() {
Calendar calendar = Calendar.getInstance();
long month = (long) calendar.get(Calendar.MONTH) + 1; // 月份从0开始所以要加1
return month;
}
public static Long getNowDayLong() {
Calendar calendar = Calendar.getInstance();
long date = calendar.get(Calendar.DAY_OF_MONTH); // 月份从0开始所以要加1
return date;
}
} }

View File

@ -1,5 +1,6 @@
package com.xzzn.common.utils; package com.xzzn.common.utils;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.HashSet; import java.util.HashSet;
@ -719,4 +720,15 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
} }
return sb.toString(); return sb.toString();
} }
public static BigDecimal getBigDecimal(Object s){
try {
return new BigDecimal(s.toString());
} catch (NumberFormatException e) {
return BigDecimal.ZERO;
}
}
} }

View File

@ -46,7 +46,10 @@
</exclusion> </exclusion>
</exclusions> </exclusions>
</dependency> </dependency>
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
</dependency>
<!-- 获取系统信息 --> <!-- 获取系统信息 -->
<dependency> <dependency>
<groupId>com.github.oshi</groupId> <groupId>com.github.oshi</groupId>

View File

@ -0,0 +1,31 @@
package com.xzzn.framework.config;
import com.xzzn.framework.config.properties.MqttProperties;
import org.eclipse.paho.client.mqttv3.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.annotation.Resource;
@Configuration
public class MqttConfig {
private static final Logger logger = LoggerFactory.getLogger(MqttConfig.class);
@Resource
private MqttProperties mqttProperties;
@Bean
public MqttConnectOptions mqttConnectOptions() {
MqttConnectOptions options = new MqttConnectOptions();
options.setServerURIs(new String[]{mqttProperties.getBrokerUrl()});
if (!mqttProperties.getUsername().isEmpty()) options.setUserName(mqttProperties.getUsername());
if (!mqttProperties.getPassword().isEmpty()) options.setPassword(mqttProperties.getPassword().toCharArray());
options.setConnectionTimeout(mqttProperties.getConnectionTimeout());
options.setKeepAliveInterval(mqttProperties.getKeepAliveInterval());
options.setAutomaticReconnect(mqttProperties.isAutomaticReconnect());
options.setCleanSession(true);
return options;
}
}

View File

@ -0,0 +1,84 @@
package com.xzzn.framework.config.properties;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MqttProperties {
@Value("${mqtt.broker.url}")
private String brokerUrl;
@Value("${mqtt.client.id:}")
private String clientId;
@Value("${mqtt.username:}")
private String username;
@Value("${mqtt.password:}")
private String password;
@Value("${mqtt.connection-timeout:10}")
private int connectionTimeout;
@Value("${mqtt.keep-alive-interval:60}")
private int keepAliveInterval;
@Value("${mqtt.automatic-reconnect:true}")
private boolean automaticReconnect;
public String getBrokerUrl() {
return brokerUrl;
}
public void setBrokerUrl(String brokerUrl) {
this.brokerUrl = brokerUrl;
}
public String getClientId() {
return clientId;
}
public void setClientId(String clientId) {
this.clientId = clientId;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getConnectionTimeout() {
return connectionTimeout;
}
public void setConnectionTimeout(int connectionTimeout) {
this.connectionTimeout = connectionTimeout;
}
public int getKeepAliveInterval() {
return keepAliveInterval;
}
public void setKeepAliveInterval(int keepAliveInterval) {
this.keepAliveInterval = keepAliveInterval;
}
public boolean isAutomaticReconnect() {
return automaticReconnect;
}
public void setAutomaticReconnect(boolean automaticReconnect) {
this.automaticReconnect = automaticReconnect;
}
}

View File

@ -0,0 +1,155 @@
package com.xzzn.framework.manager;
import org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.context.SmartLifecycle;
import org.springframework.stereotype.Component;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
@Component
public class MqttLifecycleManager implements ApplicationRunner, SmartLifecycle, MqttCallback {
private final MqttConnectOptions connectOptions;
private MqttClient mqttClient;
private volatile boolean running = false;
// 存储订阅关系: topic -> (listener, qos)
private final ConcurrentHashMap<String, SubscriptionInfo> subscriptions = new ConcurrentHashMap<>();
@Autowired
public MqttLifecycleManager(MqttConnectOptions connectOptions) {
this.connectOptions = connectOptions;
}
// Spring Boot 启动完成后执行
@Override
public void run(ApplicationArguments args) throws Exception {
start();
}
@Override
public void start() {
if (running) return;
try {
String clientId = connectOptions.getUserName() + "-" + System.currentTimeMillis();
mqttClient = new MqttClient(
connectOptions.getServerURIs()[0],
clientId,
new MemoryPersistence()
);
mqttClient.setCallback(this);
mqttClient.connect(connectOptions);
// 重连后自动重新订阅
resubscribeAll();
running = true;
System.out.println("MQTT client connected to: " + connectOptions.getServerURIs()[0]);
} catch (MqttException e) {
System.err.println("MQTT connection failed: " + e.getMessage());
// 添加重试逻辑
}
}
@Override
public void stop() {
if (mqttClient != null && mqttClient.isConnected()) {
try {
mqttClient.disconnect();
mqttClient.close();
} catch (MqttException e) {
System.err.println("Error disconnecting MQTT client: " + e.getMessage());
}
}
running = false;
}
@Override
public boolean isRunning() {
return running;
}
// MQTT 回调方法
@Override
public void connectionLost(Throwable cause) {
System.err.println("MQTT connection lost: " + cause.getMessage());
running = false;
// 自动重连由 MqttConnectOptions 处理
}
@Override
public void messageArrived(String topic, MqttMessage message) throws Exception {
SubscriptionInfo info = subscriptions.get(topic);
if (info != null && info.getListener() != null) {
info.getListener().messageArrived(topic, message);
}
}
@Override
public void deliveryComplete(IMqttDeliveryToken token) {
// 消息发布完成处理
}
// 订阅方法
public void subscribe(String topic, int qos, IMqttMessageListener listener) {
try {
if (mqttClient != null && mqttClient.isConnected()) {
mqttClient.subscribe(topic, qos);
}
subscriptions.put(topic, new SubscriptionInfo(listener, qos));
} catch (MqttException e) {
System.err.println("Subscribe failed: " + e.getMessage());
}
}
// 发布方法
public void publish(String topic, String payload, int qos) throws MqttException {
if (mqttClient != null && mqttClient.isConnected()) {
MqttMessage message = new MqttMessage(payload.getBytes());
message.setQos(qos);
mqttClient.publish(topic, message);
} else {
throw new MqttException(MqttException.REASON_CODE_CLIENT_NOT_CONNECTED);
}
}
// 重新订阅所有主题
private void resubscribeAll() {
if (mqttClient == null || !mqttClient.isConnected()) return;
subscriptions.forEach((topic, info) -> {
try {
mqttClient.subscribe(topic, info.getQos());
} catch (MqttException e) {
System.err.println("Resubscribe failed for topic: " + topic);
}
});
}
// 订阅信息内部类
private static class SubscriptionInfo {
private final IMqttMessageListener listener;
private final int qos;
public SubscriptionInfo(IMqttMessageListener listener, int qos) {
this.listener = listener;
this.qos = qos;
}
public IMqttMessageListener getListener() {
return listener;
}
public int getQos() {
return qos;
}
}
}

View File

@ -0,0 +1,8 @@
package com.xzzn.framework.web.service;
import org.eclipse.paho.client.mqttv3.MqttException;
public interface MqttPublisher {
void publish(String topic, String message) throws MqttException;
void publish(String topic, String message, int qos) throws MqttException;
}

View File

@ -0,0 +1,7 @@
package com.xzzn.framework.web.service;
import org.eclipse.paho.client.mqttv3.IMqttMessageListener;
public interface MqttSubscriber {
void subscribe(String topic, int qos, IMqttMessageListener listener);
}

View File

@ -11,7 +11,7 @@ import com.xzzn.common.annotation.Excel;
* 告警记录对象 ems_alarm_records * 告警记录对象 ems_alarm_records
* *
* @author xzzn * @author xzzn
* @date 2025-06-17 * @date 2025-06-29
*/ */
public class EmsAlarmRecords extends BaseEntity public class EmsAlarmRecords extends BaseEntity
{ {
@ -48,11 +48,11 @@ public class EmsAlarmRecords extends BaseEntity
/** 站点id */ /** 站点id */
@Excel(name = "站点id") @Excel(name = "站点id")
private Long siteId; private String siteId;
/** 设备唯一标识符 */ /** 设备唯一标识符 */
@Excel(name = "设备唯一标识符") @Excel(name = "设备唯一标识符")
private Long deviceId; private String deviceId;
/** 设备名称,用于标识设备 */ /** 设备名称,用于标识设备 */
@Excel(name = "设备名称,用于标识设备") @Excel(name = "设备名称,用于标识设备")
@ -128,22 +128,22 @@ public class EmsAlarmRecords extends BaseEntity
return status; return status;
} }
public void setSiteId(Long siteId) public void setSiteId(String siteId)
{ {
this.siteId = siteId; this.siteId = siteId;
} }
public Long getSiteId() public String getSiteId()
{ {
return siteId; return siteId;
} }
public void setDeviceId(Long deviceId) public void setDeviceId(String deviceId)
{ {
this.deviceId = deviceId; this.deviceId = deviceId;
} }
public Long getDeviceId() public String getDeviceId()
{ {
return deviceId; return deviceId;
} }

View File

@ -0,0 +1,181 @@
package com.xzzn.ems.domain;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xzzn.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.xzzn.common.annotation.Excel;
/**
* 总数据对象 ems_ammeter_data
*
* @author xzzn
* @date 2025-06-29
*/
public class EmsAmmeterData extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** */
private Long id;
/** 数据更新时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "数据更新时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date dataUpdateTime;
/** 类别 */
@Excel(name = "类别")
private String category;
/** 总 (kWh) */
@Excel(name = "总 (kWh)")
private BigDecimal totalKwh;
/** 尖 (kWh) */
@Excel(name = "尖 (kWh)")
private BigDecimal sharpKwh;
/** 峰 (kWh) */
@Excel(name = "峰 (kWh)")
private BigDecimal peakKwh;
/** 平 (kWh) */
@Excel(name = "平 (kWh)")
private BigDecimal flatKwh;
/** 谷 (kWh) */
@Excel(name = "谷 (kWh)")
private BigDecimal valleyKwh;
/** 站点id */
@Excel(name = "站点id")
private String siteId;
/** 设备唯一标识符 */
@Excel(name = "设备唯一标识符")
private String deviceId;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setDataUpdateTime(Date dataUpdateTime)
{
this.dataUpdateTime = dataUpdateTime;
}
public Date getDataUpdateTime()
{
return dataUpdateTime;
}
public void setCategory(String category)
{
this.category = category;
}
public String getCategory()
{
return category;
}
public void setTotalKwh(BigDecimal totalKwh)
{
this.totalKwh = totalKwh;
}
public BigDecimal getTotalKwh()
{
return totalKwh;
}
public void setSharpKwh(BigDecimal sharpKwh)
{
this.sharpKwh = sharpKwh;
}
public BigDecimal getSharpKwh()
{
return sharpKwh;
}
public void setPeakKwh(BigDecimal peakKwh)
{
this.peakKwh = peakKwh;
}
public BigDecimal getPeakKwh()
{
return peakKwh;
}
public void setFlatKwh(BigDecimal flatKwh)
{
this.flatKwh = flatKwh;
}
public BigDecimal getFlatKwh()
{
return flatKwh;
}
public void setValleyKwh(BigDecimal valleyKwh)
{
this.valleyKwh = valleyKwh;
}
public BigDecimal getValleyKwh()
{
return valleyKwh;
}
public void setSiteId(String siteId)
{
this.siteId = siteId;
}
public String getSiteId()
{
return siteId;
}
public void setDeviceId(String deviceId)
{
this.deviceId = deviceId;
}
public String getDeviceId()
{
return deviceId;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("dataUpdateTime", getDataUpdateTime())
.append("category", getCategory())
.append("totalKwh", getTotalKwh())
.append("sharpKwh", getSharpKwh())
.append("peakKwh", getPeakKwh())
.append("flatKwh", getFlatKwh())
.append("valleyKwh", getValleyKwh())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.append("siteId", getSiteId())
.append("deviceId", getDeviceId())
.toString();
}
}

View File

@ -11,7 +11,7 @@ import com.xzzn.common.annotation.Excel;
* 电池簇数据对象 ems_battery_cluster * 电池簇数据对象 ems_battery_cluster
* *
* @author xzzn * @author xzzn
* @date 2025-06-22 * @date 2025-06-29
*/ */
public class EmsBatteryCluster extends BaseEntity public class EmsBatteryCluster extends BaseEntity
{ {
@ -74,11 +74,143 @@ public class EmsBatteryCluster extends BaseEntity
/** 站点id */ /** 站点id */
@Excel(name = "站点id") @Excel(name = "站点id")
private Long siteId; private String siteId;
/** 设备唯一标识符 */ /** 设备唯一标识符 */
@Excel(name = "设备唯一标识符") @Excel(name = "设备唯一标识符")
private Long deviceId; private String deviceId;
/** 堆设备id */
@Excel(name = "堆设备id")
private String stackDeviceId;
/** 允许充电最大功率 */
@Excel(name = "允许充电最大功率")
private BigDecimal maxAllowedChargePower;
/** 允许放电最大功率 */
@Excel(name = "允许放电最大功率")
private BigDecimal maxAllowedDischargePower;
/** 允许充电最大电压 */
@Excel(name = "允许充电最大电压")
private BigDecimal maxAllowedChargeVoltage;
/** 允许放电最大电压 */
@Excel(name = "允许放电最大电压")
private BigDecimal maxAllowedDischargeVoltage;
/** 允许充电最大电流 */
@Excel(name = "允许充电最大电流")
private BigDecimal maxAllowedChargeCurrent;
/** 允许放电最大电流 */
@Excel(name = "允许放电最大电流")
private BigDecimal maxAllowedDischargeCurrent;
/** 组电压 */
@Excel(name = "组电压")
private BigDecimal batteryPackVoltage;
/** 组电流 */
@Excel(name = "组电流")
private BigDecimal batteryPackCurrent;
/** 模块温度 */
@Excel(name = "模块温度")
private BigDecimal batteryPackTemp;
/** 组SOC */
@Excel(name = "组SOC")
private BigDecimal batteryPackSoc;
/** 组SOH */
@Excel(name = "组SOH")
private BigDecimal batteryPackSoh;
/** 组绝缘电阻 */
@Excel(name = "组绝缘电阻")
private BigDecimal batteryPackInsulationResistance;
/** 平均单体电压 */
@Excel(name = "平均单体电压")
private BigDecimal avgCellVoltage;
/** 平均单体温度 */
@Excel(name = "平均单体温度")
private BigDecimal avgCellTemp;
/** 最高单体电压 */
@Excel(name = "最高单体电压")
private BigDecimal maxCellVoltage;
/** 最高单体电压对应点号 */
@Excel(name = "最高单体电压对应点号")
private Long maxCellVoltageId;
/** 最低单体电压 */
@Excel(name = "最低单体电压")
private BigDecimal minCellVoltage;
/** 最低单体电压对应点号 */
@Excel(name = "最低单体电压对应点号")
private Long minCellVoltageId;
/** 最高单体温度 */
@Excel(name = "最高单体温度")
private BigDecimal maxCellTemp;
/** 最高单体温度对应点号 */
@Excel(name = "最高单体温度对应点号")
private Long maxCellTempId;
/** 最低单体温度 */
@Excel(name = "最低单体温度")
private BigDecimal minCellTemp;
/** 最低单体温度对应点号 */
@Excel(name = "最低单体温度对应点号")
private Long minCellTempId;
/** 最高单体SOC */
@Excel(name = "最高单体SOC")
private BigDecimal maxCellSoc;
/** 最高单体SOC对应点号 */
@Excel(name = "最高单体SOC对应点号")
private Long maxCellSocId;
/** 最低单体SOC */
@Excel(name = "最低单体SOC")
private BigDecimal minCellSoc;
/** 最低单体SOC对应点号 */
@Excel(name = "最低单体SOC对应点号")
private Long minCellSocId;
/** 最高单体SOH */
@Excel(name = "最高单体SOH")
private BigDecimal maxCellSoh;
/** 最高单体SOH对应点号 */
@Excel(name = "最高单体SOH对应点号")
private Long maxCellSohId;
/** 最低单体SOH */
@Excel(name = "最低单体SOH")
private BigDecimal minCellSoh;
/** 最低单体SOH对应点号 */
@Excel(name = "最低单体SOH对应点号")
private Long minCellSohId;
/** 单次累计充电电量 */
@Excel(name = "单次累计充电电量")
private BigDecimal totalChargeEnergy;
/** 单次累计放电电量 */
@Excel(name = "单次累计放电电量")
private BigDecimal totalDischargeEnergy;
public void setId(Long id) public void setId(Long id)
{ {
@ -220,26 +352,356 @@ public class EmsBatteryCluster extends BaseEntity
return currentSoc; return currentSoc;
} }
public void setSiteId(Long siteId) public void setSiteId(String siteId)
{ {
this.siteId = siteId; this.siteId = siteId;
} }
public Long getSiteId() public String getSiteId()
{ {
return siteId; return siteId;
} }
public void setDeviceId(Long deviceId) public void setDeviceId(String deviceId)
{ {
this.deviceId = deviceId; this.deviceId = deviceId;
} }
public Long getDeviceId() public String getDeviceId()
{ {
return deviceId; return deviceId;
} }
public void setStackDeviceId(String stackDeviceId)
{
this.stackDeviceId = stackDeviceId;
}
public String getStackDeviceId()
{
return stackDeviceId;
}
public void setMaxAllowedChargePower(BigDecimal maxAllowedChargePower)
{
this.maxAllowedChargePower = maxAllowedChargePower;
}
public BigDecimal getMaxAllowedChargePower()
{
return maxAllowedChargePower;
}
public void setMaxAllowedDischargePower(BigDecimal maxAllowedDischargePower)
{
this.maxAllowedDischargePower = maxAllowedDischargePower;
}
public BigDecimal getMaxAllowedDischargePower()
{
return maxAllowedDischargePower;
}
public void setMaxAllowedChargeVoltage(BigDecimal maxAllowedChargeVoltage)
{
this.maxAllowedChargeVoltage = maxAllowedChargeVoltage;
}
public BigDecimal getMaxAllowedChargeVoltage()
{
return maxAllowedChargeVoltage;
}
public void setMaxAllowedDischargeVoltage(BigDecimal maxAllowedDischargeVoltage)
{
this.maxAllowedDischargeVoltage = maxAllowedDischargeVoltage;
}
public BigDecimal getMaxAllowedDischargeVoltage()
{
return maxAllowedDischargeVoltage;
}
public void setMaxAllowedChargeCurrent(BigDecimal maxAllowedChargeCurrent)
{
this.maxAllowedChargeCurrent = maxAllowedChargeCurrent;
}
public BigDecimal getMaxAllowedChargeCurrent()
{
return maxAllowedChargeCurrent;
}
public void setMaxAllowedDischargeCurrent(BigDecimal maxAllowedDischargeCurrent)
{
this.maxAllowedDischargeCurrent = maxAllowedDischargeCurrent;
}
public BigDecimal getMaxAllowedDischargeCurrent()
{
return maxAllowedDischargeCurrent;
}
public void setBatteryPackVoltage(BigDecimal batteryPackVoltage)
{
this.batteryPackVoltage = batteryPackVoltage;
}
public BigDecimal getBatteryPackVoltage()
{
return batteryPackVoltage;
}
public void setBatteryPackCurrent(BigDecimal batteryPackCurrent)
{
this.batteryPackCurrent = batteryPackCurrent;
}
public BigDecimal getBatteryPackCurrent()
{
return batteryPackCurrent;
}
public void setBatteryPackTemp(BigDecimal batteryPackTemp)
{
this.batteryPackTemp = batteryPackTemp;
}
public BigDecimal getBatteryPackTemp()
{
return batteryPackTemp;
}
public void setBatteryPackSoc(BigDecimal batteryPackSoc)
{
this.batteryPackSoc = batteryPackSoc;
}
public BigDecimal getBatteryPackSoc()
{
return batteryPackSoc;
}
public void setBatteryPackSoh(BigDecimal batteryPackSoh)
{
this.batteryPackSoh = batteryPackSoh;
}
public BigDecimal getBatteryPackSoh()
{
return batteryPackSoh;
}
public void setBatteryPackInsulationResistance(BigDecimal batteryPackInsulationResistance)
{
this.batteryPackInsulationResistance = batteryPackInsulationResistance;
}
public BigDecimal getBatteryPackInsulationResistance()
{
return batteryPackInsulationResistance;
}
public void setAvgCellVoltage(BigDecimal avgCellVoltage)
{
this.avgCellVoltage = avgCellVoltage;
}
public BigDecimal getAvgCellVoltage()
{
return avgCellVoltage;
}
public void setAvgCellTemp(BigDecimal avgCellTemp)
{
this.avgCellTemp = avgCellTemp;
}
public BigDecimal getAvgCellTemp()
{
return avgCellTemp;
}
public void setMaxCellVoltage(BigDecimal maxCellVoltage)
{
this.maxCellVoltage = maxCellVoltage;
}
public BigDecimal getMaxCellVoltage()
{
return maxCellVoltage;
}
public void setMaxCellVoltageId(Long maxCellVoltageId)
{
this.maxCellVoltageId = maxCellVoltageId;
}
public Long getMaxCellVoltageId()
{
return maxCellVoltageId;
}
public void setMinCellVoltage(BigDecimal minCellVoltage)
{
this.minCellVoltage = minCellVoltage;
}
public BigDecimal getMinCellVoltage()
{
return minCellVoltage;
}
public void setMinCellVoltageId(Long minCellVoltageId)
{
this.minCellVoltageId = minCellVoltageId;
}
public Long getMinCellVoltageId()
{
return minCellVoltageId;
}
public void setMaxCellTemp(BigDecimal maxCellTemp)
{
this.maxCellTemp = maxCellTemp;
}
public BigDecimal getMaxCellTemp()
{
return maxCellTemp;
}
public void setMaxCellTempId(Long maxCellTempId)
{
this.maxCellTempId = maxCellTempId;
}
public Long getMaxCellTempId()
{
return maxCellTempId;
}
public void setMinCellTemp(BigDecimal minCellTemp)
{
this.minCellTemp = minCellTemp;
}
public BigDecimal getMinCellTemp()
{
return minCellTemp;
}
public void setMinCellTempId(Long minCellTempId)
{
this.minCellTempId = minCellTempId;
}
public Long getMinCellTempId()
{
return minCellTempId;
}
public void setMaxCellSoc(BigDecimal maxCellSoc)
{
this.maxCellSoc = maxCellSoc;
}
public BigDecimal getMaxCellSoc()
{
return maxCellSoc;
}
public void setMaxCellSocId(Long maxCellSocId)
{
this.maxCellSocId = maxCellSocId;
}
public Long getMaxCellSocId()
{
return maxCellSocId;
}
public void setMinCellSoc(BigDecimal minCellSoc)
{
this.minCellSoc = minCellSoc;
}
public BigDecimal getMinCellSoc()
{
return minCellSoc;
}
public void setMinCellSocId(Long minCellSocId)
{
this.minCellSocId = minCellSocId;
}
public Long getMinCellSocId()
{
return minCellSocId;
}
public void setMaxCellSoh(BigDecimal maxCellSoh)
{
this.maxCellSoh = maxCellSoh;
}
public BigDecimal getMaxCellSoh()
{
return maxCellSoh;
}
public void setMaxCellSohId(Long maxCellSohId)
{
this.maxCellSohId = maxCellSohId;
}
public Long getMaxCellSohId()
{
return maxCellSohId;
}
public void setMinCellSoh(BigDecimal minCellSoh)
{
this.minCellSoh = minCellSoh;
}
public BigDecimal getMinCellSoh()
{
return minCellSoh;
}
public void setMinCellSohId(Long minCellSohId)
{
this.minCellSohId = minCellSohId;
}
public Long getMinCellSohId()
{
return minCellSohId;
}
public void setTotalChargeEnergy(BigDecimal totalChargeEnergy)
{
this.totalChargeEnergy = totalChargeEnergy;
}
public BigDecimal getTotalChargeEnergy()
{
return totalChargeEnergy;
}
public void setTotalDischargeEnergy(BigDecimal totalDischargeEnergy)
{
this.totalDischargeEnergy = totalDischargeEnergy;
}
public BigDecimal getTotalDischargeEnergy()
{
return totalDischargeEnergy;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@ -264,6 +726,39 @@ public class EmsBatteryCluster extends BaseEntity
.append("remark", getRemark()) .append("remark", getRemark())
.append("siteId", getSiteId()) .append("siteId", getSiteId())
.append("deviceId", getDeviceId()) .append("deviceId", getDeviceId())
.append("stackDeviceId", getStackDeviceId())
.append("maxAllowedChargePower", getMaxAllowedChargePower())
.append("maxAllowedDischargePower", getMaxAllowedDischargePower())
.append("maxAllowedChargeVoltage", getMaxAllowedChargeVoltage())
.append("maxAllowedDischargeVoltage", getMaxAllowedDischargeVoltage())
.append("maxAllowedChargeCurrent", getMaxAllowedChargeCurrent())
.append("maxAllowedDischargeCurrent", getMaxAllowedDischargeCurrent())
.append("batteryPackVoltage", getBatteryPackVoltage())
.append("batteryPackCurrent", getBatteryPackCurrent())
.append("batteryPackTemp", getBatteryPackTemp())
.append("batteryPackSoc", getBatteryPackSoc())
.append("batteryPackSoh", getBatteryPackSoh())
.append("batteryPackInsulationResistance", getBatteryPackInsulationResistance())
.append("avgCellVoltage", getAvgCellVoltage())
.append("avgCellTemp", getAvgCellTemp())
.append("maxCellVoltage", getMaxCellVoltage())
.append("maxCellVoltageId", getMaxCellVoltageId())
.append("minCellVoltage", getMinCellVoltage())
.append("minCellVoltageId", getMinCellVoltageId())
.append("maxCellTemp", getMaxCellTemp())
.append("maxCellTempId", getMaxCellTempId())
.append("minCellTemp", getMinCellTemp())
.append("minCellTempId", getMinCellTempId())
.append("maxCellSoc", getMaxCellSoc())
.append("maxCellSocId", getMaxCellSocId())
.append("minCellSoc", getMinCellSoc())
.append("minCellSocId", getMinCellSocId())
.append("maxCellSoh", getMaxCellSoh())
.append("maxCellSohId", getMaxCellSohId())
.append("minCellSoh", getMinCellSoh())
.append("minCellSohId", getMinCellSohId())
.append("totalChargeEnergy", getTotalChargeEnergy())
.append("totalDischargeEnergy", getTotalDischargeEnergy())
.toString(); .toString();
} }
} }

View File

@ -12,7 +12,7 @@ import com.xzzn.common.annotation.Excel;
* 单体电池实时数据对象 ems_battery_data * 单体电池实时数据对象 ems_battery_data
* *
* @author xzzn * @author xzzn
* @date 2025-06-25 * @date 2025-06-29
*/ */
public class EmsBatteryData extends BaseEntity public class EmsBatteryData extends BaseEntity
{ {
@ -56,15 +56,15 @@ public class EmsBatteryData extends BaseEntity
/** 站点id */ /** 站点id */
@Excel(name = "站点id") @Excel(name = "站点id")
private Long siteId; private String siteId;
/** 设备唯一标识符 */ /** 设备唯一标识符 */
@Excel(name = "设备唯一标识符") @Excel(name = "设备唯一标识符")
private Long deviceId; private String deviceId;
/** 簇设备id */ /** 簇设备id */
@Excel(name = "簇设备id") @Excel(name = "簇设备id")
private Long clusterDeviceId; private String clusterDeviceId;
public void setId(Long id) public void setId(Long id)
{ {
@ -156,32 +156,32 @@ public class EmsBatteryData extends BaseEntity
return dataTimestamp; return dataTimestamp;
} }
public void setSiteId(Long siteId) public void setSiteId(String siteId)
{ {
this.siteId = siteId; this.siteId = siteId;
} }
public Long getSiteId() public String getSiteId()
{ {
return siteId; return siteId;
} }
public void setDeviceId(Long deviceId) public void setDeviceId(String deviceId)
{ {
this.deviceId = deviceId; this.deviceId = deviceId;
} }
public Long getDeviceId() public String getDeviceId()
{ {
return deviceId; return deviceId;
} }
public void setClusterDeviceId(Long clusterDeviceId) public void setClusterDeviceId(String clusterDeviceId)
{ {
this.clusterDeviceId = clusterDeviceId; this.clusterDeviceId = clusterDeviceId;
} }
public Long getClusterDeviceId() public String getClusterDeviceId()
{ {
return clusterDeviceId; return clusterDeviceId;
} }

View File

@ -11,7 +11,7 @@ import com.xzzn.common.annotation.Excel;
* 电池堆数据对象 ems_battery_stack * 电池堆数据对象 ems_battery_stack
* *
* @author xzzn * @author xzzn
* @date 2025-06-22 * @date 2025-06-29
*/ */
public class EmsBatteryStack extends BaseEntity public class EmsBatteryStack extends BaseEntity
{ {
@ -74,11 +74,139 @@ public class EmsBatteryStack extends BaseEntity
/** 站点id */ /** 站点id */
@Excel(name = "站点id") @Excel(name = "站点id")
private Long siteId; private String siteId;
/** 设备唯一标识符 */ /** 设备唯一标识符 */
@Excel(name = "设备唯一标识符") @Excel(name = "设备唯一标识符")
private Long deviceId; private String deviceId;
/** 允许充电最大功率 */
@Excel(name = "允许充电最大功率")
private BigDecimal maxAllowedChargePower;
/** 允许放电最大功率 */
@Excel(name = "允许放电最大功率")
private BigDecimal maxAllowedDischargePower;
/** 允许充电最大电压 */
@Excel(name = "允许充电最大电压")
private BigDecimal maxAllowedChargeVoltage;
/** 允许放电最大电压 */
@Excel(name = "允许放电最大电压")
private BigDecimal maxAllowedDischargeVoltage;
/** 允许充电最大电流 */
@Excel(name = "允许充电最大电流")
private BigDecimal maxAllowedChargeCurrent;
/** 允许放电最大电流 */
@Excel(name = "允许放电最大电流")
private BigDecimal maxAllowedDischargeCurrent;
/** 组电压 */
@Excel(name = "组电压")
private BigDecimal batteryPackVoltage;
/** 组电流 */
@Excel(name = "组电流")
private BigDecimal batteryPackCurrent;
/** 模块温度 */
@Excel(name = "模块温度")
private BigDecimal batteryPackTemp;
/** 组SOC */
@Excel(name = "组SOC")
private BigDecimal batteryPackSoc;
/** 组SOH */
@Excel(name = "组SOH")
private BigDecimal batteryPackSoh;
/** 组绝缘电阻 */
@Excel(name = "组绝缘电阻")
private BigDecimal batteryPackInsulationResistance;
/** 平均单体电压 */
@Excel(name = "平均单体电压")
private BigDecimal avgCellVoltage;
/** 平均单体温度 */
@Excel(name = "平均单体温度")
private BigDecimal avgCellTemp;
/** 最高单体电压 */
@Excel(name = "最高单体电压")
private BigDecimal maxCellVoltage;
/** 最高单体电压对应点号 */
@Excel(name = "最高单体电压对应点号")
private Long maxCellVoltageId;
/** 最低单体电压 */
@Excel(name = "最低单体电压")
private BigDecimal minCellVoltage;
/** 最低单体电压对应点号 */
@Excel(name = "最低单体电压对应点号")
private Long minCellVoltageId;
/** 最高单体温度 */
@Excel(name = "最高单体温度")
private BigDecimal maxCellTemp;
/** 最高单体温度对应点号 */
@Excel(name = "最高单体温度对应点号")
private Long maxCellTempId;
/** 最低单体温度 */
@Excel(name = "最低单体温度")
private BigDecimal minCellTemp;
/** 最低单体温度对应点号 */
@Excel(name = "最低单体温度对应点号")
private Long minCellTempId;
/** 最高单体SOC */
@Excel(name = "最高单体SOC")
private BigDecimal maxCellSoc;
/** 最高单体SOC对应点号 */
@Excel(name = "最高单体SOC对应点号")
private Long maxCellSocId;
/** 最低单体SOC */
@Excel(name = "最低单体SOC")
private BigDecimal minCellSoc;
/** 最低单体SOC对应点号 */
@Excel(name = "最低单体SOC对应点号")
private Long minCellSocId;
/** 最高单体SOH */
@Excel(name = "最高单体SOH")
private BigDecimal maxCellSoh;
/** 最高单体SOH对应点号 */
@Excel(name = "最高单体SOH对应点号")
private Long maxCellSohId;
/** 最低单体SOH */
@Excel(name = "最低单体SOH")
private BigDecimal minCellSoh;
/** 最低单体SOH对应点号 */
@Excel(name = "最低单体SOH对应点号")
private Long minCellSohId;
/** 单次累计充电电量 */
@Excel(name = "单次累计充电电量")
private BigDecimal totalChargeEnergy;
/** 单次累计放电电量 */
@Excel(name = "单次累计放电电量")
private BigDecimal totalDischargeEnergy;
public void setId(Long id) public void setId(Long id)
{ {
@ -220,26 +348,346 @@ public class EmsBatteryStack extends BaseEntity
return currentSoc; return currentSoc;
} }
public void setSiteId(Long siteId) public void setSiteId(String siteId)
{ {
this.siteId = siteId; this.siteId = siteId;
} }
public Long getSiteId() public String getSiteId()
{ {
return siteId; return siteId;
} }
public void setDeviceId(Long deviceId) public void setDeviceId(String deviceId)
{ {
this.deviceId = deviceId; this.deviceId = deviceId;
} }
public Long getDeviceId() public String getDeviceId()
{ {
return deviceId; return deviceId;
} }
public void setMaxAllowedChargePower(BigDecimal maxAllowedChargePower)
{
this.maxAllowedChargePower = maxAllowedChargePower;
}
public BigDecimal getMaxAllowedChargePower()
{
return maxAllowedChargePower;
}
public void setMaxAllowedDischargePower(BigDecimal maxAllowedDischargePower)
{
this.maxAllowedDischargePower = maxAllowedDischargePower;
}
public BigDecimal getMaxAllowedDischargePower()
{
return maxAllowedDischargePower;
}
public void setMaxAllowedChargeVoltage(BigDecimal maxAllowedChargeVoltage)
{
this.maxAllowedChargeVoltage = maxAllowedChargeVoltage;
}
public BigDecimal getMaxAllowedChargeVoltage()
{
return maxAllowedChargeVoltage;
}
public void setMaxAllowedDischargeVoltage(BigDecimal maxAllowedDischargeVoltage)
{
this.maxAllowedDischargeVoltage = maxAllowedDischargeVoltage;
}
public BigDecimal getMaxAllowedDischargeVoltage()
{
return maxAllowedDischargeVoltage;
}
public void setMaxAllowedChargeCurrent(BigDecimal maxAllowedChargeCurrent)
{
this.maxAllowedChargeCurrent = maxAllowedChargeCurrent;
}
public BigDecimal getMaxAllowedChargeCurrent()
{
return maxAllowedChargeCurrent;
}
public void setMaxAllowedDischargeCurrent(BigDecimal maxAllowedDischargeCurrent)
{
this.maxAllowedDischargeCurrent = maxAllowedDischargeCurrent;
}
public BigDecimal getMaxAllowedDischargeCurrent()
{
return maxAllowedDischargeCurrent;
}
public void setBatteryPackVoltage(BigDecimal batteryPackVoltage)
{
this.batteryPackVoltage = batteryPackVoltage;
}
public BigDecimal getBatteryPackVoltage()
{
return batteryPackVoltage;
}
public void setBatteryPackCurrent(BigDecimal batteryPackCurrent)
{
this.batteryPackCurrent = batteryPackCurrent;
}
public BigDecimal getBatteryPackCurrent()
{
return batteryPackCurrent;
}
public void setBatteryPackTemp(BigDecimal batteryPackTemp)
{
this.batteryPackTemp = batteryPackTemp;
}
public BigDecimal getBatteryPackTemp()
{
return batteryPackTemp;
}
public void setBatteryPackSoc(BigDecimal batteryPackSoc)
{
this.batteryPackSoc = batteryPackSoc;
}
public BigDecimal getBatteryPackSoc()
{
return batteryPackSoc;
}
public void setBatteryPackSoh(BigDecimal batteryPackSoh)
{
this.batteryPackSoh = batteryPackSoh;
}
public BigDecimal getBatteryPackSoh()
{
return batteryPackSoh;
}
public void setBatteryPackInsulationResistance(BigDecimal batteryPackInsulationResistance)
{
this.batteryPackInsulationResistance = batteryPackInsulationResistance;
}
public BigDecimal getBatteryPackInsulationResistance()
{
return batteryPackInsulationResistance;
}
public void setAvgCellVoltage(BigDecimal avgCellVoltage)
{
this.avgCellVoltage = avgCellVoltage;
}
public BigDecimal getAvgCellVoltage()
{
return avgCellVoltage;
}
public void setAvgCellTemp(BigDecimal avgCellTemp)
{
this.avgCellTemp = avgCellTemp;
}
public BigDecimal getAvgCellTemp()
{
return avgCellTemp;
}
public void setMaxCellVoltage(BigDecimal maxCellVoltage)
{
this.maxCellVoltage = maxCellVoltage;
}
public BigDecimal getMaxCellVoltage()
{
return maxCellVoltage;
}
public void setMaxCellVoltageId(Long maxCellVoltageId)
{
this.maxCellVoltageId = maxCellVoltageId;
}
public Long getMaxCellVoltageId()
{
return maxCellVoltageId;
}
public void setMinCellVoltage(BigDecimal minCellVoltage)
{
this.minCellVoltage = minCellVoltage;
}
public BigDecimal getMinCellVoltage()
{
return minCellVoltage;
}
public void setMinCellVoltageId(Long minCellVoltageId)
{
this.minCellVoltageId = minCellVoltageId;
}
public Long getMinCellVoltageId()
{
return minCellVoltageId;
}
public void setMaxCellTemp(BigDecimal maxCellTemp)
{
this.maxCellTemp = maxCellTemp;
}
public BigDecimal getMaxCellTemp()
{
return maxCellTemp;
}
public void setMaxCellTempId(Long maxCellTempId)
{
this.maxCellTempId = maxCellTempId;
}
public Long getMaxCellTempId()
{
return maxCellTempId;
}
public void setMinCellTemp(BigDecimal minCellTemp)
{
this.minCellTemp = minCellTemp;
}
public BigDecimal getMinCellTemp()
{
return minCellTemp;
}
public void setMinCellTempId(Long minCellTempId)
{
this.minCellTempId = minCellTempId;
}
public Long getMinCellTempId()
{
return minCellTempId;
}
public void setMaxCellSoc(BigDecimal maxCellSoc)
{
this.maxCellSoc = maxCellSoc;
}
public BigDecimal getMaxCellSoc()
{
return maxCellSoc;
}
public void setMaxCellSocId(Long maxCellSocId)
{
this.maxCellSocId = maxCellSocId;
}
public Long getMaxCellSocId()
{
return maxCellSocId;
}
public void setMinCellSoc(BigDecimal minCellSoc)
{
this.minCellSoc = minCellSoc;
}
public BigDecimal getMinCellSoc()
{
return minCellSoc;
}
public void setMinCellSocId(Long minCellSocId)
{
this.minCellSocId = minCellSocId;
}
public Long getMinCellSocId()
{
return minCellSocId;
}
public void setMaxCellSoh(BigDecimal maxCellSoh)
{
this.maxCellSoh = maxCellSoh;
}
public BigDecimal getMaxCellSoh()
{
return maxCellSoh;
}
public void setMaxCellSohId(Long maxCellSohId)
{
this.maxCellSohId = maxCellSohId;
}
public Long getMaxCellSohId()
{
return maxCellSohId;
}
public void setMinCellSoh(BigDecimal minCellSoh)
{
this.minCellSoh = minCellSoh;
}
public BigDecimal getMinCellSoh()
{
return minCellSoh;
}
public void setMinCellSohId(Long minCellSohId)
{
this.minCellSohId = minCellSohId;
}
public Long getMinCellSohId()
{
return minCellSohId;
}
public void setTotalChargeEnergy(BigDecimal totalChargeEnergy)
{
this.totalChargeEnergy = totalChargeEnergy;
}
public BigDecimal getTotalChargeEnergy()
{
return totalChargeEnergy;
}
public void setTotalDischargeEnergy(BigDecimal totalDischargeEnergy)
{
this.totalDischargeEnergy = totalDischargeEnergy;
}
public BigDecimal getTotalDischargeEnergy()
{
return totalDischargeEnergy;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@ -264,6 +712,38 @@ public class EmsBatteryStack extends BaseEntity
.append("remark", getRemark()) .append("remark", getRemark())
.append("siteId", getSiteId()) .append("siteId", getSiteId())
.append("deviceId", getDeviceId()) .append("deviceId", getDeviceId())
.append("maxAllowedChargePower", getMaxAllowedChargePower())
.append("maxAllowedDischargePower", getMaxAllowedDischargePower())
.append("maxAllowedChargeVoltage", getMaxAllowedChargeVoltage())
.append("maxAllowedDischargeVoltage", getMaxAllowedDischargeVoltage())
.append("maxAllowedChargeCurrent", getMaxAllowedChargeCurrent())
.append("maxAllowedDischargeCurrent", getMaxAllowedDischargeCurrent())
.append("batteryPackVoltage", getBatteryPackVoltage())
.append("batteryPackCurrent", getBatteryPackCurrent())
.append("batteryPackTemp", getBatteryPackTemp())
.append("batteryPackSoc", getBatteryPackSoc())
.append("batteryPackSoh", getBatteryPackSoh())
.append("batteryPackInsulationResistance", getBatteryPackInsulationResistance())
.append("avgCellVoltage", getAvgCellVoltage())
.append("avgCellTemp", getAvgCellTemp())
.append("maxCellVoltage", getMaxCellVoltage())
.append("maxCellVoltageId", getMaxCellVoltageId())
.append("minCellVoltage", getMinCellVoltage())
.append("minCellVoltageId", getMinCellVoltageId())
.append("maxCellTemp", getMaxCellTemp())
.append("maxCellTempId", getMaxCellTempId())
.append("minCellTemp", getMinCellTemp())
.append("minCellTempId", getMinCellTempId())
.append("maxCellSoc", getMaxCellSoc())
.append("maxCellSocId", getMaxCellSocId())
.append("minCellSoc", getMinCellSoc())
.append("minCellSocId", getMinCellSocId())
.append("maxCellSoh", getMaxCellSoh())
.append("maxCellSohId", getMaxCellSohId())
.append("minCellSoh", getMinCellSoh())
.append("minCellSohId", getMinCellSohId())
.append("totalChargeEnergy", getTotalChargeEnergy())
.append("totalDischargeEnergy", getTotalDischargeEnergy())
.toString(); .toString();
} }
} }

View File

@ -11,13 +11,13 @@ import com.xzzn.common.annotation.Excel;
* 冷却系统参数对象 ems_cooling_data * 冷却系统参数对象 ems_cooling_data
* *
* @author xzzn * @author xzzn
* @date 2025-06-25 * @date 2025-06-29
*/ */
public class EmsCoolingData extends BaseEntity public class EmsCoolingData extends BaseEntity
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** $column.columnComment */ /** */
private Long id; private Long id;
/** 系统名称如1#液冷 */ /** 系统名称如1#液冷 */
@ -58,11 +58,11 @@ public class EmsCoolingData extends BaseEntity
/** 站点id */ /** 站点id */
@Excel(name = "站点id") @Excel(name = "站点id")
private Long siteId; private String siteId;
/** 设备唯一标识符 */ /** 设备唯一标识符 */
@Excel(name = "设备唯一标识符") @Excel(name = "设备唯一标识符")
private Long deviceId; private String deviceId;
public void setId(Long id) public void setId(Long id)
{ {
@ -164,22 +164,22 @@ public class EmsCoolingData extends BaseEntity
return lowTempAlarmPoint; return lowTempAlarmPoint;
} }
public void setSiteId(Long siteId) public void setSiteId(String siteId)
{ {
this.siteId = siteId; this.siteId = siteId;
} }
public Long getSiteId() public String getSiteId()
{ {
return siteId; return siteId;
} }
public void setDeviceId(Long deviceId) public void setDeviceId(String deviceId)
{ {
this.deviceId = deviceId; this.deviceId = deviceId;
} }
public Long getDeviceId() public String getDeviceId()
{ {
return deviceId; return deviceId;
} }

View File

@ -11,7 +11,7 @@ import com.xzzn.common.annotation.Excel;
* Modbus设备配置对象 ems_devices_setting * Modbus设备配置对象 ems_devices_setting
* *
* @author xzzn * @author xzzn
* @date 2025-06-24 * @date 2025-06-29
*/ */
public class EmsDevicesSetting extends BaseEntity public class EmsDevicesSetting extends BaseEntity
{ {
@ -84,12 +84,16 @@ public class EmsDevicesSetting extends BaseEntity
/** 站点id */ /** 站点id */
@Excel(name = "站点id") @Excel(name = "站点id")
private Long siteId; private String siteId;
/** 通信状态 */ /** 通信状态 */
@Excel(name = "通信状态") @Excel(name = "通信状态")
private String communicationStatus; private String communicationStatus;
/** 设备唯一标识符 */
@Excel(name = "设备唯一标识符")
private String deviceId;
public void setId(Long id) public void setId(Long id)
{ {
this.id = id; this.id = id;
@ -250,12 +254,12 @@ public class EmsDevicesSetting extends BaseEntity
return updatedAt; return updatedAt;
} }
public void setSiteId(Long siteId) public void setSiteId(String siteId)
{ {
this.siteId = siteId; this.siteId = siteId;
} }
public Long getSiteId() public String getSiteId()
{ {
return siteId; return siteId;
} }
@ -270,6 +274,16 @@ public class EmsDevicesSetting extends BaseEntity
return communicationStatus; return communicationStatus;
} }
public void setDeviceId(String deviceId)
{
this.deviceId = deviceId;
}
public String getDeviceId()
{
return deviceId;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@ -291,6 +305,7 @@ public class EmsDevicesSetting extends BaseEntity
.append("updatedAt", getUpdatedAt()) .append("updatedAt", getUpdatedAt())
.append("siteId", getSiteId()) .append("siteId", getSiteId())
.append("communicationStatus", getCommunicationStatus()) .append("communicationStatus", getCommunicationStatus())
.append("deviceId", getDeviceId())
.toString(); .toString();
} }
} }

View File

@ -0,0 +1,71 @@
package com.xzzn.ems.domain;
import com.xzzn.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.xzzn.common.annotation.Excel;
/**
* 【请填写功能名称】对象 ems_mqtt_message
*
* @author xzzn
* @date 2025-06-27
*/
public class EmsMqttMessage extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String mqttTopic;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String mqttMessage;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setMqttTopic(String mqttTopic)
{
this.mqttTopic = mqttTopic;
}
public String getMqttTopic()
{
return mqttTopic;
}
public void setMqttMessage(String mqttMessage)
{
this.mqttMessage = mqttMessage;
}
public String getMqttMessage()
{
return mqttMessage;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("mqttTopic", getMqttTopic())
.append("mqttMessage", getMqttMessage())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.toString();
}
}

View File

@ -11,13 +11,13 @@ import com.xzzn.common.annotation.Excel;
* pcs支路数据对象 ems_pcs_branch_data * pcs支路数据对象 ems_pcs_branch_data
* *
* @author xzzn * @author xzzn
* @date 2025-06-24 * @date 2025-06-29
*/ */
public class EmsPcsBranchData extends BaseEntity public class EmsPcsBranchData extends BaseEntity
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** $column.columnComment */ /** */
private Long id; private Long id;
/** 放电状态 */ /** 放电状态 */
@ -38,16 +38,96 @@ public class EmsPcsBranchData extends BaseEntity
/** 站点id */ /** 站点id */
@Excel(name = "站点id") @Excel(name = "站点id")
private Long siteId; private String siteId;
/** 设备唯一标识符 */ /** 设备唯一标识符 */
@Excel(name = "设备唯一标识符") @Excel(name = "设备唯一标识符")
private Long deviceId; private String deviceId;
/** 支路id */ /** 支路id */
@Excel(name = "支路id") @Excel(name = "支路id")
private Long branchId; private Long branchId;
/** 电网U相电压 */
@Excel(name = "电网U相电压")
private BigDecimal gridUVoltage;
/** 电网V相电压 */
@Excel(name = "电网V相电压")
private BigDecimal gridVVoltage;
/** 电网W相电压 */
@Excel(name = "电网W相电压")
private BigDecimal gridWVoltage;
/** 输出U相电流 */
@Excel(name = "输出U相电流")
private BigDecimal outputUCurrent;
/** 输出V相电流 */
@Excel(name = "输出V相电流")
private BigDecimal outputVCurrent;
/** 输出W相电流 */
@Excel(name = "输出W相电流")
private BigDecimal outputWCurrent;
/** 视在功率 */
@Excel(name = "视在功率")
private BigDecimal apparentPower;
/** 有功功率 */
@Excel(name = "有功功率")
private BigDecimal activePower;
/** 无功功率 */
@Excel(name = "无功功率")
private BigDecimal reactivePower;
/** 功率因数 */
@Excel(name = "功率因数")
private BigDecimal powerFactor;
/** 频率 */
@Excel(name = "频率")
private BigDecimal frequency;
/** 内部温度 */
@Excel(name = "内部温度")
private BigDecimal internalTemp;
/** U相IGBT温度 */
@Excel(name = "U相IGBT温度")
private BigDecimal uIgbtTemp;
/** V相IGBT温度 */
@Excel(name = "V相IGBT温度")
private BigDecimal vIgbtTemp;
/** W相IGBT温度 */
@Excel(name = "W相IGBT温度")
private BigDecimal wIgbtTemp;
/** 并离网状态 */
@Excel(name = "并离网状态")
private String gridStatus;
/** 可用功率 */
@Excel(name = "可用功率")
private BigDecimal availablePower;
/** 总负载比 */
@Excel(name = "总负载比")
private BigDecimal totalLoadRatio;
/** 交流漏电流 */
@Excel(name = "交流漏电流")
private BigDecimal acLeakageCurrent;
/** 绝缘阻抗 */
@Excel(name = "绝缘阻抗")
private BigDecimal insulationResistance;
public void setId(Long id) public void setId(Long id)
{ {
this.id = id; this.id = id;
@ -98,22 +178,22 @@ public class EmsPcsBranchData extends BaseEntity
return dcCurrent; return dcCurrent;
} }
public void setSiteId(Long siteId) public void setSiteId(String siteId)
{ {
this.siteId = siteId; this.siteId = siteId;
} }
public Long getSiteId() public String getSiteId()
{ {
return siteId; return siteId;
} }
public void setDeviceId(Long deviceId) public void setDeviceId(String deviceId)
{ {
this.deviceId = deviceId; this.deviceId = deviceId;
} }
public Long getDeviceId() public String getDeviceId()
{ {
return deviceId; return deviceId;
} }
@ -128,6 +208,206 @@ public class EmsPcsBranchData extends BaseEntity
return branchId; return branchId;
} }
public void setGridUVoltage(BigDecimal gridUVoltage)
{
this.gridUVoltage = gridUVoltage;
}
public BigDecimal getGridUVoltage()
{
return gridUVoltage;
}
public void setGridVVoltage(BigDecimal gridVVoltage)
{
this.gridVVoltage = gridVVoltage;
}
public BigDecimal getGridVVoltage()
{
return gridVVoltage;
}
public void setGridWVoltage(BigDecimal gridWVoltage)
{
this.gridWVoltage = gridWVoltage;
}
public BigDecimal getGridWVoltage()
{
return gridWVoltage;
}
public void setOutputUCurrent(BigDecimal outputUCurrent)
{
this.outputUCurrent = outputUCurrent;
}
public BigDecimal getOutputUCurrent()
{
return outputUCurrent;
}
public void setOutputVCurrent(BigDecimal outputVCurrent)
{
this.outputVCurrent = outputVCurrent;
}
public BigDecimal getOutputVCurrent()
{
return outputVCurrent;
}
public void setOutputWCurrent(BigDecimal outputWCurrent)
{
this.outputWCurrent = outputWCurrent;
}
public BigDecimal getOutputWCurrent()
{
return outputWCurrent;
}
public void setApparentPower(BigDecimal apparentPower)
{
this.apparentPower = apparentPower;
}
public BigDecimal getApparentPower()
{
return apparentPower;
}
public void setActivePower(BigDecimal activePower)
{
this.activePower = activePower;
}
public BigDecimal getActivePower()
{
return activePower;
}
public void setReactivePower(BigDecimal reactivePower)
{
this.reactivePower = reactivePower;
}
public BigDecimal getReactivePower()
{
return reactivePower;
}
public void setPowerFactor(BigDecimal powerFactor)
{
this.powerFactor = powerFactor;
}
public BigDecimal getPowerFactor()
{
return powerFactor;
}
public void setFrequency(BigDecimal frequency)
{
this.frequency = frequency;
}
public BigDecimal getFrequency()
{
return frequency;
}
public void setInternalTemp(BigDecimal internalTemp)
{
this.internalTemp = internalTemp;
}
public BigDecimal getInternalTemp()
{
return internalTemp;
}
public void setuIgbtTemp(BigDecimal uIgbtTemp)
{
this.uIgbtTemp = uIgbtTemp;
}
public BigDecimal getuIgbtTemp()
{
return uIgbtTemp;
}
public void setvIgbtTemp(BigDecimal vIgbtTemp)
{
this.vIgbtTemp = vIgbtTemp;
}
public BigDecimal getvIgbtTemp()
{
return vIgbtTemp;
}
public void setwIgbtTemp(BigDecimal wIgbtTemp)
{
this.wIgbtTemp = wIgbtTemp;
}
public BigDecimal getwIgbtTemp()
{
return wIgbtTemp;
}
public void setGridStatus(String gridStatus)
{
this.gridStatus = gridStatus;
}
public String getGridStatus()
{
return gridStatus;
}
public void setAvailablePower(BigDecimal availablePower)
{
this.availablePower = availablePower;
}
public BigDecimal getAvailablePower()
{
return availablePower;
}
public void setTotalLoadRatio(BigDecimal totalLoadRatio)
{
this.totalLoadRatio = totalLoadRatio;
}
public BigDecimal getTotalLoadRatio()
{
return totalLoadRatio;
}
public void setAcLeakageCurrent(BigDecimal acLeakageCurrent)
{
this.acLeakageCurrent = acLeakageCurrent;
}
public BigDecimal getAcLeakageCurrent()
{
return acLeakageCurrent;
}
public void setInsulationResistance(BigDecimal insulationResistance)
{
this.insulationResistance = insulationResistance;
}
public BigDecimal getInsulationResistance()
{
return insulationResistance;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@ -144,6 +424,26 @@ public class EmsPcsBranchData extends BaseEntity
.append("siteId", getSiteId()) .append("siteId", getSiteId())
.append("deviceId", getDeviceId()) .append("deviceId", getDeviceId())
.append("branchId", getBranchId()) .append("branchId", getBranchId())
.append("gridUVoltage", getGridUVoltage())
.append("gridVVoltage", getGridVVoltage())
.append("gridWVoltage", getGridWVoltage())
.append("outputUCurrent", getOutputUCurrent())
.append("outputVCurrent", getOutputVCurrent())
.append("outputWCurrent", getOutputWCurrent())
.append("apparentPower", getApparentPower())
.append("activePower", getActivePower())
.append("reactivePower", getReactivePower())
.append("powerFactor", getPowerFactor())
.append("frequency", getFrequency())
.append("internalTemp", getInternalTemp())
.append("uIgbtTemp", getuIgbtTemp())
.append("vIgbtTemp", getvIgbtTemp())
.append("wIgbtTemp", getwIgbtTemp())
.append("gridStatus", getGridStatus())
.append("availablePower", getAvailablePower())
.append("totalLoadRatio", getTotalLoadRatio())
.append("acLeakageCurrent", getAcLeakageCurrent())
.append("insulationResistance", getInsulationResistance())
.toString(); .toString();
} }
} }

View File

@ -12,7 +12,7 @@ import com.xzzn.common.annotation.Excel;
* PCS数据对象 ems_pcs_data * PCS数据对象 ems_pcs_data
* *
* @author xzzn * @author xzzn
* @date 2025-06-17 * @date 2025-06-29
*/ */
public class EmsPcsData extends BaseEntity public class EmsPcsData extends BaseEntity
{ {
@ -22,7 +22,7 @@ public class EmsPcsData extends BaseEntity
private Long id; private Long id;
/** 数据更新时间 */ /** 数据更新时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "数据更新时间", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "数据更新时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date dataUpdateTime; private Date dataUpdateTime;
@ -124,19 +124,71 @@ public class EmsPcsData extends BaseEntity
/** 站点id */ /** 站点id */
@Excel(name = "站点id") @Excel(name = "站点id")
private Long siteId; private String siteId;
/** 设备唯一标识符 */ /** 设备唯一标识符 */
@Excel(name = "设备唯一标识符") @Excel(name = "设备唯一标识符")
private Long deviceId; private String deviceId;
/** 月 */ /** 月 */
@Excel(name = "") @Excel(name = "")
private int dateMonth; private Long dateMonth;
/** 日 */ /** 日 */
@Excel(name = "") @Excel(name = "")
private int dateDay; private Long dateDay;
/** 总交流充电量 (kWh) */
@Excel(name = "总交流充电量 (kWh)")
private BigDecimal totalAcChargeEnergy;
/** 总交流放电量 (kWh) */
@Excel(name = "总交流放电量 (kWh)")
private BigDecimal totalAcDischargeEnergy;
/** 交流侧充电有功功率 */
@Excel(name = "交流侧充电有功功率")
private BigDecimal acChargeActivePower;
/** 交流侧容性无功功率 */
@Excel(name = "交流侧容性无功功率")
private BigDecimal acCapacitiveReactivePower;
/** 交流侧放电有功功率 */
@Excel(name = "交流侧放电有功功率")
private BigDecimal acDischargeActivePower;
/** 交流侧感性无功功率 */
@Excel(name = "交流侧感性无功功率")
private BigDecimal acInductiveReactivePower;
/** 最大容性无功能力 */
@Excel(name = "最大容性无功能力")
private BigDecimal maxCapacitivePowerCapacity;
/** 最大感性无功能力 */
@Excel(name = "最大感性无功能力")
private BigDecimal maxInductivePowerCapacity;
/** 最大可冲功率 */
@Excel(name = "最大可冲功率")
private BigDecimal maxChargePowerCapacity;
/** 最大可放功率 */
@Excel(name = "最大可放功率")
private BigDecimal maxDischargePowerCapacity;
/** 交流开关状态 */
@Excel(name = "交流开关状态")
private String acSwitchStatus;
/** 直流开关状态 */
@Excel(name = "直流开关状态")
private String dcSwitchStatus;
/** 远程投退状态 */
@Excel(name = "远程投退状态")
private String remoteControlStatus;
public void setId(Long id) public void setId(Long id)
{ {
@ -398,40 +450,174 @@ public class EmsPcsData extends BaseEntity
return dcCurrent; return dcCurrent;
} }
public void setSiteId(Long siteId) public void setSiteId(String siteId)
{ {
this.siteId = siteId; this.siteId = siteId;
} }
public Long getSiteId() public String getSiteId()
{ {
return siteId; return siteId;
} }
public void setDeviceId(Long deviceId) public void setDeviceId(String deviceId)
{ {
this.deviceId = deviceId; this.deviceId = deviceId;
} }
public Long getDeviceId() public String getDeviceId()
{ {
return deviceId; return deviceId;
} }
public int getDateMonth() { public void setDateMonth(Long dateMonth)
return dateMonth; {
}
public void setDateMonth(int dateMonth) {
this.dateMonth = dateMonth; this.dateMonth = dateMonth;
} }
public int getDateDay() { public Long getDateMonth()
{
return dateMonth;
}
public void setDateDay(Long dateDay)
{
this.dateDay = dateDay;
}
public Long getDateDay()
{
return dateDay; return dateDay;
} }
public void setDateDay(int dateDay) { public void setTotalAcChargeEnergy(BigDecimal totalAcChargeEnergy)
this.dateDay = dateDay; {
this.totalAcChargeEnergy = totalAcChargeEnergy;
}
public BigDecimal getTotalAcChargeEnergy()
{
return totalAcChargeEnergy;
}
public void setTotalAcDischargeEnergy(BigDecimal totalAcDischargeEnergy)
{
this.totalAcDischargeEnergy = totalAcDischargeEnergy;
}
public BigDecimal getTotalAcDischargeEnergy()
{
return totalAcDischargeEnergy;
}
public void setAcChargeActivePower(BigDecimal acChargeActivePower)
{
this.acChargeActivePower = acChargeActivePower;
}
public BigDecimal getAcChargeActivePower()
{
return acChargeActivePower;
}
public void setAcCapacitiveReactivePower(BigDecimal acCapacitiveReactivePower)
{
this.acCapacitiveReactivePower = acCapacitiveReactivePower;
}
public BigDecimal getAcCapacitiveReactivePower()
{
return acCapacitiveReactivePower;
}
public void setAcDischargeActivePower(BigDecimal acDischargeActivePower)
{
this.acDischargeActivePower = acDischargeActivePower;
}
public BigDecimal getAcDischargeActivePower()
{
return acDischargeActivePower;
}
public void setAcInductiveReactivePower(BigDecimal acInductiveReactivePower)
{
this.acInductiveReactivePower = acInductiveReactivePower;
}
public BigDecimal getAcInductiveReactivePower()
{
return acInductiveReactivePower;
}
public void setMaxCapacitivePowerCapacity(BigDecimal maxCapacitivePowerCapacity)
{
this.maxCapacitivePowerCapacity = maxCapacitivePowerCapacity;
}
public BigDecimal getMaxCapacitivePowerCapacity()
{
return maxCapacitivePowerCapacity;
}
public void setMaxInductivePowerCapacity(BigDecimal maxInductivePowerCapacity)
{
this.maxInductivePowerCapacity = maxInductivePowerCapacity;
}
public BigDecimal getMaxInductivePowerCapacity()
{
return maxInductivePowerCapacity;
}
public void setMaxChargePowerCapacity(BigDecimal maxChargePowerCapacity)
{
this.maxChargePowerCapacity = maxChargePowerCapacity;
}
public BigDecimal getMaxChargePowerCapacity()
{
return maxChargePowerCapacity;
}
public void setMaxDischargePowerCapacity(BigDecimal maxDischargePowerCapacity)
{
this.maxDischargePowerCapacity = maxDischargePowerCapacity;
}
public BigDecimal getMaxDischargePowerCapacity()
{
return maxDischargePowerCapacity;
}
public void setAcSwitchStatus(String acSwitchStatus)
{
this.acSwitchStatus = acSwitchStatus;
}
public String getAcSwitchStatus()
{
return acSwitchStatus;
}
public void setDcSwitchStatus(String dcSwitchStatus)
{
this.dcSwitchStatus = dcSwitchStatus;
}
public String getDcSwitchStatus()
{
return dcSwitchStatus;
}
public void setRemoteControlStatus(String remoteControlStatus)
{
this.remoteControlStatus = remoteControlStatus;
}
public String getRemoteControlStatus()
{
return remoteControlStatus;
} }
@Override @Override
@ -472,7 +658,19 @@ public class EmsPcsData extends BaseEntity
.append("deviceId", getDeviceId()) .append("deviceId", getDeviceId())
.append("dateMonth", getDateMonth()) .append("dateMonth", getDateMonth())
.append("dateDay", getDateDay()) .append("dateDay", getDateDay())
.append("totalAcChargeEnergy", getTotalAcChargeEnergy())
.append("totalAcDischargeEnergy", getTotalAcDischargeEnergy())
.append("acChargeActivePower", getAcChargeActivePower())
.append("acCapacitiveReactivePower", getAcCapacitiveReactivePower())
.append("acDischargeActivePower", getAcDischargeActivePower())
.append("acInductiveReactivePower", getAcInductiveReactivePower())
.append("maxCapacitivePowerCapacity", getMaxCapacitivePowerCapacity())
.append("maxInductivePowerCapacity", getMaxInductivePowerCapacity())
.append("maxChargePowerCapacity", getMaxChargePowerCapacity())
.append("maxDischargePowerCapacity", getMaxDischargePowerCapacity())
.append("acSwitchStatus", getAcSwitchStatus())
.append("dcSwitchStatus", getDcSwitchStatus())
.append("remoteControlStatus", getRemoteControlStatus())
.toString(); .toString();
} }
} }

View File

@ -12,7 +12,7 @@ import com.xzzn.common.annotation.Excel;
* 站点对象 ems_site_setting * 站点对象 ems_site_setting
* *
* @author xzzn * @author xzzn
* @date 2025-06-20 * @date 2025-06-29
*/ */
public class EmsSiteSetting extends BaseEntity public class EmsSiteSetting extends BaseEntity
{ {
@ -50,6 +50,10 @@ public class EmsSiteSetting extends BaseEntity
@Excel(name = "装机功率") @Excel(name = "装机功率")
private BigDecimal installPower; private BigDecimal installPower;
/** 站点id */
@Excel(name = "站点id")
private String siteId;
public void setId(Long id) public void setId(Long id)
{ {
this.id = id; this.id = id;
@ -130,6 +134,16 @@ public class EmsSiteSetting extends BaseEntity
return installPower; return installPower;
} }
public void setSiteId(String siteId)
{
this.siteId = siteId;
}
public String getSiteId()
{
return siteId;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@ -146,6 +160,7 @@ public class EmsSiteSetting extends BaseEntity
.append("updateBy", getUpdateBy()) .append("updateBy", getUpdateBy())
.append("createTime", getCreateTime()) .append("createTime", getCreateTime())
.append("updateTime", getUpdateTime()) .append("updateTime", getUpdateTime())
.append("siteId", getSiteId())
.toString(); .toString();
} }
} }

View File

@ -0,0 +1,65 @@
package com.xzzn.ems.domain.vo;
import java.util.Date;
/**
* 单站监控-故障告警请求
*
*/
public class AlarmRecordListRequestVo {
/** 站点id */
private String siteId;
/** 设备类型 */
private String deviceType;
/** 告警等级 */
private String alarmLevel;
/** 告警发生时间 */
private String alarmStartTime;
/** 告警结束时间 */
private String alarmEndTime;
public String getSiteId() {
return siteId;
}
public void setSiteId(String siteId) {
this.siteId = siteId;
}
public String getDeviceType() {
return deviceType;
}
public void setDeviceType(String deviceType) {
this.deviceType = deviceType;
}
public String getAlarmLevel() {
return alarmLevel;
}
public void setAlarmLevel(String alarmLevel) {
this.alarmLevel = alarmLevel;
}
public String getAlarmStartTime() {
return alarmStartTime;
}
public void setAlarmStartTime(String alarmStartTime) {
this.alarmStartTime = alarmStartTime;
}
public String getAlarmEndTime() {
return alarmEndTime;
}
public void setAlarmEndTime(String alarmEndTime) {
this.alarmEndTime = alarmEndTime;
}
}

View File

@ -0,0 +1,78 @@
package com.xzzn.ems.domain.vo;
import com.xzzn.common.annotation.Excel;
import java.util.Date;
/**
* 单站监控-故障告警返回
*
*/
public class AlarmRecordListResponseVo {
/** 设备名称 */
private String deviceName;
/** 告警等级 */
private String alarmLevel;
/** 告警内容 */
private String alarmContent;
/** 告警发生时间 */
private Date alarmStartTime;
/** 告警结束时间 */
private Date alarmEndTime;
/** 状态 */
private String status;
public String getDeviceName() {
return deviceName;
}
public void setDeviceName(String deviceName) {
this.deviceName = deviceName;
}
public String getAlarmLevel() {
return alarmLevel;
}
public void setAlarmLevel(String alarmLevel) {
this.alarmLevel = alarmLevel;
}
public String getAlarmContent() {
return alarmContent;
}
public void setAlarmContent(String alarmContent) {
this.alarmContent = alarmContent;
}
public Date getAlarmStartTime() {
return alarmStartTime;
}
public void setAlarmStartTime(Date alarmStartTime) {
this.alarmStartTime = alarmStartTime;
}
public Date getAlarmEndTime() {
return alarmEndTime;
}
public void setAlarmEndTime(Date alarmEndTime) {
this.alarmEndTime = alarmEndTime;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}

View File

@ -0,0 +1,98 @@
package com.xzzn.ems.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
/**
* 电表详细数据
*/
public class AmmeterDataDetailInfo
{
/** 类别 */
private String category;
/** 总 (kWh) */
private BigDecimal totalKwh;
/** 尖 (kWh) */
private BigDecimal sharpKwh;
/** 峰 (kWh) */
private BigDecimal peakKwh;
/** 平 (kWh) */
private BigDecimal flatKwh;
/** 谷 (kWh) */
private BigDecimal valleyKwh;
/** 总表设备Id */
private String deviceId;
/** 数据更新时间 */
private Date updateTime;
public BigDecimal getValleyKwh() {
return valleyKwh;
}
public void setValleyKwh(BigDecimal valleyKwh) {
this.valleyKwh = valleyKwh;
}
public BigDecimal getFlatKwh() {
return flatKwh;
}
public void setFlatKwh(BigDecimal flatKwh) {
this.flatKwh = flatKwh;
}
public BigDecimal getPeakKwh() {
return peakKwh;
}
public void setPeakKwh(BigDecimal peakKwh) {
this.peakKwh = peakKwh;
}
public BigDecimal getSharpKwh() {
return sharpKwh;
}
public void setSharpKwh(BigDecimal sharpKwh) {
this.sharpKwh = sharpKwh;
}
public BigDecimal getTotalKwh() {
return totalKwh;
}
public void setTotalKwh(BigDecimal totalKwh) {
this.totalKwh = totalKwh;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public String getDeviceId() {
return deviceId;
}
public void setDeviceId(String deviceId) {
this.deviceId = deviceId;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}

View File

@ -0,0 +1,56 @@
package com.xzzn.ems.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import java.util.List;
/**
* 电表数据
*/
public class AmmeterDataVo {
/** 电表名称 */
private String deviceName;
/** 通信状态 */
private String emsCommunicationStatus;
/** 数据更新时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date dataUpdateTime;
private List<AmmeterDataDetailInfo> ammeterDataDetailInfos;
public String getDeviceName() {
return deviceName;
}
public void setDeviceName(String deviceName) {
this.deviceName = deviceName;
}
public String getEmsCommunicationStatus() {
return emsCommunicationStatus;
}
public void setEmsCommunicationStatus(String emsCommunicationStatus) {
this.emsCommunicationStatus = emsCommunicationStatus;
}
public Date getDataUpdateTime() {
return dataUpdateTime;
}
public void setDataUpdateTime(Date dataUpdateTime) {
this.dataUpdateTime = dataUpdateTime;
}
public List<AmmeterDataDetailInfo> getAmmeterDataDetailInfos() {
return ammeterDataDetailInfos;
}
public void setAmmeterDataDetailInfos(List<AmmeterDataDetailInfo> ammeterDataDetailInfos) {
this.ammeterDataDetailInfos = ammeterDataDetailInfos;
}
}

View File

@ -18,13 +18,13 @@ public class BMSBatteryClusterDataList {
private BigDecimal minData; private BigDecimal minData;
/** 单体最小值ID */ /** 单体最小值ID */
private Long minDataID; private String minDataID;
/** 单体最大值 */ /** 单体最大值 */
private BigDecimal maxData; private BigDecimal maxData;
/** 单体最大值ID */ /** 单体最大值ID */
private Long maxDataID; private String maxDataID;
public String getDataName() { public String getDataName() {
return dataName; return dataName;
@ -50,11 +50,11 @@ public class BMSBatteryClusterDataList {
this.minData = minData; this.minData = minData;
} }
public Long getMinDataID() { public String getMinDataID() {
return minDataID; return minDataID;
} }
public void setMinDataID(Long minDataID) { public void setMinDataID(String minDataID) {
this.minDataID = minDataID; this.minDataID = minDataID;
} }
@ -66,11 +66,11 @@ public class BMSBatteryClusterDataList {
this.maxData = maxData; this.maxData = maxData;
} }
public Long getMaxDataID() { public String getMaxDataID() {
return maxDataID; return maxDataID;
} }
public void setMaxDataID(Long maxDataID) { public void setMaxDataID(String maxDataID) {
this.maxDataID = maxDataID; this.maxDataID = maxDataID;
} }
} }

View File

@ -52,10 +52,55 @@ public class BMSBatteryClusterVo {
private BigDecimal currentSoc; private BigDecimal currentSoc;
/** 站点id */ /** 站点id */
private Long siteId; private String siteId;
/** 设备唯一标识符 */ /** 设备唯一标识符 */
private Long deviceId; private String deviceId;
/** 单体温度平均值 */
private BigDecimal avgTemp;
/** 单体温度最小值 */
private BigDecimal minTemp;
/** 单体温度最小值ID */
private String minTempID;
/** 单体温度最大值 */
private BigDecimal maxTemp;
/** 单体温度最大值ID */
private String maxTempID;
/** 单体电压平均值 */
private BigDecimal avgVoltage;
/** 单体电压最小值 */
private BigDecimal minVoltage;
/** 单体电压最小值ID */
private String minVoltageID;
/** 单体电压最大值 */
private BigDecimal maxVoltage;
/** 单体电压最大值ID */
private String maxVoltageID;
/** 单体Soc平均值 */
private BigDecimal avgSoc;
/** 单体Soc最小值 */
private BigDecimal minSoc;
/** 单体Soc最小值ID */
private String minSocID;
/** 单体Soc最大值 */
private BigDecimal maxSoc;
/** 单体Soc最大值ID */
private String maxSocID;
private List<BMSBatteryClusterDataList> batteryDataList; private List<BMSBatteryClusterDataList> batteryDataList;
@ -171,19 +216,19 @@ public class BMSBatteryClusterVo {
this.currentSoc = currentSoc; this.currentSoc = currentSoc;
} }
public Long getSiteId() { public String getSiteId() {
return siteId; return siteId;
} }
public void setSiteId(Long siteId) { public void setSiteId(String siteId) {
this.siteId = siteId; this.siteId = siteId;
} }
public Long getDeviceId() { public String getDeviceId() {
return deviceId; return deviceId;
} }
public void setDeviceId(Long deviceId) { public void setDeviceId(String deviceId) {
this.deviceId = deviceId; this.deviceId = deviceId;
} }
@ -194,4 +239,124 @@ public class BMSBatteryClusterVo {
public void setBatteryDataList(List<BMSBatteryClusterDataList> batteryDataList) { public void setBatteryDataList(List<BMSBatteryClusterDataList> batteryDataList) {
this.batteryDataList = batteryDataList; this.batteryDataList = batteryDataList;
} }
public String getMaxSocID() {
return maxSocID;
}
public void setMaxSocID(String maxSocID) {
this.maxSocID = maxSocID;
}
public BigDecimal getMaxSoc() {
return maxSoc;
}
public void setMaxSoc(BigDecimal maxSoc) {
this.maxSoc = maxSoc;
}
public String getMinSocID() {
return minSocID;
}
public void setMinSocID(String minSocID) {
this.minSocID = minSocID;
}
public BigDecimal getMinSoc() {
return minSoc;
}
public void setMinSoc(BigDecimal minSoc) {
this.minSoc = minSoc;
}
public BigDecimal getAvgSoc() {
return avgSoc;
}
public void setAvgSoc(BigDecimal avgSoc) {
this.avgSoc = avgSoc;
}
public String getMaxVoltageID() {
return maxVoltageID;
}
public void setMaxVoltageID(String maxVoltageID) {
this.maxVoltageID = maxVoltageID;
}
public BigDecimal getMaxVoltage() {
return maxVoltage;
}
public void setMaxVoltage(BigDecimal maxVoltage) {
this.maxVoltage = maxVoltage;
}
public String getMinVoltageID() {
return minVoltageID;
}
public void setMinVoltageID(String minVoltageID) {
this.minVoltageID = minVoltageID;
}
public BigDecimal getMinVoltage() {
return minVoltage;
}
public void setMinVoltage(BigDecimal minVoltage) {
this.minVoltage = minVoltage;
}
public BigDecimal getAvgVoltage() {
return avgVoltage;
}
public void setAvgVoltage(BigDecimal avgVoltage) {
this.avgVoltage = avgVoltage;
}
public String getMaxTempID() {
return maxTempID;
}
public void setMaxTempID(String maxTempID) {
this.maxTempID = maxTempID;
}
public BigDecimal getMaxTemp() {
return maxTemp;
}
public void setMaxTemp(BigDecimal maxTemp) {
this.maxTemp = maxTemp;
}
public String getMinTempID() {
return minTempID;
}
public void setMinTempID(String minTempID) {
this.minTempID = minTempID;
}
public BigDecimal getMinTemp() {
return minTemp;
}
public void setMinTemp(BigDecimal minTemp) {
this.minTemp = minTemp;
}
public BigDecimal getAvgTemp() {
return avgTemp;
}
public void setAvgTemp(BigDecimal avgTemp) {
this.avgTemp = avgTemp;
}
} }

View File

@ -9,7 +9,7 @@ public class BMSBatteryDataList {
/** /**
* 簇号 * 簇号
*/ */
private Long clusterId; private String clusterId;
/** 簇电压 (V) */ /** 簇电压 (V) */
private BigDecimal clusterVoltage; private BigDecimal clusterVoltage;
@ -33,16 +33,16 @@ public class BMSBatteryDataList {
private BigDecimal minTemperature; private BigDecimal minTemperature;
/** 换电站id */ /** 换电站id */
private Long siteId; private String siteId;
/** 堆id */ /** 堆id */
private Long stackDeviceId; private String stackDeviceId;
public Long getClusterId() { public String getClusterId() {
return clusterId; return clusterId;
} }
public void setClusterId(Long clusterId) { public void setClusterId(String clusterId) {
this.clusterId = clusterId; this.clusterId = clusterId;
} }

View File

@ -52,10 +52,10 @@ public class BMSOverViewVo {
private BigDecimal currentSoc; private BigDecimal currentSoc;
/** 站点id */ /** 站点id */
private Long siteId; private String siteId;
/** 设备唯一标识符 */ /** 设备唯一标识符 */
private Long deviceId; private String deviceId;
private List<BMSBatteryDataList> batteryDataList; private List<BMSBatteryDataList> batteryDataList;
@ -171,19 +171,19 @@ public class BMSOverViewVo {
this.currentSoc = currentSoc; this.currentSoc = currentSoc;
} }
public Long getDeviceId() { public String getDeviceId() {
return deviceId; return deviceId;
} }
public void setDeviceId(Long deviceId) { public void setDeviceId(String deviceId) {
this.deviceId = deviceId; this.deviceId = deviceId;
} }
public Long getSiteId() { public String getSiteId() {
return siteId; return siteId;
} }
public void setSiteId(Long siteId) { public void setSiteId(String siteId) {
this.siteId = siteId; this.siteId = siteId;
} }

View File

@ -8,10 +8,10 @@ import java.math.BigDecimal;
public class BatteryClusterDataDetailVo { public class BatteryClusterDataDetailVo {
/** 设备id */ /** 设备id */
private Long siteId; private String siteId;
/** 电池簇id */ /** 电池簇id */
private Long clusterId; private String clusterId;
/** 电压平均值 */ /** 电压平均值 */
private BigDecimal avgVoltage; private BigDecimal avgVoltage;
@ -40,19 +40,19 @@ public class BatteryClusterDataDetailVo {
/** soc最小值 */ /** soc最小值 */
private BigDecimal minSoc; private BigDecimal minSoc;
public Long getSiteId() { public String getSiteId() {
return siteId; return siteId;
} }
public void setSiteId(Long siteId) { public void setSiteId(String siteId) {
this.siteId = siteId; this.siteId = siteId;
} }
public Long getClusterId() { public String getClusterId() {
return clusterId; return clusterId;
} }
public void setClusterId(Long clusterId) { public void setClusterId(String clusterId) {
this.clusterId = clusterId; this.clusterId = clusterId;
} }

View File

@ -0,0 +1,76 @@
package com.xzzn.ems.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
/**
* 单站监控-单体电池数据
*
*/
public class BatteryDataStatsListVo {
/** 单体电池设备id */
private String deviceId;
/** 电压 (V) */
private BigDecimal voltage;
/** 温度 (℃) */
private BigDecimal temperature;
/** SOC (%) */
private BigDecimal soc;
/** SOH (%) */
private BigDecimal soh;
private Date updateTime;
public String getDeviceId() {
return deviceId;
}
public void setDeviceId(String deviceId) {
this.deviceId = deviceId;
}
public BigDecimal getVoltage() {
return voltage;
}
public void setVoltage(BigDecimal voltage) {
this.voltage = voltage;
}
public BigDecimal getTemperature() {
return temperature;
}
public void setTemperature(BigDecimal temperature) {
this.temperature = temperature;
}
public BigDecimal getSoc() {
return soc;
}
public void setSoc(BigDecimal soc) {
this.soc = soc;
}
public BigDecimal getSoh() {
return soh;
}
public void setSoh(BigDecimal soh) {
this.soh = soh;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}

View File

@ -25,10 +25,10 @@ public class PcsBranchInfo
private BigDecimal dcCurrent; private BigDecimal dcCurrent;
/** 站点id */ /** 站点id */
private Long siteId; private String siteId;
/** 设备唯一标识符 */ /** 设备唯一标识符 */
private Long deviceId; private String deviceId;
/** 支路id */ /** 支路id */
private Long branchId; private Long branchId;
@ -65,19 +65,19 @@ public class PcsBranchInfo
this.dcCurrent = dcCurrent; this.dcCurrent = dcCurrent;
} }
public Long getSiteId() { public String getSiteId() {
return siteId; return siteId;
} }
public void setSiteId(Long siteId) { public void setSiteId(String siteId) {
this.siteId = siteId; this.siteId = siteId;
} }
public Long getDeviceId() { public String getDeviceId() {
return deviceId; return deviceId;
} }
public void setDeviceId(Long deviceId) { public void setDeviceId(String deviceId) {
this.deviceId = deviceId; this.deviceId = deviceId;
} }

View File

@ -81,29 +81,29 @@ public class PcsDetailInfoVo {
private BigDecimal acFrequency; private BigDecimal acFrequency;
/** 站点id */ /** 站点id */
private Long siteId; private String siteId;
/** 设备唯一标识符 */ /** 设备唯一标识符 */
private Long deviceId; private String deviceId;
/** 设备名称 */ /** 设备名称 */
private String deviceName; private String deviceName;
private List<PcsBranchInfo> pcsBranchInfoList; private List<PcsBranchInfo> pcsBranchInfoList;
public Long getDeviceId() { public String getDeviceId() {
return deviceId; return deviceId;
} }
public void setDeviceId(Long deviceId) { public void setDeviceId(String deviceId) {
this.deviceId = deviceId; this.deviceId = deviceId;
} }
public Long getSiteId() { public String getSiteId() {
return siteId; return siteId;
} }
public void setSiteId(Long siteId) { public void setSiteId(String siteId) {
this.siteId = siteId; this.siteId = siteId;
} }

View File

@ -6,7 +6,7 @@ import java.math.BigDecimal;
* 单站监控-设备监控-实时运行头部行数据 * 单站监控-设备监控-实时运行头部行数据
* *
*/ */
public class SiteMonitorRuningHeadInfoVo { public class SiteMonitorRunningHeadInfoVo {
/** /**
* 实时有功功率 * 实时有功功率
*/ */
@ -37,6 +37,11 @@ public class SiteMonitorRuningHeadInfoVo {
*/ */
private BigDecimal dayDisChargedCap; private BigDecimal dayDisChargedCap;
/**
* 站点id
*/
private String siteId;
public BigDecimal getTotalActivePower() { public BigDecimal getTotalActivePower() {
return totalActivePower; return totalActivePower;
} }
@ -84,4 +89,12 @@ public class SiteMonitorRuningHeadInfoVo {
public void setDayDisChargedCap(BigDecimal dayDisChargedCap) { public void setDayDisChargedCap(BigDecimal dayDisChargedCap) {
this.dayDisChargedCap = dayDisChargedCap; this.dayDisChargedCap = dayDisChargedCap;
} }
public String getSiteId() {
return siteId;
}
public void setSiteId(String siteId) {
this.siteId = siteId;
}
} }

View File

@ -2,9 +2,7 @@ package com.xzzn.ems.mapper;
import java.util.List; import java.util.List;
import com.xzzn.ems.domain.EmsAlarmRecords; import com.xzzn.ems.domain.EmsAlarmRecords;
import com.xzzn.ems.domain.vo.AlarmTrendList; import com.xzzn.ems.domain.vo.*;
import com.xzzn.ems.domain.vo.DeviceAlarmProportionList;
import com.xzzn.ems.domain.vo.SiteMonitorHomeAlarmVo;
/** /**
* 告警记录Mapper接口 * 告警记录Mapper接口
@ -66,7 +64,7 @@ public interface EmsAlarmRecordsMapper
* 根据站点id获取告警记录 * 根据站点id获取告警记录
* *
*/ */
public List<SiteMonitorHomeAlarmVo> getAlarmRecordsBySiteId(Long siteId); public List<SiteMonitorHomeAlarmVo> getAlarmRecordsBySiteId(String siteId);
/** /**
* 获取告警趋势数据 * 获取告警趋势数据
@ -79,4 +77,6 @@ public interface EmsAlarmRecordsMapper
* *
*/ */
public List<DeviceAlarmProportionList> getDeviceAlarmPropList(); public List<DeviceAlarmProportionList> getDeviceAlarmPropList();
public List<AlarmRecordListResponseVo> getAlarmRecordDetailList(AlarmRecordListRequestVo requestVo);
} }

View File

@ -0,0 +1,70 @@
package com.xzzn.ems.mapper;
import java.util.List;
import com.xzzn.ems.domain.EmsAmmeterData;
import com.xzzn.ems.domain.vo.AmmeterDataDetailInfo;
import org.apache.ibatis.annotations.Param;
/**
* 总数据Mapper接口
*
* @author xzzn
* @date 2025-06-27
*/
public interface EmsAmmeterDataMapper
{
/**
* 查询总数据
*
* @param id 总数据主键
* @return 总数据
*/
public EmsAmmeterData selectEmsAmmeterDataById(Long id);
/**
* 查询总数据列表
*
* @param emsAmmeterData 总数据
* @return 总数据集合
*/
public List<EmsAmmeterData> selectEmsAmmeterDataList(EmsAmmeterData emsAmmeterData);
/**
* 新增总数据
*
* @param emsAmmeterData 总数据
* @return 结果
*/
public int insertEmsAmmeterData(EmsAmmeterData emsAmmeterData);
/**
* 修改总数据
*
* @param emsAmmeterData 总数据
* @return 结果
*/
public int updateEmsAmmeterData(EmsAmmeterData emsAmmeterData);
/**
* 删除总数据
*
* @param id 总数据主键
* @return 结果
*/
public int deleteEmsAmmeterDataById(Long id);
/**
* 批量删除总数据
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteEmsAmmeterDataByIds(Long[] ids);
/**
* 获取总表详细数据
* @param siteId
* @return
*/
public List<AmmeterDataDetailInfo> getAmmeterDetailInfo(@Param("siteId")String siteId,@Param("deviceId") String deviceId);
}

View File

@ -67,7 +67,7 @@ public interface EmsBatteryClusterMapper
* @param siteId * @param siteId
* @return * @return
*/ */
public List<BMSBatteryClusterVo> getBMSBatteryCluster(Long siteId); public List<BMSBatteryClusterVo> getBMSBatteryCluster(String siteId);
/** /**
* 根据site_di和堆id获取簇数据和单体数据 * 根据site_di和堆id获取簇数据和单体数据
@ -75,5 +75,5 @@ public interface EmsBatteryClusterMapper
* @param stackDeviceId * @param stackDeviceId
* @return * @return
*/ */
public List<BMSBatteryDataList> getBmsBatteryData(@Param("siteId")Long siteId, @Param("stackDeviceId")Long stackDeviceId); public List<BMSBatteryDataList> getBmsBatteryData(@Param("siteId")String siteId, @Param("stackDeviceId")String stackDeviceId);
} }

View File

@ -4,9 +4,8 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import com.xzzn.ems.domain.EmsBatteryData; import com.xzzn.ems.domain.EmsBatteryData;
import com.xzzn.ems.domain.vo.BMSBatteryClusterDataList;
import com.xzzn.ems.domain.vo.BatteryClusterDataDetailVo; import com.xzzn.ems.domain.vo.BatteryClusterDataDetailVo;
import org.apache.ibatis.annotations.Mapper; import com.xzzn.ems.domain.vo.BatteryDataStatsListVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
/** /**
@ -70,7 +69,7 @@ public interface EmsBatteryDataMapper
* @param siteId * @param siteId
* @return * @return
*/ */
public EmsBatteryData getBatteryDataBySiteId(Long siteId); public EmsBatteryData getBatteryDataBySiteId(String siteId);
/** /**
* 根据siteId和簇id获取单体数据 * 根据siteId和簇id获取单体数据
@ -78,7 +77,7 @@ public interface EmsBatteryDataMapper
* @param clusterDeviceId * @param clusterDeviceId
* @return * @return
*/ */
public BatteryClusterDataDetailVo getBatteryDataByClusterId(@Param("siteId")Long siteId, @Param("clusterDeviceId")Long clusterDeviceId); public BatteryClusterDataDetailVo getBatteryDataByClusterId(@Param("siteId")String siteId, @Param("clusterDeviceId")String clusterDeviceId);
/** /**
* 获取最大最小的单体id * 获取最大最小的单体id
@ -86,4 +85,14 @@ public interface EmsBatteryDataMapper
* @return * @return
*/ */
public List<Map<String, Object>> getDataIdsMap(BatteryClusterDataDetailVo dataVo); public List<Map<String, Object>> getDataIdsMap(BatteryClusterDataDetailVo dataVo);
/**
* 根据电池簇设备id获取下面所有单体电池
* @param clusterDeviceId
* @return
*/
public List<BatteryDataStatsListVo> getAllBatteryDataByClusterId(String clusterDeviceId);
int insertEmsBatteryDataList(List<EmsBatteryData> emsBatteryDataList);
} }

View File

@ -65,5 +65,5 @@ public interface EmsBatteryStackMapper
* @param siteId * @param siteId
* @return * @return
*/ */
public List<BMSOverViewVo> selectEmsBatteryStackBySiteId(Long siteId); public List<BMSOverViewVo> selectEmsBatteryStackBySiteId(String siteId);
} }

View File

@ -64,5 +64,5 @@ public interface EmsCoolingDataMapper
* @param siteId * @param siteId
* @return * @return
*/ */
public List<EmsCoolingData> getCoolingDataList(Long siteId); public List<EmsCoolingData> getCoolingDataList(String siteId);
} }

View File

@ -1,6 +1,8 @@
package com.xzzn.ems.mapper; package com.xzzn.ems.mapper;
import java.util.List; import java.util.List;
import java.util.Map;
import com.xzzn.ems.domain.EmsDevicesSetting; import com.xzzn.ems.domain.EmsDevicesSetting;
/** /**
@ -58,4 +60,24 @@ public interface EmsDevicesSettingMapper
* @return 结果 * @return 结果
*/ */
public int deleteEmsDevicesSettingByIds(Long[] ids); public int deleteEmsDevicesSettingByIds(Long[] ids);
/**
* 根据site_id获取所有电池堆
* @param siteId
* @return
*/
public List<Map<String, Object>> getAllStackInfoBySiteId(String siteId);
/**
* 根据电池堆id获取所有电池簇
* @param stackDeviceId
* @return
*/
public List<Map<String, Object>> getAllClusterInfoByStackId(String stackDeviceId);
/**
* 获取该设备下的所有电表
* @param siteId
* @return
*/
public List<EmsDevicesSetting> getAllBatteryDeviceBySiteId(String siteId);
} }

View File

@ -0,0 +1,62 @@
package com.xzzn.ems.mapper;
import com.xzzn.ems.domain.EmsMqttMessage;
import java.util.List;
/**
* 【请填写功能名称】Mapper接口
*
* @author xzzn
* @date 2025-06-27
*/
public interface EmsMqttMessageMapper
{
/**
* 查询【请填写功能名称】
*
* @param id 【请填写功能名称】主键
* @return 【请填写功能名称】
*/
public EmsMqttMessage selectEmsMqttMessageById(Long id);
/**
* 查询【请填写功能名称】列表
*
* @param emsMqttMessage 【请填写功能名称】
* @return 【请填写功能名称】集合
*/
public List<EmsMqttMessage> selectEmsMqttMessageList(EmsMqttMessage emsMqttMessage);
/**
* 新增【请填写功能名称】
*
* @param emsMqttMessage 【请填写功能名称】
* @return 结果
*/
public int insertEmsMqttMessage(EmsMqttMessage emsMqttMessage);
/**
* 修改【请填写功能名称】
*
* @param emsMqttMessage 【请填写功能名称】
* @return 结果
*/
public int updateEmsMqttMessage(EmsMqttMessage emsMqttMessage);
/**
* 删除【请填写功能名称】
*
* @param id 【请填写功能名称】主键
* @return 结果
*/
public int deleteEmsMqttMessageById(Long id);
/**
* 批量删除【请填写功能名称】
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteEmsMqttMessageByIds(Long[] ids);
}

View File

@ -9,7 +9,7 @@ import org.apache.ibatis.annotations.Param;
* pcs支路数据Mapper接口 * pcs支路数据Mapper接口
* *
* @author xzzn * @author xzzn
* @date 2025-06-24 * @date 2025-06-29
*/ */
public interface EmsPcsBranchDataMapper public interface EmsPcsBranchDataMapper
{ {
@ -67,5 +67,7 @@ public interface EmsPcsBranchDataMapper
* @param deviceId * @param deviceId
* @return * @return
*/ */
public List<PcsBranchInfo> getPcsBranchInfoList(@Param("siteId")Long siteId, @Param("deviceId")Long deviceId); public List<PcsBranchInfo> getPcsBranchInfoList(@Param("siteId")String siteId, @Param("deviceId")String deviceId);
int insertPcsBranchDataList(List<EmsPcsBranchData> list);
} }

View File

@ -8,7 +8,8 @@ import com.xzzn.ems.domain.EmsPcsData;
import com.xzzn.ems.domain.vo.ElectricIndexList; import com.xzzn.ems.domain.vo.ElectricIndexList;
import com.xzzn.ems.domain.vo.PcsDetailInfoVo; import com.xzzn.ems.domain.vo.PcsDetailInfoVo;
import com.xzzn.ems.domain.vo.SiteMonitorDataVo; import com.xzzn.ems.domain.vo.SiteMonitorDataVo;
import com.xzzn.ems.domain.vo.SiteMonitorRuningHeadInfoVo; import com.xzzn.ems.domain.vo.SiteMonitorRunningHeadInfoVo;
import org.apache.ibatis.annotations.Param;
/** /**
* PCS数据Mapper接口 * PCS数据Mapper接口
@ -71,21 +72,14 @@ public interface EmsPcsDataMapper
* @param siteId * @param siteId
* @return * @return
*/ */
public List<SiteMonitorDataVo> getPcsDataBySiteId(Long siteId); public List<SiteMonitorDataVo> getPcsDataBySiteId(@Param("siteId")String siteId, @Param("limitTime")int limitTime);
/**
* 根据站点获取电网实时功率=sum总交流有功电率
* @param siteId
* @return
*/
public BigDecimal getGridNrtPower(Long siteId);
/** /**
* 根据站点获取设备监控的实时运行头信息 * 根据站点获取设备监控的实时运行头信息
* @param siteId * @param siteId
* @return * @return
*/ */
public SiteMonitorRuningHeadInfoVo getSiteRunningHeadInfo(Long siteId); public SiteMonitorRunningHeadInfoVo getSiteRunningHeadInfo(String siteId);
/** /**
* 获取每月的充电量和放电量 * 获取每月的充电量和放电量
@ -98,11 +92,11 @@ public interface EmsPcsDataMapper
* @param siteId * @param siteId
* @return * @return
*/ */
public List<PcsDetailInfoVo> getPcsDetailInfoBySiteId(Long siteId); public List<PcsDetailInfoVo> getPcsDetailInfoBySiteId(String siteId);
/** /**
* 获取总充+总放 * 获取总充+总放
* @return * @return
*/ */
public Map<String, BigDecimal> getPcsTotalChargeData(); public Map<String, BigDecimal> getPcsTotalChargeData(String siteId);
} }

View File

@ -65,4 +65,11 @@ public interface EmsSiteSettingMapper
* @return * @return
*/ */
public SiteTotalInfoVo getSiteTotalInfo(); public SiteTotalInfoVo getSiteTotalInfo();
/**
* 根据站点id获取站点信息
* @param siteId
* @return
*/
public EmsSiteSetting selectEmsSiteSettingBySiteId(String siteId);
} }

View File

@ -0,0 +1,70 @@
package com.xzzn.ems.service;
import java.util.List;
import com.xzzn.ems.domain.EmsAlarmRecords;
import com.xzzn.ems.domain.vo.AlarmRecordListRequestVo;
import com.xzzn.ems.domain.vo.AlarmRecordListResponseVo;
/**
* 告警记录Service接口
*
* @author xzzn
* @date 2025-06-29
*/
public interface IEmsAlarmRecordsService
{
/**
* 查询告警记录
*
* @param id 告警记录主键
* @return 告警记录
*/
public EmsAlarmRecords selectEmsAlarmRecordsById(Long id);
/**
* 查询告警记录列表
*
* @param emsAlarmRecords 告警记录
* @return 告警记录集合
*/
public List<EmsAlarmRecords> selectEmsAlarmRecordsList(EmsAlarmRecords emsAlarmRecords);
/**
* 新增告警记录
*
* @param emsAlarmRecords 告警记录
* @return 结果
*/
public int insertEmsAlarmRecords(EmsAlarmRecords emsAlarmRecords);
/**
* 修改告警记录
*
* @param emsAlarmRecords 告警记录
* @return 结果
*/
public int updateEmsAlarmRecords(EmsAlarmRecords emsAlarmRecords);
/**
* 批量删除告警记录
*
* @param ids 需要删除的告警记录主键集合
* @return 结果
*/
public int deleteEmsAlarmRecordsByIds(Long[] ids);
/**
* 删除告警记录信息
*
* @param id 告警记录主键
* @return 结果
*/
public int deleteEmsAlarmRecordsById(Long id);
/**
* 获取故障告警列表
* @param requestVo
* @return
*/
public List<AlarmRecordListResponseVo> getAlarmRecordDetailList(AlarmRecordListRequestVo requestVo);
}

View File

@ -0,0 +1,61 @@
package com.xzzn.ems.service;
import java.util.List;
import com.xzzn.ems.domain.EmsBatteryCluster;
/**
* 电池簇数据Service接口
*
* @author xzzn
* @date 2025-06-29
*/
public interface IEmsBatteryClusterService
{
/**
* 查询电池簇数据
*
* @param id 电池簇数据主键
* @return 电池簇数据
*/
public EmsBatteryCluster selectEmsBatteryClusterById(Long id);
/**
* 查询电池簇数据列表
*
* @param emsBatteryCluster 电池簇数据
* @return 电池簇数据集合
*/
public List<EmsBatteryCluster> selectEmsBatteryClusterList(EmsBatteryCluster emsBatteryCluster);
/**
* 新增电池簇数据
*
* @param emsBatteryCluster 电池簇数据
* @return 结果
*/
public int insertEmsBatteryCluster(EmsBatteryCluster emsBatteryCluster);
/**
* 修改电池簇数据
*
* @param emsBatteryCluster 电池簇数据
* @return 结果
*/
public int updateEmsBatteryCluster(EmsBatteryCluster emsBatteryCluster);
/**
* 批量删除电池簇数据
*
* @param ids 需要删除的电池簇数据主键集合
* @return 结果
*/
public int deleteEmsBatteryClusterByIds(Long[] ids);
/**
* 删除电池簇数据信息
*
* @param id 电池簇数据主键
* @return 结果
*/
public int deleteEmsBatteryClusterById(Long id);
}

View File

@ -0,0 +1,71 @@
package com.xzzn.ems.service;
import com.xzzn.ems.domain.EmsBatteryData;
import java.util.List;
/**
* 单体电池实时数据Service接口
*
* @author xzzn
* @date 2025-06-27
*/
public interface IEmsBatteryDataService
{
/**
* 查询单体电池实时数据
*
* @param id 单体电池实时数据主键
* @return 单体电池实时数据
*/
public EmsBatteryData selectEmsBatteryDataById(Long id);
/**
* 查询单体电池实时数据列表
*
* @param emsBatteryData 单体电池实时数据
* @return 单体电池实时数据集合
*/
public List<EmsBatteryData> selectEmsBatteryDataList(EmsBatteryData emsBatteryData);
/**
* 新增单体电池实时数据
*
* @param emsBatteryData 单体电池实时数据
* @return 结果
*/
public int insertEmsBatteryData(EmsBatteryData emsBatteryData);
/**
* 修改单体电池实时数据
*
* @param emsBatteryData 单体电池实时数据
* @return 结果
*/
public int updateEmsBatteryData(EmsBatteryData emsBatteryData);
/**
* 批量删除单体电池实时数据
*
* @param ids 需要删除的单体电池实时数据主键集合
* @return 结果
*/
public int deleteEmsBatteryDataByIds(Long[] ids);
/**
* 删除单体电池实时数据信息
*
* @param id 单体电池实时数据主键
* @return 结果
*/
public int deleteEmsBatteryDataById(Long id);
/**
* 新增单体电池实时数据
*
* @param emsBatteryDataList 单体电池实时数据
* @return 结果
*/
public int insertEmsBatteryDataList(List<EmsBatteryData> emsBatteryDataList);
}

View File

@ -0,0 +1,61 @@
package com.xzzn.ems.service;
import java.util.List;
import com.xzzn.ems.domain.EmsBatteryStack;
/**
* 电池堆数据Service接口
*
* @author xzzn
* @date 2025-06-29
*/
public interface IEmsBatteryStackService
{
/**
* 查询电池堆数据
*
* @param id 电池堆数据主键
* @return 电池堆数据
*/
public EmsBatteryStack selectEmsBatteryStackById(Long id);
/**
* 查询电池堆数据列表
*
* @param emsBatteryStack 电池堆数据
* @return 电池堆数据集合
*/
public List<EmsBatteryStack> selectEmsBatteryStackList(EmsBatteryStack emsBatteryStack);
/**
* 新增电池堆数据
*
* @param emsBatteryStack 电池堆数据
* @return 结果
*/
public int insertEmsBatteryStack(EmsBatteryStack emsBatteryStack);
/**
* 修改电池堆数据
*
* @param emsBatteryStack 电池堆数据
* @return 结果
*/
public int updateEmsBatteryStack(EmsBatteryStack emsBatteryStack);
/**
* 批量删除电池堆数据
*
* @param ids 需要删除的电池堆数据主键集合
* @return 结果
*/
public int deleteEmsBatteryStackByIds(Long[] ids);
/**
* 删除电池堆数据信息
*
* @param id 电池堆数据主键
* @return 结果
*/
public int deleteEmsBatteryStackById(Long id);
}

View File

@ -0,0 +1,62 @@
package com.xzzn.ems.service;
import com.xzzn.ems.domain.EmsMqttMessage;
import java.util.List;
/**
* 【请填写功能名称】Service接口
*
* @author xzzn
* @date 2025-06-27
*/
public interface IEmsMqttMessageService
{
/**
* 查询【请填写功能名称】
*
* @param id 【请填写功能名称】主键
* @return 【请填写功能名称】
*/
public EmsMqttMessage selectEmsMqttMessageById(Long id);
/**
* 查询【请填写功能名称】列表
*
* @param emsMqttMessage 【请填写功能名称】
* @return 【请填写功能名称】集合
*/
public List<EmsMqttMessage> selectEmsMqttMessageList(EmsMqttMessage emsMqttMessage);
/**
* 新增【请填写功能名称】
*
* @param emsMqttMessage 【请填写功能名称】
* @return 结果
*/
public int insertEmsMqttMessage(EmsMqttMessage emsMqttMessage);
/**
* 修改【请填写功能名称】
*
* @param emsMqttMessage 【请填写功能名称】
* @return 结果
*/
public int updateEmsMqttMessage(EmsMqttMessage emsMqttMessage);
/**
* 批量删除【请填写功能名称】
*
* @param ids 需要删除的【请填写功能名称】主键集合
* @return 结果
*/
public int deleteEmsMqttMessageByIds(Long[] ids);
/**
* 删除【请填写功能名称】信息
*
* @param id 【请填写功能名称】主键
* @return 结果
*/
public int deleteEmsMqttMessageById(Long id);
}

View File

@ -0,0 +1,63 @@
package com.xzzn.ems.service;
import java.util.List;
import com.xzzn.ems.domain.EmsPcsBranchData;
/**
* pcs支路数据Service接口
*
* @author xzzn
* @date 2025-06-29
*/
public interface IEmsPcsBranchDataService
{
/**
* 查询pcs支路数据
*
* @param id pcs支路数据主键
* @return pcs支路数据
*/
public EmsPcsBranchData selectEmsPcsBranchDataById(Long id);
/**
* 查询pcs支路数据列表
*
* @param emsPcsBranchData pcs支路数据
* @return pcs支路数据集合
*/
public List<EmsPcsBranchData> selectEmsPcsBranchDataList(EmsPcsBranchData emsPcsBranchData);
/**
* 新增pcs支路数据
*
* @param emsPcsBranchData pcs支路数据
* @return 结果
*/
public int insertEmsPcsBranchData(EmsPcsBranchData emsPcsBranchData);
/**
* 修改pcs支路数据
*
* @param emsPcsBranchData pcs支路数据
* @return 结果
*/
public int updateEmsPcsBranchData(EmsPcsBranchData emsPcsBranchData);
/**
* 批量删除pcs支路数据
*
* @param ids 需要删除的pcs支路数据主键集合
* @return 结果
*/
public int deleteEmsPcsBranchDataByIds(Long[] ids);
/**
* 删除pcs支路数据信息
*
* @param id pcs支路数据主键
* @return 结果
*/
public int deleteEmsPcsBranchDataById(Long id);
int insertEmsPcsBranchDataList(List<EmsPcsBranchData> list);
}

View File

@ -0,0 +1,62 @@
package com.xzzn.ems.service;
import com.xzzn.ems.domain.EmsPcsData;
import java.util.List;
/**
* PCS数据Service接口
*
* @author xzzn
* @date 2025-06-27
*/
public interface IEmsPcsDataService
{
/**
* 查询PCS数据
*
* @param id PCS数据主键
* @return PCS数据
*/
public EmsPcsData selectEmsPcsDataById(Long id);
/**
* 查询PCS数据列表
*
* @param emsPcsData PCS数据
* @return PCS数据集合
*/
public List<EmsPcsData> selectEmsPcsDataList(EmsPcsData emsPcsData);
/**
* 新增PCS数据
*
* @param emsPcsData PCS数据
* @return 结果
*/
public int insertEmsPcsData(EmsPcsData emsPcsData);
/**
* 修改PCS数据
*
* @param emsPcsData PCS数据
* @return 结果
*/
public int updateEmsPcsData(EmsPcsData emsPcsData);
/**
* 批量删除PCS数据
*
* @param ids 需要删除的PCS数据主键集合
* @return 结果
*/
public int deleteEmsPcsDataByIds(Long[] ids);
/**
* 删除PCS数据信息
*
* @param id PCS数据主键
* @return 结果
*/
public int deleteEmsPcsDataById(Long id);
}

View File

@ -4,6 +4,7 @@ import com.xzzn.ems.domain.EmsSiteSetting;
import com.xzzn.ems.domain.vo.SiteTotalInfoVo; import com.xzzn.ems.domain.vo.SiteTotalInfoVo;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 站点信息 服务层 * 站点信息 服务层
@ -16,4 +17,10 @@ public interface IEmsSiteService
public SiteTotalInfoVo getSiteTotalInfo(); public SiteTotalInfoVo getSiteTotalInfo();
public List<Map<String,Object>> getAllStackInfo(String siteId);
public List<Map<String,Object>> getAllClusterInfo(String stackDeviceId);
} }

View File

@ -13,7 +13,7 @@ public interface IHomePageService
public SiteTotalInfoVo getSiteTotalInfo(); public SiteTotalInfoVo getSiteTotalInfo();
public SingleSiteBaseInfo getSingleSiteBaseInfo(Long siteId); public SingleSiteBaseInfo getSingleSiteBaseInfo(String siteId);
public HomePageDataViewVo getHomePageDataList(); public HomePageDataViewVo getHomePageDataList();
} }

View File

@ -12,18 +12,22 @@ import java.util.List;
public interface ISingleSiteService public interface ISingleSiteService
{ {
public SiteMonitorHomeVo getSiteMonitorDataVo(Long siteId); public SiteMonitorHomeVo getSiteMonitorDataVo(String siteId);
public SiteMonitorRuningHeadInfoVo getSiteRunningHeadInfo(Long siteId); public SiteMonitorRunningHeadInfoVo getSiteRunningHeadInfo(String siteId);
public SiteMonitorRuningInfoVo getRunningGraph(Long siteId); public SiteMonitorRuningInfoVo getRunningGraph(String siteId);
public List<PcsDetailInfoVo> getPcsDetailInfo(Long siteId); public List<PcsDetailInfoVo> getPcsDetailInfo(String siteId);
public List<BMSOverViewVo> getBMSOverView(Long siteId); public List<BMSOverViewVo> getBMSOverView(String siteId);
public List<BMSBatteryClusterVo> getBMSBatteryCluster(Long siteId); public List<BMSBatteryClusterVo> getBMSBatteryCluster(String siteId);
public List<EmsCoolingData> getCoolingDataList(Long siteId); public List<EmsCoolingData> getCoolingDataList(String siteId);
public List<BatteryDataStatsListVo> getClusterDataInfoList(String clusterDeviceId);
public List<AmmeterDataVo> getAmmeterDataList(String siteId);
} }

View File

@ -0,0 +1,103 @@
package com.xzzn.ems.service.impl;
import java.util.List;
import com.xzzn.common.utils.DateUtils;
import com.xzzn.ems.domain.vo.AlarmRecordListRequestVo;
import com.xzzn.ems.domain.vo.AlarmRecordListResponseVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.xzzn.ems.mapper.EmsAlarmRecordsMapper;
import com.xzzn.ems.domain.EmsAlarmRecords;
import com.xzzn.ems.service.IEmsAlarmRecordsService;
/**
* 告警记录Service业务层处理
*
* @author xzzn
* @date 2025-06-29
*/
@Service
public class EmsAlarmRecordsServiceImpl implements IEmsAlarmRecordsService
{
@Autowired
private EmsAlarmRecordsMapper emsAlarmRecordsMapper;
/**
* 查询告警记录
*
* @param id 告警记录主键
* @return 告警记录
*/
@Override
public EmsAlarmRecords selectEmsAlarmRecordsById(Long id)
{
return emsAlarmRecordsMapper.selectEmsAlarmRecordsById(id);
}
/**
* 查询告警记录列表
*
* @param emsAlarmRecords 告警记录
* @return 告警记录
*/
@Override
public List<EmsAlarmRecords> selectEmsAlarmRecordsList(EmsAlarmRecords emsAlarmRecords)
{
return emsAlarmRecordsMapper.selectEmsAlarmRecordsList(emsAlarmRecords);
}
/**
* 新增告警记录
*
* @param emsAlarmRecords 告警记录
* @return 结果
*/
@Override
public int insertEmsAlarmRecords(EmsAlarmRecords emsAlarmRecords)
{
emsAlarmRecords.setCreateTime(DateUtils.getNowDate());
return emsAlarmRecordsMapper.insertEmsAlarmRecords(emsAlarmRecords);
}
/**
* 修改告警记录
*
* @param emsAlarmRecords 告警记录
* @return 结果
*/
@Override
public int updateEmsAlarmRecords(EmsAlarmRecords emsAlarmRecords)
{
emsAlarmRecords.setUpdateTime(DateUtils.getNowDate());
return emsAlarmRecordsMapper.updateEmsAlarmRecords(emsAlarmRecords);
}
/**
* 批量删除告警记录
*
* @param ids 需要删除的告警记录主键
* @return 结果
*/
@Override
public int deleteEmsAlarmRecordsByIds(Long[] ids)
{
return emsAlarmRecordsMapper.deleteEmsAlarmRecordsByIds(ids);
}
/**
* 删除告警记录信息
*
* @param id 告警记录主键
* @return 结果
*/
@Override
public int deleteEmsAlarmRecordsById(Long id)
{
return emsAlarmRecordsMapper.deleteEmsAlarmRecordsById(id);
}
@Override
public List<AlarmRecordListResponseVo> getAlarmRecordDetailList(AlarmRecordListRequestVo requestVo) {
return emsAlarmRecordsMapper.getAlarmRecordDetailList(requestVo);
}
}

View File

@ -0,0 +1,96 @@
package com.xzzn.ems.service.impl;
import java.util.List;
import com.xzzn.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.xzzn.ems.mapper.EmsBatteryClusterMapper;
import com.xzzn.ems.domain.EmsBatteryCluster;
import com.xzzn.ems.service.IEmsBatteryClusterService;
/**
* 电池簇数据Service业务层处理
*
* @author xzzn
* @date 2025-06-29
*/
@Service
public class EmsBatteryClusterServiceImpl implements IEmsBatteryClusterService
{
@Autowired
private EmsBatteryClusterMapper emsBatteryClusterMapper;
/**
* 查询电池簇数据
*
* @param id 电池簇数据主键
* @return 电池簇数据
*/
@Override
public EmsBatteryCluster selectEmsBatteryClusterById(Long id)
{
return emsBatteryClusterMapper.selectEmsBatteryClusterById(id);
}
/**
* 查询电池簇数据列表
*
* @param emsBatteryCluster 电池簇数据
* @return 电池簇数据
*/
@Override
public List<EmsBatteryCluster> selectEmsBatteryClusterList(EmsBatteryCluster emsBatteryCluster)
{
return emsBatteryClusterMapper.selectEmsBatteryClusterList(emsBatteryCluster);
}
/**
* 新增电池簇数据
*
* @param emsBatteryCluster 电池簇数据
* @return 结果
*/
@Override
public int insertEmsBatteryCluster(EmsBatteryCluster emsBatteryCluster)
{
emsBatteryCluster.setCreateTime(DateUtils.getNowDate());
return emsBatteryClusterMapper.insertEmsBatteryCluster(emsBatteryCluster);
}
/**
* 修改电池簇数据
*
* @param emsBatteryCluster 电池簇数据
* @return 结果
*/
@Override
public int updateEmsBatteryCluster(EmsBatteryCluster emsBatteryCluster)
{
emsBatteryCluster.setUpdateTime(DateUtils.getNowDate());
return emsBatteryClusterMapper.updateEmsBatteryCluster(emsBatteryCluster);
}
/**
* 批量删除电池簇数据
*
* @param ids 需要删除的电池簇数据主键
* @return 结果
*/
@Override
public int deleteEmsBatteryClusterByIds(Long[] ids)
{
return emsBatteryClusterMapper.deleteEmsBatteryClusterByIds(ids);
}
/**
* 删除电池簇数据信息
*
* @param id 电池簇数据主键
* @return 结果
*/
@Override
public int deleteEmsBatteryClusterById(Long id)
{
return emsBatteryClusterMapper.deleteEmsBatteryClusterById(id);
}
}

View File

@ -0,0 +1,104 @@
package com.xzzn.ems.service.impl;
import java.util.List;
import com.xzzn.common.utils.DateUtils;
import com.xzzn.ems.domain.EmsBatteryData;
import com.xzzn.ems.mapper.EmsBatteryDataMapper;
import com.xzzn.ems.service.IEmsBatteryDataService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* 单体电池实时数据Service业务层处理
*
* @author xzzn
* @date 2025-06-27
*/
@Service
public class EmsBatteryDataServiceImpl implements IEmsBatteryDataService
{
@Autowired
private EmsBatteryDataMapper emsBatteryDataMapper;
/**
* 查询单体电池实时数据
*
* @param id 单体电池实时数据主键
* @return 单体电池实时数据
*/
@Override
public EmsBatteryData selectEmsBatteryDataById(Long id)
{
return emsBatteryDataMapper.selectEmsBatteryDataById(id);
}
/**
* 查询单体电池实时数据列表
*
* @param emsBatteryData 单体电池实时数据
* @return 单体电池实时数据
*/
@Override
public List<EmsBatteryData> selectEmsBatteryDataList(EmsBatteryData emsBatteryData)
{
return emsBatteryDataMapper.selectEmsBatteryDataList(emsBatteryData);
}
/**
* 新增单体电池实时数据
*
* @param emsBatteryData 单体电池实时数据
* @return 结果
*/
@Override
public int insertEmsBatteryData(EmsBatteryData emsBatteryData)
{
emsBatteryData.setCreateTime(DateUtils.getNowDate());
return emsBatteryDataMapper.insertEmsBatteryData(emsBatteryData);
}
/**
* 修改单体电池实时数据
*
* @param emsBatteryData 单体电池实时数据
* @return 结果
*/
@Override
public int updateEmsBatteryData(EmsBatteryData emsBatteryData)
{
emsBatteryData.setUpdateTime(DateUtils.getNowDate());
return emsBatteryDataMapper.updateEmsBatteryData(emsBatteryData);
}
/**
* 批量删除单体电池实时数据
*
* @param ids 需要删除的单体电池实时数据主键
* @return 结果
*/
@Override
public int deleteEmsBatteryDataByIds(Long[] ids)
{
return emsBatteryDataMapper.deleteEmsBatteryDataByIds(ids);
}
/**
* 删除单体电池实时数据信息
*
* @param id 单体电池实时数据主键
* @return 结果
*/
@Override
public int deleteEmsBatteryDataById(Long id)
{
return emsBatteryDataMapper.deleteEmsBatteryDataById(id);
}
@Override
public int insertEmsBatteryDataList(List<EmsBatteryData> emsBatteryDataList) {
for (EmsBatteryData data : emsBatteryDataList) {
data.setCreateTime(DateUtils.getNowDate());
}
return emsBatteryDataMapper.insertEmsBatteryDataList(emsBatteryDataList);
}
}

View File

@ -0,0 +1,96 @@
package com.xzzn.ems.service.impl;
import java.util.List;
import com.xzzn.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.xzzn.ems.mapper.EmsBatteryStackMapper;
import com.xzzn.ems.domain.EmsBatteryStack;
import com.xzzn.ems.service.IEmsBatteryStackService;
/**
* 电池堆数据Service业务层处理
*
* @author xzzn
* @date 2025-06-29
*/
@Service
public class EmsBatteryStackServiceImpl implements IEmsBatteryStackService
{
@Autowired
private EmsBatteryStackMapper emsBatteryStackMapper;
/**
* 查询电池堆数据
*
* @param id 电池堆数据主键
* @return 电池堆数据
*/
@Override
public EmsBatteryStack selectEmsBatteryStackById(Long id)
{
return emsBatteryStackMapper.selectEmsBatteryStackById(id);
}
/**
* 查询电池堆数据列表
*
* @param emsBatteryStack 电池堆数据
* @return 电池堆数据
*/
@Override
public List<EmsBatteryStack> selectEmsBatteryStackList(EmsBatteryStack emsBatteryStack)
{
return emsBatteryStackMapper.selectEmsBatteryStackList(emsBatteryStack);
}
/**
* 新增电池堆数据
*
* @param emsBatteryStack 电池堆数据
* @return 结果
*/
@Override
public int insertEmsBatteryStack(EmsBatteryStack emsBatteryStack)
{
emsBatteryStack.setCreateTime(DateUtils.getNowDate());
return emsBatteryStackMapper.insertEmsBatteryStack(emsBatteryStack);
}
/**
* 修改电池堆数据
*
* @param emsBatteryStack 电池堆数据
* @return 结果
*/
@Override
public int updateEmsBatteryStack(EmsBatteryStack emsBatteryStack)
{
emsBatteryStack.setUpdateTime(DateUtils.getNowDate());
return emsBatteryStackMapper.updateEmsBatteryStack(emsBatteryStack);
}
/**
* 批量删除电池堆数据
*
* @param ids 需要删除的电池堆数据主键
* @return 结果
*/
@Override
public int deleteEmsBatteryStackByIds(Long[] ids)
{
return emsBatteryStackMapper.deleteEmsBatteryStackByIds(ids);
}
/**
* 删除电池堆数据信息
*
* @param id 电池堆数据主键
* @return 结果
*/
@Override
public int deleteEmsBatteryStackById(Long id)
{
return emsBatteryStackMapper.deleteEmsBatteryStackById(id);
}
}

View File

@ -0,0 +1,96 @@
package com.xzzn.ems.service.impl;
import java.util.List;
import com.xzzn.common.utils.DateUtils;
import com.xzzn.ems.domain.EmsMqttMessage;
import com.xzzn.ems.mapper.EmsMqttMessageMapper;
import com.xzzn.ems.service.IEmsMqttMessageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* 【请填写功能名称】Service业务层处理
*
* @author xzzn
* @date 2025-06-27
*/
@Service
public class EmsMqttMessageServiceImpl implements IEmsMqttMessageService
{
@Autowired
private EmsMqttMessageMapper emsMqttMessageMapper;
/**
* 查询【请填写功能名称】
*
* @param id 【请填写功能名称】主键
* @return 【请填写功能名称】
*/
@Override
public EmsMqttMessage selectEmsMqttMessageById(Long id)
{
return emsMqttMessageMapper.selectEmsMqttMessageById(id);
}
/**
* 查询【请填写功能名称】列表
*
* @param emsMqttMessage 【请填写功能名称】
* @return 【请填写功能名称】
*/
@Override
public List<EmsMqttMessage> selectEmsMqttMessageList(EmsMqttMessage emsMqttMessage)
{
return emsMqttMessageMapper.selectEmsMqttMessageList(emsMqttMessage);
}
/**
* 新增【请填写功能名称】
*
* @param emsMqttMessage 【请填写功能名称】
* @return 结果
*/
@Override
public int insertEmsMqttMessage(EmsMqttMessage emsMqttMessage)
{
emsMqttMessage.setCreateTime(DateUtils.getNowDate());
return emsMqttMessageMapper.insertEmsMqttMessage(emsMqttMessage);
}
/**
* 修改【请填写功能名称】
*
* @param emsMqttMessage 【请填写功能名称】
* @return 结果
*/
@Override
public int updateEmsMqttMessage(EmsMqttMessage emsMqttMessage)
{
emsMqttMessage.setUpdateTime(DateUtils.getNowDate());
return emsMqttMessageMapper.updateEmsMqttMessage(emsMqttMessage);
}
/**
* 批量删除【请填写功能名称】
*
* @param ids 需要删除的【请填写功能名称】主键
* @return 结果
*/
@Override
public int deleteEmsMqttMessageByIds(Long[] ids)
{
return emsMqttMessageMapper.deleteEmsMqttMessageByIds(ids);
}
/**
* 删除【请填写功能名称】信息
*
* @param id 【请填写功能名称】主键
* @return 结果
*/
@Override
public int deleteEmsMqttMessageById(Long id)
{
return emsMqttMessageMapper.deleteEmsMqttMessageById(id);
}
}

View File

@ -0,0 +1,105 @@
package com.xzzn.ems.service.impl;
import java.util.List;
import com.xzzn.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.xzzn.ems.mapper.EmsPcsBranchDataMapper;
import com.xzzn.ems.domain.EmsPcsBranchData;
import com.xzzn.ems.service.IEmsPcsBranchDataService;
/**
* pcs支路数据Service业务层处理
*
* @author xzzn
* @date 2025-06-29
*/
@Service
public class EmsPcsBranchDataServiceImpl implements IEmsPcsBranchDataService
{
@Autowired
private EmsPcsBranchDataMapper emsPcsBranchDataMapper;
/**
* 查询pcs支路数据
*
* @param id pcs支路数据主键
* @return pcs支路数据
*/
@Override
public EmsPcsBranchData selectEmsPcsBranchDataById(Long id)
{
return emsPcsBranchDataMapper.selectEmsPcsBranchDataById(id);
}
/**
* 查询pcs支路数据列表
*
* @param emsPcsBranchData pcs支路数据
* @return pcs支路数据
*/
@Override
public List<EmsPcsBranchData> selectEmsPcsBranchDataList(EmsPcsBranchData emsPcsBranchData)
{
return emsPcsBranchDataMapper.selectEmsPcsBranchDataList(emsPcsBranchData);
}
/**
* 新增pcs支路数据
*
* @param emsPcsBranchData pcs支路数据
* @return 结果
*/
@Override
public int insertEmsPcsBranchData(EmsPcsBranchData emsPcsBranchData)
{
emsPcsBranchData.setCreateTime(DateUtils.getNowDate());
return emsPcsBranchDataMapper.insertEmsPcsBranchData(emsPcsBranchData);
}
/**
* 修改pcs支路数据
*
* @param emsPcsBranchData pcs支路数据
* @return 结果
*/
@Override
public int updateEmsPcsBranchData(EmsPcsBranchData emsPcsBranchData)
{
emsPcsBranchData.setUpdateTime(DateUtils.getNowDate());
return emsPcsBranchDataMapper.updateEmsPcsBranchData(emsPcsBranchData);
}
/**
* 批量删除pcs支路数据
*
* @param ids 需要删除的pcs支路数据主键
* @return 结果
*/
@Override
public int deleteEmsPcsBranchDataByIds(Long[] ids)
{
return emsPcsBranchDataMapper.deleteEmsPcsBranchDataByIds(ids);
}
/**
* 删除pcs支路数据信息
*
* @param id pcs支路数据主键
* @return 结果
*/
@Override
public int deleteEmsPcsBranchDataById(Long id)
{
return emsPcsBranchDataMapper.deleteEmsPcsBranchDataById(id);
}
@Override
public int insertEmsPcsBranchDataList(List<EmsPcsBranchData> list) {
for (EmsPcsBranchData item : list) {
item.setCreateTime(DateUtils.getNowDate());
}
return emsPcsBranchDataMapper.insertPcsBranchDataList(list);
}
}

View File

@ -0,0 +1,96 @@
package com.xzzn.ems.service.impl;
import java.util.List;
import com.xzzn.common.utils.DateUtils;
import com.xzzn.ems.domain.EmsPcsData;
import com.xzzn.ems.mapper.EmsPcsDataMapper;
import com.xzzn.ems.service.IEmsPcsDataService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* PCS数据Service业务层处理
*
* @author xzzn
* @date 2025-06-27
*/
@Service
public class EmsPcsDataServiceImpl implements IEmsPcsDataService
{
@Autowired
private EmsPcsDataMapper emsPcsDataMapper;
/**
* 查询PCS数据
*
* @param id PCS数据主键
* @return PCS数据
*/
@Override
public EmsPcsData selectEmsPcsDataById(Long id)
{
return emsPcsDataMapper.selectEmsPcsDataById(id);
}
/**
* 查询PCS数据列表
*
* @param emsPcsData PCS数据
* @return PCS数据
*/
@Override
public List<EmsPcsData> selectEmsPcsDataList(EmsPcsData emsPcsData)
{
return emsPcsDataMapper.selectEmsPcsDataList(emsPcsData);
}
/**
* 新增PCS数据
*
* @param emsPcsData PCS数据
* @return 结果
*/
@Override
public int insertEmsPcsData(EmsPcsData emsPcsData)
{
emsPcsData.setCreateTime(DateUtils.getNowDate());
return emsPcsDataMapper.insertEmsPcsData(emsPcsData);
}
/**
* 修改PCS数据
*
* @param emsPcsData PCS数据
* @return 结果
*/
@Override
public int updateEmsPcsData(EmsPcsData emsPcsData)
{
emsPcsData.setUpdateTime(DateUtils.getNowDate());
return emsPcsDataMapper.updateEmsPcsData(emsPcsData);
}
/**
* 批量删除PCS数据
*
* @param ids 需要删除的PCS数据主键
* @return 结果
*/
@Override
public int deleteEmsPcsDataByIds(Long[] ids)
{
return emsPcsDataMapper.deleteEmsPcsDataByIds(ids);
}
/**
* 删除PCS数据信息
*
* @param id PCS数据主键
* @return 结果
*/
@Override
public int deleteEmsPcsDataById(Long id)
{
return emsPcsDataMapper.deleteEmsPcsDataById(id);
}
}

View File

@ -2,12 +2,14 @@ package com.xzzn.ems.service.impl;
import com.xzzn.ems.domain.EmsSiteSetting; import com.xzzn.ems.domain.EmsSiteSetting;
import com.xzzn.ems.domain.vo.SiteTotalInfoVo; import com.xzzn.ems.domain.vo.SiteTotalInfoVo;
import com.xzzn.ems.mapper.EmsDevicesSettingMapper;
import com.xzzn.ems.mapper.EmsSiteSettingMapper; import com.xzzn.ems.mapper.EmsSiteSettingMapper;
import com.xzzn.ems.service.IEmsSiteService; import com.xzzn.ems.service.IEmsSiteService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 站点信息 服务层实现 * 站点信息 服务层实现
@ -19,6 +21,8 @@ public class EmsSiteServiceImpl implements IEmsSiteService
@Autowired @Autowired
private EmsSiteSettingMapper emsSiteMapper; private EmsSiteSettingMapper emsSiteMapper;
@Autowired
private EmsDevicesSettingMapper emsDevicesMapper;
@Override @Override
public List<EmsSiteSetting> getAllSites() { public List<EmsSiteSetting> getAllSites() {
@ -30,4 +34,24 @@ public class EmsSiteServiceImpl implements IEmsSiteService
return emsSiteMapper.getSiteTotalInfo(); return emsSiteMapper.getSiteTotalInfo();
} }
/**
* 根据site_id获取所有电池堆
* @param siteId
* @return
*/
@Override
public List<Map<String, Object>> getAllStackInfo(String siteId) {
return emsDevicesMapper.getAllStackInfoBySiteId(siteId);
}
/**
* 根据电池堆Id获取电池簇
* @param stackDeviceId
* @return
*/
@Override
public List<Map<String, Object>> getAllClusterInfo(String stackDeviceId) {
return emsDevicesMapper.getAllClusterInfoByStackId(stackDeviceId);
}
} }

View File

@ -22,6 +22,7 @@ import java.util.*;
@Service @Service
public class HomePageServiceImpl implements IHomePageService public class HomePageServiceImpl implements IHomePageService
{ {
private static final int LIMIT_TIME = 6;
@Autowired @Autowired
private IEmsSiteService emsSiteService; private IEmsSiteService emsSiteService;
@ -37,21 +38,22 @@ public class HomePageServiceImpl implements IHomePageService
SiteTotalInfoVo siteTotalInfoVo = new SiteTotalInfoVo(); SiteTotalInfoVo siteTotalInfoVo = new SiteTotalInfoVo();
siteTotalInfoVo = emsSiteService.getSiteTotalInfo(); siteTotalInfoVo = emsSiteService.getSiteTotalInfo();
// 获取总充+总放 // 获取总充+总放
Map<String,BigDecimal> pcsMap = new HashMap<>(); Map<String,BigDecimal> pcsMap = emsPcsDataMapper.getPcsTotalChargeData(null);
pcsMap = emsPcsDataMapper.getPcsTotalChargeData(); if(pcsMap != null){
siteTotalInfoVo.setTotalChargedCap(pcsMap.get("totalChargedCap")); siteTotalInfoVo.setTotalChargedCap(pcsMap.get("totalChargedCap"));
siteTotalInfoVo.setTotalDischargedCap(pcsMap.get("totalDischargedCap")); siteTotalInfoVo.setTotalDischargedCap(pcsMap.get("totalDischargedCap"));
}
return siteTotalInfoVo; return siteTotalInfoVo;
} }
// 单站点基本信息 // 单站点基本信息
@Override @Override
public SingleSiteBaseInfo getSingleSiteBaseInfo(Long siteId) { public SingleSiteBaseInfo getSingleSiteBaseInfo(String siteId) {
SingleSiteBaseInfo singleSiteBaseInfo = new SingleSiteBaseInfo(); SingleSiteBaseInfo singleSiteBaseInfo = new SingleSiteBaseInfo();
if (siteId != null) { if (!StringUtils.isEmpty(siteId)) {
// 站点基本信息 // 站点基本信息
EmsSiteSetting emsSite = emsSiteMapper.selectEmsSiteSettingById(siteId); EmsSiteSetting emsSite = emsSiteMapper.selectEmsSiteSettingBySiteId(siteId);
if (emsSite != null) { if (emsSite != null) {
// 装机功率+装机容量 // 装机功率+装机容量
singleSiteBaseInfo.setSiteName(emsSite.getSiteName()); singleSiteBaseInfo.setSiteName(emsSite.getSiteName());
@ -62,9 +64,16 @@ public class HomePageServiceImpl implements IHomePageService
siteLocation[1] = emsSite.getLatitude() == null ? "" : emsSite.getLatitude().toString(); siteLocation[1] = emsSite.getLatitude() == null ? "" : emsSite.getLatitude().toString();
singleSiteBaseInfo.setSiteLocation(siteLocation);//站点位置 singleSiteBaseInfo.setSiteLocation(siteLocation);//站点位置
singleSiteBaseInfo.setSiteAddress(emsSite.getSiteAddress()); singleSiteBaseInfo.setSiteAddress(emsSite.getSiteAddress());
singleSiteBaseInfo.setRunningTime(DateUtils.parseDateToStr("yyyy-MM-dd",emsSite.getRunningTime()));//投运时间 singleSiteBaseInfo.setRunningTime(emsSite.getRunningTime() == null ? null :
DateUtils.parseDateToStr("yyyy-MM-dd",emsSite.getRunningTime()));//投运时间
// 获取单站点的总充+总放
Map<String,BigDecimal> pcsMap = emsPcsDataMapper.getPcsTotalChargeData(siteId);
if (pcsMap != null) {
singleSiteBaseInfo.setTotalChargedCap(pcsMap.get("totalChargedCap"));
singleSiteBaseInfo.setTotalDisChargedCap(pcsMap.get("totalDischargedCap"));
}
// 七天放电数据统计 // 七天放电数据统计
List<SiteMonitorDataVo> siteMonitorDataVoList = emsPcsDataMapper.getPcsDataBySiteId(siteId); List<SiteMonitorDataVo> siteMonitorDataVoList = emsPcsDataMapper.getPcsDataBySiteId(siteId,LIMIT_TIME);
singleSiteBaseInfo.setSevenDayDisChargeStats(siteMonitorDataVoList); singleSiteBaseInfo.setSevenDayDisChargeStats(siteMonitorDataVoList);
// 充放电基本数据处理 // 充放电基本数据处理
dealSitePCSDate(singleSiteBaseInfo,siteMonitorDataVoList); dealSitePCSDate(singleSiteBaseInfo,siteMonitorDataVoList);
@ -76,27 +85,15 @@ public class HomePageServiceImpl implements IHomePageService
private void dealSitePCSDate(SingleSiteBaseInfo singleSiteBaseInfo, List<SiteMonitorDataVo> siteMonitorDataVoList) { private void dealSitePCSDate(SingleSiteBaseInfo singleSiteBaseInfo, List<SiteMonitorDataVo> siteMonitorDataVoList) {
if (siteMonitorDataVoList != null && !siteMonitorDataVoList.isEmpty()) { if (siteMonitorDataVoList != null && !siteMonitorDataVoList.isEmpty()) {
BigDecimal dayChargeCap = new BigDecimal(0);
BigDecimal dayDisChargeCap = new BigDecimal(0);
BigDecimal totalChargeCap = new BigDecimal(0);
BigDecimal totalDisChargeCap = new BigDecimal(0);
for (SiteMonitorDataVo sitePcsData : siteMonitorDataVoList) { for (SiteMonitorDataVo sitePcsData : siteMonitorDataVoList) {
// 总充电量
totalChargeCap = totalChargeCap.add(sitePcsData.getChargedCap());
// 总放电量
totalDisChargeCap = totalDisChargeCap.add(sitePcsData.getDisChargedCap());
// 获取当天的充电量+放电量 // 获取当天的充电量+放电量
String pcsDate = sitePcsData.getAmmeterDate(); String pcsDate = sitePcsData.getAmmeterDate();
boolean isToday= checkIsToday(pcsDate); boolean isToday= checkIsToday(pcsDate);
if(isToday){ if(isToday){
dayChargeCap = dayChargeCap.add(sitePcsData.getChargedCap()); singleSiteBaseInfo.setDayChargedCap(sitePcsData.getChargedCap());
dayDisChargeCap = dayDisChargeCap.add(sitePcsData.getDisChargedCap()); singleSiteBaseInfo.setDayDisChargedCap(sitePcsData.getDisChargedCap());
} }
} }
singleSiteBaseInfo.setDayChargedCap(dayChargeCap);
singleSiteBaseInfo.setDayDisChargedCap(dayDisChargeCap);
singleSiteBaseInfo.setTotalChargedCap(totalChargeCap);
singleSiteBaseInfo.setTotalDisChargedCap(totalDisChargeCap);
} }
} }
@ -122,17 +119,14 @@ public class HomePageServiceImpl implements IHomePageService
public HomePageDataViewVo getHomePageDataList() { public HomePageDataViewVo getHomePageDataList() {
HomePageDataViewVo homePageDataViewVo = new HomePageDataViewVo(); HomePageDataViewVo homePageDataViewVo = new HomePageDataViewVo();
// 电量指标 // 电量指标
List<ElectricIndexList> electricDataList = new ArrayList(); List<ElectricIndexList> electricDataList = emsPcsDataMapper.getElectDataList();
electricDataList = emsPcsDataMapper.getElectDataList();
homePageDataViewVo.setElecDataList(electricDataList); homePageDataViewVo.setElecDataList(electricDataList);
// 系统效率 // 系统效率
// 告警趋势 // 告警趋势
List<AlarmTrendList> alarmTrendList = new ArrayList(); List<AlarmTrendList> alarmTrendList = alarmRecordsMapper.getAlarmTrendList();
alarmTrendList = alarmRecordsMapper.getAlarmTrendList();
homePageDataViewVo.setAlarmDataList(alarmTrendList); homePageDataViewVo.setAlarmDataList(alarmTrendList);
// 设备告警占比 // 设备告警占比
List<DeviceAlarmProportionList> deviceAlarmPropList = new ArrayList(); List<DeviceAlarmProportionList> deviceAlarmPropList = alarmRecordsMapper.getDeviceAlarmPropList();
deviceAlarmPropList = alarmRecordsMapper.getDeviceAlarmPropList();
homePageDataViewVo.setDeviceAlarmList(deviceAlarmPropList); homePageDataViewVo.setDeviceAlarmList(deviceAlarmPropList);
// 告警等级分布 // 告警等级分布
return homePageDataViewVo; return homePageDataViewVo;

View File

@ -3,6 +3,7 @@ package com.xzzn.ems.service.impl;
import com.xzzn.common.utils.StringUtils; import com.xzzn.common.utils.StringUtils;
import com.xzzn.ems.domain.EmsBatteryData; import com.xzzn.ems.domain.EmsBatteryData;
import com.xzzn.ems.domain.EmsCoolingData; import com.xzzn.ems.domain.EmsCoolingData;
import com.xzzn.ems.domain.EmsDevicesSetting;
import com.xzzn.ems.domain.vo.*; import com.xzzn.ems.domain.vo.*;
import com.xzzn.ems.mapper.*; import com.xzzn.ems.mapper.*;
import com.xzzn.ems.service.ISingleSiteService; import com.xzzn.ems.service.ISingleSiteService;
@ -11,7 +12,6 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -41,46 +41,43 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
private EmsPcsBranchDataMapper emsPcsBranchDataMapper; private EmsPcsBranchDataMapper emsPcsBranchDataMapper;
@Autowired @Autowired
private EmsCoolingDataMapper emsCoolingDataMapper; private EmsCoolingDataMapper emsCoolingDataMapper;
@Autowired
private EmsAmmeterDataMapper emsAmmeterDataMapper;
@Autowired
private EmsDevicesSettingMapper emsDevicesSettingMapper;
@Override @Override
public SiteMonitorHomeVo getSiteMonitorDataVo(Long siteId) { public SiteMonitorHomeVo getSiteMonitorDataVo(String siteId) {
SiteMonitorHomeVo siteMonitorHomeVo = new SiteMonitorHomeVo(); SiteMonitorHomeVo siteMonitorHomeVo = new SiteMonitorHomeVo();
if (siteId != null) { if (!StringUtils.isEmpty(siteId)) {
// 获取单站点的总充+总放+电网实时功率
Map<String,BigDecimal> pcsMap = emsPcsDataMapper.getPcsTotalChargeData(siteId);
if (pcsMap != null) {
siteMonitorHomeVo.setTotalChargedCap(pcsMap.get("totalChargedCap"));
siteMonitorHomeVo.setTotalDischargedCap(pcsMap.get("totalDischargedCap"));
siteMonitorHomeVo.setGridNrtPower(pcsMap.get("gridNrtPower"));
}
// 实时告警数据 名称+状态+告警内容 // 实时告警数据 名称+状态+告警内容
List<SiteMonitorHomeAlarmVo> siteMonitorHomeAlarmVo = emsAlarmRecordsMapper.getAlarmRecordsBySiteId(siteId); List<SiteMonitorHomeAlarmVo> siteMonitorHomeAlarmVo = emsAlarmRecordsMapper.getAlarmRecordsBySiteId(siteId);
siteMonitorHomeVo.setSiteMonitorHomeAlarmVo(siteMonitorHomeAlarmVo); siteMonitorHomeVo.setSiteMonitorHomeAlarmVo(siteMonitorHomeAlarmVo);
// 能量数据 // 能量数据
List<SiteMonitorDataVo> siteMonitorDataVoList = emsPcsDataMapper.getPcsDataBySiteId(siteId); List<SiteMonitorDataVo> siteMonitorDataVoList = emsPcsDataMapper.getPcsDataBySiteId(siteId,6);
if (!CollectionUtils.isEmpty(siteMonitorDataVoList)) { if (!CollectionUtils.isEmpty(siteMonitorDataVoList)) {
BigDecimal dayChargeCap = new BigDecimal(0);
BigDecimal dayDisChargeCap = new BigDecimal(0);
BigDecimal totalChargeCap = new BigDecimal(0);
BigDecimal totalDisChargeCap = new BigDecimal(0);
for (SiteMonitorDataVo sitePcsData : siteMonitorDataVoList) { for (SiteMonitorDataVo sitePcsData : siteMonitorDataVoList) {
// 总充电量
totalChargeCap = totalChargeCap.add(sitePcsData.getChargedCap());
// 总放电量
totalDisChargeCap = totalDisChargeCap.add(sitePcsData.getDisChargedCap());
// 获取当天的充电量+放电量 // 获取当天的充电量+放电量
String pcsDate = sitePcsData.getAmmeterDate(); String pcsDate = sitePcsData.getAmmeterDate();
boolean isToday= checkIsToday(pcsDate); boolean isToday= checkIsToday(pcsDate);
if(isToday){ if(isToday){
dayChargeCap = dayChargeCap.add(sitePcsData.getChargedCap()); siteMonitorHomeVo.setDayChargedCap(sitePcsData.getChargedCap());
dayDisChargeCap = dayDisChargeCap.add(sitePcsData.getDisChargedCap()); siteMonitorHomeVo.setDayDisChargedCap(sitePcsData.getDisChargedCap());
} }
} }
siteMonitorHomeVo.setDayChargedCap(dayChargeCap);
siteMonitorHomeVo.setDayDisChargedCap(dayDisChargeCap);
siteMonitorHomeVo.setTotalChargedCap(totalChargeCap);
siteMonitorHomeVo.setTotalDischargedCap(totalDisChargeCap);
// 储能可用电量 // 储能可用电量
BigDecimal energyStorageAvailElec = siteMonitorHomeVo.getTotalDischargedCap().subtract(siteMonitorHomeVo.getTotalChargedCap()); BigDecimal energyStorageAvailElec = siteMonitorHomeVo.getTotalDischargedCap().subtract(siteMonitorHomeVo.getTotalChargedCap());
siteMonitorHomeVo.setEnergyStorageAvailElec(energyStorageAvailElec); siteMonitorHomeVo.setEnergyStorageAvailElec(energyStorageAvailElec);
} }
siteMonitorHomeVo.setSiteMonitorDataVo(siteMonitorDataVoList); siteMonitorHomeVo.setSiteMonitorDataVo(siteMonitorDataVoList);
// 电网实时功率
siteMonitorHomeVo.setGridNrtPower(emsPcsDataMapper.getGridNrtPower(siteId));
} }
return siteMonitorHomeVo; return siteMonitorHomeVo;
@ -103,10 +100,10 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
// 获取单站监控实时运行头部数据 // 获取单站监控实时运行头部数据
@Override @Override
public SiteMonitorRuningHeadInfoVo getSiteRunningHeadInfo(Long siteId) { public SiteMonitorRunningHeadInfoVo getSiteRunningHeadInfo(String siteId) {
SiteMonitorRuningHeadInfoVo siteMonitorRunningHeadInfoVo = new SiteMonitorRuningHeadInfoVo(); SiteMonitorRunningHeadInfoVo siteMonitorRunningHeadInfoVo = new SiteMonitorRunningHeadInfoVo();
if (siteId != null) { if (!StringUtils.isEmpty(siteId)) {
// 实时有功功率/实时无功功率/今日充电量/今日放电量 // 实时有功功率/实时无功功率/今日充电量/今日放电量
siteMonitorRunningHeadInfoVo = emsPcsDataMapper.getSiteRunningHeadInfo(siteId); siteMonitorRunningHeadInfoVo = emsPcsDataMapper.getSiteRunningHeadInfo(siteId);
// 电池簇SOC // 电池簇SOC
@ -123,9 +120,9 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
// 获取单站监控实时运行曲线图数据 // 获取单站监控实时运行曲线图数据
@Override @Override
public SiteMonitorRuningInfoVo getRunningGraph(Long siteId) { public SiteMonitorRuningInfoVo getRunningGraph(String siteId) {
SiteMonitorRuningInfoVo siteMonitorRuningInfoVo = new SiteMonitorRuningInfoVo(); SiteMonitorRuningInfoVo siteMonitorRuningInfoVo = new SiteMonitorRuningInfoVo();
if (siteId != null) { if (!StringUtils.isEmpty(siteId)) {
//储能功率list //储能功率list
//pcs平均温度list //pcs平均温度list
//电池平均soclist //电池平均soclist
@ -136,17 +133,17 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
// 根据site_id获取pcs详细数据+支路数据 // 根据site_id获取pcs详细数据+支路数据
@Override @Override
public List<PcsDetailInfoVo> getPcsDetailInfo(Long siteId) { public List<PcsDetailInfoVo> getPcsDetailInfo(String siteId) {
List<PcsDetailInfoVo> pcsDetailInfoVoList = new ArrayList<>(); List<PcsDetailInfoVo> pcsDetailInfoVoList = new ArrayList<>();
if (siteId != null) { if (!StringUtils.isEmpty(siteId)) {
// 获取pcs最新数据 // 获取pcs最新数据
pcsDetailInfoVoList = emsPcsDataMapper.getPcsDetailInfoBySiteId(siteId); pcsDetailInfoVoList = emsPcsDataMapper.getPcsDetailInfoBySiteId(siteId);
if (!CollectionUtils.isEmpty(pcsDetailInfoVoList)) { if (!CollectionUtils.isEmpty(pcsDetailInfoVoList)) {
for (PcsDetailInfoVo pcsDetailInfoVo : pcsDetailInfoVoList) { for (PcsDetailInfoVo pcsDetailInfoVo : pcsDetailInfoVoList) {
Long deviceId = pcsDetailInfoVo.getDeviceId(); String deviceId = pcsDetailInfoVo.getDeviceId();
// 获取支路最新数据 // 获取支路最新数据
if (deviceId != null) { if (!StringUtils.isEmpty(deviceId)) {
List<PcsBranchInfo> pcsBranchInfoList = emsPcsBranchDataMapper.getPcsBranchInfoList(siteId, deviceId); List<PcsBranchInfo> pcsBranchInfoList = emsPcsBranchDataMapper.getPcsBranchInfoList(siteId, deviceId);
pcsDetailInfoVo.setPcsBranchInfoList(pcsBranchInfoList); pcsDetailInfoVo.setPcsBranchInfoList(pcsBranchInfoList);
} }
@ -158,19 +155,18 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
// 获取BMS总览数据 // 获取BMS总览数据
@Override @Override
public List<BMSOverViewVo> getBMSOverView(Long siteId) { public List<BMSOverViewVo> getBMSOverView(String siteId) {
List<BMSOverViewVo> bmsOverViewVoList = new ArrayList<>(); List<BMSOverViewVo> bmsOverViewVoList = new ArrayList<>();
if (siteId != null) { if (!StringUtils.isEmpty(siteId)) {
// 获取电池堆list // 获取电池堆list
bmsOverViewVoList = emsBatteryStackMapper.selectEmsBatteryStackBySiteId(siteId); bmsOverViewVoList = emsBatteryStackMapper.selectEmsBatteryStackBySiteId(siteId);
if (!CollectionUtils.isEmpty(bmsOverViewVoList)) { if (!CollectionUtils.isEmpty(bmsOverViewVoList)) {
for (BMSOverViewVo bmsOverViewVo : bmsOverViewVoList) { for (BMSOverViewVo bmsOverViewVo : bmsOverViewVoList) {
// 获取单体电池数据-待确认 // 获取单体电池数据
Long stackDeviceId = bmsOverViewVo.getDeviceId(); String stackDeviceId = bmsOverViewVo.getDeviceId();
if (stackDeviceId != null) { if (!StringUtils.isEmpty(stackDeviceId)) {
List<BMSBatteryDataList> batteryDataList = new ArrayList<>(); List<BMSBatteryDataList> batteryDataList = emsBatteryClusterMapper.getBmsBatteryData(siteId,stackDeviceId);
batteryDataList = emsBatteryClusterMapper.getBmsBatteryData(siteId,stackDeviceId);
bmsOverViewVo.setBatteryDataList(batteryDataList); bmsOverViewVo.setBatteryDataList(batteryDataList);
} }
} }
@ -181,65 +177,46 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
// 获取BMS电池簇数据 // 获取BMS电池簇数据
@Override @Override
public List<BMSBatteryClusterVo> getBMSBatteryCluster(Long siteId) { public List<BMSBatteryClusterVo> getBMSBatteryCluster(String siteId) {
List<BMSBatteryClusterVo> bmsBatteryClusterVoList = new ArrayList<>(); List<BMSBatteryClusterVo> bmsBatteryClusterVoList = new ArrayList<>();
if (siteId != null) { if (!StringUtils.isEmpty(siteId)) {
bmsBatteryClusterVoList = emsBatteryClusterMapper.getBMSBatteryCluster(siteId); bmsBatteryClusterVoList = emsBatteryClusterMapper.getBMSBatteryCluster(siteId);
if (!CollectionUtils.isEmpty(bmsBatteryClusterVoList)) { if (!CollectionUtils.isEmpty(bmsBatteryClusterVoList)) {
for (BMSBatteryClusterVo bmsBatteryClusterVo : bmsBatteryClusterVoList) { for (BMSBatteryClusterVo bmsBatteryClusterVo : bmsBatteryClusterVoList) {
Long clusterDeviceId = bmsBatteryClusterVo.getDeviceId(); String clusterDeviceId = bmsBatteryClusterVo.getDeviceId();
List<BMSBatteryClusterDataList> clusterDataList = new ArrayList<>(); List<BMSBatteryClusterDataList> clusterDataList = new ArrayList<>();
if (clusterDeviceId != null) { if (!StringUtils.isEmpty(clusterDeviceId)) {
// 获取单体电池数据-平均/最大/最小 // 获取单体电池数据-平均/最大/最小
BatteryClusterDataDetailVo batteryClusterDataDetailVo = emsBatteryDataMapper.getBatteryDataByClusterId(siteId,clusterDeviceId); //BatteryClusterDataDetailVo batteryClusterDataDetailVo = emsBatteryDataMapper.getBatteryDataByClusterId(siteId,clusterDeviceId);
// 处理数据 // 处理数据
if (batteryClusterDataDetailVo != null) { BMSBatteryClusterDataList voltageData = new BMSBatteryClusterDataList();
BMSBatteryClusterDataList voltageData = new BMSBatteryClusterDataList(); BMSBatteryClusterDataList tempData = new BMSBatteryClusterDataList();
BMSBatteryClusterDataList tempData = new BMSBatteryClusterDataList(); BMSBatteryClusterDataList socData = new BMSBatteryClusterDataList();
BMSBatteryClusterDataList socData = new BMSBatteryClusterDataList(); // 设值
// 设值 voltageData.setDataName(CLUSTER_DATA_VOLTAGE);
voltageData.setDataName(CLUSTER_DATA_VOLTAGE); voltageData.setAvgData(bmsBatteryClusterVo.getAvgVoltage());
voltageData.setAvgData(batteryClusterDataDetailVo.getAvgVoltage()); voltageData.setMaxData(bmsBatteryClusterVo.getMaxVoltage());
voltageData.setMaxData(batteryClusterDataDetailVo.getMaxVoltage()); voltageData.setMaxDataID(bmsBatteryClusterVo.getMaxVoltageID());
voltageData.setMinData(batteryClusterDataDetailVo.getMinVoltage()); voltageData.setMinData(bmsBatteryClusterVo.getMinVoltage());
tempData.setDataName(CLUSTER_DATA_TEP); voltageData.setMinDataID(bmsBatteryClusterVo.getMinVoltageID());
tempData.setAvgData(batteryClusterDataDetailVo.getAvgTemp()); tempData.setDataName(CLUSTER_DATA_TEP);
tempData.setMaxData(batteryClusterDataDetailVo.getMaxTemp()); tempData.setAvgData(bmsBatteryClusterVo.getAvgTemp());
tempData.setMinData(batteryClusterDataDetailVo.getMinTemp()); tempData.setMaxData(bmsBatteryClusterVo.getMaxTemp());
socData.setDataName(CLUSTER_DATA_SOC); tempData.setMaxDataID(bmsBatteryClusterVo.getMaxTempID());
socData.setAvgData(batteryClusterDataDetailVo.getAvgSoc()); tempData.setMinData(bmsBatteryClusterVo.getMinTemp());
socData.setMaxData(batteryClusterDataDetailVo.getMaxSoc()); tempData.setMinDataID(bmsBatteryClusterVo.getMinTempID());
socData.setMinData(batteryClusterDataDetailVo.getMinSoc()); socData.setDataName(CLUSTER_DATA_SOC);
socData.setAvgData(bmsBatteryClusterVo.getAvgSoc());
socData.setMaxData(bmsBatteryClusterVo.getMaxSoc());
socData.setMaxDataID(bmsBatteryClusterVo.getMaxSocID());
socData.setMinData(bmsBatteryClusterVo.getMinSoc());
socData.setMinDataID(bmsBatteryClusterVo.getMinSocID());
// 设置对应单体id clusterDataList.add(voltageData);
List<Map<String,Object>> dataIdMapList = emsBatteryDataMapper.getDataIdsMap(batteryClusterDataDetailVo); clusterDataList.add(tempData);
Map<String,Long> resultIdMap = new HashMap<>(); clusterDataList.add(socData);
if (!CollectionUtils.isEmpty(dataIdMapList)) {
resultIdMap = dataIdMapList.stream()
.filter(map -> map.containsKey("type") && map.containsKey("device_id")) // 过滤无效数据
.filter(map -> map.get("type") instanceof String && map.get("device_id") instanceof Number) // 确保类型正确
.collect(Collectors.toMap(
map -> (String) map.get("type"), // 键type 字段
map -> ((Number) map.get("device_id")).longValue(), // 值device_id 转为 int
(existing, replacement) -> existing // 处理键冲突的策略
));
// 电压
voltageData.setMaxDataID(resultIdMap.get("maxVoltageId"));
voltageData.setMaxDataID(resultIdMap.get("maxVoltageId"));
// 温度
tempData.setMaxDataID(resultIdMap.get("maxTempId"));
tempData.setMinDataID(resultIdMap.get("minTempId"));
// soc
socData.setMaxDataID(resultIdMap.get("maxSocId"));
socData.setMinDataID(resultIdMap.get("minSocId"));
}
clusterDataList.add(voltageData);
clusterDataList.add(tempData);
clusterDataList.add(socData);
}
bmsBatteryClusterVo.setBatteryDataList(clusterDataList); bmsBatteryClusterVo.setBatteryDataList(clusterDataList);
} }
} }
@ -250,12 +227,56 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
// 获取液冷设备参数 // 获取液冷设备参数
@Override @Override
public List<EmsCoolingData> getCoolingDataList(Long siteId) { public List<EmsCoolingData> getCoolingDataList(String siteId) {
List<EmsCoolingData> emsCoolingDataList = new ArrayList<>(); List<EmsCoolingData> emsCoolingDataList = new ArrayList<>();
if (siteId != null) { if (!StringUtils.isEmpty(siteId)) {
emsCoolingDataList = emsCoolingDataMapper.getCoolingDataList(siteId); emsCoolingDataList = emsCoolingDataMapper.getCoolingDataList(siteId);
} }
return emsCoolingDataList; return emsCoolingDataList;
} }
/**
* 根据电池堆获取单体柱状数据
* @param clusterDeviceId
* @return
*/
@Override
public List<BatteryDataStatsListVo> getClusterDataInfoList(String clusterDeviceId) {
List<BatteryDataStatsListVo> batteryDataStatsListVo = new ArrayList<>();
batteryDataStatsListVo = emsBatteryDataMapper.getAllBatteryDataByClusterId(clusterDeviceId);
return batteryDataStatsListVo;
}
/**
* 电表数据信息
* @param siteId
* @return
*/
@Override
public List<AmmeterDataVo> getAmmeterDataList(String siteId) {
List<AmmeterDataVo> ammeterDataVos = new ArrayList<>();
if (!StringUtils.isEmpty(siteId)) {
// 先获取所有电表设备
List<EmsDevicesSetting> devicesList = emsDevicesSettingMapper.getAllBatteryDeviceBySiteId(siteId);
if (!CollectionUtils.isEmpty(devicesList)) {
for (EmsDevicesSetting devicesSetting : devicesList) {
AmmeterDataVo ammeterDataVo = new AmmeterDataVo();
ammeterDataVo.setDeviceName(devicesSetting.getDeviceName());
ammeterDataVo.setEmsCommunicationStatus(devicesSetting.getCommunicationStatus());
String deviceId = devicesSetting.getDeviceId();
// 获取类别数据
List<AmmeterDataDetailInfo> ammeterDataDetailInfos = emsAmmeterDataMapper.getAmmeterDetailInfo(siteId,deviceId);
ammeterDataVo.setAmmeterDataDetailInfos(ammeterDataDetailInfos);
// 数据更新时间
ammeterDataVo.setDataUpdateTime(ammeterDataDetailInfos.get(0).getUpdateTime());
ammeterDataVos.add(ammeterDataVo);
}
}
}
return ammeterDataVos;
}
} }

View File

@ -35,8 +35,8 @@
<if test="alarmStartTime != null "> and alarm_start_time = #{alarmStartTime}</if> <if test="alarmStartTime != null "> and alarm_start_time = #{alarmStartTime}</if>
<if test="alarmEndTime != null "> and alarm_end_time = #{alarmEndTime}</if> <if test="alarmEndTime != null "> and alarm_end_time = #{alarmEndTime}</if>
<if test="status != null and status != ''"> and status = #{status}</if> <if test="status != null and status != ''"> and status = #{status}</if>
<if test="siteId != null "> and site_id = #{siteId}</if> <if test="siteId != null and siteId != ''"> and site_id = #{siteId}</if>
<if test="deviceId != null "> and device_id = #{deviceId}</if> <if test="deviceId != null and deviceId != ''"> and device_id = #{deviceId}</if>
<if test="deviceName != null and deviceName != ''"> and device_name like concat('%', #{deviceName}, '%')</if> <if test="deviceName != null and deviceName != ''"> and device_name like concat('%', #{deviceName}, '%')</if>
</where> </where>
</select> </select>
@ -61,7 +61,7 @@
<if test="updateTime != null">update_time,</if> <if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if> <if test="remark != null">remark,</if>
<if test="siteId != null">site_id,</if> <if test="siteId != null">site_id,</if>
<if test="deviceId != null">device_id,</if> <if test="deviceId != null and deviceId != ''">device_id,</if>
<if test="deviceName != null and deviceName != ''">device_name,</if> <if test="deviceName != null and deviceName != ''">device_name,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
@ -77,7 +77,7 @@
<if test="updateTime != null">#{updateTime},</if> <if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if> <if test="remark != null">#{remark},</if>
<if test="siteId != null">#{siteId},</if> <if test="siteId != null">#{siteId},</if>
<if test="deviceId != null">#{deviceId},</if> <if test="deviceId != null and deviceId != ''">#{deviceId},</if>
<if test="deviceName != null and deviceName != ''">#{deviceName},</if> <if test="deviceName != null and deviceName != ''">#{deviceName},</if>
</trim> </trim>
</insert> </insert>
@ -97,7 +97,7 @@
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if> <if test="remark != null">remark = #{remark},</if>
<if test="siteId != null">site_id = #{siteId},</if> <if test="siteId != null">site_id = #{siteId},</if>
<if test="deviceId != null">device_id = #{deviceId},</if> <if test="deviceId != null and deviceId != ''">device_id = #{deviceId},</if>
<if test="deviceName != null and deviceName != ''">device_name = #{deviceName},</if> <if test="deviceName != null and deviceName != ''">device_name = #{deviceName},</if>
</trim> </trim>
where id = #{id} where id = #{id}
@ -114,7 +114,7 @@
</foreach> </foreach>
</delete> </delete>
<select id="getAlarmRecordsBySiteId" parameterType="Long" resultType="com.xzzn.ems.domain.vo.SiteMonitorHomeAlarmVo"> <select id="getAlarmRecordsBySiteId" parameterType="String" resultType="com.xzzn.ems.domain.vo.SiteMonitorHomeAlarmVo">
select device_name as deviceName, select device_name as deviceName,
status,alarm_content as alarmContent status,alarm_content as alarmContent
from ems_alarm_records from ems_alarm_records
@ -132,4 +132,24 @@
from ems_alarm_records from ems_alarm_records
group by device_type group by device_type
</select> </select>
<select id="getAlarmRecordDetailList" parameterType="AlarmRecordListRequestVo" resultType="com.xzzn.ems.domain.vo.AlarmRecordListResponseVo">
select t.device_name as deviceName,t.alarm_level as alarmLevel,
t.alarm_content as alarmContent,t.status as status,
t.alarm_start_time as alarmStartTime,t.alarm_end_time as alarmEndTime
from ems_alarm_records t
where t.site_id = #{siteId}
<if test="deviceType != null and deviceType != 0">
AND t.device_type = #{deviceType}
</if>
<if test="alarmLevel != null and alarmLevel != ''">
AND t.alarm_level = #{alarmLevel}
</if>
<if test="alarmStartTime != null and alarmStartTime != ''">
AND date_format(t.alarm_start_time,'%Y%m%d') &gt;= date_format(#{alarmStartTime},'%Y%m%d')
</if>
<if test="alarmEndTime != null and alarmEndTime != ''"><!-- 结束时间检索 -->
AND date_format(t.alarm_end_time,'%Y%m%d') &lt;= date_format(#{alarmEndTime},'%Y%m%d')
</if>
</select>
</mapper> </mapper>

View File

@ -0,0 +1,137 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xzzn.ems.mapper.EmsAmmeterDataMapper">
<resultMap type="EmsAmmeterData" id="EmsAmmeterDataResult">
<result property="id" column="id" />
<result property="dataUpdateTime" column="data_update_time" />
<result property="category" column="category" />
<result property="totalKwh" column="total_kwh" />
<result property="sharpKwh" column="sharp_kwh" />
<result property="peakKwh" column="peak_kwh" />
<result property="flatKwh" column="flat_kwh" />
<result property="valleyKwh" column="valley_kwh" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
<result property="siteId" column="site_id" />
<result property="deviceId" column="device_id" />
</resultMap>
<sql id="selectEmsAmmeterDataVo">
select id, data_update_time, category, total_kwh, sharp_kwh, peak_kwh, flat_kwh, valley_kwh, create_by, create_time, update_by, update_time, remark, site_id, device_id from ems_ammeter_data
</sql>
<select id="selectEmsAmmeterDataList" parameterType="EmsAmmeterData" resultMap="EmsAmmeterDataResult">
<include refid="selectEmsAmmeterDataVo"/>
<where>
<if test="dataUpdateTime != null "> and data_update_time = #{dataUpdateTime}</if>
<if test="category != null and category != ''"> and category = #{category}</if>
<if test="totalKwh != null "> and total_kwh = #{totalKwh}</if>
<if test="sharpKwh != null "> and sharp_kwh = #{sharpKwh}</if>
<if test="peakKwh != null "> and peak_kwh = #{peakKwh}</if>
<if test="flatKwh != null "> and flat_kwh = #{flatKwh}</if>
<if test="valleyKwh != null "> and valley_kwh = #{valleyKwh}</if>
<if test="siteId != null and siteId != ''"> and site_id = #{siteId}</if>
<if test="deviceId != null and deviceId != ''"> and device_id = #{deviceId}</if>
</where>
</select>
<select id="selectEmsAmmeterDataById" parameterType="Long" resultMap="EmsAmmeterDataResult">
<include refid="selectEmsAmmeterDataVo"/>
where id = #{id}
</select>
<insert id="insertEmsAmmeterData" parameterType="EmsAmmeterData" useGeneratedKeys="true" keyProperty="id">
insert into ems_ammeter_data
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="dataUpdateTime != null">data_update_time,</if>
<if test="category != null">category,</if>
<if test="totalKwh != null">total_kwh,</if>
<if test="sharpKwh != null">sharp_kwh,</if>
<if test="peakKwh != null">peak_kwh,</if>
<if test="flatKwh != null">flat_kwh,</if>
<if test="valleyKwh != null">valley_kwh,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
<if test="siteId != null">site_id,</if>
<if test="deviceId != null and deviceId != ''">device_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="dataUpdateTime != null">#{dataUpdateTime},</if>
<if test="category != null">#{category},</if>
<if test="totalKwh != null">#{totalKwh},</if>
<if test="sharpKwh != null">#{sharpKwh},</if>
<if test="peakKwh != null">#{peakKwh},</if>
<if test="flatKwh != null">#{flatKwh},</if>
<if test="valleyKwh != null">#{valleyKwh},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
<if test="siteId != null">#{siteId},</if>
<if test="deviceId != null and deviceId != ''">#{deviceId},</if>
</trim>
</insert>
<update id="updateEmsAmmeterData" parameterType="EmsAmmeterData">
update ems_ammeter_data
<trim prefix="SET" suffixOverrides=",">
<if test="dataUpdateTime != null">data_update_time = #{dataUpdateTime},</if>
<if test="category != null">category = #{category},</if>
<if test="totalKwh != null">total_kwh = #{totalKwh},</if>
<if test="sharpKwh != null">sharp_kwh = #{sharpKwh},</if>
<if test="peakKwh != null">peak_kwh = #{peakKwh},</if>
<if test="flatKwh != null">flat_kwh = #{flatKwh},</if>
<if test="valleyKwh != null">valley_kwh = #{valleyKwh},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="siteId != null">site_id = #{siteId},</if>
<if test="deviceId != null and deviceId != ''">device_id = #{deviceId},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteEmsAmmeterDataById" parameterType="Long">
delete from ems_ammeter_data where id = #{id}
</delete>
<delete id="deleteEmsAmmeterDataByIds" parameterType="String">
delete from ems_ammeter_data where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<select id="getAmmeterDetailInfo" resultType="com.xzzn.ems.domain.vo.AmmeterDataDetailInfo">
SELECT t.category as category,
t.total_kwh as totalKwh,
t.sharp_kwh as sharpKwh,
t.flat_kwh as flatKwh,
t.peak_kwh as peakKwh,
t.device_id as deviceId,
t.valley_kwh as valleyKwh,
Max(t.data_update_time) as updateTime
FROM ems_ammeter_data t
INNER JOIN (
SELECT p.site_id, p.device_id,p.category,MAX(p.data_update_time) AS max_update_time
FROM ems_ammeter_data p
WHERE p.site_id = #{siteId} and p.device_id = #{deviceId}
GROUP BY p.site_id,p.device_id,p.category
) latest on t.device_id = latest.device_id and t.data_update_time = latest.max_update_time
WHERE t.site_id = #{siteId} and t.device_id = #{deviceId}
group by t.category,t.total_kwh,t.sharp_kwh,t.flat_kwh,t.peak_kwh,t.valley_kwh,t.device_id
order by updateTime desc
</select>
</mapper>

View File

@ -26,10 +26,43 @@
<result property="remark" column="remark" /> <result property="remark" column="remark" />
<result property="siteId" column="site_id" /> <result property="siteId" column="site_id" />
<result property="deviceId" column="device_id" /> <result property="deviceId" column="device_id" />
<result property="stackDeviceId" column="stack_device_id" />
<result property="maxAllowedChargePower" column="max_allowed_charge_power" />
<result property="maxAllowedDischargePower" column="max_allowed_discharge_power" />
<result property="maxAllowedChargeVoltage" column="max_allowed_charge_voltage" />
<result property="maxAllowedDischargeVoltage" column="max_allowed_discharge_voltage" />
<result property="maxAllowedChargeCurrent" column="max_allowed_charge_current" />
<result property="maxAllowedDischargeCurrent" column="max_allowed_discharge_current" />
<result property="batteryPackVoltage" column="battery_pack_voltage" />
<result property="batteryPackCurrent" column="battery_pack_current" />
<result property="batteryPackTemp" column="battery_pack_temp" />
<result property="batteryPackSoc" column="battery_pack_soc" />
<result property="batteryPackSoh" column="battery_pack_soh" />
<result property="batteryPackInsulationResistance" column="battery_pack_insulation_resistance" />
<result property="avgCellVoltage" column="avg_cell_voltage" />
<result property="avgCellTemp" column="avg_cell_temp" />
<result property="maxCellVoltage" column="max_cell_voltage" />
<result property="maxCellVoltageId" column="max_cell_voltage_id" />
<result property="minCellVoltage" column="min_cell_voltage" />
<result property="minCellVoltageId" column="min_cell_voltage_id" />
<result property="maxCellTemp" column="max_cell_temp" />
<result property="maxCellTempId" column="max_cell_temp_id" />
<result property="minCellTemp" column="min_cell_temp" />
<result property="minCellTempId" column="min_cell_temp_id" />
<result property="maxCellSoc" column="max_cell_soc" />
<result property="maxCellSocId" column="max_cell_soc_id" />
<result property="minCellSoc" column="min_cell_soc" />
<result property="minCellSocId" column="min_cell_soc_id" />
<result property="maxCellSoh" column="max_cell_soh" />
<result property="maxCellSohId" column="max_cell_soh_id" />
<result property="minCellSoh" column="min_cell_soh" />
<result property="minCellSohId" column="min_cell_soh_id" />
<result property="totalChargeEnergy" column="total_charge_energy" />
<result property="totalDischargeEnergy" column="total_discharge_energy" />
</resultMap> </resultMap>
<sql id="selectEmsBatteryClusterVo"> <sql id="selectEmsBatteryClusterVo">
select id, work_status, pcs_communication_status, ems_communication_status, cluster_voltage, chargeable_capacity, total_charged_capacity, cluster_current, dischargeable_capacity, total_discharged_capacity, soh, average_temperature, insulation_resistance, current_soc, create_by, create_time, update_by, update_time, remark, site_id, device_id from ems_battery_cluster select id, work_status, pcs_communication_status, ems_communication_status, cluster_voltage, chargeable_capacity, total_charged_capacity, cluster_current, dischargeable_capacity, total_discharged_capacity, soh, average_temperature, insulation_resistance, current_soc, create_by, create_time, update_by, update_time, remark, site_id, device_id, stack_device_id, max_allowed_charge_power, max_allowed_discharge_power, max_allowed_charge_voltage, max_allowed_discharge_voltage, max_allowed_charge_current, max_allowed_discharge_current, battery_pack_voltage, battery_pack_current, battery_pack_temp, battery_pack_soc, battery_pack_soh, battery_pack_insulation_resistance, avg_cell_voltage, avg_cell_temp, max_cell_voltage, max_cell_voltage_id, min_cell_voltage, min_cell_voltage_id, max_cell_temp, max_cell_temp_id, min_cell_temp, min_cell_temp_id, max_cell_soc, max_cell_soc_id, min_cell_soc, min_cell_soc_id, max_cell_soh, max_cell_soh_id, min_cell_soh, min_cell_soh_id, total_charge_energy, total_discharge_energy from ems_battery_cluster
</sql> </sql>
<select id="selectEmsBatteryClusterList" parameterType="EmsBatteryCluster" resultMap="EmsBatteryClusterResult"> <select id="selectEmsBatteryClusterList" parameterType="EmsBatteryCluster" resultMap="EmsBatteryClusterResult">
@ -48,8 +81,41 @@
<if test="averageTemperature != null "> and average_temperature = #{averageTemperature}</if> <if test="averageTemperature != null "> and average_temperature = #{averageTemperature}</if>
<if test="insulationResistance != null "> and insulation_resistance = #{insulationResistance}</if> <if test="insulationResistance != null "> and insulation_resistance = #{insulationResistance}</if>
<if test="currentSoc != null "> and current_soc = #{currentSoc}</if> <if test="currentSoc != null "> and current_soc = #{currentSoc}</if>
<if test="siteId != null "> and site_id = #{siteId}</if> <if test="siteId != null and siteId != ''"> and site_id = #{siteId}</if>
<if test="deviceId != null "> and device_id = #{deviceId}</if> <if test="deviceId != null and deviceId != ''"> and device_id = #{deviceId}</if>
<if test="stackDeviceId != null and stackDeviceId != ''"> and stack_device_id = #{stackDeviceId}</if>
<if test="maxAllowedChargePower != null "> and max_allowed_charge_power = #{maxAllowedChargePower}</if>
<if test="maxAllowedDischargePower != null "> and max_allowed_discharge_power = #{maxAllowedDischargePower}</if>
<if test="maxAllowedChargeVoltage != null "> and max_allowed_charge_voltage = #{maxAllowedChargeVoltage}</if>
<if test="maxAllowedDischargeVoltage != null "> and max_allowed_discharge_voltage = #{maxAllowedDischargeVoltage}</if>
<if test="maxAllowedChargeCurrent != null "> and max_allowed_charge_current = #{maxAllowedChargeCurrent}</if>
<if test="maxAllowedDischargeCurrent != null "> and max_allowed_discharge_current = #{maxAllowedDischargeCurrent}</if>
<if test="batteryPackVoltage != null "> and battery_pack_voltage = #{batteryPackVoltage}</if>
<if test="batteryPackCurrent != null "> and battery_pack_current = #{batteryPackCurrent}</if>
<if test="batteryPackTemp != null "> and battery_pack_temp = #{batteryPackTemp}</if>
<if test="batteryPackSoc != null "> and battery_pack_soc = #{batteryPackSoc}</if>
<if test="batteryPackSoh != null "> and battery_pack_soh = #{batteryPackSoh}</if>
<if test="batteryPackInsulationResistance != null "> and battery_pack_insulation_resistance = #{batteryPackInsulationResistance}</if>
<if test="avgCellVoltage != null "> and avg_cell_voltage = #{avgCellVoltage}</if>
<if test="avgCellTemp != null "> and avg_cell_temp = #{avgCellTemp}</if>
<if test="maxCellVoltage != null "> and max_cell_voltage = #{maxCellVoltage}</if>
<if test="maxCellVoltageId != null "> and max_cell_voltage_id = #{maxCellVoltageId}</if>
<if test="minCellVoltage != null "> and min_cell_voltage = #{minCellVoltage}</if>
<if test="minCellVoltageId != null "> and min_cell_voltage_id = #{minCellVoltageId}</if>
<if test="maxCellTemp != null "> and max_cell_temp = #{maxCellTemp}</if>
<if test="maxCellTempId != null "> and max_cell_temp_id = #{maxCellTempId}</if>
<if test="minCellTemp != null "> and min_cell_temp = #{minCellTemp}</if>
<if test="minCellTempId != null "> and min_cell_temp_id = #{minCellTempId}</if>
<if test="maxCellSoc != null "> and max_cell_soc = #{maxCellSoc}</if>
<if test="maxCellSocId != null "> and max_cell_soc_id = #{maxCellSocId}</if>
<if test="minCellSoc != null "> and min_cell_soc = #{minCellSoc}</if>
<if test="minCellSocId != null "> and min_cell_soc_id = #{minCellSocId}</if>
<if test="maxCellSoh != null "> and max_cell_soh = #{maxCellSoh}</if>
<if test="maxCellSohId != null "> and max_cell_soh_id = #{maxCellSohId}</if>
<if test="minCellSoh != null "> and min_cell_soh = #{minCellSoh}</if>
<if test="minCellSohId != null "> and min_cell_soh_id = #{minCellSohId}</if>
<if test="totalChargeEnergy != null "> and total_charge_energy = #{totalChargeEnergy}</if>
<if test="totalDischargeEnergy != null "> and total_discharge_energy = #{totalDischargeEnergy}</if>
</where> </where>
</select> </select>
@ -80,7 +146,40 @@
<if test="updateTime != null">update_time,</if> <if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if> <if test="remark != null">remark,</if>
<if test="siteId != null">site_id,</if> <if test="siteId != null">site_id,</if>
<if test="deviceId != null">device_id,</if> <if test="deviceId != null and deviceId != ''">device_id,</if>
<if test="stackDeviceId != null and stackDeviceId != ''">stack_device_id,</if>
<if test="maxAllowedChargePower != null">max_allowed_charge_power,</if>
<if test="maxAllowedDischargePower != null">max_allowed_discharge_power,</if>
<if test="maxAllowedChargeVoltage != null">max_allowed_charge_voltage,</if>
<if test="maxAllowedDischargeVoltage != null">max_allowed_discharge_voltage,</if>
<if test="maxAllowedChargeCurrent != null">max_allowed_charge_current,</if>
<if test="maxAllowedDischargeCurrent != null">max_allowed_discharge_current,</if>
<if test="batteryPackVoltage != null">battery_pack_voltage,</if>
<if test="batteryPackCurrent != null">battery_pack_current,</if>
<if test="batteryPackTemp != null">battery_pack_temp,</if>
<if test="batteryPackSoc != null">battery_pack_soc,</if>
<if test="batteryPackSoh != null">battery_pack_soh,</if>
<if test="batteryPackInsulationResistance != null">battery_pack_insulation_resistance,</if>
<if test="avgCellVoltage != null">avg_cell_voltage,</if>
<if test="avgCellTemp != null">avg_cell_temp,</if>
<if test="maxCellVoltage != null">max_cell_voltage,</if>
<if test="maxCellVoltageId != null">max_cell_voltage_id,</if>
<if test="minCellVoltage != null">min_cell_voltage,</if>
<if test="minCellVoltageId != null">min_cell_voltage_id,</if>
<if test="maxCellTemp != null">max_cell_temp,</if>
<if test="maxCellTempId != null">max_cell_temp_id,</if>
<if test="minCellTemp != null">min_cell_temp,</if>
<if test="minCellTempId != null">min_cell_temp_id,</if>
<if test="maxCellSoc != null">max_cell_soc,</if>
<if test="maxCellSocId != null">max_cell_soc_id,</if>
<if test="minCellSoc != null">min_cell_soc,</if>
<if test="minCellSocId != null">min_cell_soc_id,</if>
<if test="maxCellSoh != null">max_cell_soh,</if>
<if test="maxCellSohId != null">max_cell_soh_id,</if>
<if test="minCellSoh != null">min_cell_soh,</if>
<if test="minCellSohId != null">min_cell_soh_id,</if>
<if test="totalChargeEnergy != null">total_charge_energy,</if>
<if test="totalDischargeEnergy != null">total_discharge_energy,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="workStatus != null">#{workStatus},</if> <if test="workStatus != null">#{workStatus},</if>
@ -102,7 +201,40 @@
<if test="updateTime != null">#{updateTime},</if> <if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if> <if test="remark != null">#{remark},</if>
<if test="siteId != null">#{siteId},</if> <if test="siteId != null">#{siteId},</if>
<if test="deviceId != null">#{deviceId},</if> <if test="deviceId != null and deviceId != ''">#{deviceId},</if>
<if test="stackDeviceId != null and stackDeviceId != ''">#{stackDeviceId},</if>
<if test="maxAllowedChargePower != null">#{maxAllowedChargePower},</if>
<if test="maxAllowedDischargePower != null">#{maxAllowedDischargePower},</if>
<if test="maxAllowedChargeVoltage != null">#{maxAllowedChargeVoltage},</if>
<if test="maxAllowedDischargeVoltage != null">#{maxAllowedDischargeVoltage},</if>
<if test="maxAllowedChargeCurrent != null">#{maxAllowedChargeCurrent},</if>
<if test="maxAllowedDischargeCurrent != null">#{maxAllowedDischargeCurrent},</if>
<if test="batteryPackVoltage != null">#{batteryPackVoltage},</if>
<if test="batteryPackCurrent != null">#{batteryPackCurrent},</if>
<if test="batteryPackTemp != null">#{batteryPackTemp},</if>
<if test="batteryPackSoc != null">#{batteryPackSoc},</if>
<if test="batteryPackSoh != null">#{batteryPackSoh},</if>
<if test="batteryPackInsulationResistance != null">#{batteryPackInsulationResistance},</if>
<if test="avgCellVoltage != null">#{avgCellVoltage},</if>
<if test="avgCellTemp != null">#{avgCellTemp},</if>
<if test="maxCellVoltage != null">#{maxCellVoltage},</if>
<if test="maxCellVoltageId != null">#{maxCellVoltageId},</if>
<if test="minCellVoltage != null">#{minCellVoltage},</if>
<if test="minCellVoltageId != null">#{minCellVoltageId},</if>
<if test="maxCellTemp != null">#{maxCellTemp},</if>
<if test="maxCellTempId != null">#{maxCellTempId},</if>
<if test="minCellTemp != null">#{minCellTemp},</if>
<if test="minCellTempId != null">#{minCellTempId},</if>
<if test="maxCellSoc != null">#{maxCellSoc},</if>
<if test="maxCellSocId != null">#{maxCellSocId},</if>
<if test="minCellSoc != null">#{minCellSoc},</if>
<if test="minCellSocId != null">#{minCellSocId},</if>
<if test="maxCellSoh != null">#{maxCellSoh},</if>
<if test="maxCellSohId != null">#{maxCellSohId},</if>
<if test="minCellSoh != null">#{minCellSoh},</if>
<if test="minCellSohId != null">#{minCellSohId},</if>
<if test="totalChargeEnergy != null">#{totalChargeEnergy},</if>
<if test="totalDischargeEnergy != null">#{totalDischargeEnergy},</if>
</trim> </trim>
</insert> </insert>
@ -128,7 +260,40 @@
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if> <if test="remark != null">remark = #{remark},</if>
<if test="siteId != null">site_id = #{siteId},</if> <if test="siteId != null">site_id = #{siteId},</if>
<if test="deviceId != null">device_id = #{deviceId},</if> <if test="deviceId != null and deviceId != ''">device_id = #{deviceId},</if>
<if test="stackDeviceId != null and stackDeviceId != ''">stack_device_id = #{stackDeviceId},</if>
<if test="maxAllowedChargePower != null">max_allowed_charge_power = #{maxAllowedChargePower},</if>
<if test="maxAllowedDischargePower != null">max_allowed_discharge_power = #{maxAllowedDischargePower},</if>
<if test="maxAllowedChargeVoltage != null">max_allowed_charge_voltage = #{maxAllowedChargeVoltage},</if>
<if test="maxAllowedDischargeVoltage != null">max_allowed_discharge_voltage = #{maxAllowedDischargeVoltage},</if>
<if test="maxAllowedChargeCurrent != null">max_allowed_charge_current = #{maxAllowedChargeCurrent},</if>
<if test="maxAllowedDischargeCurrent != null">max_allowed_discharge_current = #{maxAllowedDischargeCurrent},</if>
<if test="batteryPackVoltage != null">battery_pack_voltage = #{batteryPackVoltage},</if>
<if test="batteryPackCurrent != null">battery_pack_current = #{batteryPackCurrent},</if>
<if test="batteryPackTemp != null">battery_pack_temp = #{batteryPackTemp},</if>
<if test="batteryPackSoc != null">battery_pack_soc = #{batteryPackSoc},</if>
<if test="batteryPackSoh != null">battery_pack_soh = #{batteryPackSoh},</if>
<if test="batteryPackInsulationResistance != null">battery_pack_insulation_resistance = #{batteryPackInsulationResistance},</if>
<if test="avgCellVoltage != null">avg_cell_voltage = #{avgCellVoltage},</if>
<if test="avgCellTemp != null">avg_cell_temp = #{avgCellTemp},</if>
<if test="maxCellVoltage != null">max_cell_voltage = #{maxCellVoltage},</if>
<if test="maxCellVoltageId != null">max_cell_voltage_id = #{maxCellVoltageId},</if>
<if test="minCellVoltage != null">min_cell_voltage = #{minCellVoltage},</if>
<if test="minCellVoltageId != null">min_cell_voltage_id = #{minCellVoltageId},</if>
<if test="maxCellTemp != null">max_cell_temp = #{maxCellTemp},</if>
<if test="maxCellTempId != null">max_cell_temp_id = #{maxCellTempId},</if>
<if test="minCellTemp != null">min_cell_temp = #{minCellTemp},</if>
<if test="minCellTempId != null">min_cell_temp_id = #{minCellTempId},</if>
<if test="maxCellSoc != null">max_cell_soc = #{maxCellSoc},</if>
<if test="maxCellSocId != null">max_cell_soc_id = #{maxCellSocId},</if>
<if test="minCellSoc != null">min_cell_soc = #{minCellSoc},</if>
<if test="minCellSocId != null">min_cell_soc_id = #{minCellSocId},</if>
<if test="maxCellSoh != null">max_cell_soh = #{maxCellSoh},</if>
<if test="maxCellSohId != null">max_cell_soh_id = #{maxCellSohId},</if>
<if test="minCellSoh != null">min_cell_soh = #{minCellSoh},</if>
<if test="minCellSohId != null">min_cell_soh_id = #{minCellSohId},</if>
<if test="totalChargeEnergy != null">total_charge_energy = #{totalChargeEnergy},</if>
<if test="totalDischargeEnergy != null">total_discharge_energy = #{totalDischargeEnergy},</if>
</trim> </trim>
where id = #{id} where id = #{id}
</update> </update>
@ -144,17 +309,47 @@
</foreach> </foreach>
</delete> </delete>
<select id="getBMSBatteryCluster" parameterType="Long" resultType="com.xzzn.ems.domain.vo.BMSBatteryClusterVo"> <select id="getBMSBatteryCluster" parameterType="String" resultType="com.xzzn.ems.domain.vo.BMSBatteryClusterVo">
select td.device_name as deviceName, tmp.work_status as workStatus, select td.device_name as deviceName, tmp.work_status as workStatus,
tmp.pcs_communication_status as pcsCommunicationStatus, tmp.ems_communication_status as emsCommunicationStatus, tmp.pcs_communication_status as pcsCommunicationStatus, tmp.ems_communication_status as emsCommunicationStatus,
tmp.cluster_voltage as clusterVoltage,tmp.chargeable_capacity as chargeableCapacity, tmp.total_charged_capacity as totalChargedCapacity, tmp.cluster_voltage as clusterVoltage,tmp.chargeable_capacity as chargeableCapacity,
tmp.cluster_current as clusterCurrent,tmp.dischargeable_capacity as dischargeableCapacity, tmp.total_discharged_capacity as totalDischargedCapacity, tmp.total_charged_capacity as totalChargedCapacity,
tmp.soh as soh,tmp.average_temperature as averageTemperature,tmp.insulation_resistance as insulationResistance, tmp.cluster_current as clusterCurrent,tmp.dischargeable_capacity as dischargeableCapacity,
tmp.current_soc as currentSoc,tmp.site_id as siteId,tmp.device_id as deviceId tmp.total_discharged_capacity as totalDischargedCapacity,
from ems_battery_cluster tmp left join ems_devices_setting td on tmp.device_id = td.id and tmp.site_id = td.site_id tmp.soh as soh,tmp.average_temperature as averageTemperature,tmp.insulation_resistance as insulationResistance,
tmp.current_soc as currentSoc,tmp.site_id as siteId,tmp.device_id as deviceId,
tmp.avg_cell_voltage as avgVoltage,tmp.avg_cell_temp as avgTemp,tmp.avg_cell_temp as avgSoc,
tmp.max_cell_voltage as maxVoltage,tmp.max_cell_voltage_id as maxVoltageId,
tmp.min_cell_voltage as minVolatage,tmp.min_cell_voltage_id as minVoltageId,
tmp.max_cell_temp as maxTem,tmp.max_cell_temp_id as maxTempId,
tmp.min_cell_temp as minTemp,tmp.min_cell_temp_id as minTempId,
tmp.max_cell_soc as maxSoc,tmp.max_cell_soc_id as maxSocId,
tmp.min_cell_soc as minSoc,tmp.min_cell_soc_id as minSocId
from ems_battery_cluster tmp left join ems_devices_setting td on tmp.device_id = td.device_id and tmp.site_id = td.site_id
INNER JOIN (
SELECT p.site_id, p.device_id, MAX(p.update_time) AS max_update_time
FROM ems_battery_cluster p
WHERE p.site_id = #{siteId}
GROUP BY p.site_id,p.device_id
) latest on tmp.device_id = latest.device_id and tmp.update_time = latest.max_update_time
where tmp.site_id = #{siteId} where tmp.site_id = #{siteId}
and tmp.update_time = (select MAX(t.update_time) FROM ems_battery_cluster t where t.site_id = tmp.site_id
and t.device_id = tmp.device_id)
order by tmp.device_id order by tmp.device_id
</select> </select>
<select id="getBmsBatteryData" resultType="com.xzzn.ems.domain.vo.BMSBatteryDataList">
SELECT t.cluster_voltage as clusterVoltage,t.cluster_current as clusterCurrent,
t.current_soc as currentSoc,t.site_id as siteId,t.device_id as clusterId,
t.max_cell_voltage as maxVoltage,t.min_cell_voltage as minVoltage,
t.max_cell_temp as maxTemperature,t.min_cell_temp as minTemperature
FROM ems_battery_cluster t
INNER JOIN (
SELECT p.site_id, p.device_id, MAX(p.update_time) AS max_update_time
FROM ems_battery_cluster p
WHERE p.site_id = #{siteId} and p.stack_device_id = #{stackDeviceId}
GROUP BY p.site_id,p.device_id
) latest on t.device_id = latest.device_id and t.update_time = latest.max_update_time
where t.site_id = #{siteId} and t.stack_device_id = #{stackDeviceId}
group by t.cluster_voltage,t.cluster_current,t.current_soc,t.site_id,t.device_id,t.max_cell_voltage,t.min_cell_voltage,
t.max_cell_temp,t.min_cell_temp
</select>
</mapper> </mapper>

View File

@ -21,10 +21,11 @@
<result property="remark" column="remark" /> <result property="remark" column="remark" />
<result property="siteId" column="site_id" /> <result property="siteId" column="site_id" />
<result property="deviceId" column="device_id" /> <result property="deviceId" column="device_id" />
<result property="clusterDeviceId" column="cluster_device_id" />
</resultMap> </resultMap>
<sql id="selectEmsBatteryDataVo"> <sql id="selectEmsBatteryDataVo">
select id, battery_pack, battery_cluster, battery_cell_id, voltage, temperature, soc, soh, data_timestamp, create_by, create_time, update_by, update_time, remark, site_id, device_id from ems_battery_data select id, battery_pack, battery_cluster, battery_cell_id, voltage, temperature, soc, soh, data_timestamp, create_by, create_time, update_by, update_time, remark, site_id, device_id, cluster_device_id from ems_battery_data
</sql> </sql>
<select id="selectEmsBatteryDataList" parameterType="EmsBatteryData" resultMap="EmsBatteryDataResult"> <select id="selectEmsBatteryDataList" parameterType="EmsBatteryData" resultMap="EmsBatteryDataResult">
@ -38,8 +39,9 @@
<if test="soc != null "> and soc = #{soc}</if> <if test="soc != null "> and soc = #{soc}</if>
<if test="soh != null "> and soh = #{soh}</if> <if test="soh != null "> and soh = #{soh}</if>
<if test="dataTimestamp != null "> and data_timestamp = #{dataTimestamp}</if> <if test="dataTimestamp != null "> and data_timestamp = #{dataTimestamp}</if>
<if test="siteId != null "> and site_id = #{siteId}</if> <if test="siteId != null and siteId != ''"> and site_id = #{siteId}</if>
<if test="deviceId != null "> and device_id = #{deviceId}</if> <if test="deviceId != null and deviceId != ''"> and device_id = #{deviceId}</if>
<if test="clusterDeviceId != null and clusterDeviceId != ''"> and cluster_device_id = #{clusterDeviceId}</if>
</where> </where>
</select> </select>
@ -65,7 +67,8 @@
<if test="updateTime != null">update_time,</if> <if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if> <if test="remark != null">remark,</if>
<if test="siteId != null">site_id,</if> <if test="siteId != null">site_id,</if>
<if test="deviceId != null">device_id,</if> <if test="deviceId != null and deviceId != ''">device_id,</if>
<if test="clusterDeviceId != null and clusterDeviceId != ''">cluster_device_id,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="batteryPack != null">#{batteryPack},</if> <if test="batteryPack != null">#{batteryPack},</if>
@ -82,7 +85,8 @@
<if test="updateTime != null">#{updateTime},</if> <if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if> <if test="remark != null">#{remark},</if>
<if test="siteId != null">#{siteId},</if> <if test="siteId != null">#{siteId},</if>
<if test="deviceId != null">#{deviceId},</if> <if test="deviceId != null and deviceId != ''">#{deviceId},</if>
<if test="clusterDeviceId != null and clusterDeviceId != ''">#{clusterDeviceId},</if>
</trim> </trim>
</insert> </insert>
@ -103,7 +107,8 @@
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if> <if test="remark != null">remark = #{remark},</if>
<if test="siteId != null">site_id = #{siteId},</if> <if test="siteId != null">site_id = #{siteId},</if>
<if test="deviceId != null">device_id = #{deviceId},</if> <if test="deviceId != null and deviceId != ''">device_id = #{deviceId},</if>
<if test="clusterDeviceId != null and clusterDeviceId != ''">cluster_device_id = #{clusterDeviceId},</if>
</trim> </trim>
where id = #{id} where id = #{id}
</update> </update>
@ -119,9 +124,91 @@
</foreach> </foreach>
</delete> </delete>
<select id="getBatteryDataBySiteId" parameterType="Long" resultMap="EmsBatteryDataResult"> <select id="getBatteryDataBySiteId" parameterType="String" resultMap="EmsBatteryDataResult">
<include refid="selectEmsBatteryDataVo"/> <include refid="selectEmsBatteryDataVo"/>
where site_id = #{siteId} WHERE site_id = #{siteId} AND data_timestamp &gt;= CURDATE()
and DATE(data_timestamp) = DATE(NOW()) ORDER BY data_timestamp desc limit 1
</select> </select>
<select id="getBatteryDataByClusterId" resultType="com.xzzn.ems.domain.vo.BatteryClusterDataDetailVo">
select t.site_id as siteId,t.cluster_device_id as clusterId,
AVG(t.voltage) as avgVoltage,MAX(t.voltage) as maxVoltage,MIN(t.voltage) as minVoltage,
AVG(t.temperature) as avgTemp,MAX(t.temperature) as maxTemp,MIN(t.temperature) as minTemp,
AVG(t.soc) as avgSoc,MAX(t.soc) as maxSoc,MIN(t.soc) as minSoc
from ems_battery_data t
where t.site_id = #{siteId}
and t.cluster_device_id = #{clusterDeviceId}
and t.update_time = (select MAX(update_time) FROM ems_battery_data where site_id = t.site_id
and device_id = t.device_id and cluster_device_id = t.cluster_device_id)
group by t.site_id,t.cluster_device_id
</select>
<select id="getDataIdsMap" parameterType="com.xzzn.ems.domain.vo.BatteryClusterDataDetailVo" resultType="java.util.Map">
<if test="maxVoltage != null">
select 'maxVoltageId' as type, t.device_id from ems_battery_data t
where t.site_id = #{siteId} and t.cluster_device_id = #{clusterId} and t.voltage = #{maxVoltage}
union all
</if>
<if test="minVoltage != null">
select 'minVoltageId' as type, t.device_id from ems_battery_data t
where t.site_id = #{siteId} and t.cluster_device_id = #{clusterId} and t.voltage = #{minVoltage}
union all
</if>
<if test="maxTemp != null">
select 'maxTempId' as type, t.device_id from ems_battery_data t
where t.site_id = #{siteId} and t.cluster_device_id = #{clusterId} and t.temperature = #{maxTemp}
union all
</if>
<if test="minTemp != null">
select 'minTempId' as type, t.device_id from ems_battery_data t
where t.site_id = #{siteId} and t.cluster_device_id = #{clusterId} and t.temperature = #{minTemp}
union all
</if>
<if test="maxSoc != null">
select 'maxSocId' as type, t.device_id from ems_battery_data t
where t.site_id = #{siteId} and t.cluster_device_id = #{clusterId} and t.soc = #{maxSoc}
union all
</if>
<if test="minSoc != null">
select 'minSocId' as type, t.device_id from ems_battery_data t
where t.site_id = #{siteId} and t.cluster_device_id = #{clusterId} and t.soc = #{minSoc}
union all
</if>
SELECT NULL AS type, NULL AS device_id FROM DUAL WHERE 1=0
</select>
<select id="getAllBatteryDataByClusterId" parameterType="String" resultType="com.xzzn.ems.domain.vo.BatteryDataStatsListVo">
SELECT
update_time as updateTime,
voltage, temperature, soc, soh,
device_id as deviceId
FROM (
SELECT
t.update_time, t.voltage, t.temperature, t.soc, t.soh, t.device_id,
ROW_NUMBER() OVER (
PARTITION BY t.device_id ORDER BY t.update_time DESC
) AS rn
FROM ems_battery_data t
WHERE t.cluster_device_id = #{clusterDeviceId}
) ranked
WHERE rn = 1
</select>
<insert id="insertEmsBatteryDataList" parameterType="java.util.List">
INSERT INTO ems_battery_data (
battery_pack, battery_cluster, battery_cell_id,
voltage, temperature, soc, soh, data_timestamp,
create_by, create_time, update_by, update_time,
remark, site_id, device_id, cluster_device_id
) VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.batteryPack}, #{item.batteryCluster}, #{item.batteryCellId},
#{item.voltage}, #{item.temperature}, #{item.soc}, #{item.soh}, #{item.dataTimestamp},
#{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime},
#{item.remark}, #{item.siteId}, #{item.deviceId}, #{item.clusterDeviceId}
)
</foreach>
</insert>
</mapper> </mapper>

View File

@ -26,10 +26,42 @@
<result property="remark" column="remark" /> <result property="remark" column="remark" />
<result property="siteId" column="site_id" /> <result property="siteId" column="site_id" />
<result property="deviceId" column="device_id" /> <result property="deviceId" column="device_id" />
<result property="maxAllowedChargePower" column="max_allowed_charge_power" />
<result property="maxAllowedDischargePower" column="max_allowed_discharge_power" />
<result property="maxAllowedChargeVoltage" column="max_allowed_charge_voltage" />
<result property="maxAllowedDischargeVoltage" column="max_allowed_discharge_voltage" />
<result property="maxAllowedChargeCurrent" column="max_allowed_charge_current" />
<result property="maxAllowedDischargeCurrent" column="max_allowed_discharge_current" />
<result property="batteryPackVoltage" column="battery_pack_voltage" />
<result property="batteryPackCurrent" column="battery_pack_current" />
<result property="batteryPackTemp" column="battery_pack_temp" />
<result property="batteryPackSoc" column="battery_pack_soc" />
<result property="batteryPackSoh" column="battery_pack_soh" />
<result property="batteryPackInsulationResistance" column="battery_pack_insulation_resistance" />
<result property="avgCellVoltage" column="avg_cell_voltage" />
<result property="avgCellTemp" column="avg_cell_temp" />
<result property="maxCellVoltage" column="max_cell_voltage" />
<result property="maxCellVoltageId" column="max_cell_voltage_id" />
<result property="minCellVoltage" column="min_cell_voltage" />
<result property="minCellVoltageId" column="min_cell_voltage_id" />
<result property="maxCellTemp" column="max_cell_temp" />
<result property="maxCellTempId" column="max_cell_temp_id" />
<result property="minCellTemp" column="min_cell_temp" />
<result property="minCellTempId" column="min_cell_temp_id" />
<result property="maxCellSoc" column="max_cell_soc" />
<result property="maxCellSocId" column="max_cell_soc_id" />
<result property="minCellSoc" column="min_cell_soc" />
<result property="minCellSocId" column="min_cell_soc_id" />
<result property="maxCellSoh" column="max_cell_soh" />
<result property="maxCellSohId" column="max_cell_soh_id" />
<result property="minCellSoh" column="min_cell_soh" />
<result property="minCellSohId" column="min_cell_soh_id" />
<result property="totalChargeEnergy" column="total_charge_energy" />
<result property="totalDischargeEnergy" column="total_discharge_energy" />
</resultMap> </resultMap>
<sql id="selectEmsBatteryStackVo"> <sql id="selectEmsBatteryStackVo">
select id, work_status, pcs_communication_status, ems_communication_status, total_voltage, chargeable_capacity, total_charged_capacity, total_current, dischargeable_capacity, total_discharged_capacity, soh, average_temperature, insulation_resistance, current_soc, create_by, create_time, update_by, update_time, remark, site_id, device_id from ems_battery_stack select id, work_status, pcs_communication_status, ems_communication_status, total_voltage, chargeable_capacity, total_charged_capacity, total_current, dischargeable_capacity, total_discharged_capacity, soh, average_temperature, insulation_resistance, current_soc, create_by, create_time, update_by, update_time, remark, site_id, device_id, max_allowed_charge_power, max_allowed_discharge_power, max_allowed_charge_voltage, max_allowed_discharge_voltage, max_allowed_charge_current, max_allowed_discharge_current, battery_pack_voltage, battery_pack_current, battery_pack_temp, battery_pack_soc, battery_pack_soh, battery_pack_insulation_resistance, avg_cell_voltage, avg_cell_temp, max_cell_voltage, max_cell_voltage_id, min_cell_voltage, min_cell_voltage_id, max_cell_temp, max_cell_temp_id, min_cell_temp, min_cell_temp_id, max_cell_soc, max_cell_soc_id, min_cell_soc, min_cell_soc_id, max_cell_soh, max_cell_soh_id, min_cell_soh, min_cell_soh_id, total_charge_energy, total_discharge_energy from ems_battery_stack
</sql> </sql>
<select id="selectEmsBatteryStackList" parameterType="EmsBatteryStack" resultMap="EmsBatteryStackResult"> <select id="selectEmsBatteryStackList" parameterType="EmsBatteryStack" resultMap="EmsBatteryStackResult">
@ -48,8 +80,40 @@
<if test="averageTemperature != null "> and average_temperature = #{averageTemperature}</if> <if test="averageTemperature != null "> and average_temperature = #{averageTemperature}</if>
<if test="insulationResistance != null "> and insulation_resistance = #{insulationResistance}</if> <if test="insulationResistance != null "> and insulation_resistance = #{insulationResistance}</if>
<if test="currentSoc != null "> and current_soc = #{currentSoc}</if> <if test="currentSoc != null "> and current_soc = #{currentSoc}</if>
<if test="siteId != null "> and site_id = #{siteId}</if> <if test="siteId != null and siteId != ''"> and site_id = #{siteId}</if>
<if test="deviceId != null "> and device_id = #{deviceId}</if> <if test="deviceId != null and deviceId != ''"> and device_id = #{deviceId}</if>
<if test="maxAllowedChargePower != null "> and max_allowed_charge_power = #{maxAllowedChargePower}</if>
<if test="maxAllowedDischargePower != null "> and max_allowed_discharge_power = #{maxAllowedDischargePower}</if>
<if test="maxAllowedChargeVoltage != null "> and max_allowed_charge_voltage = #{maxAllowedChargeVoltage}</if>
<if test="maxAllowedDischargeVoltage != null "> and max_allowed_discharge_voltage = #{maxAllowedDischargeVoltage}</if>
<if test="maxAllowedChargeCurrent != null "> and max_allowed_charge_current = #{maxAllowedChargeCurrent}</if>
<if test="maxAllowedDischargeCurrent != null "> and max_allowed_discharge_current = #{maxAllowedDischargeCurrent}</if>
<if test="batteryPackVoltage != null "> and battery_pack_voltage = #{batteryPackVoltage}</if>
<if test="batteryPackCurrent != null "> and battery_pack_current = #{batteryPackCurrent}</if>
<if test="batteryPackTemp != null "> and battery_pack_temp = #{batteryPackTemp}</if>
<if test="batteryPackSoc != null "> and battery_pack_soc = #{batteryPackSoc}</if>
<if test="batteryPackSoh != null "> and battery_pack_soh = #{batteryPackSoh}</if>
<if test="batteryPackInsulationResistance != null "> and battery_pack_insulation_resistance = #{batteryPackInsulationResistance}</if>
<if test="avgCellVoltage != null "> and avg_cell_voltage = #{avgCellVoltage}</if>
<if test="avgCellTemp != null "> and avg_cell_temp = #{avgCellTemp}</if>
<if test="maxCellVoltage != null "> and max_cell_voltage = #{maxCellVoltage}</if>
<if test="maxCellVoltageId != null "> and max_cell_voltage_id = #{maxCellVoltageId}</if>
<if test="minCellVoltage != null "> and min_cell_voltage = #{minCellVoltage}</if>
<if test="minCellVoltageId != null "> and min_cell_voltage_id = #{minCellVoltageId}</if>
<if test="maxCellTemp != null "> and max_cell_temp = #{maxCellTemp}</if>
<if test="maxCellTempId != null "> and max_cell_temp_id = #{maxCellTempId}</if>
<if test="minCellTemp != null "> and min_cell_temp = #{minCellTemp}</if>
<if test="minCellTempId != null "> and min_cell_temp_id = #{minCellTempId}</if>
<if test="maxCellSoc != null "> and max_cell_soc = #{maxCellSoc}</if>
<if test="maxCellSocId != null "> and max_cell_soc_id = #{maxCellSocId}</if>
<if test="minCellSoc != null "> and min_cell_soc = #{minCellSoc}</if>
<if test="minCellSocId != null "> and min_cell_soc_id = #{minCellSocId}</if>
<if test="maxCellSoh != null "> and max_cell_soh = #{maxCellSoh}</if>
<if test="maxCellSohId != null "> and max_cell_soh_id = #{maxCellSohId}</if>
<if test="minCellSoh != null "> and min_cell_soh = #{minCellSoh}</if>
<if test="minCellSohId != null "> and min_cell_soh_id = #{minCellSohId}</if>
<if test="totalChargeEnergy != null "> and total_charge_energy = #{totalChargeEnergy}</if>
<if test="totalDischargeEnergy != null "> and total_discharge_energy = #{totalDischargeEnergy}</if>
</where> </where>
</select> </select>
@ -80,7 +144,39 @@
<if test="updateTime != null">update_time,</if> <if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if> <if test="remark != null">remark,</if>
<if test="siteId != null">site_id,</if> <if test="siteId != null">site_id,</if>
<if test="deviceId != null">device_id,</if> <if test="deviceId != null and deviceId != ''">device_id,</if>
<if test="maxAllowedChargePower != null">max_allowed_charge_power,</if>
<if test="maxAllowedDischargePower != null">max_allowed_discharge_power,</if>
<if test="maxAllowedChargeVoltage != null">max_allowed_charge_voltage,</if>
<if test="maxAllowedDischargeVoltage != null">max_allowed_discharge_voltage,</if>
<if test="maxAllowedChargeCurrent != null">max_allowed_charge_current,</if>
<if test="maxAllowedDischargeCurrent != null">max_allowed_discharge_current,</if>
<if test="batteryPackVoltage != null">battery_pack_voltage,</if>
<if test="batteryPackCurrent != null">battery_pack_current,</if>
<if test="batteryPackTemp != null">battery_pack_temp,</if>
<if test="batteryPackSoc != null">battery_pack_soc,</if>
<if test="batteryPackSoh != null">battery_pack_soh,</if>
<if test="batteryPackInsulationResistance != null">battery_pack_insulation_resistance,</if>
<if test="avgCellVoltage != null">avg_cell_voltage,</if>
<if test="avgCellTemp != null">avg_cell_temp,</if>
<if test="maxCellVoltage != null">max_cell_voltage,</if>
<if test="maxCellVoltageId != null">max_cell_voltage_id,</if>
<if test="minCellVoltage != null">min_cell_voltage,</if>
<if test="minCellVoltageId != null">min_cell_voltage_id,</if>
<if test="maxCellTemp != null">max_cell_temp,</if>
<if test="maxCellTempId != null">max_cell_temp_id,</if>
<if test="minCellTemp != null">min_cell_temp,</if>
<if test="minCellTempId != null">min_cell_temp_id,</if>
<if test="maxCellSoc != null">max_cell_soc,</if>
<if test="maxCellSocId != null">max_cell_soc_id,</if>
<if test="minCellSoc != null">min_cell_soc,</if>
<if test="minCellSocId != null">min_cell_soc_id,</if>
<if test="maxCellSoh != null">max_cell_soh,</if>
<if test="maxCellSohId != null">max_cell_soh_id,</if>
<if test="minCellSoh != null">min_cell_soh,</if>
<if test="minCellSohId != null">min_cell_soh_id,</if>
<if test="totalChargeEnergy != null">total_charge_energy,</if>
<if test="totalDischargeEnergy != null">total_discharge_energy,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="workStatus != null">#{workStatus},</if> <if test="workStatus != null">#{workStatus},</if>
@ -102,7 +198,39 @@
<if test="updateTime != null">#{updateTime},</if> <if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if> <if test="remark != null">#{remark},</if>
<if test="siteId != null">#{siteId},</if> <if test="siteId != null">#{siteId},</if>
<if test="deviceId != null">#{deviceId},</if> <if test="deviceId != null and deviceId != ''">#{deviceId},</if>
<if test="maxAllowedChargePower != null">#{maxAllowedChargePower},</if>
<if test="maxAllowedDischargePower != null">#{maxAllowedDischargePower},</if>
<if test="maxAllowedChargeVoltage != null">#{maxAllowedChargeVoltage},</if>
<if test="maxAllowedDischargeVoltage != null">#{maxAllowedDischargeVoltage},</if>
<if test="maxAllowedChargeCurrent != null">#{maxAllowedChargeCurrent},</if>
<if test="maxAllowedDischargeCurrent != null">#{maxAllowedDischargeCurrent},</if>
<if test="batteryPackVoltage != null">#{batteryPackVoltage},</if>
<if test="batteryPackCurrent != null">#{batteryPackCurrent},</if>
<if test="batteryPackTemp != null">#{batteryPackTemp},</if>
<if test="batteryPackSoc != null">#{batteryPackSoc},</if>
<if test="batteryPackSoh != null">#{batteryPackSoh},</if>
<if test="batteryPackInsulationResistance != null">#{batteryPackInsulationResistance},</if>
<if test="avgCellVoltage != null">#{avgCellVoltage},</if>
<if test="avgCellTemp != null">#{avgCellTemp},</if>
<if test="maxCellVoltage != null">#{maxCellVoltage},</if>
<if test="maxCellVoltageId != null">#{maxCellVoltageId},</if>
<if test="minCellVoltage != null">#{minCellVoltage},</if>
<if test="minCellVoltageId != null">#{minCellVoltageId},</if>
<if test="maxCellTemp != null">#{maxCellTemp},</if>
<if test="maxCellTempId != null">#{maxCellTempId},</if>
<if test="minCellTemp != null">#{minCellTemp},</if>
<if test="minCellTempId != null">#{minCellTempId},</if>
<if test="maxCellSoc != null">#{maxCellSoc},</if>
<if test="maxCellSocId != null">#{maxCellSocId},</if>
<if test="minCellSoc != null">#{minCellSoc},</if>
<if test="minCellSocId != null">#{minCellSocId},</if>
<if test="maxCellSoh != null">#{maxCellSoh},</if>
<if test="maxCellSohId != null">#{maxCellSohId},</if>
<if test="minCellSoh != null">#{minCellSoh},</if>
<if test="minCellSohId != null">#{minCellSohId},</if>
<if test="totalChargeEnergy != null">#{totalChargeEnergy},</if>
<if test="totalDischargeEnergy != null">#{totalDischargeEnergy},</if>
</trim> </trim>
</insert> </insert>
@ -128,7 +256,39 @@
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if> <if test="remark != null">remark = #{remark},</if>
<if test="siteId != null">site_id = #{siteId},</if> <if test="siteId != null">site_id = #{siteId},</if>
<if test="deviceId != null">device_id = #{deviceId},</if> <if test="deviceId != null and deviceId != ''">device_id = #{deviceId},</if>
<if test="maxAllowedChargePower != null">max_allowed_charge_power = #{maxAllowedChargePower},</if>
<if test="maxAllowedDischargePower != null">max_allowed_discharge_power = #{maxAllowedDischargePower},</if>
<if test="maxAllowedChargeVoltage != null">max_allowed_charge_voltage = #{maxAllowedChargeVoltage},</if>
<if test="maxAllowedDischargeVoltage != null">max_allowed_discharge_voltage = #{maxAllowedDischargeVoltage},</if>
<if test="maxAllowedChargeCurrent != null">max_allowed_charge_current = #{maxAllowedChargeCurrent},</if>
<if test="maxAllowedDischargeCurrent != null">max_allowed_discharge_current = #{maxAllowedDischargeCurrent},</if>
<if test="batteryPackVoltage != null">battery_pack_voltage = #{batteryPackVoltage},</if>
<if test="batteryPackCurrent != null">battery_pack_current = #{batteryPackCurrent},</if>
<if test="batteryPackTemp != null">battery_pack_temp = #{batteryPackTemp},</if>
<if test="batteryPackSoc != null">battery_pack_soc = #{batteryPackSoc},</if>
<if test="batteryPackSoh != null">battery_pack_soh = #{batteryPackSoh},</if>
<if test="batteryPackInsulationResistance != null">battery_pack_insulation_resistance = #{batteryPackInsulationResistance},</if>
<if test="avgCellVoltage != null">avg_cell_voltage = #{avgCellVoltage},</if>
<if test="avgCellTemp != null">avg_cell_temp = #{avgCellTemp},</if>
<if test="maxCellVoltage != null">max_cell_voltage = #{maxCellVoltage},</if>
<if test="maxCellVoltageId != null">max_cell_voltage_id = #{maxCellVoltageId},</if>
<if test="minCellVoltage != null">min_cell_voltage = #{minCellVoltage},</if>
<if test="minCellVoltageId != null">min_cell_voltage_id = #{minCellVoltageId},</if>
<if test="maxCellTemp != null">max_cell_temp = #{maxCellTemp},</if>
<if test="maxCellTempId != null">max_cell_temp_id = #{maxCellTempId},</if>
<if test="minCellTemp != null">min_cell_temp = #{minCellTemp},</if>
<if test="minCellTempId != null">min_cell_temp_id = #{minCellTempId},</if>
<if test="maxCellSoc != null">max_cell_soc = #{maxCellSoc},</if>
<if test="maxCellSocId != null">max_cell_soc_id = #{maxCellSocId},</if>
<if test="minCellSoc != null">min_cell_soc = #{minCellSoc},</if>
<if test="minCellSocId != null">min_cell_soc_id = #{minCellSocId},</if>
<if test="maxCellSoh != null">max_cell_soh = #{maxCellSoh},</if>
<if test="maxCellSohId != null">max_cell_soh_id = #{maxCellSohId},</if>
<if test="minCellSoh != null">min_cell_soh = #{minCellSoh},</if>
<if test="minCellSohId != null">min_cell_soh_id = #{minCellSohId},</if>
<if test="totalChargeEnergy != null">total_charge_energy = #{totalChargeEnergy},</if>
<if test="totalDischargeEnergy != null">total_discharge_energy = #{totalDischargeEnergy},</if>
</trim> </trim>
where id = #{id} where id = #{id}
</update> </update>
@ -144,17 +304,24 @@
</foreach> </foreach>
</delete> </delete>
<select id="selectEmsBatteryStackBySiteId" parameterType="Long" resultType="com.xzzn.ems.domain.vo.BMSOverViewVo"> <select id="selectEmsBatteryStackBySiteId" parameterType="String" resultType="com.xzzn.ems.domain.vo.BMSOverViewVo">
select td.device_name as deviceName,tmp.work_status as workStatus, SELECT td.device_name as deviceName,tmp.work_status as workStatus,
tmp.pcs_communication_status as pcsCommunicationStatus,tmp.ems_communication_status as emsCommunicationStatus, tmp.pcs_communication_status as pcsCommunicationStatus,tmp.ems_communication_status as emsCommunicationStatus,
tmp.total_voltage as totalVoltage,tmp.chargeable_capacity as chargeableCapacity,tmp.total_charged_capacity as totalChargedCapacity, tmp.total_voltage as totalVoltage,tmp.chargeable_capacity as chargeableCapacity,
tmp.total_current as totalCurrent,tmp.dischargeable_capacity as dischargeableCapacity,tmp.total_discharged_capacity as totalDischargedCapacity, tmp.total_charged_capacity as totalChargedCapacity,
tmp.soh as soh,tmp.average_temperature as averageTemperature,tmp.insulation_resistance as insulationResistance, tmp.total_current as totalCurrent,tmp.dischargeable_capacity as dischargeableCapacity,
tmp.current_soc as currentSoc,tmp.site_id as siteId,tmp.device_id as deviceId tmp.total_discharged_capacity as totalDischargedCapacity,
from ems_battery_stack tmp left join ems_devices_setting td on tmp.device_id = td.id and tmp.site_id = td.site_id tmp.soh as soh,tmp.average_temperature as averageTemperature,tmp.insulation_resistance as insulationResistance,
where tmp.site_id = #{siteId} tmp.current_soc as currentSoc,tmp.site_id as siteId,tmp.device_id as deviceId
and tmp.update_time = (select MAX(t.update_time) FROM ems_battery_stack t where t.site_id = tmp.site_id FROM ems_battery_stack tmp
and t.device_id = tmp.device_id) left join ems_devices_setting td on tmp.device_id = td.device_id and tmp.site_id = td.site_id
INNER JOIN (
SELECT p.site_id, p.device_id, MAX(p.update_time) AS max_update_time
FROM ems_battery_stack p
WHERE p.site_id = #{siteId}
GROUP BY p.site_id,p.device_id
) latest on tmp.device_id = latest.device_id and tmp.update_time = latest.max_update_time
WHERE tmp.site_id = #{siteId}
order by tmp.device_id order by tmp.device_id
</select> </select>
</mapper> </mapper>

View File

@ -40,8 +40,8 @@
<if test="heatingStopPoint != null "> and heating_stop_point = #{heatingStopPoint}</if> <if test="heatingStopPoint != null "> and heating_stop_point = #{heatingStopPoint}</if>
<if test="coolingStopPoint != null "> and cooling_stop_point = #{coolingStopPoint}</if> <if test="coolingStopPoint != null "> and cooling_stop_point = #{coolingStopPoint}</if>
<if test="lowTempAlarmPoint != null "> and low_temp_alarm_point = #{lowTempAlarmPoint}</if> <if test="lowTempAlarmPoint != null "> and low_temp_alarm_point = #{lowTempAlarmPoint}</if>
<if test="siteId != null "> and site_id = #{siteId}</if> <if test="siteId != null and siteId != ''"> and site_id = #{siteId}</if>
<if test="deviceId != null "> and device_id = #{deviceId}</if> <if test="deviceId != null and deviceId != ''"> and device_id = #{deviceId}</if>
</where> </where>
</select> </select>
@ -68,7 +68,7 @@
<if test="updateTime != null">update_time,</if> <if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if> <if test="remark != null">remark,</if>
<if test="siteId != null">site_id,</if> <if test="siteId != null">site_id,</if>
<if test="deviceId != null">device_id,</if> <if test="deviceId != null and deviceId != ''">device_id,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="systemName != null">#{systemName},</if> <if test="systemName != null">#{systemName},</if>
@ -86,7 +86,7 @@
<if test="updateTime != null">#{updateTime},</if> <if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if> <if test="remark != null">#{remark},</if>
<if test="siteId != null">#{siteId},</if> <if test="siteId != null">#{siteId},</if>
<if test="deviceId != null">#{deviceId},</if> <if test="deviceId != null and deviceId != ''">#{deviceId},</if>
</trim> </trim>
</insert> </insert>
@ -108,7 +108,7 @@
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if> <if test="remark != null">remark = #{remark},</if>
<if test="siteId != null">site_id = #{siteId},</if> <if test="siteId != null">site_id = #{siteId},</if>
<if test="deviceId != null">device_id = #{deviceId},</if> <if test="deviceId != null and deviceId != ''">device_id = #{deviceId},</if>
</trim> </trim>
where id = #{id} where id = #{id}
</update> </update>
@ -124,13 +124,13 @@
</foreach> </foreach>
</delete> </delete>
<select id="getCoolingDataList" parameterType="Long" resultMap="EmsCoolingDataResult"> <select id="getCoolingDataList" parameterType="String" resultMap="EmsCoolingDataResult">
select t.* SELECT t.*
from ems_cooling_data t FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY device_id ORDER BY update_time DESC ) AS rn
where t.site_id = 1 FROM ems_cooling_data
and t.update_time = ( WHERE site_id = #{siteId}
select MAX(tcd.update_time) from ems_cooling_data tcd where tcd.site_id = t.site_id and tcd.device_id = t.device_id) ) t
order by t.system_name WHERE rn = 1
ORDER BY system_name
</select> </select>
</mapper> </mapper>

View File

@ -23,10 +23,11 @@
<result property="updatedAt" column="updated_at" /> <result property="updatedAt" column="updated_at" />
<result property="siteId" column="site_id" /> <result property="siteId" column="site_id" />
<result property="communicationStatus" column="communication_status" /> <result property="communicationStatus" column="communication_status" />
<result property="deviceId" column="device_id" />
</resultMap> </resultMap>
<sql id="selectEmsDevicesSettingVo"> <sql id="selectEmsDevicesSettingVo">
select id, device_name, device_type, slave_id, timeout_ms, retries, ip_address, ip_port, serial_port, baud_rate, data_bits, stop_bits, parity, description, created_at, updated_at, site_id, communication_status from ems_devices_setting select id, device_name, device_type, slave_id, timeout_ms, retries, ip_address, ip_port, serial_port, baud_rate, data_bits, stop_bits, parity, description, created_at, updated_at, site_id, communication_status, device_id from ems_devices_setting
</sql> </sql>
<select id="selectEmsDevicesSettingList" parameterType="EmsDevicesSetting" resultMap="EmsDevicesSettingResult"> <select id="selectEmsDevicesSettingList" parameterType="EmsDevicesSetting" resultMap="EmsDevicesSettingResult">
@ -47,8 +48,9 @@
<if test="description != null and description != ''"> and description = #{description}</if> <if test="description != null and description != ''"> and description = #{description}</if>
<if test="createdAt != null "> and created_at = #{createdAt}</if> <if test="createdAt != null "> and created_at = #{createdAt}</if>
<if test="updatedAt != null "> and updated_at = #{updatedAt}</if> <if test="updatedAt != null "> and updated_at = #{updatedAt}</if>
<if test="siteId != null "> and site_id = #{siteId}</if> <if test="siteId != null and siteId != ''"> and site_id = #{siteId}</if>
<if test="communicationStatus != null and communicationStatus != ''"> and communication_status = #{communicationStatus}</if> <if test="communicationStatus != null and communicationStatus != ''"> and communication_status = #{communicationStatus}</if>
<if test="deviceId != null and deviceId != ''"> and device_id = #{deviceId}</if>
</where> </where>
</select> </select>
@ -77,6 +79,7 @@
<if test="updatedAt != null">updated_at,</if> <if test="updatedAt != null">updated_at,</if>
<if test="siteId != null">site_id,</if> <if test="siteId != null">site_id,</if>
<if test="communicationStatus != null">communication_status,</if> <if test="communicationStatus != null">communication_status,</if>
<if test="deviceId != null and deviceId != ''">device_id,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="deviceName != null and deviceName != ''">#{deviceName},</if> <if test="deviceName != null and deviceName != ''">#{deviceName},</if>
@ -96,6 +99,7 @@
<if test="updatedAt != null">#{updatedAt},</if> <if test="updatedAt != null">#{updatedAt},</if>
<if test="siteId != null">#{siteId},</if> <if test="siteId != null">#{siteId},</if>
<if test="communicationStatus != null">#{communicationStatus},</if> <if test="communicationStatus != null">#{communicationStatus},</if>
<if test="deviceId != null and deviceId != ''">#{deviceId},</if>
</trim> </trim>
</insert> </insert>
@ -119,6 +123,7 @@
<if test="updatedAt != null">updated_at = #{updatedAt},</if> <if test="updatedAt != null">updated_at = #{updatedAt},</if>
<if test="siteId != null">site_id = #{siteId},</if> <if test="siteId != null">site_id = #{siteId},</if>
<if test="communicationStatus != null">communication_status = #{communicationStatus},</if> <if test="communicationStatus != null">communication_status = #{communicationStatus},</if>
<if test="deviceId != null and deviceId != ''">device_id = #{deviceId},</if>
</trim> </trim>
where id = #{id} where id = #{id}
</update> </update>
@ -133,4 +138,24 @@
#{id} #{id}
</foreach> </foreach>
</delete> </delete>
<select id="getAllStackInfoBySiteId" parameterType="String" resultType="java.util.Map">
select device_id as id,device_name as deviceName from ems_devices_setting
where device_id in (
select distinct eb.device_id from ems_battery_stack eb where eb.site_id = #{siteId})
</select>
<select id="getAllClusterInfoByStackId" parameterType="String" resultType="java.util.Map">
select device_id as id,device_name as deviceName
from ems_devices_setting
where device_id in (select distinct eb.device_id from ems_battery_cluster eb where eb.stack_device_id = #{stackDeviceId})
</select>
<select id="getAllBatteryDeviceBySiteId" parameterType="String" resultType="com.xzzn.ems.domain.EmsDevicesSetting">
select distinct e.device_id as deviceId,
t.device_name as deviceName,
t.communication_status as communicationStatus
from ems_devices_setting t INNER JOIN ems_ammeter_data e on t.site_id = e.site_id and t.device_id = e.device_id
where t.site_id = #{siteId}
</select>
</mapper> </mapper>

View File

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xzzn.ems.mapper.EmsMqttMessageMapper">
<resultMap type="EmsMqttMessage" id="EmsMqttMessageResult">
<result property="id" column="id" />
<result property="mqttTopic" column="mqtt_topic" />
<result property="mqttMessage" column="mqtt_message" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectEmsMqttMessageVo">
select id, mqtt_topic, mqtt_message, create_by, create_time, update_by, update_time from ems_mqtt_message
</sql>
<select id="selectEmsMqttMessageList" parameterType="EmsMqttMessage" resultMap="EmsMqttMessageResult">
<include refid="selectEmsMqttMessageVo"/>
<where>
<if test="mqttTopic != null and mqttTopic != ''"> and mqtt_topic = #{mqttTopic}</if>
<if test="mqttMessage != null and mqttMessage != ''"> and mqtt_message = #{mqttMessage}</if>
</where>
</select>
<select id="selectEmsMqttMessageById" parameterType="Long" resultMap="EmsMqttMessageResult">
<include refid="selectEmsMqttMessageVo"/>
where id = #{id}
</select>
<insert id="insertEmsMqttMessage" parameterType="EmsMqttMessage">
insert into ems_mqtt_message
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="mqttTopic != null">mqtt_topic,</if>
<if test="mqttMessage != null">mqtt_message,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="mqttTopic != null">#{mqttTopic},</if>
<if test="mqttMessage != null">#{mqttMessage},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateEmsMqttMessage" parameterType="EmsMqttMessage">
update ems_mqtt_message
<trim prefix="SET" suffixOverrides=",">
<if test="mqttTopic != null">mqtt_topic = #{mqttTopic},</if>
<if test="mqttMessage != null">mqtt_message = #{mqttMessage},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteEmsMqttMessageById" parameterType="Long">
delete from ems_mqtt_message where id = #{id}
</delete>
<delete id="deleteEmsMqttMessageByIds" parameterType="String">
delete from ems_mqtt_message where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -18,10 +18,30 @@
<result property="siteId" column="site_id" /> <result property="siteId" column="site_id" />
<result property="deviceId" column="device_id" /> <result property="deviceId" column="device_id" />
<result property="branchId" column="branch_id" /> <result property="branchId" column="branch_id" />
<result property="gridUVoltage" column="grid_u_voltage" />
<result property="gridVVoltage" column="grid_v_voltage" />
<result property="gridWVoltage" column="grid_w_voltage" />
<result property="outputUCurrent" column="output_u_current" />
<result property="outputVCurrent" column="output_v_current" />
<result property="outputWCurrent" column="output_w_current" />
<result property="apparentPower" column="apparent_power" />
<result property="activePower" column="active_power" />
<result property="reactivePower" column="reactive_power" />
<result property="powerFactor" column="power_factor" />
<result property="frequency" column="frequency" />
<result property="internalTemp" column="internal_temp" />
<result property="uIgbtTemp" column="u_igbt_temp" />
<result property="vIgbtTemp" column="v_igbt_temp" />
<result property="wIgbtTemp" column="w_igbt_temp" />
<result property="gridStatus" column="grid_status" />
<result property="availablePower" column="available_power" />
<result property="totalLoadRatio" column="total_load_ratio" />
<result property="acLeakageCurrent" column="ac_leakage_current" />
<result property="insulationResistance" column="insulation_resistance" />
</resultMap> </resultMap>
<sql id="selectEmsPcsBranchDataVo"> <sql id="selectEmsPcsBranchDataVo">
select id, discharge_status, dc_power, dc_voltage, dc_current, create_by, create_time, update_by, update_time, remark, site_id, device_id, branch_id from ems_pcs_branch_data select id, discharge_status, dc_power, dc_voltage, dc_current, create_by, create_time, update_by, update_time, remark, site_id, device_id, branch_id, grid_u_voltage, grid_v_voltage, grid_w_voltage, output_u_current, output_v_current, output_w_current, apparent_power, active_power, reactive_power, power_factor, frequency, internal_temp, u_igbt_temp, v_igbt_temp, w_igbt_temp, grid_status, available_power, total_load_ratio, ac_leakage_current, insulation_resistance from ems_pcs_branch_data
</sql> </sql>
<select id="selectEmsPcsBranchDataList" parameterType="EmsPcsBranchData" resultMap="EmsPcsBranchDataResult"> <select id="selectEmsPcsBranchDataList" parameterType="EmsPcsBranchData" resultMap="EmsPcsBranchDataResult">
@ -31,9 +51,29 @@
<if test="dcPower != null "> and dc_power = #{dcPower}</if> <if test="dcPower != null "> and dc_power = #{dcPower}</if>
<if test="dcVoltage != null "> and dc_voltage = #{dcVoltage}</if> <if test="dcVoltage != null "> and dc_voltage = #{dcVoltage}</if>
<if test="dcCurrent != null "> and dc_current = #{dcCurrent}</if> <if test="dcCurrent != null "> and dc_current = #{dcCurrent}</if>
<if test="siteId != null "> and site_id = #{siteId}</if> <if test="siteId != null and siteId != ''"> and site_id = #{siteId}</if>
<if test="deviceId != null "> and device_id = #{deviceId}</if> <if test="deviceId != null and deviceId != ''"> and device_id = #{deviceId}</if>
<if test="branchId != null "> and branch_id = #{branchId}</if> <if test="branchId != null "> and branch_id = #{branchId}</if>
<if test="gridUVoltage != null "> and grid_u_voltage = #{gridUVoltage}</if>
<if test="gridVVoltage != null "> and grid_v_voltage = #{gridVVoltage}</if>
<if test="gridWVoltage != null "> and grid_w_voltage = #{gridWVoltage}</if>
<if test="outputUCurrent != null "> and output_u_current = #{outputUCurrent}</if>
<if test="outputVCurrent != null "> and output_v_current = #{outputVCurrent}</if>
<if test="outputWCurrent != null "> and output_w_current = #{outputWCurrent}</if>
<if test="apparentPower != null "> and apparent_power = #{apparentPower}</if>
<if test="activePower != null "> and active_power = #{activePower}</if>
<if test="reactivePower != null "> and reactive_power = #{reactivePower}</if>
<if test="powerFactor != null "> and power_factor = #{powerFactor}</if>
<if test="frequency != null "> and frequency = #{frequency}</if>
<if test="internalTemp != null "> and internal_temp = #{internalTemp}</if>
<if test="uIgbtTemp != null "> and u_igbt_temp = #{uIgbtTemp}</if>
<if test="vIgbtTemp != null "> and v_igbt_temp = #{vIgbtTemp}</if>
<if test="wIgbtTemp != null "> and w_igbt_temp = #{wIgbtTemp}</if>
<if test="gridStatus != null and gridStatus != ''"> and grid_status = #{gridStatus}</if>
<if test="availablePower != null "> and available_power = #{availablePower}</if>
<if test="totalLoadRatio != null "> and total_load_ratio = #{totalLoadRatio}</if>
<if test="acLeakageCurrent != null "> and ac_leakage_current = #{acLeakageCurrent}</if>
<if test="insulationResistance != null "> and insulation_resistance = #{insulationResistance}</if>
</where> </where>
</select> </select>
@ -55,8 +95,28 @@
<if test="updateTime != null">update_time,</if> <if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if> <if test="remark != null">remark,</if>
<if test="siteId != null">site_id,</if> <if test="siteId != null">site_id,</if>
<if test="deviceId != null">device_id,</if> <if test="deviceId != null and deviceId != ''">device_id,</if>
<if test="branchId != null">branch_id,</if> <if test="branchId != null">branch_id,</if>
<if test="gridUVoltage != null">grid_u_voltage,</if>
<if test="gridVVoltage != null">grid_v_voltage,</if>
<if test="gridWVoltage != null">grid_w_voltage,</if>
<if test="outputUCurrent != null">output_u_current,</if>
<if test="outputVCurrent != null">output_v_current,</if>
<if test="outputWCurrent != null">output_w_current,</if>
<if test="apparentPower != null">apparent_power,</if>
<if test="activePower != null">active_power,</if>
<if test="reactivePower != null">reactive_power,</if>
<if test="powerFactor != null">power_factor,</if>
<if test="frequency != null">frequency,</if>
<if test="internalTemp != null">internal_temp,</if>
<if test="uIgbtTemp != null">u_igbt_temp,</if>
<if test="vIgbtTemp != null">v_igbt_temp,</if>
<if test="wIgbtTemp != null">w_igbt_temp,</if>
<if test="gridStatus != null">grid_status,</if>
<if test="availablePower != null">available_power,</if>
<if test="totalLoadRatio != null">total_load_ratio,</if>
<if test="acLeakageCurrent != null">ac_leakage_current,</if>
<if test="insulationResistance != null">insulation_resistance,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="dischargeStatus != null">#{dischargeStatus},</if> <if test="dischargeStatus != null">#{dischargeStatus},</if>
@ -69,8 +129,28 @@
<if test="updateTime != null">#{updateTime},</if> <if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if> <if test="remark != null">#{remark},</if>
<if test="siteId != null">#{siteId},</if> <if test="siteId != null">#{siteId},</if>
<if test="deviceId != null">#{deviceId},</if> <if test="deviceId != null and deviceId != ''">#{deviceId},</if>
<if test="branchId != null">#{branchId},</if> <if test="branchId != null">#{branchId},</if>
<if test="gridUVoltage != null">#{gridUVoltage},</if>
<if test="gridVVoltage != null">#{gridVVoltage},</if>
<if test="gridWVoltage != null">#{gridWVoltage},</if>
<if test="outputUCurrent != null">#{outputUCurrent},</if>
<if test="outputVCurrent != null">#{outputVCurrent},</if>
<if test="outputWCurrent != null">#{outputWCurrent},</if>
<if test="apparentPower != null">#{apparentPower},</if>
<if test="activePower != null">#{activePower},</if>
<if test="reactivePower != null">#{reactivePower},</if>
<if test="powerFactor != null">#{powerFactor},</if>
<if test="frequency != null">#{frequency},</if>
<if test="internalTemp != null">#{internalTemp},</if>
<if test="uIgbtTemp != null">#{uIgbtTemp},</if>
<if test="vIgbtTemp != null">#{vIgbtTemp},</if>
<if test="wIgbtTemp != null">#{wIgbtTemp},</if>
<if test="gridStatus != null">#{gridStatus},</if>
<if test="availablePower != null">#{availablePower},</if>
<if test="totalLoadRatio != null">#{totalLoadRatio},</if>
<if test="acLeakageCurrent != null">#{acLeakageCurrent},</if>
<if test="insulationResistance != null">#{insulationResistance},</if>
</trim> </trim>
</insert> </insert>
@ -87,8 +167,28 @@
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if> <if test="remark != null">remark = #{remark},</if>
<if test="siteId != null">site_id = #{siteId},</if> <if test="siteId != null">site_id = #{siteId},</if>
<if test="deviceId != null">device_id = #{deviceId},</if> <if test="deviceId != null and deviceId != ''">device_id = #{deviceId},</if>
<if test="branchId != null">branch_id = #{branchId},</if> <if test="branchId != null">branch_id = #{branchId},</if>
<if test="gridUVoltage != null">grid_u_voltage = #{gridUVoltage},</if>
<if test="gridVVoltage != null">grid_v_voltage = #{gridVVoltage},</if>
<if test="gridWVoltage != null">grid_w_voltage = #{gridWVoltage},</if>
<if test="outputUCurrent != null">output_u_current = #{outputUCurrent},</if>
<if test="outputVCurrent != null">output_v_current = #{outputVCurrent},</if>
<if test="outputWCurrent != null">output_w_current = #{outputWCurrent},</if>
<if test="apparentPower != null">apparent_power = #{apparentPower},</if>
<if test="activePower != null">active_power = #{activePower},</if>
<if test="reactivePower != null">reactive_power = #{reactivePower},</if>
<if test="powerFactor != null">power_factor = #{powerFactor},</if>
<if test="frequency != null">frequency = #{frequency},</if>
<if test="internalTemp != null">internal_temp = #{internalTemp},</if>
<if test="uIgbtTemp != null">u_igbt_temp = #{uIgbtTemp},</if>
<if test="vIgbtTemp != null">v_igbt_temp = #{vIgbtTemp},</if>
<if test="wIgbtTemp != null">w_igbt_temp = #{wIgbtTemp},</if>
<if test="gridStatus != null">grid_status = #{gridStatus},</if>
<if test="availablePower != null">available_power = #{availablePower},</if>
<if test="totalLoadRatio != null">total_load_ratio = #{totalLoadRatio},</if>
<if test="acLeakageCurrent != null">ac_leakage_current = #{acLeakageCurrent},</if>
<if test="insulationResistance != null">insulation_resistance = #{insulationResistance},</if>
</trim> </trim>
where id = #{id} where id = #{id}
</update> </update>
@ -105,14 +205,88 @@
</delete> </delete>
<select id="getPcsBranchInfoList" resultType="com.xzzn.ems.domain.vo.PcsBranchInfo"> <select id="getPcsBranchInfoList" resultType="com.xzzn.ems.domain.vo.PcsBranchInfo">
select tmp.branch_id as branchId, tmp.discharge_status as dischargeStatus, SELECT tmp.branch_id as branchId, tmp.discharge_status as dischargeStatus,
tmp.dc_power as dcPower, tmp.dc_voltage as dcVoltage, tmp.dc_power as dcPower, tmp.dc_voltage as dcVoltage,
tmp.dc_current as dcCurrent, tmp.site_id as siteId, tmp.device_id as deviceId tmp.dc_current as dcCurrent, tmp.site_id as siteId, tmp.device_id as deviceId
from ems_pcs_branch_data tmp FROM (
where tmp.site_id = #{siteId} SELECT t.*, ROW_NUMBER() OVER ( PARTITION BY t.branch_id ORDER BY t.update_time DESC ) AS rn
and tmp.device_id = #{deviceId} FROM ems_pcs_branch_data t
and tmp.update_time = (select MAX(t.update_time) FROM ems_pcs_branch_data t where t.site_id = tmp.site_id WHERE t.site_id = #{siteId} AND t.device_id = #{deviceId}
and t.device_id = tmp.device_id and t.branch_id = tmp.branch_id) ) tmp
order by tmp.branch_id WHERE rn = 1
ORDER BY tmp.branch_id
</select> </select>
<insert id="insertPcsBranchDataList" parameterType="java.util.List">
INSERT INTO ems_pcs_branch_data (
discharge_status,
dc_power,
dc_voltage,
dc_current,
site_id,
device_id,
branch_id,
grid_u_voltage,
grid_v_voltage,
grid_w_voltage,
output_u_current,
output_v_current,
output_w_current,
apparent_power,
active_power,
reactive_power,
power_factor,
frequency,
internal_temp,
u_igbt_temp,
v_igbt_temp,
w_igbt_temp,
grid_status,
available_power,
total_load_ratio,
ac_leakage_current,
insulation_resistance,
create_by,
create_time,
update_by,
update_time,
remark
) VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.dischargeStatus},
#{item.dcPower},
#{item.dcVoltage},
#{item.dcCurrent},
#{item.siteId},
#{item.deviceId},
#{item.branchId},
#{item.gridUVoltage},
#{item.gridVVoltage},
#{item.gridWVoltage},
#{item.outputUCurrent},
#{item.outputVCurrent},
#{item.outputWCurrent},
#{item.apparentPower},
#{item.activePower},
#{item.reactivePower},
#{item.powerFactor},
#{item.frequency},
#{item.internalTemp},
#{item.uIgbtTemp},
#{item.vIgbtTemp},
#{item.wIgbtTemp},
#{item.gridStatus},
#{item.availablePower},
#{item.totalLoadRatio},
#{item.acLeakageCurrent},
#{item.insulationResistance},
#{item.createBy},
#{item.createTime},
#{item.updateBy},
#{item.updateTime},
#{item.remark}
)
</foreach>
</insert>
</mapper> </mapper>

View File

@ -40,11 +40,23 @@
<result property="deviceId" column="device_id" /> <result property="deviceId" column="device_id" />
<result property="dateMonth" column="date_month" /> <result property="dateMonth" column="date_month" />
<result property="dateDay" column="date_day" /> <result property="dateDay" column="date_day" />
<result property="communicationStatus" column="communication_status" /> <result property="totalAcChargeEnergy" column="total_ac_charge_energy" />
<result property="totalAcDischargeEnergy" column="total_ac_discharge_energy" />
<result property="acChargeActivePower" column="ac_charge_active_power" />
<result property="acCapacitiveReactivePower" column="ac_capacitive_reactive_power" />
<result property="acDischargeActivePower" column="ac_discharge_active_power" />
<result property="acInductiveReactivePower" column="ac_inductive_reactive_power" />
<result property="maxCapacitivePowerCapacity" column="max_capacitive_power_capacity" />
<result property="maxInductivePowerCapacity" column="max_inductive_power_capacity" />
<result property="maxChargePowerCapacity" column="max_charge_power_capacity" />
<result property="maxDischargePowerCapacity" column="max_discharge_power_capacity" />
<result property="acSwitchStatus" column="ac_switch_status" />
<result property="dcSwitchStatus" column="dc_switch_status" />
<result property="remoteControlStatus" column="remote_control_status" />
</resultMap> </resultMap>
<sql id="selectEmsPcsDataVo"> <sql id="selectEmsPcsDataVo">
select id, data_update_time, work_status, grid_status, device_status, control_mode, total_active_power, daily_ac_charge_energy, a_phase_voltage, a_phase_current, total_reactive_power, daily_ac_discharge_energy, b_phase_voltage, b_phase_current, total_apparent_power, pcs_module_temperature, c_phase_voltage, c_phase_current, total_power_factor, pcs_environment_temperature, ac_frequency, branch_status, discharge_status, dc_power, dc_voltage, dc_current, create_by, create_time, update_by, update_time, remark, site_id, device_id, date_month, date_day, communication_status from ems_pcs_data select id, data_update_time, work_status, grid_status, device_status, control_mode, total_active_power, daily_ac_charge_energy, a_phase_voltage, a_phase_current, total_reactive_power, daily_ac_discharge_energy, b_phase_voltage, b_phase_current, total_apparent_power, pcs_module_temperature, c_phase_voltage, c_phase_current, total_power_factor, pcs_environment_temperature, ac_frequency, branch_status, discharge_status, dc_power, dc_voltage, dc_current, create_by, create_time, update_by, update_time, remark, site_id, device_id, date_month, date_day, total_ac_charge_energy, total_ac_discharge_energy, ac_charge_active_power, ac_capacitive_reactive_power, ac_discharge_active_power, ac_inductive_reactive_power, max_capacitive_power_capacity, max_inductive_power_capacity, max_charge_power_capacity, max_discharge_power_capacity, ac_switch_status, dc_switch_status, remote_control_status from ems_pcs_data
</sql> </sql>
<select id="selectEmsPcsDataList" parameterType="EmsPcsData" resultMap="EmsPcsDataResult"> <select id="selectEmsPcsDataList" parameterType="EmsPcsData" resultMap="EmsPcsDataResult">
@ -75,11 +87,23 @@
<if test="dcPower != null "> and dc_power = #{dcPower}</if> <if test="dcPower != null "> and dc_power = #{dcPower}</if>
<if test="dcVoltage != null "> and dc_voltage = #{dcVoltage}</if> <if test="dcVoltage != null "> and dc_voltage = #{dcVoltage}</if>
<if test="dcCurrent != null "> and dc_current = #{dcCurrent}</if> <if test="dcCurrent != null "> and dc_current = #{dcCurrent}</if>
<if test="siteId != null "> and site_id = #{siteId}</if> <if test="siteId != null and siteId != ''"> and site_id = #{siteId}</if>
<if test="deviceId != null "> and device_id = #{deviceId}</if> <if test="deviceId != null and deviceId != ''"> and device_id = #{deviceId}</if>
<if test="dateMonth != null "> and date_month = #{dateMonth}</if> <if test="dateMonth != null "> and date_month = #{dateMonth}</if>
<if test="dateDay != null "> and date_day = #{dateDay}</if> <if test="dateDay != null "> and date_day = #{dateDay}</if>
<if test="communicationStatus != null and communicationStatus != ''"> and communication_status = #{communicationStatus}</if> <if test="totalAcChargeEnergy != null "> and total_ac_charge_energy = #{totalAcChargeEnergy}</if>
<if test="totalAcDischargeEnergy != null "> and total_ac_discharge_energy = #{totalAcDischargeEnergy}</if>
<if test="acChargeActivePower != null "> and ac_charge_active_power = #{acChargeActivePower}</if>
<if test="acCapacitiveReactivePower != null "> and ac_capacitive_reactive_power = #{acCapacitiveReactivePower}</if>
<if test="acDischargeActivePower != null "> and ac_discharge_active_power = #{acDischargeActivePower}</if>
<if test="acInductiveReactivePower != null "> and ac_inductive_reactive_power = #{acInductiveReactivePower}</if>
<if test="maxCapacitivePowerCapacity != null "> and max_capacitive_power_capacity = #{maxCapacitivePowerCapacity}</if>
<if test="maxInductivePowerCapacity != null "> and max_inductive_power_capacity = #{maxInductivePowerCapacity}</if>
<if test="maxChargePowerCapacity != null "> and max_charge_power_capacity = #{maxChargePowerCapacity}</if>
<if test="maxDischargePowerCapacity != null "> and max_discharge_power_capacity = #{maxDischargePowerCapacity}</if>
<if test="acSwitchStatus != null and acSwitchStatus != ''"> and ac_switch_status = #{acSwitchStatus}</if>
<if test="dcSwitchStatus != null and dcSwitchStatus != ''"> and dc_switch_status = #{dcSwitchStatus}</if>
<if test="remoteControlStatus != null and remoteControlStatus != ''"> and remote_control_status = #{remoteControlStatus}</if>
</where> </where>
</select> </select>
@ -122,10 +146,22 @@
<if test="updateTime != null">update_time,</if> <if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if> <if test="remark != null">remark,</if>
<if test="siteId != null">site_id,</if> <if test="siteId != null">site_id,</if>
<if test="deviceId != null">device_id,</if> <if test="deviceId != null and deviceId != ''">device_id,</if>
<if test="dateMonth != null">date_month,</if> <if test="dateMonth != null">date_month,</if>
<if test="dateDay != null">date_day,</if> <if test="dateDay != null">date_day,</if>
<if test="communicationStatus != null">communication_status,</if> <if test="totalAcChargeEnergy != null">total_ac_charge_energy,</if>
<if test="totalAcDischargeEnergy != null">total_ac_discharge_energy,</if>
<if test="acChargeActivePower != null">ac_charge_active_power,</if>
<if test="acCapacitiveReactivePower != null">ac_capacitive_reactive_power,</if>
<if test="acDischargeActivePower != null">ac_discharge_active_power,</if>
<if test="acInductiveReactivePower != null">ac_inductive_reactive_power,</if>
<if test="maxCapacitivePowerCapacity != null">max_capacitive_power_capacity,</if>
<if test="maxInductivePowerCapacity != null">max_inductive_power_capacity,</if>
<if test="maxChargePowerCapacity != null">max_charge_power_capacity,</if>
<if test="maxDischargePowerCapacity != null">max_discharge_power_capacity,</if>
<if test="acSwitchStatus != null">ac_switch_status,</if>
<if test="dcSwitchStatus != null">dc_switch_status,</if>
<if test="remoteControlStatus != null">remote_control_status,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="dataUpdateTime != null">#{dataUpdateTime},</if> <if test="dataUpdateTime != null">#{dataUpdateTime},</if>
@ -159,10 +195,22 @@
<if test="updateTime != null">#{updateTime},</if> <if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if> <if test="remark != null">#{remark},</if>
<if test="siteId != null">#{siteId},</if> <if test="siteId != null">#{siteId},</if>
<if test="deviceId != null">#{deviceId},</if> <if test="deviceId != null and deviceId != ''">#{deviceId},</if>
<if test="dateMonth != null">#{dateMonth},</if> <if test="dateMonth != null">#{dateMonth},</if>
<if test="dateDay != null">#{dateDay},</if> <if test="dateDay != null">#{dateDay},</if>
<if test="communicationStatus != null">#{communicationStatus},</if> <if test="totalAcChargeEnergy != null">#{totalAcChargeEnergy},</if>
<if test="totalAcDischargeEnergy != null">#{totalAcDischargeEnergy},</if>
<if test="acChargeActivePower != null">#{acChargeActivePower},</if>
<if test="acCapacitiveReactivePower != null">#{acCapacitiveReactivePower},</if>
<if test="acDischargeActivePower != null">#{acDischargeActivePower},</if>
<if test="acInductiveReactivePower != null">#{acInductiveReactivePower},</if>
<if test="maxCapacitivePowerCapacity != null">#{maxCapacitivePowerCapacity},</if>
<if test="maxInductivePowerCapacity != null">#{maxInductivePowerCapacity},</if>
<if test="maxChargePowerCapacity != null">#{maxChargePowerCapacity},</if>
<if test="maxDischargePowerCapacity != null">#{maxDischargePowerCapacity},</if>
<if test="acSwitchStatus != null">#{acSwitchStatus},</if>
<if test="dcSwitchStatus != null">#{dcSwitchStatus},</if>
<if test="remoteControlStatus != null">#{remoteControlStatus},</if>
</trim> </trim>
</insert> </insert>
@ -200,10 +248,22 @@
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if> <if test="remark != null">remark = #{remark},</if>
<if test="siteId != null">site_id = #{siteId},</if> <if test="siteId != null">site_id = #{siteId},</if>
<if test="deviceId != null">device_id = #{deviceId},</if> <if test="deviceId != null and deviceId != ''">device_id = #{deviceId},</if>
<if test="dateMonth != null">date_month = #{dateMonth},</if> <if test="dateMonth != null">date_month = #{dateMonth},</if>
<if test="dateDay != null">date_day = #{dateDay},</if> <if test="dateDay != null">date_day = #{dateDay},</if>
<if test="communicationStatus != null">communication_status = #{communicationStatus},</if> <if test="totalAcChargeEnergy != null">total_ac_charge_energy = #{totalAcChargeEnergy},</if>
<if test="totalAcDischargeEnergy != null">total_ac_discharge_energy = #{totalAcDischargeEnergy},</if>
<if test="acChargeActivePower != null">ac_charge_active_power = #{acChargeActivePower},</if>
<if test="acCapacitiveReactivePower != null">ac_capacitive_reactive_power = #{acCapacitiveReactivePower},</if>
<if test="acDischargeActivePower != null">ac_discharge_active_power = #{acDischargeActivePower},</if>
<if test="acInductiveReactivePower != null">ac_inductive_reactive_power = #{acInductiveReactivePower},</if>
<if test="maxCapacitivePowerCapacity != null">max_capacitive_power_capacity = #{maxCapacitivePowerCapacity},</if>
<if test="maxInductivePowerCapacity != null">max_inductive_power_capacity = #{maxInductivePowerCapacity},</if>
<if test="maxChargePowerCapacity != null">max_charge_power_capacity = #{maxChargePowerCapacity},</if>
<if test="maxDischargePowerCapacity != null">max_discharge_power_capacity = #{maxDischargePowerCapacity},</if>
<if test="acSwitchStatus != null">ac_switch_status = #{acSwitchStatus},</if>
<if test="dcSwitchStatus != null">dc_switch_status = #{dcSwitchStatus},</if>
<if test="remoteControlStatus != null">remote_control_status = #{remoteControlStatus},</if>
</trim> </trim>
where id = #{id} where id = #{id}
</update> </update>
@ -219,66 +279,78 @@
</foreach> </foreach>
</delete> </delete>
<select id="getPcsDataBySiteId" parameterType="Long" resultType="com.xzzn.ems.domain.vo.SiteMonitorDataVo"> <select id="getPcsDataBySiteId" resultType="com.xzzn.ems.domain.vo.SiteMonitorDataVo">
select CONCAT(date_month,'/',date_day) as ammeterDate, select CONCAT(t.date_month,'/',t.date_day) as ammeterDate,
sum(daily_ac_charge_energy) as chargedCap, sum(t.daily_ac_charge_energy) as chargedCap,
sum(daily_ac_discharge_energy) as disChargedCap sum(t.daily_ac_discharge_energy) as disChargedCap
from ems_pcs_data from (
where site_id = #{siteId} SELECT p.site_id, p.device_id,p.date_month,p.date_day, MAX(p.data_update_time) AS max_update_time
and date_sub(CURDATE(), interval 6 day) &lt;= create_time FROM ems_pcs_data p
group by date_month,date_day where p.site_id = #{siteId} and p.create_time >= CURDATE() - INTERVAL #{limitTime} DAY
</select> GROUP BY p.site_id,p.device_id,p.date_month,p.date_day
) latest inner join ems_pcs_data t ON latest.site_id = t.site_id
<select id="getGridNrtPower" parameterType="Long" resultType="java.math.BigDecimal"> AND latest.device_id = t.device_id
select sum(total_active_power) as gridNrtPower AND latest.max_update_time = t.data_update_time
from ems_pcs_data and latest.date_month = t.date_month
where site_id = #{siteId} and latest.date_day = t.date_day
group by ammeterDate
order by ammeterDate desc;
</select> </select>
<select id="getPcsTotalChargeData" resultType="map"> <select id="getPcsTotalChargeData" resultType="map">
select SUM(t.daily_ac_charge_energy) as totalChargedCap, SELECT
SUM(t.daily_ac_discharge_energy) as totalDischargedCap SUM(t.total_ac_charge_energy) AS totalChargedCap,
from ems_pcs_data t SUM(t.total_ac_discharge_energy) AS totalDischargedCap,
where t.data_update_time = (select MAX(data_update_time) FROM ems_pcs_data SUM(t.total_active_power) as gridNrtPower
where site_id = t.site_id and device_id = t.device_id and date_month = t.date_month and date_day = t.date_day) FROM (
SELECT p.site_id, p.device_id, MAX(p.data_update_time) AS max_update_time
FROM ems_pcs_data p inner join ems_site_setting s on p.site_id = s.site_id
<if test="siteId != null and siteId != ''">
where p.site_id = #{siteId}
</if>
GROUP BY p.site_id,p.device_id
) latest inner join ems_pcs_data t ON latest.site_id = t.site_id
AND latest.device_id = t.device_id
AND latest.max_update_time = t.data_update_time
</select> </select>
<select id="getSiteRunningHeadInfo" parameterType="Long" resultType="com.xzzn.ems.domain.vo.SiteMonitorRuningHeadInfoVo"> <select id="getSiteRunningHeadInfo" parameterType="String" resultType="com.xzzn.ems.domain.vo.SiteMonitorRunningHeadInfoVo">
select sum(a.total_active_power) as totalActivePower, SELECT
sum(a.total_reactive_power) as totalReactivePower, SUM(t.total_active_power) as totalActivePower,
sum(a.daily_ac_charge_energy) as dayChargedCap, SUM(t.total_reactive_power) as totalReactivePower,
sum(a.daily_ac_discharge_energy) as dayDisChargedCap sum(t.daily_ac_charge_energy) as dayChargedCap,
from ( sum(t.daily_ac_discharge_energy) as dayDisChargedCap,
select t.total_active_power,t.total_reactive_power, #{siteId} as siteId
t.daily_ac_charge_energy,t.daily_ac_discharge_energy, FROM (
t.device_id,t.site_id,t.create_time SELECT p.device_id, MAX(p.data_update_time) AS max_update_time
from ems_pcs_data t FROM ems_pcs_data p
where t.site_id = #{siteId} where p.site_id = #{siteId}
and t.create_time = (select MAX(create_time) FROM ems_pcs_data where site_id = t.site_id and device_id = t.device_id) and p.data_update_time &gt;= CURDATE()
group by t.device_id,t.total_active_power, total_reactive_power, GROUP BY p.device_id
t.daily_ac_charge_energy,t.daily_ac_discharge_energy,t.site_id,t.create_time ) latest inner join ems_pcs_data t ON latest.device_id = t.device_id
) a AND latest.max_update_time = t.data_update_time
AND t.site_id = #{siteId}
</select> </select>
<select id="getElectDataList" resultType="com.xzzn.ems.domain.vo.ElectricIndexList"> <select id="getElectDataList" resultType="com.xzzn.ems.domain.vo.ElectricIndexList">
select tmp.date_month as dateMonth, select tmp.date_month as dateMonth,
SUM(tmp.daily_ac_charge_energy) as chargeEnergy, SUM(tmp.daily_ac_charge_energy) as chargeEnergy,
SUM(tmp.daily_ac_discharge_energy) as disChargeEnergy SUM(tmp.daily_ac_discharge_energy) as disChargeEnergy
from from (
( select date_month,date_day,t.daily_ac_charge_energy,t.daily_ac_discharge_energy,t.create_time
select date_month,date_day,
t.daily_ac_charge_energy,t.daily_ac_discharge_energy,t.create_time
from ems_pcs_data t from ems_pcs_data t
where t.create_time = (select MAX(create_time) FROM ems_pcs_data where site_id = t.site_id where t.create_time = (select MAX(create_time) FROM ems_pcs_data where site_id = t.site_id
and device_id = t.device_id and date_day = t.date_day and date_month = t.date_month) and device_id = t.device_id and date_day = t.date_day and date_month = t.date_month)
) as tmp ) as tmp
group by dateMonth group by dateMonth
</select> </select>
<select id="getPcsDetailInfoBySiteId" parameterType="Long" resultType="com.xzzn.ems.domain.vo.PcsDetailInfoVo"> <select id="getPcsDetailInfoBySiteId" parameterType="String" resultType="com.xzzn.ems.domain.vo.PcsDetailInfoVo">
select td.device_name as deviceName,td.communication_status as communicationStatus, SELECT td.device_name as deviceName,
tmp.site_id as siteId,tmp.device_id as deviceId, td.communication_status as communicationStatus,
tmp.site_id as siteId,
tmp.device_id as deviceId,
tmp.data_update_time as dataUpdateTime,tmp.work_status as workStatus, tmp.data_update_time as dataUpdateTime,tmp.work_status as workStatus,
tmp.grid_status as gridStatus,tmp.device_status as deviceStatus,tmp.control_mode as controlMode, tmp.grid_status as gridStatus,tmp.device_status as deviceStatus,tmp.control_mode as controlMode,
tmp.total_active_power as totalActivePower,tmp.daily_ac_charge_energy as dailyAcChargeEnergy, tmp.total_active_power as totalActivePower,tmp.daily_ac_charge_energy as dailyAcChargeEnergy,
@ -289,10 +361,14 @@
tmp.c_phase_current as cPhaseVoltage,tmp.c_phase_current as cPhaseCurrent, tmp.c_phase_current as cPhaseVoltage,tmp.c_phase_current as cPhaseCurrent,
tmp.total_power_factor as totalPowerFactor, tmp.total_power_factor as totalPowerFactor,
tmp.pcs_environment_temperature as pcsEnvironmentTemperature,tmp.ac_frequency as acFrequency tmp.pcs_environment_temperature as pcsEnvironmentTemperature,tmp.ac_frequency as acFrequency
from ems_pcs_data tmp left join ems_devices_setting td on tmp.device_id = td.id and tmp.site_id = td.site_id FROM ems_pcs_data tmp
where tmp.site_id = #{siteId} LEFT JOIN ems_devices_setting td on tmp.device_id = td.device_id and tmp.site_id = td.site_id
and tmp.data_update_time = (select MAX(data_update_time) FROM ems_pcs_data where site_id = tmp.site_id INNER JOIN ( SELECT p.site_id, p.device_id, MAX(p.data_update_time) AS max_update_time
and device_id = tmp.device_id) FROM ems_pcs_data p
WHERE p.site_id = #{siteId}
GROUP BY p.site_id,p.device_id
) latest on tmp.device_id = latest.device_id and tmp.data_update_time = latest.max_update_time
WHERE tmp.site_id = #{siteId}
order by tmp.device_id order by tmp.device_id
</select> </select>
</mapper> </mapper>

View File

@ -18,10 +18,11 @@
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time" />
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="siteId" column="site_id" />
</resultMap> </resultMap>
<sql id="selectEmsSiteSettingVo"> <sql id="selectEmsSiteSettingVo">
select id, site_name, site_address, running_time, latitude, longitude, install_capacity, install_power, remark, create_by, update_by, create_time, update_time from ems_site_setting select id, site_name, site_address, running_time, latitude, longitude, install_capacity, install_power, remark, create_by, update_by, create_time, update_time, site_id from ems_site_setting
</sql> </sql>
<select id="selectEmsSiteSettingList" parameterType="EmsSiteSetting" resultMap="EmsSiteSettingResult"> <select id="selectEmsSiteSettingList" parameterType="EmsSiteSetting" resultMap="EmsSiteSettingResult">
@ -34,6 +35,7 @@
<if test="longitude != null "> and longitude = #{longitude}</if> <if test="longitude != null "> and longitude = #{longitude}</if>
<if test="installCapacity != null "> and install_capacity = #{installCapacity}</if> <if test="installCapacity != null "> and install_capacity = #{installCapacity}</if>
<if test="installPower != null "> and install_power = #{installPower}</if> <if test="installPower != null "> and install_power = #{installPower}</if>
<if test="siteId != null and siteId != ''"> and site_id = #{siteId}</if>
</where> </where>
</select> </select>
@ -57,6 +59,7 @@
<if test="updateBy != null">update_by,</if> <if test="updateBy != null">update_by,</if>
<if test="createTime != null">create_time,</if> <if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if> <if test="updateTime != null">update_time,</if>
<if test="siteId != null and siteId != ''">site_id,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="siteName != null and siteName != ''">#{siteName},</if> <if test="siteName != null and siteName != ''">#{siteName},</if>
@ -71,6 +74,7 @@
<if test="updateBy != null">#{updateBy},</if> <if test="updateBy != null">#{updateBy},</if>
<if test="createTime != null">#{createTime},</if> <if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if> <if test="updateTime != null">#{updateTime},</if>
<if test="siteId != null and siteId != ''">#{siteId},</if>
</trim> </trim>
</insert> </insert>
@ -89,6 +93,7 @@
<if test="updateBy != null">update_by = #{updateBy},</if> <if test="updateBy != null">update_by = #{updateBy},</if>
<if test="createTime != null">create_time = #{createTime},</if> <if test="createTime != null">create_time = #{createTime},</if>
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="siteId != null and siteId != ''">site_id = #{siteId},</if>
</trim> </trim>
where id = #{id} where id = #{id}
</update> </update>
@ -105,9 +110,14 @@
</delete> </delete>
<select id="getSiteTotalInfo" resultType="com.xzzn.ems.domain.vo.SiteTotalInfoVo"> <select id="getSiteTotalInfo" resultType="com.xzzn.ems.domain.vo.SiteTotalInfoVo">
select count(DISTINCT s.id) as siteNum, select count(DISTINCT s.site_id) as siteNum,
SUM(s.install_capacity) as installCapacity, SUM(s.install_capacity) as installCapacity,
SUM(s.install_power) as installPower SUM(s.install_power) as installPower
from ems_site_setting s from ems_site_setting s
</select> </select>
<select id="selectEmsSiteSettingBySiteId" parameterType="String" resultMap="EmsSiteSettingResult">
<include refid="selectEmsSiteSettingVo"/>
where site_id = #{siteId}
</select>
</mapper> </mapper>

View File

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xzzn.ems.mapper.EmsTicketMapper">
<resultMap type="EmsTicket" id="EmsTicketResult">
<result property="id" column="id" />
<result property="ticketNo" column="ticket_no" />
<result property="userId" column="user_id" />
<result property="title" column="title" />
<result property="content" column="content" />
<result property="images" column="images" />
<result property="status" column="status" />
<result property="createTime" column="create_time" />
<result property="completeTime" column="complete_time" />
<result property="createBy" column="create_by" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="workUserId" column="work_user_id" />
</resultMap>
<sql id="selectEmsTicketVo">
select id, ticket_no, user_id, title, content, images, status, create_time, complete_time, create_by, update_by, update_time, work_user_id from ems_ticket
</sql>
<select id="selectEmsTicketList" parameterType="EmsTicket" resultMap="EmsTicketResult">
<include refid="selectEmsTicketVo"/>
<where>
<if test="ticketNo != null and ticketNo != ''"> and ticket_no = #{ticketNo}</if>
<if test="userId != null and userId != ''"> and user_id = #{userId}</if>
<if test="title != null and title != ''"> and title = #{title}</if>
<if test="content != null and content != ''"> and content = #{content}</if>
<if test="images != null and images != ''"> and images = #{images}</if>
<if test="status != null "> and status = #{status}</if>
<if test="completeTime != null "> and complete_time = #{completeTime}</if>
<if test="workUserId != null "> and work_user_id = #{workUserId}</if>
</where>
</select>
<select id="selectEmsTicketById" parameterType="String" resultMap="EmsTicketResult">
<include refid="selectEmsTicketVo"/>
where id = #{id}
</select>
<insert id="insertEmsTicket" parameterType="EmsTicket" useGeneratedKeys="true" keyProperty="id">
insert into ems_ticket
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="ticketNo != null and ticketNo != ''">ticket_no,</if>
<if test="userId != null and userId != ''">user_id,</if>
<if test="title != null and title != ''">title,</if>
<if test="content != null and content != ''">content,</if>
<if test="images != null">images,</if>
<if test="status != null">status,</if>
<if test="createTime != null">create_time,</if>
<if test="completeTime != null">complete_time,</if>
<if test="createBy != null">create_by,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="workUserId != null">work_user_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="ticketNo != null and ticketNo != ''">#{ticketNo},</if>
<if test="userId != null and userId != ''">#{userId},</if>
<if test="title != null and title != ''">#{title},</if>
<if test="content != null and content != ''">#{content},</if>
<if test="images != null">#{images},</if>
<if test="status != null">#{status},</if>
<if test="createTime != null">#{createTime},</if>
<if test="completeTime != null">#{completeTime},</if>
<if test="createBy != null">#{createBy},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="workUserId != null">#{workUserId},</if>
</trim>
</insert>
<update id="updateEmsTicket" parameterType="EmsTicket">
update ems_ticket
<trim prefix="SET" suffixOverrides=",">
<if test="ticketNo != null and ticketNo != ''">ticket_no = #{ticketNo},</if>
<if test="userId != null and userId != ''">user_id = #{userId},</if>
<if test="title != null and title != ''">title = #{title},</if>
<if test="content != null and content != ''">content = #{content},</if>
<if test="images != null">images = #{images},</if>
<if test="status != null">status = #{status},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="completeTime != null">complete_time = #{completeTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="workUserId != null">work_user_id = #{workUserId},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteEmsTicketById" parameterType="String">
delete from ems_ticket where id = #{id}
</delete>
<delete id="deleteEmsTicketByIds" parameterType="String">
delete from ems_ticket where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

10
pom.xml
View File

@ -154,6 +154,16 @@
<artifactId>poi-ooxml</artifactId> <artifactId>poi-ooxml</artifactId>
<version>${poi.version}</version> <version>${poi.version}</version>
</dependency> </dependency>
<!-- -->
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
<version>1.2.5</version> <!-- 检查最新版本 -->
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-mqtt</artifactId>
</dependency>
<!-- velocity代码生成使用模板 --> <!-- velocity代码生成使用模板 -->
<dependency> <dependency>