Ver Fonte

完成存栏变动-数据源切换

zhuoning há 2 anos atrás
pai
commit
f75caf8296

+ 39 - 7
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/controller/StockDetailController.java

@@ -40,17 +40,52 @@ public class StockDetailController {
     private RestTemplate restTemplate;
 
     //查询
+    @PostMapping("/getStockHistory")
+    public Result getStockHistory(@RequestBody Map<String, String> paramsMap) throws ParseException {
+        Integer dsStatu = dataSourceService.getDataSourceStatus(paramsMap);
+        if (dsStatu == null) {
+            dsStatu = 0;
+        }
+        if (dsStatu == 1) {
+            //读取远程历史存栏
+            return getRemoteHistoryStock(paramsMap);
+        } else {
+            //读取填报数据
+            return stockDetailService.getLocalHistoryStock(paramsMap);
+        }
+    }
+
+    //
+    private Result getRemoteHistoryStock(Map<String, String> paramsMap) {
+        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", paramsMap.get("farmCode"));
+        map.put("months", paramsMap.get("months"));
+        HttpEntity<Map<String, Object>> objectHttpEntity = new HttpEntity<>(map, httpHeaders);
+        //读取真实数据
+        String remoteUrl = "http://123.60.134.84:10001/breed/api/v1.0.0/stock/getStockHistory";
+        ResponseEntity<String> entity = restTemplate.postForEntity(remoteUrl, objectHttpEntity, String.class);
+        if(entity.getStatusCode().toString().contains("200")){
+            String body = entity.getBody();
+            return new Result(ResultCode.SUCCESS,JSONArray.parseArray(JSON.parseObject(body).getString("data")));
+        }else{
+            return new Result(ResultCode.FAIL,"调取远程数据出错.");
+        }
+    }
+
+    //查询
     @PostMapping("/getCurrentStock")
     public Result getCurrentStock(@RequestBody Map<String, String> paramsMap) throws ParseException {
         Integer dsStatu = dataSourceService.getDataSourceStatus(paramsMap);
-        System.out.println("1 dsStatu="+dsStatu);
         if (dsStatu == null) {
             dsStatu = 0;
         }
-        System.out.println("2 dsStatu="+dsStatu);
         if (dsStatu == 1) {
             //读取远程数据
-            return getRemoteData();
+            return getRemoteStock();
         } else {
             //读取填报数据
             return stockDetailService.getCurrentStock(paramsMap);
@@ -58,7 +93,7 @@ public class StockDetailController {
     }
 
     //读取远程数据
-    public Result getRemoteData(){
+    public Result getRemoteStock(){
         HttpHeaders httpHeaders = new HttpHeaders();
         MediaType type = MediaType.parseMediaType("application/json;charset=UTF-8");
         httpHeaders.setContentType(type);
@@ -69,11 +104,8 @@ public class StockDetailController {
         //读取真实数据
         String remoteUrl = "http://123.60.134.84:10001/breed/api/v1.0.0/stock/getCurrentStock";
         ResponseEntity<String> entity = restTemplate.postForEntity(remoteUrl, objectHttpEntity, String.class);
-//        System.out.println("状态码:"+entity.getStatusCode());
-//        System.out.println("响应体:"+entity.getBody());
         if(entity.getStatusCode().toString().contains("200")){
             String body = entity.getBody();
-            System.out.println("body>>>>>>>>>>>>>"+body);
             return new Result(ResultCode.SUCCESS,JSONArray.parseArray(JSON.parseObject(body).getString("data")));
         }else{
             return new Result(ResultCode.FAIL,"调取远程数据出错.");

+ 2 - 0
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/service/StockDetailService.java

@@ -23,4 +23,6 @@ public interface StockDetailService extends IService<StockDetail> {
     Result remove(Map<String, String> paramsMap);
 
     Result getCurrentStock(Map<String, String> paramsMap);
+
+    Result getLocalHistoryStock(Map<String, String> paramsMap);
 }

+ 44 - 0
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/service/impl/StockDetailServiceImpl.java

@@ -1,10 +1,12 @@
 package com.huimv.env.produce.service.impl;
 
+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.common.utils.Result;
 import com.huimv.common.utils.ResultCode;
+import com.huimv.env.common.utils.DateUtil;
 import com.huimv.env.produce.entity.Stock;
 import com.huimv.env.produce.entity.StockDetail;
 import com.huimv.env.produce.mapper.SalesDetailMapper;
@@ -147,4 +149,46 @@ public class StockDetailServiceImpl extends ServiceImpl<StockDetailMapper, Stock
         resultJa.add(resultJo);
         return new Result(ResultCode.SUCCESS,resultJa);
     }
+
+    @Override
+    public Result getLocalHistoryStock(Map<String, String> paramsMap) {
+        //
+//        String farmCode = paramsMap.get("farmCode");
+//        if (farmCode == null) {
+//            farmCode = DEFAULT_FARM_CODE;
+//        }
+        String months = paramsMap.get("months");
+        System.out.println("months="+months);
+        String farmCode = DEFAULT_FARM_CODE;
+        //查询明细表
+        QueryWrapper<StockDetail> detailQueryWrapper = new QueryWrapper();
+        detailQueryWrapper.eq("farm_code", farmCode);
+        detailQueryWrapper.orderByAsc("id");
+        List<StockDetail> stockDetailList = stockDetailMapper.selectList(detailQueryWrapper);
+        System.out.println("stockDetailList.size="+stockDetailList.size());
+        int count = Integer.parseInt(months);
+        if(stockDetailList.size() < count){
+            count = stockDetailList.size();
+        }
+        System.out.println("count="+count);
+        DateUtil dateUtil = new DateUtil();
+        JSONArray yearMonthJa = new JSONArray();
+        for(int a=count-1;a>=0;a--){
+            yearMonthJa.add(dateUtil.getBeforeMonthAndYear(a));
+        }
+        JSONArray resultJa = new JSONArray();
+        for(int a=0;a<stockDetailList.size();a++){
+            StockDetail stockDetail = stockDetailList.get(a);
+            String yearMonth = yearMonthJa.getString(a);
+            String[] yearMonthArray = yearMonth.split("-");
+            JSONObject resultJo = new JSONObject();
+            resultJa.add(resultJo);
+            resultJo.put("year",Integer.parseInt(yearMonthArray[0]));
+            resultJo.put("month",Integer.parseInt(yearMonthArray[1]));
+            resultJo.put("boarStock",stockDetail.getBoarCount());
+            resultJo.put("sowStock",stockDetail.getSowCount());
+            resultJo.put("fatStock",stockDetail.getFatpigsCount());
+        }
+        return new Result(ResultCode.SUCCESS,resultJa);
+    }
 }

+ 2 - 2
huimv-env-platform/huimv-env-produce/src/main/resources/application.properties

@@ -1,5 +1,5 @@
-#spring.profiles.active=dev
-spring.profiles.active=prod
+spring.profiles.active=dev
+#spring.profiles.active=prod
 
 # mysql:/cache:
 device.online.access_mode=mysql