119 lines
4.7 KiB
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);
|
|
}
|
|
}
|