|
@@ -1,13 +1,21 @@
|
|
|
package com.huimv.manager.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
+import com.huimv.manager.entity.BaseRegionEntity;
|
|
|
import com.huimv.manager.entity.FarmStockEntity;
|
|
|
+import com.huimv.manager.entity.InterfaceRegisterEntity;
|
|
|
+import com.huimv.manager.mapper.BaseRegionDao;
|
|
|
import com.huimv.manager.mapper.FarmStockDao;
|
|
|
import com.huimv.manager.service.FarmStockService;
|
|
|
import com.huimv.manager.utils.PageUtils;
|
|
|
import com.huimv.manager.utils.Query;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import java.util.Map;
|
|
|
+
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+import java.util.stream.Stream;
|
|
|
+
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
@@ -22,10 +30,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
@Service("farmStockService")
|
|
|
public class FarmStockServiceImpl extends ServiceImpl<FarmStockDao, FarmStockEntity> implements FarmStockService {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private FarmStockDao farmStockDao;
|
|
|
+
|
|
|
@Override
|
|
|
public PageUtils queryPage(Map<String, Object> params) {
|
|
|
|
|
|
- String county = (String)params.get("county");
|
|
|
+ String countyCode =(String) params.get("countyCode");
|
|
|
+
|
|
|
String farmName = (String) params.get("farmName");
|
|
|
String minStockTotal =(String) params.get("minStockTotal");
|
|
|
String maxStockTotal =(String) params.get("maxStockTotal");
|
|
@@ -37,7 +49,8 @@ public class FarmStockServiceImpl extends ServiceImpl<FarmStockDao, FarmStockEnt
|
|
|
String maxSowStock =(String) params.get("maxSowStock");
|
|
|
|
|
|
QueryWrapper<FarmStockEntity> wrapper = new QueryWrapper<>();
|
|
|
- wrapper.eq(StringUtils.isNotBlank(county),"county_code",county);
|
|
|
+ wrapper.eq(StringUtils.isNotBlank(countyCode),"county_code",countyCode).or().eq(StringUtils.isNotBlank(countyCode),"city_code",countyCode);
|
|
|
+
|
|
|
wrapper.like(StringUtils.isNotBlank(farmName),"farm_name",farmName);
|
|
|
|
|
|
wrapper.ge(StringUtils.isNotBlank(minStockTotal),"stock_total",minStockTotal);
|
|
@@ -51,8 +64,7 @@ public class FarmStockServiceImpl extends ServiceImpl<FarmStockDao, FarmStockEnt
|
|
|
|
|
|
wrapper.ge(StringUtils.isNotBlank(minOfflineNo),"sow_stock",minSowStock);
|
|
|
wrapper.le(StringUtils.isNotBlank(maxOfflineNo),"sow_stock",maxSowStock);
|
|
|
-
|
|
|
-
|
|
|
+ wrapper.apply("id IN( SELECT MAX(id) FROM `farm_stock` GROUP BY farm_code)");
|
|
|
|
|
|
|
|
|
IPage<FarmStockEntity> page = this.page(
|
|
@@ -63,4 +75,246 @@ public class FarmStockServiceImpl extends ServiceImpl<FarmStockDao, FarmStockEnt
|
|
|
return new PageUtils(page);
|
|
|
}
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private BaseRegionDao baseRegionDao;
|
|
|
+ @Override
|
|
|
+ public List countAll(Map<String, Object> params) {
|
|
|
+ QueryWrapper<BaseRegionEntity> baseRegionwrapper = new QueryWrapper<>();
|
|
|
+ List<BaseRegionEntity> baseRegionEntities = baseRegionDao.selectList(baseRegionwrapper);
|
|
|
+
|
|
|
+ String countyCode =(String) params.get("countyCode");
|
|
|
+
|
|
|
+ String farmName = (String) params.get("farmName");
|
|
|
+ String minStockTotal =(String) params.get("minStockTotal");
|
|
|
+ String maxStockTotal =(String) params.get("maxStockTotal");
|
|
|
+ String minStockNew =(String) params.get("minStockNew");
|
|
|
+ String maxStockNew =(String) params.get("maxStockNew");
|
|
|
+ String minOfflineNo =(String) params.get("minOfflineNo");
|
|
|
+ String maxOfflineNo =(String) params.get("maxOfflineNo");
|
|
|
+ String minSowStock =(String) params.get("minSowStock");
|
|
|
+ String maxSowStock =(String) params.get("maxSowStock");
|
|
|
+
|
|
|
+ QueryWrapper<FarmStockEntity> wrapper = new QueryWrapper<>();
|
|
|
+ wrapper.eq(StringUtils.isNotBlank(countyCode),"county_code",countyCode).or().eq(StringUtils.isNotBlank(countyCode),"city_code",countyCode);
|
|
|
+
|
|
|
+ wrapper.like(StringUtils.isNotBlank(farmName),"farm_name",farmName);
|
|
|
+
|
|
|
+ wrapper.ge(StringUtils.isNotBlank(minStockTotal),"stock_total",minStockTotal);
|
|
|
+ wrapper.le(StringUtils.isNotBlank(maxStockTotal),"stock_total",maxStockTotal);
|
|
|
+
|
|
|
+ wrapper.ge(StringUtils.isNotBlank(minStockNew),"stock_new",minStockNew);
|
|
|
+ wrapper.le(StringUtils.isNotBlank(maxStockNew),"stock_new",maxStockNew);
|
|
|
+
|
|
|
+ wrapper.ge(StringUtils.isNotBlank(minOfflineNo),"offline_no",minOfflineNo);
|
|
|
+ wrapper.le(StringUtils.isNotBlank(maxOfflineNo),"offline_no",maxOfflineNo);
|
|
|
+
|
|
|
+ wrapper.ge(StringUtils.isNotBlank(minOfflineNo),"sow_stock",minSowStock);
|
|
|
+ wrapper.le(StringUtils.isNotBlank(maxOfflineNo),"sow_stock",maxSowStock);
|
|
|
+ wrapper.apply("id IN( SELECT MAX(id) FROM `farm_stock` GROUP BY farm_code)");
|
|
|
+
|
|
|
+
|
|
|
+ List<FarmStockEntity> farmStockEntities = baseMapper.selectList(wrapper);
|
|
|
+ List list = new ArrayList();
|
|
|
+
|
|
|
+ for (BaseRegionEntity baseRegionEntity : baseRegionEntities) {
|
|
|
+ if (baseRegionEntity.getParentCode() ==null){
|
|
|
+ for (BaseRegionEntity regionEntity : baseRegionEntities) {
|
|
|
+ if(baseRegionEntity.getRegionCode().equals(regionEntity.getParentCode())){
|
|
|
+ Integer sowTotalStock = 0,eartagNew = 0,eartagOffone =0,sowStock =0,stock1=0,stock2=0,stock3=0,stock4=0,stock5=0;
|
|
|
+
|
|
|
+ Map map =new HashMap();
|
|
|
+ for (FarmStockEntity farmStockEntity : farmStockEntities) {
|
|
|
+ if (farmStockEntity.getCityCode().equals(regionEntity.getRegionCode())){
|
|
|
+ sowTotalStock += farmStockEntity.getSowTotalStock();
|
|
|
+ eartagNew += farmStockEntity.getEartagNew();
|
|
|
+ eartagOffone += farmStockEntity.getEartagOffone();
|
|
|
+ sowStock += farmStockEntity.getSowStock();
|
|
|
+ stock1 += farmStockEntity.getStock1();
|
|
|
+ stock2 += farmStockEntity.getStock2();
|
|
|
+ stock3 += farmStockEntity.getStock3();
|
|
|
+ stock4 += farmStockEntity.getStock4();
|
|
|
+ stock5 += farmStockEntity.getStock5();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ map.put("sowTotalStock",sowTotalStock);
|
|
|
+ map.put("eartagNew",eartagNew);
|
|
|
+ map.put("sowStock",sowStock);
|
|
|
+ map.put("eartagOffone",eartagOffone);
|
|
|
+ map.put("stock1",stock1);
|
|
|
+ map.put("stock2",stock2);
|
|
|
+ map.put("stock3",stock3);
|
|
|
+ map.put("stock4",stock4);
|
|
|
+ map.put("stock5",stock5);
|
|
|
+ map.put("name",regionEntity.getRegionName());
|
|
|
+ map.put("code",regionEntity.getRegionCode());
|
|
|
+ map.put("children",getChildren(regionEntity.getRegionCode(),farmStockEntities,baseRegionEntities));
|
|
|
+ map.put("type",1);
|
|
|
+ list.add(map);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+ //县级
|
|
|
+ private List getChildren(String cityCode, List<FarmStockEntity> farmStockEntities,List<BaseRegionEntity> baseRegionEntities) {
|
|
|
+
|
|
|
+
|
|
|
+ List endList = new ArrayList();
|
|
|
+ for (BaseRegionEntity baseRegionEntity : baseRegionEntities) {
|
|
|
+ if (cityCode.equals(baseRegionEntity.getParentCode())){
|
|
|
+ String countyCode = baseRegionEntity.getRegionCode();
|
|
|
+
|
|
|
+ Integer sowTotalStock = 0,eartagNew = 0,sowStock =0,eartagOffone =0,stock1=0,stock2=0,stock3=0,stock4=0,stock5=0;
|
|
|
+ Map map =new HashMap();
|
|
|
+ for (FarmStockEntity farmStockEntity : farmStockEntities) {
|
|
|
+ if (countyCode.equals(farmStockEntity.getCountyCode())){
|
|
|
+ sowTotalStock += farmStockEntity.getSowTotalStock();
|
|
|
+ eartagNew += farmStockEntity.getEartagNew();
|
|
|
+ eartagOffone += farmStockEntity.getEartagOffone();
|
|
|
+ sowStock += farmStockEntity.getSowStock();
|
|
|
+ stock1 += farmStockEntity.getStock1();
|
|
|
+ stock2 += farmStockEntity.getStock2();
|
|
|
+ stock3 += farmStockEntity.getStock3();
|
|
|
+ stock4 += farmStockEntity.getStock4();
|
|
|
+ stock5 += farmStockEntity.getStock5();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ map.put("sowTotalStock",sowTotalStock);
|
|
|
+ map.put("eartagNew",eartagNew);
|
|
|
+ map.put("eartagOffone",eartagOffone);
|
|
|
+ map.put("sowStock",sowStock);
|
|
|
+ map.put("stock1",stock1);
|
|
|
+ map.put("stock2",stock2);
|
|
|
+ map.put("stock3",stock3);
|
|
|
+ map.put("stock4",stock4);
|
|
|
+ map.put("stock5",stock5);
|
|
|
+ map.put("name",baseRegionEntity.getRegionName());
|
|
|
+ map.put("code",baseRegionEntity.getRegionCode());
|
|
|
+ map.put("children",null);
|
|
|
+ map.put("type",2);
|
|
|
+ endList.add(map);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return endList;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List cityCountAll(Map<String, Object> params) {
|
|
|
+
|
|
|
+ QueryWrapper<BaseRegionEntity> baseRegionwrapper = new QueryWrapper<>();
|
|
|
+ List<BaseRegionEntity> baseRegionEntities = baseRegionDao.selectList(baseRegionwrapper);
|
|
|
+
|
|
|
+ String countyCode =(String) params.get("countyCode");
|
|
|
+
|
|
|
+ String farmName = (String) params.get("farmName");
|
|
|
+ String minStockTotal =(String) params.get("minStockTotal");
|
|
|
+ String maxStockTotal =(String) params.get("maxStockTotal");
|
|
|
+ String minStockNew =(String) params.get("minStockNew");
|
|
|
+ String maxStockNew =(String) params.get("maxStockNew");
|
|
|
+ String minOfflineNo =(String) params.get("minOfflineNo");
|
|
|
+ String maxOfflineNo =(String) params.get("maxOfflineNo");
|
|
|
+ String minSowStock =(String) params.get("minSowStock");
|
|
|
+ String maxSowStock =(String) params.get("maxSowStock");
|
|
|
+
|
|
|
+ QueryWrapper<FarmStockEntity> wrapper = new QueryWrapper<>();
|
|
|
+ wrapper.eq(StringUtils.isNotBlank(countyCode),"county_code",countyCode).or().eq(StringUtils.isNotBlank(countyCode),"city_code",countyCode);
|
|
|
+
|
|
|
+ wrapper.like(StringUtils.isNotBlank(farmName),"farm_name",farmName);
|
|
|
+
|
|
|
+ wrapper.ge(StringUtils.isNotBlank(minStockTotal),"stock_total",minStockTotal);
|
|
|
+ wrapper.le(StringUtils.isNotBlank(maxStockTotal),"stock_total",maxStockTotal);
|
|
|
+
|
|
|
+ wrapper.ge(StringUtils.isNotBlank(minStockNew),"stock_new",minStockNew);
|
|
|
+ wrapper.le(StringUtils.isNotBlank(maxStockNew),"stock_new",maxStockNew);
|
|
|
+
|
|
|
+ wrapper.ge(StringUtils.isNotBlank(minOfflineNo),"offline_no",minOfflineNo);
|
|
|
+ wrapper.le(StringUtils.isNotBlank(maxOfflineNo),"offline_no",maxOfflineNo);
|
|
|
+
|
|
|
+ wrapper.ge(StringUtils.isNotBlank(minOfflineNo),"sow_stock",minSowStock);
|
|
|
+ wrapper.le(StringUtils.isNotBlank(maxOfflineNo),"sow_stock",maxSowStock);
|
|
|
+ wrapper.apply("id IN( SELECT MAX(id) FROM `farm_stock` GROUP BY farm_code)");
|
|
|
+
|
|
|
+
|
|
|
+ List<FarmStockEntity> farmStockEntities = baseMapper.selectList(wrapper);
|
|
|
+ List list = new ArrayList();
|
|
|
+
|
|
|
+ for (BaseRegionEntity baseRegionEntity : baseRegionEntities) {
|
|
|
+ if (baseRegionEntity.getParentCode() ==null){
|
|
|
+ for (BaseRegionEntity regionEntity : baseRegionEntities) {
|
|
|
+ if(baseRegionEntity.getRegionCode().equals(regionEntity.getParentCode())) {
|
|
|
+ for (BaseRegionEntity regionEntity1 : baseRegionEntities) {
|
|
|
+ if (regionEntity.getRegionCode().equals(regionEntity1.getParentCode())) {
|
|
|
+ Integer sowTotalStock = 0, eartagNew = 0, eartagOffone = 0, sowStock = 0, stock1 = 0, stock2 = 0, stock3 = 0, stock4 = 0, stock5 = 0;
|
|
|
+ Map map = new HashMap();
|
|
|
+ for (FarmStockEntity farmStockEntity : farmStockEntities) {
|
|
|
+ if (farmStockEntity.getCityCode().equals(regionEntity1.getRegionCode())) {
|
|
|
+ sowTotalStock += farmStockEntity.getSowTotalStock();
|
|
|
+ eartagNew += farmStockEntity.getEartagNew();
|
|
|
+ eartagOffone += farmStockEntity.getEartagOffone();
|
|
|
+ sowStock += farmStockEntity.getSowStock();
|
|
|
+ stock1 += farmStockEntity.getStock1();
|
|
|
+ stock2 += farmStockEntity.getStock2();
|
|
|
+ stock3 += farmStockEntity.getStock3();
|
|
|
+ stock4 += farmStockEntity.getStock4();
|
|
|
+ stock5 += farmStockEntity.getStock5();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ map.put("sowTotalStock", sowTotalStock);
|
|
|
+ map.put("eartagNew", eartagNew);
|
|
|
+ map.put("sowStock", sowStock);
|
|
|
+ map.put("eartagOffone", eartagOffone);
|
|
|
+ map.put("stock1", stock1);
|
|
|
+ map.put("stock2", stock2);
|
|
|
+ map.put("stock3", stock3);
|
|
|
+ map.put("stock4", stock4);
|
|
|
+ map.put("stock5", stock5);
|
|
|
+ map.put("name", regionEntity1.getRegionName());
|
|
|
+ map.put("code", regionEntity1.getRegionCode());
|
|
|
+ map.put("children", getChildren1(regionEntity1, farmStockEntities));
|
|
|
+ list.add(map);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+ private List getChildren1(BaseRegionEntity regionCode, List<FarmStockEntity> farmStockEntities) {
|
|
|
+ List endList = new ArrayList();
|
|
|
+ for (FarmStockEntity farmStockEntity : farmStockEntities) {
|
|
|
+ Map map = new HashMap();
|
|
|
+ if (regionCode.getRegionCode().equals(farmStockEntity.getCountyCode())){
|
|
|
+ map.put("id", farmStockEntity.getId());
|
|
|
+ map.put("farmCode", farmStockEntity.getFarmCode());
|
|
|
+// map.put("farmName", farmStockEntity.getFarmName());
|
|
|
+ map.put("month", farmStockEntity.getMonth());
|
|
|
+ map.put("year", farmStockEntity.getYear());
|
|
|
+
|
|
|
+ map.put("sowTotalStock", farmStockEntity.getSowTotalStock());
|
|
|
+ map.put("eartagNew", farmStockEntity.getEartagNew());
|
|
|
+ map.put("sowStock", farmStockEntity.getSowStock());
|
|
|
+ map.put("eartagOffone", farmStockEntity.getEartagOffone());
|
|
|
+ map.put("stock1", farmStockEntity.getStock1());
|
|
|
+ map.put("stock2", farmStockEntity.getStock1());
|
|
|
+ map.put("stock3", farmStockEntity.getStock1());
|
|
|
+ map.put("stock4", farmStockEntity.getStock1());
|
|
|
+ map.put("stock5", farmStockEntity.getStock1());
|
|
|
+ map.put("name", farmStockEntity.getFarmName());
|
|
|
+ map.put("code", regionCode.getRegionCode());
|
|
|
+ map.put("children",null);
|
|
|
+ endList.add(map);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return endList;
|
|
|
+ }
|
|
|
}
|