Przeglądaj źródła

修改地图上显示所有乡镇信息。

zhuoning 2 lat temu
rodzic
commit
53a011970f

+ 3 - 3
huimv-cattle/src/main/java/com/huimv/cattle/controller/SysFarmController.java

@@ -69,9 +69,9 @@ public class SysFarmController {
         return sysFarmService.resetPassword(request,paramsMap);
     }
 
-    @PostMapping("/listAllTowns")
-    public Result listAllTowns(HttpServletRequest request, @RequestBody Map<String, String> paramsMap){
-        return sysFarmService.listAllTowns(request,paramsMap);
+    @PostMapping("/listAllTownsCount")
+    public Result listAllTownsCount(HttpServletRequest request){
+        return sysFarmService.listAllTownsCount(request);
     }
 }
 

+ 3 - 0
huimv-cattle/src/main/java/com/huimv/cattle/service/OverviewService.java

@@ -1,5 +1,6 @@
 package com.huimv.cattle.service;
 
+import com.alibaba.fastjson.JSONObject;
 import com.huimv.cattle.pojo.Overview;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.huimv.common.utils.Result;
@@ -22,4 +23,6 @@ public interface OverviewService extends IService<Overview> {
     Result add(HttpServletRequest httpServletRequest,Map<String, String> paramsMap);
 
     Result getListOverview(HttpServletRequest httpServletRequest,Map<String, String> paramsMap);
+
+    Integer getOutStock(JSONObject townJo);
 }

+ 4 - 0
huimv-cattle/src/main/java/com/huimv/cattle/service/StockService.java

@@ -1,5 +1,7 @@
 package com.huimv.cattle.service;
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.huimv.cattle.pojo.Stock;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.huimv.common.utils.Result;
@@ -22,4 +24,6 @@ public interface StockService extends IService<Stock> {
     Result add(HttpServletRequest httpServletRequest,Map<String,String> paramsMap);
 
     Result getListStock(HttpServletRequest httpServletRequest,Map<String,String> paramsMap);
+
+    Result getAllTownStock(HttpServletRequest request, JSONArray allTownsJa);
 }

+ 1 - 1
huimv-cattle/src/main/java/com/huimv/cattle/service/SysFarmService.java

@@ -31,5 +31,5 @@ public interface SysFarmService extends IService<SysFarm> {
 
     Result getAllFarmId(HttpServletRequest request, Map<String, String> paramsMap);
 
-    Result listAllTowns(HttpServletRequest request, Map<String, String> paramsMap);
+    Result listAllTownsCount(HttpServletRequest request);
 }

+ 12 - 0
huimv-cattle/src/main/java/com/huimv/cattle/service/impl/OverviewServiceImpl.java

@@ -128,4 +128,16 @@ public class OverviewServiceImpl extends ServiceImpl<OverviewMapper, Overview> i
         }
         return new Result(ResultCode.SUCCESS,jsonObject);
     }
+
+    @Override
+    public Integer getOutStock(JSONObject townJo) {
+        QueryWrapper<Overview> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_code", townJo.getString("farmCode"));
+        Overview overview = overviewMapper.selectOne(queryWrapper);
+        if (ObjectUtil.isEmpty(overview)) {
+            return 0;
+        } else {
+            return overview.getOutCount();
+        }
+    }
 }

+ 72 - 22
huimv-cattle/src/main/java/com/huimv/cattle/service/impl/StockServiceImpl.java

@@ -1,10 +1,12 @@
 package com.huimv.cattle.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.huimv.cattle.pojo.Stock;
 import com.huimv.cattle.mapper.StockMapper;
+import com.huimv.cattle.service.OverviewService;
 import com.huimv.cattle.service.StockService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.huimv.cattle.token.TokenSign;
@@ -14,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.text.NumberFormat;
 import java.util.List;
@@ -21,7 +24,7 @@ import java.util.Map;
 
 /**
  * <p>
- *  服务实现类
+ * 服务实现类
  * </p>
  *
  * @author zn
@@ -32,16 +35,17 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
 
     @Autowired
     private StockMapper stockMapper;
+
     @Override
     public Result getStock(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
-      //  Stock stock = stockMapper.getList();
+        //  Stock stock = stockMapper.getList();
         List<Stock> stocks = stockMapper.selectList(null);
         JSONObject jsonObject = new JSONObject();
-        int count=0;
-        int fatCount=0;
-        int cowStock=0;
-        int bullStock=0;
-        if (stocks.size()==0) {
+        int count = 0;
+        int fatCount = 0;
+        int cowStock = 0;
+        int bullStock = 0;
+        if (stocks.size() == 0) {
             jsonObject.put("fatStock", 0);
             jsonObject.put("cowStock", 0);
             jsonObject.put("bullStock", 0);
@@ -52,7 +56,7 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
             jsonObject.put("farmCode", 0);
         } else {
             for (int i = 0; i < stocks.size(); i++) {
-               count=count+stocks.get(i).getFatStock()+stocks.get(i).getCowStock()+stocks.get(i).getBullStock();
+                count = count + stocks.get(i).getFatStock() + stocks.get(i).getCowStock() + stocks.get(i).getBullStock();
                 fatCount = fatCount + stocks.get(i).getFatStock();
                 cowStock = cowStock + stocks.get(i).getCowStock();
                 bullStock = bullStock + stocks.get(i).getBullStock();
@@ -61,9 +65,9 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
             NumberFormat numberFormat = NumberFormat.getInstance();
             //设置精确到小数点后2位
             numberFormat.setMaximumFractionDigits(2);
-            String fat=numberFormat.format((float)fatCount/ (float)count * 100) + "%";
-            String cow=numberFormat.format((float)cowStock / (float)count * 100) + "%";
-            String bull=numberFormat.format((float)bullStock /(float) count * 100) + "%";
+            String fat = numberFormat.format((float) fatCount / (float) count * 100) + "%";
+            String cow = numberFormat.format((float) cowStock / (float) count * 100) + "%";
+            String bull = numberFormat.format((float) bullStock / (float) count * 100) + "%";
             jsonObject.put("fatStock", fatCount);
             jsonObject.put("cowStock", cowStock);
             jsonObject.put("bullStock", bullStock);
@@ -72,13 +76,13 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
             jsonObject.put("cow", cow);
             jsonObject.put("bull", bull);
         }
-        return new Result(ResultCode.SUCCESS,jsonObject);
+        return new Result(ResultCode.SUCCESS, jsonObject);
     }
 
     @Override
-    public Result add(HttpServletRequest httpServletRequest,Map<String, String> paramsMap) {
-        String farmCode =paramsMap.get("farmCode");
-        if (farmCode==null) {
+    public Result add(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String farmCode = paramsMap.get("farmCode");
+        if (farmCode == null) {
             farmCode = TokenSign.getFarmCode(httpServletRequest);
         }
         QueryWrapper<Stock> queryWrapper = new QueryWrapper<>();
@@ -87,7 +91,7 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
         Integer fatStock = Integer.parseInt(paramsMap.get("fatStock"));
         Integer cowStock = Integer.parseInt(paramsMap.get("cowStock"));
         Integer bullStock = Integer.parseInt(paramsMap.get("bullStock"));
-       // Stock list = stockMapper.getList();
+        // Stock list = stockMapper.getList();
         if (ObjectUtil.isEmpty(stock1)) {
             Stock stock = new Stock();
             stock.setFatStock(fatStock);
@@ -108,8 +112,8 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
 
     @Override
     public Result getListStock(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
-        String farmCode =paramsMap.get("farmCode");
-        if (farmCode==null) {
+        String farmCode = paramsMap.get("farmCode");
+        if (farmCode == null) {
             farmCode = TokenSign.getFarmCode(httpServletRequest);
         }
         JSONObject jsonObject = new JSONObject();
@@ -131,9 +135,9 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
             NumberFormat numberFormat = NumberFormat.getInstance();
             //设置精确到小数点后2位
             numberFormat.setMaximumFractionDigits(2);
-            String fat=numberFormat.format((float)stock.getFatStock()/ (float)count * 100) + "%";
-            String cow=numberFormat.format((float)stock.getCowStock() / (float)count * 100) + "%";
-            String bull=numberFormat.format((float)stock.getBullStock()  /(float) count * 100) + "%";
+            String fat = numberFormat.format((float) stock.getFatStock() / (float) count * 100) + "%";
+            String cow = numberFormat.format((float) stock.getCowStock() / (float) count * 100) + "%";
+            String bull = numberFormat.format((float) stock.getBullStock() / (float) count * 100) + "%";
             jsonObject.put("fatStock", stock.getFatStock());
             jsonObject.put("cowStock", stock.getCowStock());
             jsonObject.put("bullStock", stock.getBullStock());
@@ -142,6 +146,52 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
             jsonObject.put("cow", cow);
             jsonObject.put("bull", bull);
         }
-        return new Result(ResultCode.SUCCESS,jsonObject);
+        return new Result(ResultCode.SUCCESS, jsonObject);
+    }
+
+    @Resource
+    private OverviewService overviewService;
+
+    @Override
+    public Result getAllTownStock(HttpServletRequest request, JSONArray allTownsJa) {
+        for (int a = 0; a < allTownsJa.size(); a++) {
+            JSONObject townJo = allTownsJa.getJSONObject(a);
+            System.out.println("townJo=" + townJo);
+            //根据乡镇读取填报存栏数据
+            JSONObject stockJo = getStockByTown(townJo);
+            townJo.put("fatStock", stockJo.getString("fatStock"));
+            townJo.put("cowStock", stockJo.getString("cowStock"));
+            townJo.put("bullStock", stockJo.getString("bullStock"));
+            townJo.put("totalStock", stockJo.getString("totalStock"));
+            //根据乡镇读取填报出栏数据
+            Integer outStock = overviewService.getOutStock(townJo);
+            townJo.put("outStock", String.valueOf(outStock));
+        }
+        return new Result(ResultCode.SUCCESS, allTownsJa);
+    }
+
+    //获取一个城镇的存栏和出栏
+    private JSONObject getStockByTown(JSONObject townJo) {
+        System.out.println("farmCode==" + townJo.getString("farmCode"));
+        JSONObject jsonObject = new JSONObject();
+        QueryWrapper<Stock> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_code", townJo.getString("farmCode"));
+        Stock stock = stockMapper.selectOne(queryWrapper);
+        if (ObjectUtil.isEmpty(stock)) {
+            jsonObject.put("fatStock", 0);
+            jsonObject.put("cowStock", 0);
+            jsonObject.put("bullStock", 0);
+            jsonObject.put("totalStock", 0);
+            jsonObject.put("outStock", 0);
+            jsonObject.put("farmCode", 0);
+        } else {
+            Integer count = stock.getFatStock() + stock.getBullStock() + stock.getCowStock();
+            jsonObject.put("fatStock", stock.getFatStock());
+            jsonObject.put("cowStock", stock.getCowStock());
+            jsonObject.put("bullStock", stock.getBullStock());
+            jsonObject.put("totalStock", String.valueOf(count));
+            jsonObject.put("outStock", String.valueOf(0));
+        }
+        return jsonObject;
     }
 }

+ 39 - 13
huimv-cattle/src/main/java/com/huimv/cattle/service/impl/SysFarmServiceImpl.java

@@ -2,6 +2,7 @@ package com.huimv.cattle.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
 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.extension.plugins.pagination.Page;
@@ -182,42 +183,67 @@ public class SysFarmServiceImpl extends ServiceImpl<SysFarmMapper, SysFarm> impl
     }
 
     @Override
-    public Result listAllTowns(HttpServletRequest request, Map<String, String> paramsMap) {
+    public Result listAllTownsCount(HttpServletRequest request) {
+        /////////////////////////////////////////////////////////////////////////
         //读取所有乡镇
         //统计所有存栏(手填报或者从养殖云获取)
+        /////////////////////////////////////////////////////////////////////////
+
+        //读取所有乡镇
+        JSONArray allTownsJa = getAllTowns();
+        System.out.println("allTownsJa=" + allTownsJa);
+        if (allTownsJa.size() == 0) {
+            return new Result(0, "当前未查询到任何乡镇数据.", false);
+        }
         //读取模式切换
         DataSource dataSource = dataSourceService.getDataSourceStatus();
         //view=2,显示镇汇总数据
         if (dataSource.getDsStatus() == 1) {
             //status=1,显示镇(手填)数据
-            return stockService.getStock(request, paramsMap);
+            return stockService.getAllTownStock(request, allTownsJa);
         } else {
             //status=2,显示镇汇总(养殖云)数据
-            return getStockFromBreedCloud(paramsMap);
+            return getStockFromBreedCloud(allTownsJa);
         }
     }
 
+    //获取所有乡镇信息
+    private JSONArray getAllTowns() {
+        QueryWrapper<SysFarm> queryWrapper = new QueryWrapper<>();
+        queryWrapper.orderByAsc("id");
+        List<SysFarm> sysFarmList = sysFarmMapper.selectList(queryWrapper);
+        JSONArray townsJa = new JSONArray();
+        for (SysFarm farmData : sysFarmList) {
+            JSONObject townJo = new JSONObject();
+            townsJa.add(townJo);
+            townJo.put("farmName", farmData.getFarmName());
+            townJo.put("farmCode", farmData.getFarmCode());
+            townJo.put("adCode", farmData.getAdcode());
+            townJo.put("townCode", farmData.getAdcode().substring(farmData.getAdcode().lastIndexOf(",") + 1, farmData.getAdcode().length()));
+        }
+        return townsJa;
+    }
+
     //显示镇汇总(养殖云)数据
-    private Result getStockFromBreedCloud(Map<String, String> paramsMap) {
+    private Result getStockFromBreedCloud(JSONArray allTownsJa) {
         HttpHeaders httpHeaders = new HttpHeaders();
         MediaType type = MediaType.parseMediaType("application/json;charset=UTF-8");
         httpHeaders.setContentType(type);
         HashMap<String, Object> map = new HashMap<>();
         //这里提交的是区县编码或乡镇编码
-        map.put("farmCode", paramsMap.get("farmCode"));
+        map.put("allTown", allTownsJa.toJSONString());
         HttpEntity<Map<String, Object>> objectHttpEntity = new HttpEntity<>(map, httpHeaders);
         //读取真实数据
         String remoteUrl = "http://123.60.134.84:10001/breed/api/v1.0.0/cattle/getStockByDivision2";
         ResponseEntity<String> entity = restTemplate.postForEntity(remoteUrl, objectHttpEntity, String.class);
-        if(entity.getStatusCode().toString().contains("200")){
+        if (entity.getStatusCode().toString().contains("200")) {
             String body = entity.getBody();
-            System.out.println(body);
-            JSONObject dataJo = JSON.parseObject(body).getJSONObject("data");
-            System.out.println("dataJo="+dataJo);
-            dataJo.put("name","界石浦镇");
-            return new Result(ResultCode.SUCCESS,dataJo);
-        }else{
-            return new Result(ResultCode.FAIL,"调取远程数据出错.");
+//            System.out.println(body);
+            JSONObject resultJo = JSON.parseObject(body);
+//            System.out.println("resultJo=" + resultJo);
+            return new Result(ResultCode.SUCCESS, resultJo.getJSONArray("data"));
+        } else {
+            return new Result(ResultCode.FAIL, "调取远程数据出错.");
         }
     }
 }