Преглед на файлове

精准饲喂数据对接

wwh преди 1 година
родител
ревизия
b021ca17b7

+ 13 - 0
huimv-admin/src/main/java/com/huimv/admin/controller/BasePigpenController.java

@@ -1,6 +1,8 @@
 package com.huimv.admin.controller;
 
 
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.huimv.admin.common.utils.Result;
 import com.huimv.admin.common.utils.ResultUtil;
 import com.huimv.admin.entity.BasePigpen;
@@ -33,6 +35,12 @@ public class BasePigpenController {
 
     @PostMapping( "/addUnit")
     public Result addUnit(@RequestBody BasePigpen basePigpen) {
+        QueryWrapper<BasePigpen> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", basePigpen.getFarmId()).eq("f_type", 3).eq("build_name", basePigpen.getBuildName());
+        BasePigpen pigpen = basePigpenService.getOne(queryWrapper);
+        if (ObjectUtil.isNotEmpty(pigpen)) {
+            return ResultUtil.addResult(0);
+        }
         BasePigpen byId = basePigpenService.getById(basePigpen.getParentId());
         String parentIds = byId.getOther2() + "," + basePigpen.getParentId();
         basePigpen.setFType(3);
@@ -50,6 +58,11 @@ public class BasePigpenController {
 
     @PostMapping( "/updateUnit")
     public Result updateUnit(@RequestBody BasePigpen basePigpen) {
+        Integer  num = basePigpenService.count(new QueryWrapper<BasePigpen>().eq("build_name", basePigpen.getBuildName())
+                .eq("farm_id",basePigpen.getFarmId()).ne("id", basePigpen.getId()));
+        if (num  > 0){
+            return new Result(10001, "栋舍名称已存在!", false);
+        }
         if ( basePigpenService.updateById(basePigpen)){
             return ResultUtil.addResult(1);
         }

+ 20 - 0
huimv-admin/src/main/java/com/huimv/admin/controller/FeedAreaController.java

@@ -0,0 +1,20 @@
+package com.huimv.admin.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-22
+ */
+@RestController
+@RequestMapping("/feed-area")
+public class FeedAreaController {
+
+}

+ 40 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/FeedArea.java

@@ -0,0 +1,40 @@
+package com.huimv.admin.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-22
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("feed_area")
+public class FeedArea implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String unitName;
+
+    private String farmId;
+
+    /**
+     * 区域id
+     */
+    private String areaId;
+
+
+}

+ 16 - 0
huimv-admin/src/main/java/com/huimv/admin/mapper/FeedAreaMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.mapper;
+
+import com.huimv.admin.entity.FeedArea;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-22
+ */
+public interface FeedAreaMapper extends BaseMapper<FeedArea> {
+
+}

+ 16 - 0
huimv-admin/src/main/java/com/huimv/admin/service/IFeedAreaService.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.service;
+
+import com.huimv.admin.entity.FeedArea;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-22
+ */
+public interface IFeedAreaService extends IService<FeedArea> {
+
+}

+ 33 - 26
huimv-admin/src/main/java/com/huimv/admin/service/impl/BasePigpenServiceImpl.java

@@ -29,7 +29,7 @@ import java.util.stream.Collectors;
 
 /**
  * <p>
- *  服务实现类
+ * 服务实现类
  * </p>
  *
  * @author author
@@ -45,12 +45,13 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
     @Override
     @Transactional
     public Result addPigpen(BasePigpenDto basePigpenDto) {
-        Integer  num = basePigpenMapper.selectCount(new QueryWrapper<BasePigpen>().eq("build_name", basePigpenDto.getBuildName()));
-        if (num  > 0){
-            return ResultUtil.exist();
+        Integer num = basePigpenMapper.selectCount(new QueryWrapper<BasePigpen>().eq("build_name", basePigpenDto.getBuildName())
+                .eq("farm_id", basePigpenDto.getFarmId()));
+        if (num > 0) {
+            return new Result(10001, "栋舍名称已存在!", false);
         }
         BasePigpen basePigpen = new BasePigpen();
-        BeanUtil.copyProperties(basePigpenDto,basePigpen);
+        BeanUtil.copyProperties(basePigpenDto, basePigpen);
         basePigpen.setParentId(0);
         basePigpen.setFType(1);
         basePigpen.setOther2("0");
@@ -62,9 +63,9 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
             BasePigpen basePigpen1 = new BasePigpen();
             basePigpen1.setFType(2);
             basePigpen1.setParentId(id);
-            basePigpen1.setBuildName(buildName+Convert.numberToChinese(integer,false) +"层");
-            basePigpen1.setOther1(Convert.numberToChinese(integer,false) +"层");
-            basePigpen1.setOther2("0,"+id);
+            basePigpen1.setBuildName(buildName + Convert.numberToChinese(integer, false) + "层");
+            basePigpen1.setOther1(Convert.numberToChinese(integer, false) + "层");
+            basePigpen1.setOther2("0," + id);
             basePigpen1.setFarmId(basePigpen.getFarmId());
             basePigpen1.setStageCode(basePigpen.getStageCode());
             basePigpenMapper.insert(basePigpen1);
@@ -75,14 +76,19 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
     @Override
     @Transactional
     public Result updatePigpen(BasePigpen basePigpen) {
+        Integer num = basePigpenMapper.selectCount(new QueryWrapper<BasePigpen>().eq("build_name", basePigpen.getBuildName())
+                .eq("farm_id", basePigpen.getFarmId()).ne("id", basePigpen.getId()));
+        if (num > 0) {
+            return new Result(10001, "栋舍名称已存在!", false);
+        }
         basePigpenMapper.updateById(basePigpen);
         Integer id = basePigpen.getId();
         List<BasePigpen> parentId = basePigpenMapper.selectList(new QueryWrapper<BasePigpen>().eq("parent_id", id));
         String buildName = basePigpen.getBuildName();
-        if (StringUtils.isNotBlank(buildName)){
+        if (StringUtils.isNotBlank(buildName)) {
             for (BasePigpen pigpen : parentId) {
                 String other1 = pigpen.getOther1();
-                pigpen.setBuildName(buildName+other1);
+                pigpen.setBuildName(buildName + other1);
                 basePigpenMapper.updateById(pigpen);
             }
         }
@@ -94,14 +100,14 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
     public Result deletePigpen(Map<String, Integer> map) {
         Integer integer = map.get("id");
         Integer integer1 = envDeviceMapper.selectCount(new QueryWrapper<EnvDevice>().eq("unit_id", integer));
-        if (integer1 > 0){
-            return new Result(10001,"删除失败,该栋舍下有采集器",false);
+        if (integer1 > 0) {
+            return new Result(10001, "删除失败,该栋舍下有采集器", false);
         }
         List<BasePigpen> other2 = basePigpenMapper.selectList(new QueryWrapper<BasePigpen>().like("other2", integer));
         for (BasePigpen basePigpen : other2) {
             Integer count = envDeviceMapper.selectCount(new QueryWrapper<EnvDevice>().eq("unit_id", basePigpen.getId()));
-            if (count > 0){
-                return new Result(10001,"删除失败,该栋舍下有采集器",false);
+            if (count > 0) {
+                return new Result(10001, "删除失败,该栋舍下有采集器", false);
             }
             basePigpenMapper.deleteById(basePigpen);
         }
@@ -112,27 +118,28 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
     @Override
     public Result list(String farmCode, String buildName, String stageCode) {
         QueryWrapper<BasePigpen> queryWrapper = new QueryWrapper<>();
-        queryWrapper.like(StringUtils.isNotBlank(buildName),"build_name", buildName);
-        queryWrapper.like(StringUtils.isNotBlank(stageCode),"stage_code", stageCode);
-        queryWrapper.eq(StringUtils.isNotBlank(farmCode),"farm_id", farmCode);
+        queryWrapper.like(StringUtils.isNotBlank(buildName), "build_name", buildName);
+        queryWrapper.like(StringUtils.isNotBlank(stageCode), "stage_code", stageCode);
+        queryWrapper.eq(StringUtils.isNotBlank(farmCode), "farm_id", farmCode);
         queryWrapper.orderByAsc("sort");
         //创建排序
         List<BasePigpen> basePigpens = basePigpenMapper.selectList(queryWrapper);
         //将结果List改为树
         List<TreeBasePigpen> treeBasePigpens = parseBizBaseArea(basePigpens);
-        return new Result(ResultCode.SUCCESS,treeBasePigpens);
+        return new Result(ResultCode.SUCCESS, treeBasePigpens);
     }
 
     /**
      * 查询结果 转换成树形结构
+     *
      * @param bizBaseAreas 原始数据
      * @return 树
      */
-    private List<TreeBasePigpen> parseBizBaseArea(List<BasePigpen> bizBaseAreas){
+    private List<TreeBasePigpen> parseBizBaseArea(List<BasePigpen> bizBaseAreas) {
         //构建需要展示的树形节点结构
         Map<String, TreeBasePigpen> nodeMap = bizBaseAreas.stream().map(basePigpen -> {
-            TreeBasePigpen  baseVo = new TreeBasePigpen();
-            baseVo.setId(basePigpen.getId()+"");
+            TreeBasePigpen baseVo = new TreeBasePigpen();
+            baseVo.setId(basePigpen.getId() + "");
             baseVo.setFarmCode(basePigpen.getFarmId());
             baseVo.setParentId(basePigpen.getParentId());
             baseVo.setSort(basePigpen.getSort());
@@ -141,16 +148,16 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
             baseVo.setType(basePigpen.getFType());
             baseVo.setChildNode(new ArrayList<>());
             return baseVo;
-        }).collect(Collectors.toMap(TreeBasePigpen::getId, b -> b,(k1, k2)->k1));
+        }).collect(Collectors.toMap(TreeBasePigpen::getId, b -> b, (k1, k2) -> k1));
         //创建数组存父亲节点
         ArrayList<TreeBasePigpen> roots = new ArrayList<>();
         //构建树形
-        nodeMap.values().forEach(item->{
-            String parentCode = item.getParentId()+"";
-            if (nodeMap.get(parentCode) == null){
+        nodeMap.values().forEach(item -> {
+            String parentCode = item.getParentId() + "";
+            if (nodeMap.get(parentCode) == null) {
                 //父节点为空,说明当前节点就已经是父节点了 将该节点存起来
                 roots.add(item);
-            }else {
+            } else {
                 //父节点 不为空,说明有父节点,拿到该节点的父节点的孩子节点(就是我自己),将该节点存起来
                 nodeMap.get(parentCode).getChildNode().add(item);
             }

+ 20 - 0
huimv-admin/src/main/java/com/huimv/admin/service/impl/FeedAreaServiceImpl.java

@@ -0,0 +1,20 @@
+package com.huimv.admin.service.impl;
+
+import com.huimv.admin.entity.FeedArea;
+import com.huimv.admin.mapper.FeedAreaMapper;
+import com.huimv.admin.service.IFeedAreaService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-22
+ */
+@Service
+public class FeedAreaServiceImpl extends ServiceImpl<FeedAreaMapper, FeedArea> implements IFeedAreaService {
+
+}

+ 9 - 5
huimv-admin/src/main/java/com/huimv/admin/service/impl/FeedingEnvServiceImpl.java

@@ -40,9 +40,10 @@ public class FeedingEnvServiceImpl extends ServiceImpl<FeedingEnvMapper, Feeding
     public Result countEnv(Map<String, String> paramsMap) {
         String farmId = paramsMap.get("farmId");
         String type = paramsMap.get("type");
-        String unitId = paramsMap.get("unitId");
+        String eartag = paramsMap.get("eartag");
         String pageNum = paramsMap.get("pageNum");
         String pageSize = paramsMap.get("pageSize");
+        String deviceCode = paramsMap.get("deviceCode");
         if ("".equals(pageNum) || null == pageNum) {
             pageNum = "1";
         }
@@ -53,6 +54,8 @@ public class FeedingEnvServiceImpl extends ServiceImpl<FeedingEnvMapper, Feeding
             type = "1";
         }
 
+        QueryWrapper<FeedingEnv> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq("farm_id", farmId);
         JSONObject jsonObject = new JSONObject();
         if ("1".equals(type)) {
             QueryWrapper<FeedingEnv> queryWrapper = new QueryWrapper<>();
@@ -79,6 +82,7 @@ public class FeedingEnvServiceImpl extends ServiceImpl<FeedingEnvMapper, Feeding
             jsonObject.put("count1", count1);
             jsonObject.put("count2", count2);
             jsonObject.put("count3", count3);
+            queryWrapper1.like(StringUtils.isNotBlank(eartag), "eartag", eartag);
         } else if ("2".equals(type)) {
             QueryWrapper<FeedingEnv> queryWrapper = new QueryWrapper<>();
             queryWrapper.eq("farm_id", farmId);
@@ -102,6 +106,7 @@ public class FeedingEnvServiceImpl extends ServiceImpl<FeedingEnvMapper, Feeding
             jsonObject.put("count1", count1);
             jsonObject.put("count2", count2);
             jsonObject.put("count3", count3);
+            queryWrapper1.like(StringUtils.isNotBlank(eartag), "eartag", eartag);
         } else if ("3".equals(type)) {
             QueryWrapper<FeedingEnv> queryWrapper = new QueryWrapper<>();
             queryWrapper.eq("farm_id", farmId);
@@ -130,12 +135,11 @@ public class FeedingEnvServiceImpl extends ServiceImpl<FeedingEnvMapper, Feeding
             jsonObject.put("count", count2);
             jsonObject.put("count1", count);
             jsonObject.put("count2", count1);
+            queryWrapper1.like(StringUtils.isNotBlank(deviceCode), "device_code", deviceCode);
         }
-        QueryWrapper<FeedingEnv> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("farm_id", farmId);
-        queryWrapper.eq(StringUtils.isNotBlank(unitId), "unit_id", unitId);
+
         Page<FeedingEnv> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
-        Page<FeedingEnv> feedingEnvPage = feedingEnvMapper.selectPage(page, queryWrapper);
+        Page<FeedingEnv> feedingEnvPage = feedingEnvMapper.selectPage(page, queryWrapper1);
         return new Result(ResultCode.SUCCESS, jsonObject, feedingEnvPage);
     }
 

+ 181 - 0
huimv-admin/src/main/java/com/huimv/admin/timer/FeedTimer.java

@@ -0,0 +1,181 @@
+package com.huimv.admin.timer;
+
+
+import cn.hutool.core.codec.Base64;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpUtil;
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.huimv.admin.common.utils.HttpClientSSLUtils;
+import com.huimv.admin.common.utils.NumberUtils;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.*;
+import com.huimv.admin.entity.zengxindto.*;
+import com.huimv.admin.mapper.FeedAreaMapper;
+import com.huimv.admin.mapper.FeedingDataMapper;
+import com.huimv.admin.mapper.FeedingEnvMapper;
+import com.huimv.admin.service.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.client.RestTemplate;
+
+import java.text.NumberFormat;
+import java.text.SimpleDateFormat;
+import java.time.Duration;
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.concurrent.ThreadLocalRandom;
+
+@Configuration
+@EnableScheduling
+public class FeedTimer {
+
+    @Autowired
+    private FeedAreaMapper feedAreaMapper;
+    @Autowired
+    private FeedingEnvMapper envMapper;
+    @Autowired
+    private FeedingDataMapper dataMapper;
+
+
+    @Scheduled(cron = "0 0/11 * * * ? ")
+    @Transactional
+    public void getFeed() throws Exception {
+        QueryWrapper<FeedArea> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", 26);
+        List<FeedArea> feedAreas = feedAreaMapper.selectList(queryWrapper);
+        Date now = new Date(); // 获取当前时间
+        long oneHour = 1 * 30 * 1000; // 1小时的毫秒数
+        Date oneHourAgo = new Date(now.getTime() - oneHour); // 获取1小时前的时间
+        List<String> time = new ArrayList<>();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        time.add(sdf.format(oneHourAgo));
+        time.add(sdf.format(new Date()));
+        for (FeedArea feedArea : feedAreas) {
+            HashMap<String, String> paramMap = new HashMap<>();
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.put("pageNum", "1");
+            jsonObject.put("pageSize", "20");
+            jsonObject.put("createTime", time);
+            jsonObject.put("fdQrcode", "");
+            jsonObject.put("fenceNum", "");
+            jsonObject.put("gatewayNo", "");
+            jsonObject.put("areaId", feedArea.getAreaId());
+            paramMap.put("Content-Type", "application/json;charset=utf-8");
+            paramMap.put("AuthorizationF", getToken());
+            String post = HttpRequest.post("http://xxxxxxxx:xx /feed/api/mqtt/pageQryRealtime").headerMap(paramMap, false).body(jsonObject.toJSONString()).timeout(30 * 1000).execute().body();
+            JSONObject jsonObject1 = JSONObject.parseObject(post);
+            Map map = (Map) jsonObject1.get("data");
+            List<Map<String, String>> list = (List) map.get("records");
+            for (Map<String, String> stringMap : list) {
+                FeedingData data = new FeedingData();
+                data.setFarmId(26);
+                data.setUnitName(feedArea.getUnitName());
+                QueryWrapper<FeedingEnv> queryWrapper1 = new QueryWrapper<>();
+                queryWrapper1.eq("device_code", stringMap.get("fdQrcode"));
+                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+                data.setUploadTime(dateFormat.parse(stringMap.get("createTime")));
+                data.setBlanking(stringMap.get("zkAlram"));
+                data.setFoodIntake(stringMap.get("intFdWeight"));
+                data.setMeals(ThreadLocalRandom.current().nextInt());
+                dataMapper.insert(data);
+            }
+        }
+    }
+
+    public String getToken() {
+        HashMap<String, String> paramMap = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("username", "henlu");
+        jsonObject.put("password", "123456");
+        paramMap.put("Content-Type", "application/json;charset=utf-8");
+        String post = HttpRequest.post("http://znsw.zxkj2006.com/feed/api/admin/appLogin").headerMap(paramMap, false).body(jsonObject.toJSONString()).timeout(30 * 1000).execute().body();
+        System.out.println(post);
+        JSONObject jsonObject1 = JSONObject.parseObject(post);
+        System.out.println(jsonObject1);
+        Map map = (Map) jsonObject1.get("data");
+        String s = map.get("tokenHead") + " " + map.get("token");
+        System.out.println(s);
+        return s;
+    }
+
+    public static void main(String[] args) {
+        Date now = new Date(); // 获取当前时间
+        long oneHour = 1 * 30 * 1000; // 1小时的毫秒数
+        Date oneHourAgo = new Date(now.getTime() - oneHour); // 获取1小时前的时间
+        List<String> time = new ArrayList<>();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        time.add(sdf.format(oneHourAgo));
+        time.add(sdf.format(new Date()));
+        HashMap<String, String> paramMap = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("pageNum", 1);
+        jsonObject.put("pageSize", 20);
+        jsonObject.put("createTime", time);
+        jsonObject.put("areaId","1017517");
+        paramMap.put("Content-Type", "application/json;charset=utf-8");
+        paramMap.put("AuthorizationF","Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJoZW5sdSIsImNyZWF0ZWQiOjE2OTUzNjg1OTE4MjEsImV4cCI6MTY5NTQ1NDk5MX0.63A5FNJD714MVLp2cdH9HLyN25lYtAzsXHysXLEp1eR-FfkQZel6FnuoLfkIoFbgaht1OsEN-2ERabw0Lby7Pg");
+        String post = HttpRequest.post("http://znsw.zxkj2006.com/feed/api/mqtt/pageQryRealtime").headerMap(paramMap, false).body(jsonObject.toJSONString()).timeout(30 * 1000).execute().body();
+        JSONObject jsonObject1 = JSONObject.parseObject(post);
+        Map map = (Map) jsonObject1.get("data");
+        System.out.println(map);
+        List<Map<String, String>> list = (List) map.get("records");
+        System.out.println(list);
+//        List<String> jsonArray = (ArrayList) map.get("records");
+//        System.out.println(jsonArray);
+    }
+
+
+    //饲养器添加
+    @Scheduled(cron = "0 0/1 * * * ? ")
+    @Transactional
+    public void getFeedEnv() throws Exception {
+        QueryWrapper<FeedArea> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", 26);
+        List<FeedArea> feedAreas = feedAreaMapper.selectList(queryWrapper);
+        for (FeedArea feedArea : feedAreas) {
+            HashMap<String, String> paramMap = new HashMap<>();
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.put("pageNum", "1");
+            jsonObject.put("pageSize", "20");
+            jsonObject.put("areaId", feedArea.getAreaId());
+            paramMap.put("Content-Type", "application/json;charset=utf-8");
+            paramMap.put("AuthorizationF", getToken());
+            String post = HttpRequest.post("http://znsw.zxkj2006.com/feed/api/api/v1/feeder/pageQry").headerMap(paramMap, false).body(jsonObject.toJSONString()).timeout(30 * 1000).execute().body();
+            JSONObject jsonObject1 = JSONObject.parseObject(post);
+            Map map = (Map) jsonObject1.get("data");
+            List<Map<String, String>> list = (List) map.get("records");
+            for (Map<String, String> stringMap : list) {
+                QueryWrapper<FeedingEnv> queryWrapper1 = new QueryWrapper<>();
+                queryWrapper1.eq("farm_id", 26).eq("eartag", stringMap.get("earTag"));
+                if (ObjectUtil.isEmpty(envMapper.selectOne(queryWrapper1))) {
+                    FeedingEnv feedingEnv = new FeedingEnv();
+                    feedingEnv.setFarmId(26);
+                    feedingEnv.setEartag(stringMap.get("earTag"));
+                    feedingEnv.setDeviceCode(stringMap.get("qrcode"));
+                    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+                    feedingEnv.setLastTime(dateFormat.parse(stringMap.get("createTime")));
+                    feedingEnv.setDeviceType(Integer.valueOf(stringMap.get("feedStatus")));
+                    envMapper.insert(feedingEnv);
+                }
+            }
+        }
+    }
+
+
+}

+ 5 - 0
huimv-admin/src/main/resources/mapper/FeedAreaMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huimv.admin.mapper.FeedAreaMapper">
+
+</mapper>