|
@@ -13,6 +13,7 @@ import com.huimv.eartag2.eartag.service.IEartagService;
|
|
|
//import com.huimv.eartag2.manage2.service.IEartagData2Service;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.data.domain.Example;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
@@ -66,6 +67,8 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
private SysBaseConfigEntityRepo sysBaseConfigEntityRepo;
|
|
|
@Autowired
|
|
|
private EartagEartagRegister2EntityRepo eartagEartagRegister2EntityRepo;
|
|
|
+ @Autowired
|
|
|
+ private EartagOnlineStatusEntityRepo eartagOnlineStatusEntityRepo;
|
|
|
|
|
|
@Override
|
|
|
public void handleEartag(JSONObject dataJo) throws ParseException {
|
|
@@ -105,6 +108,9 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
//{更新耳标在线统计}
|
|
|
updateEartagOnline(earmark, deviceCode, todayDateText, todayDate, nowTimestamp, dataJo, farmId);
|
|
|
|
|
|
+ //{更新耳标连线状态}
|
|
|
+ updateEartagLiveStatus(earmark, deviceCode, todayDateText, todayDate, nowTimestamp, dataJo, farmId);
|
|
|
+
|
|
|
//{更新耳标设备在线关联统计}
|
|
|
updateEartagDeviceOnlineCount(earmark, deviceCode, todayDateText, todayDate, nowTimestamp, farmId);
|
|
|
|
|
@@ -121,6 +127,55 @@ 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 ;
|
|
|
+ }
|
|
|
+ Integer unitId = eartagEartagRegister2Entity.getUnitId();
|
|
|
+ Optional<EartagOnlineStatusEntity> optionEartagStatus = eartagOnlineStatusEntityRepo.findLastOne(farmId,unitId);
|
|
|
+ if (!optionEartagStatus.isPresent()) {
|
|
|
+ System.out.println("该记录不存在");
|
|
|
+ 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){
|
|
|
+ //新耳标(在线,离线都不包含该耳标)
|
|
|
+ log.info("耳标连线状态统计:增加新耳标["+earmark+"]");
|
|
|
+ String onlineEarmark = eartagOnlineStatusEntity.getOnlineEarmark();
|
|
|
+ if(onlineEarmark.trim().length()>0){
|
|
|
+ onlineEarmark += ",";
|
|
|
+ }
|
|
|
+ onlineEarmark += earmark;
|
|
|
+ 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+"]");
|
|
|
+ //上一次处于离线状态
|
|
|
+ eartagOnlineStatusEntity.setOnline(eartagOnlineStatusEntity.getOnline()+1);
|
|
|
+ eartagOnlineStatusEntity.setOffline(eartagOnlineStatusEntity.getOffline()-1);
|
|
|
+ String onlineEarmark = eartagOnlineStatusEntity.getOnlineEarmark();
|
|
|
+ if(onlineEarmark.trim().length()>0){
|
|
|
+ onlineEarmark+=",";
|
|
|
+ }
|
|
|
+ onlineEarmark += earmark;
|
|
|
+ eartagOnlineStatusEntity.setOnlineEarmark(onlineEarmark);
|
|
|
+ String offlineEarmark = eartagOnlineStatusEntity.getOfflineEarmark();
|
|
|
+ offlineEarmark = offlineEarmark.replace(offlineEarmark,"");
|
|
|
+ eartagOnlineStatusEntity.setOfflineEarmark(offlineEarmark);
|
|
|
+ eartagOnlineStatusEntityRepo.saveAndFlush(eartagOnlineStatusEntity);
|
|
|
+ }else{
|
|
|
+ log.info("耳标连线状态统计:该耳标["+earmark+"]已经在线");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* @Method : countTimesByInTime
|
|
@@ -658,7 +713,10 @@ 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());
|
|
|
if (eartagRegisterEntity == null) {
|
|
|
//{新建耳标注册信息}
|
|
|
newEartagRegister2(earmark, nowTimestamp, deviceCode, registerType, activeStatus, liveStatus, bat, todayDate, farmId, eartagJo, stageCode, stageName, pigpenId, pigpenName, unitId, unitName, deviceRegisterEntity);
|
|
@@ -676,7 +734,7 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
eartagRegisterEntity.setStageName(stageName);
|
|
|
eartagRegisterEntity.setEarTemp1(eartagJo.getFloat("earTemp1"));
|
|
|
eartagRegisterEntity.setEnvTemp1(eartagJo.getFloat("envTemp1"));
|
|
|
- eartagRegisterEntity.setAct(Integer.parseInt(eartagJo.getString("act1")));
|
|
|
+// eartagRegisterEntity.setAct(Integer.parseInt(eartagJo.getString("act1")));
|
|
|
eartagRegisterEntity.setSignal1(Integer.parseInt(eartagJo.getString("signal")));
|
|
|
eartagRegisterEntity.setAskTime(getAskTime(eartagJo.getString("askTime")));
|
|
|
eartagRegisterEntity.setOther(eartagJo.getString("other"));
|
|
@@ -749,7 +807,7 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
newEartagRegisterEntity.setAskTime(getAskTime(eartagJo.getString("askTime")));
|
|
|
newEartagRegisterEntity.setOther(eartagJo.getString("other"));
|
|
|
|
|
|
- System.out.println("newEartagRegisterEntity>>" + newEartagRegisterEntity.toString());
|
|
|
+ System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>> newEartagRegisterEntity>>" + newEartagRegisterEntity.toString());
|
|
|
|
|
|
eartagEartagRegister2EntityRepo.saveAndFlush(newEartagRegisterEntity);
|
|
|
//{更新耳标注册消息缓存}
|
|
@@ -875,8 +933,8 @@ 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);
|
|
|
- //
|
|
|
+// System.out.println("earmark ====================================="+earmark);
|
|
|
+ // {}
|
|
|
Map countMap = countTimesByInTime(earmark, nowTimestamp);
|
|
|
Boolean countTimes = Boolean.parseBoolean(countMap.get("countTimes").toString());
|
|
|
//true:设定过滤时间内无耳标数据上传入库;false:有数据入库;
|
|
@@ -888,8 +946,8 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
if(act > 0){
|
|
|
act1 = act - lastAct;
|
|
|
}
|
|
|
- System.out.println("act ====================="+act);
|
|
|
- System.out.println("lastAct ====================="+lastAct);
|
|
|
+// System.out.println("act ====================="+act);
|
|
|
+// System.out.println("lastAct ====================="+lastAct);
|
|
|
DateUtil dateUtil = new DateUtil();
|
|
|
EartagData2Entity dataEntity = new EartagData2Entity();
|
|
|
dataEntity.setCmdHeader(eartagJo.getString("cmdHeader"));
|