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
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; |
|
} |
|
}
|
|
|