diff --git a/event_smart/src/main/java/com/njcn/gather/event/devcie/mapper/PqDeviceMapper.java b/event_smart/src/main/java/com/njcn/gather/event/devcie/mapper/PqDeviceMapper.java index c6d7bc2a..76982993 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/devcie/mapper/PqDeviceMapper.java +++ b/event_smart/src/main/java/com/njcn/gather/event/devcie/mapper/PqDeviceMapper.java @@ -1,6 +1,7 @@ package com.njcn.gather.event.devcie.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.gather.event.devcie.pojo.dto.DeviceDTO; import com.njcn.gather.event.devcie.pojo.po.PqDevice; import org.apache.ibatis.annotations.Param; @@ -17,4 +18,6 @@ import java.util.List; */ public interface PqDeviceMapper extends BaseMapper { List queryListByIds(@Param("ids") List ids); + + Page selectDeviceDTOPage(Page pqsEventdetailPage, @Param("searchValue") String searchValue,@Param("devIndexs") List devIndexs, @Param("state") Integer state); } \ No newline at end of file diff --git a/event_smart/src/main/java/com/njcn/gather/event/devcie/mapper/mapping/PqDeviceMapper.xml b/event_smart/src/main/java/com/njcn/gather/event/devcie/mapper/mapping/PqDeviceMapper.xml index 969596e3..fe14f939 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/devcie/mapper/mapping/PqDeviceMapper.xml +++ b/event_smart/src/main/java/com/njcn/gather/event/devcie/mapper/mapping/PqDeviceMapper.xml @@ -51,4 +51,39 @@ #{item} + + \ No newline at end of file diff --git a/event_smart/src/main/java/com/njcn/gather/event/devcie/pojo/dto/DeviceDTO.java b/event_smart/src/main/java/com/njcn/gather/event/devcie/pojo/dto/DeviceDTO.java index 1f2f0c83..a0107b4a 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/devcie/pojo/dto/DeviceDTO.java +++ b/event_smart/src/main/java/com/njcn/gather/event/devcie/pojo/dto/DeviceDTO.java @@ -27,4 +27,5 @@ public class DeviceDTO { private Integer runFlag=0; //装置通讯状态(0:中断;1:正常) private Integer status; + private double onLineRate=0.00; } diff --git a/event_smart/src/main/java/com/njcn/gather/event/devcie/pojo/dto/PqsDeptDTO.java b/event_smart/src/main/java/com/njcn/gather/event/devcie/pojo/dto/PqsDeptDTO.java new file mode 100644 index 00000000..7d4a0e6b --- /dev/null +++ b/event_smart/src/main/java/com/njcn/gather/event/devcie/pojo/dto/PqsDeptDTO.java @@ -0,0 +1,73 @@ +package com.njcn.gather.event.devcie.pojo.dto; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * Description: + * Date: 2025/07/29 下午 3:15【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +public class PqsDeptDTO { + /** + * 部门表Guid + */ + private String deptsIndex; + + /** + * 部门名称 + */ + + private String deptsname; + + /** + * 排序 + */ + + private Integer deptsDesc; + + /** + * (关联表PQS_User)用户表Guid + */ + + private String userIndex; + + /** + * 更新时间 + */ + + private LocalDateTime updatetime; + + /** + * 部门描述 + */ + + private String deptsDescription; + + /** + * 角色状态0:删除;1:正常; + */ + + private Integer state; + + /** + * 行政区域 + */ + + private String area; + + private String areaName; + + + private Integer customDept; + + + private String parentnodeid; +} diff --git a/event_smart/src/main/java/com/njcn/gather/event/devcie/service/PqDeviceService.java b/event_smart/src/main/java/com/njcn/gather/event/devcie/service/PqDeviceService.java index 3af751cc..c2000854 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/devcie/service/PqDeviceService.java +++ b/event_smart/src/main/java/com/njcn/gather/event/devcie/service/PqDeviceService.java @@ -1,7 +1,7 @@ package com.njcn.gather.event.devcie.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.gather.event.devcie.pojo.dto.DeviceDTO; -import com.njcn.gather.event.devcie.pojo.dto.LedgerBaseInfoDTO; import com.njcn.gather.event.devcie.pojo.po.PqDevice; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +18,6 @@ import java.util.List; public interface PqDeviceService extends IService{ List queryListByIds(List lineIds); + + Page selectDeviceDTOPage(Page pqsEventdetailPage, String searchValue, List devIndexs, Integer state); } diff --git a/event_smart/src/main/java/com/njcn/gather/event/devcie/service/impl/PqDeviceServiceImpl.java b/event_smart/src/main/java/com/njcn/gather/event/devcie/service/impl/PqDeviceServiceImpl.java index c3e9ceb7..8a74efc6 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/devcie/service/impl/PqDeviceServiceImpl.java +++ b/event_smart/src/main/java/com/njcn/gather/event/devcie/service/impl/PqDeviceServiceImpl.java @@ -1,8 +1,9 @@ package com.njcn.gather.event.devcie.service.impl; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.gather.event.devcie.pojo.dto.DeviceDTO; import org.springframework.stereotype.Service; -import org.springframework.beans.factory.annotation.Autowired; + import java.util.List; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.gather.event.devcie.pojo.po.PqDevice; @@ -23,4 +24,9 @@ public class PqDeviceServiceImpl extends ServiceImpl i public List queryListByIds(List lineIds) { return this.baseMapper.queryListByIds(lineIds); } + + @Override + public Page selectDeviceDTOPage(Page pqsEventdetailPage, String searchValue, List devIndexs, Integer state) { + return this.baseMapper.selectDeviceDTOPage(pqsEventdetailPage,searchValue,devIndexs,state); + } } diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/controller/LargeScreenCountController.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/controller/LargeScreenCountController.java index f6dad821..457d705d 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/controller/LargeScreenCountController.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/controller/LargeScreenCountController.java @@ -242,5 +242,14 @@ public class LargeScreenCountController extends BaseController { Page result = largeScreenCountService.eventPage(largeScreenCountParam); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } + @OperateInfo + @PostMapping("/devicePage") + @ApiOperation("终端分页查询") + @ApiImplicitParam(name = "largeScreenCountParam", value = "查询参数", required = true) + public HttpResult> devicePage(@RequestBody LargeScreenCountParam largeScreenCountParam) { + String methodDescribe = getMethodDescribe("devicePage"); + Page result = largeScreenCountService.devicePage(largeScreenCountParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } } diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/mapper/PqsDeptsMapper.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/mapper/PqsDeptsMapper.java index 27851da1..cbeedc80 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/mapper/PqsDeptsMapper.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/mapper/PqsDeptsMapper.java @@ -1,6 +1,7 @@ package com.njcn.gather.event.transientes.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.gather.event.devcie.pojo.dto.PqsDeptDTO; import com.njcn.gather.event.transientes.pojo.po.PqsDepts; import org.apache.ibatis.annotations.Param; @@ -16,4 +17,6 @@ import java.util.List; */ public interface PqsDeptsMapper extends BaseMapper { List findDeptAndChildren(@Param("deptId") String deptId); + + List getDeptList(@Param("deptIds") List deptIds); } \ No newline at end of file diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/mapper/mapping/PqsDeptsMapper.xml b/event_smart/src/main/java/com/njcn/gather/event/transientes/mapper/mapping/PqsDeptsMapper.xml index 86ab9179..7b696aac 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/mapper/mapping/PqsDeptsMapper.xml +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/mapper/mapping/PqsDeptsMapper.xml @@ -28,4 +28,29 @@ CONNECT BY PRIOR DEPTS_INDEX = PARENTNODEID and state = 1 + + \ No newline at end of file diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/param/LargeScreenCountParam.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/param/LargeScreenCountParam.java index 265e9953..547bc3f8 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/param/LargeScreenCountParam.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/param/LargeScreenCountParam.java @@ -27,6 +27,9 @@ public class LargeScreenCountParam extends BaseParam { @ApiModelProperty(name="eventDeep",value="0.普通事件 1.严重事件 null.全部事件") private Integer eventDeep; + @ApiModelProperty(name="t通讯状态",value="0.离线 1.在线") + private Integer state; + private Integer sendResult; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime startTime; diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/vo/RegionDevCountVO.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/vo/RegionDevCountVO.java index d37d86e1..418da5cd 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/vo/RegionDevCountVO.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/vo/RegionDevCountVO.java @@ -24,6 +24,7 @@ public class RegionDevCountVO { * 部门名称 */ private String deptsname; + private String areaName; private Integer allCount; private Integer onLine; private Integer offLine; diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/security/SecurityConfig.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/security/SecurityConfig.java index 3f333e43..ee5d52fb 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/security/SecurityConfig.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/security/SecurityConfig.java @@ -43,7 +43,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { .sessionManagement() .sessionCreationPolicy(SessionCreationPolicy.STATELESS); // 使用无状态会话 - http.addFilterBefore(jwtRequestFilter, UsernamePasswordAuthenticationFilter.class); +// http.addFilterBefore(jwtRequestFilter, UsernamePasswordAuthenticationFilter.class); } @Bean diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/LargeScreenCountService.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/LargeScreenCountService.java index 4f015f24..55fee559 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/LargeScreenCountService.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/LargeScreenCountService.java @@ -58,4 +58,6 @@ public interface LargeScreenCountService { List substationCount(LargeScreenCountParam largeScreenCountParam); Page eventPage(LargeScreenCountParam largeScreenCountParam); + + Page devicePage(LargeScreenCountParam largeScreenCountParam); } diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/PqsDeptsService.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/PqsDeptsService.java index 6768685d..16b20b00 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/PqsDeptsService.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/PqsDeptsService.java @@ -1,5 +1,6 @@ package com.njcn.gather.event.transientes.service; +import com.njcn.gather.event.devcie.pojo.dto.PqsDeptDTO; import com.njcn.gather.event.transientes.pojo.po.PqsDepts; import com.baomidou.mybatisplus.extension.service.IService; import org.apache.ibatis.annotations.Param; @@ -17,5 +18,8 @@ import java.util.List; public interface PqsDeptsService extends IService{ - List findDeptAndChildren(@Param("deptId") String deptId); + List findDeptAndChildren( String deptId); + + List getDeptList( List deptIds); + } diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/LargeScreenCountServiceImpl.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/LargeScreenCountServiceImpl.java index 757d1183..4d386dce 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/LargeScreenCountServiceImpl.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/LargeScreenCountServiceImpl.java @@ -19,6 +19,7 @@ import com.njcn.gather.event.devcie.mapper.PqLineMapper; import com.njcn.gather.event.devcie.mapper.PqLinedetailMapper; import com.njcn.gather.event.devcie.pojo.dto.DeviceDTO; import com.njcn.gather.event.devcie.pojo.dto.LedgerBaseInfoDTO; +import com.njcn.gather.event.devcie.pojo.dto.PqsDeptDTO; import com.njcn.gather.event.devcie.pojo.dto.SubstationDTO; import com.njcn.gather.event.devcie.pojo.po.PqLinedetail; import com.njcn.gather.event.transientes.pojo.param.LargeScreenCountParam; @@ -86,6 +87,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { private final PqsUserService pqsUserService; private final PqLinedetailMapper pqLinedetailMapper; private final RedisUtil redisUtil; + private final PqsOnlinerateService pqsOnlinerateService; @Value("${SYS_TYPE_ZT}") private String sysTypeZt; private final static String NAME_KEY = "LineCache:"; @@ -923,11 +925,12 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { List pqDeviceList = pqDeviceService.lambdaQuery().eq(PqDevice::getDevflag, 0).list(); // List deptslines = pqsDeptslineService.lambdaQuery().in(PqsDeptsline::getDeptsIndex, deptAndChildren).eq(PqsDeptsline::getSystype, sysTypeZt).list(); - List list = pqsDeptsService.lambdaQuery().in(PqsDepts::getDeptsIndex, deptAndChildren).eq(PqsDepts::getState, 1).list(); + List list = pqsDeptsService.getDeptList(deptAndChildren); list.forEach(temp->{ RegionDevCountVO regionDevCountVO = new RegionDevCountVO(); regionDevCountVO.setDeptsIndex(temp.getDeptsIndex()); regionDevCountVO.setDeptsname(temp.getDeptsname()); + regionDevCountVO.setAreaName(temp.getAreaName()); List deptslineIds =(List) redisUtil.getObjectByKey( NAME_KEY+ StrUtil.DASHED+temp.getDeptsIndex()); List collect = pqLineList.stream().filter(pqLine -> deptslineIds.contains(pqLine.getLineIndex())).collect(Collectors.toList()); List devIndexs = collect.stream().map(PqLine::getDevIndex).collect(Collectors.toList()); @@ -1069,6 +1072,38 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { return returnpage; } + @Override + public Page devicePage(LargeScreenCountParam largeScreenCountParam) { + LocalDateTime startTime = largeScreenCountParam.getStartTime(); + LocalDateTime endTime = largeScreenCountParam.getEndTime(); + Page pqsEventdetailPage = new Page<>(largeScreenCountParam.getPageNum(), largeScreenCountParam.getPageSize()); + List pqLineList = (List) redisUtil.getObjectByKey( NAME_KEY+ StrUtil.DASHED+"pqLineList"); + List deptslineIds = (List) redisUtil.getObjectByKey( NAME_KEY+ StrUtil.DASHED+largeScreenCountParam.getDeptId()); + + + pqLineList = pqLineList.stream().filter(temp->deptslineIds.contains(temp.getLineIndex())).collect(Collectors.toList()); + + List devIndexs = pqLineList.stream().map(PqLine::getDevIndex).collect(Collectors.toList()); + List list = pqsOnlinerateService.lambdaQuery().in(PqsOnlinerate::getDevIndex,devIndexs).between(PqsOnlinerate::getTimeid, startTime, endTime).list(); + + pqsEventdetailPage = pqDeviceService.selectDeviceDTOPage(pqsEventdetailPage,largeScreenCountParam.getSearchValue(),devIndexs,largeScreenCountParam.getState()); + if(!CollectionUtils.isEmpty(list)){ + for (DeviceDTO record : pqsEventdetailPage.getRecords()) { + List tempList = list.stream().filter(temp -> Objects.equals(temp.getDevIndex(), record.getDevId())).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(tempList)){ + double asDouble = tempList.stream().mapToDouble(temp -> { + return Double.valueOf(temp.getOnlinemin()) / (temp.getOfflinemin() + temp.getOnlinemin()); + }).average().getAsDouble(); + record.setOnLineRate(new BigDecimal(asDouble).setScale(2, RoundingMode.UP).doubleValue()); + + } + + } + } + + return pqsEventdetailPage; + } + private List change(List list,List handleMsg){ List result = new ArrayList<>(); if(CollectionUtils.isEmpty(list)){ diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/PqsDeptsServiceImpl.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/PqsDeptsServiceImpl.java index c0814be9..820fbfcd 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/PqsDeptsServiceImpl.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/PqsDeptsServiceImpl.java @@ -1,5 +1,6 @@ package com.njcn.gather.event.transientes.service.impl; +import com.njcn.gather.event.devcie.pojo.dto.PqsDeptDTO; import org.springframework.stereotype.Service; import java.util.List; @@ -22,4 +23,10 @@ public class PqsDeptsServiceImpl extends ServiceImpl i public List findDeptAndChildren(String deptId) { return this.getBaseMapper().findDeptAndChildren(deptId); } + + @Override + public List getDeptList(List deptIds) { + return this.getBaseMapper().getDeptList(deptIds); + + } }