Browse Source

增加农户采集器耳标数据入库。

zhuoning 2 years ago
parent
commit
90f7a18804

+ 71 - 0
huimv-eartag2-platform/huimv-eartag2-eartag/src/main/java/com/huimv/eartag2/eartag/service/impl/EartagServiceImpl.java

@@ -128,6 +128,9 @@ public class EartagServiceImpl implements IEartagService {
             //{更新耳标注册信息}
             updateEartagRegister2(earmark, deviceCode, bat, nowTimestamp, todayDate, farmId, dataJo);
 
+            //--农户耳标注册
+            updateEartagRegisterForFarmer(earmark, deviceCode, bat, nowTimestamp, todayDate, farmId, dataJo);
+
             //{更新设备在线统计}
             updateDeviceOnline(earmark, deviceCode, todayDateText, nowTimestamp, todayDate, dataJo, farmId);
 
@@ -156,6 +159,74 @@ public class EartagServiceImpl implements IEartagService {
         }
     }
 
+    //--农户耳标注册
+    private void updateEartagRegisterForFarmer(String earmark, String deviceCode, String bat, Timestamp nowTimestamp, java.sql.Date todayDate, String farmId, JSONObject eartagJo) {
+        System.out.println(" ============================ 更新耳标编码 ============================ ");
+        //# 判断耳标注册表是否存在;
+        //      如果不存在就注册耳标;
+        //      如果存在就更新活动状态(active_status)和活动状态更新时间(active_time)
+        Integer registerType = 1;
+        Integer activeStatus = 1;
+        Integer liveStatus = 1;        //
+        EartagEartagRegister2Entity eartagRegisterEntity = eartagEartagRegister2EntityRepo.getOneByEarmark2(earmark);
+        if (eartagRegisterEntity == null) {
+            //{新建耳标注册信息}
+            //--For农户
+            newEartagRegisterForFarmer(earmark, nowTimestamp, deviceCode, registerType, activeStatus, liveStatus, bat, todayDate, farmId, eartagJo);
+        } else {
+            eartagRegisterEntity.setLastTime(nowTimestamp);
+            eartagRegisterEntity.setLastDevice(deviceCode);
+            eartagRegisterEntity.setActiveStatus(activeStatus);
+            eartagRegisterEntity.setActiveTime(nowTimestamp);
+            eartagRegisterEntity.setBat(Integer.parseInt(bat));
+            eartagRegisterEntity.setEarTemp1(eartagJo.getFloat("earTemp1"));
+            eartagRegisterEntity.setEnvTemp1(eartagJo.getFloat("envTemp1"));
+//            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"));
+            eartagRegisterEntity.setFarmId(farmId);
+            eartagRegisterEntity.setLiveStatus(1);
+            eartagEartagRegister2EntityRepo.saveAndFlush(eartagRegisterEntity);
+            //更新耳标注册消息缓存
+            cacheService.putEartagRegister(earmark, eartagRegisterEntity);
+        }
+    }
+
+    //--农户
+    private void newEartagRegisterForFarmer(String earmark, Timestamp nowTimestamp, String deviceCode, Integer registerType, Integer activeStatus, Integer liveStatus, String bat, java.sql.Date todayDate, String farmId, JSONObject eartagJo) {
+        //#创建耳标注册记录#
+        EartagEartagRegister2Entity newEartagRegisterEntity = new EartagEartagRegister2Entity();
+        newEartagRegisterEntity.setEarmark(earmark);
+        newEartagRegisterEntity.setFirstTime(nowTimestamp);
+        newEartagRegisterEntity.setLastTime(nowTimestamp);
+        newEartagRegisterEntity.setFirstDevice(deviceCode);
+        newEartagRegisterEntity.setBelongDevice(deviceCode);
+        newEartagRegisterEntity.setLastDevice(deviceCode);
+        newEartagRegisterEntity.setRegisterTime(nowTimestamp);
+        newEartagRegisterEntity.setRegisterType(registerType);
+        newEartagRegisterEntity.setFarmId(farmId);
+
+        newEartagRegisterEntity.setActiveStatus(activeStatus);
+        newEartagRegisterEntity.setActiveTime(nowTimestamp);
+        newEartagRegisterEntity.setLiveStatus(liveStatus);
+        newEartagRegisterEntity.setCreateDate(todayDate);
+        newEartagRegisterEntity.setBat(Integer.parseInt(bat));
+
+        newEartagRegisterEntity.setEarTemp1(eartagJo.getFloat("earTemp1"));
+        newEartagRegisterEntity.setEnvTemp1(eartagJo.getFloat("envTemp1"));
+        newEartagRegisterEntity.setAct(Long.parseLong(eartagJo.getString("act1")));
+        newEartagRegisterEntity.setSignal1(Integer.parseInt(eartagJo.getString("signal")));
+        newEartagRegisterEntity.setAskTime(getAskTime(eartagJo.getString("askTime")));
+        newEartagRegisterEntity.setOther(eartagJo.getString("other"));
+
+        eartagEartagRegister2EntityRepo.saveAndFlush(newEartagRegisterEntity);
+        //{更新耳标注册消息缓存}
+        cacheService.putEartagRegister(earmark, newEartagRegisterEntity);
+        //{更新耳标数量}
+        cacheService.putEartagTotal(getEartagSum(farmId, liveStatus), farmId);
+    }
+
     // 异常统计和报警
     private void abnormalCountAndAlarm(JSONObject dataJo, java.sql.Date todayDate, Timestamp nowTimestamp, String farmCode) {
         //处理异常-耳标温度警报和统计;

+ 2 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/ICacheService.java

@@ -2,4 +2,6 @@ package com.huimv.eartag2.manage2.service;
 
 public interface ICacheService {
     void setDeviceCodeByChipId(String chipId, String deviceCode);
+
+    void delDeviceCodeByChipId(String chipId);
 }

+ 9 - 1
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/impl/CacheServiceImpl.java

@@ -4,6 +4,7 @@ import com.huimv.eartag2.common.utils.BizConst;
 import com.huimv.eartag2.manage2.service.ICacheService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Service;
 
 /**
  * @Project : huimv.shiwan
@@ -13,13 +14,20 @@ import org.springframework.data.redis.core.RedisTemplate;
  * @Author : ZhuoNing
  * @Create : 2020-12-25
  **/
+@Service
 public class CacheServiceImpl implements ICacheService {
     @Autowired
     private RedisTemplate redisTemplate;
 
     @Override
-    public void setDeviceCodeByChipId(String chipId,String deviceCode) {
+    public void setDeviceCodeByChipId(String chipId, String deviceCode) {
         String  hashKey = BizConst.CHIP_DEVICE_PREFIX;
         redisTemplate.opsForHash().put(hashKey,chipId,deviceCode);
     }
+
+    @Override
+    public void delDeviceCodeByChipId(String chipId) {
+        String  hashKey = BizConst.CHIP_DEVICE_PREFIX;
+        redisTemplate.opsForHash().delete(hashKey,chipId);
+    }
 }

+ 10 - 3
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/impl/EartagDeviceRegisterServiceImpl.java

@@ -93,8 +93,13 @@ public class EartagDeviceRegisterServiceImpl extends ServiceImpl<EartagDeviceReg
 
     @Override
     public Result remove(String ids) {
-        List<Integer> convert = idUtil.convert(ids);
-        return resultUtil.result(eartagDeviceRegisterMapper.deleteBatchIds(convert));
+        List<Integer> convertList = idUtil.convert(ids);
+        //{删除芯片id缓存}
+        for(int a=0;a<convertList.size();a++){
+            cacheService.delDeviceCodeByChipId(convertList.get(a).toString());
+            System.out.println("1 清除芯片和设备编码缓存,chipId="+convertList.get(a).toString());
+        }
+        return resultUtil.result(eartagDeviceRegisterMapper.deleteBatchIds(convertList));
     }
 
     @Override
@@ -213,8 +218,9 @@ public class EartagDeviceRegisterServiceImpl extends ServiceImpl<EartagDeviceReg
             eartagDeviceRegister.setFarmId(farmId);
             eartagDeviceRegister.setDeviceType(Integer.parseInt(deviceType));
             eartagDeviceRegisterMapper.insert(eartagDeviceRegister);
-            //{设置芯片ID和设备编码}
+            //{设置芯片ID和设备编码缓存}
             cacheService.setDeviceCodeByChipId(chipId,deviceCode);
+            System.out.println("1 设置芯片和设备编码缓存,chipId="+chipId+",deviceCode="+deviceCode);
         }else {
             //配标器
             String farmId = mapList.get("farmId");
@@ -230,6 +236,7 @@ public class EartagDeviceRegisterServiceImpl extends ServiceImpl<EartagDeviceReg
             eartagDeviceRegisterMapper.insert(eartagDeviceRegister);
             //{设置芯片ID和设备编码}
             cacheService.setDeviceCodeByChipId(chipId,deviceCode);
+            System.out.println("2 设置芯片和设备编码缓存,chipId="+chipId+",deviceCode="+deviceCode);
         }
         return resultUtil.result(1);
     }