package com.huimv.cattle.service.impl; 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.cattle.mapper.SysRegionCounTownVillMapper; import com.huimv.cattle.pojo.Stock; import com.huimv.cattle.mapper.StockMapper; import com.huimv.cattle.service.OverviewService; import com.huimv.cattle.service.StockService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.huimv.cattle.token.TokenSign; import com.huimv.common.utils.Result; import com.huimv.common.utils.ResultCode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.text.NumberFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; /** *

* 服务实现类 *

* * @author zn * @since 2022-12-14 */ @Service public class StockServiceImpl extends ServiceImpl implements StockService { @Autowired private StockMapper stockMapper; @Autowired private SysRegionCounTownVillMapper sysRegionCounTownVillMapper; @Override public Result getStock(HttpServletRequest httpServletRequest, Map paramsMap) { // Stock stock = stockMapper.getList(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("farm_Code",0); List stocks = stockMapper.selectList(queryWrapper); JSONObject jsonObject = new JSONObject(); int count = 0; int fatCount = 0; int cowStock = 0; int bullStock = 0; if (stocks.size() == 0) { jsonObject.put("fatStock", 0); jsonObject.put("cowStock", 0); jsonObject.put("bullStock", 0); jsonObject.put("count", 0); jsonObject.put("fat", 0); jsonObject.put("cow", 0); jsonObject.put("bull", 0); jsonObject.put("farmCode", 0); } else { for (int i = 0; i < stocks.size(); i++) { count = count + stocks.get(i).getFatStock() + stocks.get(i).getCowStock() + stocks.get(i).getBullStock(); fatCount = fatCount + stocks.get(i).getFatStock(); cowStock = cowStock + stocks.get(i).getCowStock(); bullStock = bullStock + stocks.get(i).getBullStock(); } //创建一个数值格式化对象 NumberFormat numberFormat = NumberFormat.getInstance(); //设置精确到小数点后2位 numberFormat.setMaximumFractionDigits(2); String fat = numberFormat.format((float) fatCount / (float) count * 100) + "%"; String cow = numberFormat.format((float) cowStock / (float) count * 100) + "%"; String bull = numberFormat.format((float) bullStock / (float) count * 100) + "%"; jsonObject.put("fatStock", fatCount); jsonObject.put("cowStock", cowStock); jsonObject.put("bullStock", bullStock); jsonObject.put("count", count); jsonObject.put("fat", fat); jsonObject.put("cow", cow); jsonObject.put("bull", bull); } return new Result(ResultCode.SUCCESS, jsonObject); } @Override public Result add(HttpServletRequest httpServletRequest, Map paramsMap) { String farmCode = paramsMap.get("farmCode"); if (farmCode == null) { farmCode = TokenSign.getFarmCode(httpServletRequest); } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("farm_code", farmCode); Stock stock1 = stockMapper.selectOne(queryWrapper); Integer fatStock = Integer.parseInt(paramsMap.get("fatStock")); Integer cowStock = Integer.parseInt(paramsMap.get("cowStock")); Integer bullStock = Integer.parseInt(paramsMap.get("bullStock")); // Stock list = stockMapper.getList(); if (ObjectUtil.isEmpty(stock1)) { Stock stock = new Stock(); stock.setFatStock(fatStock); stock.setCowStock(cowStock); stock.setBullStock(bullStock); stock.setFarmCode(farmCode); stockMapper.insert(stock); return new Result(ResultCode.SUCCESS); } else { stock1.setFatStock(fatStock); stock1.setCowStock(cowStock); stock1.setBullStock(bullStock); stock1.setFarmCode(farmCode); stockMapper.updateById(stock1); return new Result(ResultCode.SUCCESS); } } @Override public Result getListStock(HttpServletRequest httpServletRequest, Map paramsMap) { String farmCode = paramsMap.get("farmCode"); if (farmCode == null) { farmCode = TokenSign.getFarmCode(httpServletRequest); } JSONObject jsonObject = new JSONObject(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("farm_code", farmCode); Stock stock = stockMapper.selectOne(queryWrapper); if (ObjectUtil.isEmpty(stock)) { jsonObject.put("fatStock", 0); jsonObject.put("cowStock", 0); jsonObject.put("bullStock", 0); jsonObject.put("count", 0); jsonObject.put("fat", 0); jsonObject.put("cow", 0); jsonObject.put("bull", 0); jsonObject.put("farmCode", 0); } else { Integer count = stock.getFatStock() + stock.getBullStock() + stock.getCowStock(); //创建一个数值格式化对象 NumberFormat numberFormat = NumberFormat.getInstance(); //设置精确到小数点后2位 numberFormat.setMaximumFractionDigits(2); String fat = numberFormat.format((float) stock.getFatStock() / (float) count * 100) + "%"; String cow = numberFormat.format((float) stock.getCowStock() / (float) count * 100) + "%"; String bull = numberFormat.format((float) stock.getBullStock() / (float) count * 100) + "%"; jsonObject.put("fatStock", stock.getFatStock()); jsonObject.put("cowStock", stock.getCowStock()); jsonObject.put("bullStock", stock.getBullStock()); jsonObject.put("count", count); jsonObject.put("fat", fat); jsonObject.put("cow", cow); jsonObject.put("bull", bull); } return new Result(ResultCode.SUCCESS, jsonObject); } @Override public Result getListStockScreen(HttpServletRequest httpServletRequest, Map paramsMap) { String farmCode = paramsMap.get("farmCode"); if (farmCode == null) { farmCode = TokenSign.getFarmCode(httpServletRequest); } JSONObject jsonObject = new JSONObject(); Stock stock = new Stock(); String cityCode =""; if (farmCode == null || farmCode.equals("0")){ cityCode= sysRegionCounTownVillMapper.listSub(farmCode); System.out.println(cityCode); String[] city = cityCode.split(","); stock = stockMapper.getListStock(city); }else { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("farm_code", farmCode); stock = stockMapper.selectOne(queryWrapper); } if (ObjectUtil.isEmpty(stock)) { jsonObject.put("fatStock", 0); jsonObject.put("cowStock", 0); jsonObject.put("bullStock", 0); jsonObject.put("count", 0); jsonObject.put("fat", 0); jsonObject.put("cow", 0); jsonObject.put("bull", 0); jsonObject.put("farmCode", 0); } else { Integer count = stock.getFatStock() + stock.getBullStock() + stock.getCowStock(); //创建一个数值格式化对象 NumberFormat numberFormat = NumberFormat.getInstance(); //设置精确到小数点后2位 numberFormat.setMaximumFractionDigits(2); String fat = numberFormat.format((float) stock.getFatStock() / (float) count * 100) + "%"; String cow = numberFormat.format((float) stock.getCowStock() / (float) count * 100) + "%"; String bull = numberFormat.format((float) stock.getBullStock() / (float) count * 100) + "%"; jsonObject.put("fatStock", stock.getFatStock()); jsonObject.put("cowStock", stock.getCowStock()); jsonObject.put("bullStock", stock.getBullStock()); jsonObject.put("count", count); jsonObject.put("fat", fat); jsonObject.put("cow", cow); jsonObject.put("bull", bull); } return new Result(ResultCode.SUCCESS, jsonObject); } @Override public Result getListVillageStockScreen(HttpServletRequest httpServletRequest, Map paramsMap) { String farmCode = paramsMap.get("farmCode"); if (farmCode == null) { farmCode = TokenSign.getFarmCode(httpServletRequest); } JSONObject jsonObject = new JSONObject(); Stock stock = new Stock(); String cityCode =""; String subCityCode=""; List subCityList = new ArrayList<>(); if (farmCode == null || farmCode.equals("0")){ cityCode= sysRegionCounTownVillMapper.listSub(farmCode); String[] city = cityCode.split(","); for (String s : city) { subCityCode = sysRegionCounTownVillMapper.listSub(s); String[] strings = subCityCode.split(","); for (String string : strings) { subCityList.add(string); } } String[] subCity = subCityList.toArray(new String[subCityList.size()]); stock = stockMapper.getListStock(subCity); }else { cityCode= sysRegionCounTownVillMapper.listSub(farmCode); System.out.println(cityCode); String[] city = cityCode.split(","); stock = stockMapper.getListStock(city); } if (ObjectUtil.isEmpty(stock)) { jsonObject.put("fatStock", 0); jsonObject.put("cowStock", 0); jsonObject.put("bullStock", 0); jsonObject.put("count", 0); jsonObject.put("fat", 0); jsonObject.put("cow", 0); jsonObject.put("bull", 0); jsonObject.put("farmCode", 0); } else { Integer count = stock.getFatStock() + stock.getBullStock() + stock.getCowStock(); //创建一个数值格式化对象 NumberFormat numberFormat = NumberFormat.getInstance(); //设置精确到小数点后2位 numberFormat.setMaximumFractionDigits(2); String fat = numberFormat.format((float) stock.getFatStock() / (float) count * 100) + "%"; String cow = numberFormat.format((float) stock.getCowStock() / (float) count * 100) + "%"; String bull = numberFormat.format((float) stock.getBullStock() / (float) count * 100) + "%"; jsonObject.put("fatStock", stock.getFatStock()); jsonObject.put("cowStock", stock.getCowStock()); jsonObject.put("bullStock", stock.getBullStock()); jsonObject.put("count", count); jsonObject.put("fat", fat); jsonObject.put("cow", cow); jsonObject.put("bull", bull); } return new Result(ResultCode.SUCCESS, jsonObject); } @Resource private OverviewService overviewService; @Override public Result getAllTownStock(HttpServletRequest request, JSONArray allTownsJa) { for (int a = 0; a < allTownsJa.size(); a++) { JSONObject townJo = allTownsJa.getJSONObject(a); System.out.println("townJo=" + townJo); //根据乡镇读取填报存栏数据 JSONObject stockJo = getStockByTown(townJo); townJo.put("fatStock", stockJo.getString("fatStock")); townJo.put("sowStock", stockJo.getString("cowStock")); townJo.put("boarStock", stockJo.getString("bullStock")); townJo.put("totalStock", stockJo.getString("totalStock")); //根据乡镇读取填报出栏数据 Integer outStock = overviewService.getOutStock(townJo); townJo.put("outStock", String.valueOf(outStock)); } return new Result(ResultCode.SUCCESS, allTownsJa); } //获取一个城镇的存栏和出栏 private JSONObject getStockByTown(JSONObject townJo) { System.out.println("farmCode==" + townJo.getString("farmCode")); JSONObject jsonObject = new JSONObject(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("farm_code", townJo.getString("farmCode")); Stock stock = stockMapper.selectOne(queryWrapper); if (ObjectUtil.isEmpty(stock)) { jsonObject.put("fatStock", 0); jsonObject.put("cowStock", 0); jsonObject.put("bullStock", 0); jsonObject.put("totalStock", 0); jsonObject.put("outStock", 0); jsonObject.put("farmCode", 0); } else { Integer count = stock.getFatStock() + stock.getBullStock() + stock.getCowStock(); jsonObject.put("fatStock", stock.getFatStock()); jsonObject.put("cowStock", stock.getCowStock()); jsonObject.put("bullStock", stock.getBullStock()); jsonObject.put("totalStock", String.valueOf(count)); jsonObject.put("outStock", String.valueOf(0)); } return jsonObject; } }