OutStockController.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. package com.huimv.cattle.controller;
  2. import cn.hutool.core.util.ObjectUtil;
  3. import com.alibaba.fastjson.JSON;
  4. import com.alibaba.fastjson.JSONArray;
  5. import com.alibaba.fastjson.JSONObject;
  6. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  7. import com.huimv.cattle.pojo.DataSource;
  8. import com.huimv.cattle.pojo.SysFarm;
  9. import com.huimv.cattle.service.DataSourceService;
  10. import com.huimv.cattle.service.OutStockService;
  11. import com.huimv.cattle.service.SysFarmService;
  12. import com.huimv.cattle.utils.FarmCodeUtils;
  13. import com.huimv.common.utils.Result;
  14. import com.huimv.common.utils.ResultCode;
  15. import org.apache.commons.lang3.StringUtils;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.http.HttpEntity;
  18. import org.springframework.http.HttpHeaders;
  19. import org.springframework.http.MediaType;
  20. import org.springframework.http.ResponseEntity;
  21. import org.springframework.web.bind.annotation.*;
  22. import org.springframework.web.client.RestTemplate;
  23. import javax.annotation.Resource;
  24. import javax.servlet.http.HttpServletRequest;
  25. import java.util.ArrayList;
  26. import java.util.HashMap;
  27. import java.util.Map;
  28. /**
  29. * <p>
  30. * 前端控制器
  31. * </p>
  32. *
  33. * @author zn
  34. * @since 2022-12-15
  35. */
  36. @CrossOrigin
  37. @RestController
  38. @RequestMapping("/v1.0.0/out-stock")
  39. public class OutStockController {
  40. @Autowired
  41. private OutStockService outStockService;
  42. @Resource
  43. private DataSourceService dataSourceService;
  44. @Resource
  45. private RestTemplate restTemplate;
  46. @Autowired
  47. private SysFarmService farmService;
  48. @PostMapping("/getOutStock")
  49. public Result getList(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
  50. String farmCode = FarmCodeUtils.getFarmCode(paramsMap.get("farmCode"), httpServletRequest);
  51. // //读取模式切换
  52. DataSource dataSource = dataSourceService.getDataSourceStatus();
  53. if (dataSource.getViewType() == 1) {
  54. //view=1,显示县填写数据
  55. return outStockService.listOutStock(httpServletRequest,paramsMap);
  56. } else {
  57. //view=2,显示镇汇总数据
  58. if (dataSource.getDsStatus() == 1) {
  59. //status=1,显示镇汇总(手填)数据
  60. return outStockService.listOutStock(httpServletRequest,paramsMap);
  61. } else {
  62. //status=2,显示镇汇总(养殖云)数据
  63. System.out.println("status=2,显示镇汇总(养殖云)数据");
  64. String farmCodes = getFarmCodeByAdcode(farmCode);
  65. System.out.println(farmCodes);
  66. if (StringUtils.isBlank(farmCodes)){
  67. return new Result(ResultCode.SUCCESS,new ArrayList<>());
  68. }
  69. return getStockFromBreedCloud(farmCodes);
  70. //++++++++++++++++++++++++++++++++++++++++++++++++++
  71. }
  72. }
  73. }
  74. private String getFarmCodeByAdcode(String farmCode) {
  75. String adcode = "620826";
  76. if (!"0".equals(farmCode)){
  77. SysFarm list = farmService.getOne(new QueryWrapper<SysFarm>().eq("farm_code", farmCode));
  78. if (ObjectUtil.isNotEmpty(list)){
  79. String[] split = list.getAdcode().split(",");
  80. adcode = split[split.length-1];
  81. }
  82. }
  83. String remoteUrl = "http://123.60.134.84:10001/admin/v1.0.0/account/getFarmCodeByAdcode";
  84. Map map = new HashMap();
  85. map.put("adcode",adcode);
  86. ResponseEntity<String> stringResponseEntity = restTemplate.postForEntity(remoteUrl, map, String.class);
  87. return stringResponseEntity.getBody();
  88. }
  89. //从养殖云获取数据
  90. private Result getStockFromBreedCloud(String farmCodes) {
  91. HttpHeaders httpHeaders = new HttpHeaders();
  92. MediaType type = MediaType.parseMediaType("application/json;charset=UTF-8");
  93. httpHeaders.setContentType(type);
  94. // MultiValueMap<String, Object> map=new LinkedMultiValueMap<>();
  95. HashMap<String, Object> map = new HashMap<>();
  96. //这里提交的是区县编码或乡镇编码
  97. map.put("farmCode", farmCodes);
  98. HttpEntity<Map<String, Object>> objectHttpEntity = new HttpEntity<>(map, httpHeaders);
  99. //读取真实数据
  100. String remoteUrl = "http://123.60.134.84:10001/breed/api/v1.0.0/cattle/getOutStockByDivision";
  101. ResponseEntity<String> entity = restTemplate.postForEntity(remoteUrl, objectHttpEntity, String.class);
  102. if(entity.getStatusCode().toString().contains("200")){
  103. String body = entity.getBody();
  104. System.out.println(body);
  105. JSONObject jsonObject = JSONObject.parseObject(body);
  106. String data = jsonObject.get("data").toString();
  107. JSONArray jsonArray = JSONArray.parseArray(data);
  108. System.out.println("dataJo="+jsonArray);
  109. //, )
  110. return new Result(ResultCode.SUCCESS,jsonArray);
  111. }else{
  112. return new Result(ResultCode.FAIL,"调取远程数据出错.");
  113. }
  114. }
  115. @PostMapping("/saveOutStock")
  116. public Result addOutStock(HttpServletRequest httpServletRequest, @RequestBody Map<String,String> paramsMap) {
  117. return outStockService.addOutStock(httpServletRequest,paramsMap);
  118. }
  119. @PostMapping("/deleteOutStock")
  120. public Result delete(@RequestBody Map<String,String> paramsMap) {
  121. String ids = paramsMap.get("ids");
  122. String[] id=ids.split(",");
  123. for (String s : id) {
  124. outStockService.removeById(s);
  125. }
  126. return new Result(ResultCode.SUCCESS,"删除成功");
  127. }
  128. }