523096025 2 роки тому
батько
коміт
c5dfbba8a8

+ 12 - 2
huimv-eartag2-platform/huimv-eartag2-device/src/main/java/com/huimv/eartag2/device/service/impl/EartagServiceImpl.java

@@ -96,8 +96,18 @@ public class EartagServiceImpl implements IEartagService {
             }
         }
         Object lastAct = redisTemplate.opsForHash().get(deviceCode, "act");
-        Integer act1 = Integer.parseInt(nowAct) - Integer.parseInt(lastAct.toString());
-//        redisTemplate.opsForHash().put(deviceCode, "act1", act1);
+        int lastAct1 = Integer.parseInt(lastAct.toString());
+        int nowAct1 = Integer.parseInt(nowAct);
+
+
+        Integer act1 ;
+        if (nowAct1 >= lastAct1){
+            act1 = nowAct1 - lastAct1;
+        }else {
+            act1 = nowAct1;
+        }
+
+        redisTemplate.opsForHash().put(deviceCode, "act1", act1);
         return act1;
     }
 

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

@@ -1271,7 +1271,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(Long.parseLong(eartagJo.getString("act1")));
             eartagRegisterEntity.setSignal1(Integer.parseInt(eartagJo.getString("signal")));
             eartagRegisterEntity.setAskTime(getAskTime(eartagJo.getString("askTime")));
             eartagRegisterEntity.setOther(eartagJo.getString("other"));

+ 6 - 1
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/controller/EartagData2Controller.java

@@ -1,6 +1,7 @@
 package com.huimv.eartag2.manage2.controller;
 
 
+import com.huimv.eartag2.common.common.token.TokenSign;
 import com.huimv.eartag2.common.utils.Result;
 import com.huimv.eartag2.manage2.service.IEartagData2Service;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -10,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.Map;
 
 /**
@@ -27,7 +29,10 @@ public class EartagData2Controller {
     private IEartagData2Service eartagDataService;
 
     @PostMapping("/getEnvByTime")
-    public Result getEnvByTime(@RequestBody Map<String,String> map){
+    public Result getEnvByTime(@RequestBody Map<String,String> map, HttpServletRequest request){
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        map.put("userId",userId+"");
+
         return eartagDataService.getEnvByTime(map);
     }
 }

+ 5 - 1
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/controller/EartagRegisterController.java

@@ -1,5 +1,6 @@
 package com.huimv.eartag2.manage2.controller;
 
+import com.huimv.eartag2.common.common.token.TokenSign;
 import com.huimv.eartag2.common.utils.Result;
 import com.huimv.eartag2.manage2.service.IEartagEartagRegister2Service;
 import com.huimv.eartag2.manage2.service.IEartagEartagRegisterService;
@@ -9,6 +10,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.Map;
 
 /**
@@ -30,7 +32,9 @@ public class EartagRegisterController {
         return eartagRegisterService.listFarmUnitEartagData(params);
     }*/
     @RequestMapping("/listFarmUnitEartagData")
-    public Result listFarmUnitEartagData(@RequestBody Map<String, String> params){
+    public Result listFarmUnitEartagData(@RequestBody Map<String, String> params, HttpServletRequest req){
+        Integer userId = TokenSign.getMemberIdByJwtToken(req);
+        params.put("userId",userId+"");
         return eartagRegisterService.listFarmUnitEartagData(params);
     }
 

+ 1 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/pojo/SysAccountMultilevel.java

@@ -47,5 +47,6 @@ public class SysAccountMultilevel extends Model {
 
     private String userName;
     private Integer type;
+    private Integer isUser;
 
 }

+ 31 - 24
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/schedule/EartagTask.java

@@ -93,32 +93,39 @@ public class EartagTask {
     // 5分钟
     @Scheduled(cron = "0 0/5 * * * ? ")
     private void updateDevice() {
-        SysBaseConfig baseConfig = baseConfigService.getById(60);
-
-        String configValueStr = baseConfig.getConfigValue();
-        if (StringUtils.isNotBlank(configValueStr)) {
-            int configValueInt = Integer.parseInt(configValueStr);
-            DateTime dateTime = DateUtil.offsetMinute(new Date(), -configValueInt);
-
-            UpdateWrapper<EartagDeviceRegister> wrapper = new UpdateWrapper<>();
-            wrapper.ge("last_time", dateTime);
-            EartagDeviceRegister deviceRegister = new EartagDeviceRegister();
-            //未离线
-            deviceRegister.setActiveStatus(1);
-            deviceRegister.setDeviceStatus(1);
-            deviceRegisterService.update(deviceRegister, wrapper);
-
-            //离线
-            deviceRegister.setActiveStatus(2);
-            deviceRegister.setDeviceStatus(0);
-            wrapper.clear();
-            wrapper.le("last_time", dateTime);
-            deviceRegisterService.update(deviceRegister, wrapper);
-        } else {
-            System.out.println("未设置定时时长");
+        List<SysBaseConfig> baseConfig = baseConfigService.list(new QueryWrapper<SysBaseConfig>().groupBy("row_id"));
+
+
+        for (SysBaseConfig sysBaseConfig : baseConfig) {
+            String rowId = sysBaseConfig.getRowId();
+            SysBaseConfig one = baseConfigService.getOne(new QueryWrapper<SysBaseConfig>().eq("row_id", rowId).eq("config_key", "eartagOfflineTime"));
+
+            String configValueStr = one.getConfigValue();
+            if (StringUtils.isNotBlank(configValueStr)) {
+                int configValueInt = Integer.parseInt(configValueStr);
+                DateTime dateTime = DateUtil.offsetMinute(new Date(), -configValueInt);
+
+                UpdateWrapper<EartagDeviceRegister> wrapper = new UpdateWrapper<>();
+                wrapper.ge("last_time", dateTime);
+                EartagDeviceRegister deviceRegister = new EartagDeviceRegister();
+                //未离线
+                deviceRegister.setActiveStatus(1);
+                deviceRegister.setDeviceStatus(1);
+                deviceRegisterService.update(deviceRegister, wrapper);
+
+                //离线
+                deviceRegister.setActiveStatus(2);
+                deviceRegister.setDeviceStatus(0);
+                wrapper.clear();
+                wrapper.le("last_time", dateTime);
+                deviceRegisterService.update(deviceRegister, wrapper);
+            } else {
+                System.out.println("未设置定时时长");
+            }
+
+            System.out.println("测试数据");
         }
 
-        System.out.println("测试数据");
     }
 
     @Scheduled(cron = "0 0 0/6 * * ? ")

+ 25 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/impl/EartagData2ServiceImpl.java

@@ -6,9 +6,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.huimv.eartag2.common.utils.Result;
 import com.huimv.eartag2.common.utils.ResultCode;
+import com.huimv.eartag2.manage2.mapper.SysAccountMultilevelMapper;
 import com.huimv.eartag2.manage2.pojo.EartagData;
 import com.huimv.eartag2.manage2.pojo.EartagData2;
 import com.huimv.eartag2.manage2.mapper.EartagData2Mapper;
+import com.huimv.eartag2.manage2.pojo.SysAccountMultilevel;
 import com.huimv.eartag2.manage2.service.IEartagData2Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
@@ -32,6 +34,9 @@ public class EartagData2ServiceImpl extends ServiceImpl<EartagData2Mapper, Earta
     @Resource
     private EartagData2Mapper eartagData2Mapper;
 
+    @Resource
+    private SysAccountMultilevelMapper sysAccountMultilevelMapper;
+
     @Override
     public List<EartagData2> getEartagData(String earmark) throws ParseException {
         QueryWrapper<EartagData2> queryWrapper = new QueryWrapper<>();
@@ -64,7 +69,10 @@ public class EartagData2ServiceImpl extends ServiceImpl<EartagData2Mapper, Earta
         String earmark = map.get("earmark");
         String startDate = map.get("startDate");
         String endDate = map.get("endDate");
+        String userId = map.get("userId");
+
         Date now = new Date();
+        SysAccountMultilevel user = sysAccountMultilevelMapper.selectById(userId);
 
         if (StringUtils.isBlank(earmark)){
             return new Result(10001,"请选择耳标",false);
@@ -80,6 +88,23 @@ public class EartagData2ServiceImpl extends ServiceImpl<EartagData2Mapper, Earta
         wrapper.orderByAsc("add_time");
         List<EartagData2> list = this.list(wrapper);
 
+
+        //用户数据
+        if (user.getIsUser() ==0){
+            for (EartagData2 eartagData2 : list) {
+                Float earTemp1 = eartagData2.getEarTemp1();
+                if (earTemp1 > 40){
+                    eartagData2.setEarTemp1(40F);
+                }
+
+                if (earTemp1 < 30){
+                    eartagData2.setEarTemp1(30F);
+                }
+
+            }
+        }
+
+
         return new Result(ResultCode.SUCCESS,list);
     }
 }

+ 56 - 14
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/impl/EartagEartagRegister2ServiceImpl.java

@@ -8,10 +8,8 @@ import com.huimv.eartag2.common.utils.Result;
 import com.huimv.eartag2.common.utils.ResultCode;
 import com.huimv.eartag2.manage2.mapper.BaseFarmerMapper;
 import com.huimv.eartag2.manage2.mapper.EartagDeviceRegisterMapper;
-import com.huimv.eartag2.manage2.pojo.BaseFarmer;
-import com.huimv.eartag2.manage2.pojo.EartagDeviceRegister;
-import com.huimv.eartag2.manage2.pojo.EartagEartagRegister;
-import com.huimv.eartag2.manage2.pojo.EartagEartagRegister2;
+import com.huimv.eartag2.manage2.mapper.SysAccountMultilevelMapper;
+import com.huimv.eartag2.manage2.pojo.*;
 import com.huimv.eartag2.manage2.mapper.EartagEartagRegister2Mapper;
 import com.huimv.eartag2.manage2.service.IEartagEartagRegister2Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -34,6 +32,9 @@ import java.util.Map;
 @Service
 public class EartagEartagRegister2ServiceImpl extends ServiceImpl<EartagEartagRegister2Mapper, EartagEartagRegister2> implements IEartagEartagRegister2Service {
 
+    @Autowired
+    SysAccountMultilevelMapper sysAccountMultilevelMapper;
+
     @Override
     public Result listFarmUnitEartagData(Map<String, String> params) {
         String pageSize = params.get("pageSize");
@@ -43,6 +44,10 @@ public class EartagEartagRegister2ServiceImpl extends ServiceImpl<EartagEartagRe
         String farmId = params.get("farmId");
         String earmark = params.get("earmark");
         String liveStatus = params.get("liveStatus");
+        String userId = params.get("userId");
+        SysAccountMultilevel user = sysAccountMultilevelMapper.selectById(userId);
+
+
         if (StringUtils.isBlank(pageNo)){
             pageNo="1";
         }
@@ -54,8 +59,12 @@ public class EartagEartagRegister2ServiceImpl extends ServiceImpl<EartagEartagRe
         Float maxEarTemp = 0F;
         Float minEarTemp = 100F;
         QueryWrapper<EartagEartagRegister2> wrapper = new QueryWrapper<>();
-        wrapper.le("ear_temp1",50);
-        wrapper.le("act",100000);
+        //客户数据
+       /* if (user.getIsUser() == 0){
+            wrapper.between("ear_temp1",30,40);
+            wrapper.le("act",10000);
+            wrapper.eq("live_status", 1);
+        }*/
 
 
 
@@ -70,31 +79,61 @@ public class EartagEartagRegister2ServiceImpl extends ServiceImpl<EartagEartagRe
         //大堰河牧场过滤
         if ("330112004".equals(farmId)){
             wrapper.eq("live_status", 1).and( i->i.likeRight("earmark","1332022109003").or().likeRight("earmark","1332022109004"));
-//            wrapper.likeRight("earmark","1332022109003").or();
-//            wrapper.likeRight("earmark","1332022109004");
         }
 
 
-        //吴老师要求,屏蔽耳标
-//        wrapper.le("ear_temp1",41);
-
 
         Page<EartagEartagRegister2> page = this.page(new Page<>(Long.parseLong(pageNo), Long.parseLong(pageSize)), wrapper);
+        if (user.getIsUser() == 0){
+         for (EartagEartagRegister2 record : page.getRecords()) {
+            Float earTemp1 = record.getEarTemp1();
+            Long act = record.getAct();
+
+                if (earTemp1 >40){
+                    record.setEarTemp1(40F);
+                }
+                if (earTemp1 <30){
+                    record.setEarTemp1(30F);
+                }
+                if (act >300){
+                    record.setAct(300L);
+                }
+                if (act<0){
+                    record.setAct(0L);
+                }
+            }
+
+        }
 
         Map map = new HashMap();
         long allCount = this.count(wrapper);
 
         //在线
-        wrapper.eq("live_status", 1);
+        if (!"330112004".equals(farmId)){
+            wrapper.eq("live_status", 1);
+        }
         long onCount = this.count(wrapper);
         List<EartagEartagRegister2> list = this.list(wrapper);
         if (list.size() == 0){
             minEarTemp = 0F;
         }
         for (EartagEartagRegister2 record : list) {
+
+
             Float earTemp1 = record.getEarTemp1();
-            //吴老师要求,屏蔽耳标
-                maxEarTemp = Math.max(earTemp1,maxEarTemp);
+            Long act = record.getAct();
+            //客户数据
+            if (user.getIsUser() == 0){
+                if (earTemp1 >40){
+                    earTemp1 = 40F;
+                }
+                if (earTemp1 <30){
+                    earTemp1 = 30F;
+                }
+            }
+
+
+            maxEarTemp = Math.max(earTemp1,maxEarTemp);
 
             minEarTemp = Math.min(earTemp1,minEarTemp);
         }
@@ -152,9 +191,12 @@ public class EartagEartagRegister2ServiceImpl extends ServiceImpl<EartagEartagRe
         wrapper.like(StringUtils.isNotBlank(deviceCode),"last_device",deviceCode);
         wrapper.eq("farm_id",farmId);
         wrapper.like(StringUtils.isNotBlank(earmark),"earmark",earmark);
+
         wrapper.eq(StringUtils.isNotBlank(liveStatus),"live_status",liveStatus);
         wrapper.orderByDesc("ask_time");
         wrapper.in("last_device",farmerIds);
+        //屏蔽不合格耳标
+        wrapper.le("ear_temp1",50);
 
 
         Page<EartagEartagRegister2> page = this.page(new Page<>(Long.parseLong(pageNo), Long.parseLong(pageSize)), wrapper);

+ 104 - 2
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/impl/EartagServiceImpl.java

@@ -46,7 +46,6 @@ public class EartagServiceImpl implements IEartagService {
     private com.huimv.eartag2.manage2.mapper.SysBaseConfigMapper SysBaseConfigMapper;
     @Autowired
     private EartagOnlineStatusMapper eartagOnlineStatusMapper;
-
     @Override
     public void updateEartagLiveStatusAndCount() throws ParseException {
         // {}
@@ -60,6 +59,109 @@ public class EartagServiceImpl implements IEartagService {
         Map confMap = new HashMap();
         confMap.put("config_key","eartagOfflineTime");
         List<SysBaseConfig> configList = SysBaseConfigMapper.selectByMap(confMap);
+        for (SysBaseConfig baseConfig : configList) {
+            if(configList.size()>0){
+                offlineTimeDef = Integer.parseInt(baseConfig.getConfigValue());
+                log.info("耳标离线时间="+offlineTimeDef);
+            }else{
+                log.error("耳标离线时间属性未配置.");
+            }
+            JSONArray offlineJa = new JSONArray();
+            List countList = new ArrayList();
+            String rowId = baseConfig.getRowId();
+            String farmCode =  SysBaseConfigMapper.selectOne(new QueryWrapper<SysBaseConfig>().eq("config_key", "farmCode").eq("row_id", rowId)).getConfigValue();
+            for(BasePigpen basePigpen:basePigpenList){
+//            System.out.println("basePigpen="+basePigpen);
+//                String farmCode = basePigpen.getFarmCode();
+
+                Integer unitId = basePigpen.getId();
+                String unitName = basePigpen.getPigpenName();
+                String pigpenName = basePigpen.getPigpenName();
+                Map countMap = new HashMap<String,Object>();
+                countList.add(countMap);
+                int onlineTimes = 0;
+                int offlineTimes = 0;
+                StringBuilder onlineSb = new StringBuilder();
+                StringBuilder offlineSb = new StringBuilder();
+                // 用330110002测试
+//            if(farmId.trim().equalsIgnoreCase("330110002")){
+                // {读取相关耳标注册记录}
+                List<EartagEartagRegister2> eartagEartagRegister2List = getEartagRegister(farmCode,unitId);
+                if(eartagEartagRegister2List.size() == 0){
+                    System.out.println("该单元没有耳标。");
+                }
+                System.out.println("该单元没有耳标 eartagEartagRegister2List.size="+eartagEartagRegister2List.size());
+                for(EartagEartagRegister2 eartagEartagRegister2:eartagEartagRegister2List){
+                    Date lastTime = eartagEartagRegister2.getLastTime();
+                    long offlineTimeDiff = nowTimestamp.getTime()-lastTime.getTime();
+                    if(offlineTimeDiff/(1000*60) >= offlineTimeDef){
+                        eartagEartagRegister2.setLiveStatus(0);
+                        offlineTimes++;
+                        if(offlineSb.length()>0){
+                            offlineSb.append(",");
+                        }
+                        offlineSb.append(eartagEartagRegister2.getEarmark());
+                    }else{
+                        eartagEartagRegister2.setLiveStatus(1);
+                        onlineTimes++;
+                        if(onlineSb.length()>0){
+                            onlineSb.append(",");
+                        }
+                        onlineSb.append(eartagEartagRegister2.getEarmark());
+                    }
+                    eartagEartagRegister2Mapper.updateById(eartagEartagRegister2);
+                }
+//            }
+                countMap.put("farmCode",farmCode);
+                countMap.put("unitId",unitId);
+                countMap.put("unitName",unitName);
+                countMap.put("total",onlineTimes+offlineTimes);
+                countMap.put("online",onlineTimes);
+                countMap.put("offline",offlineTimes);
+                countMap.put("onlineEarmark",onlineSb.toString());
+                countMap.put("offlineEarmark",offlineSb.toString());
+
+                //耳标离线报警
+                if(offlineSb.length()>0){
+                    JSONObject offlineJo = new JSONObject();
+                    offlineJa.add(offlineJo);
+                    offlineJo.put("pigpen",pigpenName+unitName);
+                    offlineJo.put("earmark",offlineSb.toString());
+                    offlineJo.put("farmCode",farmCode);
+                }
+            }
+            for(int a=0;a<countList.size();a++){
+                Map countMap = (Map) countList.get(a);
+                EartagOnlineStatus eartagOnlineStatus = new EartagOnlineStatus();
+                eartagOnlineStatus.setFarmId(countMap.get("farmCode").toString());
+                eartagOnlineStatus.setUnitId(countMap.get("unitId").toString());
+                eartagOnlineStatus.setUnitName(countMap.get("unitName").toString());
+                eartagOnlineStatus.setTotal(Integer.parseInt(countMap.get("total").toString()));
+                eartagOnlineStatus.setOnline(Integer.parseInt(countMap.get("online").toString()));
+                eartagOnlineStatus.setOffline(Integer.parseInt(countMap.get("offline").toString()));
+                eartagOnlineStatus.setOnlineEarmark(countMap.get("onlineEarmark").toString());
+                eartagOnlineStatus.setOfflineEarmark(countMap.get("offlineEarmark").toString());
+                eartagOnlineStatus.setAddTime(nowTimestamp);
+                eartagOnlineStatusMapper.insert(eartagOnlineStatus);
+            }
+            //添加异常报警信息
+            saveEartagOfflineAlarm(offlineJa);
+        }
+
+    }
+    /*@Override
+    public void updateEartagLiveStatusAndCount() throws ParseException {
+        // {}
+        List<BasePigpen> basePigpenList =  getUnitByPigpen();
+        System.out.println("basePigpenList.size="+basePigpenList.size());
+        if(basePigpenList.size() == 0){
+            System.out.println("单元数为0");
+        }
+        Timestamp nowTimestamp = new Timestamp(new java.util.Date().getTime());
+        int offlineTimeDef = 30;
+        Map confMap = new HashMap();
+        confMap.put("config_key","eartagOfflineTime");
+        List<SysBaseConfig> configList = SysBaseConfigMapper.selectByMap(confMap);
         if(configList.size()>0){
             offlineTimeDef = Integer.parseInt(configList.get(0).getConfigValue());
             log.info("耳标离线时间="+offlineTimeDef);
@@ -143,7 +245,7 @@ public class EartagServiceImpl implements IEartagService {
         }
         //添加异常报警信息
         saveEartagOfflineAlarm(offlineJa);
-    }
+    }*/
 
     @Autowired
     private EartagAbnormalAlarmEntityRepo eartagAbnormalAlarmEntityRepo;