|
@@ -1,6 +1,10 @@
|
|
|
package com.ruoyi.data.service.impl;
|
|
package com.ruoyi.data.service.impl;
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
|
+import cn.hutool.core.date.DateField;
|
|
|
|
|
+import cn.hutool.core.date.DateTime;
|
|
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
|
|
+import cn.hutool.json.JSONUtil;
|
|
|
import com.ruoyi.common.utils.StringUtils;
|
|
import com.ruoyi.common.utils.StringUtils;
|
|
|
import com.ruoyi.common.core.page.TableDataInfo;
|
|
import com.ruoyi.common.core.page.TableDataInfo;
|
|
|
import com.ruoyi.common.core.domain.PageQuery;
|
|
import com.ruoyi.common.core.domain.PageQuery;
|
|
@@ -11,6 +15,8 @@ import com.ruoyi.common.utils.redis.CacheUtils;
|
|
|
import com.ruoyi.data.domain.TblRecord;
|
|
import com.ruoyi.data.domain.TblRecord;
|
|
|
import com.ruoyi.data.mapper.TblRecordMapper;
|
|
import com.ruoyi.data.mapper.TblRecordMapper;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
+import org.slf4j.Logger;
|
|
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import com.ruoyi.data.domain.bo.TblSensorRecordBo;
|
|
import com.ruoyi.data.domain.bo.TblSensorRecordBo;
|
|
|
import com.ruoyi.data.domain.vo.TblSensorRecordVo;
|
|
import com.ruoyi.data.domain.vo.TblSensorRecordVo;
|
|
@@ -18,9 +24,11 @@ import com.ruoyi.data.domain.TblSensorRecord;
|
|
|
import com.ruoyi.data.mapper.TblSensorRecordMapper;
|
|
import com.ruoyi.data.mapper.TblSensorRecordMapper;
|
|
|
import com.ruoyi.data.service.ITblSensorRecordService;
|
|
import com.ruoyi.data.service.ITblSensorRecordService;
|
|
|
|
|
|
|
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
import java.util.Collection;
|
|
import java.util.Collection;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 传感器实时数据Service业务层处理
|
|
* 传感器实时数据Service业务层处理
|
|
@@ -32,9 +40,15 @@ import java.util.Collection;
|
|
|
@Service
|
|
@Service
|
|
|
public class TblSensorRecordServiceImpl implements ITblSensorRecordService {
|
|
public class TblSensorRecordServiceImpl implements ITblSensorRecordService {
|
|
|
|
|
|
|
|
|
|
+ private static final Logger log = LoggerFactory.getLogger(TblSensorRecordServiceImpl.class);
|
|
|
private final TblSensorRecordMapper baseMapper;
|
|
private final TblSensorRecordMapper baseMapper;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void createTable(Map<String, Object> map) {
|
|
|
|
|
+ baseMapper.createTable(map);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 查询传感器实时数据
|
|
* 查询传感器实时数据
|
|
|
*/
|
|
*/
|
|
@@ -48,8 +62,41 @@ public class TblSensorRecordServiceImpl implements ITblSensorRecordService {
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
public TableDataInfo<TblSensorRecordVo> queryPageList(TblSensorRecordBo bo, PageQuery pageQuery) {
|
|
public TableDataInfo<TblSensorRecordVo> queryPageList(TblSensorRecordBo bo, PageQuery pageQuery) {
|
|
|
- LambdaQueryWrapper<TblSensorRecord> lqw = buildQueryWrapper(bo);
|
|
|
|
|
- Page<TblSensorRecordVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
|
|
|
|
|
|
+ if(bo.getParams()!=null){
|
|
|
|
|
+ Date startTime1 = new Date();
|
|
|
|
|
+ Date endTime1 =new Date();
|
|
|
|
|
+ try{
|
|
|
|
|
+ String startTime = bo.getParams().get("starttime").toString();
|
|
|
|
|
+ String endTime = bo.getParams().get("endtime").toString();
|
|
|
|
|
+ startTime1 = DateUtil.date(Long.parseLong(startTime)*1000);
|
|
|
|
|
+ endTime1 = DateUtil.date(Long.parseLong(endTime)*1000);
|
|
|
|
|
+
|
|
|
|
|
+ bo.getParams().put("startTime",DateUtil.format(startTime1,"yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
+ bo.getParams().put("endTime",DateUtil.format(endTime1,"yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
+
|
|
|
|
|
+ }catch (Exception e){
|
|
|
|
|
+ String startTime = bo.getParams().get("starttime").toString();
|
|
|
|
|
+ String endTime = bo.getParams().get("endtime").toString();
|
|
|
|
|
+ startTime1 = DateUtil.parseTime(startTime);
|
|
|
|
|
+ endTime1 = DateUtil.parseTime(endTime);
|
|
|
|
|
+ bo.getParams().put("startTime",startTime);
|
|
|
|
|
+ bo.getParams().put("endTime",endTime);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //计算月
|
|
|
|
|
+ List<DateTime> dateList =DateUtil.rangeToList(startTime1,endTime1, DateField.MONTH);
|
|
|
|
|
+ bo.getParams().put("datetimes",dateList.stream().map(date -> DateUtil.format(date,"yyyy_MM")).collect(Collectors.toList()));
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ TblSensorRecord r = new TblSensorRecord();
|
|
|
|
|
+ r.setParams(bo.getParams());
|
|
|
|
|
+ r.setId(bo.getId());
|
|
|
|
|
+ r.setSensorId(bo.getSensorId());
|
|
|
|
|
+ r.setPointName(bo.getPointName());
|
|
|
|
|
+ r.setPointValue(bo.getPointValue());
|
|
|
|
|
+ r.setCreateBy(bo.getCreateBy());
|
|
|
|
|
+ Page<TblSensorRecordVo> result = (Page<TblSensorRecordVo>) baseMapper.selectDataPage(pageQuery.build(),r);
|
|
|
return TableDataInfo.build(result);
|
|
return TableDataInfo.build(result);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -58,15 +105,50 @@ public class TblSensorRecordServiceImpl implements ITblSensorRecordService {
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
public List<TblSensorRecordVo> queryList(TblSensorRecordBo bo) {
|
|
public List<TblSensorRecordVo> queryList(TblSensorRecordBo bo) {
|
|
|
- LambdaQueryWrapper<TblSensorRecord> lqw = buildQueryWrapper(bo);
|
|
|
|
|
- return baseMapper.selectVoList(lqw);
|
|
|
|
|
|
|
+ if(bo.getParams()!=null){
|
|
|
|
|
+ Date startTime1 = new Date();
|
|
|
|
|
+ Date endTime1 =new Date();
|
|
|
|
|
+ try{
|
|
|
|
|
+ String startTime = bo.getParams().get("starttime").toString();
|
|
|
|
|
+ String endTime = bo.getParams().get("endtime").toString();
|
|
|
|
|
+ startTime1 = DateUtil.date(Long.parseLong(startTime)*1000);
|
|
|
|
|
+ endTime1 = DateUtil.date(Long.parseLong(endTime)*1000);
|
|
|
|
|
+
|
|
|
|
|
+ bo.getParams().put("startTime",DateUtil.format(startTime1,"yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
+ bo.getParams().put("endTime",DateUtil.format(endTime1,"yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
+
|
|
|
|
|
+ }catch (Exception e){
|
|
|
|
|
+ String startTime = bo.getParams().get("starttime").toString();
|
|
|
|
|
+ String endTime = bo.getParams().get("endtime").toString();
|
|
|
|
|
+ startTime1 = DateUtil.parse(startTime,"yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
+ endTime1 = DateUtil.parse(endTime, "yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
+ bo.getParams().put("startTime",startTime);
|
|
|
|
|
+ bo.getParams().put("endTime",endTime);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ //计算月
|
|
|
|
|
+ List<DateTime> dateList =DateUtil.rangeToList(startTime1,endTime1, DateField.MONTH);
|
|
|
|
|
+ bo.getParams().put("datetimes",dateList.stream().map(date -> DateUtil.format(date,"yyyy_MM")).collect(Collectors.toList()));
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ TblSensorRecord r = new TblSensorRecord();
|
|
|
|
|
+ r.setParams(bo.getParams());
|
|
|
|
|
+ r.setId(bo.getId());
|
|
|
|
|
+ r.setSensorId(bo.getSensorId());
|
|
|
|
|
+ r.setPointName(bo.getPointName());
|
|
|
|
|
+ r.setPointValue(bo.getPointValue());
|
|
|
|
|
+ r.setCreateBy(bo.getCreateBy());
|
|
|
|
|
+ List<TblSensorRecordVo> result = baseMapper.selectData(r);
|
|
|
|
|
+ return result;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private LambdaQueryWrapper<TblSensorRecord> buildQueryWrapper(TblSensorRecordBo bo) {
|
|
private LambdaQueryWrapper<TblSensorRecord> buildQueryWrapper(TblSensorRecordBo bo) {
|
|
|
|
|
+
|
|
|
Map<String, Object> params = bo.getParams();
|
|
Map<String, Object> params = bo.getParams();
|
|
|
LambdaQueryWrapper<TblSensorRecord> lqw = Wrappers.lambdaQuery();
|
|
LambdaQueryWrapper<TblSensorRecord> lqw = Wrappers.lambdaQuery();
|
|
|
lqw.eq(bo.getSensorId() != null, TblSensorRecord::getSensorId, bo.getSensorId());
|
|
lqw.eq(bo.getSensorId() != null, TblSensorRecord::getSensorId, bo.getSensorId());
|
|
|
- lqw.eq(StringUtils.isNotBlank(bo.getPointName()), TblSensorRecord::getPointName, bo.getPointName());
|
|
|
|
|
|
|
+ lqw.like(StringUtils.isNotBlank(bo.getPointName()), TblSensorRecord::getPointName, bo.getPointName());
|
|
|
lqw.eq(StringUtils.isNotBlank(bo.getPointValue()), TblSensorRecord::getPointValue, bo.getPointValue());
|
|
lqw.eq(StringUtils.isNotBlank(bo.getPointValue()), TblSensorRecord::getPointValue, bo.getPointValue());
|
|
|
lqw.eq(bo.getEquipmentId() != null, TblSensorRecord::getEquipmentId, bo.getEquipmentId());
|
|
lqw.eq(bo.getEquipmentId() != null, TblSensorRecord::getEquipmentId, bo.getEquipmentId());
|
|
|
lqw.orderBy(true,false, TblSensorRecord::getCreateTime);
|
|
lqw.orderBy(true,false, TblSensorRecord::getCreateTime);
|
|
@@ -90,12 +172,23 @@ public class TblSensorRecordServiceImpl implements ITblSensorRecordService {
|
|
|
@Override
|
|
@Override
|
|
|
public Boolean insertByBo(TblSensorRecordBo bo) {
|
|
public Boolean insertByBo(TblSensorRecordBo bo) {
|
|
|
TblSensorRecord add = BeanUtil.toBean(bo, TblSensorRecord.class);
|
|
TblSensorRecord add = BeanUtil.toBean(bo, TblSensorRecord.class);
|
|
|
|
|
+ if(bo.getParams()==null || bo.getParams().get("datetime")==null) return false;
|
|
|
|
|
+ try {
|
|
|
|
|
+ baseMapper.createTable(bo.getParams());
|
|
|
|
|
+
|
|
|
validEntityBeforeSave(add);
|
|
validEntityBeforeSave(add);
|
|
|
- boolean flag = baseMapper.insert(add) > 0;
|
|
|
|
|
|
|
+ log.info(JSONUtil.toJsonStr(add));
|
|
|
|
|
+ boolean flag = baseMapper.insertData(add) > 0;
|
|
|
|
|
+
|
|
|
if (flag) {
|
|
if (flag) {
|
|
|
bo.setId(add.getId());
|
|
bo.setId(add.getId());
|
|
|
}
|
|
}
|
|
|
return flag;
|
|
return flag;
|
|
|
|
|
+ }catch (Exception e){
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ log.error(e.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ return false;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|