中央热水项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
3.2 KiB

package com.mh.user.strategy;
import com.mh.user.constants.Constant;
import com.mh.user.entity.CollectionParamsManageEntity;
import com.mh.user.entity.DeviceCodeParamEntity;
import com.mh.user.entity.DeviceInstallEntity;
import com.mh.user.entity.NowPublicDataEntity;
import com.mh.user.service.BuildingService;
import com.mh.user.service.NowDataService;
import com.mh.user.service.NowPublicDataService;
import com.mh.user.utils.ExchangeStringUtil;
import com.mh.user.utils.SpringBeanUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.ApplicationContext;
import java.math.BigDecimal;
/**
* @author LJF
* @version 1.0
* @project CHWS
* @description 系统参数策略
* @date 2024-03-18 09:51:17
*/
@Slf4j
public class SystemParamsStrategy implements DeviceStrategy {
// 调用service
ApplicationContext context = SpringBeanUtil.getApplicationContext();
NowDataService nowDataService = context.getBean(NowDataService.class);
NowPublicDataService nowPublicDataService = context.getBean(NowPublicDataService.class);
BuildingService buildingService = context.getBean(BuildingService.class);
private static class SingletonHolder {
private static final SystemParamsStrategy INSTANCE = new SystemParamsStrategy();
}
private SystemParamsStrategy() {
// 防止外部直接实例化
}
public static SystemParamsStrategy getInstance() {
return SystemParamsStrategy.SingletonHolder.INSTANCE;
}
@Override
public String createOrders(DeviceCodeParamEntity deviceCodeParamEntity) {
return "";
}
@Override
public String analysisReceiveData(String dateStr, String deviceType, String registerAddr, String brand, String buildingId, String buildingName, String dataStr, DeviceCodeParamEntity deviceCodeParamEntity) {
String result = Constant.FAIL;
return result;
}
@Override
public String analysisMQTTReceiveData(String dateStr, String registerAddr, String dataStr, String operateType, DeviceInstallEntity deviceInstallEntity,
CollectionParamsManageEntity collectionParamsManageEntity) {
String result = Constant.FAIL;
if ((new BigDecimal(dataStr)).compareTo(new BigDecimal(0)) < 0) {
log.info("系统参数报文检验失败: " + dataStr);
return result;
}
String data = "";
if (operateType.equalsIgnoreCase(Constant.READ)) {// 读
// 水压存储过程
if (collectionParamsManageEntity.getParamTypeId() == 5) {
nowDataService.proWaterPressure(dateStr,
deviceInstallEntity.getBuildingId(),
deviceInstallEntity.getBuildingName(),
collectionParamsManageEntity.getRegisterAddr(),
collectionParamsManageEntity.getOtherName(),
dataStr);//保存时间点温度
log.info("系统参数id:" + deviceInstallEntity.getDeviceAddr() + ",压力值:" + dataStr + ",保存数据库成功!楼栋名称:" + deviceInstallEntity.getBuildingName());
}
return dataStr;
} else {// 写
result = Constant.SUCCESS;
}
return result;
}
}