ProdStockServiceImpl.java 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. package com.huimv.admin.service.impl;
  2. import cn.hutool.core.date.DateTime;
  3. import cn.hutool.core.date.DateUtil;
  4. import cn.hutool.core.util.ObjectUtil;
  5. import com.alibaba.fastjson.JSONArray;
  6. import com.alibaba.fastjson.JSONObject;
  7. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  8. import com.huimv.admin.common.utils.DataUill;
  9. import com.huimv.admin.common.utils.Result;
  10. import com.huimv.admin.common.utils.ResultCode;
  11. import com.huimv.admin.entity.ProdProduction;
  12. import com.huimv.admin.entity.ProdSale;
  13. import com.huimv.admin.entity.ProdStock;
  14. import com.huimv.admin.entity.vo.ProdStockVo;
  15. import com.huimv.admin.mapper.ProdProductionMapper;
  16. import com.huimv.admin.mapper.ProdSaleMapper;
  17. import com.huimv.admin.mapper.ProdStockMapper;
  18. import com.huimv.admin.service.IProdStockService;
  19. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  20. import netscape.javascript.JSObject;
  21. import org.apache.commons.lang.time.DateUtils;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.stereotype.Service;
  24. import javax.servlet.http.HttpServletRequest;
  25. import java.text.NumberFormat;
  26. import java.text.SimpleDateFormat;
  27. import java.util.Calendar;
  28. import java.util.Date;
  29. import java.util.List;
  30. import java.util.Map;
  31. /**
  32. * <p>
  33. * 存栏结构 服务实现类
  34. * </p>
  35. *
  36. * @author author
  37. * @since 2023-02-22
  38. */
  39. @Service
  40. public class ProdStockServiceImpl extends ServiceImpl<ProdStockMapper, ProdStock> implements IProdStockService {
  41. @Autowired
  42. private ProdStockMapper prodStockMapper;
  43. @Autowired
  44. private ProdProductionMapper productionMapper;
  45. @Autowired
  46. private ProdSaleMapper saleMapper;
  47. @Override
  48. public Result list(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  49. String farmId = paramsMap.get("farmId");
  50. QueryWrapper<ProdStock> queryWrapper = new QueryWrapper<>();
  51. queryWrapper.eq("farm_id", farmId);
  52. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //格式化时间
  53. //获取前12个月的第一天
  54. queryWrapper.ge("creat_time", DateUtil.offsetMonth(new Date(),-12));
  55. queryWrapper.orderByAsc("creat_time");
  56. List<ProdStock> prodStocks = prodStockMapper.listDay(queryWrapper);
  57. QueryWrapper<ProdStock> queryWrapper1 = new QueryWrapper<>();
  58. queryWrapper1.eq("farm_id", farmId).orderByDesc("creat_time").last(" limit 1");
  59. ProdStock prodStock = prodStockMapper.selectOne(queryWrapper1);
  60. ProdStockVo prodStockVo = new ProdStockVo();
  61. prodStockVo.setCount(0);
  62. prodStockVo.setProdStock(prodStock);
  63. prodStockVo.setProdStocks(prodStocks);
  64. prodStockVo.setMzclTRate("0");
  65. prodStockVo.setGzclTRate("0");
  66. prodStockVo.setBrzclTRate("0");
  67. prodStockVo.setByzclTRate("0");
  68. prodStockVo.setYfzclRate("0");
  69. prodStockVo.setHbzclRate("0");
  70. prodStockVo.setRczclTRate("0");
  71. prodStockVo.setBrmzclRate("0");
  72. prodStockVo.setKhzclRate("0");
  73. prodStockVo.setSpzclRate("0");
  74. prodStockVo.setZclRate("0");
  75. prodStockVo.setZzclRate("0");
  76. Integer count = 0;
  77. if (ObjectUtil.isNotEmpty(prodStock)){
  78. count =prodStock.getMzcl() + prodStock.getGzcl() + prodStock.getBrzcl() + prodStock.getByzcl() + prodStock.getYfzcl() +
  79. prodStock.getHbzcl() + prodStock.getRszcl() + prodStock.getBrmzcl() + prodStock.getKhzcl() + prodStock.getSpzcl()+prodStock.getZzcl();
  80. NumberFormat nt = NumberFormat.getPercentInstance();
  81. nt.setMinimumFractionDigits(2);
  82. prodStockVo.setCount(count);
  83. prodStockVo.setProdStock(prodStock);
  84. prodStockVo.setProdStocks(prodStocks);
  85. prodStockVo.setMzclTRate(nt.format((double)prodStock.getMzcl()/count));
  86. prodStockVo.setGzclTRate(nt.format((double) prodStock.getGzcl() / count));
  87. prodStockVo.setBrzclTRate(nt.format((double) prodStock.getBrzcl() / count));
  88. prodStockVo.setByzclTRate(nt.format((double) prodStock.getByzcl() / count));
  89. prodStockVo.setYfzclRate(nt.format((double) prodStock.getYfzcl() / count));
  90. prodStockVo.setHbzclRate(nt.format((double) prodStock.getHbzcl() / count));
  91. prodStockVo.setRczclTRate(nt.format((double) prodStock.getRszcl() / count));
  92. prodStockVo.setBrmzclRate(nt.format((double) prodStock.getBrmzcl() / count));
  93. prodStockVo.setKhzclRate(nt.format((double) prodStock.getKhzcl() / count));
  94. prodStockVo.setSpzclRate(nt.format((double) prodStock.getSpzcl() / count));
  95. prodStockVo.setZclRate(nt.format((double) prodStock.getZcl() / count));
  96. prodStockVo.setZzclRate(nt.format((double) prodStock.getZzcl() / count));
  97. }
  98. return new Result(ResultCode.SUCCESS,prodStockVo);
  99. }
  100. @Override
  101. public Result listStockScreen(HttpServletRequest httpServletRequest, Map<String, String> paramaMap) {
  102. String farmId = paramaMap.get("farmId");
  103. QueryWrapper<ProdStock> queryWrapper = new QueryWrapper<>();
  104. queryWrapper.eq("farm_id", farmId);
  105. queryWrapper.orderByDesc("creat_time").last(" limit 1");
  106. ProdStock prodStock = prodStockMapper.selectOne(queryWrapper);
  107. JSONObject jsonObject = new JSONObject();
  108. jsonObject.put("yfcl", prodStock.getYfzcl());
  109. jsonObject.put("bycl", prodStock.getByzcl());
  110. QueryWrapper<ProdProduction> queryWrapper1 = new QueryWrapper<>();
  111. queryWrapper1.eq("farm_id", farmId).orderByDesc("creat_time").last(" limit 1");
  112. ProdProduction prodProduction = productionMapper.selectOne(queryWrapper1);
  113. jsonObject.put("chl", prodProduction.getBychl());
  114. Date timesMonthmorning = DataUill.getTimesMonthmorning();
  115. QueryWrapper<ProdSale> queryWrapper2 = new QueryWrapper<>();
  116. queryWrapper2.eq("farm_id", farmId).ge("creat_time", timesMonthmorning);
  117. Integer count = 0;
  118. List<ProdSale> prodSales = saleMapper.selectList(queryWrapper2);
  119. for (ProdSale prodSale : prodSales) {
  120. count = count + prodSale.getSaleQuantity();
  121. }
  122. DateTime dateTime = DateUtil.beginOfYear(new Date());
  123. QueryWrapper<ProdSale> queryWrapper3 = new QueryWrapper<>();
  124. queryWrapper3.eq("farm_id", farmId).ge("creat_time",dateTime);
  125. Integer yearCount = 0;
  126. List<ProdSale> yearProdSales = saleMapper.selectList(queryWrapper3);
  127. for (ProdSale prodSale : yearProdSales) {
  128. yearCount = yearCount + prodSale.getSaleQuantity();
  129. }
  130. jsonObject.put("monthCount", count);
  131. jsonObject.put("yearCount", yearCount);
  132. return new Result(ResultCode.SUCCESS,jsonObject);
  133. }
  134. }