|
@@ -2,9 +2,14 @@ package com.huimv.admin.service.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.convert.Convert;
|
|
import cn.hutool.core.convert.Convert;
|
|
|
|
+import cn.hutool.core.date.DateTime;
|
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
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.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.huimv.admin.common.utils.DataUill;
|
|
import com.huimv.admin.common.utils.DataUill;
|
|
import com.huimv.admin.common.utils.Result;
|
|
import com.huimv.admin.common.utils.Result;
|
|
@@ -15,21 +20,20 @@ import com.huimv.admin.entity.dto.BasePigpenDto;
|
|
import com.huimv.admin.entity.vo.BasePigpenCountVo;
|
|
import com.huimv.admin.entity.vo.BasePigpenCountVo;
|
|
import com.huimv.admin.entity.vo.TreeBasePigpen;
|
|
import com.huimv.admin.entity.vo.TreeBasePigpen;
|
|
import com.huimv.admin.mapper.*;
|
|
import com.huimv.admin.mapper.*;
|
|
-import com.huimv.admin.service.*;
|
|
|
|
|
|
+import com.huimv.admin.service.IBasePigpenService;
|
|
|
|
+import com.huimv.admin.service.IEnvWarningService;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.Date;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
|
|
+import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
* <p>
|
|
* <p>
|
|
- * 服务实现类
|
|
|
|
|
|
+ * 服务实现类
|
|
* </p>
|
|
* </p>
|
|
*
|
|
*
|
|
* @author author
|
|
* @author author
|
|
@@ -42,6 +46,29 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
|
|
@Autowired
|
|
@Autowired
|
|
private EnvDeviceMapper envDeviceMapper;
|
|
private EnvDeviceMapper envDeviceMapper;
|
|
@Autowired
|
|
@Autowired
|
|
|
|
+ private EnvDeviceRecentlyDataMapper envDeviceRecentlyDataMapper;
|
|
|
|
+ @Autowired
|
|
|
|
+ private EnvWarningMapper envWarningMapper;
|
|
|
|
+ @Autowired
|
|
|
|
+ private EnvDeviceFanMapper fanMapper;//feng
|
|
|
|
+ @Autowired
|
|
|
|
+ private EnvDeviceFenestruleMapper fenestruleMapper;//chuang
|
|
|
|
+ @Autowired
|
|
|
|
+ private EnvDeviceOtherMapper otherMapper;//other
|
|
|
|
+ @Autowired
|
|
|
|
+ private EnvTempMapper tempMapper;
|
|
|
|
+ @Autowired
|
|
|
|
+ private EnvHumiMapper humiMapper;
|
|
|
|
+ @Autowired
|
|
|
|
+ private EnvCo2Mapper co2Mapper;
|
|
|
|
+ @Autowired
|
|
|
|
+ private EnvAmmoniaMapper ammoniaMapper;
|
|
|
|
+ @Autowired
|
|
|
|
+ private EnvStiveMapper stiveMapper;
|
|
|
|
+ @Autowired
|
|
|
|
+ private EnvPressureMapper pressureMapper;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
private IBasePigpenService basePigpenService;
|
|
private IBasePigpenService basePigpenService;
|
|
@Autowired
|
|
@Autowired
|
|
private IEnvWarningService envWarningService;
|
|
private IEnvWarningService envWarningService;
|
|
@@ -55,12 +82,12 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
|
|
@Override
|
|
@Override
|
|
@Transactional
|
|
@Transactional
|
|
public Result addPigpen(BasePigpenDto basePigpenDto) {
|
|
public Result addPigpen(BasePigpenDto basePigpenDto) {
|
|
- Integer num = basePigpenMapper.selectCount(new QueryWrapper<BasePigpen>().eq("build_name", basePigpenDto.getBuildName()));
|
|
|
|
- if (num > 0){
|
|
|
|
|
|
+ Integer num = basePigpenMapper.selectCount(new QueryWrapper<BasePigpen>().eq("build_name", basePigpenDto.getBuildName()));
|
|
|
|
+ if (num > 0) {
|
|
return ResultUtil.exist();
|
|
return ResultUtil.exist();
|
|
}
|
|
}
|
|
BasePigpen basePigpen = new BasePigpen();
|
|
BasePigpen basePigpen = new BasePigpen();
|
|
- BeanUtil.copyProperties(basePigpenDto,basePigpen);
|
|
|
|
|
|
+ BeanUtil.copyProperties(basePigpenDto, basePigpen);
|
|
basePigpen.setParentId(0);
|
|
basePigpen.setParentId(0);
|
|
basePigpen.setFType(1);
|
|
basePigpen.setFType(1);
|
|
basePigpen.setOther2("0");
|
|
basePigpen.setOther2("0");
|
|
@@ -72,9 +99,9 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
|
|
BasePigpen basePigpen1 = new BasePigpen();
|
|
BasePigpen basePigpen1 = new BasePigpen();
|
|
basePigpen1.setFType(2);
|
|
basePigpen1.setFType(2);
|
|
basePigpen1.setParentId(id);
|
|
basePigpen1.setParentId(id);
|
|
- basePigpen1.setBuildName(buildName+Convert.numberToChinese(integer,false) +"层");
|
|
|
|
- basePigpen1.setOther1(Convert.numberToChinese(integer,false) +"层");
|
|
|
|
- basePigpen1.setOther2("0,"+id);
|
|
|
|
|
|
+ basePigpen1.setBuildName(buildName + Convert.numberToChinese(integer, false) + "层");
|
|
|
|
+ basePigpen1.setOther1(Convert.numberToChinese(integer, false) + "层");
|
|
|
|
+ basePigpen1.setOther2("0," + id);
|
|
basePigpen1.setFarmId(basePigpen.getFarmId());
|
|
basePigpen1.setFarmId(basePigpen.getFarmId());
|
|
basePigpen1.setStageCode(basePigpen.getStageCode());
|
|
basePigpen1.setStageCode(basePigpen.getStageCode());
|
|
basePigpenMapper.insert(basePigpen1);
|
|
basePigpenMapper.insert(basePigpen1);
|
|
@@ -89,10 +116,10 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
|
|
Integer id = basePigpen.getId();
|
|
Integer id = basePigpen.getId();
|
|
List<BasePigpen> parentId = basePigpenMapper.selectList(new QueryWrapper<BasePigpen>().eq("parent_id", id));
|
|
List<BasePigpen> parentId = basePigpenMapper.selectList(new QueryWrapper<BasePigpen>().eq("parent_id", id));
|
|
String buildName = basePigpen.getBuildName();
|
|
String buildName = basePigpen.getBuildName();
|
|
- if (StringUtils.isNotBlank(buildName)){
|
|
|
|
|
|
+ if (StringUtils.isNotBlank(buildName)) {
|
|
for (BasePigpen pigpen : parentId) {
|
|
for (BasePigpen pigpen : parentId) {
|
|
String other1 = pigpen.getOther1();
|
|
String other1 = pigpen.getOther1();
|
|
- pigpen.setBuildName(buildName+other1);
|
|
|
|
|
|
+ pigpen.setBuildName(buildName + other1);
|
|
basePigpenMapper.updateById(pigpen);
|
|
basePigpenMapper.updateById(pigpen);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -104,14 +131,14 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
|
|
public Result deletePigpen(Map<String, Integer> map) {
|
|
public Result deletePigpen(Map<String, Integer> map) {
|
|
Integer integer = map.get("id");
|
|
Integer integer = map.get("id");
|
|
Integer integer1 = envDeviceMapper.selectCount(new QueryWrapper<EnvDevice>().eq("unit_id", integer));
|
|
Integer integer1 = envDeviceMapper.selectCount(new QueryWrapper<EnvDevice>().eq("unit_id", integer));
|
|
- if (integer1 > 0){
|
|
|
|
- return new Result(10001,"删除失败,该栋舍下有采集器",false);
|
|
|
|
|
|
+ if (integer1 > 0) {
|
|
|
|
+ return new Result(10001, "删除失败,该栋舍下有采集器", false);
|
|
}
|
|
}
|
|
List<BasePigpen> other2 = basePigpenMapper.selectList(new QueryWrapper<BasePigpen>().like("other2", integer));
|
|
List<BasePigpen> other2 = basePigpenMapper.selectList(new QueryWrapper<BasePigpen>().like("other2", integer));
|
|
for (BasePigpen basePigpen : other2) {
|
|
for (BasePigpen basePigpen : other2) {
|
|
Integer count = envDeviceMapper.selectCount(new QueryWrapper<EnvDevice>().eq("unit_id", basePigpen.getId()));
|
|
Integer count = envDeviceMapper.selectCount(new QueryWrapper<EnvDevice>().eq("unit_id", basePigpen.getId()));
|
|
- if (count > 0){
|
|
|
|
- return new Result(10001,"删除失败,该栋舍下有采集器",false);
|
|
|
|
|
|
+ if (count > 0) {
|
|
|
|
+ return new Result(10001, "删除失败,该栋舍下有采集器", false);
|
|
}
|
|
}
|
|
basePigpenMapper.deleteById(basePigpen);
|
|
basePigpenMapper.deleteById(basePigpen);
|
|
}
|
|
}
|
|
@@ -120,6 +147,313 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
|
+ public Result listEnvData(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
|
|
|
|
+ String farmId = paramsMap.get("farmId");
|
|
|
|
+ QueryWrapper<BasePigpen> queryWrapper = new QueryWrapper<>();
|
|
|
|
+ queryWrapper.eq("farm_id", farmId).eq("f_type", 3);
|
|
|
|
+ List<BasePigpen> basePigpens = basePigpenMapper.selectList(queryWrapper);//拿到了所有的单元的集合
|
|
|
|
+ JSONArray jsonArray = new JSONArray();
|
|
|
|
+ for (BasePigpen basePigpen : basePigpens) {
|
|
|
|
+ Integer basePigpenId = basePigpen.getId();
|
|
|
|
+ QueryWrapper<EnvDevice> deviceQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ deviceQueryWrapper.eq("farm_id", farmId).eq("unit_id", basePigpenId);
|
|
|
|
+ EnvDevice envDevice = envDeviceMapper.selectOne(deviceQueryWrapper);//拿到单元绑定的设备
|
|
|
|
+ if (ObjectUtil.isEmpty(envDevice)) {
|
|
|
|
+ QueryWrapper<BasePigpen> queryWrapper1 = new QueryWrapper<>();
|
|
|
|
+ queryWrapper1.eq("farm_id", farmId).eq("id", basePigpen.getParentId());
|
|
|
|
+ BasePigpen basePigpen1 = basePigpenMapper.selectOne(queryWrapper1);
|
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
|
+ jsonObject.put("name", basePigpen1.getBuildName() + basePigpen.getBuildName());
|
|
|
|
+ jsonObject.put("value", 0);
|
|
|
|
+ jsonObject.put("warning", "未绑定设备");
|
|
|
|
+ jsonObject.put("dayAge", null);
|
|
|
|
+ jsonObject.put("status", null);
|
|
|
|
+ jsonObject.put("unitId", basePigpenId);
|
|
|
|
+ jsonObject.put("type", false);
|
|
|
|
+ jsonArray.add(jsonObject);
|
|
|
|
+ } else {
|
|
|
|
+ String deviceSortCode = envDevice.getDeviceSortCode();
|
|
|
|
+ QueryWrapper<EnvDeviceRecentlyData> queryWrapper1 = new QueryWrapper<>();
|
|
|
|
+ queryWrapper1.eq("farm_id", farmId).eq("device_code", deviceSortCode)
|
|
|
|
+ .orderByAsc("chip_type");
|
|
|
|
+ List<EnvDeviceRecentlyData> envDeviceRecentlyData = envDeviceRecentlyDataMapper.selectList(queryWrapper1);
|
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
|
+ jsonObject.put("name", envDevice.getBuildLocation());
|
|
|
|
+ jsonObject.put("value", envDeviceRecentlyData);
|
|
|
|
+ jsonObject.put("dayAge", envDevice.getDayAge());
|
|
|
|
+ jsonObject.put("status", envDevice.getStageType());
|
|
|
|
+ jsonObject.put("unitId", envDevice.getUnitId());
|
|
|
|
+ jsonObject.put("type", true);
|
|
|
|
+ QueryWrapper<EnvWarning> warningQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ warningQueryWrapper.eq("farm_id", farmId).eq("unit_id", basePigpenId)
|
|
|
|
+ .eq("warning_type", 8).orderByDesc("update_time").last(" limit 1");
|
|
|
|
+ EnvWarning envWarning = envWarningMapper.selectOne(warningQueryWrapper);
|
|
|
|
+ if (ObjectUtil.isEmpty(envWarning)) {
|
|
|
|
+ jsonObject.put("warning", null);
|
|
|
|
+ } else {
|
|
|
|
+ jsonObject.put("warning", envWarning.getWarningContent());
|
|
|
|
+ }
|
|
|
|
+ jsonArray.add(jsonObject);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return new Result(ResultCode.SUCCESS, jsonArray);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public Result listDetail(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
|
|
|
|
+ String farmId = paramsMap.get("farmId");
|
|
|
|
+ String unitId = paramsMap.get("unitId");//单元id
|
|
|
|
+ QueryWrapper<EnvDevice> deviceQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ deviceQueryWrapper.eq("farm_id", farmId).eq("unit_id", unitId);
|
|
|
|
+ EnvDevice envDevice = envDeviceMapper.selectOne(deviceQueryWrapper);//单元对应的设备
|
|
|
|
+ String deviceSortCode = envDevice.getDeviceSortCode();//生成的设备编码
|
|
|
|
+
|
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
|
+
|
|
|
|
+ //风机
|
|
|
|
+ QueryWrapper<EnvDeviceFan> fanQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ fanQueryWrapper.eq("farm_id", farmId).eq("device_code", deviceSortCode);
|
|
|
|
+ List<EnvDeviceFan> envDeviceFans = fanMapper.selectList(fanQueryWrapper);
|
|
|
|
+ JSONArray jsonArray = new JSONArray();
|
|
|
|
+ for (EnvDeviceFan envDeviceFan : envDeviceFans) {
|
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
|
+ jsonObject.put("name", envDeviceFan.getChipName());
|
|
|
|
+ jsonObject.put("status", envDeviceFan.getChipStatus());
|
|
|
|
+ jsonObject.put("type", envDeviceFan.getFengType());
|
|
|
|
+ jsonArray.add(jsonObject);
|
|
|
|
+ }
|
|
|
|
+ map.put("fengji", jsonArray);
|
|
|
|
+ //小窗
|
|
|
|
+ JSONArray jsonArray1 = new JSONArray();
|
|
|
|
+ QueryWrapper<EnvDeviceFenestrule> fenestruleQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ fenestruleQueryWrapper.eq("farm_id", farmId).eq("device_code", deviceSortCode);
|
|
|
|
+ List<EnvDeviceFenestrule> envDeviceFenestrules = fenestruleMapper.selectList(fenestruleQueryWrapper);
|
|
|
|
+ for (EnvDeviceFenestrule envDeviceFenestrule : envDeviceFenestrules) {
|
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
|
+ jsonObject.put("name", envDeviceFenestrule.getChipName());
|
|
|
|
+ jsonObject.put("status", envDeviceFenestrule.getChipStatus());
|
|
|
|
+ jsonArray1.add(jsonObject);
|
|
|
|
+ }
|
|
|
|
+ map.put("xiaochuang", jsonArray1);
|
|
|
|
+ //其他
|
|
|
|
+ JSONArray jsonArray2 = new JSONArray();
|
|
|
|
+ QueryWrapper<EnvDeviceOther> otherQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ otherQueryWrapper.eq("farm_id", farmId).eq("device_code", deviceSortCode);
|
|
|
|
+ List<EnvDeviceOther> envDeviceOthers = otherMapper.selectList(otherQueryWrapper);
|
|
|
|
+ for (EnvDeviceOther envDeviceOther : envDeviceOthers) {
|
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
|
+ jsonObject.put("name", envDeviceOther.getChipName());
|
|
|
|
+ jsonObject.put("status", envDeviceOther.getChipStatus());
|
|
|
|
+ jsonArray2.add(jsonObject);
|
|
|
|
+ }
|
|
|
|
+ map.put("other", jsonArray2);
|
|
|
|
+ //实时数据
|
|
|
|
+ JSONArray jsonArray3 = new JSONArray();
|
|
|
|
+ QueryWrapper<EnvDeviceRecentlyData> queryWrapper = new QueryWrapper<>();
|
|
|
|
+ queryWrapper.eq("farm_id", farmId).eq("device_code", deviceSortCode);
|
|
|
|
+ List<EnvDeviceRecentlyData> envDeviceRecentlyData = envDeviceRecentlyDataMapper.selectList(queryWrapper);
|
|
|
|
+ for (int i = 0; i < envDeviceRecentlyData.size(); i++) {
|
|
|
|
+ if (i < 11) {
|
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
|
+ jsonObject.put("name", envDeviceRecentlyData.get(i).getChipName());
|
|
|
|
+ jsonObject.put("value", envDeviceRecentlyData.get(i).getChipValue());
|
|
|
|
+ jsonObject.put("unit", "℃");
|
|
|
|
+ jsonArray3.add(jsonObject);
|
|
|
|
+ } else if (i > 10 && i < 14) {
|
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
|
+ jsonObject.put("name", envDeviceRecentlyData.get(i).getChipName());
|
|
|
|
+ jsonObject.put("value", envDeviceRecentlyData.get(i).getChipValue());
|
|
|
|
+ jsonObject.put("unit", "RH");
|
|
|
|
+ jsonArray3.add(jsonObject);
|
|
|
|
+ } else {
|
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
|
+ jsonObject.put("name", envDeviceRecentlyData.get(i).getChipName());
|
|
|
|
+ jsonObject.put("value", envDeviceRecentlyData.get(i).getChipValue());
|
|
|
|
+ jsonObject.put("unit", "");
|
|
|
|
+ jsonArray3.add(jsonObject);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ map.put("price", jsonArray3);
|
|
|
|
+ return new Result(ResultCode.SUCCESS, map);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public Result listByUnit(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
|
|
|
|
+ String farmId = paramsMap.get("farmId");
|
|
|
|
+ String unitId = paramsMap.get("unitId");
|
|
|
|
+ QueryWrapper<EnvDevice> queryWrapper = new QueryWrapper<>();
|
|
|
|
+ queryWrapper.eq("farm_id", farmId).eq("unit_id", unitId);
|
|
|
|
+ EnvDevice envDevice = envDeviceMapper.selectOne(queryWrapper);
|
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
|
+ jsonObject.put("name", envDevice.getBuildLocation());
|
|
|
|
+ jsonObject.put("dayAge", envDevice.getDayAge());
|
|
|
|
+ jsonObject.put("status", envDevice.getStageType());
|
|
|
|
+ QueryWrapper<EnvDeviceRecentlyData> queryWrapper1 = new QueryWrapper<>();
|
|
|
|
+ queryWrapper1.eq("farm_id", farmId).eq("device_code", envDevice.getDeviceSortCode())
|
|
|
|
+ .orderByAsc("chip_type");
|
|
|
|
+ List<EnvDeviceRecentlyData> envDeviceRecentlyData = envDeviceRecentlyDataMapper.selectList(queryWrapper1);
|
|
|
|
+ for (int i = 0; i < envDeviceRecentlyData.size(); i++) {
|
|
|
|
+ jsonObject.put("targetTemp", envDeviceRecentlyData.get(9).getChipValue());
|
|
|
|
+ jsonObject.put("aveTemp", envDeviceRecentlyData.get(10).getChipValue());
|
|
|
|
+ jsonObject.put("bodyTemp", envDeviceRecentlyData.get(22).getChipValue());
|
|
|
|
+ jsonObject.put("humi", envDeviceRecentlyData.get(11).getChipValue());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ DateTime dateTime = DateUtil.beginOfDay(new Date());
|
|
|
|
+ QueryWrapper<EnvTemp> tempQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ tempQueryWrapper.eq("farm_id", farmId).eq("unit_id", unitId).ge("ask_time", dateTime)
|
|
|
|
+ .orderByDesc("handle_value").last(" limit 1");
|
|
|
|
+ EnvTemp temp = tempMapper.selectOne(tempQueryWrapper);
|
|
|
|
+ jsonObject.put("maxTemp", temp.getHandleValue());
|
|
|
|
+ QueryWrapper<EnvTemp> tempQueryWrapper1 = new QueryWrapper<>();
|
|
|
|
+
|
|
|
|
+ tempQueryWrapper1.eq("farm_id", farmId).eq("unit_id", unitId).ge("ask_time", dateTime)
|
|
|
|
+ .orderByAsc("handle_value").last(" limit 1");
|
|
|
|
+ EnvTemp temp1 = tempMapper.selectOne(tempQueryWrapper1);
|
|
|
|
+ jsonObject.put("minTemp", temp1.getHandleValue());
|
|
|
|
+ return new Result(ResultCode.SUCCESS, jsonObject);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public Result listChart(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
|
|
|
|
+ String farmId = paramsMap.get("farmId");
|
|
|
|
+ String dataType = paramsMap.get("dataType");//数据类型
|
|
|
|
+ String unitId = paramsMap.get("unitId");
|
|
|
|
+ String startTime = paramsMap.get("startTime");
|
|
|
|
+ String endTime = paramsMap.get("endTime");
|
|
|
|
+ if (dataType == "" || dataType == null) {
|
|
|
|
+ dataType = "1";
|
|
|
|
+ }
|
|
|
|
+ Map map = new HashMap<>();
|
|
|
|
+ if (startTime == null || startTime == "") {
|
|
|
|
+ //今日数据展示
|
|
|
|
+ Date timesmorning = DataUill.getTimesmorning();
|
|
|
|
+ if ("1".equals(dataType)) {
|
|
|
|
+ QueryWrapper<EnvTemp> tempQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ tempQueryWrapper.eq("farm_id", farmId).eq("unit_id", unitId)
|
|
|
|
+ .ge("update_time", timesmorning).orderByAsc("ask_time");
|
|
|
|
+ List<EnvTemp> envTemps = tempMapper.selectList(tempQueryWrapper);
|
|
|
|
+ map.put("name", "temp");
|
|
|
|
+ map.put("value", envTemps);
|
|
|
|
+ }
|
|
|
|
+ if ("2".equals(dataType)) {
|
|
|
|
+ QueryWrapper<EnvHumi> humiQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ humiQueryWrapper.eq("farm_id", farmId).eq("unit_id", unitId)
|
|
|
|
+ .ge("update_time", timesmorning).orderByAsc("ask_time");
|
|
|
|
+ List<EnvHumi> envHumis = humiMapper.selectList(humiQueryWrapper);
|
|
|
|
+ map.put("name", "humi");
|
|
|
|
+ map.put("value", envHumis);
|
|
|
|
+ }
|
|
|
|
+ if ("3".equals(dataType)) {
|
|
|
|
+ QueryWrapper<EnvAmmonia> ammoniaQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ ammoniaQueryWrapper.eq("farm_id", farmId).eq("unit_id", unitId)
|
|
|
|
+ .ge("update_time", timesmorning).orderByAsc("ask_time");
|
|
|
|
+ List<EnvAmmonia> ammonias = ammoniaMapper.selectList(ammoniaQueryWrapper);
|
|
|
|
+ map.put("name", "ammonias");
|
|
|
|
+ map.put("value", ammonias);
|
|
|
|
+ }
|
|
|
|
+ if ("4".equals(dataType)) {
|
|
|
|
+ QueryWrapper<EnvCo2> co2QueryWrapper = new QueryWrapper<>();
|
|
|
|
+ co2QueryWrapper.eq("farm_id", farmId).eq("unit_id", unitId)
|
|
|
|
+ .ge("update_time", timesmorning).orderByAsc("ask_time");
|
|
|
|
+ List<EnvCo2> co2s = co2Mapper.selectList(co2QueryWrapper);
|
|
|
|
+ map.put("name", "CO2");
|
|
|
|
+ map.put("value", co2s);
|
|
|
|
+ }
|
|
|
|
+ if ("5".equals(dataType)) {
|
|
|
|
+ QueryWrapper<EnvStive> stiveQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ stiveQueryWrapper.eq("farm_id", farmId).eq("unit_id", unitId)
|
|
|
|
+ .ge("update_time", timesmorning).orderByAsc("ask_time");
|
|
|
|
+ List<EnvStive> stives = stiveMapper.selectList(stiveQueryWrapper);
|
|
|
|
+ map.put("name", "stive");
|
|
|
|
+ map.put("value", stives);
|
|
|
|
+ }
|
|
|
|
+ if ("6".equals(dataType)) {
|
|
|
|
+ QueryWrapper<EnvPressure> pressureQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ pressureQueryWrapper.eq("farm_id", farmId).eq("unit_id", unitId)
|
|
|
|
+ .ge("update_time", timesmorning).orderByAsc("ask_time");
|
|
|
|
+ List<EnvPressure> pressures = pressureMapper.selectList(pressureQueryWrapper);
|
|
|
|
+ map.put("name", "pressure");
|
|
|
|
+ map.put("value", pressures);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ //自定义查询
|
|
|
|
+ startTime = startTime + " 00:00:00";
|
|
|
|
+ endTime = endTime + " 23:59:59";
|
|
|
|
+ if ("1".equals(dataType)) {
|
|
|
|
+ QueryWrapper<EnvTemp> tempQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ tempQueryWrapper.eq("farm_id", farmId).eq("unit_id", unitId)
|
|
|
|
+ .between("update_time", startTime, endTime).orderByAsc("update_time");
|
|
|
|
+ List<EnvTemp> envTemps = tempMapper.selectList(tempQueryWrapper);
|
|
|
|
+ map.put("name", "temp");
|
|
|
|
+ map.put("value", envTemps);
|
|
|
|
+ }
|
|
|
|
+ if ("2".equals(dataType)) {
|
|
|
|
+ QueryWrapper<EnvHumi> humiQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ humiQueryWrapper.eq("farm_id", farmId).eq("unit_id", unitId)
|
|
|
|
+ .between("update_time", startTime, endTime).orderByAsc("update_time");
|
|
|
|
+ List<EnvHumi> envHumis = humiMapper.selectList(humiQueryWrapper);
|
|
|
|
+ map.put("name", "humi");
|
|
|
|
+ map.put("value", envHumis);
|
|
|
|
+ }
|
|
|
|
+ if ("3".equals(dataType)) {
|
|
|
|
+ QueryWrapper<EnvAmmonia> ammoniaQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ ammoniaQueryWrapper.eq("farm_id", farmId).eq("unit_id", unitId)
|
|
|
|
+ .between("update_time", startTime, endTime).orderByAsc("update_time");
|
|
|
|
+ List<EnvAmmonia> ammonias = ammoniaMapper.selectList(ammoniaQueryWrapper);
|
|
|
|
+ map.put("name", "ammonias");
|
|
|
|
+ map.put("value", ammonias);
|
|
|
|
+ }
|
|
|
|
+ if ("4".equals(dataType)) {
|
|
|
|
+ QueryWrapper<EnvCo2> co2QueryWrapper = new QueryWrapper<>();
|
|
|
|
+ co2QueryWrapper.eq("farm_id", farmId).eq("unit_id", unitId)
|
|
|
|
+ .between("update_time", startTime, endTime).orderByAsc("update_time");
|
|
|
|
+ List<EnvCo2> co2s = co2Mapper.selectList(co2QueryWrapper);
|
|
|
|
+ map.put("name", "CO2");
|
|
|
|
+ map.put("value", co2s);
|
|
|
|
+ }
|
|
|
|
+ if ("5".equals(dataType)) {
|
|
|
|
+ QueryWrapper<EnvStive> stiveQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ stiveQueryWrapper.eq("farm_id", farmId).eq("unit_id", unitId)
|
|
|
|
+ .between("update_time", startTime, endTime).orderByAsc("update_time");
|
|
|
|
+ List<EnvStive> stives = stiveMapper.selectList(stiveQueryWrapper);
|
|
|
|
+ map.put("name", "stive");
|
|
|
|
+ map.put("value", stives);
|
|
|
|
+ }
|
|
|
|
+ if ("6".equals(dataType)) {
|
|
|
|
+ QueryWrapper<EnvPressure> pressureQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ pressureQueryWrapper.eq("farm_id", farmId).eq("unit_id", unitId)
|
|
|
|
+ .between("update_time", startTime, endTime).orderByAsc("update_time");
|
|
|
|
+ List<EnvPressure> pressures = pressureMapper.selectList(pressureQueryWrapper);
|
|
|
|
+ map.put("name", "pressure");
|
|
|
|
+ map.put("value", pressures);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return new Result(ResultCode.SUCCESS, map);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public Result listByWarning(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
|
|
|
|
+ String farmId = paramsMap.get("farmId");
|
|
|
|
+ String unitId = paramsMap.get("unitId");
|
|
|
|
+ String pageNum = paramsMap.get("pageNum");
|
|
|
|
+ String pageSize = paramsMap.get("pageSize");
|
|
|
|
+ if (pageNum == null || pageNum == "") {
|
|
|
|
+ pageNum = "1";
|
|
|
|
+ }
|
|
|
|
+ if (pageSize == null || pageSize == "") {
|
|
|
|
+ pageSize = "20";
|
|
|
|
+ }
|
|
|
|
+ QueryWrapper<EnvWarning> queryWrapper = new QueryWrapper<>();
|
|
|
|
+ queryWrapper.eq("farm_id", farmId).eq("unit_id", unitId);
|
|
|
|
+ Page<EnvWarning> page = new Page(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
|
|
|
|
+ Page<EnvWarning> envWarningPage = envWarningMapper.selectPage(page, queryWrapper);
|
|
|
|
+ return new Result(ResultCode.SUCCESS, envWarningPage);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
public Result countAll(Map<String, String> paramsMap) {
|
|
public Result countAll(Map<String, String> paramsMap) {
|
|
String farmId = paramsMap.get("farmId");
|
|
String farmId = paramsMap.get("farmId");
|
|
Date timesMonthmorning = DataUill.getTimesMonthmorning();
|
|
Date timesMonthmorning = DataUill.getTimesMonthmorning();
|
|
@@ -128,85 +462,86 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
|
|
//牧场栋舍
|
|
//牧场栋舍
|
|
basePigpenCountVo.setBuildingNum(basePigpenService.count(new QueryWrapper<BasePigpen>()
|
|
basePigpenCountVo.setBuildingNum(basePigpenService.count(new QueryWrapper<BasePigpen>()
|
|
.eq("f_type", 1)
|
|
.eq("f_type", 1)
|
|
- .eq("farm_id",farmId)));
|
|
|
|
|
|
+ .eq("farm_id", farmId)));
|
|
basePigpenCountVo.setStoreyNum(basePigpenService.count(new QueryWrapper<BasePigpen>()
|
|
basePigpenCountVo.setStoreyNum(basePigpenService.count(new QueryWrapper<BasePigpen>()
|
|
- .eq("f_type",2)
|
|
|
|
- .eq("farm_id",farmId)));
|
|
|
|
|
|
+ .eq("f_type", 2)
|
|
|
|
+ .eq("farm_id", farmId)));
|
|
basePigpenCountVo.setUnitNum(basePigpenService.count(new QueryWrapper<BasePigpen>()
|
|
basePigpenCountVo.setUnitNum(basePigpenService.count(new QueryWrapper<BasePigpen>()
|
|
- .eq("f_type",3)
|
|
|
|
- .eq("farm_id",farmId)));
|
|
|
|
|
|
+ .eq("f_type", 3)
|
|
|
|
+ .eq("farm_id", farmId)));
|
|
//牧场预警
|
|
//牧场预警
|
|
basePigpenCountVo.setMonthWarning(envWarningService.count(new QueryWrapper<EnvWarning>()
|
|
basePigpenCountVo.setMonthWarning(envWarningService.count(new QueryWrapper<EnvWarning>()
|
|
- .ge("update_time",timesMonthmorning)
|
|
|
|
- .eq("farm_id",farmId)));
|
|
|
|
|
|
+ .ge("update_time", timesMonthmorning)
|
|
|
|
+ .eq("farm_id", farmId)));
|
|
basePigpenCountVo.setDayWarning(envWarningService.count(new QueryWrapper<EnvWarning>()
|
|
basePigpenCountVo.setDayWarning(envWarningService.count(new QueryWrapper<EnvWarning>()
|
|
- .ge("update_time",timesmorning)
|
|
|
|
- .eq("farm_id",farmId)));
|
|
|
|
|
|
+ .ge("update_time", timesmorning)
|
|
|
|
+ .eq("farm_id", farmId)));
|
|
BigDecimal monthWater = envWaterMapper.getWater(new QueryWrapper<EnvWater>().ge("update_time", timesMonthmorning).eq("farm_id", farmId));
|
|
BigDecimal monthWater = envWaterMapper.getWater(new QueryWrapper<EnvWater>().ge("update_time", timesMonthmorning).eq("farm_id", farmId));
|
|
- if (ObjectUtil.isNull(monthWater)){
|
|
|
|
|
|
+ if (ObjectUtil.isNull(monthWater)) {
|
|
monthWater = BigDecimal.ZERO;
|
|
monthWater = BigDecimal.ZERO;
|
|
}
|
|
}
|
|
basePigpenCountVo.setMonthWater(monthWater);
|
|
basePigpenCountVo.setMonthWater(monthWater);
|
|
BigDecimal dayWater = envWaterMapper.getWater(new QueryWrapper<EnvWater>().ge("update_time", timesmorning).eq("farm_id", farmId));
|
|
BigDecimal dayWater = envWaterMapper.getWater(new QueryWrapper<EnvWater>().ge("update_time", timesmorning).eq("farm_id", farmId));
|
|
- if (ObjectUtil.isNull(dayWater)){
|
|
|
|
|
|
+ if (ObjectUtil.isNull(dayWater)) {
|
|
dayWater = BigDecimal.ZERO;
|
|
dayWater = BigDecimal.ZERO;
|
|
}
|
|
}
|
|
basePigpenCountVo.setDayWater(dayWater);
|
|
basePigpenCountVo.setDayWater(dayWater);
|
|
BigDecimal monthElectricity = envElectricityMapper.getElectricity(new QueryWrapper<EnvElectricity>()
|
|
BigDecimal monthElectricity = envElectricityMapper.getElectricity(new QueryWrapper<EnvElectricity>()
|
|
.ge("update_time", timesMonthmorning)
|
|
.ge("update_time", timesMonthmorning)
|
|
.eq("farm_id", farmId));
|
|
.eq("farm_id", farmId));
|
|
- if (ObjectUtil.isNull(monthElectricity)){
|
|
|
|
|
|
+ if (ObjectUtil.isNull(monthElectricity)) {
|
|
monthElectricity = BigDecimal.ZERO;
|
|
monthElectricity = BigDecimal.ZERO;
|
|
}
|
|
}
|
|
basePigpenCountVo.setMonthElectricity(monthElectricity);
|
|
basePigpenCountVo.setMonthElectricity(monthElectricity);
|
|
BigDecimal dayElectricity = envElectricityMapper.getElectricity(new QueryWrapper<EnvElectricity>()
|
|
BigDecimal dayElectricity = envElectricityMapper.getElectricity(new QueryWrapper<EnvElectricity>()
|
|
.ge("update_time", timesmorning)
|
|
.ge("update_time", timesmorning)
|
|
.eq("farm_id", farmId));
|
|
.eq("farm_id", farmId));
|
|
- if (ObjectUtil.isNull(dayElectricity)){
|
|
|
|
|
|
+ if (ObjectUtil.isNull(dayElectricity)) {
|
|
dayElectricity = BigDecimal.ZERO;
|
|
dayElectricity = BigDecimal.ZERO;
|
|
}
|
|
}
|
|
basePigpenCountVo.setDayElectricity(dayElectricity);
|
|
basePigpenCountVo.setDayElectricity(dayElectricity);
|
|
BigDecimal monthFeed = envFeedMapper.getFeed(new QueryWrapper<EnvFeed>()
|
|
BigDecimal monthFeed = envFeedMapper.getFeed(new QueryWrapper<EnvFeed>()
|
|
.ge("update_time", timesMonthmorning)
|
|
.ge("update_time", timesMonthmorning)
|
|
.eq("farm_id", farmId));
|
|
.eq("farm_id", farmId));
|
|
- if (ObjectUtil.isNull(monthFeed)){
|
|
|
|
|
|
+ if (ObjectUtil.isNull(monthFeed)) {
|
|
monthFeed = BigDecimal.ZERO;
|
|
monthFeed = BigDecimal.ZERO;
|
|
}
|
|
}
|
|
basePigpenCountVo.setMonthFeed(monthFeed);
|
|
basePigpenCountVo.setMonthFeed(monthFeed);
|
|
BigDecimal dayFeed = envFeedMapper.getFeed(new QueryWrapper<EnvFeed>()
|
|
BigDecimal dayFeed = envFeedMapper.getFeed(new QueryWrapper<EnvFeed>()
|
|
.ge("update_time", timesmorning)
|
|
.ge("update_time", timesmorning)
|
|
.eq("farm_id", farmId));
|
|
.eq("farm_id", farmId));
|
|
- if (ObjectUtil.isNull(dayFeed)){
|
|
|
|
|
|
+ if (ObjectUtil.isNull(dayFeed)) {
|
|
dayFeed = BigDecimal.ZERO;
|
|
dayFeed = BigDecimal.ZERO;
|
|
}
|
|
}
|
|
basePigpenCountVo.setDayFeed(dayFeed);
|
|
basePigpenCountVo.setDayFeed(dayFeed);
|
|
- return new Result(ResultCode.SUCCESS,basePigpenCountVo);
|
|
|
|
|
|
+ return new Result(ResultCode.SUCCESS, basePigpenCountVo);
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public Result list(String farmCode, String buildName, String stageCode) {
|
|
public Result list(String farmCode, String buildName, String stageCode) {
|
|
QueryWrapper<BasePigpen> queryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<BasePigpen> queryWrapper = new QueryWrapper<>();
|
|
- queryWrapper.like(StringUtils.isNotBlank(buildName),"build_name", buildName);
|
|
|
|
- queryWrapper.like(StringUtils.isNotBlank(stageCode),"stage_code", stageCode);
|
|
|
|
- queryWrapper.eq(StringUtils.isNotBlank(farmCode),"farm_id", farmCode);
|
|
|
|
|
|
+ queryWrapper.like(StringUtils.isNotBlank(buildName), "build_name", buildName);
|
|
|
|
+ queryWrapper.like(StringUtils.isNotBlank(stageCode), "stage_code", stageCode);
|
|
|
|
+ queryWrapper.eq(StringUtils.isNotBlank(farmCode), "farm_id", farmCode);
|
|
queryWrapper.orderByAsc("sort");
|
|
queryWrapper.orderByAsc("sort");
|
|
//创建排序
|
|
//创建排序
|
|
List<BasePigpen> basePigpens = basePigpenMapper.selectList(queryWrapper);
|
|
List<BasePigpen> basePigpens = basePigpenMapper.selectList(queryWrapper);
|
|
//将结果List改为树
|
|
//将结果List改为树
|
|
List<TreeBasePigpen> treeBasePigpens = parseBizBaseArea(basePigpens);
|
|
List<TreeBasePigpen> treeBasePigpens = parseBizBaseArea(basePigpens);
|
|
- return new Result(ResultCode.SUCCESS,treeBasePigpens);
|
|
|
|
|
|
+ return new Result(ResultCode.SUCCESS, treeBasePigpens);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
* 查询结果 转换成树形结构
|
|
* 查询结果 转换成树形结构
|
|
|
|
+ *
|
|
* @param bizBaseAreas 原始数据
|
|
* @param bizBaseAreas 原始数据
|
|
* @return 树
|
|
* @return 树
|
|
*/
|
|
*/
|
|
- private List<TreeBasePigpen> parseBizBaseArea(List<BasePigpen> bizBaseAreas){
|
|
|
|
|
|
+ private List<TreeBasePigpen> parseBizBaseArea(List<BasePigpen> bizBaseAreas) {
|
|
//构建需要展示的树形节点结构
|
|
//构建需要展示的树形节点结构
|
|
Map<String, TreeBasePigpen> nodeMap = bizBaseAreas.stream().map(basePigpen -> {
|
|
Map<String, TreeBasePigpen> nodeMap = bizBaseAreas.stream().map(basePigpen -> {
|
|
- TreeBasePigpen baseVo = new TreeBasePigpen();
|
|
|
|
- baseVo.setId(basePigpen.getId()+"");
|
|
|
|
|
|
+ TreeBasePigpen baseVo = new TreeBasePigpen();
|
|
|
|
+ baseVo.setId(basePigpen.getId() + "");
|
|
baseVo.setFarmCode(basePigpen.getFarmId());
|
|
baseVo.setFarmCode(basePigpen.getFarmId());
|
|
baseVo.setParentId(basePigpen.getParentId());
|
|
baseVo.setParentId(basePigpen.getParentId());
|
|
baseVo.setSort(basePigpen.getSort());
|
|
baseVo.setSort(basePigpen.getSort());
|
|
@@ -215,16 +550,16 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
|
|
baseVo.setType(basePigpen.getFType());
|
|
baseVo.setType(basePigpen.getFType());
|
|
baseVo.setChildNode(new ArrayList<>());
|
|
baseVo.setChildNode(new ArrayList<>());
|
|
return baseVo;
|
|
return baseVo;
|
|
- }).collect(Collectors.toMap(TreeBasePigpen::getId, b -> b,(k1, k2)->k1));
|
|
|
|
|
|
+ }).collect(Collectors.toMap(TreeBasePigpen::getId, b -> b, (k1, k2) -> k1));
|
|
//创建数组存父亲节点
|
|
//创建数组存父亲节点
|
|
ArrayList<TreeBasePigpen> roots = new ArrayList<>();
|
|
ArrayList<TreeBasePigpen> roots = new ArrayList<>();
|
|
//构建树形
|
|
//构建树形
|
|
- nodeMap.values().forEach(item->{
|
|
|
|
- String parentCode = item.getParentId()+"";
|
|
|
|
- if (nodeMap.get(parentCode) == null){
|
|
|
|
|
|
+ nodeMap.values().forEach(item -> {
|
|
|
|
+ String parentCode = item.getParentId() + "";
|
|
|
|
+ if (nodeMap.get(parentCode) == null) {
|
|
//父节点为空,说明当前节点就已经是父节点了 将该节点存起来
|
|
//父节点为空,说明当前节点就已经是父节点了 将该节点存起来
|
|
roots.add(item);
|
|
roots.add(item);
|
|
- }else {
|
|
|
|
|
|
+ } else {
|
|
//父节点 不为空,说明有父节点,拿到该节点的父节点的孩子节点(就是我自己),将该节点存起来
|
|
//父节点 不为空,说明有父节点,拿到该节点的父节点的孩子节点(就是我自己),将该节点存起来
|
|
nodeMap.get(parentCode).getChildNode().add(item);
|
|
nodeMap.get(parentCode).getChildNode().add(item);
|
|
}
|
|
}
|