From 061f052080652136fb38ebb993ae379f359a8c66 Mon Sep 17 00:00:00 2001 From: zhaokai Date: Thu, 30 Jul 2026 08:39:11 +0800 Subject: [PATCH] =?UTF-8?q?feat(web):=20=E6=B7=BB=E5=8A=A0=E6=B8=AF?= =?UTF-8?q?=E5=8C=BA=E4=BA=BA=E8=BD=A6=E6=95=B0=E9=87=8F=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/PersonnelPositioningBiController.java | 6 +++++ .../query/PersonnelPositioningBiQueryExe.java | 22 ++++++++++++++++ .../PersonnelPositioningBiServiceImpl.java | 6 +++++ .../api/PersonnelPositioningBiServiceI.java | 3 +++ .../BiPortPersonVehicleStatCO.java | 26 +++++++++++++++++++ 5 files changed, 63 insertions(+) create mode 100644 web-client/src/main/java/com/zcloud/personnel/positioning/dto/clientobject/BiPortPersonVehicleStatCO.java diff --git a/web-adapter/src/main/java/com/zcloud/personnel/positioning/web/PersonnelPositioningBiController.java b/web-adapter/src/main/java/com/zcloud/personnel/positioning/web/PersonnelPositioningBiController.java index b6adc65..759b66e 100644 --- a/web-adapter/src/main/java/com/zcloud/personnel/positioning/web/PersonnelPositioningBiController.java +++ b/web-adapter/src/main/java/com/zcloud/personnel/positioning/web/PersonnelPositioningBiController.java @@ -18,6 +18,7 @@ import com.zcloud.personnel.positioning.dto.clientobject.BiOverviewCO; import com.zcloud.personnel.positioning.dto.clientobject.BiPersonLocationCO; import com.zcloud.personnel.positioning.dto.clientobject.BiPersonPositionCO; import com.zcloud.personnel.positioning.dto.clientobject.BiPersonTraceCO; +import com.zcloud.personnel.positioning.dto.clientobject.BiPortPersonVehicleStatCO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -109,5 +110,10 @@ public class PersonnelPositioningBiController { @RequestBody BiCompanyOnlinePersonQry qry) { return MultiResponse.of(personnelPositioningBiService.listCompanyPersonPosition(qry)); } + @ApiOperation("可视化大屏-统计人车数量") + @GetMapping("/personLocation/portPersonVehicleStat") + public MultiResponse listPortPersonVehicleStat() { + return MultiResponse.of(personnelPositioningBiService.listPortPersonVehicleStat()); + } } diff --git a/web-app/src/main/java/com/zcloud/personnel/positioning/command/query/PersonnelPositioningBiQueryExe.java b/web-app/src/main/java/com/zcloud/personnel/positioning/command/query/PersonnelPositioningBiQueryExe.java index 8861117..b74e166 100644 --- a/web-app/src/main/java/com/zcloud/personnel/positioning/command/query/PersonnelPositioningBiQueryExe.java +++ b/web-app/src/main/java/com/zcloud/personnel/positioning/command/query/PersonnelPositioningBiQueryExe.java @@ -23,6 +23,7 @@ import com.zcloud.personnel.positioning.dto.clientobject.BiOverviewCO; import com.zcloud.personnel.positioning.dto.clientobject.BiPersonLocationCO; import com.zcloud.personnel.positioning.dto.clientobject.BiPersonPositionCO; import com.zcloud.personnel.positioning.dto.clientobject.BiPersonTraceCO; +import com.zcloud.personnel.positioning.dto.clientobject.BiPortPersonVehicleStatCO; import com.zcloud.personnel.positioning.dto.clientobject.BiPortStatCO; import com.zcloud.personnel.positioning.integration.finds.FindsOpenApiClient; import com.zcloud.personnel.positioning.persistence.dataobject.AreaDO; @@ -244,6 +245,27 @@ public class PersonnelPositioningBiQueryExe { return PageResponse.of(rows.subList(fromIndex, toIndex), rows.size(), pageSize, pageNo); } + public List listPortPersonVehicleStat() { + List result = new ArrayList<>(); + result.add(buildPortPersonVehicleStat(2, "东港区")); + result.add(buildPortPersonVehicleStat(3, "西港区")); + return result; + } + + private BiPortPersonVehicleStatCO buildPortPersonVehicleStat(Integer portArea, String portName) { + int personCount = 0; + for (BiCorpInfoDO corpInfo : biRepository.listPersonPositionCompanies(null, portArea)) { + personCount += biPersonLocationProvider.listCompanyOnlinePersons( + corpInfo.getCorpinfoId(), corpInfo.getCorpName(), corpInfo.getCode()).size(); + } + BiPortPersonVehicleStatCO co = new BiPortPersonVehicleStatCO(); + co.setPortArea(portArea); + co.setPortName(portName); + co.setOnlinePersonCount(personCount); + co.setOnlineVehicleCount(0); + return co; + } + public List listCompanyPersonPosition(BiCompanyOnlinePersonQry qry) { BiCompanyOnlinePersonQry query = qry == null ? new BiCompanyOnlinePersonQry() : qry; validatePortArea(query.getPortArea()); diff --git a/web-app/src/main/java/com/zcloud/personnel/positioning/service/PersonnelPositioningBiServiceImpl.java b/web-app/src/main/java/com/zcloud/personnel/positioning/service/PersonnelPositioningBiServiceImpl.java index 0da7c87..0567720 100644 --- a/web-app/src/main/java/com/zcloud/personnel/positioning/service/PersonnelPositioningBiServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/personnel/positioning/service/PersonnelPositioningBiServiceImpl.java @@ -17,6 +17,7 @@ import com.zcloud.personnel.positioning.dto.clientobject.BiOverviewCO; import com.zcloud.personnel.positioning.dto.clientobject.BiPersonLocationCO; import com.zcloud.personnel.positioning.dto.clientobject.BiPersonPositionCO; import com.zcloud.personnel.positioning.dto.clientobject.BiPersonTraceCO; +import com.zcloud.personnel.positioning.dto.clientobject.BiPortPersonVehicleStatCO; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; @@ -53,6 +54,11 @@ public class PersonnelPositioningBiServiceImpl implements PersonnelPositioningBi return personnelPositioningBiQueryExe.listPersonLocation(qry); } + @Override + public List listPortPersonVehicleStat() { + return personnelPositioningBiQueryExe.listPortPersonVehicleStat(); + } + @Override public List listCompanyPersonPosition(BiCompanyOnlinePersonQry qry) { return personnelPositioningBiQueryExe.listCompanyPersonPosition(qry); diff --git a/web-client/src/main/java/com/zcloud/personnel/positioning/api/PersonnelPositioningBiServiceI.java b/web-client/src/main/java/com/zcloud/personnel/positioning/api/PersonnelPositioningBiServiceI.java index b40a1ec..8d59cf1 100644 --- a/web-client/src/main/java/com/zcloud/personnel/positioning/api/PersonnelPositioningBiServiceI.java +++ b/web-client/src/main/java/com/zcloud/personnel/positioning/api/PersonnelPositioningBiServiceI.java @@ -15,6 +15,7 @@ import com.zcloud.personnel.positioning.dto.clientobject.BiOverviewCO; import com.zcloud.personnel.positioning.dto.clientobject.BiPersonLocationCO; import com.zcloud.personnel.positioning.dto.clientobject.BiPersonPositionCO; import com.zcloud.personnel.positioning.dto.clientobject.BiPersonTraceCO; +import com.zcloud.personnel.positioning.dto.clientobject.BiPortPersonVehicleStatCO; import java.util.List; @@ -33,6 +34,8 @@ public interface PersonnelPositioningBiServiceI { PageResponse listPersonLocation(BiPersonLocationQry qry); + List listPortPersonVehicleStat(); + List listCompanyPersonPosition(BiCompanyOnlinePersonQry qry); List listPersonPosition(BiPersonPositionQry qry); diff --git a/web-client/src/main/java/com/zcloud/personnel/positioning/dto/clientobject/BiPortPersonVehicleStatCO.java b/web-client/src/main/java/com/zcloud/personnel/positioning/dto/clientobject/BiPortPersonVehicleStatCO.java new file mode 100644 index 0000000..45a3070 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/personnel/positioning/dto/clientobject/BiPortPersonVehicleStatCO.java @@ -0,0 +1,26 @@ +package com.zcloud.personnel.positioning.dto.clientobject; + +import com.alibaba.cola.dto.ClientObject; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 可视化大屏港区人车数量统计。 + * + * @Author Codex + * @Date 2026-07-29 + */ +@Data +public class BiPortPersonVehicleStatCO extends ClientObject { + @ApiModelProperty(value = "港区,2:秦皇岛东,3:秦皇岛西", name = "portArea") + private Integer portArea; + + @ApiModelProperty(value = "港区名称", name = "portName") + private String portName; + + @ApiModelProperty(value = "在线人数", name = "onlinePersonCount") + private Integer onlinePersonCount; + + @ApiModelProperty(value = "在线车数", name = "onlineVehicleCount") + private Integer onlineVehicleCount; +}