StockServiceImpl.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. package com.huimv.cattle.service.impl;
  2. import cn.hutool.core.util.ObjectUtil;
  3. import com.alibaba.fastjson.JSONArray;
  4. import com.alibaba.fastjson.JSONObject;
  5. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  6. import com.huimv.cattle.mapper.SysRegionCounTownVillMapper;
  7. import com.huimv.cattle.pojo.Stock;
  8. import com.huimv.cattle.mapper.StockMapper;
  9. import com.huimv.cattle.service.OverviewService;
  10. import com.huimv.cattle.service.StockService;
  11. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  12. import com.huimv.cattle.token.TokenSign;
  13. import com.huimv.common.utils.Result;
  14. import com.huimv.common.utils.ResultCode;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.stereotype.Service;
  17. import javax.annotation.Resource;
  18. import javax.servlet.http.HttpServletRequest;
  19. import java.text.NumberFormat;
  20. import java.util.ArrayList;
  21. import java.util.List;
  22. import java.util.Map;
  23. /**
  24. * <p>
  25. * 服务实现类
  26. * </p>
  27. *
  28. * @author zn
  29. * @since 2022-12-14
  30. */
  31. @Service
  32. public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements StockService {
  33. @Autowired
  34. private StockMapper stockMapper;
  35. @Autowired
  36. private SysRegionCounTownVillMapper sysRegionCounTownVillMapper;
  37. @Override
  38. public Result getStock(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  39. // Stock stock = stockMapper.getList();
  40. QueryWrapper<Stock> queryWrapper = new QueryWrapper<>();
  41. queryWrapper.eq("farm_Code",0);
  42. List<Stock> stocks = stockMapper.selectList(queryWrapper);
  43. JSONObject jsonObject = new JSONObject();
  44. int count = 0;
  45. int fatCount = 0;
  46. int cowStock = 0;
  47. int bullStock = 0;
  48. if (stocks.size() == 0) {
  49. jsonObject.put("fatStock", 0);
  50. jsonObject.put("cowStock", 0);
  51. jsonObject.put("bullStock", 0);
  52. jsonObject.put("count", 0);
  53. jsonObject.put("fat", 0);
  54. jsonObject.put("cow", 0);
  55. jsonObject.put("bull", 0);
  56. jsonObject.put("farmCode", 0);
  57. } else {
  58. for (int i = 0; i < stocks.size(); i++) {
  59. count = count + stocks.get(i).getFatStock() + stocks.get(i).getCowStock() + stocks.get(i).getBullStock();
  60. fatCount = fatCount + stocks.get(i).getFatStock();
  61. cowStock = cowStock + stocks.get(i).getCowStock();
  62. bullStock = bullStock + stocks.get(i).getBullStock();
  63. }
  64. //创建一个数值格式化对象
  65. NumberFormat numberFormat = NumberFormat.getInstance();
  66. //设置精确到小数点后2位
  67. numberFormat.setMaximumFractionDigits(2);
  68. String fat = numberFormat.format((float) fatCount / (float) count * 100) + "%";
  69. String cow = numberFormat.format((float) cowStock / (float) count * 100) + "%";
  70. String bull = numberFormat.format((float) bullStock / (float) count * 100) + "%";
  71. jsonObject.put("fatStock", fatCount);
  72. jsonObject.put("cowStock", cowStock);
  73. jsonObject.put("bullStock", bullStock);
  74. jsonObject.put("count", count);
  75. jsonObject.put("fat", fat);
  76. jsonObject.put("cow", cow);
  77. jsonObject.put("bull", bull);
  78. }
  79. return new Result(ResultCode.SUCCESS, jsonObject);
  80. }
  81. @Override
  82. public Result add(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  83. String farmCode = paramsMap.get("farmCode");
  84. if (farmCode == null) {
  85. farmCode = TokenSign.getFarmCode(httpServletRequest);
  86. }
  87. QueryWrapper<Stock> queryWrapper = new QueryWrapper<>();
  88. queryWrapper.eq("farm_code", farmCode);
  89. Stock stock1 = stockMapper.selectOne(queryWrapper);
  90. Integer fatStock = Integer.parseInt(paramsMap.get("fatStock"));
  91. Integer cowStock = Integer.parseInt(paramsMap.get("cowStock"));
  92. Integer bullStock = Integer.parseInt(paramsMap.get("bullStock"));
  93. // Stock list = stockMapper.getList();
  94. if (ObjectUtil.isEmpty(stock1)) {
  95. Stock stock = new Stock();
  96. stock.setFatStock(fatStock);
  97. stock.setCowStock(cowStock);
  98. stock.setBullStock(bullStock);
  99. stock.setFarmCode(farmCode);
  100. stockMapper.insert(stock);
  101. return new Result(ResultCode.SUCCESS);
  102. } else {
  103. stock1.setFatStock(fatStock);
  104. stock1.setCowStock(cowStock);
  105. stock1.setBullStock(bullStock);
  106. stock1.setFarmCode(farmCode);
  107. stockMapper.updateById(stock1);
  108. return new Result(ResultCode.SUCCESS);
  109. }
  110. }
  111. @Override
  112. public Result getListStock(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  113. String farmCode = paramsMap.get("farmCode");
  114. if (farmCode == null) {
  115. farmCode = TokenSign.getFarmCode(httpServletRequest);
  116. }
  117. JSONObject jsonObject = new JSONObject();
  118. QueryWrapper<Stock> queryWrapper = new QueryWrapper<>();
  119. queryWrapper.eq("farm_code", farmCode);
  120. Stock stock = stockMapper.selectOne(queryWrapper);
  121. if (ObjectUtil.isEmpty(stock)) {
  122. jsonObject.put("fatStock", 0);
  123. jsonObject.put("cowStock", 0);
  124. jsonObject.put("bullStock", 0);
  125. jsonObject.put("count", 0);
  126. jsonObject.put("fat", 0);
  127. jsonObject.put("cow", 0);
  128. jsonObject.put("bull", 0);
  129. jsonObject.put("farmCode", 0);
  130. } else {
  131. Integer count = stock.getFatStock() + stock.getBullStock() + stock.getCowStock();
  132. //创建一个数值格式化对象
  133. NumberFormat numberFormat = NumberFormat.getInstance();
  134. //设置精确到小数点后2位
  135. numberFormat.setMaximumFractionDigits(2);
  136. String fat = numberFormat.format((float) stock.getFatStock() / (float) count * 100) + "%";
  137. String cow = numberFormat.format((float) stock.getCowStock() / (float) count * 100) + "%";
  138. String bull = numberFormat.format((float) stock.getBullStock() / (float) count * 100) + "%";
  139. jsonObject.put("fatStock", stock.getFatStock());
  140. jsonObject.put("cowStock", stock.getCowStock());
  141. jsonObject.put("bullStock", stock.getBullStock());
  142. jsonObject.put("count", count);
  143. jsonObject.put("fat", fat);
  144. jsonObject.put("cow", cow);
  145. jsonObject.put("bull", bull);
  146. }
  147. return new Result(ResultCode.SUCCESS, jsonObject);
  148. }
  149. @Override
  150. public Result getListStockScreen(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  151. String farmCode = paramsMap.get("farmCode");
  152. if (farmCode == null) {
  153. farmCode = TokenSign.getFarmCode(httpServletRequest);
  154. }
  155. JSONObject jsonObject = new JSONObject();
  156. Stock stock = new Stock();
  157. String cityCode ="";
  158. if (farmCode == null || farmCode.equals("0")){
  159. cityCode= sysRegionCounTownVillMapper.listSub(farmCode);
  160. System.out.println(cityCode);
  161. String[] city = cityCode.split(",");
  162. stock = stockMapper.getListStock(city);
  163. }else {
  164. QueryWrapper<Stock> queryWrapper = new QueryWrapper<>();
  165. queryWrapper.eq("farm_code", farmCode);
  166. stock = stockMapper.selectOne(queryWrapper);
  167. }
  168. if (ObjectUtil.isEmpty(stock)) {
  169. jsonObject.put("fatStock", 0);
  170. jsonObject.put("cowStock", 0);
  171. jsonObject.put("bullStock", 0);
  172. jsonObject.put("count", 0);
  173. jsonObject.put("fat", 0);
  174. jsonObject.put("cow", 0);
  175. jsonObject.put("bull", 0);
  176. jsonObject.put("farmCode", 0);
  177. } else {
  178. Integer count = stock.getFatStock() + stock.getBullStock() + stock.getCowStock();
  179. //创建一个数值格式化对象
  180. NumberFormat numberFormat = NumberFormat.getInstance();
  181. //设置精确到小数点后2位
  182. numberFormat.setMaximumFractionDigits(2);
  183. String fat = numberFormat.format((float) stock.getFatStock() / (float) count * 100) + "%";
  184. String cow = numberFormat.format((float) stock.getCowStock() / (float) count * 100) + "%";
  185. String bull = numberFormat.format((float) stock.getBullStock() / (float) count * 100) + "%";
  186. jsonObject.put("fatStock", stock.getFatStock());
  187. jsonObject.put("cowStock", stock.getCowStock());
  188. jsonObject.put("bullStock", stock.getBullStock());
  189. jsonObject.put("count", count);
  190. jsonObject.put("fat", fat);
  191. jsonObject.put("cow", cow);
  192. jsonObject.put("bull", bull);
  193. }
  194. return new Result(ResultCode.SUCCESS, jsonObject);
  195. }
  196. @Override
  197. public Result getListVillageStockScreen(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  198. String farmCode = paramsMap.get("farmCode");
  199. if (farmCode == null) {
  200. farmCode = TokenSign.getFarmCode(httpServletRequest);
  201. }
  202. JSONObject jsonObject = new JSONObject();
  203. Stock stock = new Stock();
  204. String cityCode ="";
  205. String subCityCode="";
  206. List<String> subCityList = new ArrayList<>();
  207. if (farmCode == null || farmCode.equals("0")){
  208. cityCode= sysRegionCounTownVillMapper.listSub(farmCode);
  209. String[] city = cityCode.split(",");
  210. for (String s : city) {
  211. subCityCode = sysRegionCounTownVillMapper.listSub(s);
  212. String[] strings = subCityCode.split(",");
  213. for (String string : strings) {
  214. subCityList.add(string);
  215. }
  216. }
  217. String[] subCity = subCityList.toArray(new String[subCityList.size()]);
  218. stock = stockMapper.getListStock(subCity);
  219. }else {
  220. cityCode= sysRegionCounTownVillMapper.listSub(farmCode);
  221. System.out.println(cityCode);
  222. String[] city = cityCode.split(",");
  223. stock = stockMapper.getListStock(city);
  224. }
  225. if (ObjectUtil.isEmpty(stock)) {
  226. jsonObject.put("fatStock", 0);
  227. jsonObject.put("cowStock", 0);
  228. jsonObject.put("bullStock", 0);
  229. jsonObject.put("count", 0);
  230. jsonObject.put("fat", 0);
  231. jsonObject.put("cow", 0);
  232. jsonObject.put("bull", 0);
  233. jsonObject.put("farmCode", 0);
  234. } else {
  235. Integer count = stock.getFatStock() + stock.getBullStock() + stock.getCowStock();
  236. //创建一个数值格式化对象
  237. NumberFormat numberFormat = NumberFormat.getInstance();
  238. //设置精确到小数点后2位
  239. numberFormat.setMaximumFractionDigits(2);
  240. String fat = numberFormat.format((float) stock.getFatStock() / (float) count * 100) + "%";
  241. String cow = numberFormat.format((float) stock.getCowStock() / (float) count * 100) + "%";
  242. String bull = numberFormat.format((float) stock.getBullStock() / (float) count * 100) + "%";
  243. jsonObject.put("fatStock", stock.getFatStock());
  244. jsonObject.put("cowStock", stock.getCowStock());
  245. jsonObject.put("bullStock", stock.getBullStock());
  246. jsonObject.put("count", count);
  247. jsonObject.put("fat", fat);
  248. jsonObject.put("cow", cow);
  249. jsonObject.put("bull", bull);
  250. }
  251. return new Result(ResultCode.SUCCESS, jsonObject);
  252. }
  253. @Resource
  254. private OverviewService overviewService;
  255. @Override
  256. public Result getAllTownStock(HttpServletRequest request, JSONArray allTownsJa) {
  257. for (int a = 0; a < allTownsJa.size(); a++) {
  258. JSONObject townJo = allTownsJa.getJSONObject(a);
  259. System.out.println("townJo=" + townJo);
  260. //根据乡镇读取填报存栏数据
  261. JSONObject stockJo = getStockByTown(townJo);
  262. townJo.put("fatStock", stockJo.getString("fatStock"));
  263. townJo.put("sowStock", stockJo.getString("cowStock"));
  264. townJo.put("boarStock", stockJo.getString("bullStock"));
  265. townJo.put("totalStock", stockJo.getString("totalStock"));
  266. //根据乡镇读取填报出栏数据
  267. Integer outStock = overviewService.getOutStock(townJo);
  268. townJo.put("outStock", String.valueOf(outStock));
  269. }
  270. return new Result(ResultCode.SUCCESS, allTownsJa);
  271. }
  272. //获取一个城镇的存栏和出栏
  273. private JSONObject getStockByTown(JSONObject townJo) {
  274. System.out.println("farmCode==" + townJo.getString("farmCode"));
  275. JSONObject jsonObject = new JSONObject();
  276. QueryWrapper<Stock> queryWrapper = new QueryWrapper<>();
  277. queryWrapper.eq("farm_code", townJo.getString("farmCode"));
  278. Stock stock = stockMapper.selectOne(queryWrapper);
  279. if (ObjectUtil.isEmpty(stock)) {
  280. jsonObject.put("fatStock", 0);
  281. jsonObject.put("cowStock", 0);
  282. jsonObject.put("bullStock", 0);
  283. jsonObject.put("totalStock", 0);
  284. jsonObject.put("outStock", 0);
  285. jsonObject.put("farmCode", 0);
  286. } else {
  287. Integer count = stock.getFatStock() + stock.getBullStock() + stock.getCowStock();
  288. jsonObject.put("fatStock", stock.getFatStock());
  289. jsonObject.put("cowStock", stock.getCowStock());
  290. jsonObject.put("bullStock", stock.getBullStock());
  291. jsonObject.put("totalStock", String.valueOf(count));
  292. jsonObject.put("outStock", String.valueOf(0));
  293. }
  294. return jsonObject;
  295. }
  296. }