From f2fa4dd82f5d9bf656da41832fb0896f09152ebd Mon Sep 17 00:00:00 2001 From: lishiwei <3230787218@qq.com> Date: Wed, 19 Aug 2026 16:55:53 +0800 Subject: [PATCH] =?UTF-8?q?feat():=20=E6=96=B0=E5=A2=9E=E5=B0=81=E9=97=AD?= =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E4=BA=BA=E5=91=98=E8=BD=A6=E8=BE=86=E8=BF=9B?= =?UTF-8?q?=E5=87=BA=E8=AE=B0=E5=BD=95=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/close/ClosedAreaController.java | 14 ++++ .../service/ClosedAreaServiceImpl.java | 56 +++++++++++++ .../primeport/api/ClosedAreaServiceI.java | 6 ++ .../primeport/dto/PersonInOutRecordQry.java | 30 +++++++ .../primeport/dto/VehicleInOutRecordQry.java | 33 ++++++++ .../dataobject/HkAccessRecordDO.java | 43 +++++----- .../dataobject/HkVehicleAccessRecordDO.java | 39 +++++---- .../persistence/mapper/ClosedAreaMapper.java | 10 +++ .../repository/ClosedAreaRepository.java | 10 +++ .../impl/ClosedAreaRepositoryImpl.java | 22 +++++ .../resources/mapper/ClosedAreaMapper.xml | 84 +++++++++++++++++++ 11 files changed, 309 insertions(+), 38 deletions(-) create mode 100644 web-client/src/main/java/com/zcloud/primeport/dto/PersonInOutRecordQry.java create mode 100644 web-client/src/main/java/com/zcloud/primeport/dto/VehicleInOutRecordQry.java diff --git a/web-adapter/src/main/java/com/zcloud/primeport/web/close/ClosedAreaController.java b/web-adapter/src/main/java/com/zcloud/primeport/web/close/ClosedAreaController.java index 011f569..25f433f 100644 --- a/web-adapter/src/main/java/com/zcloud/primeport/web/close/ClosedAreaController.java +++ b/web-adapter/src/main/java/com/zcloud/primeport/web/close/ClosedAreaController.java @@ -11,6 +11,8 @@ import com.zcloud.primeport.dto.ClosedAreaCorpStatCmd; import com.zcloud.primeport.dto.ClosedAreaCountCmd; import com.zcloud.primeport.dto.ClosedAreaPageQry; import com.zcloud.primeport.dto.ClosedAreaUpdateCmd; +import com.zcloud.primeport.dto.PersonInOutRecordQry; +import com.zcloud.primeport.dto.VehicleInOutRecordQry; import com.zcloud.primeport.dto.clientobject.ClosedAreaCO; import com.zcloud.primeport.dto.clientobject.ClosedAreaCorpStatCO; import io.swagger.annotations.Api; @@ -73,6 +75,18 @@ public class ClosedAreaController { return closedAreaService.listAllByJurisdictionalCorpId(id); } + @ApiOperation("封闭区域人员进出记录") + @PostMapping("/personInOutRecord") + public PageResponse personInOutRecord(@RequestBody PersonInOutRecordQry qry) { + return closedAreaService.personInOutPage(qry); + } + + @ApiOperation("封闭区域车辆进出记录") + @PostMapping("/vehicleInOutRecord") + public PageResponse vehicleInOutRecord(@RequestBody VehicleInOutRecordQry qry) { + return closedAreaService.vehicleInOutPage(qry); + } + @ApiOperation("详情") @GetMapping("/{id}") public SingleResponse getInfoById(@PathVariable("id") Long id) { diff --git a/web-app/src/main/java/com/zcloud/primeport/service/ClosedAreaServiceImpl.java b/web-app/src/main/java/com/zcloud/primeport/service/ClosedAreaServiceImpl.java index 3af07e6..bb861a5 100644 --- a/web-app/src/main/java/com/zcloud/primeport/service/ClosedAreaServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/primeport/service/ClosedAreaServiceImpl.java @@ -14,13 +14,20 @@ import com.zcloud.primeport.dto.ClosedAreaCorpStatCmd; import com.zcloud.primeport.dto.ClosedAreaCountCmd; import com.zcloud.primeport.dto.ClosedAreaPageQry; import com.zcloud.primeport.dto.ClosedAreaUpdateCmd; +import com.zcloud.primeport.dto.PersonInOutRecordQry; +import com.zcloud.primeport.dto.VehicleInOutRecordQry; import com.zcloud.primeport.dto.clientobject.ClosedAreaCO; import com.zcloud.primeport.dto.clientobject.ClosedAreaCorpStatCO; import com.zcloud.primeport.dto.clientobject.ClosedAreaCountCO; +import com.zcloud.primeport.persistence.dataobject.HkAccessRecordDO; +import com.zcloud.primeport.persistence.dataobject.HkVehicleAccessRecordDO; +import com.zcloud.primeport.persistence.repository.ClosedAreaRepository; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import java.util.HashMap; import java.util.List; +import java.util.Map; @Service @AllArgsConstructor @@ -30,6 +37,7 @@ public class ClosedAreaServiceImpl implements ClosedAreaServiceI { private final ClosedAreaRemoveExe closedAreaRemoveExe; private final ClosedAreaQueryExe closedAreaQueryExe; private final ClosedAreaCountExe closedAreaCountExe; + private final ClosedAreaRepository closedAreaRepository; @Override public ClosedAreaCO queryById(Long id) { @@ -93,4 +101,52 @@ public class ClosedAreaServiceImpl implements ClosedAreaServiceI { public MultiResponse listAllByhgAuthArea(String hgAuthArea) { return closedAreaQueryExe.listAllByhgAuthArea(hgAuthArea); } + + @Override + public PageResponse personInOutPage(PersonInOutRecordQry qry) { + Map params = buildPersonInOutParams(qry); + List list = closedAreaRepository.listPersonInOutRecord(params); + long total = closedAreaRepository.countPersonInOutRecord(params); + return PageResponse.of(list, (int) total, qry.getPageSize(), qry.getPageIndex()); + } + + @Override + public PageResponse vehicleInOutPage(VehicleInOutRecordQry qry) { + Map params = buildVehicleInOutParams(qry); + List list = closedAreaRepository.listVehicleInOutRecord(params); + long total = closedAreaRepository.countVehicleInOutRecord(params); + return PageResponse.of(list, (int) total, qry.getPageSize(), qry.getPageIndex()); + } + + private Map buildPersonInOutParams(PersonInOutRecordQry qry) { + Map params = new HashMap<>(); + params.put("closedAreaId", qry.getClosedAreaId()); + params.put("personName", qry.getPersonName()); + if (qry.getTimeRange() != null && qry.getTimeRange().size() == 2) { + params.put("startTime", qry.getTimeRange().get(0)); + params.put("endTime", qry.getTimeRange().get(1)); + } + params.put("pageIndex", qry.getPageIndex()); + params.put("pageSize", qry.getPageSize()); + params.put("offset", (qry.getPageIndex() - 1) * qry.getPageSize()); + return params; + } + + private Map buildVehicleInOutParams(VehicleInOutRecordQry qry) { + Map params = new HashMap<>(); + params.put("closedAreaId", qry.getClosedAreaId()); + params.put("vehiclePlateNumber", qry.getVehiclePlateNumber()); + if (qry.getVehicleArrivalTime() != null && qry.getVehicleArrivalTime().size() == 2) { + params.put("arrivalStartTime", qry.getVehicleArrivalTime().get(0)); + params.put("arrivalEndTime", qry.getVehicleArrivalTime().get(1)); + } + if (qry.getVehicleDepartureTime() != null && qry.getVehicleDepartureTime().size() == 2) { + params.put("departureStartTime", qry.getVehicleDepartureTime().get(0)); + params.put("departureEndTime", qry.getVehicleDepartureTime().get(1)); + } + params.put("pageIndex", qry.getPageIndex()); + params.put("pageSize", qry.getPageSize()); + params.put("offset", (qry.getPageIndex() - 1) * qry.getPageSize()); + return params; + } } diff --git a/web-client/src/main/java/com/zcloud/primeport/api/ClosedAreaServiceI.java b/web-client/src/main/java/com/zcloud/primeport/api/ClosedAreaServiceI.java index c310fe2..80635a1 100644 --- a/web-client/src/main/java/com/zcloud/primeport/api/ClosedAreaServiceI.java +++ b/web-client/src/main/java/com/zcloud/primeport/api/ClosedAreaServiceI.java @@ -8,6 +8,8 @@ import com.zcloud.primeport.dto.ClosedAreaCorpStatCmd; import com.zcloud.primeport.dto.ClosedAreaCountCmd; import com.zcloud.primeport.dto.ClosedAreaPageQry; import com.zcloud.primeport.dto.ClosedAreaUpdateCmd; +import com.zcloud.primeport.dto.PersonInOutRecordQry; +import com.zcloud.primeport.dto.VehicleInOutRecordQry; import com.zcloud.primeport.dto.clientobject.ClosedAreaCO; import com.zcloud.primeport.dto.clientobject.ClosedAreaCorpStatCO; import com.zcloud.primeport.dto.clientobject.ClosedAreaCountCO; @@ -36,4 +38,8 @@ public interface ClosedAreaServiceI { MultiResponse listTree(ClosedAreaPageQry qry); MultiResponse listAllByhgAuthArea(String hgAuthArea); + + PageResponse personInOutPage(PersonInOutRecordQry qry); + + PageResponse vehicleInOutPage(VehicleInOutRecordQry qry); } diff --git a/web-client/src/main/java/com/zcloud/primeport/dto/PersonInOutRecordQry.java b/web-client/src/main/java/com/zcloud/primeport/dto/PersonInOutRecordQry.java new file mode 100644 index 0000000..6025cac --- /dev/null +++ b/web-client/src/main/java/com/zcloud/primeport/dto/PersonInOutRecordQry.java @@ -0,0 +1,30 @@ +package com.zcloud.primeport.dto; + +import com.alibaba.cola.dto.PageQuery; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * 人员进出记录查询参数 + * + * @Author Codex + * @Date 2026-08-19 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ApiModel("人员进出记录查询参数") +public class PersonInOutRecordQry extends PageQuery { + + @ApiModelProperty(value = "封闭区域ID", name = "closedAreaId", required = true) + private Long closedAreaId; + + @ApiModelProperty(value = "人员姓名(模糊查询)", name = "personName") + private String personName; + + @ApiModelProperty(value = "时间范围(格式:yyyy-MM-dd)", name = "timeRange") + private List timeRange; +} diff --git a/web-client/src/main/java/com/zcloud/primeport/dto/VehicleInOutRecordQry.java b/web-client/src/main/java/com/zcloud/primeport/dto/VehicleInOutRecordQry.java new file mode 100644 index 0000000..44fb0eb --- /dev/null +++ b/web-client/src/main/java/com/zcloud/primeport/dto/VehicleInOutRecordQry.java @@ -0,0 +1,33 @@ +package com.zcloud.primeport.dto; + +import com.alibaba.cola.dto.PageQuery; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * 车辆进出记录查询参数 + * + * @Author Codex + * @Date 2026-08-19 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ApiModel("车辆进出记录查询参数") +public class VehicleInOutRecordQry extends PageQuery { + + @ApiModelProperty(value = "封闭区域ID", name = "closedAreaId", required = true) + private Long closedAreaId; + + @ApiModelProperty(value = "车牌号(模糊查询)", name = "vehiclePlateNumber") + private String vehiclePlateNumber; + + @ApiModelProperty(value = "进场时间范围(格式:yyyy-MM-dd)", name = "vehicleArrivalTime") + private List vehicleArrivalTime; + + @ApiModelProperty(value = "出场时间范围(格式:yyyy-MM-dd)", name = "vehicleDepartureTime") + private List vehicleDepartureTime; +} diff --git a/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/dataobject/HkAccessRecordDO.java b/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/dataobject/HkAccessRecordDO.java index f2822f7..438b56e 100644 --- a/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/dataobject/HkAccessRecordDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/dataobject/HkAccessRecordDO.java @@ -2,6 +2,8 @@ package com.zcloud.primeport.persistence.dataobject; import com.baomidou.mybatisplus.annotation.TableName; import com.jjb.saas.framework.repository.basedo.BaseDO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; @@ -16,65 +18,66 @@ import java.time.LocalDateTime; @Data @TableName("hk_access_record") @EqualsAndHashCode(callSuper = true) +@ApiModel("人员进出记录") public class HkAccessRecordDO extends BaseDO { - /** 海康事件ID,幂等键 */ + @ApiModelProperty(value = "海康事件ID(幂等键)", name = "hkEventId") private String hkEventId; - /** 海康人员ID(personId) */ + @ApiModelProperty(value = "海康人员ID", name = "personId") private String personId; - /** 人员姓名快照 */ + @ApiModelProperty(value = "人员姓名", name = "personName") private String personName; - /** 证件号码(身份证) */ + @ApiModelProperty(value = "证件号码(身份证)", name = "certificateNo") private String certificateNo; - /** 手机号 */ + @ApiModelProperty(value = "手机号", name = "phoneNo") private String phoneNo; - /** 海康组织编码 */ + @ApiModelProperty(value = "海康组织编码", name = "orgIndexCode") private String orgIndexCode; - /** 海康组织路径名称 */ + @ApiModelProperty(value = "海康组织路径名称", name = "orgPathName") private String orgPathName; - /** 门禁点编码(indexCode) */ + @ApiModelProperty(value = "门禁点编码", name = "doorIndexCode") private String doorIndexCode; - /** 门禁点名称 */ + @ApiModelProperty(value = "门禁点名称", name = "doorName") private String doorName; - /** 门禁点所属区域编码 */ + @ApiModelProperty(value = "门禁点所属区域编码", name = "doorRegionIndexCode") private String doorRegionIndexCode; - /** 进出方向:1-进,2-出 */ + @ApiModelProperty(value = "进出方向(1-进,2-出)", name = "enterOrExit", allowableValues = "1,2") private Integer enterOrExit; - /** 开门结果:1-成功,0-失败 */ + @ApiModelProperty(value = "开门结果(1-成功,0-失败)", name = "openResult", allowableValues = "0,1") private Integer openResult; - /** 开门方式 */ + @ApiModelProperty(value = "开门方式", name = "openType") private Integer openType; - /** 卡号 */ + @ApiModelProperty(value = "卡号", name = "cardNo") private String cardNo; - /** 事件发生时间(通行时间) */ + @ApiModelProperty(value = "事件发生时间(通行时间)", name = "eventTime") private LocalDateTime eventTime; - /** 记录在海康平台的入库时间 */ + @ApiModelProperty(value = "海康平台入库时间", name = "hkCreateTime") private LocalDateTime hkCreateTime; - /** 通行抓拍图片地址 */ + @ApiModelProperty(value = "通行抓拍图片地址", name = "recordImageUrl") private String recordImageUrl; - /** 数据来源:PULL-拉取,PUSH-推送 */ + @ApiModelProperty(value = "数据来源(PULL-拉取,PUSH-推送)", name = "sourceType", allowableValues = "PULL,PUSH") private String sourceType; - /** 海康原始事件JSON */ + @ApiModelProperty(value = "海康原始事件JSON", name = "rawData") private String rawData; - /** 最近同步时间 */ + @ApiModelProperty(value = "最近同步时间", name = "lastSyncTime") private LocalDateTime lastSyncTime; } diff --git a/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/dataobject/HkVehicleAccessRecordDO.java b/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/dataobject/HkVehicleAccessRecordDO.java index c12f0a3..a742ac5 100644 --- a/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/dataobject/HkVehicleAccessRecordDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/dataobject/HkVehicleAccessRecordDO.java @@ -2,6 +2,8 @@ package com.zcloud.primeport.persistence.dataobject; import com.baomidou.mybatisplus.annotation.TableName; import com.jjb.saas.framework.repository.basedo.BaseDO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; @@ -16,59 +18,60 @@ import java.time.LocalDateTime; @Data @TableName("hk_vehicle_access_record") @EqualsAndHashCode(callSuper = true) +@ApiModel("车辆进出记录") public class HkVehicleAccessRecordDO extends BaseDO { - /** 海康事件ID,幂等键 */ + @ApiModelProperty(value = "海康事件ID(幂等键)", name = "hkEventId") private String hkEventId; - /** 车牌号 */ + @ApiModelProperty(value = "车牌号", name = "plateNo") private String plateNo; - /** 车牌颜色:0-蓝,1-黄,2-白,3-黑 */ + @ApiModelProperty(value = "车牌颜色(0-蓝,1-黄,2-白,3-黑)", name = "plateColor", allowableValues = "0,1,2,3") private Integer plateColor; - /** 车辆类型 */ + @ApiModelProperty(value = "车辆类型", name = "carType") private Integer carType; - /** 车辆类型名称 */ + @ApiModelProperty(value = "车辆类型名称", name = "carTypeName") private String carTypeName; - /** 停车场系统编码 */ + @ApiModelProperty(value = "停车场系统编码", name = "parkSyscode") private String parkSyscode; - /** 停车场名称 */ + @ApiModelProperty(value = "停车场名称", name = "parkName") private String parkName; - /** 通道编码(门禁点indexCode) */ + @ApiModelProperty(value = "通道编码", name = "laneIndexCode") private String laneIndexCode; - /** 通道名称 */ + @ApiModelProperty(value = "通道名称", name = "laneName") private String laneName; - /** 出入口编码 */ + @ApiModelProperty(value = "出入口编码", name = "entranceIndexCode") private String entranceIndexCode; - /** 出入口名称 */ + @ApiModelProperty(value = "出入口名称", name = "entranceName") private String entranceName; - /** 进出方向:1-进,2-出 */ + @ApiModelProperty(value = "进出方向(1-进,2-出)", name = "enterOrExit", allowableValues = "1,2") private Integer enterOrExit; - /** 事件发生时间(通行时间) */ + @ApiModelProperty(value = "事件发生时间(通行时间)", name = "eventTime") private LocalDateTime eventTime; - /** 记录在海康平台的入库时间 */ + @ApiModelProperty(value = "海康平台入库时间", name = "hkCreateTime") private LocalDateTime hkCreateTime; - /** 通行抓拍图片地址 */ + @ApiModelProperty(value = "通行抓拍图片地址", name = "recordImageUrl") private String recordImageUrl; - /** 数据来源:PULL-拉取,PUSH-推送 */ + @ApiModelProperty(value = "数据来源(PULL-拉取,PUSH-推送)", name = "sourceType", allowableValues = "PULL,PUSH") private String sourceType; - /** 海康原始事件JSON */ + @ApiModelProperty(value = "海康原始事件JSON", name = "rawData") private String rawData; - /** 最近同步时间 */ + @ApiModelProperty(value = "最近同步时间", name = "lastSyncTime") private LocalDateTime lastSyncTime; } diff --git a/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/mapper/ClosedAreaMapper.java b/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/mapper/ClosedAreaMapper.java index ebf4e1b..4082897 100644 --- a/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/mapper/ClosedAreaMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/mapper/ClosedAreaMapper.java @@ -6,6 +6,8 @@ import com.jjb.saas.framework.datascope.annotation.DataScopes; import com.zcloud.primeport.persistence.dataobject.ClosedAreaCountDO; import com.zcloud.primeport.persistence.dataobject.ClosedAreaCorpStatDO; import com.zcloud.primeport.persistence.dataobject.ClosedAreaDO; +import com.zcloud.primeport.persistence.dataobject.HkAccessRecordDO; +import com.zcloud.primeport.persistence.dataobject.HkVehicleAccessRecordDO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -33,5 +35,13 @@ public interface ClosedAreaMapper extends BaseMapper { List getCountByHgAuthArea(); IPage listPage(IPage iPage, @Param("params") Map params); + + List listPersonInOutRecord(@Param("params") Map params); + + List listVehicleInOutRecord(@Param("params") Map params); + + long countPersonInOutRecord(@Param("params") Map params); + + long countVehicleInOutRecord(@Param("params") Map params); } diff --git a/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/repository/ClosedAreaRepository.java b/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/repository/ClosedAreaRepository.java index 7a8b34c..cd26153 100644 --- a/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/repository/ClosedAreaRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/repository/ClosedAreaRepository.java @@ -3,6 +3,8 @@ package com.zcloud.primeport.persistence.repository; import com.zcloud.primeport.persistence.dataobject.ClosedAreaCountDO; import com.zcloud.primeport.persistence.dataobject.ClosedAreaCorpStatDO; import com.zcloud.primeport.persistence.dataobject.ClosedAreaDO; +import com.zcloud.primeport.persistence.dataobject.HkAccessRecordDO; +import com.zcloud.primeport.persistence.dataobject.HkVehicleAccessRecordDO; import com.alibaba.cola.dto.PageResponse; import com.jjb.saas.framework.repository.repo.BaseRepository; @@ -22,5 +24,13 @@ public interface ClosedAreaRepository extends BaseRepository { ClosedAreaCorpStatDO corpStat(Map params); List getCountByHgAuthArea(); + + List listPersonInOutRecord(Map params); + + List listVehicleInOutRecord(Map params); + + long countPersonInOutRecord(Map params); + + long countVehicleInOutRecord(Map params); } diff --git a/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/repository/impl/ClosedAreaRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/repository/impl/ClosedAreaRepositoryImpl.java index 4173b85..99866df 100644 --- a/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/repository/impl/ClosedAreaRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/repository/impl/ClosedAreaRepositoryImpl.java @@ -3,6 +3,8 @@ package com.zcloud.primeport.persistence.repository.impl; import com.zcloud.primeport.persistence.dataobject.ClosedAreaCountDO; import com.zcloud.primeport.persistence.dataobject.ClosedAreaCorpStatDO; import com.zcloud.primeport.persistence.dataobject.ClosedAreaDO; +import com.zcloud.primeport.persistence.dataobject.HkAccessRecordDO; +import com.zcloud.primeport.persistence.dataobject.HkVehicleAccessRecordDO; import com.zcloud.primeport.persistence.mapper.ClosedAreaMapper; import com.zcloud.primeport.persistence.repository.ClosedAreaRepository; import com.alibaba.cola.dto.PageResponse; @@ -52,5 +54,25 @@ public class ClosedAreaRepositoryImpl extends BaseRepositoryImpl getCountByHgAuthArea() { return closedAreaMapper.getCountByHgAuthArea(); } + + @Override + public List listPersonInOutRecord(Map params) { + return closedAreaMapper.listPersonInOutRecord(params); + } + + @Override + public List listVehicleInOutRecord(Map params) { + return closedAreaMapper.listVehicleInOutRecord(params); + } + + @Override + public long countPersonInOutRecord(Map params) { + return closedAreaMapper.countPersonInOutRecord(params); + } + + @Override + public long countVehicleInOutRecord(Map params) { + return closedAreaMapper.countVehicleInOutRecord(params); + } } diff --git a/web-infrastructure/src/main/resources/mapper/ClosedAreaMapper.xml b/web-infrastructure/src/main/resources/mapper/ClosedAreaMapper.xml index 40c62c2..5630476 100644 --- a/web-infrastructure/src/main/resources/mapper/ClosedAreaMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/ClosedAreaMapper.xml @@ -119,5 +119,89 @@ + + + WITH RECURSIVE area_tree AS ( + SELECT id FROM closed_area WHERE id = #{params.closedAreaId} AND delete_enum = 'FALSE' + UNION ALL + SELECT ca.id FROM closed_area ca INNER JOIN area_tree at ON ca.parent_id = at.id WHERE ca.delete_enum = 'FALSE' + ) + SELECT har.* + FROM hk_access_record har + INNER JOIN mkmj_gate mg ON har.door_index_code = mg.hk_index_code AND mg.delete_enum = 'FALSE' + INNER JOIN mkmj m ON mg.mkmj_id = m.id AND m.delete_enum = 'FALSE' + INNER JOIN area_tree at ON m.closed_area_id = at.id + WHERE har.delete_enum = 'FALSE' + + AND har.person_name LIKE CONCAT('%', #{params.personName}, '%') + + + AND har.event_time >= CONCAT(#{params.startTime}, ' 00:00:00') + + + AND har.event_time <= CONCAT(#{params.endTime}, ' 23:59:59') + + + + + + + + + + WITH RECURSIVE area_tree AS ( + SELECT id FROM closed_area WHERE id = #{params.closedAreaId} AND delete_enum = 'FALSE' + UNION ALL + SELECT ca.id FROM closed_area ca INNER JOIN area_tree at ON ca.parent_id = at.id WHERE ca.delete_enum = 'FALSE' + ) + SELECT hvar.* + FROM hk_vehicle_access_record hvar + INNER JOIN mkmj_gate mg ON hvar.lane_index_code = mg.hk_index_code AND mg.delete_enum = 'FALSE' + INNER JOIN mkmj m ON mg.mkmj_id = m.id AND m.delete_enum = 'FALSE' + INNER JOIN area_tree at ON m.closed_area_id = at.id + WHERE hvar.delete_enum = 'FALSE' + + AND hvar.plate_no LIKE CONCAT('%', #{params.vehiclePlateNumber}, '%') + + + AND hvar.event_time >= CONCAT(#{params.arrivalStartTime}, ' 00:00:00') + + + AND hvar.event_time <= CONCAT(#{params.arrivalEndTime}, ' 23:59:59') + + + AND hvar.event_time >= CONCAT(#{params.departureStartTime}, ' 00:00:00') + + + AND hvar.event_time <= CONCAT(#{params.departureEndTime}, ' 23:59:59') + + + + + + +