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.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.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.Map; /** *

* 前端控制器 *

* * @author zn * @since 2022-12-15 */ @CrossOrigin @RestController @RequestMapping("/v1.0.0/overview") public class OverviewController { @Autowired private OverviewService overviewService; @Resource private DataSourceService dataSourceService; @Resource private RestTemplate restTemplate; @Autowired private SysFarmService farmService; @PostMapping("/getOverview") public Result getOverView(HttpServletRequest httpServletRequest, @RequestBody Map 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); //++++++++++++++++++++++++++++++++++++++++++++++++++ } } } @PostMapping("/getOverviewScreen") public Result getOverviewScreen(HttpServletRequest httpServletRequest, @RequestBody Map paramsMap) { String farmCode = FarmCodeUtils.getFarmCode(paramsMap.get("farmCode"), httpServletRequest); // //读取模式切换 DataSource dataSource = dataSourceService.getDataSourceStatus(); // if (dataSource.getDsStatus() == 1){ // if (farmCode == null || farmCode.equals("0")){ // return overviewService.overList(httpServletRequest,paramsMap); // }else { // return overviewService.getListOverviewScreen(httpServletRequest,paramsMap); // } // }else { // 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); // } if (dataSource.getViewType() == 1) { //view=1,显示县填写数据 return overviewService.overList(httpServletRequest,paramsMap); } else { //view=2,显示镇汇总数据 if (dataSource.getDsStatus() == 1) { //status=1,显示镇汇总(手填)数据 return overviewService.getListOverviewScreen(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().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 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 map=new LinkedMultiValueMap<>(); HashMap map = new HashMap<>(); //这里提交的是区县编码或乡镇编码 map.put("farmCode", farmCodes); HttpEntity> objectHttpEntity = new HttpEntity<>(map, httpHeaders); //读取真实数据 String remoteUrl = "http://123.60.134.84:10001/breed/api/v1.0.0/cattle/getFarmCountByDivision"; ResponseEntity 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); dataJo.put("variety",0); //, ) return new Result(ResultCode.SUCCESS,dataJo); }else{ return new Result(ResultCode.FAIL,"调取远程数据出错."); } } @PostMapping("/saveOverview") public Result saveOverView(HttpServletRequest httpServletRequest,@RequestBody Map paramsMap) { return overviewService.add(httpServletRequest,paramsMap); } @PostMapping("/deleteSaveOverview") public Result delete(@RequestBody Map paramsMap) { String ids = paramsMap.get("ids"); String[] id=ids.split(","); for (String s : id) { overviewService.removeById(s); } return new Result(ResultCode.SUCCESS,"删除成功"); } }