feat(web): 添加港区人车数量统计功能

dev
zhaokai 2026-07-30 08:39:11 +08:00
parent 8691b218ad
commit 061f052080
5 changed files with 63 additions and 0 deletions

View File

@ -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<BiPortPersonVehicleStatCO> listPortPersonVehicleStat() {
return MultiResponse.of(personnelPositioningBiService.listPortPersonVehicleStat());
}
}

View File

@ -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<BiPortPersonVehicleStatCO> listPortPersonVehicleStat() {
List<BiPortPersonVehicleStatCO> 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<BiCompanyPersonPositionCO> listCompanyPersonPosition(BiCompanyOnlinePersonQry qry) {
BiCompanyOnlinePersonQry query = qry == null ? new BiCompanyOnlinePersonQry() : qry;
validatePortArea(query.getPortArea());

View File

@ -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<BiPortPersonVehicleStatCO> listPortPersonVehicleStat() {
return personnelPositioningBiQueryExe.listPortPersonVehicleStat();
}
@Override
public List<BiCompanyPersonPositionCO> listCompanyPersonPosition(BiCompanyOnlinePersonQry qry) {
return personnelPositioningBiQueryExe.listCompanyPersonPosition(qry);

View File

@ -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<BiPersonLocationCO> listPersonLocation(BiPersonLocationQry qry);
List<BiPortPersonVehicleStatCO> listPortPersonVehicleStat();
List<BiCompanyPersonPositionCO> listCompanyPersonPosition(BiCompanyOnlinePersonQry qry);
List<BiPersonPositionCO> listPersonPosition(BiPersonPositionQry qry);

View File

@ -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;
}