parent
b0112145c4
commit
de5eb202ae
|
|
@ -106,7 +106,8 @@ public class AttCctvBaseController {
|
||||||
@Operation(summary = "列表")
|
@Operation(summary = "列表")
|
||||||
@PostMapping("/list")
|
@PostMapping("/list")
|
||||||
public R<List<AttCctvBase>> list() {
|
public R<List<AttCctvBase>> list() {
|
||||||
return R.ok(service.lambdaQuery().list());
|
List<AttCctvBase> res = service.queryList();
|
||||||
|
return R.ok(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "分页")
|
@Operation(summary = "分页")
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ public class MentenceFarmerRecordController extends AbstractCommonFileControlle
|
||||||
if(result){
|
if(result){
|
||||||
fileService.saveFile(dto.getFiles(),getGroupId(),dto.getId().toString());
|
fileService.saveFile(dto.getFiles(),getGroupId(),dto.getId().toString());
|
||||||
for (HiddenInfo detail : dto.getDetails()) {
|
for (HiddenInfo detail : dto.getDetails()) {
|
||||||
hiddenInfoService.saveFile(detail.getFiles(),detail.getId().toString());
|
fileService.saveFile(detail.getFiles(), getGroupId(),detail.getId().toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return R.ok(result ? dto : null);
|
return R.ok(result ? dto : null);
|
||||||
|
|
@ -64,7 +64,7 @@ public class MentenceFarmerRecordController extends AbstractCommonFileControlle
|
||||||
if (flag) {
|
if (flag) {
|
||||||
fileService.saveFile(dto.getFiles(), getGroupId(), dto.getId().toString());
|
fileService.saveFile(dto.getFiles(), getGroupId(), dto.getId().toString());
|
||||||
for (HiddenInfo detail : dto.getDetails()) {
|
for (HiddenInfo detail : dto.getDetails()) {
|
||||||
hiddenInfoService.saveFile(detail.getFiles(),detail.getId().toString());
|
fileService.saveFile(detail.getFiles(), getGroupId(),detail.getId().toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return R.ok(flag ? dto : null);
|
return R.ok(flag ? dto : null);
|
||||||
|
|
@ -77,7 +77,7 @@ public class MentenceFarmerRecordController extends AbstractCommonFileControlle
|
||||||
if(res != null){
|
if(res != null){
|
||||||
fileService.deleteFile(getGroupId(),id.toString());
|
fileService.deleteFile(getGroupId(),id.toString());
|
||||||
for (Long cid : res) {
|
for (Long cid : res) {
|
||||||
hiddenInfoService.deleteFile(String.valueOf(cid));
|
fileService.deleteFile(getGroupId(),cid.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return R.ok(true);
|
return R.ok(true);
|
||||||
|
|
@ -96,7 +96,7 @@ public class MentenceFarmerRecordController extends AbstractCommonFileControlle
|
||||||
|
|
||||||
List<HiddenInfo> details = o.getDetails();
|
List<HiddenInfo> details = o.getDetails();
|
||||||
details.forEach(detail -> {
|
details.forEach(detail -> {
|
||||||
detail.setFiles(hiddenInfoService.getFiles(detail.getId().toString()));
|
detail.setFiles(fileService.getFiles(getGroupId(),detail.getId().toString()));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,9 @@ package com.gunshi.project.hsz.mapper;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.gunshi.project.hsz.model.AttCctvBase;
|
import com.gunshi.project.hsz.model.AttCctvBase;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 描述: 视频基本信息表
|
* 描述: 视频基本信息表
|
||||||
|
|
@ -12,4 +15,14 @@ import org.apache.ibatis.annotations.Mapper;
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface AttCctvBaseMapper extends BaseMapper<AttCctvBase> {
|
public interface AttCctvBaseMapper extends BaseMapper<AttCctvBase> {
|
||||||
|
|
||||||
|
|
||||||
|
@Select("""
|
||||||
|
select t1.*,t2.name as menuName
|
||||||
|
from att_cctv_base t1
|
||||||
|
left join cctv_b_menu t2 on t1.menu_id = t2.id
|
||||||
|
order by t2.order_index asc
|
||||||
|
""")
|
||||||
|
List<AttCctvBase> queryList();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -73,7 +73,8 @@ public interface AttResBaseMapper extends BaseMapper<AttResBase> {
|
||||||
|
|
||||||
@Select("""
|
@Select("""
|
||||||
<script>
|
<script>
|
||||||
select t.stcd,t.tm,t.rz from public.st_rsvr_r t
|
select t.stcd,(t.tm - INTERVAL '5 minutes') as tm,
|
||||||
|
t.rz from public.st_rsvr_r t
|
||||||
where t.stcd = #{obj.stcd}
|
where t.stcd = #{obj.stcd}
|
||||||
<if test="obj.stm != null ">
|
<if test="obj.stm != null ">
|
||||||
and t.tm <![CDATA[>=]]> to_timestamp(#{obj.stm},'YYYY-MM-DD HH24:MI:SS')
|
and t.tm <![CDATA[>=]]> to_timestamp(#{obj.stm},'YYYY-MM-DD HH24:MI:SS')
|
||||||
|
|
@ -81,7 +82,7 @@ public interface AttResBaseMapper extends BaseMapper<AttResBase> {
|
||||||
<if test="obj.etm != null ">
|
<if test="obj.etm != null ">
|
||||||
and t.tm <![CDATA[<=]]> to_timestamp(#{obj.etm},'YYYY-MM-DD HH24:MI:SS')
|
and t.tm <![CDATA[<=]]> to_timestamp(#{obj.etm},'YYYY-MM-DD HH24:MI:SS')
|
||||||
</if>
|
</if>
|
||||||
and TRIM(TO_CHAR(t.tm, 'MI:SS')) = '00:00'
|
and TRIM(TO_CHAR(t.tm, 'MI:SS')) = '05:00'
|
||||||
order by t.tm desc
|
order by t.tm desc
|
||||||
</script>
|
</script>
|
||||||
""")
|
""")
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,8 @@ import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 描述: 视频基本信息表
|
* 描述: 视频基本信息表
|
||||||
* author: xusan
|
* author: xusan
|
||||||
|
|
@ -18,6 +20,9 @@ import org.springframework.transaction.annotation.Transactional;
|
||||||
public class AttCctvBaseService extends ServiceImpl<AttCctvBaseMapper, AttCctvBase>
|
public class AttCctvBaseService extends ServiceImpl<AttCctvBaseMapper, AttCctvBase>
|
||||||
{
|
{
|
||||||
|
|
||||||
|
public List<AttCctvBase> queryList() {
|
||||||
|
return this.baseMapper.queryList();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,8 @@ import org.springframework.transaction.annotation.Transactional;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
|
|
@ -169,28 +171,6 @@ public class ForecastResultsService extends ServiceImpl<ForecastResultsMapper, F
|
||||||
List<StPptnR> pptnRFutureList = new ArrayList<>();
|
List<StPptnR> pptnRFutureList = new ArrayList<>();
|
||||||
QueryWrapper<StPptnR> qwExisted = new QueryWrapper<>();
|
QueryWrapper<StPptnR> qwExisted = new QueryWrapper<>();
|
||||||
Boolean isHaveFuturePPtn = true;
|
Boolean isHaveFuturePPtn = true;
|
||||||
// 檀树岗修改:实测降雨查询表数据,预测降雨使用geom参数。最后按时间算数平均
|
|
||||||
// for(StStbprpB b : stbs){
|
|
||||||
// String stcd = b.getStcd();
|
|
||||||
// // 如果结束时间在当前时间之前,降雨序列从历史降雨表获取
|
|
||||||
// if (endTime.compareTo(nowHourTime) <= 0) {
|
|
||||||
// qwExisted = new QueryWrapper<StPptnR>().eq("stcd", stcd).ge("tm", startTime).le("tm", endTime).orderBy(true, true, "tm");
|
|
||||||
// } else {
|
|
||||||
// qwExisted = new QueryWrapper<StPptnR>().eq("stcd", stcd).ge("tm", startTime).le("tm", nowHourTime).orderBy(true, true, "tm");
|
|
||||||
// try {
|
|
||||||
// // 获取预报数据
|
|
||||||
// pptnRFutureList = getForecastDrpData(nowHourTime, stcd);
|
|
||||||
// } catch (IllegalArgumentException e) {
|
|
||||||
// if(stcd.equals(attResBase.getStcd())){
|
|
||||||
// isHaveFuturePPtn = false;
|
|
||||||
// }
|
|
||||||
// log.error("该时间无预报数据");
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// List<StPptnR> pptnRExistedList = stPptnRService.list(qwExisted);
|
|
||||||
// pptnRAllList.addAll(pptnRExistedList);
|
|
||||||
// pptnRAllList.addAll(pptnRFutureList);
|
|
||||||
// }
|
|
||||||
if (endTime.compareTo(nowHourTime) <= 0) {
|
if (endTime.compareTo(nowHourTime) <= 0) {
|
||||||
qwExisted = new QueryWrapper<StPptnR>().in("stcd", stbs.stream().map(StStbprpB::getStcd).toArray(String[]::new)).ge("tm", startTime).le("tm", endTime).orderBy(true, true, "tm");
|
qwExisted = new QueryWrapper<StPptnR>().in("stcd", stbs.stream().map(StStbprpB::getStcd).toArray(String[]::new)).ge("tm", startTime).le("tm", endTime).orderBy(true, true, "tm");
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -272,6 +252,12 @@ public class ForecastResultsService extends ServiceImpl<ForecastResultsMapper, F
|
||||||
List<StZvarlB> zvarlBS = stZvarlBService.list(new QueryWrapper<StZvarlB>().eq("stcd", attResBase.getStcd()).orderBy(true, true, "rz"));
|
List<StZvarlB> zvarlBS = stZvarlBService.list(new QueryWrapper<StZvarlB>().eq("stcd", attResBase.getStcd()).orderBy(true, true, "rz"));
|
||||||
// 水位历史数据
|
// 水位历史数据
|
||||||
List<StRsvrR> rsvrRRealList = stRsvrRService.list(new QueryWrapper<StRsvrR>().eq("stcd", attResBase.getStcd()).ge("tm", startTime).le("tm", endTime));
|
List<StRsvrR> rsvrRRealList = stRsvrRService.list(new QueryWrapper<StRsvrR>().eq("stcd", attResBase.getStcd()).ge("tm", startTime).le("tm", endTime));
|
||||||
|
//TODO 将过五分数据转为整点数据
|
||||||
|
rsvrRRealList.stream().forEach(o->{
|
||||||
|
// 转换为 Instant 操作后再转回 Date
|
||||||
|
Instant instant = o.getTm().toInstant().minus(5, ChronoUnit.MINUTES);
|
||||||
|
o.setTm(Date.from(instant));
|
||||||
|
});
|
||||||
List<StRsvrR> resultList = reorganizeRsvrRData(rsvrRRealList, dt);
|
List<StRsvrR> resultList = reorganizeRsvrRData(rsvrRRealList, dt);
|
||||||
List<Date[]> periods = splitByDay8To8(startTime, endTime);
|
List<Date[]> periods = splitByDay8To8(startTime, endTime);
|
||||||
// v:累计降雨
|
// v:累计降雨
|
||||||
|
|
@ -515,7 +501,7 @@ public class ForecastResultsService extends ServiceImpl<ForecastResultsMapper, F
|
||||||
//TODO 只保留整小时的数据(这里得看监测时间来分析,檀树岗是整点记录,目前我观测到的黑石咀的是每小时过5分钟记录一次 比如08:05:00 ~ 09:05:00
|
//TODO 只保留整小时的数据(这里得看监测时间来分析,檀树岗是整点记录,目前我观测到的黑石咀的是每小时过5分钟记录一次 比如08:05:00 ~ 09:05:00
|
||||||
rsvrRRealList = rsvrRRealList.stream().filter(entity -> {
|
rsvrRRealList = rsvrRRealList.stream().filter(entity -> {
|
||||||
Date date = entity.getTm();
|
Date date = entity.getTm();
|
||||||
return date.getMinutes() ==5 && date.getSeconds() == 0;
|
return date.getMinutes() ==0 && date.getSeconds() == 0;
|
||||||
}).collect(Collectors.toMap(
|
}).collect(Collectors.toMap(
|
||||||
e -> e.getStcd() + "_" + e.getTm(), // 使用属性组合作为键
|
e -> e.getStcd() + "_" + e.getTm(), // 使用属性组合作为键
|
||||||
Function.identity(),
|
Function.identity(),
|
||||||
|
|
@ -674,7 +660,7 @@ public class ForecastResultsService extends ServiceImpl<ForecastResultsMapper, F
|
||||||
// startDate晚于或等于当天8点,但我们需要到第二天的8点作为结束
|
// startDate晚于或等于当天8点,但我们需要到第二天的8点作为结束
|
||||||
cal.add(Calendar.DAY_OF_MONTH, 1); // 跳到下一天
|
cal.add(Calendar.DAY_OF_MONTH, 1); // 跳到下一天
|
||||||
cal.set(Calendar.HOUR_OF_DAY, 8);
|
cal.set(Calendar.HOUR_OF_DAY, 8);
|
||||||
cal.set(Calendar.MINUTE, 5);
|
cal.set(Calendar.MINUTE, 0);
|
||||||
cal.set(Calendar.SECOND, 0);
|
cal.set(Calendar.SECOND, 0);
|
||||||
cal.set(Calendar.MILLISECOND, 0);
|
cal.set(Calendar.MILLISECOND, 0);
|
||||||
Date endOfDay = cal.getTime();
|
Date endOfDay = cal.getTime();
|
||||||
|
|
@ -712,7 +698,7 @@ public class ForecastResultsService extends ServiceImpl<ForecastResultsMapper, F
|
||||||
// 先设置当前时间
|
// 先设置当前时间
|
||||||
calendar.setTime(date);
|
calendar.setTime(date);
|
||||||
calendar.set(Calendar.HOUR_OF_DAY, 8);
|
calendar.set(Calendar.HOUR_OF_DAY, 8);
|
||||||
calendar.set(Calendar.MINUTE, 5);
|
calendar.set(Calendar.MINUTE, 0);
|
||||||
calendar.set(Calendar.SECOND, 0);
|
calendar.set(Calendar.SECOND, 0);
|
||||||
calendar.set(Calendar.MILLISECOND, 0);
|
calendar.set(Calendar.MILLISECOND, 0);
|
||||||
return date.before(calendar.getTime());
|
return date.before(calendar.getTime());
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue