89 lines
3.1 KiB
Java
89 lines
3.1 KiB
Java
package com.gunshi.project.ss.service;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.gunshi.project.ss.common.mapper.JcskGnssRMapper;
|
|
import com.gunshi.project.ss.common.model.JcskGnssR;
|
|
import com.gunshi.project.ss.common.model.StationNormalVo;
|
|
import com.gunshi.project.ss.common.model.so.JcskGnssBPageSo;
|
|
import com.gunshi.project.ss.common.model.vo.HomeJcskGnssBVo;
|
|
import com.gunshi.project.ss.common.mapper.JcskGnssBMapper;
|
|
import com.gunshi.project.ss.common.model.JcskGnssB;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import java.time.Duration;
|
|
import java.time.LocalDateTime;
|
|
import java.util.List;
|
|
|
|
|
|
@Service
|
|
@Slf4j
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public class JcskGnssBService extends ServiceImpl<JcskGnssBMapper, JcskGnssB> {
|
|
|
|
|
|
private final JcskGnssRMapper jcskGnssRMapper;
|
|
|
|
public JcskGnssBService(JcskGnssRMapper jcskGnssRMapper) {
|
|
this.jcskGnssRMapper = jcskGnssRMapper;
|
|
}
|
|
|
|
public Page<JcskGnssB> pageQuery(JcskGnssBPageSo page) {
|
|
|
|
LambdaQueryWrapper<JcskGnssB> queryWrapper = new LambdaQueryWrapper<>();
|
|
if(ObjectUtils.isNotNull(page.getStationCode())){
|
|
queryWrapper.like(JcskGnssB::getCd, page.getStationCode());
|
|
}
|
|
|
|
Page<JcskGnssB> res = this.page(page.getPageSo().toPage(), queryWrapper);
|
|
return res;
|
|
}
|
|
|
|
public HomeJcskGnssBVo getDetailsById(String id) {
|
|
return baseMapper.getDetailsById(id);
|
|
}
|
|
|
|
public List<HomeJcskGnssBVo> getDetailsAndMonitoringDataList() {
|
|
return baseMapper.getDetailsAndMonitoringDataList();
|
|
}
|
|
|
|
public List<String> listDms() {
|
|
return this.baseMapper.listDms();
|
|
}
|
|
|
|
public List<JcskGnssB> artificialTree() {
|
|
return baseMapper.selectArtificial();
|
|
}
|
|
|
|
public void checkStatus(List<JcskGnssB> list){
|
|
for (JcskGnssB jcskGnssB : list) {
|
|
//N+1 就N+1把 无所谓了
|
|
LambdaQueryWrapper<JcskGnssR> queryWrapper = new LambdaQueryWrapper<>();
|
|
queryWrapper.eq(JcskGnssR::getCd, jcskGnssB.getCd());
|
|
queryWrapper.orderByDesc(JcskGnssR::getTm)
|
|
.last("limit 1");
|
|
JcskGnssR jcskGnssR = jcskGnssRMapper.selectOne(queryWrapper);
|
|
if(jcskGnssR == null){
|
|
jcskGnssB.setStatus(0);
|
|
}else if(jcskGnssR != null){
|
|
LocalDateTime tm = jcskGnssR.getTm();
|
|
LocalDateTime now = LocalDateTime.now();
|
|
Duration between = Duration.between(tm, now);
|
|
if(between.toHours() > 24){
|
|
jcskGnssB.setStatus(0);
|
|
}else{
|
|
jcskGnssB.setStatus(1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public List<StationNormalVo> queryNormalList() {
|
|
return baseMapper.queryNormalList();
|
|
}
|
|
}
|