feat(): 新增封闭区域人员车辆进出记录功能
parent
7e693dc8c3
commit
f2fa4dd82f
|
|
@ -11,6 +11,8 @@ import com.zcloud.primeport.dto.ClosedAreaCorpStatCmd;
|
||||||
import com.zcloud.primeport.dto.ClosedAreaCountCmd;
|
import com.zcloud.primeport.dto.ClosedAreaCountCmd;
|
||||||
import com.zcloud.primeport.dto.ClosedAreaPageQry;
|
import com.zcloud.primeport.dto.ClosedAreaPageQry;
|
||||||
import com.zcloud.primeport.dto.ClosedAreaUpdateCmd;
|
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.ClosedAreaCO;
|
||||||
import com.zcloud.primeport.dto.clientobject.ClosedAreaCorpStatCO;
|
import com.zcloud.primeport.dto.clientobject.ClosedAreaCorpStatCO;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
|
|
@ -73,6 +75,18 @@ public class ClosedAreaController {
|
||||||
return closedAreaService.listAllByJurisdictionalCorpId(id);
|
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("详情")
|
@ApiOperation("详情")
|
||||||
@GetMapping("/{id}")
|
@GetMapping("/{id}")
|
||||||
public SingleResponse<ClosedAreaCO> getInfoById(@PathVariable("id") Long id) {
|
public SingleResponse<ClosedAreaCO> getInfoById(@PathVariable("id") Long id) {
|
||||||
|
|
|
||||||
|
|
@ -14,13 +14,20 @@ import com.zcloud.primeport.dto.ClosedAreaCorpStatCmd;
|
||||||
import com.zcloud.primeport.dto.ClosedAreaCountCmd;
|
import com.zcloud.primeport.dto.ClosedAreaCountCmd;
|
||||||
import com.zcloud.primeport.dto.ClosedAreaPageQry;
|
import com.zcloud.primeport.dto.ClosedAreaPageQry;
|
||||||
import com.zcloud.primeport.dto.ClosedAreaUpdateCmd;
|
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.ClosedAreaCO;
|
||||||
import com.zcloud.primeport.dto.clientobject.ClosedAreaCorpStatCO;
|
import com.zcloud.primeport.dto.clientobject.ClosedAreaCorpStatCO;
|
||||||
import com.zcloud.primeport.dto.clientobject.ClosedAreaCountCO;
|
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 lombok.AllArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
|
@ -30,6 +37,7 @@ public class ClosedAreaServiceImpl implements ClosedAreaServiceI {
|
||||||
private final ClosedAreaRemoveExe closedAreaRemoveExe;
|
private final ClosedAreaRemoveExe closedAreaRemoveExe;
|
||||||
private final ClosedAreaQueryExe closedAreaQueryExe;
|
private final ClosedAreaQueryExe closedAreaQueryExe;
|
||||||
private final ClosedAreaCountExe closedAreaCountExe;
|
private final ClosedAreaCountExe closedAreaCountExe;
|
||||||
|
private final ClosedAreaRepository closedAreaRepository;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ClosedAreaCO queryById(Long id) {
|
public ClosedAreaCO queryById(Long id) {
|
||||||
|
|
@ -93,4 +101,52 @@ public class ClosedAreaServiceImpl implements ClosedAreaServiceI {
|
||||||
public MultiResponse<ClosedAreaCO> listAllByhgAuthArea(String hgAuthArea) {
|
public MultiResponse<ClosedAreaCO> listAllByhgAuthArea(String hgAuthArea) {
|
||||||
return closedAreaQueryExe.listAllByhgAuthArea(hgAuthArea);
|
return closedAreaQueryExe.listAllByhgAuthArea(hgAuthArea);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResponse personInOutPage(PersonInOutRecordQry qry) {
|
||||||
|
Map<String, Object> params = buildPersonInOutParams(qry);
|
||||||
|
List<HkAccessRecordDO> 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<String, Object> params = buildVehicleInOutParams(qry);
|
||||||
|
List<HkVehicleAccessRecordDO> list = closedAreaRepository.listVehicleInOutRecord(params);
|
||||||
|
long total = closedAreaRepository.countVehicleInOutRecord(params);
|
||||||
|
return PageResponse.of(list, (int) total, qry.getPageSize(), qry.getPageIndex());
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<String, Object> buildPersonInOutParams(PersonInOutRecordQry qry) {
|
||||||
|
Map<String, Object> 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<String, Object> buildVehicleInOutParams(VehicleInOutRecordQry qry) {
|
||||||
|
Map<String, Object> 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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,8 @@ import com.zcloud.primeport.dto.ClosedAreaCorpStatCmd;
|
||||||
import com.zcloud.primeport.dto.ClosedAreaCountCmd;
|
import com.zcloud.primeport.dto.ClosedAreaCountCmd;
|
||||||
import com.zcloud.primeport.dto.ClosedAreaPageQry;
|
import com.zcloud.primeport.dto.ClosedAreaPageQry;
|
||||||
import com.zcloud.primeport.dto.ClosedAreaUpdateCmd;
|
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.ClosedAreaCO;
|
||||||
import com.zcloud.primeport.dto.clientobject.ClosedAreaCorpStatCO;
|
import com.zcloud.primeport.dto.clientobject.ClosedAreaCorpStatCO;
|
||||||
import com.zcloud.primeport.dto.clientobject.ClosedAreaCountCO;
|
import com.zcloud.primeport.dto.clientobject.ClosedAreaCountCO;
|
||||||
|
|
@ -36,4 +38,8 @@ public interface ClosedAreaServiceI {
|
||||||
MultiResponse<ClosedAreaCO> listTree(ClosedAreaPageQry qry);
|
MultiResponse<ClosedAreaCO> listTree(ClosedAreaPageQry qry);
|
||||||
|
|
||||||
MultiResponse<ClosedAreaCO> listAllByhgAuthArea(String hgAuthArea);
|
MultiResponse<ClosedAreaCO> listAllByhgAuthArea(String hgAuthArea);
|
||||||
|
|
||||||
|
PageResponse personInOutPage(PersonInOutRecordQry qry);
|
||||||
|
|
||||||
|
PageResponse vehicleInOutPage(VehicleInOutRecordQry qry);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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<String> timeRange;
|
||||||
|
}
|
||||||
|
|
@ -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<String> vehicleArrivalTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "出场时间范围(格式:yyyy-MM-dd)", name = "vehicleDepartureTime")
|
||||||
|
private List<String> vehicleDepartureTime;
|
||||||
|
}
|
||||||
|
|
@ -2,6 +2,8 @@ package com.zcloud.primeport.persistence.dataobject;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
|
@ -16,65 +18,66 @@ import java.time.LocalDateTime;
|
||||||
@Data
|
@Data
|
||||||
@TableName("hk_access_record")
|
@TableName("hk_access_record")
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ApiModel("人员进出记录")
|
||||||
public class HkAccessRecordDO extends BaseDO {
|
public class HkAccessRecordDO extends BaseDO {
|
||||||
|
|
||||||
/** 海康事件ID,幂等键 */
|
@ApiModelProperty(value = "海康事件ID(幂等键)", name = "hkEventId")
|
||||||
private String hkEventId;
|
private String hkEventId;
|
||||||
|
|
||||||
/** 海康人员ID(personId) */
|
@ApiModelProperty(value = "海康人员ID", name = "personId")
|
||||||
private String personId;
|
private String personId;
|
||||||
|
|
||||||
/** 人员姓名快照 */
|
@ApiModelProperty(value = "人员姓名", name = "personName")
|
||||||
private String personName;
|
private String personName;
|
||||||
|
|
||||||
/** 证件号码(身份证) */
|
@ApiModelProperty(value = "证件号码(身份证)", name = "certificateNo")
|
||||||
private String certificateNo;
|
private String certificateNo;
|
||||||
|
|
||||||
/** 手机号 */
|
@ApiModelProperty(value = "手机号", name = "phoneNo")
|
||||||
private String phoneNo;
|
private String phoneNo;
|
||||||
|
|
||||||
/** 海康组织编码 */
|
@ApiModelProperty(value = "海康组织编码", name = "orgIndexCode")
|
||||||
private String orgIndexCode;
|
private String orgIndexCode;
|
||||||
|
|
||||||
/** 海康组织路径名称 */
|
@ApiModelProperty(value = "海康组织路径名称", name = "orgPathName")
|
||||||
private String orgPathName;
|
private String orgPathName;
|
||||||
|
|
||||||
/** 门禁点编码(indexCode) */
|
@ApiModelProperty(value = "门禁点编码", name = "doorIndexCode")
|
||||||
private String doorIndexCode;
|
private String doorIndexCode;
|
||||||
|
|
||||||
/** 门禁点名称 */
|
@ApiModelProperty(value = "门禁点名称", name = "doorName")
|
||||||
private String doorName;
|
private String doorName;
|
||||||
|
|
||||||
/** 门禁点所属区域编码 */
|
@ApiModelProperty(value = "门禁点所属区域编码", name = "doorRegionIndexCode")
|
||||||
private String doorRegionIndexCode;
|
private String doorRegionIndexCode;
|
||||||
|
|
||||||
/** 进出方向:1-进,2-出 */
|
@ApiModelProperty(value = "进出方向(1-进,2-出)", name = "enterOrExit", allowableValues = "1,2")
|
||||||
private Integer enterOrExit;
|
private Integer enterOrExit;
|
||||||
|
|
||||||
/** 开门结果:1-成功,0-失败 */
|
@ApiModelProperty(value = "开门结果(1-成功,0-失败)", name = "openResult", allowableValues = "0,1")
|
||||||
private Integer openResult;
|
private Integer openResult;
|
||||||
|
|
||||||
/** 开门方式 */
|
@ApiModelProperty(value = "开门方式", name = "openType")
|
||||||
private Integer openType;
|
private Integer openType;
|
||||||
|
|
||||||
/** 卡号 */
|
@ApiModelProperty(value = "卡号", name = "cardNo")
|
||||||
private String cardNo;
|
private String cardNo;
|
||||||
|
|
||||||
/** 事件发生时间(通行时间) */
|
@ApiModelProperty(value = "事件发生时间(通行时间)", name = "eventTime")
|
||||||
private LocalDateTime eventTime;
|
private LocalDateTime eventTime;
|
||||||
|
|
||||||
/** 记录在海康平台的入库时间 */
|
@ApiModelProperty(value = "海康平台入库时间", name = "hkCreateTime")
|
||||||
private LocalDateTime hkCreateTime;
|
private LocalDateTime hkCreateTime;
|
||||||
|
|
||||||
/** 通行抓拍图片地址 */
|
@ApiModelProperty(value = "通行抓拍图片地址", name = "recordImageUrl")
|
||||||
private String recordImageUrl;
|
private String recordImageUrl;
|
||||||
|
|
||||||
/** 数据来源:PULL-拉取,PUSH-推送 */
|
@ApiModelProperty(value = "数据来源(PULL-拉取,PUSH-推送)", name = "sourceType", allowableValues = "PULL,PUSH")
|
||||||
private String sourceType;
|
private String sourceType;
|
||||||
|
|
||||||
/** 海康原始事件JSON */
|
@ApiModelProperty(value = "海康原始事件JSON", name = "rawData")
|
||||||
private String rawData;
|
private String rawData;
|
||||||
|
|
||||||
/** 最近同步时间 */
|
@ApiModelProperty(value = "最近同步时间", name = "lastSyncTime")
|
||||||
private LocalDateTime lastSyncTime;
|
private LocalDateTime lastSyncTime;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@ package com.zcloud.primeport.persistence.dataobject;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
|
@ -16,59 +18,60 @@ import java.time.LocalDateTime;
|
||||||
@Data
|
@Data
|
||||||
@TableName("hk_vehicle_access_record")
|
@TableName("hk_vehicle_access_record")
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ApiModel("车辆进出记录")
|
||||||
public class HkVehicleAccessRecordDO extends BaseDO {
|
public class HkVehicleAccessRecordDO extends BaseDO {
|
||||||
|
|
||||||
/** 海康事件ID,幂等键 */
|
@ApiModelProperty(value = "海康事件ID(幂等键)", name = "hkEventId")
|
||||||
private String hkEventId;
|
private String hkEventId;
|
||||||
|
|
||||||
/** 车牌号 */
|
@ApiModelProperty(value = "车牌号", name = "plateNo")
|
||||||
private String plateNo;
|
private String plateNo;
|
||||||
|
|
||||||
/** 车牌颜色:0-蓝,1-黄,2-白,3-黑 */
|
@ApiModelProperty(value = "车牌颜色(0-蓝,1-黄,2-白,3-黑)", name = "plateColor", allowableValues = "0,1,2,3")
|
||||||
private Integer plateColor;
|
private Integer plateColor;
|
||||||
|
|
||||||
/** 车辆类型 */
|
@ApiModelProperty(value = "车辆类型", name = "carType")
|
||||||
private Integer carType;
|
private Integer carType;
|
||||||
|
|
||||||
/** 车辆类型名称 */
|
@ApiModelProperty(value = "车辆类型名称", name = "carTypeName")
|
||||||
private String carTypeName;
|
private String carTypeName;
|
||||||
|
|
||||||
/** 停车场系统编码 */
|
@ApiModelProperty(value = "停车场系统编码", name = "parkSyscode")
|
||||||
private String parkSyscode;
|
private String parkSyscode;
|
||||||
|
|
||||||
/** 停车场名称 */
|
@ApiModelProperty(value = "停车场名称", name = "parkName")
|
||||||
private String parkName;
|
private String parkName;
|
||||||
|
|
||||||
/** 通道编码(门禁点indexCode) */
|
@ApiModelProperty(value = "通道编码", name = "laneIndexCode")
|
||||||
private String laneIndexCode;
|
private String laneIndexCode;
|
||||||
|
|
||||||
/** 通道名称 */
|
@ApiModelProperty(value = "通道名称", name = "laneName")
|
||||||
private String laneName;
|
private String laneName;
|
||||||
|
|
||||||
/** 出入口编码 */
|
@ApiModelProperty(value = "出入口编码", name = "entranceIndexCode")
|
||||||
private String entranceIndexCode;
|
private String entranceIndexCode;
|
||||||
|
|
||||||
/** 出入口名称 */
|
@ApiModelProperty(value = "出入口名称", name = "entranceName")
|
||||||
private String entranceName;
|
private String entranceName;
|
||||||
|
|
||||||
/** 进出方向:1-进,2-出 */
|
@ApiModelProperty(value = "进出方向(1-进,2-出)", name = "enterOrExit", allowableValues = "1,2")
|
||||||
private Integer enterOrExit;
|
private Integer enterOrExit;
|
||||||
|
|
||||||
/** 事件发生时间(通行时间) */
|
@ApiModelProperty(value = "事件发生时间(通行时间)", name = "eventTime")
|
||||||
private LocalDateTime eventTime;
|
private LocalDateTime eventTime;
|
||||||
|
|
||||||
/** 记录在海康平台的入库时间 */
|
@ApiModelProperty(value = "海康平台入库时间", name = "hkCreateTime")
|
||||||
private LocalDateTime hkCreateTime;
|
private LocalDateTime hkCreateTime;
|
||||||
|
|
||||||
/** 通行抓拍图片地址 */
|
@ApiModelProperty(value = "通行抓拍图片地址", name = "recordImageUrl")
|
||||||
private String recordImageUrl;
|
private String recordImageUrl;
|
||||||
|
|
||||||
/** 数据来源:PULL-拉取,PUSH-推送 */
|
@ApiModelProperty(value = "数据来源(PULL-拉取,PUSH-推送)", name = "sourceType", allowableValues = "PULL,PUSH")
|
||||||
private String sourceType;
|
private String sourceType;
|
||||||
|
|
||||||
/** 海康原始事件JSON */
|
@ApiModelProperty(value = "海康原始事件JSON", name = "rawData")
|
||||||
private String rawData;
|
private String rawData;
|
||||||
|
|
||||||
/** 最近同步时间 */
|
@ApiModelProperty(value = "最近同步时间", name = "lastSyncTime")
|
||||||
private LocalDateTime lastSyncTime;
|
private LocalDateTime lastSyncTime;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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.ClosedAreaCountDO;
|
||||||
import com.zcloud.primeport.persistence.dataobject.ClosedAreaCorpStatDO;
|
import com.zcloud.primeport.persistence.dataobject.ClosedAreaCorpStatDO;
|
||||||
import com.zcloud.primeport.persistence.dataobject.ClosedAreaDO;
|
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 com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
@ -33,5 +35,13 @@ public interface ClosedAreaMapper extends BaseMapper<ClosedAreaDO> {
|
||||||
List<ClosedAreaDO> getCountByHgAuthArea();
|
List<ClosedAreaDO> getCountByHgAuthArea();
|
||||||
|
|
||||||
IPage<ClosedAreaDO> listPage(IPage<ClosedAreaDO> iPage, @Param("params") Map<String, Object> params);
|
IPage<ClosedAreaDO> listPage(IPage<ClosedAreaDO> iPage, @Param("params") Map<String, Object> params);
|
||||||
|
|
||||||
|
List<HkAccessRecordDO> listPersonInOutRecord(@Param("params") Map<String, Object> params);
|
||||||
|
|
||||||
|
List<HkVehicleAccessRecordDO> listVehicleInOutRecord(@Param("params") Map<String, Object> params);
|
||||||
|
|
||||||
|
long countPersonInOutRecord(@Param("params") Map<String, Object> params);
|
||||||
|
|
||||||
|
long countVehicleInOutRecord(@Param("params") Map<String, Object> params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ package com.zcloud.primeport.persistence.repository;
|
||||||
import com.zcloud.primeport.persistence.dataobject.ClosedAreaCountDO;
|
import com.zcloud.primeport.persistence.dataobject.ClosedAreaCountDO;
|
||||||
import com.zcloud.primeport.persistence.dataobject.ClosedAreaCorpStatDO;
|
import com.zcloud.primeport.persistence.dataobject.ClosedAreaCorpStatDO;
|
||||||
import com.zcloud.primeport.persistence.dataobject.ClosedAreaDO;
|
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.alibaba.cola.dto.PageResponse;
|
||||||
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||||
|
|
||||||
|
|
@ -22,5 +24,13 @@ public interface ClosedAreaRepository extends BaseRepository<ClosedAreaDO> {
|
||||||
ClosedAreaCorpStatDO corpStat(Map<String, Object> params);
|
ClosedAreaCorpStatDO corpStat(Map<String, Object> params);
|
||||||
|
|
||||||
List<ClosedAreaDO> getCountByHgAuthArea();
|
List<ClosedAreaDO> getCountByHgAuthArea();
|
||||||
|
|
||||||
|
List<HkAccessRecordDO> listPersonInOutRecord(Map<String, Object> params);
|
||||||
|
|
||||||
|
List<HkVehicleAccessRecordDO> listVehicleInOutRecord(Map<String, Object> params);
|
||||||
|
|
||||||
|
long countPersonInOutRecord(Map<String, Object> params);
|
||||||
|
|
||||||
|
long countVehicleInOutRecord(Map<String, Object> params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ package com.zcloud.primeport.persistence.repository.impl;
|
||||||
import com.zcloud.primeport.persistence.dataobject.ClosedAreaCountDO;
|
import com.zcloud.primeport.persistence.dataobject.ClosedAreaCountDO;
|
||||||
import com.zcloud.primeport.persistence.dataobject.ClosedAreaCorpStatDO;
|
import com.zcloud.primeport.persistence.dataobject.ClosedAreaCorpStatDO;
|
||||||
import com.zcloud.primeport.persistence.dataobject.ClosedAreaDO;
|
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.mapper.ClosedAreaMapper;
|
||||||
import com.zcloud.primeport.persistence.repository.ClosedAreaRepository;
|
import com.zcloud.primeport.persistence.repository.ClosedAreaRepository;
|
||||||
import com.alibaba.cola.dto.PageResponse;
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
|
|
@ -52,5 +54,25 @@ public class ClosedAreaRepositoryImpl extends BaseRepositoryImpl<ClosedAreaMappe
|
||||||
public List<ClosedAreaDO> getCountByHgAuthArea() {
|
public List<ClosedAreaDO> getCountByHgAuthArea() {
|
||||||
return closedAreaMapper.getCountByHgAuthArea();
|
return closedAreaMapper.getCountByHgAuthArea();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<HkAccessRecordDO> listPersonInOutRecord(Map<String, Object> params) {
|
||||||
|
return closedAreaMapper.listPersonInOutRecord(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<HkVehicleAccessRecordDO> listVehicleInOutRecord(Map<String, Object> params) {
|
||||||
|
return closedAreaMapper.listVehicleInOutRecord(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long countPersonInOutRecord(Map<String, Object> params) {
|
||||||
|
return closedAreaMapper.countPersonInOutRecord(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long countVehicleInOutRecord(Map<String, Object> params) {
|
||||||
|
return closedAreaMapper.countVehicleInOutRecord(params);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -119,5 +119,89 @@
|
||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<!-- 封闭区域人员进出记录(含子区域递归查询) -->
|
||||||
|
<sql id="personInOutBaseQuery">
|
||||||
|
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'
|
||||||
|
<if test="params.personName != null and params.personName != ''">
|
||||||
|
AND har.person_name LIKE CONCAT('%', #{params.personName}, '%')
|
||||||
|
</if>
|
||||||
|
<if test="params.startTime != null and params.startTime != ''">
|
||||||
|
AND har.event_time >= CONCAT(#{params.startTime}, ' 00:00:00')
|
||||||
|
</if>
|
||||||
|
<if test="params.endTime != null and params.endTime != ''">
|
||||||
|
AND har.event_time <= CONCAT(#{params.endTime}, ' 23:59:59')
|
||||||
|
</if>
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="listPersonInOutRecord" resultType="com.zcloud.primeport.persistence.dataobject.HkAccessRecordDO">
|
||||||
|
<include refid="personInOutBaseQuery"/>
|
||||||
|
ORDER BY har.event_time DESC
|
||||||
|
<if test="params.pageSize != null">
|
||||||
|
LIMIT #{params.offset}, #{params.pageSize}
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="countPersonInOutRecord" resultType="long">
|
||||||
|
SELECT COUNT(1)
|
||||||
|
FROM (
|
||||||
|
<include refid="personInOutBaseQuery"/>
|
||||||
|
) tmp
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- 封闭区域车辆进出记录(含子区域递归查询) -->
|
||||||
|
<sql id="vehicleInOutBaseQuery">
|
||||||
|
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'
|
||||||
|
<if test="params.vehiclePlateNumber != null and params.vehiclePlateNumber != ''">
|
||||||
|
AND hvar.plate_no LIKE CONCAT('%', #{params.vehiclePlateNumber}, '%')
|
||||||
|
</if>
|
||||||
|
<if test="params.arrivalStartTime != null and params.arrivalStartTime != ''">
|
||||||
|
AND hvar.event_time >= CONCAT(#{params.arrivalStartTime}, ' 00:00:00')
|
||||||
|
</if>
|
||||||
|
<if test="params.arrivalEndTime != null and params.arrivalEndTime != ''">
|
||||||
|
AND hvar.event_time <= CONCAT(#{params.arrivalEndTime}, ' 23:59:59')
|
||||||
|
</if>
|
||||||
|
<if test="params.departureStartTime != null and params.departureStartTime != ''">
|
||||||
|
AND hvar.event_time >= CONCAT(#{params.departureStartTime}, ' 00:00:00')
|
||||||
|
</if>
|
||||||
|
<if test="params.departureEndTime != null and params.departureEndTime != ''">
|
||||||
|
AND hvar.event_time <= CONCAT(#{params.departureEndTime}, ' 23:59:59')
|
||||||
|
</if>
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="listVehicleInOutRecord" resultType="com.zcloud.primeport.persistence.dataobject.HkVehicleAccessRecordDO">
|
||||||
|
<include refid="vehicleInOutBaseQuery"/>
|
||||||
|
ORDER BY hvar.event_time DESC
|
||||||
|
<if test="params.pageSize != null">
|
||||||
|
LIMIT #{params.offset}, #{params.pageSize}
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="countVehicleInOutRecord" resultType="long">
|
||||||
|
SELECT COUNT(1)
|
||||||
|
FROM (
|
||||||
|
<include refid="vehicleInOutBaseQuery"/>
|
||||||
|
) tmp
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue