Browse Source

添加牧场排名

523096025 2 years ago
parent
commit
26f4852c42

+ 81 - 6
huimv-cattle/src/main/java/com/huimv/cattle/controller/FarmStockRankController.java

@@ -2,20 +2,35 @@ 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.FarmStockRank;
 import com.huimv.cattle.pojo.SalesCattle;
+import com.huimv.cattle.pojo.SysFarm;
 import com.huimv.cattle.pojo.vo.FarmStockRankVo;
+import com.huimv.cattle.service.DataSourceService;
 import com.huimv.cattle.service.FarmStockRankService;
+import com.huimv.cattle.service.SysFarmService;
 import com.huimv.cattle.utils.FarmCodeUtils;
 import com.huimv.common.utils.Result;
 import com.huimv.common.utils.ResultCode;
+import org.apache.commons.lang3.StringUtils;
 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.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.client.RestTemplate;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -34,6 +49,12 @@ public class FarmStockRankController {
 
     @Autowired
     private FarmStockRankService farmStockRankService;
+    @Resource
+    private DataSourceService dataSourceService;
+    @Resource
+    private RestTemplate restTemplate;
+    @Autowired
+    private SysFarmService farmService;
 
     @PostMapping("/saveFarmStockRank")
     @Transactional
@@ -41,8 +62,6 @@ public class FarmStockRankController {
         String farmCode = FarmCodeUtils.getFarmCode(farmStockRankVo.getFarmCode(), request);
         List<FarmStockRank> farmStockRanks = farmStockRankVo.getFarmStockRanks();
         farmStockRankService.remove(new QueryWrapper<FarmStockRank>().eq("farm_code",farmCode));
-        System.out.println(farmStockRankVo.getFarmCode());
-        System.out.println(farmStockRanks.toString());
         for (FarmStockRank farmStockRank : farmStockRanks) {
             farmStockRank.setFarmCode(farmCode);
             farmStockRankService.save(farmStockRank);
@@ -66,11 +85,67 @@ public class FarmStockRankController {
     @PostMapping("/getFarmStockRank")
     public  Result list(@RequestBody FarmStockRank farmStockRank,HttpServletRequest request){
         String farmCode = FarmCodeUtils.getFarmCode(farmStockRank.getFarmCode(), request);
-        List<FarmStockRank> list = farmStockRankService.list(new QueryWrapper<FarmStockRank>().eq("farm_code",farmCode).orderByDesc("stock"));
-        if (ObjectUtil.isEmpty(list)){
-            return new Result(ResultCode.SUCCESS,new ArrayList<>());
+        //        //读取模式切换
+        DataSource dataSource = dataSourceService.getDataSourceStatus();
+        if (dataSource.getViewType() == 1) {
+            //view=1,显示县填写数据
+            return  farmStockRankService.getFarmStockRank(farmCode);
+        } else {
+            //view=2,显示镇汇总数据
+            if (dataSource.getDsStatus() == 1) {
+                //status=1,显示镇汇总(手填)数据
+                return  farmStockRankService.getFarmStockRank(farmCode);
+            } else {
+                //status=2,显示镇汇总(养殖云)数据
+                System.out.println("status=2,显示镇汇总(养殖云)数据");
+                JSONArray farmCodes =   getFarmCodeByAdcode(farmCode);
+                if (ObjectUtil.isEmpty(farmCodes)){
+                    return new Result(ResultCode.SUCCESS,new ArrayList<>());
+                }
+                return getStockRankByDivision(farmCodes);
+            }
+        }
+    }
+
+    private Result getStockRankByDivision(JSONArray farmCodes) {
+        HttpHeaders httpHeaders = new HttpHeaders();
+        MediaType type = MediaType.parseMediaType("application/json;charset=UTF-8");
+        httpHeaders.setContentType(type);
+        HashMap<String, Object> map = new HashMap<>();
+        //这里提交的是区县编码或乡镇编码
+        map.put("farmCodes", farmCodes);
+        HttpEntity<Map<String, Object>> objectHttpEntity = new HttpEntity<>(map, httpHeaders);
+        //读取真实数据
+        String remoteUrl = "http://123.60.134.84:10001/breed/api/v1.0.0/cattle/getStockRankByDivision";
+        ResponseEntity<String> entity = restTemplate.postForEntity(remoteUrl, objectHttpEntity, String.class);
+        if(entity.getStatusCode().toString().contains("200")){
+            String body = entity.getBody();
+            System.out.println(body);
+            JSONArray dataJo = JSON.parseObject(body).getJSONArray("data");
+            System.out.println("dataJo="+dataJo);
+            //, )
+            return new Result(ResultCode.SUCCESS,dataJo);
+        }else{
+            return new Result(ResultCode.FAIL,"调取远程数据出错.");
+        }
+    }
+
+    private JSONArray 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];
+            }
         }
-        return new Result(ResultCode.SUCCESS,list);
+        String remoteUrl = "http://123.60.134.84:10001/admin/v1.0.0/account/getFarmByAdcode";
+        Map map = new HashMap();
+        map.put("adcode",adcode);
+        ResponseEntity<String> stringResponseEntity = restTemplate.postForEntity(remoteUrl, map, String.class);
+        JSONArray jsonObject = JSON.parseArray(stringResponseEntity.getBody());
+        System.out.println(jsonObject);
+        return jsonObject;
     }
 }
 

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

@@ -2,6 +2,7 @@ package com.huimv.cattle.service;
 
 import com.huimv.cattle.pojo.FarmStockRank;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.common.utils.Result;
 
 /**
  * <p>
@@ -13,4 +14,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface FarmStockRankService extends IService<FarmStockRank> {
 
+    Result getFarmStockRank(String farmCode);
 }

+ 19 - 0
huimv-cattle/src/main/java/com/huimv/cattle/service/impl/FarmStockRankServiceImpl.java

@@ -1,11 +1,20 @@
 package com.huimv.cattle.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.huimv.cattle.pojo.FarmStockRank;
 import com.huimv.cattle.mapper.FarmStockRankMapper;
 import com.huimv.cattle.service.FarmStockRankService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huimv.common.utils.Result;
+import com.huimv.common.utils.ResultCode;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.xml.ws.Action;
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * <p>
  *  服务实现类
@@ -17,4 +26,14 @@ import org.springframework.stereotype.Service;
 @Service
 public class FarmStockRankServiceImpl extends ServiceImpl<FarmStockRankMapper, FarmStockRank> implements FarmStockRankService {
 
+    @Autowired
+    private FarmStockRankMapper farmStockRankMapper;
+    @Override
+    public Result getFarmStockRank(String farmCode) {
+        List<FarmStockRank> list = farmStockRankMapper.selectList(new QueryWrapper<FarmStockRank>().eq("farm_code",farmCode).orderByDesc("stock"));
+        if (ObjectUtil.isEmpty(list)){
+            return new Result(ResultCode.SUCCESS,new ArrayList<>());
+        }
+        return new Result(ResultCode.SUCCESS,list);
+    }
 }