设备在线状态和工作状态取值调整
This commit is contained in:
@ -1,9 +1,11 @@
|
|||||||
package com.xzzn.web.controller.ems;
|
package com.xzzn.web.controller.ems;
|
||||||
|
|
||||||
|
import com.xzzn.common.annotation.Log;
|
||||||
import com.xzzn.common.config.RuoYiConfig;
|
import com.xzzn.common.config.RuoYiConfig;
|
||||||
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.common.core.page.TableDataInfo;
|
||||||
|
import com.xzzn.common.enums.BusinessType;
|
||||||
import com.xzzn.common.utils.file.FileUploadUtils;
|
import com.xzzn.common.utils.file.FileUploadUtils;
|
||||||
import com.xzzn.common.utils.file.MimeTypeUtils;
|
import com.xzzn.common.utils.file.MimeTypeUtils;
|
||||||
import com.xzzn.ems.domain.EmsSiteSetting;
|
import com.xzzn.ems.domain.EmsSiteSetting;
|
||||||
@ -192,6 +194,7 @@ public class EmsSiteConfigController extends BaseController{
|
|||||||
/**
|
/**
|
||||||
* PCS设备开关机
|
* PCS设备开关机
|
||||||
*/
|
*/
|
||||||
|
@Log(title = "开关机", businessType = BusinessType.UPDATE)
|
||||||
@PostMapping("/updateDeviceStatus")
|
@PostMapping("/updateDeviceStatus")
|
||||||
public AjaxResult updateDeviceStatus(@Valid @RequestBody DeviceUpdateRequest request)
|
public AjaxResult updateDeviceStatus(@Valid @RequestBody DeviceUpdateRequest request)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -80,7 +80,8 @@ public class ModbusProcessor {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case HOLDING_REGISTER: {
|
case HOLDING_REGISTER: {
|
||||||
writeRegisterRequest(master, config.getSlaveId(), address, Integer.parseInt(String.valueOf(tag.getValue())));
|
double doubleValue = Double.parseDouble(String.valueOf(tag.getValue()));
|
||||||
|
writeRegisterRequest(master, config.getSlaveId(), address, (int) doubleValue);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
|||||||
@ -1,8 +1,5 @@
|
|||||||
package com.xzzn.common.enums;
|
package com.xzzn.common.enums;
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* device-通信状态
|
* device-通信状态
|
||||||
*
|
*
|
||||||
@ -11,10 +8,7 @@ import java.util.List;
|
|||||||
public enum DeviceRunningStatus
|
public enum DeviceRunningStatus
|
||||||
{
|
{
|
||||||
OFFLINE("0", "离线"),
|
OFFLINE("0", "离线"),
|
||||||
STANDBY("1", "待机") ,
|
ONLINE("1", "在线");
|
||||||
RUNNING("2", "运行"),
|
|
||||||
FAULT("3", "故障"),
|
|
||||||
SHUTDOWN("4", "停机");
|
|
||||||
|
|
||||||
private final String code;
|
private final String code;
|
||||||
private final String info;
|
private final String info;
|
||||||
@ -35,15 +29,4 @@ public enum DeviceRunningStatus
|
|||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 停机状态 */
|
|
||||||
public static List<String> getShutdownCodeList()
|
|
||||||
{
|
|
||||||
return Arrays.asList(SHUTDOWN.getCode());
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 运行状态 */
|
|
||||||
public static List<String> getRunningCodeList()
|
|
||||||
{
|
|
||||||
return Arrays.asList(STANDBY.getCode(), RUNNING.getCode(), FAULT.getCode());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,7 +7,7 @@ package com.xzzn.common.enums;
|
|||||||
*/
|
*/
|
||||||
public enum WorkStatus
|
public enum WorkStatus
|
||||||
{
|
{
|
||||||
NORMAL("0", "正常"), ABNORMAL("1", "异常"), STOP("2", "停止");
|
NORMAL("0", "运行"), STOP("1", "停机"), ABNORMAL("2", "故障");
|
||||||
|
|
||||||
private final String code;
|
private final String code;
|
||||||
private final String info;
|
private final String info;
|
||||||
|
|||||||
@ -196,7 +196,7 @@ public class ModbusPoller {
|
|||||||
|
|
||||||
// 数据读取成功,重置计数器
|
// 数据读取成功,重置计数器
|
||||||
deviceFailureCounts.remove(deviceNumber);
|
deviceFailureCounts.remove(deviceNumber);
|
||||||
updateDeviceStatus(siteId, deviceNumber, DeviceRunningStatus.RUNNING.getCode());
|
updateDeviceStatus(siteId, deviceNumber, DeviceRunningStatus.ONLINE.getCode());
|
||||||
|
|
||||||
// 发送MQTT消息、保存Redis数据和数据入库
|
// 发送MQTT消息、保存Redis数据和数据入库
|
||||||
Long timestamp = System.currentTimeMillis();
|
Long timestamp = System.currentTimeMillis();
|
||||||
|
|||||||
@ -1,14 +1,15 @@
|
|||||||
package com.xzzn.ems.domain;
|
package com.xzzn.ems.domain;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.xzzn.common.annotation.Excel;
|
||||||
|
import com.xzzn.common.core.domain.BaseEntity;
|
||||||
|
import com.xzzn.common.utils.StringUtils;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
||||||
import com.xzzn.common.core.domain.BaseEntity;
|
|
||||||
import com.xzzn.common.utils.StringUtils;
|
|
||||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||||
import com.xzzn.common.annotation.Excel;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电池簇数据对象 ems_battery_cluster
|
* 电池簇数据对象 ems_battery_cluster
|
||||||
@ -28,8 +29,8 @@ public class EmsBatteryCluster extends BaseEntity
|
|||||||
@Excel(name = "数据更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
@Excel(name = "数据更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date dataUpdateTime;
|
private Date dataUpdateTime;
|
||||||
|
|
||||||
/** 工作状态:0-正常 1-异常 2-停止 */
|
/** 工作状态:0-运行 1-停机 2-故障 */
|
||||||
@Excel(name = "工作状态:0-正常 1-异常 2-停止")
|
@Excel(name = "工作状态:0-运行 1-停机 2-故障")
|
||||||
private String workStatus;
|
private String workStatus;
|
||||||
|
|
||||||
/** 与PCS通信状态:0-正常 1-通信中断 2-异常 */
|
/** 与PCS通信状态:0-正常 1-通信中断 2-异常 */
|
||||||
|
|||||||
@ -1,13 +1,14 @@
|
|||||||
package com.xzzn.ems.domain;
|
package com.xzzn.ems.domain;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.xzzn.common.annotation.Excel;
|
||||||
|
import com.xzzn.common.core.domain.BaseEntity;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
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.ToStringBuilder;
|
||||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||||
import com.xzzn.common.annotation.Excel;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电池堆数据对象 ems_battery_stack
|
* 电池堆数据对象 ems_battery_stack
|
||||||
@ -27,8 +28,8 @@ public class EmsBatteryStack extends BaseEntity
|
|||||||
@Excel(name = "数据更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
@Excel(name = "数据更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date dataUpdateTime;
|
private Date dataUpdateTime;
|
||||||
|
|
||||||
/** 工作状态:0-正常 1-异常 2-停止 */
|
/** 工作状态:0-运行 1-停机 2-故障 */
|
||||||
@Excel(name = "工作状态:0-正常 1-异常 2-停止")
|
@Excel(name = "工作状态:0-运行 1-停机 2-故障")
|
||||||
private String workStatus;
|
private String workStatus;
|
||||||
|
|
||||||
/** 与PCS通信状态:0-正常 1-通信中断 2-异常 */
|
/** 与PCS通信状态:0-正常 1-通信中断 2-异常 */
|
||||||
|
|||||||
@ -1,11 +1,13 @@
|
|||||||
package com.xzzn.ems.domain;
|
package com.xzzn.ems.domain;
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.xzzn.common.annotation.Excel;
|
||||||
import com.xzzn.common.core.domain.BaseEntity;
|
import com.xzzn.common.core.domain.BaseEntity;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||||
import com.xzzn.common.annotation.Excel;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Modbus设备配置对象 ems_devices_setting
|
* Modbus设备配置对象 ems_devices_setting
|
||||||
@ -102,8 +104,8 @@ public class EmsDevicesSetting extends BaseEntity
|
|||||||
@Excel(name = "设备类别,例如“STACK/CLUSTER/PCS等”")
|
@Excel(name = "设备类别,例如“STACK/CLUSTER/PCS等”")
|
||||||
private String deviceCategory;
|
private String deviceCategory;
|
||||||
|
|
||||||
/** 设备运行状态:0-离线、1-待机、2-运行、3-故障、4-停机 */
|
/** 设备运行状态:0-离线、1-在线 */
|
||||||
@Excel(name = "设备运行状态:0-离线、1-待机、2-运行、3-故障、4-停机")
|
@Excel(name = "设备运行状态:0-离线、1-在线")
|
||||||
private String deviceStatus;
|
private String deviceStatus;
|
||||||
|
|
||||||
/** 设备图像地址 */
|
/** 设备图像地址 */
|
||||||
|
|||||||
@ -28,16 +28,16 @@ public class EmsPcsData extends BaseEntity
|
|||||||
@Excel(name = "数据更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
@Excel(name = "数据更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date dataUpdateTime;
|
private Date dataUpdateTime;
|
||||||
|
|
||||||
/** 工作状态:0-正常 1-异常 2-停止 */
|
/** 工作状态:0-运行 1-停机 2-故障 */
|
||||||
@Excel(name = "工作状态:0-正常 1-异常 2-停止")
|
@Excel(name = "工作状态:0-运行 1-停机 2-故障")
|
||||||
private String workStatus;
|
private String workStatus;
|
||||||
|
|
||||||
/** 并网状态:0-并网 1-未并网 */
|
/** 并网状态:0-并网 1-未并网 */
|
||||||
@Excel(name = "并网状态:0-并网 1-未并网")
|
@Excel(name = "并网状态:0-并网 1-未并网")
|
||||||
private String gridStatus;
|
private String gridStatus;
|
||||||
|
|
||||||
/** 设备运行状态:0-离线、1-待机、2-运行、3-故障、4-停机 */
|
/** 设备运行状态:0-离线、1-在线 */
|
||||||
@Excel(name = "设备运行状态:0-离线、1-待机、2-运行、3-故障、4-停机")
|
@Excel(name = "设备运行状态:0-离线、1-在线")
|
||||||
private String deviceStatus;
|
private String deviceStatus;
|
||||||
|
|
||||||
/** 控制模式:0-远程 1-本地 */
|
/** 控制模式:0-远程 1-本地 */
|
||||||
|
|||||||
@ -16,8 +16,9 @@ public class DeviceUpdateRequest {
|
|||||||
@NotBlank(message = "设备ID不能为空")
|
@NotBlank(message = "设备ID不能为空")
|
||||||
private String deviceId;
|
private String deviceId;
|
||||||
|
|
||||||
/** 设备状态:0-离线、1-待机、2-运行、3-故障、4-停机 */
|
/** 工作状态:0-运行 1-停机 2-故障 */
|
||||||
private String deviceStatus;
|
@NotBlank(message = "工作状态状态不能为空")
|
||||||
|
private String workStatus;
|
||||||
|
|
||||||
/** 设备类型 */
|
/** 设备类型 */
|
||||||
private String deviceCategory;
|
private String deviceCategory;
|
||||||
@ -38,12 +39,12 @@ public class DeviceUpdateRequest {
|
|||||||
this.deviceId = deviceId;
|
this.deviceId = deviceId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDeviceStatus() {
|
public String getWorkStatus() {
|
||||||
return deviceStatus;
|
return workStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDeviceStatus(String deviceStatus) {
|
public void setWorkStatus(String workStatus) {
|
||||||
this.deviceStatus = deviceStatus;
|
this.workStatus = workStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDeviceCategory() {
|
public String getDeviceCategory() {
|
||||||
|
|||||||
@ -9,33 +9,70 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
|||||||
import com.xzzn.common.constant.Constants;
|
import com.xzzn.common.constant.Constants;
|
||||||
import com.xzzn.common.constant.RedisKeyConstants;
|
import com.xzzn.common.constant.RedisKeyConstants;
|
||||||
import com.xzzn.common.core.redis.RedisCache;
|
import com.xzzn.common.core.redis.RedisCache;
|
||||||
import com.xzzn.common.enums.*;
|
import com.xzzn.common.enums.BranchStatus;
|
||||||
|
import com.xzzn.common.enums.ChargeStatus;
|
||||||
|
import com.xzzn.common.enums.CommunicationStatus;
|
||||||
|
import com.xzzn.common.enums.ControlModeStatus;
|
||||||
|
import com.xzzn.common.enums.DeviceRunningStatus;
|
||||||
|
import com.xzzn.common.enums.GridStatus;
|
||||||
|
import com.xzzn.common.enums.SwitchStatus;
|
||||||
|
import com.xzzn.common.enums.WorkStatus;
|
||||||
import com.xzzn.common.utils.DateUtils;
|
import com.xzzn.common.utils.DateUtils;
|
||||||
import com.xzzn.common.utils.StringUtils;
|
import com.xzzn.common.utils.StringUtils;
|
||||||
import com.xzzn.ems.domain.*;
|
import com.xzzn.ems.domain.EmsAmmeterData;
|
||||||
|
import com.xzzn.ems.domain.EmsBatteryCluster;
|
||||||
|
import com.xzzn.ems.domain.EmsBatteryData;
|
||||||
|
import com.xzzn.ems.domain.EmsBatteryDataDailyLatest;
|
||||||
|
import com.xzzn.ems.domain.EmsBatteryDataMinutes;
|
||||||
|
import com.xzzn.ems.domain.EmsBatteryGroup;
|
||||||
|
import com.xzzn.ems.domain.EmsBatteryStack;
|
||||||
|
import com.xzzn.ems.domain.EmsDailyChargeData;
|
||||||
|
import com.xzzn.ems.domain.EmsDailyEnergyData;
|
||||||
|
import com.xzzn.ems.domain.EmsDevicesSetting;
|
||||||
|
import com.xzzn.ems.domain.EmsDhData;
|
||||||
|
import com.xzzn.ems.domain.EmsPcsBranchData;
|
||||||
|
import com.xzzn.ems.domain.EmsPcsData;
|
||||||
|
import com.xzzn.ems.domain.EmsXfData;
|
||||||
import com.xzzn.ems.domain.vo.EnergyPriceVo;
|
import com.xzzn.ems.domain.vo.EnergyPriceVo;
|
||||||
import com.xzzn.ems.mapper.*;
|
import com.xzzn.ems.mapper.EmsAmmeterDataMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsBatteryClusterMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsBatteryDataMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsBatteryDataMinutesMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsBatteryGroupMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsBatteryStackMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsDailyChargeDataMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsDailyEnergyDataMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsDevicesSettingMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsDhDataMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsPcsBranchDataMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsPcsDataMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsXfDataMapper;
|
||||||
import com.xzzn.ems.service.IDDSDataProcessService;
|
import com.xzzn.ems.service.IDDSDataProcessService;
|
||||||
import com.xzzn.ems.service.IEmsAlarmRecordsService;
|
import com.xzzn.ems.service.IEmsAlarmRecordsService;
|
||||||
import com.xzzn.ems.service.IEmsDeviceSettingService;
|
import com.xzzn.ems.service.IEmsDeviceSettingService;
|
||||||
import com.xzzn.ems.utils.AbstractBatteryDataProcessor;
|
import com.xzzn.ems.utils.AbstractBatteryDataProcessor;
|
||||||
import org.apache.commons.logging.Log;
|
|
||||||
import org.apache.commons.logging.LogFactory;
|
|
||||||
import org.springframework.beans.BeanUtils;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import org.springframework.util.CollectionUtils;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.*;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class DDSDataProcessServiceImpl extends AbstractBatteryDataProcessor implements IDDSDataProcessService {
|
public class DDSDataProcessServiceImpl extends AbstractBatteryDataProcessor implements IDDSDataProcessService {
|
||||||
private static final Log log = LogFactory.getLog(DDSDataProcessServiceImpl.class);
|
private static final Log log = LogFactory.getLog(DDSDataProcessServiceImpl.class);
|
||||||
@ -633,7 +670,7 @@ public class DDSDataProcessServiceImpl extends AbstractBatteryDataProcessor impl
|
|||||||
pcsData.setDataUpdateTime(new Date());
|
pcsData.setDataUpdateTime(new Date());
|
||||||
pcsData.setWorkStatus(WorkStatus.NORMAL.getCode());
|
pcsData.setWorkStatus(WorkStatus.NORMAL.getCode());
|
||||||
pcsData.setGridStatus(GridStatus.GRID.getCode());
|
pcsData.setGridStatus(GridStatus.GRID.getCode());
|
||||||
pcsData.setDeviceStatus(DeviceRunningStatus.RUNNING.getCode());
|
pcsData.setDeviceStatus(DeviceRunningStatus.ONLINE.getCode());
|
||||||
pcsData.setControlMode(ControlModeStatus.REMOTE.getCode());
|
pcsData.setControlMode(ControlModeStatus.REMOTE.getCode());
|
||||||
|
|
||||||
// 电流
|
// 电流
|
||||||
|
|||||||
@ -23,7 +23,6 @@ import com.xzzn.common.enums.GridStatus;
|
|||||||
import com.xzzn.common.enums.SiteDevice;
|
import com.xzzn.common.enums.SiteDevice;
|
||||||
import com.xzzn.common.enums.SiteEnum;
|
import com.xzzn.common.enums.SiteEnum;
|
||||||
import com.xzzn.common.enums.SwitchStatus;
|
import com.xzzn.common.enums.SwitchStatus;
|
||||||
import com.xzzn.common.enums.WorkStatus;
|
|
||||||
import com.xzzn.common.utils.DateUtils;
|
import com.xzzn.common.utils.DateUtils;
|
||||||
import com.xzzn.common.utils.MapUtils;
|
import com.xzzn.common.utils.MapUtils;
|
||||||
import com.xzzn.common.utils.StringUtils;
|
import com.xzzn.common.utils.StringUtils;
|
||||||
@ -379,7 +378,7 @@ public class DeviceDataProcessServiceImpl extends AbstractBatteryDataProcessor i
|
|||||||
|
|
||||||
// 其他非 BigDecimal 字段
|
// 其他非 BigDecimal 字段
|
||||||
dataStack.setDataUpdateTime(dataUpdateTime);
|
dataStack.setDataUpdateTime(dataUpdateTime);
|
||||||
dataStack.setWorkStatus(WorkStatus.NORMAL.getCode()); // 或其他默认值
|
// dataStack.setWorkStatus(WorkStatus.NORMAL.getCode()); // 或其他默认值
|
||||||
dataStack.setPcsCommunicationStatus(CommunicationStatus.OK.getCode());
|
dataStack.setPcsCommunicationStatus(CommunicationStatus.OK.getCode());
|
||||||
dataStack.setEmsCommunicationStatus(CommunicationStatus.OK.getCode());
|
dataStack.setEmsCommunicationStatus(CommunicationStatus.OK.getCode());
|
||||||
|
|
||||||
@ -669,7 +668,7 @@ public class DeviceDataProcessServiceImpl extends AbstractBatteryDataProcessor i
|
|||||||
saveDeviceData(pointMatchList, obj, data, pointEnumMatchMap);
|
saveDeviceData(pointMatchList, obj, data, pointEnumMatchMap);
|
||||||
|
|
||||||
data.setDataUpdateTime(dataUpdateTime);
|
data.setDataUpdateTime(dataUpdateTime);
|
||||||
data.setWorkStatus(WorkStatus.NORMAL.getCode()); // 或其他默认值
|
// data.setWorkStatus(WorkStatus.NORMAL.getCode()); // 或其他默认值
|
||||||
data.setPcsCommunicationStatus(CommunicationStatus.OK.getCode());
|
data.setPcsCommunicationStatus(CommunicationStatus.OK.getCode());
|
||||||
data.setEmsCommunicationStatus(CommunicationStatus.OK.getCode());
|
data.setEmsCommunicationStatus(CommunicationStatus.OK.getCode());
|
||||||
data.setCreateBy("system");
|
data.setCreateBy("system");
|
||||||
@ -812,9 +811,9 @@ public class DeviceDataProcessServiceImpl extends AbstractBatteryDataProcessor i
|
|||||||
|
|
||||||
// 时间与状态类字段
|
// 时间与状态类字段
|
||||||
pcsData.setDataUpdateTime(dataUpdateTime);
|
pcsData.setDataUpdateTime(dataUpdateTime);
|
||||||
pcsData.setWorkStatus(WorkStatus.NORMAL.getCode());
|
// pcsData.setWorkStatus(WorkStatus.NORMAL.getCode());
|
||||||
pcsData.setGridStatus(GridStatus.GRID.getCode());
|
pcsData.setGridStatus(GridStatus.GRID.getCode());
|
||||||
pcsData.setDeviceStatus(DeviceRunningStatus.RUNNING.getCode());
|
pcsData.setDeviceStatus(DeviceRunningStatus.ONLINE.getCode());
|
||||||
pcsData.setControlMode(ControlModeStatus.REMOTE.getCode());
|
pcsData.setControlMode(ControlModeStatus.REMOTE.getCode());
|
||||||
|
|
||||||
// 系统管理字段
|
// 系统管理字段
|
||||||
@ -936,7 +935,7 @@ public class DeviceDataProcessServiceImpl extends AbstractBatteryDataProcessor i
|
|||||||
EmsBatteryCluster data = new EmsBatteryCluster();
|
EmsBatteryCluster data = new EmsBatteryCluster();
|
||||||
// 其他非 BigDecimal 字段
|
// 其他非 BigDecimal 字段
|
||||||
data.setDataUpdateTime(dataUpdateTime);
|
data.setDataUpdateTime(dataUpdateTime);
|
||||||
data.setWorkStatus(WorkStatus.NORMAL.getCode()); // 或其他默认值
|
// data.setWorkStatus(WorkStatus.NORMAL.getCode()); // 或其他默认值
|
||||||
data.setPcsCommunicationStatus(CommunicationStatus.OK.getCode());
|
data.setPcsCommunicationStatus(CommunicationStatus.OK.getCode());
|
||||||
data.setEmsCommunicationStatus(CommunicationStatus.OK.getCode());
|
data.setEmsCommunicationStatus(CommunicationStatus.OK.getCode());
|
||||||
data.setCreateBy("system");
|
data.setCreateBy("system");
|
||||||
|
|||||||
@ -10,9 +10,9 @@ import com.xzzn.common.core.modbus.domain.DeviceConfig;
|
|||||||
import com.xzzn.common.core.modbus.domain.WriteTagConfig;
|
import com.xzzn.common.core.modbus.domain.WriteTagConfig;
|
||||||
import com.xzzn.common.core.redis.RedisCache;
|
import com.xzzn.common.core.redis.RedisCache;
|
||||||
import com.xzzn.common.enums.DeviceCategory;
|
import com.xzzn.common.enums.DeviceCategory;
|
||||||
import com.xzzn.common.enums.DeviceRunningStatus;
|
|
||||||
import com.xzzn.common.enums.PointType;
|
import com.xzzn.common.enums.PointType;
|
||||||
import com.xzzn.common.enums.SiteEnum;
|
import com.xzzn.common.enums.SiteEnum;
|
||||||
|
import com.xzzn.common.enums.WorkStatus;
|
||||||
import com.xzzn.common.exception.ServiceException;
|
import com.xzzn.common.exception.ServiceException;
|
||||||
import com.xzzn.common.utils.DateUtils;
|
import com.xzzn.common.utils.DateUtils;
|
||||||
import com.xzzn.common.utils.StringUtils;
|
import com.xzzn.common.utils.StringUtils;
|
||||||
@ -528,25 +528,14 @@ public class EmsDeviceSettingServiceImpl implements IEmsDeviceSettingService
|
|||||||
if (pcsSetting == null) {
|
if (pcsSetting == null) {
|
||||||
throw new ServiceException("未找到对应PCS配置信息");
|
throw new ServiceException("未找到对应PCS配置信息");
|
||||||
}
|
}
|
||||||
if (DeviceRunningStatus.getShutdownCodeList().contains(request.getDeviceStatus())) {
|
|
||||||
// 开机逻辑
|
|
||||||
device.setDeviceStatus(DeviceRunningStatus.RUNNING.getCode());
|
|
||||||
} else if (DeviceRunningStatus.getRunningCodeList().contains(request.getDeviceStatus())) {
|
|
||||||
// 关机逻辑
|
|
||||||
device.setDeviceStatus(DeviceRunningStatus.SHUTDOWN.getCode());
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// 调用Modbus向设备发送指令
|
// 调用Modbus向设备发送指令
|
||||||
DeviceConfig deviceConfig = getDeviceConfig(device);
|
DeviceConfig deviceConfig = getDeviceConfig(device);
|
||||||
deviceConfig.setWriteTags(getWriteTags(device.getDeviceStatus(), pcsSetting));
|
deviceConfig.setWriteTags(getWriteTags(request.getWorkStatus(), pcsSetting));
|
||||||
log.info("设备控制指令发送数据: {}", JSON.toJSONString(deviceConfig));
|
log.info("设备控制指令发送数据: {}", JSON.toJSONString(deviceConfig));
|
||||||
boolean result = modbusProcessor.writeDataToDevice(deviceConfig);
|
boolean result = modbusProcessor.writeDataToDevice(deviceConfig);
|
||||||
if (!result) {
|
if (!result) {
|
||||||
throw new ServiceException("设备控制指令发送失败");
|
throw new ServiceException("设备控制指令发送失败");
|
||||||
}
|
}
|
||||||
device.setUpdatedAt(DateUtils.getNowDate());
|
|
||||||
emsDevicesMapper.updateEmsDevicesSetting(device);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -563,19 +552,21 @@ public class EmsDeviceSettingServiceImpl implements IEmsDeviceSettingService
|
|||||||
return deviceConfig;
|
return deviceConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<WriteTagConfig> getWriteTags(String deviceStatus, EmsPcsSetting pcsSetting) {
|
public List<WriteTagConfig> getWriteTags(String workStatus, EmsPcsSetting pcsSetting) {
|
||||||
List<WriteTagConfig> writeTags = new ArrayList<>();
|
List<WriteTagConfig> writeTags = new ArrayList<>();
|
||||||
BigDecimal power;
|
BigDecimal power;
|
||||||
WriteTagConfig writeTag = new WriteTagConfig();
|
WriteTagConfig writeTag = new WriteTagConfig();
|
||||||
writeTag.setAddress(pcsSetting.getPointAddress());
|
writeTag.setAddress(pcsSetting.getPointAddress());
|
||||||
if (DeviceRunningStatus.RUNNING.getCode().equals(deviceStatus)) {
|
if (WorkStatus.NORMAL.getCode().equals(workStatus)) {
|
||||||
// 开机
|
// 开机
|
||||||
writeTag.setValue(pcsSetting.getStartCommand());
|
writeTag.setValue(pcsSetting.getStartCommand());
|
||||||
power = pcsSetting.getStartPower();
|
power = pcsSetting.getStartPower();
|
||||||
} else {
|
} else if (WorkStatus.STOP.getCode().equals(workStatus)) {
|
||||||
// 关机
|
// 关机
|
||||||
writeTag.setValue(pcsSetting.getStopCommand());
|
writeTag.setValue(pcsSetting.getStopCommand());
|
||||||
power = pcsSetting.getStopPower();
|
power = pcsSetting.getStopPower();
|
||||||
|
} else {
|
||||||
|
throw new ServiceException("工作状态不合法");
|
||||||
}
|
}
|
||||||
writeTags.add(writeTag);
|
writeTags.add(writeTag);
|
||||||
JSONArray array = JSON.parseArray(pcsSetting.getClusterPointAddress());
|
JSONArray array = JSON.parseArray(pcsSetting.getClusterPointAddress());
|
||||||
|
|||||||
@ -173,8 +173,7 @@ public class EmsStrategyTempServiceImpl implements IEmsStrategyTempService
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void convertStringToDate(String content, SyncStrategyTempVo syncVo) throws JsonProcessingException {
|
private void convertStringToDate(String content, SyncStrategyTempVo syncVo) throws JsonProcessingException {
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
JsonNode rootNode = objectMapper.readTree(content);
|
||||||
JsonNode rootNode = mapper.readTree(content);
|
|
||||||
String startTime = rootNode.path("startTime").asText();
|
String startTime = rootNode.path("startTime").asText();
|
||||||
String endTime = rootNode.path("endTime").asText();
|
String endTime = rootNode.path("endTime").asText();
|
||||||
if (startTime != null && !"null".equals(startTime)) {
|
if (startTime != null && !"null".equals(startTime)) {
|
||||||
|
|||||||
@ -9,42 +9,73 @@ import com.fasterxml.jackson.databind.JsonNode;
|
|||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.xzzn.common.constant.RedisKeyConstants;
|
import com.xzzn.common.constant.RedisKeyConstants;
|
||||||
import com.xzzn.common.core.redis.RedisCache;
|
import com.xzzn.common.core.redis.RedisCache;
|
||||||
import com.xzzn.common.enums.*;
|
import com.xzzn.common.enums.BranchStatus;
|
||||||
|
import com.xzzn.common.enums.ChargeStatus;
|
||||||
|
import com.xzzn.common.enums.CommunicationStatus;
|
||||||
|
import com.xzzn.common.enums.ControlModeStatus;
|
||||||
|
import com.xzzn.common.enums.DeviceRunningStatus;
|
||||||
|
import com.xzzn.common.enums.GridStatus;
|
||||||
|
import com.xzzn.common.enums.SwitchStatus;
|
||||||
|
import com.xzzn.common.enums.WorkStatus;
|
||||||
import com.xzzn.common.utils.DateUtils;
|
import com.xzzn.common.utils.DateUtils;
|
||||||
import com.xzzn.common.utils.StringUtils;
|
import com.xzzn.common.utils.StringUtils;
|
||||||
import com.xzzn.ems.domain.*;
|
import com.xzzn.ems.domain.EmsAmmeterData;
|
||||||
|
import com.xzzn.ems.domain.EmsBatteryCluster;
|
||||||
|
import com.xzzn.ems.domain.EmsBatteryData;
|
||||||
|
import com.xzzn.ems.domain.EmsBatteryDataDailyLatest;
|
||||||
|
import com.xzzn.ems.domain.EmsBatteryDataMinutes;
|
||||||
|
import com.xzzn.ems.domain.EmsBatteryStack;
|
||||||
|
import com.xzzn.ems.domain.EmsCoolingData;
|
||||||
|
import com.xzzn.ems.domain.EmsDailyChargeData;
|
||||||
|
import com.xzzn.ems.domain.EmsDailyEnergyData;
|
||||||
|
import com.xzzn.ems.domain.EmsDevicesSetting;
|
||||||
|
import com.xzzn.ems.domain.EmsDhData;
|
||||||
|
import com.xzzn.ems.domain.EmsPcsBranchData;
|
||||||
|
import com.xzzn.ems.domain.EmsPcsData;
|
||||||
|
import com.xzzn.ems.domain.EmsPointMatch;
|
||||||
import com.xzzn.ems.domain.vo.EnergyPriceTimeRange;
|
import com.xzzn.ems.domain.vo.EnergyPriceTimeRange;
|
||||||
import com.xzzn.ems.domain.vo.EnergyPriceVo;
|
import com.xzzn.ems.domain.vo.EnergyPriceVo;
|
||||||
import com.xzzn.ems.enums.DeviceMatchTable;
|
import com.xzzn.ems.enums.DeviceMatchTable;
|
||||||
import com.xzzn.ems.mapper.*;
|
import com.xzzn.ems.mapper.EmsAmmeterDataMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsBatteryClusterMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsBatteryDataMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsBatteryDataMinutesMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsBatteryStackMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsCoolingDataMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsDailyChargeDataMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsDailyEnergyDataMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsDevicesSettingMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsDhDataMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsEnergyPriceConfigMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsPcsBranchDataMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsPcsDataMapper;
|
||||||
import com.xzzn.ems.service.IEmsAlarmRecordsService;
|
import com.xzzn.ems.service.IEmsAlarmRecordsService;
|
||||||
import com.xzzn.ems.service.IEmsEnergyPriceConfigService;
|
import com.xzzn.ems.service.IEmsEnergyPriceConfigService;
|
||||||
import com.xzzn.ems.service.IFXXDataProcessService;
|
import com.xzzn.ems.service.IFXXDataProcessService;
|
||||||
import com.xzzn.ems.utils.AbstractBatteryDataProcessor;
|
import com.xzzn.ems.utils.AbstractBatteryDataProcessor;
|
||||||
import com.xzzn.ems.utils.DevicePointMatchDataProcessor;
|
import com.xzzn.ems.utils.DevicePointMatchDataProcessor;
|
||||||
|
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
|
||||||
import org.apache.commons.lang3.ArrayUtils;
|
|
||||||
import org.apache.commons.logging.Log;
|
|
||||||
import org.apache.commons.logging.LogFactory;
|
|
||||||
import org.apache.poi.ss.formula.functions.T;
|
|
||||||
import org.springframework.beans.BeanUtils;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import org.yaml.snakeyaml.introspector.PropertyUtils;
|
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.LocalTime;
|
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.*;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.function.Function;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class FXXDataProcessServiceImpl extends AbstractBatteryDataProcessor implements IFXXDataProcessService {
|
public class FXXDataProcessServiceImpl extends AbstractBatteryDataProcessor implements IFXXDataProcessService {
|
||||||
private static final Log log = LogFactory.getLog(FXXDataProcessServiceImpl.class);
|
private static final Log log = LogFactory.getLog(FXXDataProcessServiceImpl.class);
|
||||||
@ -539,7 +570,7 @@ public class FXXDataProcessServiceImpl extends AbstractBatteryDataProcessor impl
|
|||||||
pcsData.setDataUpdateTime(dataUpdateTime);
|
pcsData.setDataUpdateTime(dataUpdateTime);
|
||||||
pcsData.setWorkStatus(WorkStatus.NORMAL.getCode());
|
pcsData.setWorkStatus(WorkStatus.NORMAL.getCode());
|
||||||
pcsData.setGridStatus(GridStatus.GRID.getCode());
|
pcsData.setGridStatus(GridStatus.GRID.getCode());
|
||||||
pcsData.setDeviceStatus(DeviceRunningStatus.RUNNING.getCode());
|
pcsData.setDeviceStatus(DeviceRunningStatus.ONLINE.getCode());
|
||||||
pcsData.setControlMode(ControlModeStatus.REMOTE.getCode());
|
pcsData.setControlMode(ControlModeStatus.REMOTE.getCode());
|
||||||
|
|
||||||
// 系统管理字段
|
// 系统管理字段
|
||||||
|
|||||||
Reference in New Issue
Block a user