修改了一些BUG

master
yangzhe123 2025-12-15 09:37:40 +08:00
parent 389e6e3e18
commit 8779081d62
25 changed files with 318 additions and 103 deletions

View File

@ -1,8 +1,11 @@
package com.gunshi.project.hsz.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gunshi.db.dto.DateTimeRangeSo;
import com.gunshi.project.hsz.common.model.StRiverR;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
/**
* :
@ -12,4 +15,25 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface StRiverRMapper extends BaseMapper<StRiverR> {
@Select("""
<script>
select * from st_river_r t1
where 1=1
<if test="stcd != null and stcd != ''">
and t1.stcd = #{stcd}
</if>
<if test="obj != null">
<if test="obj.start != null">
and t1.tm &gt;= #{obj.start}
</if>
<if test="obj.end != null">
and t1.tm &lt;= #{obj.end}
</if>
</if>
order by t1.tm desc
limit 1
</script>
""")
StRiverR queryByOneByTimeRange(@Param("stcd") String stcd, @Param("obj") DateTimeRangeSo dateTimeRangeSo);
}

View File

@ -21,9 +21,9 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Tag(name = "白蚁监测数据")
@RestController
@RequestMapping(value="/termite/survey")
//@Tag(name = "白蚁监测数据")
//@RestController
//@RequestMapping(value="/termite/survey")
public class JcskByRController {

View File

@ -20,6 +20,7 @@ import com.gunshi.project.hsz.service.*;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.collections4.CollectionUtils;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
@ -158,4 +159,10 @@ public class ReservoirWaterController {
}
return R.ok(detail);
}
@Post(path = "/listV3",summary = "获取溢洪道水位站")
public R<List<AttResBaseVo>> listV3(){
return R.ok(reservoirWaterService.listV3());
}
}

View File

@ -52,10 +52,7 @@ public class SzRegulatoryFrameworkController extends AbstractCommonFileControlle
dto.setCreateTime(new Date());
dto.setId(IdWorker.getId());
if (CollectionUtils.isNotEmpty(dto.getFiles())){
dto.setUploadDate(new Date());
}
dto.setUploadDate(new Date());
boolean result = service.save(dto);
@ -77,10 +74,6 @@ public class SzRegulatoryFrameworkController extends AbstractCommonFileControlle
.count() > 0) {
throw new IllegalArgumentException("当前名称已存在");
}
if (CollectionUtils.isNotEmpty(dto.getFiles())){
dto.setUploadDate(new Date());
}
dto.setCreateBy(null);
dto.setCreateName(null);
dto.setUpdateTime(new Date());

View File

@ -11,6 +11,7 @@ import com.gunshi.project.hsz.common.validate.markers.Insert;
import com.gunshi.project.hsz.common.validate.markers.Update;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
@ -27,9 +28,9 @@ import java.util.stream.Collectors;
* author: xusan
* date: 2024-08-28 10:29:58
*/
//@Tag(name = "白蚁普查")
//@RestController
//@RequestMapping(value="/termite/survey")
@Tag(name = "白蚁普查")
@RestController
@RequestMapping(value="/termite/survey")
public class TermiteSurveyController extends AbstractCommonFileController{
@Autowired

View File

@ -60,11 +60,6 @@ public class WaterDispatchController extends AbstractCommonFileController {
@Operation(summary = "反馈")
@PostMapping("/feedback")
public R<WaterDispatch> feedback(@RequestBody WaterDispatch dto, HttpServletRequest request) {
SessionUser sessionUser = checkLogin(request);
if(sessionUser != null){
dto.setResPerson(sessionUser.getUserId().toString());
dto.setResPersonName(sessionUser.getUserName());
}
boolean flag = waterDispatchService.feedBack(dto);
if(flag){
fileService.saveFile(dto.getResFiles(),getResGroupId(),dto.getId().toString());

View File

@ -20,6 +20,9 @@ public class WaterAlarmPageSo {
@Schema(description = "告警类型")
private Integer type;
@Schema(description = "测点名称")
private String name;
@Schema(description="告警时间段")
private DateTimeRangeSo timeRangeSo;
}

View File

@ -1,5 +1,6 @@
package com.gunshi.project.hsz.entity.vo;
import com.gunshi.project.hsz.common.model.JcskByR;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@ -39,4 +40,5 @@ public class HomeWarnVo {
@Schema(description="AI告警个数")
private Long aiWarnCount;
}

View File

@ -125,15 +125,16 @@ public interface AttResBaseMapper extends BaseMapper<AttResBase> {
<script>
select
<if test="type == 1 ">
t.z from public.st_river_r t
min(t.z) from public.st_river_r t
</if>
<if test="type == 2">
t.rz from public.st_rsvr_r t
min(t.rz) from public.st_rsvr_r t
</if>
where t.stcd = #{stcd} and t.tm = #{dateTime}
where t.stcd = #{stcd}
and t.tm <![CDATA[>=]]> #{dateTime} and t.tm <![CDATA[<=]]> #{nowTime}
</script>
""")
BigDecimal oldRz(@Param("stcd") String stcd,@Param("type") Integer type, @Param("dateTime") Date dateTime);
BigDecimal oldRz(@Param("stcd") String stcd,@Param("type") Integer type, @Param("dateTime") Date dateTime,@Param("nowTime") Date nowTime);
@Select("""
<script>
@ -306,4 +307,11 @@ public interface AttResBaseMapper extends BaseMapper<AttResBase> {
""")
List<String> getRiverStcd();
@Select("""
select t1.stcd,t1.stnm,t1.lgtd lgtd,t1lttd lttd,t1source,t1.sttp,t1.stlc,t1.adcd,t1.esstym, from st_stbprp_b t1
join st_stbprp_b_elem t2 on t1.stcd = t2.stcd
where t1.stcd = #{stcd}
""")
List<AttResBaseVo> queryYhd(@Param("stcd") String stcd);
}

View File

@ -0,0 +1,22 @@
package com.gunshi.project.hsz.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gunshi.project.hsz.model.StWaterFlow;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.io.Serializable;
import java.util.List;
@Mapper
public interface StWaterFlowMapper extends BaseMapper<StWaterFlow> {
@Select("""
select * from st_water_flow t1
where t1.stcd = #{stcd}
order by t1.z asc
""")
List<StWaterFlow> selectListByStcd(@Param("stcd") String stcd);
}

View File

@ -59,7 +59,7 @@ public class MentencePlan {
@Schema(description = "审批人id")
private String approvePersonId;
@TableField("approve_person_name")
@TableField(exist = false)
@Schema(description = "审批人名称")
private String approvePersonName;

View File

@ -0,0 +1,22 @@
package com.gunshi.project.hsz.model;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class StWaterFlow {
@TableField("stcd")
private String stcd;
@TableField("z")
private BigDecimal z;
@TableField("flow")
private BigDecimal flow;
}

View File

@ -83,7 +83,7 @@ public class WaterDispatch {
/**
*
*/
@TableField("exe_person_name")
@TableField(exist = false)
@Schema(description = "执行人员名称")
private String exePersonName;
@ -109,9 +109,9 @@ public class WaterDispatch {
@Schema(description = "执行结果反馈")
private String resFb;
@TableField("res_person")
@TableField("res_person_id")
@Schema(description = "反馈人员id")
private String resPerson;
private String resPersonId;
@TableField("res_person_name")
@Schema(description = "反馈人员名称")

View File

@ -219,12 +219,24 @@ public class RainBasinDivisionService {
StPptnDetailsVo stPptnDetailsVo = new StPptnDetailsVo();
if (stPptnRReal != null){
BeanUtil.copyProperties(stPptnRReal, stPptnDetailsVo);
Date tm = stPptnRReal.getTm();
LocalDateTime nowTime = LocalDateTime.now();
LocalDateTime latestTime = LocalDateTime.ofInstant(tm.toInstant(), ZoneId.systemDefault());
boolean isToday = latestTime.toLocalDate().equals(nowTime.toLocalDate());
if(!isToday){
stPptnDetailsVo.setH1(null);
stPptnDetailsVo.setH3(null);
stPptnDetailsVo.setH6(null);
stPptnDetailsVo.setH12(null);
stPptnDetailsVo.setH24(null);
stPptnDetailsVo.setH48(null);
stPptnDetailsVo.setDrp(null);
}
}else {
stPptnDetailsVo.setStcd(stcd);
}
BigDecimal value0 = new BigDecimal(0);
Date date = new Date();
// //48小时降雨量
@ -246,7 +258,7 @@ public class RainBasinDivisionService {
//昨日雨量
BigDecimal yesterdayDrp = queryYesterdayDrpByStcdAndTime(stcd, date);
if (yesterdayDrp == null) {
stPptnDetailsVo.setYesterdayDrp(value0);
stPptnDetailsVo.setYesterdayDrp(null);
} else {
stPptnDetailsVo.setYesterdayDrp(yesterdayDrp);
}
@ -254,7 +266,7 @@ public class RainBasinDivisionService {
//本月降雨量
BigDecimal monthDay = queryMonthDrpByStcdAndTime(stcd, date);
if (monthDay == null) {
stPptnDetailsVo.setMonthDrp(value0);
stPptnDetailsVo.setMonthDrp(null);
} else {
stPptnDetailsVo.setMonthDrp(monthDay);
}
@ -262,7 +274,7 @@ public class RainBasinDivisionService {
//本年降雨量
BigDecimal yearDrp = queryYearDrpByStcdAndTime(stcd, date);
if (yearDrp == null) {
stPptnDetailsVo.setYearDrp(value0);
stPptnDetailsVo.setYearDrp(null);
} else {
stPptnDetailsVo.setYearDrp(yearDrp);
}

View File

@ -300,15 +300,25 @@ public class ReservoirWaterService {
Date tm = monitorVo.getTm();
BigDecimal rz = monitorVo.getRz();
//最新水位时间往前推24小时水位
LocalDateTime now = LocalDateTime.ofInstant(tm.toInstant(), ZoneId.systemDefault());
LocalDateTime dateTime = now.minusDays(1);
BigDecimal oldRz = attResBaseMapper.oldRz(stcd,2,Date.from(dateTime.atZone(ZoneId.systemDefault()).toInstant()));
// 判断最新水位时间是否是今天
LocalDateTime nowTime = LocalDateTime.now();
LocalDateTime latestTime = LocalDateTime.ofInstant(tm.toInstant(), ZoneId.systemDefault());
if(oldRz != null){
vo.setRzDiff(rz.subtract(oldRz));
boolean isToday = latestTime.toLocalDate().equals(nowTime.toLocalDate());
if(isToday){
//最新水位时间往前推24小时水位
LocalDateTime now = LocalDateTime.ofInstant(tm.toInstant(), ZoneId.systemDefault());
LocalDateTime dateTime = now.minusDays(1);
BigDecimal oldRz = attResBaseMapper.oldRz(stcd,2,Date.from(dateTime.atZone(ZoneId.systemDefault()).toInstant()),Date.from(now.atZone(ZoneId.systemDefault()).toInstant()));
if(oldRz != null){
vo.setRzDiff(rz.subtract(oldRz));
}
}else{
vo.setRzDiff(null);
}
//本年最高水位
BigDecimal maxYearRz = queryYearRzByStcdAndTime(stcd);
vo.setMaxRz(maxYearRz);
@ -365,4 +375,10 @@ public class ReservoirWaterService {
}
return rzData;
}
public List<AttResBaseVo> listV3() {
String stcd = "9999";
List<AttResBaseVo> voList = attResBaseMapper.queryYhd(stcd);
return voList;
}
}

View File

@ -242,15 +242,26 @@ public class RiverWaterService {
Date tm = monitorVo.getTm();
BigDecimal rz = monitorVo.getZ();
//最新水位时间往前推24小时水位
LocalDateTime now = LocalDateTime.ofInstant(tm.toInstant(), ZoneId.systemDefault());
LocalDateTime dateTime = now.minusDays(1);
BigDecimal oldRz = attRvBaseMapper.oldRz(stcd,1,Date.from(dateTime.atZone(ZoneId.systemDefault()).toInstant()));
// 判断最新水位时间是否是今天
LocalDateTime nowTime = LocalDateTime.now();
LocalDateTime latestTime = LocalDateTime.ofInstant(tm.toInstant(), ZoneId.systemDefault());
if(oldRz != null){
//设置水位涨跌情况
vo.setRzDiff(rz.subtract(oldRz));
// 检查是否同一天(年、月、日相同)
boolean isToday = latestTime.toLocalDate().equals(nowTime.toLocalDate());
if(isToday){
//最新水位时间往前推24小时水位
LocalDateTime now = LocalDateTime.ofInstant(tm.toInstant(), ZoneId.systemDefault());
LocalDateTime dateTime = now.minusDays(1);
BigDecimal oldRz = attRvBaseMapper.oldRz(stcd,1,Date.from(dateTime.atZone(ZoneId.systemDefault()).toInstant()),Date.from(now.atZone(ZoneId.systemDefault()).toInstant()));
if(oldRz != null){
vo.setRzDiff(rz.subtract(oldRz));
}
}else{
vo.setRzDiff(null);
}
//本年最高水位
BigDecimal maxYearRz = queryYearRzByStcdAndTime(stcd);
vo.setMaxRz(maxYearRz);

View File

@ -6,6 +6,8 @@ import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.gunshi.db.dto.DateTimeRangeSo;
import com.gunshi.project.hsz.common.model.JcskByR;
import com.gunshi.project.hsz.common.model.StRiverR;
import com.gunshi.project.hsz.common.model.StRiverRReal;
import com.gunshi.project.hsz.entity.vo.*;
import com.gunshi.project.hsz.mapper.AttResBaseMapper;
@ -22,6 +24,7 @@ import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -62,6 +65,16 @@ public class StQxWarnRService extends ServiceImpl<StQxWarnRMapper, StQxWarnR> {
@Resource
private StRiverRRealService stRiverRRealService;
@Resource
private StRiverRService stRiverRService;
@Autowired
private ISCAIEventService iscaiEventService;
@Resource
private JcskByRService jcskByRService;
public HomeWarnVo homeWarn(DateTimeRangeSo dateTimeRangeSo) {
HomeWarnVo vo = new HomeWarnVo();
@ -98,25 +111,26 @@ public class StQxWarnRService extends ServiceImpl<StQxWarnRMapper, StQxWarnR> {
vo.setPressWarn(warnVos.stream().filter(o -> o.getType() == 1).collect(Collectors.toList()));
vo.setFlowWarn(warnVos.stream().filter(o -> o.getType() == 2).collect(Collectors.toList()));
vo.setShiftWarn(warnVos.stream().filter(o -> o.getType() == 3).collect(Collectors.toList()));
Long aiWarnCount = imgWarnRService.lambdaQuery()
.ge(StImgWarnR::getTm, dateTimeRangeSo.getStart()).lt(StImgWarnR::getTm, dateTimeRangeSo.getEnd()).count();
Long aiWarnCount = iscaiEventService.lambdaQuery()
.ge(ISCAIEvent::getStartTime, dateTimeRangeSo.getStart())
.le(ISCAIEvent::getStartTime,dateTimeRangeSo.getEnd())
.count();
vo.setAiWarnCount(aiWarnCount);
//TODO 超河道上游
String upperStcd = "123";//固定的站点编码
setUpAndDownOverRvUp(upperStcd,vo);
setUpAndDownOverRvUp(upperStcd,vo,dateTimeRangeSo);
//TODO 超河道下游
String lowerStcd = "61610700";//固定的站点编码
setUpAndDownOverRvDown(lowerStcd,vo);
setUpAndDownOverRvDown(lowerStcd,vo,dateTimeRangeSo);
return vo;
}
private void setUpAndDownOverRvUp(String stcd,HomeWarnVo vo){
private void setUpAndDownOverRvUp(String stcd, HomeWarnVo vo, DateTimeRangeSo dateTimeRangeSo){
//StRsvrRReal stRsvrRReal = stRsvrRRealService.getBaseMapper().queryRzByStcd(stcd);
StRiverRReal stRiverRReal = stRiverRRealService.getBaseMapper().queryQByStcd(stcd);
if(stRiverRReal != null){
//StRiverRReal stRiverRReal = stRiverRRealService.getBaseMapper().queryQByStcd(stcd);
StRiverR stRiverR = stRiverRService.getBaseMapper().queryByOneByTimeRange(stcd,dateTimeRangeSo);
if(stRiverR != null){
AlarmSet alarmSet = alarmSetService.getBaseMapper().queryByStcd(stcd);
//警告水位
BigDecimal warnWaterLevel = alarmSet.getWarnWaterLevel();
@ -125,7 +139,7 @@ public class StQxWarnRService extends ServiceImpl<StQxWarnRMapper, StQxWarnR> {
if(alarmSet == null){
vo.setOverRvUp("告警设置未配置,请检查");
}else{
BigDecimal rz = stRiverRReal.getZ();
BigDecimal rz = stRiverR.getZ();
if(rz == null){
vo.setOverRvUp("无水位数据");
return;
@ -139,13 +153,13 @@ public class StQxWarnRService extends ServiceImpl<StQxWarnRMapper, StQxWarnR> {
}
}
}else{
vo.setOverRvUp("暂无水库水位数据");
vo.setOverRvUp("-");
}
}
private void setUpAndDownOverRvDown(String stcd,HomeWarnVo vo){
StRiverRReal stRiverRReal = stRiverRRealService.getBaseMapper().queryQByStcd(stcd);
if(stRiverRReal != null){
private void setUpAndDownOverRvDown(String stcd, HomeWarnVo vo, DateTimeRangeSo dateTimeRangeSo){
StRiverR stRiverR = stRiverRService.getBaseMapper().queryByOneByTimeRange(stcd,dateTimeRangeSo);
if(stRiverR != null){
AlarmSet alarmSet = alarmSetService.getBaseMapper().queryByStcd(stcd);
//警告水位
BigDecimal warnWaterLevel = alarmSet.getWarnWaterLevel();
@ -155,7 +169,7 @@ public class StQxWarnRService extends ServiceImpl<StQxWarnRMapper, StQxWarnR> {
vo.setOverRvDown("告警设置未配置,请检查");
}else{
BigDecimal rz = stRiverRReal.getZ();
BigDecimal rz = stRiverR.getZ();
if(rz == null){
vo.setOverRvUp("无水位数据");
return;
@ -169,7 +183,7 @@ public class StQxWarnRService extends ServiceImpl<StQxWarnRMapper, StQxWarnR> {
}
}
}else{
vo.setOverRvDown("暂无水库水位数据");
vo.setOverRvDown("-");
}
}

View File

@ -12,8 +12,10 @@ import com.gunshi.project.hsz.entity.so.HomeStStbprpBSo;
import com.gunshi.project.hsz.entity.vo.*;
import com.gunshi.project.hsz.mapper.OsmoticPressRMapper;
import com.gunshi.project.hsz.mapper.OsmoticShiftRMapper;
import com.gunshi.project.hsz.mapper.StWaterFlowMapper;
import com.gunshi.project.hsz.mapper.StbprpBVoMapper;
import com.gunshi.project.hsz.common.model.StRsvrR;
import com.gunshi.project.hsz.model.StWaterFlow;
import com.gunshi.project.hsz.model.StZqrlB;
import com.gunshi.project.hsz.model.StZvarlB;
import com.gunshi.project.hsz.util.DateUtil;
@ -61,6 +63,9 @@ public class StStbprpBService extends ServiceImpl<StStbprpBMapper, StStbprpB> {
@Autowired
private StbprpBVoMapper stbprpBVoMapper;
@Autowired
private StWaterFlowMapper stWaterFlowMapper;
public List<HomeStStbprpBVo> rainfallStationDetailsList(HomeStStbprpBSo dto) {
return stbprpBVoMapper.rainfallStationDetailsList(dto);
}
@ -125,7 +130,7 @@ public class StStbprpBService extends ServiceImpl<StStbprpBMapper, StStbprpB> {
vo.setTm(o.getTm());
return vo;
}).collect(Collectors.toList()));
//视频点
for (StStatusVo vo : list) {
String tm = vo.getTm();
if (StringUtils.isEmpty(tm) || DateUtil.hoursBetweenDate(DateUtil.convertStringToDate(tm), new Date()) > 24) {
@ -242,6 +247,9 @@ public class StStbprpBService extends ServiceImpl<StStbprpBMapper, StStbprpB> {
List<StZqrlB> zqrlList = stZqrlBService.list();
zqrlList.sort(Comparator.comparing(StZqrlB::getZ));
//获取水位-溢洪量关系
List<StWaterFlow> stWaterFlows = stWaterFlowMapper.selectListByStcd(stcd.toString());
List<RsvrComplexVo> complexList = new ArrayList<>();
BigDecimal maxYearSv = BigDecimal.ZERO;
Date maxQStartTime = null;

View File

@ -0,0 +1,17 @@
package com.gunshi.project.hsz.service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gunshi.project.hsz.mapper.StEvpoMapper;
import com.gunshi.project.hsz.mapper.StWaterFlowMapper;
import com.gunshi.project.hsz.model.StEvpo;
import com.gunshi.project.hsz.model.StWaterFlow;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@Slf4j
@Transactional(rollbackFor = Exception.class)
public class StWaterFlowSerivce extends ServiceImpl<StWaterFlowMapper, StWaterFlow> {
}

View File

@ -228,6 +228,9 @@ public class StZqrlBService extends ServiceImpl<StZqrlBMapper, StZqrlB> {
*/
public BigDecimal getFlowQSum(List<RsvrComplexVo> complexList) {
BigDecimal sum = BigDecimal.ZERO;
if(complexList.isEmpty()){
return null;
}
for (int i = 0; i < complexList.size(); i++) {
RsvrComplexVo current = complexList.get(i);
if (i == 0) {

View File

@ -3,6 +3,7 @@ package com.gunshi.project.hsz.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gunshi.project.hsz.common.model.StStbprpB;
@ -39,6 +40,9 @@ public class WaterAlarmService extends ServiceImpl<WaterAlarmMapper, WaterAlarm>
if(pageSo.getType() != null){
queryWrapper.eq(WaterAlarm::getAlarmType,pageSo.getType());
}
if(!StringUtils.isBlank(pageSo.getName())){
queryWrapper.like(WaterAlarm::getStnm,pageSo.getName());
}
if(pageSo.getTimeRangeSo() != null){
queryWrapper.between(WaterAlarm::getAlarmTime,pageSo.getTimeRangeSo().getStart(),pageSo.getTimeRangeSo().getEnd());

View File

@ -35,12 +35,6 @@ public class WaterDispatchService extends ServiceImpl<WaterDispatchMapper, Water
if(Objects.nonNull(one)){
throw new IllegalArgumentException("该调度已存在");
}
if(dto.getExePersonId() != null){
SysUser sysUser = sysUserMapper.selectUserById(Long.valueOf(dto.getExePersonId()));
if(sysUser != null){
dto.setExePersonName(sysUser.getNickName());
}
}
if(dto.getIsDistribute() != null && dto.getIsDistribute() == 0){//如果选择下发
dto.setExeStatus(2);//状态改为下发中
}else{
@ -71,12 +65,6 @@ public class WaterDispatchService extends ServiceImpl<WaterDispatchMapper, Water
if(byId == null){
throw new IllegalArgumentException("抱歉,该调度不存在");
}
if(dto.getExePersonId() != null){
SysUser sysUser = sysUserMapper.selectUserById(Long.valueOf(dto.getExePersonId()));
if(sysUser != null){
dto.setExePersonName(sysUser.getNickName());
}
}
if(dto.getIsDistribute() != null && dto.getIsDistribute() == 0){//如果选择下发
dto.setExeStatus(2);//状态改为下发中
}else{
@ -96,6 +84,20 @@ public class WaterDispatchService extends ServiceImpl<WaterDispatchMapper, Water
queryWrapper.eq(WaterDispatch::getExeStatus, pageSo.getStatus());
}
Page<WaterDispatch> waterDispatchPage = baseMapper.selectPage(pageSo.getPageSo().toPage(), queryWrapper);
for (WaterDispatch record : waterDispatchPage.getRecords()) {
if(record.getExePersonId() != null){
SysUser sysUser = sysUserMapper.selectUserById(Long.valueOf(record.getExePersonId()));
if(sysUser != null){
record.setExePersonName(sysUser.getNickName());
}
}
if(record.getResPersonId() != null){
SysUser sysUser = sysUserMapper.selectUserById(Long.valueOf(record.getResPersonId()));
if(sysUser != null){
record.setResPersonName(sysUser.getNickName());
}
}
}
return waterDispatchPage;
}

View File

@ -30,6 +30,7 @@ import java.math.RoundingMode;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
@ -125,8 +126,9 @@ public class SysUserLoginLogController {
LambdaQueryWrapper<SysVisitMenuLog> wrapperMenuLog = Wrappers.lambdaQuery(SysVisitMenuLog.class)
.eq(SysVisitMenuLog::getCreateTime, new Date());
Date start = DateUtil.convertStringToDate(LocalDate.now().toString() + " 00:00:00");
LambdaQueryWrapper<SysVisitMenuLog> wrapperMenuLog = new LambdaQueryWrapper<>();
wrapperMenuLog.between(SysVisitMenuLog::getCreateTime,start,new Date());
vo.setWeb2Count(0L);
vo.setApp2Count(0L);
@ -152,38 +154,69 @@ public class SysUserLoginLogController {
@Post(path = "/visitCount", summary = "访问用户前十")
public R<VisitCountVo> visitCount(@RequestBody @Validated UserLoginLogSo so) {
List<SysUserLoginLog> logs = thisMapper.getUserLoginLog(so.getStm(), so.getEtm());
//C N M 的xjm你妈的写的什么Ghots代码嗯哼 你TM自己都不测一下
// List<SysUserLoginLog> logs = thisMapper.getUserLoginLog(so.getStm(), so.getEtm());
List<SysVisitMenuLog> logs = thisMenuMapper.getUserVisitLog(so.getStm(), so.getEtm());
VisitCountVo vo = new VisitCountVo();
if (CollectionUtils.isEmpty(logs)) {
return R.ok(vo);
}
vo.setWebList(logs.stream()
.filter(o -> "0".equals(o.getLoginType()))
.collect(Collectors.groupingBy(SysUserLoginLog::getUserName, Collectors.counting()))
.entrySet().stream()
.map(o -> {
VisitCountVo.VisitCountDataVo dataVo = new VisitCountVo.VisitCountDataVo();
dataVo.setCount(o.getValue());
dataVo.setName(o.getKey());
return dataVo;
}).collect(Collectors.toList())
vo.setWebList(
logs.stream()
.filter(o -> "0".equals(o.getLoginType()))
.collect(Collectors.groupingBy(SysVisitMenuLog::getName, Collectors.counting()))
.entrySet().stream()
.sorted(Map.Entry.<String, Long>comparingByValue().reversed()) // 按数量降序排序
.limit(10) // 取前10名
.map(o -> {
VisitCountVo.VisitCountDataVo dataVo = new VisitCountVo.VisitCountDataVo();
dataVo.setCount(o.getValue());
dataVo.setName(o.getKey());
return dataVo;
})
.collect(Collectors.toList())
);
vo.setAppList(logs.stream()
.filter(o -> "1".equals(o.getLoginType()))
.collect(Collectors.groupingBy(SysUserLoginLog::getUserName, Collectors.counting()))
.entrySet().stream()
.map(o -> {
VisitCountVo.VisitCountDataVo dataVo = new VisitCountVo.VisitCountDataVo();
dataVo.setCount(o.getValue());
dataVo.setName(o.getKey());
return dataVo;
})
.limit(10)
.collect(Collectors.toList())
vo.setAppList(
logs.stream()
.filter(o -> "1".equals(o.getLoginType()))
.collect(Collectors.groupingBy(SysVisitMenuLog::getName, Collectors.counting()))
.entrySet().stream()
.sorted(Map.Entry.<String, Long>comparingByValue().reversed()) // 按数量降序排序
.limit(10) // 取前10名
.map(o -> {
VisitCountVo.VisitCountDataVo dataVo = new VisitCountVo.VisitCountDataVo();
dataVo.setCount(o.getValue());
dataVo.setName(o.getKey());
return dataVo;
})
.collect(Collectors.toList())
);
// vo.setWebList(logs.stream()
// .filter(o -> "0".equals(o.getLoginType()))
// .collect(Collectors.groupingBy(SysUserLoginLog::getUserName, Collectors.counting()))
// .entrySet().stream()
// .map(o -> {
// VisitCountVo.VisitCountDataVo dataVo = new VisitCountVo.VisitCountDataVo();
// dataVo.setCount(o.getValue());
// dataVo.setName(o.getKey());
// return dataVo;
// }).collect(Collectors.toList())
// );
// vo.setAppList(logs.stream()
// .filter(o -> "1".equals(o.getLoginType()))
// .collect(Collectors.groupingBy(SysUserLoginLog::getUserName, Collectors.counting()))
// .entrySet().stream()
// .map(o -> {
// VisitCountVo.VisitCountDataVo dataVo = new VisitCountVo.VisitCountDataVo();
// dataVo.setCount(o.getValue());
// dataVo.setName(o.getKey());
// return dataVo;
// })
// .limit(10)
// .collect(Collectors.toList())
//
// );
return R.ok(vo);
}

View File

@ -4,9 +4,14 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gunshi.project.hsz.system.model.SysVisitMenuLog;
import com.gunshi.project.hsz.system.so.VisitMenuLogPageSo;
import jakarta.validation.constraints.NotNull;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.Date;
import java.util.List;
@Mapper
public interface SysVisitMenuLogMapper extends BaseMapper<SysVisitMenuLog> {
@ -20,4 +25,13 @@ public interface SysVisitMenuLogMapper extends BaseMapper<SysVisitMenuLog> {
""")
Page<SysVisitMenuLog> pageQuery(Page<Object> page, VisitMenuLogPageSo dto);
}
@Select("""
<script>
SELECT su.*,ub.nick_name as name
FROM sys_visit_menu_log su LEFT JOIN sys_user ub on su.create_id = ub.user_id
WHERE su.create_time between #{stm} and #{etm}
</script>
""")
List<SysVisitMenuLog> getUserVisitLog(@Param("stm") Date stm, @Param("etm") Date etm);
}

View File

@ -57,4 +57,8 @@ public class SysVisitMenuLog implements Serializable {
@Schema(description="统计数量")
private String count;
@TableField(exist = false)
@Schema(description = "名称")
private String name;
}