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 081993ef..4b8654b2 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 @@ -7,10 +7,7 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; import com.njcn.gather.event.transientes.pojo.param.LargeScreenCountParam; import com.njcn.gather.event.transientes.pojo.po.PqsEventdetail; -import com.njcn.gather.event.transientes.pojo.vo.AlarmAnalysisVO; -import com.njcn.gather.event.transientes.pojo.vo.EventDetailVO; -import com.njcn.gather.event.transientes.pojo.vo.EventTrendVO; -import com.njcn.gather.event.transientes.pojo.vo.LedgerCountVO; +import com.njcn.gather.event.transientes.pojo.vo.*; import com.njcn.gather.event.transientes.service.LargeScreenCountService; import com.njcn.web.controller.BaseController; import com.njcn.web.utils.HttpResultUtil; @@ -90,6 +87,15 @@ public class LargeScreenCountController extends BaseController { List result = largeScreenCountService.noDealEventList(largeScreenCountParam); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } + @OperateInfo + @PostMapping("/mapCount") + @ApiOperation("地图统计") + @ApiImplicitParam(name = "largeScreenCountParam", value = "查询参数", required = true) + public HttpResult> mapCount(@RequestBody LargeScreenCountParam largeScreenCountParam) { + String methodDescribe = getMethodDescribe("mapCount"); + List result = largeScreenCountService.mapCount(largeScreenCountParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } @OperateInfo(operateType= OperateType.UPDATE) diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/vo/MapCountVO.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/vo/MapCountVO.java new file mode 100644 index 00000000..a35da789 --- /dev/null +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/vo/MapCountVO.java @@ -0,0 +1,19 @@ +package com.njcn.gather.event.transientes.pojo.vo; + +import lombok.Data; + +/** + * Description: + * Date: 2025/06/26 上午 8:50【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +public class MapCountVO { + private String deptsIndex; + private String deptsName; + private Integer lineCount; + private Integer eventCount; + private Integer noticeCount; +} 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 58c110b3..2153e869 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 @@ -3,10 +3,7 @@ package com.njcn.gather.event.transientes.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.gather.event.transientes.pojo.param.LargeScreenCountParam; import com.njcn.gather.event.transientes.pojo.po.PqsEventdetail; -import com.njcn.gather.event.transientes.pojo.vo.AlarmAnalysisVO; -import com.njcn.gather.event.transientes.pojo.vo.EventDetailVO; -import com.njcn.gather.event.transientes.pojo.vo.EventTrendVO; -import com.njcn.gather.event.transientes.pojo.vo.LedgerCountVO; +import com.njcn.gather.event.transientes.pojo.vo.*; import java.util.List; @@ -30,4 +27,6 @@ public interface LargeScreenCountService { boolean lookEvent(List ids); + + List mapCount(LargeScreenCountParam largeScreenCountParam); } 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 790aae6e..28829c5a 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 @@ -21,11 +21,9 @@ import com.njcn.gather.event.transientes.pojo.param.LargeScreenCountParam; import com.njcn.gather.event.devcie.pojo.po.PqDevice; import com.njcn.gather.event.devcie.pojo.po.PqLine; import com.njcn.gather.event.devcie.pojo.po.PqsDeptsline; +import com.njcn.gather.event.transientes.pojo.po.PqsDepts; import com.njcn.gather.event.transientes.pojo.po.PqsEventdetail; -import com.njcn.gather.event.transientes.pojo.vo.AlarmAnalysisVO; -import com.njcn.gather.event.transientes.pojo.vo.EventDetailVO; -import com.njcn.gather.event.transientes.pojo.vo.EventTrendVO; -import com.njcn.gather.event.transientes.pojo.vo.LedgerCountVO; +import com.njcn.gather.event.transientes.pojo.vo.*; import com.njcn.gather.event.devcie.service.*; import com.njcn.gather.event.transientes.service.LargeScreenCountService; import com.njcn.gather.event.transientes.service.PqsDeptsService; @@ -309,5 +307,44 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { return true; } + @Override + public List mapCount(LargeScreenCountParam largeScreenCountParam) { + List result = new ArrayList<>(); + //起始时间 + LocalDateTime startTime = LocalDateTimeUtil.parse(DateUtil.format(DateUtil.beginOfMonth(new Date()), DatePattern.NORM_DATETIME_FORMATTER),DatePattern.NORM_DATETIME_FORMATTER); + //结束时间 + LocalDateTime endTime = LocalDateTimeUtil.parse(DateUtil.format(DateUtil.endOfMonth(new Date()), DatePattern.NORM_DATETIME_FORMATTER),DatePattern.NORM_DATETIME_FORMATTER); + //根据用户获取当前部门及子部门id + List deptAndChildren = pqsDeptsService.findDeptAndChildren( largeScreenCountParam.getDeptId()); + //获取对应监测点id + List deptslines = pqsDeptslineService.lambdaQuery().in(PqsDeptsline::getDeptsIndex, deptAndChildren).eq(PqsDeptsline::getSystype, sysTypeZt).list(); + if(CollectionUtils.isEmpty(deptslines)){ + throw new BusinessException("部门下暂无监测点"); + + } + List list = pqsDeptsService.lambdaQuery().list(); + Map stringPqsDeptsMap = list.stream().collect(Collectors.toMap(PqsDepts::getDeptsIndex, Function.identity(), (key1, key2) -> key2)); + Map> collect = deptslines.stream().collect(Collectors.groupingBy(PqsDeptsline::getDeptsIndex)); + collect.forEach((k,v)->{ + MapCountVO mapCountVO = new MapCountVO() ; + mapCountVO.setDeptsIndex(k); + mapCountVO.setDeptsName(stringPqsDeptsMap.get(k).getDeptsname()); + mapCountVO.setLineCount(v.size()); + + List deptslineIds = v.stream().map(PqsDeptsline::getLineIndex).collect(Collectors.toList()); + List eventdetails = pqsEventdetailService.lambdaQuery() + .between(PqsEventdetail::getTimeid, startTime,endTime) + .in(PqsEventdetail::getLineid,deptslineIds).list(); + mapCountVO.setEventCount(eventdetails.size()); + List noticeEvent = eventdetails.stream().filter(temp ->Objects.equals(temp.getNoticeFlag(),1)).collect(Collectors.toList()); + + + mapCountVO.setNoticeCount(noticeEvent.size()); + + result.add(mapCountVO); + }); + return result; + } + }