调整普倍思设备为自动化
This commit is contained in:
parent
5c5af49668
commit
5c74970672
|
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
|
@ -197,6 +198,13 @@ public class SurvDeviceDeploy extends Model<SurvDeviceDeploy> {
|
|||
@TableField("SURV_CONFIG_ID")
|
||||
private String survConfigId;
|
||||
|
||||
/**
|
||||
* 设备配置串
|
||||
*/
|
||||
@TableField("DEVICE_CONFIG")
|
||||
@ApiModelProperty(value = "设备配置串")
|
||||
private String deviceConfig;
|
||||
|
||||
@Override
|
||||
protected Serializable pkVal() {
|
||||
return this.id;
|
||||
|
|
|
|||
|
|
@ -94,8 +94,8 @@ public class SurvTransdataAir extends Model<SurvTransdataAir> {
|
|||
/**
|
||||
* 站点ID
|
||||
*/
|
||||
// @TableField("STATION_ID")
|
||||
// private String stationId;
|
||||
@TableField("STATION_ID")
|
||||
private String stationId;
|
||||
|
||||
/**
|
||||
* 设备ID
|
||||
|
|
@ -106,8 +106,8 @@ public class SurvTransdataAir extends Model<SurvTransdataAir> {
|
|||
/**
|
||||
* 站点编号
|
||||
*/
|
||||
// @TableField("STATION_CODE")
|
||||
// private String stationCode;
|
||||
@TableField("STATION_CODE")
|
||||
private String stationCode;
|
||||
|
||||
/**
|
||||
* 设备编号
|
||||
|
|
@ -124,14 +124,14 @@ public class SurvTransdataAir extends Model<SurvTransdataAir> {
|
|||
/**
|
||||
* 站点名称
|
||||
*/
|
||||
// @TableField("STATION_NAME")
|
||||
// private String stationName;
|
||||
@TableField("STATION_NAME")
|
||||
private String stationName;
|
||||
|
||||
/**
|
||||
* 设备名称
|
||||
*/
|
||||
// @TableField("DEVICE_NAME")
|
||||
// private String deviceName;
|
||||
@TableField("DEVICE_NAME")
|
||||
private String deviceName;
|
||||
|
||||
/**
|
||||
* 租户号
|
||||
|
|
|
|||
|
|
@ -221,8 +221,8 @@ public class SurvTransdataSoil extends Model<SurvTransdataSoil> {
|
|||
/**
|
||||
* 站点ID
|
||||
*/
|
||||
// @TableField("STATION_ID")
|
||||
// private String stationId;
|
||||
@TableField("STATION_ID")
|
||||
private String stationId;
|
||||
|
||||
/**
|
||||
* 设备ID
|
||||
|
|
@ -233,8 +233,8 @@ public class SurvTransdataSoil extends Model<SurvTransdataSoil> {
|
|||
/**
|
||||
* 站点编号
|
||||
*/
|
||||
// @TableField("STATION_CODE")
|
||||
// private String stationCode;
|
||||
@TableField("STATION_CODE")
|
||||
private String stationCode;
|
||||
|
||||
/**
|
||||
* 设备编号
|
||||
|
|
@ -251,14 +251,15 @@ public class SurvTransdataSoil extends Model<SurvTransdataSoil> {
|
|||
/**
|
||||
* 站点名称
|
||||
*/
|
||||
// @TableField("STATION_NAME")
|
||||
// private String stationName;
|
||||
@TableField("STATION_NAME")
|
||||
private String stationName;
|
||||
|
||||
/**
|
||||
* 设备名称
|
||||
*/
|
||||
// @TableField("DEVICE_NAME")
|
||||
// private String deviceName;
|
||||
@TableField("DEVICE_NAME")
|
||||
private String deviceName;
|
||||
|
||||
|
||||
/**
|
||||
* 租户号
|
||||
|
|
@ -309,6 +310,10 @@ public class SurvTransdataSoil extends Model<SurvTransdataSoil> {
|
|||
private String deployId;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
protected Serializable pkVal() {
|
||||
return this.id;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
package com.lanhai.o.iot.pbs;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class ResolvConfig {
|
||||
List<ResolveConfigDetail> resolvConfig;
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package com.lanhai.o.iot.pbs;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ResolveConfigDetail {
|
||||
/**
|
||||
* 索引
|
||||
*/
|
||||
private String index;
|
||||
/**
|
||||
* 报文取值范围
|
||||
*/
|
||||
private String range;
|
||||
|
||||
/**
|
||||
* 实体字段
|
||||
*/
|
||||
private String field;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
private Integer sortNo;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
package com.lanhai.o.iot.pbs;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 普倍思解析实体
|
||||
*/
|
||||
@Data
|
||||
public class WaterCommonTransVo {
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 数据ID
|
||||
*/
|
||||
private String dataId;
|
||||
|
||||
private String deployCode;
|
||||
|
||||
/**
|
||||
* 总磷
|
||||
*/
|
||||
private String dataWaterTp;
|
||||
private String dataWaterTpSy;
|
||||
private String dataWaterTpLd;
|
||||
|
||||
|
||||
/**
|
||||
* 总氮
|
||||
*/
|
||||
private String dataWaterTn;
|
||||
private String dataWaterTnSy;
|
||||
private String dataWaterTnLd;
|
||||
|
||||
/**
|
||||
* 硝态氮
|
||||
*/
|
||||
private String dataWaterNo;
|
||||
|
||||
/**
|
||||
* 氨氮
|
||||
*/
|
||||
private String dataWaterNh;
|
||||
private String dataWaterNhSy;
|
||||
private String dataWaterNhLd;
|
||||
|
||||
|
||||
/**
|
||||
* 化学需氧量
|
||||
*/
|
||||
private String dataWaterCod;
|
||||
private String dataWaterCodSy;
|
||||
private String dataWaterCodLd;
|
||||
|
||||
|
||||
|
||||
private String fluidLevel;//液位
|
||||
private String firstValveStatus;//1#球阀状态
|
||||
private String secondValveStatus;//2#球阀状态
|
||||
private String crashStopStatus;//急停状态
|
||||
private String waterPumpStatus;//水泵状态
|
||||
private String mainSideStatus;//主副泵状态
|
||||
|
||||
|
||||
/**
|
||||
* 数据更新时间
|
||||
*/
|
||||
private Date dataDateTime;
|
||||
|
||||
/**
|
||||
* 数据获取类型;realTime=实时,dayTime=日数据,month=月数据,year=年数据
|
||||
*/
|
||||
private String dataGatherType;
|
||||
}
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
package com.lanhai.service;
|
||||
|
||||
import com.lanhai.entity.SurvDeviceDeploy;
|
||||
import com.lanhai.entity.SurvTransdataLivestockwater;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.lanhai.entity.SurvTransdataOrientwater;
|
||||
|
|
@ -13,7 +14,7 @@ public interface ISurvTransdataLivestockwaterService extends IService<SurvTransd
|
|||
|
||||
SurvTransdataLivestockwater getOneByDeviceCode(String deviceCode);
|
||||
|
||||
void saveBaowen(String str);
|
||||
void saveBaowen(String str, SurvDeviceDeploy deploy);
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.lanhai.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.lanhai.entity.SurvDeviceDeploy;
|
||||
import com.lanhai.entity.SurvTransdataOrientwater;
|
||||
|
||||
/**
|
||||
|
|
@ -14,7 +15,7 @@ public interface ISurvTransdataOrientwaterService extends IService<SurvTransdata
|
|||
|
||||
SurvTransdataOrientwater getOneByDeviceCode(String deviceCode);
|
||||
|
||||
void saveBaowen(String str);
|
||||
void saveBaowen(String str, SurvDeviceDeploy deploy);
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import com.lanhai.service.ISurvAlertRecordService;
|
|||
import com.lanhai.service.ISurvDeviceDeployService;
|
||||
import com.lanhai.service.ISurvStationInfoService;
|
||||
import com.lanhai.util.DataUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -29,6 +30,7 @@ import java.util.*;
|
|||
*
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class SurvAlertRecordServiceImpl extends ServiceImpl<SurvAlertRecordMapper, SurvAlertRecord> implements ISurvAlertRecordService {
|
||||
|
||||
|
||||
|
|
@ -128,6 +130,10 @@ public class SurvAlertRecordServiceImpl extends ServiceImpl<SurvAlertRecordMappe
|
|||
for (String key : zhibiaomap.keySet()) {
|
||||
//获取报文中某个指标的数据
|
||||
String baowenVal = baowenMap.get(key);
|
||||
if(StringUtils.isBlank(baowenVal)){
|
||||
log.error("**********设备:{},编号:{},监测项:{}未在报文中出现,跳过************",deviceDeploy.getDeployDes(),deviceDeploy.getDeployCode(),baowenVal);
|
||||
continue;
|
||||
}
|
||||
//获取某个指标的阈值
|
||||
JSONObject jsonObject = zhibiaomap.get(key);
|
||||
Set<String> set = jsonObject.keySet();
|
||||
|
|
|
|||
|
|
@ -2,13 +2,11 @@ package com.lanhai.service.Impl;
|
|||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.lanhai.constant.PollutionConstants;
|
||||
import com.lanhai.entity.ScEquZhibiao;
|
||||
import com.lanhai.entity.SurvDeviceDeploy;
|
||||
import com.lanhai.entity.SurvHisdataLivestockwater;
|
||||
import com.lanhai.entity.SurvTransdataLivestockwater;
|
||||
import com.lanhai.entity.*;
|
||||
import com.lanhai.mapper.SurvHisdataLivestockwaterMapper;
|
||||
import com.lanhai.service.ISurvHisdataLivestockwaterService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.lanhai.service.ISurvStationInfoService;
|
||||
import com.lanhai.util.BigDecimalRandomAdjuster;
|
||||
import com.lanhai.util.DateUtils;
|
||||
import com.lanhai.util.SpringBeanUtils;
|
||||
|
|
@ -40,6 +38,10 @@ public class SurvHisdataLivestockwaterServiceImpl extends ServiceImpl<SurvHisdat
|
|||
@Lazy
|
||||
private ScEquZhibiaoServiceImpl zhibiaoService;
|
||||
|
||||
@Autowired
|
||||
@Lazy
|
||||
private ISurvStationInfoService survStationInfoService;
|
||||
|
||||
@Override
|
||||
public SurvTransdataLivestockwater genData(SurvDeviceDeploy deploy) {
|
||||
String deployCode = deploy.getDeployCode();
|
||||
|
|
@ -155,6 +157,17 @@ public class SurvHisdataLivestockwaterServiceImpl extends ServiceImpl<SurvHisdat
|
|||
hisdataLivestockwater.setCrashStopStatus("0");
|
||||
hisdataLivestockwater.setWaterPumpStatus("0");
|
||||
hisdataLivestockwater.setMainSideStatus("0");
|
||||
|
||||
hisdataLivestockwater.setDeviceId(deploy.getId());
|
||||
hisdataLivestockwater.setDeviceName(deploy.getDeployDes());
|
||||
hisdataLivestockwater.setStationCode(deploy.getStationCode());
|
||||
if(StringUtils.isNotBlank(deploy.getStationCode())){
|
||||
SurvStationInfo info = survStationInfoService.getByCode(deploy.getStationCode());
|
||||
if(info!=null){
|
||||
hisdataLivestockwater.setStationName(info.getStationName());
|
||||
hisdataLivestockwater.setStationId(info.getId());
|
||||
}
|
||||
}
|
||||
save(hisdataLivestockwater);
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -2,14 +2,12 @@ package com.lanhai.service.Impl;
|
|||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.lanhai.constant.PollutionConstants;
|
||||
import com.lanhai.entity.ScEquZhibiao;
|
||||
import com.lanhai.entity.SurvDeviceDeploy;
|
||||
import com.lanhai.entity.SurvHisdataOrientwater;
|
||||
import com.lanhai.entity.SurvTransdataOrientwater;
|
||||
import com.lanhai.entity.*;
|
||||
import com.lanhai.mapper.SurvHisdataOrientwaterMapper;
|
||||
import com.lanhai.mapper.SurvTransdataOrientwaterMapper;
|
||||
import com.lanhai.service.ISurvHisdataOrientwaterService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.lanhai.service.ISurvStationInfoService;
|
||||
import com.lanhai.service.ISurvTransdataOrientwaterService;
|
||||
import com.lanhai.util.BigDecimalRandomAdjuster;
|
||||
import com.lanhai.util.DateUtils;
|
||||
|
|
@ -48,6 +46,10 @@ public class SurvHisdataOrientwaterServiceImpl extends ServiceImpl<SurvHisdataOr
|
|||
@Lazy
|
||||
private ScEquZhibiaoServiceImpl zhibiaoService;
|
||||
|
||||
@Autowired
|
||||
@Lazy
|
||||
private ISurvStationInfoService survStationInfoService;
|
||||
|
||||
|
||||
@Override
|
||||
public SurvTransdataOrientwater genData(SurvDeviceDeploy deploy) {
|
||||
|
|
@ -175,6 +177,18 @@ public class SurvHisdataOrientwaterServiceImpl extends ServiceImpl<SurvHisdataOr
|
|||
hisdataOrientwater.setCrashStopStatus("0");
|
||||
hisdataOrientwater.setWaterPumpStatus("0");
|
||||
hisdataOrientwater.setMainSideStatus("0");
|
||||
|
||||
hisdataOrientwater.setDeviceId(deploy.getId());
|
||||
hisdataOrientwater.setDeviceName(deploy.getDeployDes());
|
||||
hisdataOrientwater.setStationCode(deploy.getStationCode());
|
||||
if(StringUtils.isNotBlank(deploy.getStationCode())){
|
||||
SurvStationInfo info = survStationInfoService.getByCode(deploy.getStationCode());
|
||||
if(info!=null){
|
||||
hisdataOrientwater.setStationName(info.getStationName());
|
||||
hisdataOrientwater.setStationId(info.getId());
|
||||
}
|
||||
}
|
||||
|
||||
save(hisdataOrientwater);
|
||||
|
||||
BeanUtil.copyProperties(hisdataOrientwater, newestData);
|
||||
|
|
|
|||
|
|
@ -6,11 +6,13 @@ import cn.hutool.core.util.IdUtil;
|
|||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.lanhai.entity.*;
|
||||
import com.lanhai.mapper.SurvTransdataLivestockwaterMapper;
|
||||
import com.lanhai.o.iot.pbs.WaterCommonTransVo;
|
||||
import com.lanhai.service.ISurvAlertRecordService;
|
||||
import com.lanhai.service.ISurvHisdataLivestockwaterService;
|
||||
import com.lanhai.service.ISurvTransdataLivestockwaterService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.lanhai.util.DataUtil;
|
||||
import com.lanhai.util.TUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
|
|
@ -39,7 +41,8 @@ public class SurvTransdataLivestockwaterServiceImpl extends ServiceImpl<SurvTran
|
|||
private ISurvAlertRecordService alertRecordService;
|
||||
@Autowired
|
||||
private SurvHisdataLivestockwaterErrorServiceImpl hisdataLivestockwaterErrorService;
|
||||
|
||||
@Autowired
|
||||
private SurvStationInfoServiceImpl survStationInfoService;
|
||||
|
||||
@Override
|
||||
public SurvTransdataLivestockwater getOneByDeviceCode(String deviceCode) {
|
||||
|
|
@ -50,9 +53,12 @@ public class SurvTransdataLivestockwaterServiceImpl extends ServiceImpl<SurvTran
|
|||
|
||||
@Override
|
||||
@Transactional
|
||||
public void saveBaowen(String str) {
|
||||
public void saveBaowen(String str,SurvDeviceDeploy deploy) {
|
||||
try {
|
||||
SurvTransdataLivestockwater livestockwater = DataUtil.strToLivewater(str);
|
||||
// SurvTransdataLivestockwater livestockwater = DataUtil.strToLivewater(str);
|
||||
SurvTransdataLivestockwater livestockwater = new SurvTransdataLivestockwater();
|
||||
WaterCommonTransVo waterCommonTransVo = DataUtil.strToWaterTrans(str,deploy);
|
||||
BeanUtil.copyProperties(waterCommonTransVo,livestockwater);
|
||||
//保存或者更新实时表
|
||||
SurvTransdataLivestockwater transdataLivestockwater = getOneByDeviceCode(livestockwater.getDeployCode());
|
||||
if(transdataLivestockwater == null){
|
||||
|
|
@ -64,6 +70,19 @@ public class SurvTransdataLivestockwaterServiceImpl extends ServiceImpl<SurvTran
|
|||
}
|
||||
transdataLivestockwater.setCreatedBy("wb");//创建人
|
||||
transdataLivestockwater.setCreateTime(new Date());//创建时间
|
||||
|
||||
transdataLivestockwater.setDeviceId(deploy.getId());
|
||||
transdataLivestockwater.setDeviceName(deploy.getDeployDes());
|
||||
if(StringUtils.isNotBlank(deploy.getStationCode())){
|
||||
SurvStationInfo info = survStationInfoService.getByCode(deploy.getStationCode());
|
||||
if(info!=null){
|
||||
transdataLivestockwater.setStationCode(info.getStationCode());
|
||||
transdataLivestockwater.setStationName(info.getStationName());
|
||||
transdataLivestockwater.setStationId(info.getId());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//舍弃为空、负数、无意义的长串类数据
|
||||
boolean isok = true;
|
||||
if(StringUtils.isNotBlank(transdataLivestockwater.getDataWaterTp())){
|
||||
|
|
@ -80,6 +99,13 @@ public class SurvTransdataLivestockwaterServiceImpl extends ServiceImpl<SurvTran
|
|||
}else{
|
||||
isok =false;
|
||||
}
|
||||
if(StringUtils.isNotBlank(transdataLivestockwater.getDataWaterNo())){
|
||||
if(transdataLivestockwater.getDataWaterNo().contains("-") || transdataLivestockwater.getDataWaterNo().length()>10 || "0.0000".equals(transdataLivestockwater.getDataWaterNo())){
|
||||
isok =false;
|
||||
}
|
||||
}else{
|
||||
isok =false;
|
||||
}
|
||||
if(StringUtils.isNotBlank(transdataLivestockwater.getDataWaterNh())){
|
||||
if(transdataLivestockwater.getDataWaterNh().contains("-") || transdataLivestockwater.getDataWaterNh().length()>10 || "0.0000".equals(transdataLivestockwater.getDataWaterNh()) ){
|
||||
isok =false;
|
||||
|
|
@ -109,15 +135,13 @@ public class SurvTransdataLivestockwaterServiceImpl extends ServiceImpl<SurvTran
|
|||
Map<String, String> baowenMap = new HashMap<String, String>();
|
||||
baowenMap.put("mn", transdataLivestockwater.getDeployCode());
|
||||
baowenMap.put("DataTime", dataDateTimeStr);
|
||||
baowenMap.put("e1", transdataLivestockwater.getDataWaterTp());
|
||||
baowenMap.put("e2", transdataLivestockwater.getDataWaterTpSy());
|
||||
baowenMap.put("e3", transdataLivestockwater.getDataWaterTpLd());
|
||||
baowenMap.put("e4", transdataLivestockwater.getDataWaterTn());
|
||||
baowenMap.put("e5", transdataLivestockwater.getDataWaterTnSy());
|
||||
baowenMap.put("e6", transdataLivestockwater.getDataWaterTnLd());
|
||||
baowenMap.put("e7", transdataLivestockwater.getDataWaterNo());
|
||||
alertRecordService.saveBaojing(baowenMap);
|
||||
}else{
|
||||
Map<String, String> dataMap = TUtil.getAllKeyValuePairs(transdataLivestockwater);
|
||||
if(dataMap!=null && !dataMap.isEmpty()){
|
||||
baowenMap.putAll(dataMap);
|
||||
}
|
||||
alertRecordService.saveBaojingV2(baowenMap,deploy,null);
|
||||
}else{//无效数据进错误数据表
|
||||
log.error("xxxxxxxxx无效数据,转入错误数据表xxxxxxxxxx");
|
||||
SurvHisdataLivestockwaterError error = new SurvHisdataLivestockwaterError();
|
||||
BeanUtil.copyProperties(transdataLivestockwater, error);
|
||||
hisdataLivestockwaterErrorService.save(error);
|
||||
|
|
|
|||
|
|
@ -5,14 +5,14 @@ import cn.hutool.core.date.DateUtil;
|
|||
import cn.hutool.core.util.IdUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.lanhai.entity.SurvHisdataOrientwater;
|
||||
import com.lanhai.entity.SurvHisdataOrientwaterError;
|
||||
import com.lanhai.entity.SurvTransdataOrientwater;
|
||||
import com.lanhai.entity.*;
|
||||
import com.lanhai.mapper.SurvTransdataOrientwaterMapper;
|
||||
import com.lanhai.o.iot.pbs.WaterCommonTransVo;
|
||||
import com.lanhai.service.ISurvAlertRecordService;
|
||||
import com.lanhai.service.ISurvHisdataOrientwaterService;
|
||||
import com.lanhai.service.ISurvTransdataOrientwaterService;
|
||||
import com.lanhai.util.DataUtil;
|
||||
import com.lanhai.util.TUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
|
|
@ -41,6 +41,8 @@ public class SurvTransdataOrientwaterServiceImpl extends ServiceImpl<SurvTransda
|
|||
private ISurvAlertRecordService alertRecordService;
|
||||
@Autowired
|
||||
private SurvHisdataOrientwaterErrorServiceImpl hisdataOrientwaterErrorService;
|
||||
@Autowired
|
||||
private SurvStationInfoServiceImpl survStationInfoService;
|
||||
|
||||
@Override
|
||||
public SurvTransdataOrientwater getOneByDeviceCode(String deviceCode) {
|
||||
|
|
@ -51,10 +53,13 @@ public class SurvTransdataOrientwaterServiceImpl extends ServiceImpl<SurvTransda
|
|||
|
||||
@Override
|
||||
@Transactional
|
||||
public void saveBaowen(String str) {
|
||||
public void saveBaowen(String str, SurvDeviceDeploy deploy) {
|
||||
|
||||
try {
|
||||
SurvTransdataOrientwater orientwater = DataUtil.strToOrientwater(str);
|
||||
// SurvTransdataOrientwater orientwater = DataUtil.strToOrientwater(str);
|
||||
SurvTransdataOrientwater orientwater = new SurvTransdataOrientwater();
|
||||
WaterCommonTransVo waterCommonTransVo = DataUtil.strToWaterTrans(str,deploy);
|
||||
BeanUtil.copyProperties(waterCommonTransVo,orientwater);
|
||||
//保存或者更新实时表
|
||||
SurvTransdataOrientwater transdataOrientwater = getOneByDeviceCode(orientwater.getDeployCode());
|
||||
if(transdataOrientwater == null){
|
||||
|
|
@ -66,6 +71,15 @@ public class SurvTransdataOrientwaterServiceImpl extends ServiceImpl<SurvTransda
|
|||
}
|
||||
transdataOrientwater.setCreatedBy("wb");//创建人
|
||||
transdataOrientwater.setCreateTime(new Date());//创建时间
|
||||
if(StringUtils.isNotBlank(deploy.getStationCode())){
|
||||
SurvStationInfo info = survStationInfoService.getByCode(deploy.getStationCode());
|
||||
if(info!=null){
|
||||
transdataOrientwater.setStationCode(info.getStationCode());
|
||||
transdataOrientwater.setStationName(info.getStationName());
|
||||
transdataOrientwater.setStationId(info.getId());
|
||||
}
|
||||
}
|
||||
|
||||
//舍弃为空、负数、无意义的长串类数据
|
||||
boolean isok = true;
|
||||
if(StringUtils.isNotBlank(transdataOrientwater.getDataWaterTp())){
|
||||
|
|
@ -89,6 +103,22 @@ public class SurvTransdataOrientwaterServiceImpl extends ServiceImpl<SurvTransda
|
|||
}else{
|
||||
isok =false;
|
||||
}
|
||||
|
||||
if(StringUtils.isNotBlank(transdataOrientwater.getDataWaterNh())){
|
||||
if(transdataOrientwater.getDataWaterNh().contains("-") || transdataOrientwater.getDataWaterNh().length()>10 || "0.0000".equals(transdataOrientwater.getDataWaterNh()) ){
|
||||
isok =false;
|
||||
}
|
||||
}else{
|
||||
isok =false;
|
||||
}
|
||||
|
||||
if(StringUtils.isNotBlank(transdataOrientwater.getDataWaterCod())){
|
||||
if(transdataOrientwater.getDataWaterCod().contains("-") || transdataOrientwater.getDataWaterCod().length()>10 || "0.0000".equals(transdataOrientwater.getDataWaterCod()) ){
|
||||
isok =false;
|
||||
}
|
||||
}else{
|
||||
isok =false;
|
||||
}
|
||||
if(isok) {
|
||||
saveOrUpdate(transdataOrientwater);
|
||||
//保存历史表
|
||||
|
|
@ -103,15 +133,14 @@ public class SurvTransdataOrientwaterServiceImpl extends ServiceImpl<SurvTransda
|
|||
Map<String, String> baowenMap = new HashMap<String, String>();
|
||||
baowenMap.put("mn", transdataOrientwater.getDeployCode());
|
||||
baowenMap.put("DataTime", dataDateTimeStr);
|
||||
baowenMap.put("e1", transdataOrientwater.getDataWaterTp());
|
||||
baowenMap.put("e2", transdataOrientwater.getDataWaterTpSy());
|
||||
baowenMap.put("e3", transdataOrientwater.getDataWaterTpLd());
|
||||
baowenMap.put("e4", transdataOrientwater.getDataWaterTn());
|
||||
baowenMap.put("e5", transdataOrientwater.getDataWaterTnSy());
|
||||
baowenMap.put("e6", transdataOrientwater.getDataWaterTnLd());
|
||||
baowenMap.put("e7", transdataOrientwater.getDataWaterNo());
|
||||
alertRecordService.saveBaojing(baowenMap);
|
||||
}else{
|
||||
|
||||
Map<String, String> dataMap = TUtil.getAllKeyValuePairs(transdataOrientwater);
|
||||
if(dataMap!=null && !dataMap.isEmpty()){
|
||||
baowenMap.putAll(dataMap);
|
||||
}
|
||||
alertRecordService.saveBaojingV2(baowenMap,deploy,null);
|
||||
}else{//无效数据进错误数据表
|
||||
log.error("xxxxxxxxx无效数据,转入错误数据表xxxxxxxxxx");
|
||||
SurvHisdataOrientwaterError survHisdataOrientwaterError =new SurvHisdataOrientwaterError();
|
||||
BeanUtil.copyProperties(transdataOrientwater,survHisdataOrientwaterError);
|
||||
survHisdataOrientwaterError.setTransDate(new Date());
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import com.lanhai.mapper.SurvTransdataSoilMapper;
|
|||
import com.lanhai.service.*;
|
||||
import com.lanhai.util.TUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
|
@ -38,6 +39,8 @@ public class SurvTransdataSoilServiceImpl extends ServiceImpl<SurvTransdataSoilM
|
|||
private ISurvTransdataAirService transdataAirService;
|
||||
@Autowired
|
||||
private ISurvHisdataAirService hisdataAirService;
|
||||
@Autowired
|
||||
private ISurvStationInfoService survStationInfoService;
|
||||
|
||||
|
||||
@Override
|
||||
|
|
@ -103,7 +106,22 @@ public class SurvTransdataSoilServiceImpl extends ServiceImpl<SurvTransdataSoilM
|
|||
soil.setTenantId(deploy.getTenantId());
|
||||
|
||||
SurvDeviceDeploy survDeviceDeploy = deviceDeployMap.get(deploy.getDeployCode()+"_"+ DeviceDeployEnum.SURV_SOIL.getType());
|
||||
soil.setDeployId(survDeviceDeploy!=null?survDeviceDeploy.getId():null);
|
||||
|
||||
|
||||
|
||||
if(survDeviceDeploy!=null){
|
||||
soil.setDeployId(survDeviceDeploy.getId());
|
||||
soil.setStationCode(survDeviceDeploy.getStationCode());
|
||||
soil.setDeviceName(survDeviceDeploy.getDeployDes());
|
||||
if(StringUtils.isNotBlank(survDeviceDeploy.getStationCode())){
|
||||
SurvStationInfo survStationInfo = survStationInfoService.getByCode(survDeviceDeploy.getStationCode());
|
||||
if(survStationInfo!=null) {
|
||||
soil.setStationName(survStationInfo.getStationName());
|
||||
soil.setStationId(survStationInfo.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
saveOrUpdate(soil);
|
||||
//更新设备的上次更新时间
|
||||
deviceDeployService.update(new LambdaUpdateWrapper<SurvDeviceDeploy>()
|
||||
|
|
@ -166,7 +184,20 @@ public class SurvTransdataSoilServiceImpl extends ServiceImpl<SurvTransdataSoilM
|
|||
air.setTenantId(deploy.getTenantId());
|
||||
|
||||
SurvDeviceDeploy survDeviceDeploy = deviceDeployMap.get(deploy.getDeployCode()+"_"+ DeviceDeployEnum.SURV_AIR.getType());
|
||||
air.setDeployId(survDeviceDeploy!=null?survDeviceDeploy.getId():null);
|
||||
|
||||
if(survDeviceDeploy!=null){
|
||||
air.setDeployId(survDeviceDeploy.getId());
|
||||
air.setStationCode(survDeviceDeploy.getStationCode());
|
||||
air.setDeviceName(survDeviceDeploy.getDeployDes());
|
||||
if(StringUtils.isNotBlank(survDeviceDeploy.getStationCode())){
|
||||
SurvStationInfo survStationInfo = survStationInfoService.getByCode(survDeviceDeploy.getStationCode());
|
||||
if(survStationInfo!=null) {
|
||||
air.setStationName(survStationInfo.getStationName());
|
||||
air.setStationId(survStationInfo.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
transdataAirService.saveOrUpdate(air);
|
||||
//更新设备的上次更新时间
|
||||
deviceDeployService.update(new LambdaUpdateWrapper<SurvDeviceDeploy>()
|
||||
|
|
@ -241,7 +272,19 @@ public class SurvTransdataSoilServiceImpl extends ServiceImpl<SurvTransdataSoilM
|
|||
soil.setTenantId(deploy.getTenantId());
|
||||
|
||||
SurvDeviceDeploy survDeviceDeploy = deviceDeployMap.get(deploy.getDeployCode()+"_"+ DeviceDeployEnum.WATER_QULITY.getType());
|
||||
soil.setDeployId(survDeviceDeploy!=null?survDeviceDeploy.getId():null);
|
||||
if(survDeviceDeploy!=null){
|
||||
soil.setDeployId(survDeviceDeploy.getId());
|
||||
soil.setStationCode(survDeviceDeploy.getStationCode());
|
||||
soil.setDeviceName(survDeviceDeploy.getDeployDes());
|
||||
if(StringUtils.isNotBlank(survDeviceDeploy.getStationCode())){
|
||||
SurvStationInfo survStationInfo = survStationInfoService.getByCode(survDeviceDeploy.getStationCode());
|
||||
if(survStationInfo!=null) {
|
||||
soil.setStationName(survStationInfo.getStationName());
|
||||
soil.setStationId(survStationInfo.getId());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
saveOrUpdate(soil);
|
||||
|
||||
|
||||
|
|
@ -304,7 +347,21 @@ public class SurvTransdataSoilServiceImpl extends ServiceImpl<SurvTransdataSoilM
|
|||
air.setDeployCode(mn);//设备编号
|
||||
air.setTenantId(deploy.getTenantId());
|
||||
SurvDeviceDeploy survDeviceDeploy = deviceDeployMap.get(deploy.getDeployCode()+"_"+ DeviceDeployEnum.SURV_AIR.getType());
|
||||
air.setDeployId(survDeviceDeploy!=null?survDeviceDeploy.getId():null);
|
||||
|
||||
if(survDeviceDeploy!=null){
|
||||
air.setDeployId(survDeviceDeploy.getId());
|
||||
air.setStationCode(survDeviceDeploy.getStationCode());
|
||||
air.setDeviceName(survDeviceDeploy.getDeployDes());
|
||||
if(StringUtils.isNotBlank(survDeviceDeploy.getStationCode())){
|
||||
SurvStationInfo survStationInfo = survStationInfoService.getByCode(survDeviceDeploy.getStationCode());
|
||||
if(survStationInfo!=null) {
|
||||
air.setStationName(survStationInfo.getStationName());
|
||||
air.setStationId(survStationInfo.getId());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
transdataAirService.saveOrUpdate(air);
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.lanhai.thread;
|
||||
|
||||
import com.lanhai.constant.CommonConstant;
|
||||
import com.lanhai.constant.PollutionConstants;
|
||||
import com.lanhai.entity.SurvDeviceDeploy;
|
||||
import com.lanhai.service.ISurvDeviceDeployService;
|
||||
import com.lanhai.service.ISurvTransdataLivestockwaterService;
|
||||
|
|
@ -51,33 +52,28 @@ public class ClentThread implements Runnable {
|
|||
byte[] in2b = baos.toByteArray();
|
||||
String s = DataUtil.bytesToHexString(in2b);
|
||||
s = s.replaceAll(" ","");
|
||||
log.error("报文:"+s);
|
||||
|
||||
String substring = s.substring(2, 4);
|
||||
List<String> list = new ArrayList<>();
|
||||
list.add("01");
|
||||
list.add("02");
|
||||
list.add("03");
|
||||
list.add("04");
|
||||
String code = CommonConstant.XZP_WATER+substring;
|
||||
log.error("===================收到tcp设备消息:{}===============",code);
|
||||
log.error("xxxxxxxxxxx{}原始报文:{}xxxxxxxxxxxxxxxxxx",code,s);
|
||||
SurvDeviceDeploy deviceDeploy = deviceDeployService.getOneByCode(code);
|
||||
|
||||
if(list.contains(substring)){
|
||||
if(deviceDeploy != null && (!hostAddress.equals(deviceDeploy.getIpAddr()) || !port.equals(deviceDeploy.getPort()))){
|
||||
if(PollutionConstants.WATER_ORIENT.equals(deviceDeploy.getDeployType())){
|
||||
transdataOrientwaterService.saveBaowen(s,deviceDeploy);
|
||||
} else if (PollutionConstants.WATER_LIVE.equals(deviceDeploy.getDeployType())) {
|
||||
transdataLivestockwaterService.saveBaowen(s,deviceDeploy);
|
||||
}
|
||||
|
||||
if("01".equals(substring) || "02".equals(substring)){
|
||||
transdataOrientwaterService.saveBaowen(s);
|
||||
}else if("03".equals(substring) || "04".equals(substring)){
|
||||
transdataLivestockwaterService.saveBaowen(s);
|
||||
}
|
||||
String code = CommonConstant.XZP_WATER+s.substring(2,4);
|
||||
log.error("code111:"+code);
|
||||
SurvDeviceDeploy deviceDeploy = deviceDeployService.getOneByCode(code);
|
||||
if(deviceDeploy != null && (!hostAddress.equals(deviceDeploy.getIpAddr()) || !port.equals(deviceDeploy.getPort()))){
|
||||
deviceDeploy.setIpAddr(hostAddress);
|
||||
deviceDeploy.setPort(port);
|
||||
deviceDeployService.updateById(deviceDeploy);
|
||||
log.error("更新了111:"+deviceDeploy.getId()+","+deviceDeploy.getIpAddr()+",prot:"+deviceDeploy.getPort());
|
||||
}
|
||||
//更新设备信息
|
||||
deviceDeploy.setIpAddr(hostAddress);
|
||||
deviceDeploy.setPort(port);
|
||||
deviceDeployService.updateById(deviceDeploy);
|
||||
log.error("============更新了设备信息:"+deviceDeploy.getId()+","+deviceDeploy.getIpAddr()+",prot:"+deviceDeploy.getPort());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,16 @@
|
|||
package com.lanhai.util;
|
||||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.lanhai.constant.CommonConstant;
|
||||
import com.lanhai.entity.SurvDeviceDeploy;
|
||||
import com.lanhai.entity.SurvTransdataLivestockwater;
|
||||
import com.lanhai.entity.SurvTransdataOrientwater;
|
||||
import com.lanhai.o.iot.pbs.ResolvConfig;
|
||||
import com.lanhai.o.iot.pbs.ResolveConfigDetail;
|
||||
import com.lanhai.o.iot.pbs.WaterCommonTransVo;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
|
|
@ -269,7 +274,36 @@ public class DataUtil{
|
|||
|
||||
}
|
||||
|
||||
public static WaterCommonTransVo strToWaterTrans(String str, SurvDeviceDeploy deploy) {
|
||||
WaterCommonTransVo waterCommonTransVo = new WaterCommonTransVo();
|
||||
|
||||
if(StringUtils.isNotBlank(str) && deploy!=null && deploy.getDeviceConfig() !=null){
|
||||
|
||||
waterCommonTransVo.setDataDateTime(new Date());
|
||||
waterCommonTransVo.setDataGatherType("realTime");
|
||||
waterCommonTransVo.setDeployCode(deploy.getDeployCode());
|
||||
|
||||
//根据配置进行解析
|
||||
ResolvConfig resolvConfig = JSONUtil.toBean(deploy.getDeviceConfig(), ResolvConfig.class);
|
||||
if(resolvConfig.getResolvConfig()!=null && !resolvConfig.getResolvConfig().isEmpty()){
|
||||
for (ResolveConfigDetail resolveConfigDetail : resolvConfig.getResolvConfig()) {
|
||||
try{
|
||||
String[] configs = resolveConfigDetail.getRange().split("-");
|
||||
int leftside = Integer.parseInt(configs[0]);
|
||||
int rightSide = Integer.parseInt(configs[1]);
|
||||
String vals = getVal(str.substring(leftside,rightSide));
|
||||
TUtil.setFieldValue(waterCommonTransVo,resolveConfigDetail.getField(),vals);
|
||||
}catch (Exception e){
|
||||
log.error("=========普备思设备解析错误跳过=={}=======",JSONUtil.toJsonStr(resolveConfigDetail));
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
log.error("<=========普备思设备解析完成=={}=======>",JSONUtil.toJsonStr(waterCommonTransVo));
|
||||
return waterCommonTransVo;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@ package com.lanhai.util;
|
|||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @createTime 2023年07月26日 20:54:00
|
||||
|
|
@ -148,4 +150,32 @@ public class TUtil {
|
|||
return fieldNames;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过反射获取实体所有字段的键值对
|
||||
* @param entity 实体对象
|
||||
* @return 包含所有字段名和值的Map
|
||||
*/
|
||||
public static Map<String, String> getAllKeyValuePairs(Object entity) {
|
||||
Map<String, String> result = new HashMap<>();
|
||||
|
||||
if (entity == null) {
|
||||
return result;
|
||||
}
|
||||
|
||||
Class<?> clazz = entity.getClass();
|
||||
Field[] fields = clazz.getDeclaredFields();
|
||||
|
||||
for (Field field : fields) {
|
||||
try {
|
||||
field.setAccessible(true); // 设置可访问私有字段
|
||||
Object value = field.get(entity);
|
||||
result.put(field.getName(), String.valueOf(value));
|
||||
} catch (IllegalAccessException e) {
|
||||
System.err.println("无法访问字段: " + field.getName());
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue