Explorar el Código

完成数据源切换

zhuoning hace 2 años
padre
commit
3f1ddb067f

+ 58 - 0
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/config/CorsConfig.java

@@ -0,0 +1,58 @@
+package com.huimv.env.produce.config;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.reactive.CorsWebFilter;
+import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
+import org.springframework.web.util.pattern.PathPatternParser;
+
+
+/**listCost
+ * 跨域配置
+ * @author chengwenbing
+ */
+@Configuration
+public class CorsConfig {
+//    @Bean
+//    public WebFilter corsFilter() {
+//        return (ServerWebExchange ctx, WebFilterChain chain) -> {
+//            ServerHttpRequest request = ctx.getRequest();
+//            if (CorsUtils.isCorsRequest(request)) {
+//                ServerHttpResponse response = ctx.getResponse();
+//                HttpHeaders headers = response.getHeaders();
+//                headers.set(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, request.getHeaders().getOrigin());
+//                headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_HEADERS, "X-Token,Authorization,x-requested-with,Content-Type");
+//                headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS, "PUT,POST, GET, OPTIONS, DELETE");
+//                headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS, "true");
+//                headers.add(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "*");
+//                headers.add(HttpHeaders.ACCESS_CONTROL_MAX_AGE, "3600");
+//                if (request.getMethod() == HttpMethod.OPTIONS) {
+//                    response.setStatusCode(HttpStatus.OK);
+//                    return Mono.empty();
+//                }
+//            }
+//            return chain.filter(ctx);
+//        };
+//    }
+@Bean
+public CorsWebFilter corsFilter() {
+    CorsConfiguration config = new CorsConfiguration();
+    config.addAllowedMethod("*");
+    config.addAllowedOrigin("*");
+    config.addAllowedHeader("*");
+    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());
+    source.registerCorsConfiguration("/**", config);
+    return new CorsWebFilter(source);
+}
+
+}

+ 55 - 0
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/controller/ReminderController.java

@@ -1,12 +1,23 @@
 package com.huimv.env.produce.controller;
 
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 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.ReminderService;
 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;
 
 /**
@@ -23,6 +34,10 @@ import java.util.Map;
 public class ReminderController {
     @Autowired
     private ReminderService reminderService;
+    @Autowired
+    private DataSourceService dataSourceService;
+    @Autowired
+    private RestTemplate restTemplate;
 
     //查询
     @PostMapping("/getReminder")
@@ -35,5 +50,45 @@ public class ReminderController {
     public Result save(@RequestBody Map<String, String> paramsMap) throws ParseException {
         return reminderService.save(paramsMap);
     }
+
+    //查询
+    @PostMapping("/listTodayPlan")
+    public Result listTodayPlan(@RequestBody Map<String, String> paramsMap) throws ParseException {
+        Integer dsStatu = dataSourceService.getDataSourceStatus(paramsMap);
+        if (dsStatu == null) {
+            dsStatu = 0;
+        }
+        if (dsStatu == 1) {
+            //读取远程历史存栏
+            return getTodayPlan(paramsMap);
+        } else {
+            //读取填报数据
+            return reminderService.listTodayPlan(paramsMap);
+        }
+    }
+
+    private Result getTodayPlan(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"));
+        HttpEntity<Map<String, Object>> objectHttpEntity = new HttpEntity<>(map, httpHeaders);
+        //读取真实数据
+        String remoteUrl = "http://123.60.134.84:10001/breed/api/v1.0.0/immunity/listTodayPlan";
+        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,"调取远程数据出错.");
+        }
+    }
+
 }
 

+ 72 - 0
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/controller/SalesDetailController.java

@@ -1,13 +1,23 @@
 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.EliminateDetailService;
 import com.huimv.env.produce.service.SalesDetailService;
 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;
 
 /**
@@ -24,6 +34,68 @@ import java.util.Map;
 public class SalesDetailController {
     @Autowired
     private com.huimv.env.produce.service.SalesDetailService salesDetailService;
+    @Autowired
+    private DataSourceService dataSourceService;
+    @Autowired
+    private RestTemplate restTemplate;
+
+    //查询
+    @PostMapping("/getSaleHistory")
+    public Result getSaleHistory(@RequestBody Map<String, String> paramsMap) throws ParseException {
+        Integer dsStatu = dataSourceService.getDataSourceStatus(paramsMap);
+        if (dsStatu == null) {
+            dsStatu = 0;
+        }
+        if (dsStatu == 1) {
+            //读取远程销售历史
+            return getRemoteSaleHistory(paramsMap);
+        } else {
+            //读取填报数据
+            return salesDetailService.getLocalSaleHistory(paramsMap);
+        }
+    }
+
+    private Result getRemoteSaleHistory(Map<String, String> paramsMap) {
+        return null;
+    }
+
+    //查询
+    @PostMapping("/getAllSale")
+    public Result getAllSale(@RequestBody Map<String, String> paramsMap) throws ParseException {
+        Integer dsStatu = dataSourceService.getDataSourceStatus(paramsMap);
+        if (dsStatu == null) {
+            dsStatu = 0;
+        }
+        if (dsStatu == 1) {
+            //读取远程历史存栏
+            return getRemoteAllSale(paramsMap);
+        } else {
+            //读取填报数据
+            return salesDetailService.getLocalSales(paramsMap);
+        }
+    }
+
+    //
+    private Result getRemoteAllSale(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"));
+        HttpEntity<Map<String, Object>> objectHttpEntity = new HttpEntity<>(map, httpHeaders);
+        //读取真实数据
+        String remoteUrl = "http://123.60.134.84:10001/breed/api/v1.0.0/sales/getAllSale";
+        ResponseEntity<String> entity = restTemplate.postForEntity(remoteUrl, objectHttpEntity, String.class);
+        if(entity.getStatusCode().toString().contains("200")){
+            String body = entity.getBody();
+            System.out.println("body="+body);
+            //JSONArray.parseArray(JSON.parseObject(body).getString("data"))
+            return new Result(ResultCode.SUCCESS,JSON.parseObject(body).getJSONObject("data"));
+        }else{
+            return new Result(ResultCode.FAIL,"调取远程数据出错.");
+        }
+    }
 
     //查询
     @PostMapping("/getSales")

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

@@ -35,10 +35,10 @@ public class StockDetailController {
     private StockDetailService stockDetailService;
     @Autowired
     private DataSourceService dataSourceService;
-    // 从Spring的容器中获取restTemplate
     @Autowired
     private RestTemplate restTemplate;
 
+
     //查询
     @PostMapping("/getStockHistory")
     public Result getStockHistory(@RequestBody Map<String, String> paramsMap) throws ParseException {
@@ -85,7 +85,7 @@ public class StockDetailController {
         }
         if (dsStatu == 1) {
             //读取远程数据
-            return getRemoteStock();
+            return getRemoteStock(paramsMap);
         } else {
             //读取填报数据
             return stockDetailService.getCurrentStock(paramsMap);
@@ -93,13 +93,13 @@ public class StockDetailController {
     }
 
     //读取远程数据
-    public Result getRemoteStock(){
+    public Result getRemoteStock(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", 330110);
+        map.put("farmCode", paramsMap.get("farmCode"));
         HttpEntity<Map<String, Object>> objectHttpEntity = new HttpEntity<>(map, httpHeaders);
         //读取真实数据
         String remoteUrl = "http://123.60.134.84:10001/breed/api/v1.0.0/stock/getCurrentStock";

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

@@ -19,4 +19,6 @@ public interface ReminderService extends IService<Reminder> {
     Result getReminder(Map<String, String> paramsMap);
 
     Result save(Map<String, String> paramsMap);
+
+    Result listTodayPlan(Map<String, String> paramsMap);
 }

+ 4 - 0
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/service/SalesDetailService.java

@@ -24,4 +24,8 @@ public interface SalesDetailService extends IService<SalesDetail> {
     Result remove(Map<String, String> paramsMap);
 
     Result save2(Map<String, String> paramsMap);
+
+    Result getLocalSales(Map<String, String> paramsMap);
+
+    Result getLocalSaleHistory(Map<String, String> paramsMap);
 }

+ 37 - 3
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/service/impl/ReminderServiceImpl.java

@@ -36,13 +36,12 @@ public class ReminderServiceImpl extends ServiceImpl<ReminderMapper, Reminder> i
 
     @Override
     public Result getReminder(Map<String, String> paramsMap) {
-//
+        //
         String farmCode = paramsMap.get("farmCode");
         if(farmCode == null){
             farmCode = DEFAULT_FARM_CODE;
         }
-        JSONObject resultJo = new JSONObject();
-        //查询总表
+        //
         QueryWrapper<Reminder> totalQueryWrapper = new QueryWrapper();
         totalQueryWrapper.eq("farm_code",farmCode);
         totalQueryWrapper.orderByDesc("id");
@@ -74,4 +73,39 @@ public class ReminderServiceImpl extends ServiceImpl<ReminderMapper, Reminder> i
         }
         return new Result(ResultCode.SUCCESS);
     }
+
+    @Override
+    public Result listTodayPlan(Map<String, String> paramsMap) {
+//        String farmCode = paramsMap.get("farmCode");
+//        if(farmCode == null){
+//            farmCode = DEFAULT_FARM_CODE;
+//        }
+        String farmCode = DEFAULT_FARM_CODE;
+        //
+        QueryWrapper<Reminder> totalQueryWrapper = new QueryWrapper();
+        totalQueryWrapper.eq("farm_code",farmCode);
+        totalQueryWrapper.orderByDesc("id");
+        List<Reminder> reminderList = reminderMapper.selectList(totalQueryWrapper);
+        JSONArray dataJa = new JSONArray();
+        for(int a=0;a<reminderList.size();a++){
+            Reminder reminder = reminderList.get(a);
+            JSONObject reminderJo = new JSONObject();
+            reminderJo.put("data",reminder.getContent());
+            dataJa.add(reminderJo);
+        }
+
+        JSONArray emptyJa = new JSONArray();
+        JSONObject resultJo = new JSONObject();
+        resultJo.put("records",dataJa);
+        resultJo.put("total",dataJa.size());
+        resultJo.put("size",10);
+        resultJo.put("current",1);
+        resultJo.put("orders",emptyJa);
+        resultJo.put("optimizeCountSql",true);
+        resultJo.put("searchCount",true);
+        resultJo.put("countId",null);
+        resultJo.put("maxLimit",null);
+        resultJo.put("pages",1);
+        return new Result(ResultCode.SUCCESS,resultJo);
+    }
 }

+ 43 - 0
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/service/impl/SalesDetailServiceImpl.java

@@ -179,4 +179,47 @@ public class SalesDetailServiceImpl extends ServiceImpl<SalesDetailMapper, Sales
         salesMapper.insert(Sales);
         return new Result(ResultCode.SUCCESS);
     }
+
+    @Override
+    public Result getLocalSales(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<Sales> totalQueryWrapper = new QueryWrapper();
+        totalQueryWrapper.eq("farm_code",farmCode);
+        Sales sales = salesMapper.selectOne(totalQueryWrapper);
+        if(sales == null){
+            resultJo.put("thisMoney",0.0);
+            resultJo.put("thisQuantity",0);
+            resultJo.put("lastMoney",0.0);
+            resultJo.put("lastQuantity",0);
+        }else{
+            resultJo.put("thisMoney",sales.getThisSaleMoney());
+            resultJo.put("thisQuantity",sales.getThisSaleCount());
+            resultJo.put("lastMoney",sales.getLastSaleMoney());
+            resultJo.put("lastQuantity",sales.getLastSaleCount());
+        }
+        return new Result(ResultCode.SUCCESS,resultJo);
+    }
+
+    @Override
+    public Result getLocalSaleHistory(Map<String, String> paramsMap) {
+        //
+//        String farmCode = paramsMap.get("farmCode");
+//        if(farmCode == null){
+//            farmCode = DEFAULT_FARM_CODE;
+//        }
+        String farmCode = DEFAULT_FARM_CODE;
+        //查询明细表
+        QueryWrapper<SalesDetail> detailQueryWrapper = new QueryWrapper<>();
+        detailQueryWrapper.eq("farm_code",farmCode);
+        detailQueryWrapper.orderByAsc("id");
+        List<SalesDetail> salesDetailList = salesDetailMapper.selectList(detailQueryWrapper);
+        return new Result(ResultCode.SUCCESS,salesDetailList);
+    }
 }

+ 23 - 0
huimv-env-platform/huimv-env-produce/src/test/java/com/huimv/env/produce/util/DateTest.java

@@ -21,4 +21,27 @@ public class DateTest {
         System.out.println("last="+dateUtil.getLastMonthAndYear());
         System.out.println("this="+dateUtil.getThisMonthAndYear());
     }
+
+    @Test
+    public void test2() {
+        DateUtil dateUtil = new DateUtil();
+        String month = dateUtil.getBeforeMonthAndYear(0);
+        System.out.println("month="+month);
+        String month1 = dateUtil.getBeforeMonthAndYear(1);
+        System.out.println("month1="+month1);
+        String month2 = dateUtil.getBeforeMonthAndYear(2);
+        System.out.println("month2="+month2);
+
+    }
+
+    @Test
+    public void test3() {
+        DateUtil dateUtil = new DateUtil();
+        int count =3;
+        for(int a=count-1;a>=0;a--){
+            String month = dateUtil.getBeforeMonthAndYear(a);
+            System.out.println("month="+month);
+        }
+
+    }
 }