人员车辆出入记录查询

dev
zhangxiongfeng 2026-08-12 15:07:51 +08:00
parent 55f4b32ef1
commit e5a92b048f
13 changed files with 337 additions and 17 deletions

View File

@ -11,6 +11,7 @@ import com.zcloud.primeport.api.VehicleApplyServiceI;
import com.zcloud.primeport.domain.model.VehicleApplyE; import com.zcloud.primeport.domain.model.VehicleApplyE;
import com.zcloud.primeport.dto.*; import com.zcloud.primeport.dto.*;
import com.zcloud.primeport.dto.clientobject.FgsVehicleCountCo; import com.zcloud.primeport.dto.clientobject.FgsVehicleCountCo;
import com.zcloud.primeport.dto.clientobject.VehicleAccessRecordCO;
import com.zcloud.primeport.dto.clientobject.VehicleApplyCO; import com.zcloud.primeport.dto.clientobject.VehicleApplyCO;
import com.zcloud.primeport.dto.clientobject.VehicleAuditCO; import com.zcloud.primeport.dto.clientobject.VehicleAuditCO;
import com.zcloud.primeport.dto.clientobject.XgfPersonApplyCO; import com.zcloud.primeport.dto.clientobject.XgfPersonApplyCO;
@ -70,6 +71,12 @@ public class VehicleApplyController {
return vehicleApplyService.listPage(qry); return vehicleApplyService.listPage(qry);
} }
@ApiOperation("车辆进出记录分页列表")
@PostMapping("/vehicleAccessRecordList")
public PageResponse<VehicleAccessRecordCO> vehicleAccessRecordList(@Validated @RequestBody VehicleAccessRecordPageQry qry) {
return vehicleApplyService.vehicleAccessRecordListPage(qry);
}
@ApiOperation("股份、相关方、临时车辆审批-详情") @ApiOperation("股份、相关方、临时车辆审批-详情")
@GetMapping("/{id}") @GetMapping("/{id}")
public SingleResponse<VehicleApplyCO> getInfoById(@PathVariable("id") Long id) { public SingleResponse<VehicleApplyCO> getInfoById(@PathVariable("id") Long id) {
@ -124,5 +131,7 @@ public class VehicleApplyController {
vehicleApplyService.xgfCarAuthorization(cmd); vehicleApplyService.xgfCarAuthorization(cmd);
return Response.buildSuccess(); return Response.buildSuccess();
} }
}
}

View File

@ -1,9 +1,12 @@
package com.zcloud.primeport.command.convertor; package com.zcloud.primeport.command.convertor;
import com.zcloud.primeport.dto.clientobject.MkmjSwipeCardRecordCO; import com.zcloud.primeport.dto.clientobject.MkmjSwipeCardRecordCO;
import com.zcloud.primeport.persistence.dataobject.DaHuaAccessRecordDO;
import com.zcloud.primeport.persistence.dataobject.MkmjSwipeCardRecordDO; import com.zcloud.primeport.persistence.dataobject.MkmjSwipeCardRecordDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import java.time.format.DateTimeFormatter;
import java.util.List; import java.util.List;
@ -13,7 +16,7 @@ import java.util.List;
* @Author dearLin * @Author dearLin
* @Date 2026-04-22 17:04:00 * @Date 2026-04-22 17:04:00
*/ */
@Mapper(componentModel = "spring") @Mapper(componentModel = "spring", imports = {DateTimeFormatter.class})
public interface MkmjSwipeCardRecordCoConvertor { public interface MkmjSwipeCardRecordCoConvertor {
/** /**
* @param mkmjSwipeCardRecordDOs * @param mkmjSwipeCardRecordDOs
@ -22,5 +25,29 @@ public interface MkmjSwipeCardRecordCoConvertor {
List<MkmjSwipeCardRecordCO> converDOsToCOs(List<MkmjSwipeCardRecordDO> mkmjSwipeCardRecordDOs); List<MkmjSwipeCardRecordCO> converDOsToCOs(List<MkmjSwipeCardRecordDO> mkmjSwipeCardRecordDOs);
MkmjSwipeCardRecordCO converDOToCO(MkmjSwipeCardRecordDO mkmjSwipeCardRecordDO); MkmjSwipeCardRecordCO converDOToCO(MkmjSwipeCardRecordDO mkmjSwipeCardRecordDO);
}
List<MkmjSwipeCardRecordCO> converDaHuaDOsToCOs(List<DaHuaAccessRecordDO> dahuaAccessRecordDOs);
@Mapping(target = "swingTime", expression = "java(source.getSwingTime() != null ? source.getSwingTime().format(DateTimeFormatter.ofPattern(\"yyyy-MM-dd HH:mm:ss\")) : null)")
@Mapping(target = "channelName", source = "channelName")
@Mapping(target = "deptName", source = "dahuaDepartmentName")
@Mapping(target = "acsChannelCode", source = "channelCode")
@Mapping(target = "acsChannelName", source = "channelName")
@Mapping(target = "deviceName", source = "deviceName")
@Mapping(target = "deviceCode", source = "deviceCode")
@Mapping(target = "personCode", source = "personCode")
@Mapping(target = "personName", source = "personName")
@Mapping(target = "personId", source = "personId")
@Mapping(target = "paperNumber", source = "paperNumber")
@Mapping(target = "cardNumber", source = "cardNumber")
@Mapping(target = "cardType", source = "cardType")
@Mapping(target = "cardStatus", source = "cardStatus")
@Mapping(target = "maskState", source = "maskState")
@Mapping(target = "openResult", source = "openResult")
@Mapping(target = "recordImage1", source = "recordImageUrl")
@Mapping(target = "id", source = "id")
@Mapping(target = "orgName", source = "dahuaDepartmentName")
@Mapping(target = "deptId", source = "dahuaDepartmentId")
@Mapping(target = "extendId", source = "mkmjId")
MkmjSwipeCardRecordCO converDaHuaDOToCO(DaHuaAccessRecordDO source);
}

View File

@ -0,0 +1,16 @@
package com.zcloud.primeport.command.convertor;
import com.zcloud.primeport.dto.clientobject.VehicleAccessRecordCO;
import com.zcloud.primeport.persistence.dataobject.DaHuaVehicleAccessRecordDO;
import org.mapstruct.Mapper;
import java.util.List;
@Mapper(componentModel = "spring")
public interface VehicleAccessRecordCoConvertor {
List<VehicleAccessRecordCO> converDOsToCOs(List<DaHuaVehicleAccessRecordDO> vehicleAccessRecordDOs);
VehicleAccessRecordCO converDOToCO(DaHuaVehicleAccessRecordDO vehicleAccessRecordDO);
}

View File

@ -3,8 +3,8 @@ package com.zcloud.primeport.command.query;
import com.zcloud.primeport.command.convertor.MkmjSwipeCardRecordCoConvertor; import com.zcloud.primeport.command.convertor.MkmjSwipeCardRecordCoConvertor;
import com.zcloud.primeport.dto.MkmjSwipeCardRecordPageQry; import com.zcloud.primeport.dto.MkmjSwipeCardRecordPageQry;
import com.zcloud.primeport.dto.clientobject.MkmjSwipeCardRecordCO; import com.zcloud.primeport.dto.clientobject.MkmjSwipeCardRecordCO;
import com.zcloud.primeport.persistence.dataobject.MkmjSwipeCardRecordDO; import com.zcloud.primeport.persistence.dataobject.DaHuaAccessRecordDO;
import com.zcloud.primeport.persistence.repository.MkmjSwipeCardRecordRepository; import com.zcloud.primeport.persistence.repository.DaHuaAccessRecordRepository;
import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -23,7 +23,7 @@ import java.util.Map;
@Component @Component
@AllArgsConstructor @AllArgsConstructor
public class MkmjSwipeCardRecordQueryExe { public class MkmjSwipeCardRecordQueryExe {
private final MkmjSwipeCardRecordRepository mkmjSwipeCardRecordRepository; private final DaHuaAccessRecordRepository daHuaAccessRecordRepository;
private final MkmjSwipeCardRecordCoConvertor mkmjSwipeCardRecordCoConvertor; private final MkmjSwipeCardRecordCoConvertor mkmjSwipeCardRecordCoConvertor;
/** /**
@ -33,7 +33,7 @@ public class MkmjSwipeCardRecordQueryExe {
* @return * @return
*/ */
public MkmjSwipeCardRecordCO queryById(Long id) { public MkmjSwipeCardRecordCO queryById(Long id) {
return mkmjSwipeCardRecordCoConvertor.converDOToCO(mkmjSwipeCardRecordRepository.getById(id)); return mkmjSwipeCardRecordCoConvertor.converDaHuaDOToCO(daHuaAccessRecordRepository.getById(id));
} }
/** /**
@ -44,9 +44,8 @@ public class MkmjSwipeCardRecordQueryExe {
*/ */
public PageResponse<MkmjSwipeCardRecordCO> execute(MkmjSwipeCardRecordPageQry mkmjSwipeCardRecordPageQry) { public PageResponse<MkmjSwipeCardRecordCO> execute(MkmjSwipeCardRecordPageQry mkmjSwipeCardRecordPageQry) {
Map<String, Object> params = PageQueryHelper.toHashMap(mkmjSwipeCardRecordPageQry); Map<String, Object> params = PageQueryHelper.toHashMap(mkmjSwipeCardRecordPageQry);
PageResponse<MkmjSwipeCardRecordDO> pageResponse = mkmjSwipeCardRecordRepository.listPage(params); PageResponse<DaHuaAccessRecordDO> pageResponse = daHuaAccessRecordRepository.swipeCardListPage(params);
List<MkmjSwipeCardRecordCO> examCenterCOS = mkmjSwipeCardRecordCoConvertor.converDOsToCOs(pageResponse.getData()); List<MkmjSwipeCardRecordCO> examCenterCOS = mkmjSwipeCardRecordCoConvertor.converDaHuaDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
} }
} }

View File

@ -6,15 +6,20 @@ import com.alibaba.cola.dto.SingleResponse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jjb.saas.framework.auth.utils.AuthContext; import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.zcloud.primeport.command.convertor.VehicleAccessRecordCoConvertor;
import com.zcloud.primeport.command.convertor.VehicleApplyCoConvertor; import com.zcloud.primeport.command.convertor.VehicleApplyCoConvertor;
import com.zcloud.primeport.dto.VehicleAccessRecordPageQry;
import com.zcloud.primeport.dto.VehicleApplyPageQry; import com.zcloud.primeport.dto.VehicleApplyPageQry;
import com.zcloud.primeport.dto.clientobject.AppCountCO; import com.zcloud.primeport.dto.clientobject.AppCountCO;
import com.zcloud.primeport.dto.clientobject.FgsVehicleCountCo; import com.zcloud.primeport.dto.clientobject.FgsVehicleCountCo;
import com.zcloud.primeport.dto.clientobject.VehicleAccessRecordCO;
import com.zcloud.primeport.dto.clientobject.VehicleApplyCO; import com.zcloud.primeport.dto.clientobject.VehicleApplyCO;
import com.zcloud.primeport.persistence.dataobject.AppCountDTO; import com.zcloud.primeport.persistence.dataobject.AppCountDTO;
import com.zcloud.primeport.persistence.dataobject.DaHuaVehicleAccessRecordDO;
import com.zcloud.primeport.persistence.dataobject.FgsVehicleCountDto; import com.zcloud.primeport.persistence.dataobject.FgsVehicleCountDto;
import com.zcloud.primeport.persistence.dataobject.VehicleApplyDO; import com.zcloud.primeport.persistence.dataobject.VehicleApplyDO;
import com.zcloud.primeport.persistence.dataobject.VehicleAuditDO; import com.zcloud.primeport.persistence.dataobject.VehicleAuditDO;
import com.zcloud.primeport.persistence.repository.DaHuaVehicleAccessRecordRepository;
import com.zcloud.primeport.persistence.repository.VehicleApplyRepository; import com.zcloud.primeport.persistence.repository.VehicleApplyRepository;
import com.zcloud.primeport.persistence.repository.VehicleAuditRepository; import com.zcloud.primeport.persistence.repository.VehicleAuditRepository;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -39,6 +44,8 @@ public class VehicleApplyQueryExe {
private final VehicleApplyRepository vehicleApplyRepository; private final VehicleApplyRepository vehicleApplyRepository;
private final VehicleAuditRepository vehicleAuditRepository; private final VehicleAuditRepository vehicleAuditRepository;
private final VehicleApplyCoConvertor vehicleApplyCoConvertor; private final VehicleApplyCoConvertor vehicleApplyCoConvertor;
private final DaHuaVehicleAccessRecordRepository daHuaVehicleAccessRecordRepository;
private final VehicleAccessRecordCoConvertor vehicleAccessRecordCoConvertor;
/** /**
* *
@ -103,5 +110,11 @@ public class VehicleApplyQueryExe {
List<AppCountDTO> appCountDTO = vehicleApplyRepository.getAppCount(parmas); List<AppCountDTO> appCountDTO = vehicleApplyRepository.getAppCount(parmas);
return MultiResponse.of(vehicleApplyCoConvertor.converAppCountDTOsToAppCountCOs(appCountDTO)); return MultiResponse.of(vehicleApplyCoConvertor.converAppCountDTOsToAppCountCOs(appCountDTO));
} }
}
public PageResponse<VehicleAccessRecordCO> vehicleAccessRecordListPage(VehicleAccessRecordPageQry qry) {
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
PageResponse<DaHuaVehicleAccessRecordDO> pageResponse = daHuaVehicleAccessRecordRepository.vehicleAccessRecordListPage(params);
List<VehicleAccessRecordCO> cos = vehicleAccessRecordCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(cos, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
}

View File

@ -17,6 +17,7 @@ import com.zcloud.gbscommon.dahua.cmd.DaHuaCarAddCmd;
import com.zcloud.primeport.dto.*; import com.zcloud.primeport.dto.*;
import com.zcloud.primeport.dto.clientobject.AppCountCO; import com.zcloud.primeport.dto.clientobject.AppCountCO;
import com.zcloud.primeport.dto.clientobject.FgsVehicleCountCo; import com.zcloud.primeport.dto.clientobject.FgsVehicleCountCo;
import com.zcloud.primeport.dto.clientobject.VehicleAccessRecordCO;
import com.zcloud.primeport.dto.clientobject.VehicleApplyCO; import com.zcloud.primeport.dto.clientobject.VehicleApplyCO;
import com.zcloud.primeport.dto.clientobject.VehicleAuditCO; import com.zcloud.primeport.dto.clientobject.VehicleAuditCO;
import com.zcloud.primeport.persistence.dataobject.VehicleApplyDO; import com.zcloud.primeport.persistence.dataobject.VehicleApplyDO;
@ -190,4 +191,9 @@ public class VehicleApplyServiceImpl implements VehicleApplyServiceI {
public MultiResponse<AppCountCO> getAppCount() { public MultiResponse<AppCountCO> getAppCount() {
return vehicleApplyQueryExe.getAppCount(); return vehicleApplyQueryExe.getAppCount();
} }
@Override
public PageResponse<VehicleAccessRecordCO> vehicleAccessRecordListPage(VehicleAccessRecordPageQry qry) {
return vehicleApplyQueryExe.vehicleAccessRecordListPage(qry);
}
} }

View File

@ -7,6 +7,7 @@ import com.zcloud.primeport.domain.model.VehicleApplyE;
import com.zcloud.primeport.dto.*; import com.zcloud.primeport.dto.*;
import com.zcloud.primeport.dto.clientobject.AppCountCO; import com.zcloud.primeport.dto.clientobject.AppCountCO;
import com.zcloud.primeport.dto.clientobject.FgsVehicleCountCo; import com.zcloud.primeport.dto.clientobject.FgsVehicleCountCo;
import com.zcloud.primeport.dto.clientobject.VehicleAccessRecordCO;
import com.zcloud.primeport.dto.clientobject.VehicleApplyCO; import com.zcloud.primeport.dto.clientobject.VehicleApplyCO;
import com.zcloud.primeport.dto.clientobject.VehicleAuditCO; import com.zcloud.primeport.dto.clientobject.VehicleAuditCO;
@ -50,5 +51,6 @@ public interface VehicleApplyServiceI {
Map<String, Object> checkLicenceNoBlack(String licenceNo); Map<String, Object> checkLicenceNoBlack(String licenceNo);
MultiResponse<AppCountCO> getAppCount(); MultiResponse<AppCountCO> getAppCount();
}
PageResponse<VehicleAccessRecordCO> vehicleAccessRecordListPage(VehicleAccessRecordPageQry qry);
}

View File

@ -0,0 +1,35 @@
package com.zcloud.primeport.dto;
import com.alibaba.cola.dto.PageQuery;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.List;
@Data
public class VehicleAccessRecordPageQry extends PageQuery {
@ApiModelProperty(value = "车牌号", name = "vehiclePlateNumber", required = true)
@NotBlank(message = "车牌号不能为空")
private String vehiclePlateNumber;
@ApiModelProperty(value = "进港时间范围数组 [开始日期, 结束日期],对应 enter_time", name = "time")
private List<String> time;
@ApiModelProperty(value = "出场时间范围数组 [开始日期, 结束日期],对应 exit_time", name = "vehicleDepartureTime")
private List<String> vehicleDepartureTime;
@ApiModelProperty(value = "进场开始时间 yyyy-MM-dd HH:mm:ss", name = "startVehicleArrivalTime")
private String startVehicleArrivalTime;
@ApiModelProperty(value = "进场结束时间 yyyy-MM-dd HH:mm:ss", name = "endVehicleArrivalTime")
private String endVehicleArrivalTime;
@ApiModelProperty(value = "出场开始时间 yyyy-MM-dd HH:mm:ss", name = "startVehicleDepartureTime")
private String startVehicleDepartureTime;
@ApiModelProperty(value = "出场结束时间 yyyy-MM-dd HH:mm:ss", name = "endVehicleDepartureTime")
private String endVehicleDepartureTime;
}

View File

@ -0,0 +1,76 @@
package com.zcloud.primeport.dto.clientobject;
import com.alibaba.cola.dto.ClientObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class VehicleAccessRecordCO extends ClientObject {
private Long id;
@ApiModelProperty(value = "大华访问记录ID")
private String dahuaAccessId;
@ApiModelProperty(value = "企业ID")
private Long corpId;
@ApiModelProperty(value = "企业名称")
private String corpName;
@ApiModelProperty(value = "港区 1东港2西港")
private Integer portArea;
@ApiModelProperty(value = "大华部门ID")
private Long dahuaDepartmentId;
@ApiModelProperty(value = "大华部门名称")
private String dahuaDepartmentName;
@ApiModelProperty(value = "停车场编码")
private String parkingLotCode;
@ApiModelProperty(value = "停车场名称")
private String parkingLotName;
@ApiModelProperty(value = "车辆类型")
private Integer carType;
@ApiModelProperty(value = "车辆类型名称")
private String carTypeName;
@ApiModelProperty(value = "车牌号(进场)")
private String carNum;
@ApiModelProperty(value = "车牌号(出场)")
private String exitCarNum;
@ApiModelProperty(value = "进场通道编码")
private String enterSluiceChannelCode;
@ApiModelProperty(value = "进场通道名称")
private String enterSluiceChannelName;
@ApiModelProperty(value = "进场时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime enterTime;
@ApiModelProperty(value = "进场图片")
private String enterImageUrl;
@ApiModelProperty(value = "出场通道编码")
private String exitSluiceChannelCode;
@ApiModelProperty(value = "出场通道名称")
private String exitSluiceChannelName;
@ApiModelProperty(value = "出场时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime exitTime;
@ApiModelProperty(value = "出场图片")
private String exitImageUrl;
}

View File

@ -16,4 +16,6 @@ public interface DaHuaAccessRecordRepository extends BaseRepository<DaHuaAccessR
DashboardAccessStatDO countDashboardRecord(Map<String, Object> params); DashboardAccessStatDO countDashboardRecord(Map<String, Object> params);
PageResponse<DashboardAccessRecordDO> pageDashboardRecord(Map<String, Object> params); PageResponse<DashboardAccessRecordDO> pageDashboardRecord(Map<String, Object> params);
PageResponse<DaHuaAccessRecordDO> swipeCardListPage(Map<String, Object> params);
} }

View File

@ -1,9 +1,11 @@
package com.zcloud.primeport.persistence.repository; package com.zcloud.primeport.persistence.repository;
import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.repo.BaseRepository; import com.jjb.saas.framework.repository.repo.BaseRepository;
import com.zcloud.primeport.persistence.dataobject.DaHuaVehicleAccessRecordDO; import com.zcloud.primeport.persistence.dataobject.DaHuaVehicleAccessRecordDO;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Map;
public interface DaHuaVehicleAccessRecordRepository extends BaseRepository<DaHuaVehicleAccessRecordDO> { public interface DaHuaVehicleAccessRecordRepository extends BaseRepository<DaHuaVehicleAccessRecordDO> {
@ -12,4 +14,6 @@ public interface DaHuaVehicleAccessRecordRepository extends BaseRepository<DaHua
void saveSyncCheckpoint(LocalDateTime checkpointTime); void saveSyncCheckpoint(LocalDateTime checkpointTime);
void upsert(DaHuaVehicleAccessRecordDO record); void upsert(DaHuaVehicleAccessRecordDO record);
PageResponse<DaHuaVehicleAccessRecordDO> vehicleAccessRecordListPage(Map<String, Object> params);
} }

View File

@ -1,18 +1,23 @@
package com.zcloud.primeport.persistence.repository.impl; package com.zcloud.primeport.persistence.repository.impl;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jjb.saas.framework.repository.common.PageHelper; import com.jjb.saas.framework.repository.common.PageHelper;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import com.zcloud.gbscommon.utils.Query;
import com.zcloud.primeport.persistence.dataobject.DaHuaAccessRecordDO; import com.zcloud.primeport.persistence.dataobject.DaHuaAccessRecordDO;
import com.zcloud.primeport.persistence.dataobject.DashboardAccessRecordDO; import com.zcloud.primeport.persistence.dataobject.DashboardAccessRecordDO;
import com.zcloud.primeport.persistence.dataobject.DashboardAccessStatDO; import com.zcloud.primeport.persistence.dataobject.DashboardAccessStatDO;
import com.zcloud.primeport.persistence.mapper.DaHuaAccessRecordMapper; import com.zcloud.primeport.persistence.mapper.DaHuaAccessRecordMapper;
import com.zcloud.primeport.persistence.repository.DaHuaAccessRecordRepository; import com.zcloud.primeport.persistence.repository.DaHuaAccessRecordRepository;
import jodd.util.Base64;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import org.springframework.util.StringUtils;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Map; import java.util.Map;
@Repository @Repository
@ -39,4 +44,33 @@ public class DaHuaAccessRecordRepositoryImpl
IPage<DashboardAccessRecordDO> result = baseMapper.pageDashboardRecord(page, params); IPage<DashboardAccessRecordDO> result = baseMapper.pageDashboardRecord(page, params);
return PageHelper.pageToResponse(result, result.getRecords()); return PageHelper.pageToResponse(result, result.getRecords());
} }
@Override
public PageResponse<DaHuaAccessRecordDO> swipeCardListPage(Map<String, Object> params) {
IPage<DaHuaAccessRecordDO> iPage = new Query<DaHuaAccessRecordDO>().getPage(params);
QueryWrapper<DaHuaAccessRecordDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("delete_enum", "false");
if (params.get("cardNo") != null && !StringUtils.isEmpty(params.get("cardNo").toString())) {
String cardNo = params.get("cardNo").toString();
try {
cardNo = Base64.decodeToString(cardNo);
} catch (Exception ignored) {
}
queryWrapper.eq("paper_number", cardNo);
}
if (params.get("likeDeviceName") != null && !StringUtils.isEmpty(params.get("likeDeviceName").toString())) {
queryWrapper.like("channel_name", params.get("likeDeviceName"));
}
if (params.get("swingTimeStart") != null && !StringUtils.isEmpty(params.get("swingTimeStart").toString())) {
String swingTimeStart = (String) params.get("swingTimeStart");
queryWrapper.ge("dahua_create_time", LocalDateTime.parse(swingTimeStart, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
}
if (params.get("swingTimeEnd") != null && !StringUtils.isEmpty(params.get("swingTimeEnd").toString())) {
String swingTimeEnd = (String) params.get("swingTimeEnd");
queryWrapper.le("dahua_create_time", LocalDateTime.parse(swingTimeEnd, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
}
queryWrapper.orderByDesc("dahua_create_time");
IPage<DaHuaAccessRecordDO> result = baseMapper.selectPage(iPage, queryWrapper);
return PageHelper.pageToResponse(result, result.getRecords());
}
} }

View File

@ -1,18 +1,31 @@
package com.zcloud.primeport.persistence.repository.impl; package com.zcloud.primeport.persistence.repository.impl;
import com.alibaba.cola.dto.PageResponse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.repository.common.PageHelper;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import com.zcloud.gbscommon.utils.Query;
import com.zcloud.primeport.persistence.dataobject.DaHuaVehicleAccessRecordDO; import com.zcloud.primeport.persistence.dataobject.DaHuaVehicleAccessRecordDO;
import com.zcloud.primeport.persistence.mapper.DaHuaVehicleAccessRecordMapper; import com.zcloud.primeport.persistence.mapper.DaHuaVehicleAccessRecordMapper;
import com.zcloud.primeport.persistence.repository.DaHuaVehicleAccessRecordRepository; import com.zcloud.primeport.persistence.repository.DaHuaVehicleAccessRecordRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import org.springframework.util.StringUtils;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Map;
@Repository @Repository
public class DaHuaVehicleAccessRecordRepositoryImpl public class DaHuaVehicleAccessRecordRepositoryImpl
extends BaseRepositoryImpl<DaHuaVehicleAccessRecordMapper, DaHuaVehicleAccessRecordDO> extends BaseRepositoryImpl<DaHuaVehicleAccessRecordMapper, DaHuaVehicleAccessRecordDO>
implements DaHuaVehicleAccessRecordRepository { implements DaHuaVehicleAccessRecordRepository {
private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
private static final DateTimeFormatter DATETIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
@Override @Override
public LocalDateTime findSyncCheckpoint() { public LocalDateTime findSyncCheckpoint() {
return baseMapper.findSyncCheckpoint(); return baseMapper.findSyncCheckpoint();
@ -27,4 +40,88 @@ public class DaHuaVehicleAccessRecordRepositoryImpl
public void upsert(DaHuaVehicleAccessRecordDO record) { public void upsert(DaHuaVehicleAccessRecordDO record) {
baseMapper.upsert(record); baseMapper.upsert(record);
} }
@Override
@SuppressWarnings("unchecked")
public PageResponse<DaHuaVehicleAccessRecordDO> vehicleAccessRecordListPage(Map<String, Object> params) {
IPage<DaHuaVehicleAccessRecordDO> iPage = new Query<DaHuaVehicleAccessRecordDO>().getPage(params);
QueryWrapper<DaHuaVehicleAccessRecordDO> queryWrapper = new QueryWrapper<>();
if (params.get("vehiclePlateNumber") != null && !StringUtils.isEmpty(params.get("vehiclePlateNumber").toString())) {
queryWrapper.eq("car_num", params.get("vehiclePlateNumber"));
}
String startArrival = null;
String endArrival = null;
String startDeparture = null;
String endDeparture = null;
if (params.get("startVehicleArrivalTime") != null && !StringUtils.isEmpty(params.get("startVehicleArrivalTime").toString())) {
startArrival = params.get("startVehicleArrivalTime").toString();
}
if (params.get("endVehicleArrivalTime") != null && !StringUtils.isEmpty(params.get("endVehicleArrivalTime").toString())) {
endArrival = params.get("endVehicleArrivalTime").toString();
}
if (params.get("startVehicleDepartureTime") != null && !StringUtils.isEmpty(params.get("startVehicleDepartureTime").toString())) {
startDeparture = params.get("startVehicleDepartureTime").toString();
}
if (params.get("endVehicleDepartureTime") != null && !StringUtils.isEmpty(params.get("endVehicleDepartureTime").toString())) {
endDeparture = params.get("endVehicleDepartureTime").toString();
}
if (params.get("time") != null) {
List<String> timeRange = (List<String>) params.get("time");
if (timeRange.size() >= 2) {
if (startArrival == null && !StringUtils.isEmpty(timeRange.get(0))) {
startArrival = timeRange.get(0) + " 00:00:00";
}
if (endArrival == null && !StringUtils.isEmpty(timeRange.get(1))) {
endArrival = timeRange.get(1) + " 23:59:59";
}
}
}
if (params.get("vehicleDepartureTime") != null) {
List<String> depRange = (List<String>) params.get("vehicleDepartureTime");
if (depRange.size() >= 2) {
if (startDeparture == null && !StringUtils.isEmpty(depRange.get(0))) {
startDeparture = depRange.get(0) + " 00:00:00";
}
if (endDeparture == null && !StringUtils.isEmpty(depRange.get(1))) {
endDeparture = depRange.get(1) + " 23:59:59";
}
}
}
final LocalDateTime sa = startArrival == null ? null : LocalDateTime.parse(startArrival, DATETIME_FORMATTER);
final LocalDateTime ea = endArrival == null ? null : LocalDateTime.parse(endArrival, DATETIME_FORMATTER);
final LocalDateTime sd = startDeparture == null ? null : LocalDateTime.parse(startDeparture, DATETIME_FORMATTER);
final LocalDateTime ed = endDeparture == null ? null : LocalDateTime.parse(endDeparture, DATETIME_FORMATTER);
boolean hasEnter = sa != null || ea != null;
boolean hasExit = sd != null || ed != null;
if (hasEnter && hasExit) {
queryWrapper.and(wrapper -> wrapper
.and(w -> {
if (sa != null) w.ge("enter_time", sa);
if (ea != null) w.le("enter_time", ea);
})
.or(w -> {
if (sd != null) w.ge("exit_time", sd);
if (ed != null) w.le("exit_time", ed);
})
);
} else if (hasEnter) {
if (sa != null) queryWrapper.ge("enter_time", sa);
if (ea != null) queryWrapper.le("enter_time", ea);
} else if (hasExit) {
if (sd != null) queryWrapper.ge("exit_time", sd);
if (ed != null) queryWrapper.le("exit_time", ed);
}
queryWrapper.orderByDesc("enter_time");
IPage<DaHuaVehicleAccessRecordDO> result = baseMapper.selectPage(iPage, queryWrapper);
return PageHelper.pageToResponse(result, result.getRecords());
}
} }