package com.gunshi.project.ss.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gunshi.project.ss.common.model.so.JcskByRPageSo; import com.gunshi.project.ss.common.model.vo.JcskByRProcessVo; import com.gunshi.project.ss.mapper.WaterDataTermitesMapper; import com.gunshi.project.ss.common.model.InspectTask; import com.gunshi.project.ss.common.model.JcskByR; import com.gunshi.project.ss.model.JcskByRProcess; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; @Service @Slf4j @Transactional(rollbackFor = Exception.class) public class JcskByRService extends ServiceImpl { @Autowired private JcskByRProcessService jcskByRProcessService; @Autowired private JcskByInspectTaskService jcskByInspectTaskService; @Autowired private JcskByBDService jcskByBDService; public Page pageQuery(JcskByRPageSo page) { Page res; if(page.getObDate() != null){ res = this.baseMapper.query(page.getPageSo().toPage(), page); }else{ res = this.baseMapper.queryWithNoDate(page.getPageSo().toPage(), page); } for (JcskByR record : res.getRecords()) { List list = jcskByRProcessService.queryCount(record); if(list.size() > 0){ record.setIsProcess(true); } //当为处理之后的情况下 InspectTask inspectTask = jcskByInspectTaskService.queryInspectTask(record); if(inspectTask != null){ //设置存在巡检任务 record.setHasInspectTask(true); //设置巡检任务数据 JcskByRProcessVo detailTask = new JcskByRProcessVo(); BeanUtils.copyProperties(inspectTask,detailTask); detailTask.setHours(list.get(0).getHours()); detailTask.setObResolveDate(list.get(0).getObResolveDate()); detailTask.setObDate(list.get(0).getObDate()); record.setJcskByRProcessVo(detailTask); } } return res; } public Map pageQueryCount(JcskByRPageSo page, Map countMap) { long hasAnt = 0; long noData = 0; long notAnt = 0; long totalData = 0; Page res; if(page.getObDate() != null){ res = this.baseMapper.pageQuery(page.getPageSo().toPage(), page); }else{ res = this.baseMapper.pageQueryWithNoDate(page.getPageSo().toPage(), page); } List records = res.getRecords(); for (JcskByR record : records) { if(record.getStatus() == 0 && record.getElectricity() != null && record.getElectricity() > 0){ notAnt++; }else if(record.getStatus() == 1 && record.getElectricity() != null && record.getElectricity() > 0){ hasAnt++; }else{ noData++; } } totalData = jcskByBDService.count(); noData = totalData - hasAnt - notAnt; countMap.put("hasAnt",hasAnt); countMap.put("notAnt",notAnt); countMap.put("noData",noData >=0 ? noData:0); countMap.put("totalPoint",totalData); return countMap; } public Page detailList(JcskByRPageSo page) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); if(page.getOrder() != null){ queryWrapper.eq(JcskByR::getOrder,page.getOrder()); } else if (page.getDeviceCode() != null) { queryWrapper.eq(JcskByR::getDeviceId,page.getDeviceCode()); }else{ throw new IllegalArgumentException("请传入设备编号,或者测站编号"); } if(page.getDateTimeRangeSo() != null){ queryWrapper.between(JcskByR::getObDate,page.getDateTimeRangeSo().getStart(),page.getDateTimeRangeSo().getEnd()); } queryWrapper.orderByDesc(JcskByR::getStatus) .orderByDesc(JcskByR::getObDate); Page jcskByRPage = this.baseMapper.selectPage(page.getPageSo().toPage(), queryWrapper); return jcskByRPage; } public List listNewData(String deviceId) { return this.baseMapper.listNewData(deviceId); } }