|
@@ -1,13 +1,21 @@
|
|
|
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.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+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.BasePigpen;
|
|
|
+import com.huimv.admin.entity.EnvData;
|
|
|
import com.huimv.admin.entity.EnvDevice;
|
|
|
import com.huimv.admin.entity.dto.DeviceDto;
|
|
|
+import com.huimv.admin.mapper.BasePigpenMapper;
|
|
|
+import com.huimv.admin.mapper.EnvDataMapper;
|
|
|
import com.huimv.admin.mapper.EnvDeviceMaintainMapper;
|
|
|
import com.huimv.admin.mapper.EnvDeviceMapper;
|
|
|
import com.huimv.admin.service.IEnvDeviceService;
|
|
@@ -17,6 +25,8 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import java.text.NumberFormat;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
@@ -35,6 +45,10 @@ public class EnvDeviceServiceImpl extends ServiceImpl<EnvDeviceMapper, EnvDevice
|
|
|
private EnvDeviceMapper envDeviceMapper;
|
|
|
@Autowired
|
|
|
private EnvDeviceMaintainMapper envDeviceMaintainMapper;
|
|
|
+ @Autowired
|
|
|
+ private BasePigpenMapper basePigpenMapper;
|
|
|
+ @Autowired
|
|
|
+ private EnvDataMapper dataMapper;
|
|
|
|
|
|
@Override
|
|
|
public Result count(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
|
|
@@ -155,7 +169,124 @@ public class EnvDeviceServiceImpl extends ServiceImpl<EnvDeviceMapper, EnvDevice
|
|
|
@Override
|
|
|
public Result listPigpen(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
|
|
|
String farmId = paramsMap.get("farmId");
|
|
|
- return null;
|
|
|
+ String id = paramsMap.get("id");//楼层id
|
|
|
+
|
|
|
+ QueryWrapper<BasePigpen> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("farm_id", farmId);
|
|
|
+ queryWrapper.like("other2", id);
|
|
|
+
|
|
|
+ JSONArray jsonArray = new JSONArray();
|
|
|
+ List<BasePigpen> basePigpens = basePigpenMapper.selectList(queryWrapper);//得到栋舍单元
|
|
|
+ for (int i = 0; i < basePigpens.size(); i++) {
|
|
|
+ /* QueryWrapper<EnvDevice> queryWrapper1 = new QueryWrapper<>();
|
|
|
+ queryWrapper1.eq("unit_name",basePigpens.get(i).getId());
|
|
|
+ EnvDevice envDevice = envDeviceMapper.selectOne(queryWrapper1);//找到栋舍绑定的设备,利用单元id*/
|
|
|
+
|
|
|
+ QueryWrapper<EnvData> queryWrapper2 = new QueryWrapper<>();
|
|
|
+ queryWrapper2.eq("unit_id",basePigpens.get(i).getId());//通过设备id来拿取数据
|
|
|
+ EnvData envData = dataMapper.selectOne(queryWrapper2);
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ jsonObject.put("temp", envData.getEnvTemp());//温度
|
|
|
+ jsonObject.put("hum", envData.getEnvHum());//湿度
|
|
|
+ jsonObject.put("location", basePigpens.get(i).getBuildName());
|
|
|
+ jsonArray.add(jsonObject);
|
|
|
+ }
|
|
|
+ return new Result(ResultCode.SUCCESS,jsonArray);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result listEnv(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
|
|
|
+ String farmId = paramsMap.get("farmId");
|
|
|
+ String id = paramsMap.get("id");//单元id
|
|
|
+ String type = paramsMap.get("type");//查询类型
|
|
|
+ String startTime = paramsMap.get("startTime");
|
|
|
+ String endTime = paramsMap.get("endTime");
|
|
|
+
|
|
|
+ if (type == null || type == "") {
|
|
|
+ type = "1";
|
|
|
+ }
|
|
|
+
|
|
|
+ QueryWrapper<BasePigpen> basePigpenQueryWrapper = new QueryWrapper<>();
|
|
|
+ basePigpenQueryWrapper.eq("farm_id", farmId).eq("id", id);
|
|
|
+ BasePigpen basePigpen = basePigpenMapper.selectOne(basePigpenQueryWrapper);
|
|
|
+
|
|
|
+ QueryWrapper<EnvData> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("unit_id", id).eq("farm_id", farmId);
|
|
|
+
|
|
|
+ Map map = new HashMap<>();
|
|
|
+ //自定义查询
|
|
|
+ if ("4".equals(type)) {
|
|
|
+ startTime = startTime + " 00:00:00";
|
|
|
+ endTime = endTime + " 23:59:59";
|
|
|
+ queryWrapper.between("create_time", startTime, endTime);
|
|
|
+ List<EnvData> envData = dataMapper.selectList(queryWrapper);
|
|
|
+ map.put("location", basePigpen.getBuildName());
|
|
|
+ map.put("data", envData);
|
|
|
+ }
|
|
|
+
|
|
|
+ //本月
|
|
|
+ else if ("3".equals(type)) {
|
|
|
+ Date timesMonthmorning = DataUill.getTimesMonthmorning();
|
|
|
+ queryWrapper.ge("create_time", timesMonthmorning);
|
|
|
+ List<EnvData> envData = dataMapper.selectList(queryWrapper);
|
|
|
+ map.put("location", basePigpen.getBuildName());
|
|
|
+ map.put("data", envData);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //本周
|
|
|
+ else if ("2".equals(type)) {
|
|
|
+ DateTime dateTime = DateUtil.beginOfWeek(new Date());
|
|
|
+ queryWrapper.ge("create_time",dateTime);
|
|
|
+ List<EnvData> envData = dataMapper.selectList(queryWrapper);
|
|
|
+ map.put("location", basePigpen.getBuildName());
|
|
|
+ map.put("data", envData);
|
|
|
+ }
|
|
|
+
|
|
|
+ //今日
|
|
|
+ else if ("1".equals(type)) {
|
|
|
+ Date timesmorning = DataUill.getTimesmorning();
|
|
|
+ queryWrapper.ge("create_time", timesmorning);
|
|
|
+ List<EnvData> envData = dataMapper.selectList(queryWrapper);
|
|
|
+ map.put("location", basePigpen.getBuildName());
|
|
|
+ map.put("data", envData);
|
|
|
+ }
|
|
|
+ return new Result(ResultCode.SUCCESS,map);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result listDeviceCount(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
|
|
|
+ String farmId = paramsMap.get("farmId");
|
|
|
+ Integer offCount = 0;
|
|
|
+ Integer onCount = 0;
|
|
|
+ QueryWrapper<BasePigpen> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("farm_id", farmId).eq("parent_id", 0);
|
|
|
+ List<BasePigpen> basePigpens = basePigpenMapper.selectList(queryWrapper);
|
|
|
+ JSONArray jsonArray = new JSONArray();
|
|
|
+ for (int i = 0; i < basePigpens.size(); i++) {
|
|
|
+ QueryWrapper<BasePigpen> queryWrapper1 = new QueryWrapper<>();
|
|
|
+ queryWrapper1.like("other2", basePigpens.get(i).getId());
|
|
|
+ List<BasePigpen> basePigpens1 = basePigpenMapper.selectList(queryWrapper1);
|
|
|
+ for (int j = 0; j < basePigpens1.size(); j++) {
|
|
|
+ QueryWrapper<EnvDevice> deviceQueryWrapper = new QueryWrapper<>();
|
|
|
+ deviceQueryWrapper.eq("build_location",basePigpens1.get(j).getId());
|
|
|
+ EnvDevice envDevice = envDeviceMapper.selectOne(deviceQueryWrapper);
|
|
|
+ if (ObjectUtil.isNotEmpty(envDevice)) {
|
|
|
+ if (envDevice.getDeviceStatus() == 0) {
|
|
|
+ offCount++;
|
|
|
+ } else {
|
|
|
+ onCount++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ jsonObject.put("location",basePigpens.get(i).getBuildName());
|
|
|
+ jsonObject.put("onDevice", onCount);
|
|
|
+ jsonObject.put("offDevice", offCount);
|
|
|
+ jsonArray.add(jsonObject);
|
|
|
+ }
|
|
|
+ return new Result(ResultCode.SUCCESS,jsonArray);
|
|
|
}
|
|
|
|
|
|
|