|
@@ -14,6 +14,7 @@ import com.huimv.eartag2.eartag.service.IEartagService;
|
|
|
import javafx.beans.binding.BooleanBinding;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.data.domain.Example;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -76,6 +77,14 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
private EartagResetEntityRepo eartagResetEntityRepo;
|
|
|
@Autowired
|
|
|
private EartagResetCountEntityRepo eartagResetCountEntityRepo;
|
|
|
+ @Autowired
|
|
|
+ private EartagAbnormalAlarmEntityRepo eartagAbnormalAlarmEntityRepo;
|
|
|
+ @Autowired
|
|
|
+ private EartagAbnormalCountEntityRepo eartagAbnormalCountEntityRepo;
|
|
|
+ @Value("${alarm.maxTemp}")
|
|
|
+ private String defaultMaxTemp;
|
|
|
+ @Value("${alarm.minTemp}")
|
|
|
+ private String defaultMinTemp;
|
|
|
|
|
|
@Override
|
|
|
public void handleEartag(JSONObject dataJo) throws ParseException {
|
|
@@ -93,9 +102,10 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
//--设备和耳标总状态表
|
|
|
//获取牧场id
|
|
|
String farmId = deviceService.getFarmIdByDeviceCode(deviceCode);
|
|
|
+ System.out.println("# farmId="+farmId);
|
|
|
if (farmId != null) {
|
|
|
//{计算小时运动量}
|
|
|
- countHourAct(dataJo,nowTimestamp, todayDate, farmId);
|
|
|
+ countHourAct(dataJo, nowTimestamp, todayDate, farmId);
|
|
|
|
|
|
//{保存耳标流水(所有耳标数据,可能重复上传)}
|
|
|
saveEartagFlow(dataJo, nowTimestamp, todayDate, farmId);
|
|
@@ -124,6 +134,9 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
//{更新耳标设备在线关联统计}
|
|
|
updateEartagDeviceOnlineCount(earmark, deviceCode, todayDateText, todayDate, nowTimestamp, farmId);
|
|
|
|
|
|
+ //{异常统计和异常报警}
|
|
|
+ abnormalCountAndAlarm(dataJo, todayDate, nowTimestamp, farmId);
|
|
|
+
|
|
|
//判断该设备编号是否存在牧场缓存在线集合当中;
|
|
|
if (!cacheService.isExistEartagOnlineSet(farmId, earmark, todayDateText)) {
|
|
|
//更新总状态数据
|
|
@@ -137,6 +150,271 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // 异常统计和报警
|
|
|
+ private void abnormalCountAndAlarm(JSONObject dataJo, java.sql.Date todayDate, Timestamp nowTimestamp, String farmCode) {
|
|
|
+ //处理异常耳标温度警报和统计;
|
|
|
+ handleEartempAlarmAndCount(dataJo, todayDate, nowTimestamp, farmCode);
|
|
|
+ //处理异常环境温度警报和统计;
|
|
|
+// handleEnvtempAlarmAndCount(dataJo, todayDate, nowTimestamp, farmCode);
|
|
|
+ }
|
|
|
+
|
|
|
+ //处理异常环境温度警报和统计;
|
|
|
+ private void handleEnvtempAlarmAndCount(JSONObject dataJo, java.sql.Date todayDate, Timestamp nowTimestamp, String farmCode) {
|
|
|
+ String earmark = dataJo.getString("earmark");
|
|
|
+ // 获取异常耳标阈值最大值或最小值
|
|
|
+ Map maxAndMinMap = getMaxAndMinEnvtemp(farmCode);
|
|
|
+ BigDecimal configMaxTempBd = new BigDecimal(maxAndMinMap.get("envMaxTem").toString());
|
|
|
+ BigDecimal configMinTempBd = new BigDecimal(maxAndMinMap.get("envMinTem").toString());
|
|
|
+ BigDecimal envTemp1Bd = new BigDecimal(dataJo.getString("envTemp1"));
|
|
|
+ if (envTemp1Bd.compareTo(configMaxTempBd) >= 0) {
|
|
|
+ // 保存耳标高温报警
|
|
|
+ EartagAbnormalAlarmEntity eartagAbnormalAlarmEntity = new EartagAbnormalAlarmEntity();
|
|
|
+ eartagAbnormalAlarmEntity.setFarmCode(farmCode);
|
|
|
+ eartagAbnormalAlarmEntity.setContent("高温警报:耳标号[" + earmark + "]的环境温度为" + envTemp1Bd.toString() + "°,高于高温阈值" + configMaxTempBd.toString() + "°");
|
|
|
+ eartagAbnormalAlarmEntity.setAlarmType(2);
|
|
|
+ eartagAbnormalAlarmEntity.setAlarmFrom(2);
|
|
|
+ eartagAbnormalAlarmEntity.setAddTime(nowTimestamp);
|
|
|
+ eartagAbnormalAlarmEntity.setAddDate(todayDate);
|
|
|
+ eartagAbnormalAlarmEntityRepo.saveAndFlush(eartagAbnormalAlarmEntity);
|
|
|
+ // 高温次数记录
|
|
|
+ saveEartagTempDataCount(todayDate, nowTimestamp, farmCode);
|
|
|
+ } else if (configMinTempBd.compareTo(envTemp1Bd) >= 0) {
|
|
|
+ // 保存耳标高温报警
|
|
|
+ EartagAbnormalAlarmEntity eartagAbnormalAlarmEntity = new EartagAbnormalAlarmEntity();
|
|
|
+ eartagAbnormalAlarmEntity.setFarmCode(farmCode);
|
|
|
+ eartagAbnormalAlarmEntity.setContent("低温警报:耳标号[" + earmark + "]的环境温度为" + envTemp1Bd.toString() + "°,低于低温阈值" + configMinTempBd.toString() + "°");
|
|
|
+ eartagAbnormalAlarmEntity.setAlarmType(2);
|
|
|
+ eartagAbnormalAlarmEntity.setAlarmFrom(2);
|
|
|
+ eartagAbnormalAlarmEntity.setAddTime(nowTimestamp);
|
|
|
+ eartagAbnormalAlarmEntity.setAddDate(todayDate);
|
|
|
+ eartagAbnormalAlarmEntityRepo.saveAndFlush(eartagAbnormalAlarmEntity);
|
|
|
+ //低温次数记录
|
|
|
+ saveEartagTempDataCount(todayDate, nowTimestamp, farmCode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //获取最大值
|
|
|
+ private Map getMaxAndMinEnvtemp(String farmCode) {
|
|
|
+ Map configMap = new HashMap();
|
|
|
+ String hashKey = BizConst.HASH_EARTEMP_TH_PREFIX + farmCode;
|
|
|
+ //获取耳标温度阈值:最大值
|
|
|
+ String maxTemp = (String) cacheService.getHashProperty(hashKey, "envMaxTem");
|
|
|
+ System.out.println("redis.maxTemp=" + maxTemp);
|
|
|
+ if (maxTemp != null) {
|
|
|
+ configMap.put("envMaxTem", maxTemp);
|
|
|
+ } else {
|
|
|
+ // 从属性配置表取值
|
|
|
+ String maxTem = getConfigValue(farmCode,"envMaxTem");
|
|
|
+ System.out.println("配置属性 maxTem="+maxTem);
|
|
|
+ if (maxTem == null) {
|
|
|
+ maxTem = defaultMaxTemp;
|
|
|
+ System.out.println("配置属性 defaultMaxTemp="+defaultMaxTemp);
|
|
|
+ }
|
|
|
+ configMap.put("envMaxTem", maxTem);
|
|
|
+ cacheService.putHashKeyProperty(hashKey, "envMaxTem", maxTem);
|
|
|
+ }
|
|
|
+ //获取耳标温度阈值:最小值
|
|
|
+ String minTemp = (String) cacheService.getHashProperty(hashKey, "envMinTem");
|
|
|
+ System.out.println("redis.minTem=" + minTemp);
|
|
|
+ if (minTemp != null) {
|
|
|
+ configMap.put("envMinTem", minTemp);
|
|
|
+ } else {
|
|
|
+ // 从属性配置表取值
|
|
|
+ String minTem = getConfigValue(farmCode,"envMinTem");
|
|
|
+ System.out.println("配置属性 minTem="+minTem);
|
|
|
+ if (minTem == null) {
|
|
|
+ minTem = defaultMinTemp;
|
|
|
+ System.out.println("配置属性 defaultMinTemp="+defaultMinTemp);
|
|
|
+ }
|
|
|
+ configMap.put("envMinTem", minTem);
|
|
|
+ cacheService.putHashKeyProperty(hashKey, "envMinTem", minTem);
|
|
|
+ }
|
|
|
+ return configMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ //处理异常耳标温度警报和统计;
|
|
|
+ private void handleEartempAlarmAndCount(JSONObject dataJo, java.sql.Date todayDate, Timestamp nowTimestamp, String farmCode) {
|
|
|
+ String earmark = dataJo.getString("earmark");
|
|
|
+ // {获取异常耳标阈值最大值或最小值}
|
|
|
+// Map maxAndMinMap = getMaxAndMinEartemp(farmCode);
|
|
|
+ Map maxAndMinMap = getMaxAndMin2(farmCode,"eartagMaxTem","eartagMinTem");
|
|
|
+ BigDecimal configMaxTempBd = new BigDecimal(maxAndMinMap.get("eartagMaxTem").toString());
|
|
|
+ BigDecimal configMinTempBd = new BigDecimal(maxAndMinMap.get("eartagMinTem").toString());
|
|
|
+ BigDecimal earTemp1Bd = new BigDecimal(dataJo.getString("earTemp1"));
|
|
|
+ if (earTemp1Bd.compareTo(configMaxTempBd) >= 0) {
|
|
|
+ // 保存耳标高温报警
|
|
|
+ EartagAbnormalAlarmEntity eartagAbnormalAlarmEntity = new EartagAbnormalAlarmEntity();
|
|
|
+ eartagAbnormalAlarmEntity.setFarmCode(farmCode);
|
|
|
+ eartagAbnormalAlarmEntity.setContent("高温警报:耳标号[" + earmark + "]的动物当前耳根温度为" + earTemp1Bd.toString() + "°,高于高温阈值" + configMaxTempBd.toString() + "°");
|
|
|
+ eartagAbnormalAlarmEntity.setAlarmType(2);
|
|
|
+ eartagAbnormalAlarmEntity.setAlarmFrom(2);
|
|
|
+ eartagAbnormalAlarmEntity.setAddTime(nowTimestamp);
|
|
|
+ eartagAbnormalAlarmEntity.setAddDate(todayDate);
|
|
|
+ eartagAbnormalAlarmEntityRepo.saveAndFlush(eartagAbnormalAlarmEntity);
|
|
|
+ // 高温次数记录
|
|
|
+ saveEartagTempDataCount(todayDate, nowTimestamp, farmCode);
|
|
|
+ } else if (configMinTempBd.compareTo(earTemp1Bd) >= 0) {
|
|
|
+ // 保存耳标高温报警
|
|
|
+ EartagAbnormalAlarmEntity eartagAbnormalAlarmEntity = new EartagAbnormalAlarmEntity();
|
|
|
+ eartagAbnormalAlarmEntity.setFarmCode(farmCode);
|
|
|
+ eartagAbnormalAlarmEntity.setContent("低温警报:耳标号[" + earmark + "]的动物当前耳根温度为" + earTemp1Bd.toString() + "°,低于低温阈值" + configMinTempBd.toString() + "°");
|
|
|
+ eartagAbnormalAlarmEntity.setAlarmType(2);
|
|
|
+ eartagAbnormalAlarmEntity.setAlarmFrom(2);
|
|
|
+ eartagAbnormalAlarmEntity.setAddTime(nowTimestamp);
|
|
|
+ eartagAbnormalAlarmEntity.setAddDate(todayDate);
|
|
|
+ eartagAbnormalAlarmEntityRepo.saveAndFlush(eartagAbnormalAlarmEntity);
|
|
|
+ //低温次数记录
|
|
|
+ saveEartagTempDataCount(todayDate, nowTimestamp, farmCode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 保存异常耳标温度计数
|
|
|
+ public void saveEartagTempDataCount(java.sql.Date todayDate, Timestamp nowTimestamp, String farmCode) {
|
|
|
+ EartagAbnormalCountEntity eartagAbnormalCountEntity = new EartagAbnormalCountEntity();
|
|
|
+ eartagAbnormalCountEntity.setFarmCode(farmCode);
|
|
|
+ eartagAbnormalCountEntity.setAddDate(todayDate);
|
|
|
+ Example<EartagAbnormalCountEntity> example = Example.of(eartagAbnormalCountEntity);
|
|
|
+ Optional<EartagAbnormalCountEntity> optional = eartagAbnormalCountEntityRepo.findOne(example);
|
|
|
+ if (!optional.isPresent()) {
|
|
|
+ eartagAbnormalCountEntity.setEartagDataCount(1);
|
|
|
+ eartagAbnormalCountEntity.setEartagDataUpateTime(nowTimestamp);
|
|
|
+ eartagAbnormalCountEntityRepo.saveAndFlush(eartagAbnormalCountEntity);
|
|
|
+ } else {
|
|
|
+ EartagAbnormalCountEntity existEartagAbnormalCountEntity = optional.get();
|
|
|
+ existEartagAbnormalCountEntity.setEartagDataCount(existEartagAbnormalCountEntity.getEartagDataCount() + 1);
|
|
|
+ existEartagAbnormalCountEntity.setEartagDataUpateTime(nowTimestamp);
|
|
|
+ eartagAbnormalCountEntityRepo.saveAndFlush(existEartagAbnormalCountEntity);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private Map getMaxAndMinEartemp(String farmCode) {
|
|
|
+ Map configMap = new HashMap();
|
|
|
+ String hashKey = BizConst.HASH_EARTEMP_TH_PREFIX + farmCode;
|
|
|
+ //获取耳标温度阈值:最大值
|
|
|
+ String maxTemp = (String) cacheService.getHashProperty(hashKey, "eartagMaxTem");
|
|
|
+ System.out.println("redis.eartagMaxTem=" + maxTemp);
|
|
|
+ if (maxTemp != null) {
|
|
|
+ configMap.put("eartagMaxTem", maxTemp);
|
|
|
+ } else {
|
|
|
+ // 从属性配置表取值
|
|
|
+ String eartagMaxTem = getConfigValue(farmCode,"eartagMaxTem");
|
|
|
+ System.out.println("配置属性 eartagMaxTem="+eartagMaxTem);
|
|
|
+ if (eartagMaxTem == null) {
|
|
|
+ eartagMaxTem = defaultMaxTemp;
|
|
|
+ System.out.println("默认属性 defaultMaxTemp="+defaultMaxTemp);
|
|
|
+ }
|
|
|
+ configMap.put("eartagMaxTem", eartagMaxTem);
|
|
|
+ cacheService.putHashKeyProperty(hashKey, "eartagMaxTem", eartagMaxTem);
|
|
|
+ }
|
|
|
+ //获取耳标温度阈值:最小值
|
|
|
+ String minTemp = (String) cacheService.getHashProperty(hashKey, "eartagMinTem");
|
|
|
+ System.out.println("redis.eartagMinTem=" + minTemp);
|
|
|
+ if (minTemp != null) {
|
|
|
+ configMap.put("eartagMinTem", minTemp);
|
|
|
+ } else {
|
|
|
+ // 从属性配置表取值
|
|
|
+ String eartagMinTem = getConfigValue(farmCode,"eartagMinTem");
|
|
|
+ System.out.println("配置属性 eartagMinTem="+eartagMinTem);
|
|
|
+ if (eartagMinTem == null) {
|
|
|
+ eartagMinTem = defaultMinTemp;
|
|
|
+ System.out.println("默认属性 defaultMinTemp="+defaultMinTemp);
|
|
|
+ }
|
|
|
+ configMap.put("eartagMinTem", eartagMinTem);
|
|
|
+ cacheService.putHashKeyProperty(hashKey, "eartagMinTem", eartagMinTem);
|
|
|
+ }
|
|
|
+ return configMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取耳根最大最小数值
|
|
|
+ private Map getMaxAndMin(String farmCode,String maxKeyName,String minKeyName) {
|
|
|
+ Map configMap = new HashMap();
|
|
|
+ String hashKey = BizConst.HASH_EARTEMP_TH_PREFIX + farmCode;
|
|
|
+ //获取耳标温度阈值:最大值
|
|
|
+ String maxTemp = (String) cacheService.getHashProperty(hashKey, maxKeyName);
|
|
|
+ System.out.println("redis.eartagMaxTem=" + maxTemp);
|
|
|
+ if (maxTemp != null) {
|
|
|
+ configMap.put(maxKeyName, maxTemp);
|
|
|
+ } else {
|
|
|
+ // 从属性配置表取值
|
|
|
+ String confMaxTem = getConfigValue(farmCode,maxKeyName);
|
|
|
+ System.out.println("配置属性 confMaxTem="+confMaxTem);
|
|
|
+ if (confMaxTem == null) {
|
|
|
+ confMaxTem = defaultMaxTemp;
|
|
|
+ System.out.println("默认属性 defaultMaxTemp="+defaultMaxTemp);
|
|
|
+ }
|
|
|
+ configMap.put(maxKeyName, confMaxTem);
|
|
|
+ cacheService.putHashKeyProperty(hashKey, maxKeyName, confMaxTem);
|
|
|
+ }
|
|
|
+ //获取耳标温度阈值:最小值
|
|
|
+ String minTemp = (String) cacheService.getHashProperty(hashKey, minKeyName);
|
|
|
+ System.out.println("redis.eartagMinTem=" + minTemp);
|
|
|
+ if (minTemp != null) {
|
|
|
+ configMap.put(minKeyName, minTemp);
|
|
|
+ } else {
|
|
|
+ // 从属性配置表取值
|
|
|
+ String configMinTem = getConfigValue(farmCode,minKeyName);
|
|
|
+ System.out.println("配置属性 configMinTem="+configMinTem);
|
|
|
+ if (configMinTem == null) {
|
|
|
+ configMinTem = defaultMinTemp;
|
|
|
+ System.out.println("默认属性 defaultMinTemp="+defaultMinTemp);
|
|
|
+ }
|
|
|
+ configMap.put(minKeyName, configMinTem);
|
|
|
+ cacheService.putHashKeyProperty(hashKey, minKeyName, configMinTem);
|
|
|
+ }
|
|
|
+ return configMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ //
|
|
|
+ private Map getMaxAndMin2(String farmCode,String maxKeyName,String minKeyName) {
|
|
|
+ Map configMap = new HashMap();
|
|
|
+ String hashKey = BizConst.HASH_EARTEMP_TH_PREFIX + farmCode;
|
|
|
+ //获取耳标温度阈值:最大值
|
|
|
+// String maxTemp = (String) cacheService.getHashProperty(hashKey, maxKeyName);
|
|
|
+// System.out.println("redis.eartagMaxTem=" + maxTemp);
|
|
|
+// if (maxTemp != null) {
|
|
|
+// configMap.put(maxKeyName, maxTemp);
|
|
|
+// } else {
|
|
|
+ // 从属性配置表取值
|
|
|
+ String confMaxTem = getConfigValue(farmCode,maxKeyName);
|
|
|
+ System.out.println("配置属性 confMaxTem="+confMaxTem);
|
|
|
+ if (confMaxTem == null) {
|
|
|
+ confMaxTem = defaultMaxTemp;
|
|
|
+ System.out.println("默认属性 defaultMaxTemp="+defaultMaxTemp);
|
|
|
+ }
|
|
|
+ configMap.put(maxKeyName, confMaxTem);
|
|
|
+// cacheService.putHashKeyProperty(hashKey, maxKeyName, confMaxTem);
|
|
|
+// }
|
|
|
+
|
|
|
+ //获取耳标温度阈值:最小值
|
|
|
+// String minTemp = (String) cacheService.getHashProperty(hashKey, minKeyName);
|
|
|
+// System.out.println("redis.eartagMinTem=" + minTemp);
|
|
|
+// if (minTemp != null) {
|
|
|
+// configMap.put(minKeyName, minTemp);
|
|
|
+// } else {
|
|
|
+ // 从属性配置表取值
|
|
|
+ String configMinTem = getConfigValue(farmCode,minKeyName);
|
|
|
+ System.out.println("配置属性 configMinTem="+configMinTem);
|
|
|
+ if (configMinTem == null) {
|
|
|
+ configMinTem = defaultMinTemp;
|
|
|
+ System.out.println("默认属性 defaultMinTemp="+defaultMinTemp);
|
|
|
+ }
|
|
|
+ configMap.put(minKeyName, configMinTem);
|
|
|
+// cacheService.putHashKeyProperty(hashKey, minKeyName, configMinTem);
|
|
|
+// }
|
|
|
+ return configMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 从属性配置表取值
|
|
|
+ public String getConfigValue(String farmCode,String configKey) {
|
|
|
+ //从数据库读取温度阈值属性
|
|
|
+ List<SysBaseConfigEntity> configList = sysBaseConfigEntityRepo.getConfigValue(configKey, farmCode);
|
|
|
+ if (configList.size() > 0) {
|
|
|
+ SysBaseConfigEntity sysBaseConfigEntity = configList.get(0);
|
|
|
+ return sysBaseConfigEntity.getConfigValue();
|
|
|
+ } else {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// 计算小时运动量
|
|
|
private void countHourAct(JSONObject eartagJo, Timestamp nowTimestamp, java.sql.Date todayDate, String farmId) {
|
|
|
DateUtil du = new DateUtil();
|
|
@@ -151,38 +429,38 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
}
|
|
|
String earmark = eartagJo.getString("earmark");
|
|
|
Long act = Long.parseLong(eartagJo.getString("act"));
|
|
|
- System.out.println("本次运动量="+act);
|
|
|
+ System.out.println("本次运动量=" + act);
|
|
|
//
|
|
|
- Optional<EartagData2Entity> optionEartagData = eartagData2Repo.getLastByEarmark(earmark,farmId);
|
|
|
- if(!optionEartagData.isPresent()){
|
|
|
- log.info("该耳标号无相关数据.["+earmark+"]");
|
|
|
+ Optional<EartagData2Entity> optionEartagData = eartagData2Repo.getLastByEarmark(earmark, farmId);
|
|
|
+ if (!optionEartagData.isPresent()) {
|
|
|
+ log.info("该耳标号无相关数据.[" + earmark + "]");
|
|
|
}
|
|
|
EartagData2Entity eartagData2Entity = optionEartagData.get();
|
|
|
int lastId = eartagData2Entity.getId();
|
|
|
Long lastAct = eartagData2Entity.getAct();
|
|
|
- System.out.println("上次运动量="+lastAct);
|
|
|
+ System.out.println("上次运动量=" + lastAct);
|
|
|
Timestamp lastAddTime = eartagData2Entity.getAddTime();
|
|
|
long timeDiff = nowTimestamp.getTime() - lastAddTime.getTime();
|
|
|
- if(timeDiff/(1000*60*60) < eartagOffLineTime){
|
|
|
+ if (timeDiff / (1000 * 60 * 60) < eartagOffLineTime) {
|
|
|
long act1 = 0;
|
|
|
boolean resetStatus = false;
|
|
|
- if(act < lastAct){
|
|
|
+ if (act < lastAct) {
|
|
|
act1 = act;
|
|
|
resetStatus = true;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
act1 = act - lastAct;
|
|
|
}
|
|
|
- System.out.println("本次运动量增量="+act1);
|
|
|
+ System.out.println("本次运动量增量=" + act1);
|
|
|
//{保存耳标小时运动量}
|
|
|
- saveEartagHourAct(farmId,earmark,act1,nowHour,todayDate);
|
|
|
+ saveEartagHourAct(farmId, earmark, act1, nowHour, todayDate);
|
|
|
//{保存耳标复位记录}
|
|
|
- saveEartagReset(resetStatus,farmId,earmark,nowTimestamp,todayDate,lastId,lastAct,act);
|
|
|
+ saveEartagReset(resetStatus, farmId, earmark, nowTimestamp, todayDate, lastId, lastAct, act);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//{保存耳标复位记录}
|
|
|
- private void saveEartagReset(boolean resetStatus, String farmId, String earmark, Timestamp nowTimestamp, java.sql.Date todayDate, int lastId,Long lastAct,Long act) {
|
|
|
- if(resetStatus){
|
|
|
+ private void saveEartagReset(boolean resetStatus, String farmId, String earmark, Timestamp nowTimestamp, java.sql.Date todayDate, int lastId, Long lastAct, Long act) {
|
|
|
+ if (resetStatus) {
|
|
|
// 保存复位记录
|
|
|
EartagResetEntity eartagResetEntity = new EartagResetEntity();
|
|
|
eartagResetEntity.setEarmark(earmark);
|
|
@@ -194,19 +472,19 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
eartagResetEntity.setAct(act);
|
|
|
eartagResetEntityRepo.save(eartagResetEntity);
|
|
|
|
|
|
- // 泊村复位统计次数
|
|
|
+ // 复位统计次数
|
|
|
EartagResetCountEntity eartagResetCountEntity = new EartagResetCountEntity();
|
|
|
eartagResetCountEntity.setEarmark(earmark);
|
|
|
eartagResetCountEntity.setFarmCode(farmId);
|
|
|
eartagResetCountEntity.setAddDate(todayDate);
|
|
|
Example<EartagResetCountEntity> example = Example.of(eartagResetCountEntity);
|
|
|
Optional<EartagResetCountEntity> optionEartagResetCountEntity = eartagResetCountEntityRepo.findOne(example);
|
|
|
- if(!optionEartagResetCountEntity.isPresent()){
|
|
|
+ if (!optionEartagResetCountEntity.isPresent()) {
|
|
|
eartagResetCountEntity.setTimes(1);
|
|
|
eartagResetCountEntityRepo.save(eartagResetCountEntity);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
EartagResetCountEntity existEartagResetCountEntity = optionEartagResetCountEntity.get();
|
|
|
- existEartagResetCountEntity.setTimes(existEartagResetCountEntity.getTimes()+1);
|
|
|
+ existEartagResetCountEntity.setTimes(existEartagResetCountEntity.getTimes() + 1);
|
|
|
eartagResetCountEntityRepo.save(existEartagResetCountEntity);
|
|
|
}
|
|
|
}
|
|
@@ -214,8 +492,8 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
|
|
|
// {保存耳标小时运动量}
|
|
|
private void saveEartagHourAct(String farmId, String earmark, long act1, int nowHour, java.sql.Date todayDate) {
|
|
|
- Optional<EartagHourActEntity> optionalHourAct = eartagHourActEntityRepo.findByFarmIdAndEarmarkAndHourAndDate(farmId,earmark,nowHour,todayDate);
|
|
|
- if(!optionalHourAct.isPresent()){
|
|
|
+ Optional<EartagHourActEntity> optionalHourAct = eartagHourActEntityRepo.findByFarmIdAndEarmarkAndHourAndDate(farmId, earmark, nowHour, todayDate);
|
|
|
+ if (!optionalHourAct.isPresent()) {
|
|
|
EartagHourActEntity newEartagHourActEntity = new EartagHourActEntity();
|
|
|
newEartagHourActEntity.setFarmCode(farmId);
|
|
|
newEartagHourActEntity.setEarmark(earmark);
|
|
@@ -223,9 +501,9 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
newEartagHourActEntity.setHour(nowHour);
|
|
|
newEartagHourActEntity.setAct(act1);
|
|
|
eartagHourActEntityRepo.save(newEartagHourActEntity);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
EartagHourActEntity eartagHourActEntity = optionalHourAct.get();
|
|
|
- eartagHourActEntity.setAct(eartagHourActEntity.getAct()+act1);
|
|
|
+ eartagHourActEntity.setAct(eartagHourActEntity.getAct() + act1);
|
|
|
eartagHourActEntityRepo.save(eartagHourActEntity);
|
|
|
}
|
|
|
}
|
|
@@ -1046,18 +1324,18 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
long act1 = 0;
|
|
|
if (Boolean.parseBoolean(countMap.get("fisrtStatus").toString())) {
|
|
|
act = Integer.parseInt(eartagJo.getString("act"));
|
|
|
- System.out.println("1 act="+act);
|
|
|
+ System.out.println("1 act=" + act);
|
|
|
} else {
|
|
|
act = Integer.parseInt(eartagJo.getString("act"));
|
|
|
- System.out.println("2 act="+act);
|
|
|
+ System.out.println("2 act=" + act);
|
|
|
long lastAct = Long.parseLong(countMap.get("act").toString());
|
|
|
- System.out.println("3 lastAct="+lastAct);
|
|
|
+ System.out.println("3 lastAct=" + lastAct);
|
|
|
if (act > lastAct) {
|
|
|
act1 = act - lastAct;
|
|
|
}
|
|
|
- System.out.println("3 act1="+act1);
|
|
|
+ System.out.println("3 act1=" + act1);
|
|
|
}
|
|
|
- System.out.println("4 act1="+act1);
|
|
|
+ System.out.println("4 act1=" + act1);
|
|
|
DateUtil dateUtil = new DateUtil();
|
|
|
EartagData2Entity dataEntity = new EartagData2Entity();
|
|
|
dataEntity.setCmdHeader(eartagJo.getString("cmdHeader"));
|