Browse Source

存栏统计和出栏规模修改

wwh 2 years ago
parent
commit
c46bdda9b7

+ 91 - 2
huimv-cattle/src/main/java/com/huimv/cattle/controller/OutStockController.java

@@ -1,13 +1,32 @@
 package com.huimv.cattle.controller;
 package com.huimv.cattle.controller;
 
 
 
 
+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.huimv.cattle.pojo.DataSource;
+import com.huimv.cattle.pojo.SysFarm;
+import com.huimv.cattle.service.DataSourceService;
 import com.huimv.cattle.service.OutStockService;
 import com.huimv.cattle.service.OutStockService;
+import com.huimv.cattle.service.SysFarmService;
+import com.huimv.cattle.utils.FarmCodeUtils;
 import com.huimv.common.utils.Result;
 import com.huimv.common.utils.Result;
 import com.huimv.common.utils.ResultCode;
 import com.huimv.common.utils.ResultCode;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.client.RestTemplate;
 
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.Map;
 
 
 /**
 /**
@@ -24,12 +43,82 @@ import java.util.Map;
 public class OutStockController {
 public class OutStockController {
     @Autowired
     @Autowired
     private OutStockService outStockService;
     private OutStockService outStockService;
-
+    @Resource
+    private DataSourceService dataSourceService;
+    @Resource
+    private RestTemplate restTemplate;
+    @Autowired
+    private SysFarmService farmService;
     @PostMapping("/getOutStock")
     @PostMapping("/getOutStock")
     public Result getList(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
     public Result getList(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
-        return outStockService.listOutStock(httpServletRequest,paramsMap);
+        String farmCode = FarmCodeUtils.getFarmCode(paramsMap.get("farmCode"), httpServletRequest);
+        //        //读取模式切换
+        DataSource dataSource = dataSourceService.getDataSourceStatus();
+        if (dataSource.getViewType() == 1) {
+            //view=1,显示县填写数据
+            return  outStockService.listOutStock(httpServletRequest,paramsMap);
+        } else {
+            //view=2,显示镇汇总数据
+            if (dataSource.getDsStatus() == 1) {
+                //status=1,显示镇汇总(手填)数据
+                return  outStockService.listOutStock(httpServletRequest,paramsMap);
+            } else {
+                //status=2,显示镇汇总(养殖云)数据
+                System.out.println("status=2,显示镇汇总(养殖云)数据");
+                String farmCodes =   getFarmCodeByAdcode(farmCode);
+                System.out.println(farmCodes);
+                if (StringUtils.isBlank(farmCodes)){
+                    return new Result(ResultCode.SUCCESS,new ArrayList<>());
+                }
+                return getStockFromBreedCloud(farmCodes);
+                //++++++++++++++++++++++++++++++++++++++++++++++++++
+            }
+        }
     }
     }
 
 
+    private String getFarmCodeByAdcode(String farmCode) {
+        String adcode  = "620826";
+        if (!"0".equals(farmCode)){
+            SysFarm list = farmService.getOne(new QueryWrapper<SysFarm>().eq("farm_code", farmCode));
+            if (ObjectUtil.isNotEmpty(list)){
+                String[] split = list.getAdcode().split(",");
+                adcode =  split[split.length-1];
+            }
+        }
+        String remoteUrl = "http://123.60.134.84:10001/admin/v1.0.0/account/getFarmCodeByAdcode";
+        Map map = new HashMap();
+        map.put("adcode",adcode);
+        ResponseEntity<String> stringResponseEntity = restTemplate.postForEntity(remoteUrl, map, String.class);
+        return stringResponseEntity.getBody();
+    }
+
+
+    //从养殖云获取数据
+    private Result getStockFromBreedCloud(String farmCodes) {
+        HttpHeaders httpHeaders = new HttpHeaders();
+        MediaType type = MediaType.parseMediaType("application/json;charset=UTF-8");
+        httpHeaders.setContentType(type);
+//        MultiValueMap<String, Object> map=new LinkedMultiValueMap<>();
+        HashMap<String, Object> map = new HashMap<>();
+        //这里提交的是区县编码或乡镇编码
+        map.put("farmCode", farmCodes);
+        HttpEntity<Map<String, Object>> objectHttpEntity = new HttpEntity<>(map, httpHeaders);
+        //读取真实数据
+        String remoteUrl = "http://123.60.134.84:10001/breed/api/v1.0.0/cattle/getOutStockByDivision";
+        ResponseEntity<String> entity = restTemplate.postForEntity(remoteUrl, objectHttpEntity, String.class);
+        if(entity.getStatusCode().toString().contains("200")){
+            String body = entity.getBody();
+            System.out.println(body);
+            JSONObject jsonObject = JSONObject.parseObject(body);
+            String data = jsonObject.get("data").toString();
+            JSONArray jsonArray = JSONArray.parseArray(data);
+            System.out.println("dataJo="+jsonArray);
+            //, )
+            return new Result(ResultCode.SUCCESS,jsonArray);
+        }else{
+            return new Result(ResultCode.FAIL,"调取远程数据出错.");
+        }
+    }
     @PostMapping("/saveOutStock")
     @PostMapping("/saveOutStock")
     public Result addOutStock(HttpServletRequest httpServletRequest, @RequestBody Map<String,String> paramsMap) {
     public Result addOutStock(HttpServletRequest httpServletRequest, @RequestBody Map<String,String> paramsMap) {
         return outStockService.addOutStock(httpServletRequest,paramsMap);
         return outStockService.addOutStock(httpServletRequest,paramsMap);

+ 94 - 4
huimv-cattle/src/main/java/com/huimv/cattle/controller/OverviewController.java

@@ -1,13 +1,35 @@
 package com.huimv.cattle.controller;
 package com.huimv.cattle.controller;
 
 
 
 
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.cattle.pojo.DataSource;
+import com.huimv.cattle.pojo.SysFarm;
+import com.huimv.cattle.service.DataSourceService;
 import com.huimv.cattle.service.OverviewService;
 import com.huimv.cattle.service.OverviewService;
+import com.huimv.cattle.service.SysFarmService;
+import com.huimv.cattle.utils.FarmCodeUtils;
 import com.huimv.common.utils.Result;
 import com.huimv.common.utils.Result;
 import com.huimv.common.utils.ResultCode;
 import com.huimv.common.utils.ResultCode;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
 
 
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
+
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.Map;
 
 
 /**
 /**
@@ -18,20 +40,88 @@ import java.util.Map;
  * @author zn
  * @author zn
  * @since 2022-12-15
  * @since 2022-12-15
  */
  */
-@CrossOrigin
 @RestController
 @RestController
 @RequestMapping("/v1.0.0/overview")
 @RequestMapping("/v1.0.0/overview")
 public class OverviewController {
 public class OverviewController {
     @Autowired
     @Autowired
     private OverviewService overviewService;
     private OverviewService overviewService;
+    @Resource
+    private DataSourceService dataSourceService;
+    @Resource
+    private RestTemplate restTemplate;
+    @Autowired
+    private SysFarmService farmService;
 
 
     @PostMapping("/getOverview")
     @PostMapping("/getOverview")
     public Result getOverView(HttpServletRequest httpServletRequest, @RequestBody Map<String,String> paramsMap) {
     public Result getOverView(HttpServletRequest httpServletRequest, @RequestBody Map<String,String> paramsMap) {
-        return overviewService.overList(httpServletRequest,paramsMap);
+        String farmCode = FarmCodeUtils.getFarmCode(paramsMap.get("farmCode"), httpServletRequest);
+        //        //读取模式切换
+        DataSource dataSource = dataSourceService.getDataSourceStatus();
+        if (dataSource.getViewType() == 1) {
+            //view=1,显示县填写数据
+            return overviewService.overList(httpServletRequest,paramsMap);
+        } else {
+            //view=2,显示镇汇总数据
+            if (dataSource.getDsStatus() == 1) {
+                //status=1,显示镇汇总(手填)数据
+                return overviewService.getListOverview(httpServletRequest,paramsMap);
+            } else {
+                //status=2,显示镇汇总(养殖云)数据
+                System.out.println("status=2,显示镇汇总(养殖云)数据");
+                String farmCodes =   getFarmCodeByAdcode(farmCode);
+                System.out.println(farmCodes);
+                if (StringUtils.isBlank(farmCodes)){
+                    return new Result(ResultCode.SUCCESS,new ArrayList<>());
+                }
+                return getStockFromBreedCloud(farmCodes);
+                //++++++++++++++++++++++++++++++++++++++++++++++++++
+            }
+        }
+    }
+
+    private String getFarmCodeByAdcode(String farmCode) {
+        String adcode  = "620826";
+        if (!"0".equals(farmCode)){
+            SysFarm list = farmService.getOne(new QueryWrapper<SysFarm>().eq("farm_code", farmCode));
+            if (ObjectUtil.isNotEmpty(list)){
+                String[] split = list.getAdcode().split(",");
+                adcode =  split[split.length-1];
+            }
+        }
+        String remoteUrl = "http://123.60.134.84:10001/admin/v1.0.0/account/getFarmCodeByAdcode";
+        Map map = new HashMap();
+        map.put("adcode",adcode);
+        ResponseEntity<String> stringResponseEntity = restTemplate.postForEntity(remoteUrl, map, String.class);
+        return stringResponseEntity.getBody();
+    }
+
+    //从养殖云获取数据
+    private Result getStockFromBreedCloud(String farmCodes) {
+        HttpHeaders httpHeaders = new HttpHeaders();
+        MediaType type = MediaType.parseMediaType("application/json;charset=UTF-8");
+        httpHeaders.setContentType(type);
+//        MultiValueMap<String, Object> map=new LinkedMultiValueMap<>();
+        HashMap<String, Object> map = new HashMap<>();
+        //这里提交的是区县编码或乡镇编码
+        map.put("farmCode", farmCodes);
+        HttpEntity<Map<String, Object>> objectHttpEntity = new HttpEntity<>(map, httpHeaders);
+        //读取真实数据
+        String remoteUrl = "http://123.60.134.84:10001/breed/api/v1.0.0/cattle/getFarmCountByDivision";
+        ResponseEntity<String> entity = restTemplate.postForEntity(remoteUrl, objectHttpEntity, String.class);
+        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);
+            //, )
+            return new Result(ResultCode.SUCCESS,dataJo);
+        }else{
+            return new Result(ResultCode.FAIL,"调取远程数据出错.");
+        }
     }
     }
 
 
     @PostMapping("/saveOverview")
     @PostMapping("/saveOverview")
-    public Result saveOverView(HttpServletRequest httpServletRequest, @RequestBody Map<String,String> paramsMap) {
+    public Result saveOverView(HttpServletRequest httpServletRequest,@RequestBody Map<String,String> paramsMap) {
         return overviewService.add(httpServletRequest,paramsMap);
         return overviewService.add(httpServletRequest,paramsMap);
     }
     }
 
 

+ 2 - 2
huimv-cattle/src/main/java/com/huimv/cattle/controller/StockController.java

@@ -62,7 +62,7 @@ public class StockController {
             //view=2,显示镇汇总数据
             //view=2,显示镇汇总数据
             if (dataSource.getDsStatus() == 1) {
             if (dataSource.getDsStatus() == 1) {
                 //status=1,显示镇汇总(手填)数据
                 //status=1,显示镇汇总(手填)数据
-                return stockService.getStock(httpServletRequest,paramsMap);
+                return stockService.getListStock(httpServletRequest,paramsMap);
             } else {
             } else {
                 //status=2,显示镇汇总(养殖云)数据
                 //status=2,显示镇汇总(养殖云)数据
                 System.out.println("status=2,显示镇汇总(养殖云)数据");
                 System.out.println("status=2,显示镇汇总(养殖云)数据");
@@ -104,7 +104,7 @@ public class StockController {
         map.put("farmCode", farmCodes);
         map.put("farmCode", farmCodes);
         HttpEntity<Map<String, Object>> objectHttpEntity = new HttpEntity<>(map, httpHeaders);
         HttpEntity<Map<String, Object>> objectHttpEntity = new HttpEntity<>(map, httpHeaders);
         //读取真实数据
         //读取真实数据
-        String remoteUrl = "http://localhost:10001/breed/api/v1.0.0/cattle/getStockByDivision";
+        String remoteUrl = "http://123.60.134.84:10001/breed/api/v1.0.0/cattle/getStockByDivision";
         ResponseEntity<String> entity = restTemplate.postForEntity(remoteUrl, objectHttpEntity, String.class);
         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();
             String body = entity.getBody();

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

@@ -20,4 +20,6 @@ public interface OverviewService extends IService<Overview> {
     Result overList(HttpServletRequest httpServletRequest,Map<String, String> paramsMap);
     Result overList(HttpServletRequest httpServletRequest,Map<String, String> paramsMap);
 
 
     Result add(HttpServletRequest httpServletRequest,Map<String, String> paramsMap);
     Result add(HttpServletRequest httpServletRequest,Map<String, String> paramsMap);
+
+    Result getListOverview(HttpServletRequest httpServletRequest,Map<String, String> paramsMap);
 }
 }

+ 49 - 14
huimv-cattle/src/main/java/com/huimv/cattle/service/impl/OverviewServiceImpl.java

@@ -16,6 +16,7 @@ import org.springframework.stereotype.Service;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
 /**
 /**
@@ -33,15 +34,14 @@ public class OverviewServiceImpl extends ServiceImpl<OverviewMapper, Overview> i
     private OverviewMapper overviewMapper;
     private OverviewMapper overviewMapper;
     @Override
     @Override
     public Result overList(HttpServletRequest httpServletRequest,Map<String, String> paramsMap) {
     public Result overList(HttpServletRequest httpServletRequest,Map<String, String> paramsMap) {
-        String farmCode =paramsMap.get("farmCode");
-        if (farmCode==null) {
-            farmCode = TokenSign.getFarmCode(httpServletRequest);
-        }
-        QueryWrapper<Overview> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("farm_code", farmCode);
-        Overview overview = overviewMapper.selectOne(queryWrapper);
+        List<Overview> overviews = overviewMapper.selectList(null);
+        int stockCount=0;
+        int outCount=0;
+        int breedCount=0;
+        int farmCount=0;
+        int outputValue=0;
         JSONObject jsonObject = new JSONObject();
         JSONObject jsonObject = new JSONObject();
-        if (ObjectUtil.isEmpty(overview)) {
+        if (overviews.size()==0) {
             jsonObject.put("stockCount", 0);
             jsonObject.put("stockCount", 0);
             jsonObject.put("outCount", 0);
             jsonObject.put("outCount", 0);
             jsonObject.put("breedCount", 0);
             jsonObject.put("breedCount", 0);
@@ -49,12 +49,19 @@ public class OverviewServiceImpl extends ServiceImpl<OverviewMapper, Overview> i
             jsonObject.put("outputValue", 0);
             jsonObject.put("outputValue", 0);
             jsonObject.put("variety", 0);
             jsonObject.put("variety", 0);
         } else {
         } else {
-            jsonObject.put("stockCount", overview.getStockCount());
-            jsonObject.put("outCount", overview.getOutCount());
-            jsonObject.put("breedCount", overview.getBreedCount());
-            jsonObject.put("farmCount", overview.getFarmCount());
-            jsonObject.put("outputValue", overview.getOutputValue());
-            jsonObject.put("variety", overview.getVariety());
+            for (int i = 0; i < overviews.size(); i++) {
+                stockCount = stockCount + overviews.get(i).getStockCount();
+                outCount = outCount + overviews.get(i).getOutCount();
+                breedCount = breedCount + overviews.get(i).getBreedCount();
+                farmCount = farmCount + overviews.get(i).getFarmCount();
+                outputValue=outputValue+overviews.get(i).getOutputValue().intValue();
+            }
+            jsonObject.put("stockCount", stockCount);
+            jsonObject.put("outCount", outCount);
+            jsonObject.put("breedCount", breedCount);
+            jsonObject.put("farmCount",farmCount);
+            jsonObject.put("outputValue", outputValue);
+            jsonObject.put("variety",overviews.get(0).getVariety());
         }
         }
         return new Result(ResultCode.SUCCESS,jsonObject);
         return new Result(ResultCode.SUCCESS,jsonObject);
     }
     }
@@ -93,4 +100,32 @@ public class OverviewServiceImpl extends ServiceImpl<OverviewMapper, Overview> i
             return new Result(ResultCode.SUCCESS,"修改成功");
             return new Result(ResultCode.SUCCESS,"修改成功");
         }
         }
     }
     }
+
+    @Override
+    public Result getListOverview(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String farmCode =paramsMap.get("farmCode");
+        if (farmCode==null) {
+            farmCode = TokenSign.getFarmCode(httpServletRequest);
+        }
+        QueryWrapper<Overview> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_code", farmCode);
+        Overview overview = overviewMapper.selectOne(queryWrapper);
+        JSONObject jsonObject = new JSONObject();
+        if (ObjectUtil.isEmpty(overview)) {
+            jsonObject.put("stockCount", 0);
+            jsonObject.put("outCount", 0);
+            jsonObject.put("breedCount", 0);
+            jsonObject.put("farmCount", 0);
+            jsonObject.put("outputValue", 0);
+            jsonObject.put("variety", 0);
+        } else {
+            jsonObject.put("stockCount", overview.getStockCount());
+            jsonObject.put("outCount", overview.getOutCount());
+            jsonObject.put("breedCount", overview.getBreedCount());
+            jsonObject.put("farmCount", overview.getFarmCount());
+            jsonObject.put("outputValue", overview.getOutputValue());
+            jsonObject.put("variety", overview.getVariety());
+        }
+        return new Result(ResultCode.SUCCESS,jsonObject);
+    }
 }
 }