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.PreventDetection; import com.huimv.cattle.pojo.SalesCattle; import com.huimv.cattle.pojo.SysFarm; import com.huimv.cattle.pojo.vo.SalesCattleVo; import com.huimv.cattle.service.DataSourceService; import com.huimv.cattle.service.SalesCattleService; 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; /** *

* 前端控制器 *

* * @author zn * @since 2022-12-15 */ @CrossOrigin @RestController @RequestMapping("/v1.0.0/salesCattle") public class SalesCattleController { @Autowired private SalesCattleService salesCattleService; @Autowired private SysFarmService farmService; @Resource private DataSourceService dataSourceService; @Resource private RestTemplate restTemplate; @Transactional @PostMapping("/saveSalesCattle") public Result add(@RequestBody SalesCattleVo salesCattleVo, HttpServletRequest request){ String farmCode = FarmCodeUtils.getFarmCode(salesCattleVo.getFarmCode(), request); List salesCattles = salesCattleVo.getSalesCattles(); salesCattleService.remove(new QueryWrapper().eq("farm_code",farmCode)); System.out.println(farmCode); for (SalesCattle salesCattle : salesCattles) { salesCattle.setFarmCode(farmCode); salesCattleService.save(salesCattle); } return new Result(10000,"添加成功",true); } @PostMapping("/updateSalesCattle") public Result update(@RequestBody SalesCattle salesCattle){ salesCattleService.updateById(salesCattle); return new Result(10000,"修改成功",true); } @PostMapping("/deleteSalesCattle") public Result delete(@RequestBody Map paramMap){ String ids = paramMap.get("ids"); String[] split = ids.split(","); for (String s : split) { salesCattleService.removeById(s); } return new Result(10000,"删除成功",true); } @PostMapping("/getSalesCattle") public Result list(@RequestBody Map paramsMap,HttpServletRequest request){ String farmCode = FarmCodeUtils.getFarmCode(paramsMap.get("farmCode"), request); // //读取模式切换 DataSource dataSource = dataSourceService.getDataSourceStatus(); if (dataSource.getViewType() == 1) { //view=1,显示县填写数据 return salesCattleService.getSalesCattle(farmCode); } else { //view=2,显示镇汇总数据 if (dataSource.getDsStatus() == 1) { //status=1,显示镇汇总(手填)数据 return salesCattleService.getAllSaleCattle(farmCode); } else { //status=2,显示镇汇总(养殖云)数据 System.out.println("status=2,显示镇汇总(养殖云)数据"); String farmCodes = getFarmCodeByAdcode(farmCode); if (StringUtils.isBlank(farmCodes)){ return new Result(ResultCode.SUCCESS,new ArrayList<>()); } return getSalesByDivision(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); String body = stringResponseEntity.getBody(); System.out.println(body); return body; } private Result getSalesByDivision(String farmCodes) { HttpHeaders httpHeaders = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json;charset=UTF-8"); httpHeaders.setContentType(type); HashMap map = new HashMap<>(); //这里提交的是区县编码或乡镇编码 map.put("farmCodes", farmCodes); HttpEntity> objectHttpEntity = new HttpEntity<>(map, httpHeaders); //读取真实数据 String remoteUrl = "http://123.60.134.84:10001/breed/api/v1.0.0/cattle/getSalesByDivision"; ResponseEntity 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,"调取远程数据出错."); } } }