|
@@ -11,6 +11,7 @@ import com.huimv.eartag2.eartag.service.IEartagService;
|
|
|
//import com.huimv.eartag2.manage2.mapper.EartagData2Mapper;
|
|
|
//import com.huimv.eartag2.manage2.pojo.EartagData2;
|
|
|
//import com.huimv.eartag2.manage2.service.IEartagData2Service;
|
|
|
+import javafx.beans.binding.BooleanBinding;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.domain.Example;
|
|
@@ -130,71 +131,71 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
// 更新耳标连线状态
|
|
|
private void updateEartagLiveStatus(String earmark, String deviceCode, String todayDateText, java.sql.Date todayDate, Timestamp nowTimestamp, JSONObject dataJo, String farmId) {
|
|
|
// 通过耳标注册表查找耳标所属单元
|
|
|
- EartagEartagRegister2Entity eartagEartagRegister2Entity = eartagEartagRegister2EntityRepo.getOneByEarmark(earmark,farmId);
|
|
|
- if(eartagEartagRegister2Entity == null){
|
|
|
- log.info("该耳标不存在(earmark="+earmark+",farmId="+farmId+")");
|
|
|
- return ;
|
|
|
+ EartagEartagRegister2Entity eartagEartagRegister2Entity = eartagEartagRegister2EntityRepo.getOneByEarmark(earmark, farmId);
|
|
|
+ if (eartagEartagRegister2Entity == null) {
|
|
|
+ log.info("该耳标不存在(earmark=" + earmark + ",farmId=" + farmId + ")");
|
|
|
+ return;
|
|
|
}
|
|
|
Integer unitId = eartagEartagRegister2Entity.getUnitId();
|
|
|
- Optional<EartagOnlineStatusEntity> optionEartagStatus = eartagOnlineStatusEntityRepo.findLastOne(farmId,unitId);
|
|
|
+ Optional<EartagOnlineStatusEntity> optionEartagStatus = eartagOnlineStatusEntityRepo.findLastOne(farmId, unitId);
|
|
|
if (!optionEartagStatus.isPresent()) {
|
|
|
System.out.println("该记录不存在");
|
|
|
- return ;
|
|
|
+ return;
|
|
|
}
|
|
|
EartagOnlineStatusEntity eartagOnlineStatusEntity = optionEartagStatus.get();
|
|
|
- System.out.println("onlineEarmark="+eartagOnlineStatusEntity.getOnlineEarmark());
|
|
|
- System.out.println("offlineEarmark="+eartagOnlineStatusEntity.getOfflineEarmark());
|
|
|
- if(eartagOnlineStatusEntity.getOnlineEarmark().indexOf(earmark) == -1 && eartagOnlineStatusEntity.getOfflineEarmark().indexOf(earmark) == -1){
|
|
|
+ System.out.println("onlineEarmark=" + eartagOnlineStatusEntity.getOnlineEarmark());
|
|
|
+ System.out.println("offlineEarmark=" + eartagOnlineStatusEntity.getOfflineEarmark());
|
|
|
+ if (eartagOnlineStatusEntity.getOnlineEarmark().indexOf(earmark) == -1 && eartagOnlineStatusEntity.getOfflineEarmark().indexOf(earmark) == -1) {
|
|
|
//新耳标(在线,离线都不包含该耳标)
|
|
|
- log.info("耳标连线状态统计:增加新耳标["+earmark+"]");
|
|
|
+ log.info("耳标连线状态统计:增加新耳标[" + earmark + "]");
|
|
|
String onlineEarmark = eartagOnlineStatusEntity.getOnlineEarmark();
|
|
|
- if(onlineEarmark.trim().length()>0){
|
|
|
+ if (onlineEarmark.trim().length() > 0) {
|
|
|
onlineEarmark += ",";
|
|
|
}
|
|
|
onlineEarmark += earmark;
|
|
|
- eartagOnlineStatusEntity.setTotal(eartagOnlineStatusEntity.getTotal()+1);
|
|
|
- eartagOnlineStatusEntity.setOnline(eartagOnlineStatusEntity.getOnline()+1);
|
|
|
+ eartagOnlineStatusEntity.setTotal(eartagOnlineStatusEntity.getTotal() + 1);
|
|
|
+ eartagOnlineStatusEntity.setOnline(eartagOnlineStatusEntity.getOnline() + 1);
|
|
|
eartagOnlineStatusEntity.setOnlineEarmark(onlineEarmark);
|
|
|
eartagOnlineStatusEntityRepo.saveAndFlush(eartagOnlineStatusEntity);
|
|
|
- }else if(eartagOnlineStatusEntity.getOfflineEarmark().indexOf(earmark) != -1){
|
|
|
- log.info("耳标连线状态统计:耳标离线--在线["+earmark+"]");
|
|
|
+ } else if (eartagOnlineStatusEntity.getOfflineEarmark().indexOf(earmark) != -1) {
|
|
|
+ log.info("耳标连线状态统计:耳标离线--在线[" + earmark + "]");
|
|
|
//上一次处于离线状态
|
|
|
- eartagOnlineStatusEntity.setOnline(eartagOnlineStatusEntity.getOnline()+1);
|
|
|
- eartagOnlineStatusEntity.setOffline(eartagOnlineStatusEntity.getOffline()-1);
|
|
|
+ eartagOnlineStatusEntity.setOnline(eartagOnlineStatusEntity.getOnline() + 1);
|
|
|
+ eartagOnlineStatusEntity.setOffline(eartagOnlineStatusEntity.getOffline() - 1);
|
|
|
String onlineEarmark = eartagOnlineStatusEntity.getOnlineEarmark();
|
|
|
- if(onlineEarmark.trim().length()>0){
|
|
|
- onlineEarmark+=",";
|
|
|
+ if (onlineEarmark.trim().length() > 0) {
|
|
|
+ onlineEarmark += ",";
|
|
|
}
|
|
|
onlineEarmark += earmark;
|
|
|
eartagOnlineStatusEntity.setOnlineEarmark(onlineEarmark);
|
|
|
String offlineEarmark = eartagOnlineStatusEntity.getOfflineEarmark();
|
|
|
- offlineEarmark = offlineEarmark.replace(offlineEarmark,"");
|
|
|
+ offlineEarmark = offlineEarmark.replace(offlineEarmark, "");
|
|
|
eartagOnlineStatusEntity.setOfflineEarmark(offlineEarmark);
|
|
|
eartagOnlineStatusEntityRepo.saveAndFlush(eartagOnlineStatusEntity);
|
|
|
- }else{
|
|
|
- log.info("耳标连线状态统计:该耳标["+earmark+"]已经在线");
|
|
|
+ } else {
|
|
|
+ log.info("耳标连线状态统计:该耳标[" + earmark + "]已经在线");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
- * @Method : countTimesByInTime
|
|
|
+ * @Method : countTimesByInTime
|
|
|
* @Description :
|
|
|
- * @Params : [earmark, nowTimestamp]
|
|
|
- * @Return : java.lang.Boolean
|
|
|
- *
|
|
|
- * @Author : ZhuoNing
|
|
|
- * @Date : 2022/8/5
|
|
|
- * @Time : 14:16
|
|
|
+ * @Params : [earmark, nowTimestamp]
|
|
|
+ * @Return : java.lang.Boolean
|
|
|
+ * @Author : ZhuoNing
|
|
|
+ * @Date : 2022/8/5
|
|
|
+ * @Time : 14:16
|
|
|
*/
|
|
|
public Map countTimesByInTime(String earmark, Timestamp nowTimestamp, String farmId) {
|
|
|
Map countMap = new HashMap();
|
|
|
//
|
|
|
- Optional<EartagData2Entity> optionEartagData = eartagData2Repo.getLastByEarmark(earmark,farmId);
|
|
|
+ Optional<EartagData2Entity> optionEartagData = eartagData2Repo.getLastByEarmark(earmark, farmId);
|
|
|
if (!optionEartagData.isPresent()) {
|
|
|
- log.info("该耳标号无数据["+earmark+"].");
|
|
|
- countMap.put("countTimes",true);
|
|
|
- countMap.put("act",0);
|
|
|
+ log.info("该耳标号无数据[" + earmark + "].");
|
|
|
+ countMap.put("countTimes", true);
|
|
|
+ countMap.put("act", 0);
|
|
|
+ countMap.put("fisrtStatus", true);
|
|
|
return countMap;
|
|
|
} else {
|
|
|
EartagData2Entity eartagData2Entity = optionEartagData.get();
|
|
@@ -205,18 +206,19 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
Optional<SysBaseConfigEntity> optionConfig = sysBaseConfigEntityRepo.getConfigValue("timeDifference");
|
|
|
if (optionConfig.isPresent()) {
|
|
|
setTimeDiff = Integer.parseInt(optionConfig.get().getConfigValue());
|
|
|
- log.info("耳标数据过滤时间差="+setTimeDiff);
|
|
|
- }else{
|
|
|
+ log.info("耳标数据过滤时间差=" + setTimeDiff);
|
|
|
+ } else {
|
|
|
log.error("耳标数据过滤时间差属性未配置.");
|
|
|
}
|
|
|
+ countMap.put("fisrtStatus", false);
|
|
|
if (timeDifference / 1000 < setTimeDiff) {
|
|
|
// 同一耳标数据距上一次上传数据时间<5秒,视为被其他基站上传。
|
|
|
- countMap.put("countTimes",false);
|
|
|
+ countMap.put("countTimes", false);
|
|
|
return countMap;
|
|
|
} else {
|
|
|
// 同一耳标数据距上一次上传数据时间>5
|
|
|
- countMap.put("countTimes",true);
|
|
|
- countMap.put("act",act);
|
|
|
+ countMap.put("countTimes", true);
|
|
|
+ countMap.put("act", act);
|
|
|
return countMap;
|
|
|
}
|
|
|
}
|
|
@@ -677,14 +679,22 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
* @Time : 9:39
|
|
|
*/
|
|
|
public void updateEartagRegister2(String earmark, String deviceCode, String bat, Timestamp nowTimestamp, java.sql.Date todayDate, String farmId, JSONObject eartagJo) {
|
|
|
+ System.out.println(" ============================ 更新耳标编码 ============================ ");
|
|
|
+ if (deviceCode.trim().equalsIgnoreCase("330112002000002")) {
|
|
|
+ System.out.println("deviceCode=" + deviceCode + ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
|
|
|
+ }
|
|
|
EartagDeviceRegisterEntity deviceRegisterEntity = deviceRegisterRepo.getByDeviceCode(deviceCode);
|
|
|
Integer unitId = deviceRegisterEntity.getUnitId();
|
|
|
Integer pigpenId = deviceRegisterEntity.getPigpenId();
|
|
|
+ System.out.println("unitId>>" + unitId);
|
|
|
+ System.out.println("pigpenId>>" + pigpenId);
|
|
|
List<BasePigpenEntity> basePigpenEntityList = basePigpenRepo.getPigpenByPigpenIdAndUnitId(pigpenId, unitId);
|
|
|
+ System.out.println("basePigpenEntityList.size>>" + basePigpenEntityList.size());
|
|
|
if (basePigpenEntityList.size() == 0) {
|
|
|
log.error("栋舍不存在[" + pigpenId + "," + unitId + "].");
|
|
|
return;
|
|
|
}
|
|
|
+
|
|
|
//-- 获取栋舍名称--//
|
|
|
String pigpenName = "";
|
|
|
String unitName = "";
|
|
@@ -699,12 +709,17 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
stageCode = basePigpenEntity.getStageCode();
|
|
|
}
|
|
|
}
|
|
|
+ System.out.println("pigpenName>>" + pigpenName);
|
|
|
+ System.out.println("unitName>>" + unitName);
|
|
|
+ System.out.println("stageCode>>" + stageCode);
|
|
|
//-- 获取阶段名称 --//
|
|
|
Optional<BizBaseStageEntity> optionalBizBaseStageEntity = bizBaseStageRepo.getStageByStageCode(stageCode);
|
|
|
+ System.out.println("optionalBizBaseStageEntity.isPresent()>>" + optionalBizBaseStageEntity.isPresent());
|
|
|
if (!optionalBizBaseStageEntity.isPresent()) {
|
|
|
log.error("该阶段不存在[" + stageCode + "].");
|
|
|
return;
|
|
|
}
|
|
|
+ System.out.println("更新耳标数据...");
|
|
|
BizBaseStageEntity bizBaseStageEntity = optionalBizBaseStageEntity.get();
|
|
|
String stageName = bizBaseStageEntity.getStageName();
|
|
|
//# 判断耳标注册表是否存在;
|
|
@@ -713,14 +728,18 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
Integer registerType = 1;
|
|
|
Integer activeStatus = 1;
|
|
|
Integer liveStatus = 1; //
|
|
|
- System.out.println("earmark="+earmark);
|
|
|
- System.out.println("farmId="+farmId);
|
|
|
- EartagEartagRegister2Entity eartagRegisterEntity = eartagEartagRegister2EntityRepo.getOneByEarmark(earmark, farmId);
|
|
|
- System.out.println("判断是否有耳标注册信息 eartagRegisterEntity="+eartagRegisterEntity.toString());
|
|
|
+ System.out.println("deviceCode=" + deviceCode);
|
|
|
+ System.out.println("earmark=" + earmark);
|
|
|
+ System.out.println("farmId=" + farmId);
|
|
|
+// EartagEartagRegister2Entity eartagRegisterEntity = eartagEartagRegister2EntityRepo.getOneByEarmark(earmark, farmId);
|
|
|
+ EartagEartagRegister2Entity eartagRegisterEntity = eartagEartagRegister2EntityRepo.getOneByEarmark2(earmark);
|
|
|
+ System.out.println("判断是否有耳标注册信息 eartagRegisterEntity=" + eartagRegisterEntity.toString());
|
|
|
if (eartagRegisterEntity == null) {
|
|
|
+ System.out.println("新建耳标数据...");
|
|
|
//{新建耳标注册信息}
|
|
|
newEartagRegister2(earmark, nowTimestamp, deviceCode, registerType, activeStatus, liveStatus, bat, todayDate, farmId, eartagJo, stageCode, stageName, pigpenId, pigpenName, unitId, unitName, deviceRegisterEntity);
|
|
|
} else {
|
|
|
+ System.out.println("更新耳标数据...");
|
|
|
eartagRegisterEntity.setLastTime(nowTimestamp);
|
|
|
eartagRegisterEntity.setLastDevice(deviceCode);
|
|
|
eartagRegisterEntity.setActiveStatus(activeStatus);
|
|
@@ -738,6 +757,8 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
eartagRegisterEntity.setSignal1(Integer.parseInt(eartagJo.getString("signal")));
|
|
|
eartagRegisterEntity.setAskTime(getAskTime(eartagJo.getString("askTime")));
|
|
|
eartagRegisterEntity.setOther(eartagJo.getString("other"));
|
|
|
+ eartagRegisterEntity.setFarmId(farmId);
|
|
|
+ eartagRegisterEntity.setLiveStatus(1);
|
|
|
|
|
|
eartagEartagRegister2EntityRepo.saveAndFlush(eartagRegisterEntity);
|
|
|
//更新耳标注册消息缓存
|
|
@@ -933,21 +954,27 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
public void saveEartagFlow2(JSONObject eartagJo, Timestamp nowTimestamp, java.sql.Date todayDate, String farmId) throws ParseException {
|
|
|
// 判断近五分钟内是否有耳标数据 先获取耳标号
|
|
|
String earmark = eartagJo.getString("earmark");
|
|
|
-// System.out.println("earmark ====================================="+earmark);
|
|
|
// {}
|
|
|
- Map countMap = countTimesByInTime(earmark, nowTimestamp,farmId);
|
|
|
+ Map countMap = countTimesByInTime(earmark, nowTimestamp, farmId);
|
|
|
Boolean countTimes = Boolean.parseBoolean(countMap.get("countTimes").toString());
|
|
|
//true:设定过滤时间内无耳标数据上传入库;false:有数据入库;
|
|
|
- if(countTimes){
|
|
|
+ if (countTimes) {
|
|
|
+ Integer act = 0;
|
|
|
Integer act1 = 0;
|
|
|
- Integer act = Integer.parseInt(eartagJo.getString("act"));
|
|
|
- Integer lastAct = Integer.parseInt(countMap.get("act").toString());
|
|
|
- // 耳标重启之后运动量可能为0
|
|
|
- if(act > 0){
|
|
|
- act1 = act - lastAct;
|
|
|
+ if (Boolean.parseBoolean(countMap.get("fisrtStatus").toString())) {
|
|
|
+ act = Integer.parseInt(eartagJo.getString("act"));
|
|
|
+ System.out.println("1 act="+act);
|
|
|
+ } else {
|
|
|
+ act = Integer.parseInt(eartagJo.getString("act"));
|
|
|
+ System.out.println("2 act="+act);
|
|
|
+ Integer lastAct = Integer.parseInt(countMap.get("act").toString());
|
|
|
+ System.out.println("3 lastAct="+lastAct);
|
|
|
+ if (act > lastAct) {
|
|
|
+ act1 = act - lastAct;
|
|
|
+ }
|
|
|
+ System.out.println("3 act1="+act1);
|
|
|
}
|
|
|
-// System.out.println("act ====================="+act);
|
|
|
-// System.out.println("lastAct ====================="+lastAct);
|
|
|
+ System.out.println("4 act1="+act1);
|
|
|
DateUtil dateUtil = new DateUtil();
|
|
|
EartagData2Entity dataEntity = new EartagData2Entity();
|
|
|
dataEntity.setCmdHeader(eartagJo.getString("cmdHeader"));
|
|
@@ -968,10 +995,11 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
dataEntity.setFarmId(farmId);
|
|
|
dataEntity.setAskDate(new java.sql.Date(dateUtil.parseDate(getAskDate(eartagJo.getString("askTime"))).getTime()));
|
|
|
eartagData2EntityRepo.saveAndFlush(dataEntity);
|
|
|
+
|
|
|
//更新耳标注册表中的运动量数据
|
|
|
EartagEartagRegister2Entity eartagRegister2Entity = eartagEartagRegister2EntityRepo.getOneByEarmark(earmark, farmId);
|
|
|
- if(eartagRegister2Entity != null){
|
|
|
- System.out.println("更新耳标="+earmark+","+act1);
|
|
|
+ if (eartagRegister2Entity != null) {
|
|
|
+ System.out.println("更新耳标=" + earmark + "," + act1);
|
|
|
eartagRegister2Entity.setAct(act1);
|
|
|
eartagEartagRegister2EntityRepo.saveAndFlush(eartagRegister2Entity);
|
|
|
}
|