package com.huimv.admin.service.impl;
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.DateUtil;
import com.huimv.admin.common.utils.Result;
import com.huimv.admin.common.utils.ResultCode;
import com.huimv.admin.entity.FeedingData;
import com.huimv.admin.entity.FeedingEnv;
import com.huimv.admin.entity.vo.FeedDataVo2;
import com.huimv.admin.mapper.FeedingDataMapper;
import com.huimv.admin.mapper.FeedingEnvMapper;
import com.huimv.admin.service.IFeedingDataService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
*
* 服务实现类
*
*
* @author author
* @since 2023-09-19
*/
@Service
public class FeedingDataServiceImpl extends ServiceImpl implements IFeedingDataService {
@Autowired
private FeedingDataMapper dataMapper;
@Autowired
private FeedingEnvMapper envMapper;
@Override
public Result listFeed(Map paramsMap) {
String farmId = paramsMap.get("farmId");
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("farm_id", farmId);
List dataVo2s = dataMapper.listDayFeed(queryWrapper);
for (FeedDataVo2 dataVo2 : dataVo2s) {
Date dateTime = dataVo2.getDateTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String format = sdf.format(dateTime);
String start = format + " 00:00:00";
String end = format + " 23:59:59";
QueryWrapper queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("farm_id", farmId).between("upload_time", start, end);
queryWrapper1.groupBy("device_code");
List feedingData = dataMapper.selectList(queryWrapper1);
dataVo2.setCount(feedingData.size());
}
return new Result(ResultCode.SUCCESS, dataVo2s);
}
@Override
public Result listPig(Map paramsMap) {
String farmId = paramsMap.get("farmId");
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("farm_id", farmId).eq("device_type", 0);
Integer integer = envMapper.selectCount(queryWrapper);//哺乳
QueryWrapper queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("farm_id", farmId).eq("device_type", 1);
Integer integer1 = envMapper.selectCount(queryWrapper);//配怀
Date timesmorning = DataUill.getTimesmorning();
QueryWrapper queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("farm_id", farmId).ge("upload_time", timesmorning).groupBy("device_code");
Integer integer2 = dataMapper.selectCount(queryWrapper2);//头数
JSONObject jsonObject = new JSONObject();
jsonObject.put("peihuai", integer1);
jsonObject.put("buru", integer);
jsonObject.put("oneHour", integer2);
jsonObject.put("threeHour", integer2);
jsonObject.put("allHour", integer1 + integer);
return new Result(ResultCode.SUCCESS, jsonObject);
}
@Override
public Result listEnv(Map paramsMap) {
String farmId = paramsMap.get("farmId");
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("farm_id", farmId).orderByDesc("last_time").groupBy("device_code");
List feedingEnvs = envMapper.selectList(queryWrapper);
return new Result(ResultCode.SUCCESS, feedingEnvs);
}
@Override
public Result listMeals(Map paramsMap) {
String farmId = paramsMap.get("farmId");
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("farm_id", farmId).groupBy("device_code").eq("meals", 0);
List feedingData = dataMapper.selectList(queryWrapper);
QueryWrapper queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("farm_id", farmId).groupBy("device_code").eq("meals", 1);
List feedingData2 = dataMapper.selectList(queryWrapper2);
QueryWrapper queryWrapper3 = new QueryWrapper<>();
queryWrapper3.eq("farm_id", farmId).groupBy("device_code").eq("meals", 2);
List feedingData3 = dataMapper.selectList(queryWrapper3);
JSONObject jsonObject = new JSONObject();
jsonObject.put("first", feedingData.size());
jsonObject.put("second", feedingData2.size());
jsonObject.put("third", feedingData3.size());
jsonObject.put("huai", feedingData.size());
jsonObject.put("yun", feedingData2.size());
return new Result(ResultCode.SUCCESS, jsonObject);
}
}