gunshi-project-ss/src/main/java/com/gunshi/project/ss/service/JcskByRService.java

119 lines
4.7 KiB
Java

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<WaterDataTermitesMapper, JcskByR> {
@Autowired
private JcskByRProcessService jcskByRProcessService;
@Autowired
private JcskByInspectTaskService jcskByInspectTaskService;
@Autowired
private JcskByBDService jcskByBDService;
public Page<JcskByR> pageQuery(JcskByRPageSo page) {
Page<JcskByR> 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<JcskByRProcess> 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<String, Long> pageQueryCount(JcskByRPageSo page, Map<String, Long> countMap) {
long hasAnt = 0;
long noData = 0;
long notAnt = 0;
long totalData = 0;
Page<JcskByR> res;
if(page.getObDate() != null){
res = this.baseMapper.pageQuery(page.getPageSo().toPage(), page);
}else{
res = this.baseMapper.pageQueryWithNoDate(page.getPageSo().toPage(), page);
}
List<JcskByR> 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<JcskByR> detailList(JcskByRPageSo page) {
LambdaQueryWrapper<JcskByR> 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<JcskByR> jcskByRPage = this.baseMapper.selectPage(page.getPageSo().toPage(), queryWrapper);
return jcskByRPage;
}
public List<JcskByR> listNewData(String deviceId) {
return this.baseMapper.listNewData(deviceId);
}
}