Explorar el Código

新增RestTemplate访问

zhuoning hace 2 años
padre
commit
748c424cce

+ 31 - 0
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/config/RestTemplateConfig.java

@@ -0,0 +1,31 @@
+package com.huimv.env.produce.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+/**
+ * @Project : huimv-env-platform
+ * @Package : ${}
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2022/11/2
+ **/
+@Configuration//加上这个注解作用,可以被Spring扫描
+public class RestTemplateConfig implements WebMvcConfigurer {
+    /**
+     * 创建RestTemplate对象,将RestTemplate对象的生命周期的管理交给Spring
+     */
+    @Bean
+    public RestTemplate restTemplate(){
+        // RestTemplate restTemplate = new RestTemplate();
+        //设置中文乱码问题方式一
+        // restTemplate.getMessageConverters().add(1,new StringHttpMessageConverter(Charset.forName("UTF-8")));
+        // 设置中文乱码问题方式二
+        // restTemplate.getMessageConverters().set(1,new StringHttpMessageConverter(StandardCharsets.UTF_8)); // 支持中文编码
+        return new RestTemplate();
+    }
+
+}

+ 57 - 1
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/controller/StockDetailController.java

@@ -1,17 +1,27 @@
 package com.huimv.env.produce.controller;
 
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.huimv.common.utils.Result;
+import com.huimv.common.utils.ResultCode;
+import com.huimv.env.produce.service.DataSourceService;
 import com.huimv.env.produce.service.StockDetailService;
 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.client.RestTemplate;
 
 import java.text.ParseException;
+import java.util.HashMap;
 import java.util.Map;
 
 /**
  * <p>
- *  前端控制器
+ * 前端控制器
  * </p>
  *
  * @author zn
@@ -23,6 +33,52 @@ import java.util.Map;
 public class StockDetailController {
     @Autowired
     private StockDetailService stockDetailService;
+    @Autowired
+    private DataSourceService dataSourceService;
+    // 从Spring的容器中获取restTemplate
+    @Autowired
+    private RestTemplate restTemplate;
+
+    //查询
+    @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();
+        } else {
+            //读取填报数据
+            return stockDetailService.getCurrentStock(paramsMap);
+        }
+    }
+
+    //读取远程数据
+    public Result getRemoteData(){
+        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", 330110);
+        HttpEntity<Map<String, Object>> objectHttpEntity = new HttpEntity<>(map, httpHeaders);
+        //读取真实数据
+        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,"调取远程数据出错.");
+        }
+    }
 
     //查询
     @PostMapping("/getStock")

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

@@ -19,4 +19,6 @@ public interface DataSourceService extends IService<DataSource> {
     Result getDataSource(Map<String, String> paramsMap);
 
     Result setDataSouce(Map<String, String> paramsMap);
+
+    Integer getDataSourceStatus(Map<String, String> paramsMap);
 }

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

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

+ 19 - 0
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/service/impl/DataSourceServiceImpl.java

@@ -66,4 +66,23 @@ public class DataSourceServiceImpl extends ServiceImpl<DataSourceMapper, DataSou
         }
         return new Result(ResultCode.SUCCESS);
     }
+
+    @Override
+    public Integer getDataSourceStatus(Map<String, String> paramsMap) {
+        //
+//        String farmCode = paramsMap.get("farmCode");
+//        if (farmCode == null) {
+//            farmCode = DEFAULT_FARM_CODE;
+//        }
+        String farmCode = DEFAULT_FARM_CODE;
+        QueryWrapper<DataSource> totalQueryWrapper = new QueryWrapper();
+        totalQueryWrapper.eq("farm_code", farmCode);
+        DataSource dataSource = dataSourceMapper.selectOne(totalQueryWrapper);
+        if(dataSource == null)
+        {
+            return 0;
+        }else{
+            return dataSource.getDsStatus();
+        }
+    }
 }

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

@@ -120,4 +120,31 @@ public class StockDetailServiceImpl extends ServiceImpl<StockDetailMapper, Stock
         stockDetailMapper.deleteById(id);
         return new Result(ResultCode.SUCCESS);
     }
+
+    @Override
+    public Result getCurrentStock(Map<String, String> paramsMap) {
+        //
+//        String farmCode = paramsMap.get("farmCode");
+//        if (farmCode == null) {
+//            farmCode = DEFAULT_FARM_CODE;
+//        }
+        String farmCode = DEFAULT_FARM_CODE;
+        JSONObject resultJo = new JSONObject();
+        //查询总表
+        QueryWrapper<Stock> totalQueryWrapper = new QueryWrapper();
+        totalQueryWrapper.eq("farm_code", farmCode);
+        Stock stock = stockMapper.selectOne(totalQueryWrapper);
+        if (stock == null) {
+            resultJo.put("boarStock", 0);
+            resultJo.put("sowStock", 0);
+            resultJo.put("fatStock", 0);
+        } else {
+            resultJo.put("boarStock", stock.getBoarCount());
+            resultJo.put("sowStock", stock.getSowCount());
+            resultJo.put("fatStock", stock.getFatpigsCount());
+        }
+        JSONArray resultJa = new JSONArray();
+        resultJa.add(resultJo);
+        return new Result(ResultCode.SUCCESS,resultJa);
+    }
 }