package com.casic.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.dao.GasDataRecvMapper; import com.casic.dao.NbDeviceMapper; import com.casic.entity.LucencyGasData; import com.casic.model.ResponseData; import com.casic.service.GasDataService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.HashMap; import java.util.List; import java.util.Map; @Service @Slf4j public class GasDataServiceImpl implements GasDataService { @Resource private GasDataRecvMapper gasDataRecvMapper; @Resource private NbDeviceMapper nbDeviceMapper; @Override public ResponseData<List<LucencyGasData>> getGasDataList(String devcode, String beginTime, String endTime, Integer currentIndex, Integer pageSize, Boolean sortDevcode, Boolean realData) { ResponseData responseData = new ResponseData(); try { devcode = StringUtils.isEmpty(devcode) ? "3" : devcode; QueryWrapper<LucencyGasData> lucencyGasWrapper = new QueryWrapper<LucencyGasData>() .like("devcode", devcode); if (realData) { lucencyGasWrapper.ne("signals", ""); } if (!StringUtils.isEmpty(beginTime)) { lucencyGasWrapper = lucencyGasWrapper.gt("uptime", beginTime); } if (!StringUtils.isEmpty(endTime)) { lucencyGasWrapper = lucencyGasWrapper.lt("uptime", endTime); } lucencyGasWrapper = sortDevcode ? lucencyGasWrapper.orderByAsc("devcode") : lucencyGasWrapper.orderByDesc("logtime"); Integer count = gasDataRecvMapper.selectCount(lucencyGasWrapper); lucencyGasWrapper = lucencyGasWrapper.groupBy("devcode"); lucencyGasWrapper = lucencyGasWrapper.select("id,devcode,tenant_id as tenantId,data_value as dataValue,signals,chha,chhha,cell," + "device_id as deviceId,logtime,max(uptime) as uptime,imei"); Page<LucencyGasData> userPage = new Page<>((count-1) / pageSize + 1 < currentIndex ? (count-1) / pageSize + 1 : currentIndex, pageSize); IPage<LucencyGasData> userIPage = gasDataRecvMapper.selectPage(userPage, lucencyGasWrapper); Map<String, Object> page = new HashMap(); page.put("total", userIPage.getTotal()); page.put("rows", userIPage.getRecords()); page.put("current", userIPage.getCurrent()); responseData.setCode(200); responseData.setMessage("查询成功"); responseData.setData(page); } catch (DataAccessException dex) { log.error("主题:哈尔滨燃气数据查询异常,异常信息:{}", dex.getMessage()); responseData.setCode(500); responseData.setMessage("查询异常"); } return responseData; } @Override public ResponseData<List<LucencyGasData>> getGasHistoryList(String devcode, String beginTime, String endTime, Integer currentIndex, Integer pageSize) { ResponseData responseData = new ResponseData(); try { devcode = StringUtils.isEmpty(devcode) ? "" : devcode; QueryWrapper<LucencyGasData> lucencyGasWrapper = new QueryWrapper<LucencyGasData>().like("devcode", devcode); if (!StringUtils.isEmpty(beginTime)) { lucencyGasWrapper = lucencyGasWrapper.gt("uptime", beginTime); } if (!StringUtils.isEmpty(endTime)) { lucencyGasWrapper = lucencyGasWrapper.lt("uptime", endTime); } lucencyGasWrapper = lucencyGasWrapper.orderByDesc("logtime"); Page<LucencyGasData> userPage = new Page<>(currentIndex, pageSize); IPage<LucencyGasData> userIPage = gasDataRecvMapper.selectPage(userPage, lucencyGasWrapper); Map<String, Object> page = new HashMap(); page.put("total", userIPage.getTotal()); page.put("rows", userIPage.getRecords()); page.put("current", userIPage.getCurrent()); responseData.setCode(200); responseData.setMessage("查询成功"); responseData.setData(page); } catch (DataAccessException dex) { log.error("主题:哈尔滨燃气数据查询异常,异常信息:{}", dex.getMessage()); responseData.setCode(500); responseData.setMessage("查询异常"); } return responseData; } }