123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- package com.huimv.admin.service.impl;
- import cn.hutool.core.date.DateTime;
- import cn.hutool.core.date.DateUtil;
- import cn.hutool.core.util.ObjectUtil;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.huimv.admin.common.utils.DataUill;
- import com.huimv.admin.common.utils.Result;
- import com.huimv.admin.common.utils.ResultCode;
- import com.huimv.admin.entity.ProdProduction;
- import com.huimv.admin.entity.ProdSale;
- import com.huimv.admin.entity.ProdStock;
- import com.huimv.admin.entity.vo.ProdStockVo;
- import com.huimv.admin.mapper.ProdProductionMapper;
- import com.huimv.admin.mapper.ProdSaleMapper;
- import com.huimv.admin.mapper.ProdStockMapper;
- import com.huimv.admin.service.IProdStockService;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import netscape.javascript.JSObject;
- import org.apache.commons.lang.time.DateUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import javax.servlet.http.HttpServletRequest;
- import java.text.NumberFormat;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- /**
- * <p>
- * 存栏结构 服务实现类
- * </p>
- *
- * @author author
- * @since 2023-02-22
- */
- @Service
- public class ProdStockServiceImpl extends ServiceImpl<ProdStockMapper, ProdStock> implements IProdStockService {
- @Autowired
- private ProdStockMapper prodStockMapper;
- @Autowired
- private ProdProductionMapper productionMapper;
- @Autowired
- private ProdSaleMapper saleMapper;
- @Override
- public Result list(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
- String farmId = paramsMap.get("farmId");
- QueryWrapper<ProdStock> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("farm_id", farmId);
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //格式化时间
- //获取前12个月的第一天
- queryWrapper.ge("creat_time", DateUtil.offsetMonth(new Date(),-12));
- queryWrapper.orderByAsc("creat_time");
- List<ProdStock> prodStocks = prodStockMapper.listDay(queryWrapper);
- QueryWrapper<ProdStock> queryWrapper1 = new QueryWrapper<>();
- queryWrapper1.eq("farm_id", farmId).orderByDesc("creat_time").last(" limit 1");
- ProdStock prodStock = prodStockMapper.selectOne(queryWrapper1);
- ProdStockVo prodStockVo = new ProdStockVo();
- prodStockVo.setCount(0);
- prodStockVo.setProdStock(prodStock);
- prodStockVo.setProdStocks(prodStocks);
- prodStockVo.setMzclTRate("0");
- prodStockVo.setGzclTRate("0");
- prodStockVo.setBrzclTRate("0");
- prodStockVo.setByzclTRate("0");
- prodStockVo.setYfzclRate("0");
- prodStockVo.setHbzclRate("0");
- prodStockVo.setRczclTRate("0");
- prodStockVo.setBrmzclRate("0");
- prodStockVo.setKhzclRate("0");
- prodStockVo.setSpzclRate("0");
- prodStockVo.setZclRate("0");
- prodStockVo.setZzclRate("0");
- Integer count = 0;
- if (ObjectUtil.isNotEmpty(prodStock)){
- count =prodStock.getMzcl() + prodStock.getGzcl() + prodStock.getBrzcl() + prodStock.getByzcl() + prodStock.getYfzcl() +
- prodStock.getHbzcl() + prodStock.getRszcl() + prodStock.getBrmzcl() + prodStock.getKhzcl() + prodStock.getSpzcl()+prodStock.getZzcl();
- NumberFormat nt = NumberFormat.getPercentInstance();
- nt.setMinimumFractionDigits(2);
- prodStockVo.setCount(count);
- prodStockVo.setProdStock(prodStock);
- prodStockVo.setProdStocks(prodStocks);
- prodStockVo.setMzclTRate(nt.format((double)prodStock.getMzcl()/count));
- prodStockVo.setGzclTRate(nt.format((double) prodStock.getGzcl() / count));
- prodStockVo.setBrzclTRate(nt.format((double) prodStock.getBrzcl() / count));
- prodStockVo.setByzclTRate(nt.format((double) prodStock.getByzcl() / count));
- prodStockVo.setYfzclRate(nt.format((double) prodStock.getYfzcl() / count));
- prodStockVo.setHbzclRate(nt.format((double) prodStock.getHbzcl() / count));
- prodStockVo.setRczclTRate(nt.format((double) prodStock.getRszcl() / count));
- prodStockVo.setBrmzclRate(nt.format((double) prodStock.getBrmzcl() / count));
- prodStockVo.setKhzclRate(nt.format((double) prodStock.getKhzcl() / count));
- prodStockVo.setSpzclRate(nt.format((double) prodStock.getSpzcl() / count));
- prodStockVo.setZclRate(nt.format((double) prodStock.getZcl() / count));
- prodStockVo.setZzclRate(nt.format((double) prodStock.getZzcl() / count));
- }
- return new Result(ResultCode.SUCCESS,prodStockVo);
- }
- @Override
- public Result listStockScreen(HttpServletRequest httpServletRequest, Map<String, String> paramaMap) {
- String farmId = paramaMap.get("farmId");
- QueryWrapper<ProdStock> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("farm_id", farmId);
- queryWrapper.orderByDesc("creat_time").last(" limit 1");
- ProdStock prodStock = prodStockMapper.selectOne(queryWrapper);
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("yfcl", prodStock.getYfzcl());
- jsonObject.put("bycl", prodStock.getByzcl());
- QueryWrapper<ProdProduction> queryWrapper1 = new QueryWrapper<>();
- queryWrapper1.eq("farm_id", farmId).orderByDesc("creat_time").last(" limit 1");
- ProdProduction prodProduction = productionMapper.selectOne(queryWrapper1);
- jsonObject.put("chl", prodProduction.getBychl());
- Date timesMonthmorning = DataUill.getTimesMonthmorning();
- QueryWrapper<ProdSale> queryWrapper2 = new QueryWrapper<>();
- queryWrapper2.eq("farm_id", farmId).ge("creat_time", timesMonthmorning);
- Integer count = 0;
- List<ProdSale> prodSales = saleMapper.selectList(queryWrapper2);
- for (ProdSale prodSale : prodSales) {
- count = count + prodSale.getSaleQuantity();
- }
- DateTime dateTime = DateUtil.beginOfYear(new Date());
- QueryWrapper<ProdSale> queryWrapper3 = new QueryWrapper<>();
- queryWrapper3.eq("farm_id", farmId).ge("creat_time",dateTime);
- Integer yearCount = 0;
- List<ProdSale> yearProdSales = saleMapper.selectList(queryWrapper3);
- for (ProdSale prodSale : yearProdSales) {
- yearCount = yearCount + prodSale.getSaleQuantity();
- }
- jsonObject.put("monthCount", count);
- jsonObject.put("yearCount", yearCount);
- return new Result(ResultCode.SUCCESS,jsonObject);
- }
- }
|