wwh 1 anno fa
parent
commit
01bb28c2db

+ 1 - 0
huimv-env-admin/pom.xml

@@ -131,6 +131,7 @@
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-validation</artifactId>
+            <version>2.4.3</version>
         </dependency>
 
         <dependency>

+ 19 - 2
huimv-env-admin/src/main/java/com/huimv/env/admin/common/token/TokenSign.java

@@ -27,7 +27,7 @@ public class TokenSign {
      *
      * @return
      */
-    public static String sign(String userName, Integer id, String farmIds, String workId,Integer userType) {
+    public static String sign(String userName, Integer id, String farmIds, String workId,Integer userType,String lng,String lat) {
 
         String JwtToken = Jwts.builder()
                 //头部信息
@@ -43,6 +43,8 @@ public class TokenSign {
                 .claim("type", userType)
                 .claim("farmIds", farmIds)
                 .claim("workId", workId)
+                .claim("lng", lng)
+                .claim("lat", lat)
                 .signWith(SignatureAlgorithm.HS256, APP_SECRET)
                 .compact();
 
@@ -138,7 +140,22 @@ public class TokenSign {
         Claims claims = getClaims(jwtToken);
         return (String) claims.get("userName");
     }
-
+    public static String getLng(HttpServletRequest request) {
+        String jwtToken = request.getHeader("accessToken");
+        if (StringUtils.isBlank(jwtToken)) {
+            return null;
+        }
+        Claims claims = getClaims(jwtToken);
+        return (String) claims.get("lng");
+    }
+    public static String getLat(HttpServletRequest request) {
+        String jwtToken = request.getHeader("accessToken");
+        if (StringUtils.isBlank(jwtToken)) {
+            return null;
+        }
+        Claims claims = getClaims(jwtToken);
+        return (String) claims.get("lat");
+    }
     /**
      * 获取claims对象
      *

+ 47 - 4
huimv-env-admin/src/main/java/com/huimv/env/admin/controller/BasePigpenController.java

@@ -2,12 +2,16 @@ package com.huimv.env.admin.controller;
 
 
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.huimv.env.admin.common.utils.Result;
 import com.huimv.env.admin.common.utils.ResultUtil;
 import com.huimv.env.admin.entity.BasePigpen;
+import com.huimv.env.admin.entity.TerminalPort;
 import com.huimv.env.admin.entity.dto.BasePigpenDto;
 import com.huimv.env.admin.mapper.BasePigpenMapper;
+import com.huimv.env.admin.mapper.TerminalMapper;
+import com.huimv.env.admin.mapper.TerminalPortMapper;
 import com.huimv.env.admin.service.IBasePigpenService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -33,6 +37,8 @@ public class BasePigpenController {
 
     @Autowired
     private BasePigpenMapper basePigpenMapper;
+    @Autowired
+    private TerminalPortMapper portMapper;
 
     @PostMapping( "/addPigpen")
     public Result addPigpen(@RequestBody BasePigpenDto basePigpenDto) {
@@ -55,7 +61,7 @@ public class BasePigpenController {
             basePigpen.setBuildName(parent.getBuildName()+num+"单元");
             basePigpen.setParentId(Integer.valueOf(parentId));
             basePigpen.setFType(3);
-            basePigpen.setStageCode(Integer.valueOf(stageCode));
+//            basePigpen.setStageCode(Integer.valueOf(stageCode));
             basePigpen.setFarmId(Integer.valueOf(farmId));
             basePigpen.setOther4(num);
             basePigpen.setOther2(parentIds);
@@ -73,7 +79,6 @@ public class BasePigpenController {
         String farmId = map.get("farmId");
         String parentId = map.get("parentId");
         String buildName = map.get("buildName");
-        String stageCode = map.get("stageCode");
         BasePigpen parent = basePigpenService.getById(parentId);
         String parentIds = parent.getOther2() + "," + parentId;
 
@@ -83,20 +88,53 @@ public class BasePigpenController {
             return ResultUtil.addResult(0);
         }
         BasePigpen basePigpen = new BasePigpen();
-        basePigpen.setBuildName(buildName);
+        basePigpen.setBuildName(parent.getBuildName()+buildName);
         basePigpen.setParentId(Integer.valueOf(parentId));
         basePigpen.setFType(4);
-        basePigpen.setStageCode(Integer.valueOf(stageCode));
         basePigpen.setFarmId(Integer.valueOf(farmId));
         basePigpen.setOther2(parentIds);
         basePigpenService.save(basePigpen);
         return ResultUtil.addResult(1);
     }
+
+    @PostMapping( "/deleteDoor")
+    public Result deleteDoor(@RequestBody Map<String,String> map) {
+        String id = map.get("id");
+        Integer count = portMapper.selectCount(new QueryWrapper<TerminalPort>().eq("location_id", id));
+        if (count > 0) {
+            return ResultUtil.deleteResult(0);
+        }
+        basePigpenService.removeById(id);
+        return ResultUtil.deleteResult(1);
+    }
+
+    @PostMapping( "/updateDoor")
+    public Result updateDoor(@RequestBody Map<String,String> map) {
+        String id = map.get("id");
+        String buildName = map.get("buildName");
+        BasePigpen basePigpen = basePigpenService.getById(id);
+        int count = basePigpenService.count(new QueryWrapper<BasePigpen>().ne("id", id)
+                .eq("f_type", 4).eq("farm_id", basePigpen.getFarmId())
+                .eq("other2", basePigpen.getOther2()).eq("buildName", buildName));
+        if (count > 0) {
+            return ResultUtil.updateResult(0);
+        }
+        basePigpen.setBuildName(buildName);
+        basePigpenService.updateById(basePigpen);
+        return ResultUtil.updateResult(1);
+    }
+
+
     @PostMapping( "/updatePigpen")
     public Result updatePigpen(@RequestBody BasePigpen basePigpen) {
         return  basePigpenService.updatePigpen(basePigpen);
     }
 
+    @PostMapping( "/deviceCount")
+    public Result deviceCount(@RequestBody Map<String,Integer> map) {
+        return  basePigpenService.deviceCount(map);
+    }
+
     @PostMapping( "/updateUnit")
     public Result updateUnit(@RequestBody BasePigpen basePigpen) {
         Integer  num = basePigpenService.count(new QueryWrapper<BasePigpen>().eq("build_name", basePigpen.getBuildName())
@@ -115,6 +153,11 @@ public class BasePigpenController {
         return  basePigpenService.deletePigpen(map);
     }
 
+    @PostMapping( "/listPigpen")
+    public Result listPigpen(@RequestBody Map<String,Integer> map) {
+        return  basePigpenService.listPigpen(map);
+    }
+
     @RequestMapping(value = "/list",method = RequestMethod.POST)
     public Result list(@RequestBody Map<String, Object> paramsMap) {
         System.out.println("paramsMap>>"+paramsMap.toString());

+ 26 - 11
huimv-env-admin/src/main/java/com/huimv/env/admin/controller/LoginController.java

@@ -10,7 +10,9 @@ import com.huimv.env.admin.common.exception.ExceptionEnum;
 import com.huimv.env.admin.common.exception.MiException;
 import com.huimv.env.admin.common.token.TokenSign;
 import com.huimv.env.admin.common.utils.*;
+import com.huimv.env.admin.entity.Farm;
 import com.huimv.env.admin.entity.SysAccountMultilevel;
+import com.huimv.env.admin.service.IFarmService;
 import com.huimv.env.admin.service.ILoginService;
 import com.huimv.env.admin.service.ISysAccountMultilevelService;
 import com.huimv.env.admin.session.AccessToken;
@@ -38,6 +40,8 @@ public class LoginController {
     private ISysAccountMultilevelService accountMultilevelService;
     @Autowired
     private UploadImage uploadImage;
+    @Autowired
+    private IFarmService farmService;
 
     @RequestMapping("/test")
     public String logout() {
@@ -95,17 +99,20 @@ public class LoginController {
             accessToken.setCreated(new Date());
             accessToken.setAccountName(accountName);
             accessToken.setFarmId(accountEntity.getFarmIds());
-            String token = TokenSign.sign(accountName, id, accountEntity.getFarmIds(), null, null);
-            accessToken.setToken(token);
-
-            accessToken.setId(id);
-            accessToken.setLoginIp(remoteHost);
-            accessToken.setType(accountEntity.getType());
             Integer lastFarmId = accountEntity.getLastFarmId();
             if (ObjectUtil.isEmpty(lastFarmId)) {
                 lastFarmId = Integer.parseInt(accountEntity.getFarmIds().split(",")[0]);
             }
             accessToken.setLastFarmId(lastFarmId);
+            Farm farm = farmService.getById(lastFarmId);
+            String token = TokenSign.sign(accountName, id, accountEntity.getFarmIds(), null, null,farm.getLng(),farm.getLat());
+            accessToken.setToken(token);
+
+            accessToken.setId(id);
+            accessToken.setLoginIp(remoteHost);
+            accessToken.setType(accountEntity.getType());
+            accessToken.setLat(farm.getLat());
+            accessToken.setLng(farm.getLng());
             accessToken.setUserName(accountEntity.getUserName());
 
             return new Result(ResultCode.SUCCESS, accessToken);
@@ -116,7 +123,7 @@ public class LoginController {
     //测试-token
     @PostMapping(value = "/getToken")
     public String getToken(HttpServletRequest req) {
-        String token = TokenSign.sign("superadmin", 1, null, null, null);
+        String token = TokenSign.sign("superadmin", 1, null, null, null,null,null);
         return token;
     }
 
@@ -135,13 +142,17 @@ public class LoginController {
             accessToken.setFarmId(data.getFarmIds());
             accessToken.setType(data.getType());
             accessToken.setId(data.getId());
-            String token = TokenSign.sign(data.getUserName(), data.getId(), data.getFarmIds(), data.getWorkLocationType(), data.getType());
-            accessToken.setToken(token);
             Integer lastFarmId = data.getLastFarmId();
             if (ObjectUtil.isEmpty(lastFarmId)) {
                 lastFarmId = Integer.parseInt(data.getFarmIds().split(",")[0]);
             }
             accessToken.setLastFarmId(lastFarmId);
+            Farm farm = farmService.getById(lastFarmId);
+            String token = TokenSign.sign(data.getUserName(), data.getId(), data.getFarmIds(), data.getWorkLocationType(), data.getType(),farm.getLng(),farm.getLat());
+            accessToken.setToken(token);
+
+            accessToken.setLat(farm.getLat());
+            accessToken.setLng(farm.getLng());
             accessToken.setLoginIp(remoteHost);
             return new Result(ResultCode.SUCCESS, accessToken);
         } else {
@@ -157,8 +168,12 @@ public class LoginController {
         if (result.getCode() == 10000) {
             SysAccountMultilevel data = (SysAccountMultilevel) result.getData();
             AccessToken accessToken = new AccessToken();
-            String token = TokenSign.sign(data.getUserName(), data.getId(), data.getFarmIds(), data.getWorkLocationType(), data.getType());
+            Integer lastFarmId = data.getLastFarmId();
+            Farm farm = farmService.getById(lastFarmId);
+            String token = TokenSign.sign(data.getUserName(), data.getId(), data.getFarmIds(), data.getWorkLocationType(), data.getType(),farm.getLng(),farm.getLat());
             accessToken.setToken(token);
+            accessToken.setLat(farm.getLat());
+            accessToken.setLng(farm.getLng());
             return new Result(ResultCode.SUCCESS, token);
         } else {
             return result;
@@ -259,7 +274,7 @@ public class LoginController {
         accessToken.setFarmId(sysAccountMultilevel.getFarmIds());
         accessToken.setType(sysAccountMultilevel.getType());
         accessToken.setId(sysAccountMultilevel.getId());
-        String token = TokenSign.sign(sysAccountMultilevel.getUserName(), sysAccountMultilevel.getId(), sysAccountMultilevel.getFarmIds(), sysAccountMultilevel.getWorkLocationType(), sysAccountMultilevel.getType());
+        String token = TokenSign.sign(sysAccountMultilevel.getUserName(), sysAccountMultilevel.getId(), sysAccountMultilevel.getFarmIds(), sysAccountMultilevel.getWorkLocationType(), sysAccountMultilevel.getType(),null,null);
         accessToken.setToken(token);
         Integer lastFarmId = sysAccountMultilevel.getLastFarmId();
         if (ObjectUtil.isEmpty(lastFarmId)) {

+ 4 - 0
huimv-env-admin/src/main/java/com/huimv/env/admin/entity/BasePigpen.java

@@ -71,5 +71,9 @@ public class BasePigpen  implements TransPojo {
      */
     private Integer other4;
 
+    private String lng;
+
+    private String lat;
+
 
 }

+ 4 - 0
huimv-env-admin/src/main/java/com/huimv/env/admin/entity/SysAccountMultilevel.java

@@ -122,5 +122,9 @@ public class SysAccountMultilevel implements Serializable {
      */
     private String carNum;
 
+    private String lng;
+
+    private String lat;
+
 
 }

+ 4 - 0
huimv-env-admin/src/main/java/com/huimv/env/admin/entity/dto/BasePigpenDto.java

@@ -38,5 +38,9 @@ public class BasePigpenDto implements Serializable {
 
     private String other3;
 
+    private String lng;
+
+    private String lat;
+
 
 }

+ 14 - 0
huimv-env-admin/src/main/java/com/huimv/env/admin/entity/dto/ListPigpenDto.java

@@ -0,0 +1,14 @@
+package com.huimv.env.admin.entity.dto;
+
+import lombok.Data;
+
+@Data
+public class ListPigpenDto {
+    private Integer pigpenId;
+    private String buildName;
+    private Integer farmId;
+    private String lat;
+    private String lng;
+    private Integer terminalCount;
+    private Integer gatewayCount;
+}

+ 4 - 0
huimv-env-admin/src/main/java/com/huimv/env/admin/entity/vo/TreeBasePigpen.java

@@ -36,4 +36,8 @@ public class TreeBasePigpen implements Serializable {
     private  int sort;
 
     private List<TreeBasePigpen> childNode;
+
+    private String lng;
+
+    private String lat;
 }

+ 6 - 0
huimv-env-admin/src/main/java/com/huimv/env/admin/mapper/BasePigpenMapper.java

@@ -2,6 +2,9 @@ package com.huimv.env.admin.mapper;
 
 import com.huimv.env.admin.entity.BasePigpen;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.env.admin.entity.dto.ListPigpenDto;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +16,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface BasePigpenMapper extends BaseMapper<BasePigpen> {
     int getMaxBuildNum(String parentId);
+
+    List<ListPigpenDto> listPigpen(Integer farmId);
+
 }

+ 4 - 0
huimv-env-admin/src/main/java/com/huimv/env/admin/service/IBasePigpenService.java

@@ -24,4 +24,8 @@ public interface IBasePigpenService extends IService<BasePigpen> {
     Result updatePigpen(BasePigpen basePigpen);
 
     Result deletePigpen(Map<String, Integer> map);
+
+    Result listPigpen(Map<String, Integer> map);
+
+    Result deviceCount(Map<String, Integer> map);
 }

+ 120 - 23
huimv-env-admin/src/main/java/com/huimv/env/admin/service/impl/BasePigpenServiceImpl.java

@@ -2,29 +2,35 @@ package com.huimv.env.admin.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.convert.Convert;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONException;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.huimv.env.admin.common.utils.Result;
 import com.huimv.env.admin.common.utils.ResultCode;
 import com.huimv.env.admin.common.utils.ResultUtil;
 import com.huimv.env.admin.entity.BasePigpen;
+import com.huimv.env.admin.entity.Gateway;
+import com.huimv.env.admin.entity.Terminal;
 import com.huimv.env.admin.entity.dto.BasePigpenDto;
+import com.huimv.env.admin.entity.dto.ListPigpenDto;
 import com.huimv.env.admin.entity.vo.TreeBasePigpen;
 import com.huimv.env.admin.mapper.BasePigpenMapper;
+import com.huimv.env.admin.mapper.GatewayMapper;
+import com.huimv.env.admin.mapper.TerminalMapper;
 import com.huimv.env.admin.service.IBasePigpenService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
  * <p>
- *  服务实现类
+ * 服务实现类
  * </p>
  *
  * @author author
@@ -34,7 +40,12 @@ import java.util.stream.Collectors;
 public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePigpen> implements IBasePigpenService {
     @Autowired
     private BasePigpenMapper basePigpenMapper;
-//    @Autowired
+    @Autowired
+    private GatewayMapper gatewayMapper;
+    @Autowired
+    private TerminalMapper terminalMapper;
+
+    //    @Autowired
 //    private EnvDeviceMapper envDeviceMapper;
 //    @Autowired
 //    private EnergyEnvDeviceMapper energyEnvDeviceMapper;
@@ -42,7 +53,7 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
     @Transactional
     public Result addPigpen(BasePigpenDto basePigpenDto) {
         Integer num = basePigpenMapper.selectCount(new QueryWrapper<BasePigpen>().eq("build_name", basePigpenDto.getBuildName())
-                .eq("farm_id", basePigpenDto.getFarmId()).ne("other3",1));
+                .eq("farm_id", basePigpenDto.getFarmId()).ne("other3", 1));
         if (num > 0) {
             return new Result(10001, "栋舍名称已存在!", false);
         }
@@ -73,7 +84,7 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
     @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()).ne("ohter3",1));
+                .eq("farm_id", basePigpen.getFarmId()).ne("id", basePigpen.getId()).ne("other3", 1));
         if (num > 0) {
             return new Result(10001, "栋舍名称已存在!", false);
         }
@@ -95,24 +106,12 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
     @Transactional
     public Result deletePigpen(Map<String, Integer> map) {
         Integer integer = map.get("id");
-//        Integer count1 = energyEnvDeviceMapper.selectCount(new QueryWrapper<EnergyEnvDevice>().eq("unit_id", integer));
-//        Integer integer1 = envDeviceMapper.selectCount(new QueryWrapper<EnvDevice>().eq("unit_id", integer));
-//        if (integer1 > 0) {
-//            return new Result(10001, "删除失败,该栋舍下有温湿度采集器", false);
-//        }
-//        if (count1 > 0) {
-//            return new Result(10001, "删除失败,该栋舍下有水电表", false);
-//        }
+        Integer count = gatewayMapper.selectCount(new QueryWrapper<Gateway>().eq("location_id", integer));
+        if (count > 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()));
-//            Integer integer2 = envDeviceMapper.selectCount(new QueryWrapper<EnvDevice>().eq("unit_id", integer));
-//            if (count > 0) {
-//                return new Result(10001, "删除失败,该栋舍下有温湿度采集器", false);
-//            }
-//            if (integer2 > 0) {
-//                return new Result(10001, "删除失败,该栋舍下有水电表", false);
-//            }
             basePigpenMapper.deleteById(basePigpen.getId());
         }
         basePigpenMapper.deleteById(integer);
@@ -120,6 +119,55 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
     }
 
     @Override
+    public Result listPigpen(Map<String, Integer> map) {
+        Integer farmId = map.get("farmId");
+        return new Result(ResultCode.SUCCESS, basePigpenMapper.listPigpen(farmId));
+    }
+
+    @Override
+    public Result deviceCount(Map<String, Integer> map) {
+        Integer id = map.get("id");
+        Integer onGateway = 0;
+        Integer offGateway = 0;
+        Integer onTerminal = 0;
+        Integer offTerminal = 0;
+        Integer infoGateway = 0;
+        Integer infoTerminal = 0;
+        QueryWrapper<Gateway> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("location_id", id);
+        List<Gateway> gateways = gatewayMapper.selectList(queryWrapper);
+        for (Gateway gateway : gateways) {
+            if (gateway.getStatus() == 0) {
+                offGateway++;
+            } else {
+                onGateway++;
+            }
+        }
+        List<Integer> idList = new ArrayList<>();
+        gateways.forEach(item->{
+            idList.add(item.getId());
+        });
+        QueryWrapper<Terminal> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.in("gateway_id", idList);
+        List<Terminal> terminals = terminalMapper.selectList(queryWrapper1);
+        for (Terminal terminal : terminals) {
+            if (terminal.getStatus() == 0) {
+                offTerminal++;
+            } else {
+                onTerminal++;
+            }
+        }
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("onGateway", onGateway);
+        jsonObject.put("offGateway", offGateway);
+        jsonObject.put("onTerminal", onTerminal);
+        jsonObject.put("offTerminal", offTerminal);
+        jsonObject.put("infoGateway", infoGateway);
+        jsonObject.put("infoTerminal", infoTerminal);
+        return new Result(ResultCode.SUCCESS,jsonObject);
+    }
+
+    @Override
     public Result list(String farmCode, String buildName, String stageCode, String type) {
         QueryWrapper<BasePigpen> queryWrapper = new QueryWrapper<>();
         queryWrapper.like(StringUtils.isNotBlank(buildName), "build_name", buildName);
@@ -148,6 +196,8 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
             baseVo.setFarmCode(basePigpen.getFarmId());
             baseVo.setParentId(basePigpen.getParentId());
             baseVo.setSort(basePigpen.getSort());
+            baseVo.setLat(basePigpen.getLat());
+            baseVo.setLng(basePigpen.getLng());
             baseVo.setStageCode(basePigpen.getStageCode());
             baseVo.setPigpenName(basePigpen.getBuildName());
             baseVo.setType(basePigpen.getFType());
@@ -169,4 +219,51 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
         });
         return roots;
     }
+
+    /*数组排序*/
+//    public static List<TreeBasePigpen> jsonArraySort(List<BasePigpen> bizBaseAreas, String sortKey, boolean is_desc) {
+//        //存放排序结果json数组
+//        JSONArray sortedJsonArray = new JSONArray();
+//        //用于排序的list
+//
+//        List<JSONObject> jsonValues = new ArrayList<JSONObject>();
+//        //将参数json数组每一项取出,放入list
+//        for (int i = 0; i < bizBaseAreas.size(); i++) {
+//            jsonValues.add(jsonArr.getJSONObject(i));
+//        }
+//        //快速排序,重写compare方法,完成按指定字段比较,完成排序
+//        Collections.sort(jsonValues, new Comparator<JSONObject>() {
+//            //排序字段
+//            private final String KEY_NAME = sortKey;
+//
+//            //重写compare方法
+//            @Override
+//            public int compare(JSONObject a, JSONObject b) {
+//                //如果用String接会导致一位数和两位数混合比对的时候不能准确比出来,要用int类型接
+//                //String valA = new String();
+//                //String valB = new String();
+//                Float valA = 0.00f;
+//                Float valB = 0.00f;
+//                try {
+//                    valA = Float.parseFloat(a.getString(KEY_NAME));
+//                    valB = Float.parseFloat(b.getString(KEY_NAME));
+//                } catch (JSONException e) {
+//                    e.printStackTrace();
+//                }
+//                //是升序还是降序
+//                if (is_desc) {
+//                    return -valA.compareTo(valB);
+//                } else {
+//                    return -valB.compareTo(valA);
+//                }
+//
+//            }
+//        });
+//        //将排序后结果放入结果jsonArray
+//        for (int i = 0; i < jsonArr.size(); i++) {
+//            sortedJsonArray.add(jsonValues.get(i));
+//        }
+//
+//        return sortedJsonArray;
+//    }
 }

+ 18 - 0
huimv-env-admin/src/main/java/com/huimv/env/admin/session/AccessToken.java

@@ -21,6 +21,24 @@ public class AccessToken {
     private String message;
     private Integer lastFarmId;
     private String userName;
+    private String lng;
+    private String lat;
+
+    public String getLng() {
+        return lng;
+    }
+
+    public void setLng(String lng) {
+        this.lng = lng;
+    }
+
+    public String getLat() {
+        return lat;
+    }
+
+    public void setLat(String lat) {
+        this.lat = lat;
+    }
 
     public SysAccountMultilevel getSysAccountMultilevel() {
         return sysAccountMultilevel;

+ 11 - 0
huimv-env-admin/src/main/resources/mapper/BasePigpenMapper.xml

@@ -5,4 +5,15 @@
     <select id="getMaxBuildNum" resultType="java.lang.Integer">
         SELECT COALESCE(MAX(other4),0) FROM `base_pigpen` WHERE parent_id = #{parentId}
     </select>
+
+    <select id="listPigpen" resultType="com.huimv.env.admin.entity.dto.ListPigpenDto">
+        select a.buildName 'buildName',a.pigpenId 'pigpenId',a.farmId 'farmId',a.lat 'lat',a.lng 'lng',count(t.id) 'terminalCount',a.gateway 'gatewayCount'  from
+
+        (select b.id 'pigpenId', g.id 'id',b.build_name 'buildName',b.farm_id 'farmId',b.lat 'lat', b.lng 'lng',COUNT(g.id) gateway from base_pigpen b LEFT JOIN
+        gateway g ON b.id=g.location_id where b.farm_id=#{farmId} and b.parent_id=0 GROUP BY b.id) a
+				LEFT JOIN
+				terminal t
+        ON t.gateway_id=a.id
+				GROUP BY a.id
+    </select>
 </mapper>