平台修改意见20251120-新增PCS设备开关机

This commit is contained in:
zq
2025-12-12 13:25:53 +08:00
parent e73787ee8f
commit c6fca8b939
6 changed files with 69 additions and 2 deletions

View File

@ -185,7 +185,7 @@ public class EmsSiteConfigController extends BaseController{
* PCS设备开关机
*/
@PostMapping("/updateDeviceStatus")
public AjaxResult updateDeviceStatus(@Valid DeviceUpdateRequest request)
public AjaxResult updateDeviceStatus(@Valid @RequestBody DeviceUpdateRequest request)
{
return success(iEmsDeviceSettingService.updateDeviceStatus(request));
}

View File

@ -1,5 +1,8 @@
package com.xzzn.common.enums;
import java.util.Arrays;
import java.util.List;
/**
* device-通信状态
*
@ -31,4 +34,16 @@ public enum DeviceRunningStatus
{
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());
}
}

View File

@ -19,6 +19,8 @@ public class DeviceUpdateRequest {
/** 设备状态0-离线、1-待机、2-运行、3-故障、4-停机 */
private String deviceStatus;
/** 设备类型 */
private String deviceCategory;
public String getSiteId() {
return siteId;
@ -43,4 +45,12 @@ public class DeviceUpdateRequest {
public void setDeviceStatus(String deviceStatus) {
this.deviceStatus = deviceStatus;
}
public String getDeviceCategory() {
return deviceCategory;
}
public void setDeviceCategory(String deviceCategory) {
this.deviceCategory = deviceCategory;
}
}

View File

@ -7,6 +7,7 @@ import java.util.Map;
import com.xzzn.ems.domain.EmsPointMatch;
import com.xzzn.ems.domain.vo.DevicePointMatchExportVo;
import com.xzzn.ems.domain.vo.DevicePointMatchVo;
import com.xzzn.ems.domain.vo.DeviceUpdateRequest;
import com.xzzn.ems.domain.vo.GeneralQueryDataVo;
import com.xzzn.ems.domain.vo.PointQueryResponse;
import org.apache.ibatis.annotations.Param;
@ -169,4 +170,6 @@ public interface EmsPointMatchMapper
List<DevicePointMatchExportVo> selectEmsPointMatchExportList(EmsPointMatch emsPointMatch);
int getDevicePointAlarmNum(@Param("siteId") String siteId, @Param("deviceCategory") String deviceCategory);
EmsPointMatch selectDeviceStatusPoint(@Param("request") DeviceUpdateRequest request);
}

View File

@ -6,11 +6,15 @@ import com.alibaba.fastjson2.TypeReference;
import com.xzzn.common.constant.RedisKeyConstants;
import com.xzzn.common.core.redis.RedisCache;
import com.xzzn.common.enums.DeviceCategory;
import com.xzzn.common.enums.DeviceRunningStatus;
import com.xzzn.common.enums.PointType;
import com.xzzn.common.enums.SiteEnum;
import com.xzzn.common.exception.ServiceException;
import com.xzzn.common.utils.DateUtils;
import com.xzzn.common.utils.StringUtils;
import com.xzzn.common.utils.file.ImageUtils;
import com.xzzn.ems.domain.EmsDevicesSetting;
import com.xzzn.ems.domain.EmsPointMatch;
import com.xzzn.ems.domain.vo.DeviceUpdateRequest;
import com.xzzn.ems.domain.vo.PointDataRequest;
import com.xzzn.ems.domain.vo.PointQueryResponse;
@ -18,6 +22,9 @@ import com.xzzn.ems.mapper.EmsBatteryDataMinutesMapper;
import com.xzzn.ems.mapper.EmsDevicesSettingMapper;
import com.xzzn.ems.mapper.EmsPointMatchMapper;
import com.xzzn.ems.service.IEmsDeviceSettingService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -33,6 +40,8 @@ import java.util.stream.Collectors;
@Service
public class EmsDeviceSettingServiceImpl implements IEmsDeviceSettingService
{
private static final Logger log = LoggerFactory.getLogger(EmsDeviceSettingServiceImpl.class);
private static final String DDS_SITE_ID = "021_DDS_01";
@Autowired
@ -472,6 +481,29 @@ public class EmsDeviceSettingServiceImpl implements IEmsDeviceSettingService
@Override
public boolean updateDeviceStatus(DeviceUpdateRequest request) {
EmsDevicesSetting device = emsDevicesMapper.getDeviceBySiteAndDeviceId(request.getDeviceId(), request.getSiteId());
if (device == null) {
throw new ServiceException("未找到对应设备配置信息");
}
// 查询设备配置的设备状态对应点位
// request.setDeviceCategory(DeviceCategory.PCS.getCode());
// EmsPointMatch pointMatch = emsPointMatchMapper.selectDeviceStatusPoint(request);
// if (pointMatch == null) {
// throw new ServiceException("未找到对应设备状态点位");
// }
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;
}
// TODO 调用Modbus向设备发送指令
device.setUpdatedAt(DateUtils.getNowDate());
emsDevicesMapper.updateEmsDevicesSetting(device);
return true;
}
}

View File

@ -540,5 +540,12 @@
and device_id = #{deviceId}
and device_category = #{deviceCategory}
</select>
<select id="selectDeviceStatusPoint" resultType="EmsPointMatch" parameterType="com.xzzn.ems.domain.vo.DeviceUpdateRequest">
<include refid="selectEmsPointMatchVo"/>
where site_id = #{request.siteId}
and device_id = #{request.deviceId}
and device_category = #{request.deviceCategory}
and match_field = 'device_status'
</select>
</mapper>