|
@@ -23,8 +23,6 @@ import com.huimv.manager.utils.Query;
|
|
import com.huimv.manager.service.EartagDataService;
|
|
import com.huimv.manager.service.EartagDataService;
|
|
|
|
|
|
/**
|
|
/**
|
|
- *
|
|
|
|
- *
|
|
|
|
* @author yinhao
|
|
* @author yinhao
|
|
* @version ${version}
|
|
* @version ${version}
|
|
* @date 2021-07-24 16:29:33
|
|
* @date 2021-07-24 16:29:33
|
|
@@ -36,38 +34,36 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
|
|
public PageUtils queryPage(Map<String, Object> params) {
|
|
public PageUtils queryPage(Map<String, Object> params) {
|
|
|
|
|
|
|
|
|
|
- String time = (String)params.get("time");//采集时间
|
|
|
|
- String farmName = (String)params.get("farmName");//牧场名称
|
|
|
|
- String eartagNo = (String)params.get("eartagNo");//耳标号
|
|
|
|
- String dayAge = (String)params.get("dayAge");//耳标号
|
|
|
|
- String earTemp = (String)params.get("earTemp");//耳根温度
|
|
|
|
- String envTemp = (String)params.get("envTemp");//环境温度
|
|
|
|
- String bat = (String)params.get("bat");//电量
|
|
|
|
- String rssi = (String)params.get("rssi");//信号强度
|
|
|
|
- String pigpenName = (String)params.get("pigpenName");
|
|
|
|
- String deviceCode = (String)params.get("deviceCode");
|
|
|
|
|
|
+ String time = (String) params.get("time");//采集时间
|
|
|
|
+ //String farmName = (String) params.get("farmName");//牧场名称
|
|
|
|
+ String eartagNo = (String) params.get("eartagNo");//耳标号
|
|
|
|
+ String dayAge = (String) params.get("dayAge");//耳标号
|
|
|
|
+ String earTemp = (String) params.get("earTemp");//耳根温度
|
|
|
|
+ String envTemp = (String) params.get("envTemp");//环境温度
|
|
|
|
+ String bat = (String) params.get("bat");//电量
|
|
|
|
+ String rssi = (String) params.get("rssi");//信号强度
|
|
|
|
+ String pigpenName = (String) params.get("pigpenName");
|
|
|
|
+ String deviceCode = (String) params.get("deviceCode");
|
|
|
|
|
|
//TODO 多条件查询
|
|
//TODO 多条件查询
|
|
QueryWrapper<EartagDataEntity> wrapper = new QueryWrapper<>();
|
|
QueryWrapper<EartagDataEntity> wrapper = new QueryWrapper<>();
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- IPage<EartagDataEntity> page = this.page(new Query<EartagDataEntity>().getPage(params),wrapper);
|
|
|
|
|
|
+ IPage<EartagDataEntity> page = this.page(new Query<EartagDataEntity>().getPage(params), wrapper);
|
|
return new PageUtils(page);
|
|
return new PageUtils(page);
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public List countByTime(Map<String, Object> params) {
|
|
public List countByTime(Map<String, Object> params) {
|
|
- String startTime = (String)params.get("startTime");
|
|
|
|
- String endTime = (String) params.get("endTime");
|
|
|
|
- String deviceCode = (String)params.get("deviceCode");
|
|
|
|
|
|
+ String startTime = (String) params.get("startTime");
|
|
|
|
+ String endTime = (String) params.get("endTime");
|
|
|
|
+ String deviceCode = (String) params.get("deviceCode");
|
|
|
|
|
|
|
|
|
|
QueryWrapper<EartagDataEntity> wrapper = new QueryWrapper<>();
|
|
QueryWrapper<EartagDataEntity> wrapper = new QueryWrapper<>();
|
|
- wrapper.eq("device_code",deviceCode);
|
|
|
|
- wrapper.ge(StringUtils.isNotBlank(startTime),"time",startTime);
|
|
|
|
- wrapper.le(StringUtils.isNotBlank(endTime),"time",endTime);
|
|
|
|
|
|
+ wrapper.eq("device_code", deviceCode);
|
|
|
|
+ wrapper.ge(StringUtils.isNotBlank(startTime), "time", startTime);
|
|
|
|
+ wrapper.le(StringUtils.isNotBlank(endTime), "time", endTime);
|
|
wrapper.groupBy("count_time");
|
|
wrapper.groupBy("count_time");
|
|
List<EartagDataCountVo> list = baseMapper.countByTime(wrapper);
|
|
List<EartagDataCountVo> list = baseMapper.countByTime(wrapper);
|
|
|
|
|
|
@@ -99,26 +95,25 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
|
|
String city = baseFarmInfoEntity.getCity();
|
|
String city = baseFarmInfoEntity.getCity();
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
//查询当日牧场下耳标数据
|
|
//查询当日牧场下耳标数据
|
|
Date now = new Date();
|
|
Date now = new Date();
|
|
QueryWrapper<EartagDataEntity> wrapper = new QueryWrapper<>();
|
|
QueryWrapper<EartagDataEntity> wrapper = new QueryWrapper<>();
|
|
- wrapper.eq("farm_code",farmCode);
|
|
|
|
|
|
+ wrapper.eq("farm_code", farmCode);
|
|
wrapper.ge("time", DateUtil.beginOfDay(now));
|
|
wrapper.ge("time", DateUtil.beginOfDay(now));
|
|
wrapper.groupBy("eartag_no");
|
|
wrapper.groupBy("eartag_no");
|
|
List<EartagDataEntity> eartagDataEntities = baseMapper.selectList(wrapper);
|
|
List<EartagDataEntity> eartagDataEntities = baseMapper.selectList(wrapper);
|
|
|
|
|
|
//过滤
|
|
//过滤
|
|
- Set<String> nowSet = new HashSet();
|
|
|
|
|
|
+ Set<String> nowSet = new HashSet();
|
|
for (EartagDataEntity eartagDataEntity : eartagDataEntities) {
|
|
for (EartagDataEntity eartagDataEntity : eartagDataEntities) {
|
|
nowSet.add(eartagDataEntity.getEartagNo());
|
|
nowSet.add(eartagDataEntity.getEartagNo());
|
|
}
|
|
}
|
|
|
|
|
|
//查询昨日牧场下耳标数据
|
|
//查询昨日牧场下耳标数据
|
|
wrapper.clear();
|
|
wrapper.clear();
|
|
- wrapper.eq("farm_code",farmCode);
|
|
|
|
|
|
+ wrapper.eq("farm_code", farmCode);
|
|
wrapper.le("time", DateUtil.beginOfDay(now));
|
|
wrapper.le("time", DateUtil.beginOfDay(now));
|
|
- wrapper.ge("time", DateUtil.offsetDay(DateUtil.beginOfDay(now),-1));
|
|
|
|
|
|
+ wrapper.ge("time", DateUtil.offsetDay(DateUtil.beginOfDay(now), -1));
|
|
wrapper.groupBy("eartag_no");
|
|
wrapper.groupBy("eartag_no");
|
|
List<EartagDataEntity> yesterdayEartagDataEntities = baseMapper.selectList(wrapper);
|
|
List<EartagDataEntity> yesterdayEartagDataEntities = baseMapper.selectList(wrapper);
|
|
|
|
|
|
@@ -127,7 +122,7 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
|
|
for (EartagDataEntity eartagDataEntity : yesterdayEartagDataEntities) {
|
|
for (EartagDataEntity eartagDataEntity : yesterdayEartagDataEntities) {
|
|
yesterdaySet.add(eartagDataEntity.getEartagNo());
|
|
yesterdaySet.add(eartagDataEntity.getEartagNo());
|
|
}
|
|
}
|
|
- Set<String> set = ObjectUtil.cloneByStream(nowSet);
|
|
|
|
|
|
+ Set<String> set = ObjectUtil.cloneByStream(nowSet);
|
|
|
|
|
|
//当日母猪总存栏
|
|
//当日母猪总存栏
|
|
int allSow = nowSet.size();
|
|
int allSow = nowSet.size();
|
|
@@ -142,8 +137,8 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
|
|
//添加离线表
|
|
//添加离线表
|
|
for (String eartagNo : yesterdaySet) {
|
|
for (String eartagNo : yesterdaySet) {
|
|
wrapper.clear();
|
|
wrapper.clear();
|
|
- wrapper.eq("eartag_no",eartagNo);
|
|
|
|
- wrapper.eq("farm_code",farmCode);
|
|
|
|
|
|
+ wrapper.eq("eartag_no", eartagNo);
|
|
|
|
+ wrapper.eq("farm_code", farmCode);
|
|
wrapper.orderByDesc("time");
|
|
wrapper.orderByDesc("time");
|
|
EartagDataEntity dataEntity = baseMapper.selectList(wrapper).get(0);
|
|
EartagDataEntity dataEntity = baseMapper.selectList(wrapper).get(0);
|
|
|
|
|
|
@@ -158,58 +153,58 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
|
|
|
|
|
|
|
|
|
|
//计算日龄
|
|
//计算日龄
|
|
- Integer ratio1 = 0 ,ratio2 = 0,ratio3= 0,ratio4 = 0;
|
|
|
|
|
|
+ Integer ratio1 = 0, ratio2 = 0, ratio3 = 0, ratio4 = 0;
|
|
//1:配怀存栏,2:分娩存栏,3:后备存栏,4:空怀母猪,5:公猪存栏,
|
|
//1:配怀存栏,2:分娩存栏,3:后备存栏,4:空怀母猪,5:公猪存栏,
|
|
- Integer stock1 = 0 ,stock2 = 0,stock3= 0,stock4 = 0,stock5=0;
|
|
|
|
|
|
+ Integer stock1 = 0, stock2 = 0, stock3 = 0, stock4 = 0, stock5 = 0;
|
|
for (EartagDataEntity eartagDataEntity : eartagDataEntities) {
|
|
for (EartagDataEntity eartagDataEntity : eartagDataEntities) {
|
|
Integer dayAge = eartagDataEntity.getDayAge2();
|
|
Integer dayAge = eartagDataEntity.getDayAge2();
|
|
- if (dayAge != null ){
|
|
|
|
- if (dayAge>250 && dayAge < 1000 ){
|
|
|
|
|
|
+ if (dayAge != null) {
|
|
|
|
+ if (dayAge > 250 && dayAge < 1000) {
|
|
ratio1++;
|
|
ratio1++;
|
|
}
|
|
}
|
|
|
|
|
|
- if (dayAge >=1000 && dayAge < 1700 ){
|
|
|
|
|
|
+ if (dayAge >= 1000 && dayAge < 1700) {
|
|
ratio2++;
|
|
ratio2++;
|
|
}
|
|
}
|
|
|
|
|
|
- if (dayAge >= 1700 && dayAge < 2400 ){
|
|
|
|
|
|
+ if (dayAge >= 1700 && dayAge < 2400) {
|
|
ratio3++;
|
|
ratio3++;
|
|
}
|
|
}
|
|
|
|
|
|
- if (dayAge >= 2400 ){
|
|
|
|
|
|
+ if (dayAge >= 2400) {
|
|
ratio4++;
|
|
ratio4++;
|
|
}
|
|
}
|
|
|
|
|
|
Integer stage = eartagDataEntity.getStage();
|
|
Integer stage = eartagDataEntity.getStage();
|
|
- if (stage== 1){
|
|
|
|
|
|
+ if (stage == 1) {
|
|
stock1++;
|
|
stock1++;
|
|
}
|
|
}
|
|
- if (stage== 2){
|
|
|
|
|
|
+ if (stage == 2) {
|
|
stock2++;
|
|
stock2++;
|
|
}
|
|
}
|
|
- if (stage== 3){
|
|
|
|
|
|
+ if (stage == 3) {
|
|
stock3++;
|
|
stock3++;
|
|
}
|
|
}
|
|
- if (stage== 4){
|
|
|
|
|
|
+ if (stage == 4) {
|
|
stock4++;
|
|
stock4++;
|
|
}
|
|
}
|
|
- if (stage== 5){
|
|
|
|
|
|
+ if (stage == 5) {
|
|
stock5++;
|
|
stock5++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
String ratioStr1 = CalculateUtil(BigDecimal.valueOf(ratio1), BigDecimal.valueOf(allSow));
|
|
String ratioStr1 = CalculateUtil(BigDecimal.valueOf(ratio1), BigDecimal.valueOf(allSow));
|
|
- String ratioStr2 = CalculateUtil(BigDecimal.valueOf(ratio2),BigDecimal.valueOf(allSow));
|
|
|
|
- String ratioStr3 = CalculateUtil(BigDecimal.valueOf(ratio3),BigDecimal.valueOf(allSow));
|
|
|
|
- String ratioStr4 = CalculateUtil(BigDecimal.valueOf(ratio4),BigDecimal.valueOf(allSow));
|
|
|
|
|
|
+ String ratioStr2 = CalculateUtil(BigDecimal.valueOf(ratio2), BigDecimal.valueOf(allSow));
|
|
|
|
+ String ratioStr3 = CalculateUtil(BigDecimal.valueOf(ratio3), BigDecimal.valueOf(allSow));
|
|
|
|
+ String ratioStr4 = CalculateUtil(BigDecimal.valueOf(ratio4), BigDecimal.valueOf(allSow));
|
|
|
|
|
|
|
|
|
|
//新数据
|
|
//新数据
|
|
QueryWrapper<DailyTabulateDataEntity> dailyWrapper = new QueryWrapper<>();
|
|
QueryWrapper<DailyTabulateDataEntity> dailyWrapper = new QueryWrapper<>();
|
|
- dailyWrapper.eq("statistic_date",DateUtil.beginOfDay(now));
|
|
|
|
- dailyWrapper.eq("farm_code",farmCode);
|
|
|
|
|
|
+ dailyWrapper.eq("statistic_date", DateUtil.beginOfDay(now));
|
|
|
|
+ dailyWrapper.eq("farm_code", farmCode);
|
|
DailyTabulateDataEntity dailyTabulateDataEntity = dailyTabulateDataDao.selectOne(dailyWrapper);
|
|
DailyTabulateDataEntity dailyTabulateDataEntity = dailyTabulateDataDao.selectOne(dailyWrapper);
|
|
- if (dailyTabulateDataEntity == null){
|
|
|
|
|
|
+ if (dailyTabulateDataEntity == null) {
|
|
dailyTabulateDataEntity = new DailyTabulateDataEntity();
|
|
dailyTabulateDataEntity = new DailyTabulateDataEntity();
|
|
}
|
|
}
|
|
dailyTabulateDataEntity.setFarmCode(farmCode);
|
|
dailyTabulateDataEntity.setFarmCode(farmCode);
|
|
@@ -217,32 +212,31 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
|
|
dailyTabulateDataEntity.setStatisticDate(now);
|
|
dailyTabulateDataEntity.setStatisticDate(now);
|
|
dailyTabulateDataEntity.setStockNew(newSow);
|
|
dailyTabulateDataEntity.setStockNew(newSow);
|
|
dailyTabulateDataEntity.setOfflineNo(offSow);
|
|
dailyTabulateDataEntity.setOfflineNo(offSow);
|
|
- dailyTabulateDataEntity.setRatio1(ratio1 +" ("+ratioStr1+")");
|
|
|
|
- dailyTabulateDataEntity.setRatio2(ratio2 +" ("+ratioStr2+")");
|
|
|
|
- dailyTabulateDataEntity.setRatio3(ratio3 +" ("+ratioStr3+")");
|
|
|
|
- dailyTabulateDataEntity.setRatio4(ratio4 +" ("+ratioStr4+")");
|
|
|
|
|
|
+ dailyTabulateDataEntity.setRatio1(ratio1 + " (" + ratioStr1 + ")");
|
|
|
|
+ dailyTabulateDataEntity.setRatio2(ratio2 + " (" + ratioStr2 + ")");
|
|
|
|
+ dailyTabulateDataEntity.setRatio3(ratio3 + " (" + ratioStr3 + ")");
|
|
|
|
+ dailyTabulateDataEntity.setRatio4(ratio4 + " (" + ratioStr4 + ")");
|
|
dailyTabulateDataEntity.setStock1(stock1);
|
|
dailyTabulateDataEntity.setStock1(stock1);
|
|
dailyTabulateDataEntity.setStock2(stock2);
|
|
dailyTabulateDataEntity.setStock2(stock2);
|
|
dailyTabulateDataEntity.setStock3(stock3);
|
|
dailyTabulateDataEntity.setStock3(stock3);
|
|
dailyTabulateDataEntity.setStock4(stock4);
|
|
dailyTabulateDataEntity.setStock4(stock4);
|
|
dailyTabulateDataEntity.setStock5(stock5);
|
|
dailyTabulateDataEntity.setStock5(stock5);
|
|
- dailyTabulateDataEntity.setSowStock(stock1+stock2+stock3);
|
|
|
|
|
|
+ dailyTabulateDataEntity.setSowStock(stock1 + stock2 + stock3);
|
|
|
|
|
|
- if (dailyTabulateDataEntity.getId()==null){
|
|
|
|
|
|
+ if (dailyTabulateDataEntity.getId() == null) {
|
|
dailyTabulateDataDao.insert(dailyTabulateDataEntity);
|
|
dailyTabulateDataDao.insert(dailyTabulateDataEntity);
|
|
- }else {
|
|
|
|
|
|
+ } else {
|
|
dailyTabulateDataDao.updateById(dailyTabulateDataEntity);
|
|
dailyTabulateDataDao.updateById(dailyTabulateDataEntity);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
//牧场存栏统计
|
|
//牧场存栏统计
|
|
QueryWrapper<FarmStockEntity> farmStockEQueryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<FarmStockEntity> farmStockEQueryWrapper = new QueryWrapper<>();
|
|
- farmStockEQueryWrapper.eq("year",DateUtil.year(now));
|
|
|
|
- farmStockEQueryWrapper.eq("month",DateUtil.month(now));
|
|
|
|
- farmStockEQueryWrapper.eq("farm_code",farmCode);
|
|
|
|
|
|
+ farmStockEQueryWrapper.eq("year", DateUtil.year(now));
|
|
|
|
+ farmStockEQueryWrapper.eq("month", DateUtil.month(now));
|
|
|
|
+ farmStockEQueryWrapper.eq("farm_code", farmCode);
|
|
FarmStockEntity farmStockEntity = farmStockDao.selectOne(farmStockEQueryWrapper);
|
|
FarmStockEntity farmStockEntity = farmStockDao.selectOne(farmStockEQueryWrapper);
|
|
- if (farmStockEntity == null){
|
|
|
|
|
|
+ if (farmStockEntity == null) {
|
|
farmStockEntity = new FarmStockEntity();
|
|
farmStockEntity = new FarmStockEntity();
|
|
}
|
|
}
|
|
|
|
|
|
@@ -251,7 +245,7 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
|
|
farmStockEntity.setSowTotalStock(allSow);
|
|
farmStockEntity.setSowTotalStock(allSow);
|
|
farmStockEntity.setEartagNew(newSow);
|
|
farmStockEntity.setEartagNew(newSow);
|
|
farmStockEntity.setEartagOffone(offSow);
|
|
farmStockEntity.setEartagOffone(offSow);
|
|
- farmStockEntity.setSowStock(stock1+stock2+stock3);
|
|
|
|
|
|
+ farmStockEntity.setSowStock(stock1 + stock2 + stock3);
|
|
farmStockEntity.setStock1(stock1);
|
|
farmStockEntity.setStock1(stock1);
|
|
farmStockEntity.setStock2(stock2);
|
|
farmStockEntity.setStock2(stock2);
|
|
farmStockEntity.setStock3(stock3);
|
|
farmStockEntity.setStock3(stock3);
|
|
@@ -261,29 +255,25 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
|
|
farmStockEntity.setMonth(DateUtil.month(now));
|
|
farmStockEntity.setMonth(DateUtil.month(now));
|
|
farmStockEntity.setCityCode(city);
|
|
farmStockEntity.setCityCode(city);
|
|
farmStockEntity.setCountyCode(county);
|
|
farmStockEntity.setCountyCode(county);
|
|
- if(farmStockEntity.getId() == null){
|
|
|
|
|
|
+ if (farmStockEntity.getId() == null) {
|
|
farmStockDao.insert(farmStockEntity);
|
|
farmStockDao.insert(farmStockEntity);
|
|
- }else {
|
|
|
|
|
|
+ } else {
|
|
farmStockDao.updateById(farmStockEntity);
|
|
farmStockDao.updateById(farmStockEntity);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
//计算百分比
|
|
//计算百分比
|
|
- public String CalculateUtil(BigDecimal a, BigDecimal b){
|
|
|
|
|
|
+ public String CalculateUtil(BigDecimal a, BigDecimal b) {
|
|
String percent =
|
|
String percent =
|
|
b == null ? "-" :
|
|
b == null ? "-" :
|
|
- b.compareTo(new BigDecimal(0)) == 0 ? "-":
|
|
|
|
|
|
+ b.compareTo(new BigDecimal(0)) == 0 ? "-" :
|
|
a == null ? "0.00%" :
|
|
a == null ? "0.00%" :
|
|
- a.multiply(new BigDecimal(100)).divide(b,2,BigDecimal.ROUND_HALF_UP) + "%";
|
|
|
|
|
|
+ a.multiply(new BigDecimal(100)).divide(b, 2, BigDecimal.ROUND_HALF_UP) + "%";
|
|
return percent;
|
|
return percent;
|
|
}
|
|
}
|
|
}
|
|
}
|