refactor(core):重构门禁系统相关模块

- 删除废弃的 MkmjGateLogController 控制器及相关命令类- 移除无用的 MkmjGateLogCO 和相关服务实现类- 更新 MkmjAreaCO、MkmjPassageCO 等客户端对象属性
- 新增视频数量和设备数量统计字段- 调整查询逻辑以支持关联数据统计展示-优化分页查询参数绑定及校验规则
- 添加上级区域名称等必要字段并强化校验约束- 引入 VideoCountE 和 GateCountE 模型用于统计数据- 升级 DTO 查询条件定义提升灵活性和可读性- 清理冗余代码和不必要的实体字段定义
pull/1/head
fangjiakai 2025-11-17 13:33:59 +08:00
parent d85019e43d
commit 2898db9554
61 changed files with 274 additions and 1016 deletions

View File

@ -1,82 +0,0 @@
package com.zcloud.primeport.web;
import com.zcloud.primeport.api.MkmjGateLogServiceI;
import com.zcloud.primeport.dto.MkmjGateLogAddCmd;
import com.zcloud.primeport.dto.MkmjGateLogPageQry;
import com.zcloud.primeport.dto.MkmjGateLogUpdateCmd;
import com.zcloud.primeport.dto.clientobject.MkmjGateLogCO;
import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse;
import com.jjb.saas.framework.auth.model.SSOUser;
import com.jjb.saas.framework.auth.utils.AuthContext;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
/**
* web-adapter
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:43
*/
@Api(tags = "门口门禁闸机记录表")
@RequestMapping("/${application.gateway}/mkmjGateLog")
@RestController
@AllArgsConstructor
public class MkmjGateLogController {
private final MkmjGateLogServiceI mkmjGateLogService;
@ApiOperation("新增")
@PostMapping("/save")
public SingleResponse<MkmjGateLogCO> add(@Validated @RequestBody MkmjGateLogAddCmd cmd) {
SSOUser ssoUser = AuthContext.getCurrentUser();
return mkmjGateLogService.add(cmd);
}
@ApiOperation("分页")
@PostMapping("/list")
public PageResponse<MkmjGateLogCO> page(@RequestBody MkmjGateLogPageQry qry) {
return mkmjGateLogService.listPage(qry);
}
@ApiOperation("所有数据")
@GetMapping("/listAll")
public MultiResponse<MkmjGateLogCO> listAll() {
return MultiResponse.of(new ArrayList<MkmjGateLogCO>());
}
@ApiOperation("详情")
@GetMapping("/{id}")
public SingleResponse<MkmjGateLogCO> getInfoById(@PathVariable("id") Long id) {
return SingleResponse.of(mkmjGateLogService.queryById(id));
}
@ApiOperation("删除")
@DeleteMapping("/{id}")
public Response remove(@PathVariable("id") Long id) {
mkmjGateLogService.remove(id);
return SingleResponse.buildSuccess();
}
@ApiOperation("删除多个")
@DeleteMapping("/ids")
public Response removeBatch(@RequestParam Long[] ids) {
mkmjGateLogService.removeBatch(ids);
return SingleResponse.buildSuccess();
}
@ApiOperation("修改")
@PutMapping("/edit")
public SingleResponse edit(@Validated @RequestBody MkmjGateLogUpdateCmd mkmjGateLogUpdateCmd) {
mkmjGateLogService.edit(mkmjGateLogUpdateCmd);
return SingleResponse.buildSuccess();
}
}

View File

@ -1,40 +0,0 @@
package com.zcloud.primeport.command;
import com.zcloud.primeport.domain.gateway.MkmjGateLogGateway;
import com.zcloud.primeport.domain.model.MkmjGateLogE;
import com.zcloud.primeport.dto.MkmjGateLogAddCmd;
import com.alibaba.cola.exception.BizException;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
* web-app
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:43
*/
@Component
@AllArgsConstructor
public class MkmjGateLogAddExe {
private final MkmjGateLogGateway mkmjGateLogGateway;
@Transactional(rollbackFor = Exception.class)
public boolean execute(MkmjGateLogAddCmd cmd) {
MkmjGateLogE mkmjGateLogE = new MkmjGateLogE();
BeanUtils.copyProperties(cmd, mkmjGateLogE);
boolean res = false;
try {
res = mkmjGateLogGateway.add(mkmjGateLogE);
} catch (Exception e) {
throw new RuntimeException(e);
}
if (!res) {
throw new BizException("保存失败");
}
return true;
}
}

View File

@ -1,39 +0,0 @@
package com.zcloud.primeport.command;
import com.zcloud.primeport.domain.gateway.MkmjGateLogGateway;
import com.alibaba.cola.exception.BizException;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
* web-app
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:44
*/
@Component
@AllArgsConstructor
public class MkmjGateLogRemoveExe {
private final MkmjGateLogGateway mkmjGateLogGateway;
@Transactional(rollbackFor = Exception.class)
public boolean execute(Long id) {
boolean res = mkmjGateLogGateway.deletedMkmjGateLogById(id);
if (!res) {
throw new BizException("删除失败");
}
return true;
}
@Transactional(rollbackFor = Exception.class)
public boolean execute(Long[] ids) {
boolean res = mkmjGateLogGateway.deletedMkmjGateLogByIds(ids);
if (!res) {
throw new BizException("删除失败");
}
return true;
}
}

View File

@ -1,34 +0,0 @@
package com.zcloud.primeport.command;
import com.alibaba.cola.exception.BizException;
import com.zcloud.primeport.domain.gateway.MkmjGateLogGateway;
import com.zcloud.primeport.domain.model.MkmjGateLogE;
import com.zcloud.primeport.dto.MkmjGateLogUpdateCmd;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
* web-app
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:44
*/
@Component
@AllArgsConstructor
public class MkmjGateLogUpdateExe {
private final MkmjGateLogGateway mkmjGateLogGateway;
@Transactional(rollbackFor = Exception.class)
public void execute(MkmjGateLogUpdateCmd mkmjGateLogUpdateCmd) {
MkmjGateLogE mkmjGateLogE = new MkmjGateLogE();
BeanUtils.copyProperties(mkmjGateLogUpdateCmd, mkmjGateLogE);
boolean res = mkmjGateLogGateway.update(mkmjGateLogE);
if (!res) {
throw new BizException("修改失败");
}
}
}

View File

@ -1,26 +0,0 @@
package com.zcloud.primeport.command.convertor;
import com.zcloud.primeport.dto.clientobject.MkmjGateLogCO;
import com.zcloud.primeport.persistence.dataobject.MkmjGateLogDO;
import org.mapstruct.Mapper;
import java.util.List;
/**
* web-app
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:43
*/
@Mapper(componentModel = "spring")
public interface MkmjGateLogCoConvertor {
/**
* @param mkmjGateLogDOs
* @return
*/
List<MkmjGateLogCO> converDOsToCOs(List<MkmjGateLogDO> mkmjGateLogDOs);
MkmjGateLogCO converDOToCO(MkmjGateLogDO mkmjGateLogDO);
}

View File

@ -1,17 +1,22 @@
package com.zcloud.primeport.command.query;
import com.zcloud.primeport.command.convertor.MkmjAreaGateCoConvertor;
import com.zcloud.primeport.domain.model.VideoCountE;
import com.zcloud.primeport.dto.MkmjAreaGatePageQry;
import com.zcloud.primeport.dto.clientobject.MkmjAreaCO;
import com.zcloud.primeport.dto.clientobject.MkmjAreaGateCO;
import com.zcloud.primeport.persistence.dataobject.MkmjAreaGateDO;
import com.zcloud.primeport.persistence.repository.MkmjAreaGateRepository;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.alibaba.cola.dto.PageResponse;
import com.zcloud.primeport.persistence.repository.MkmjGateVideoRepository;
import com.zcloud.primeport.persistence.repository.MkmjPassageRepository;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@ -46,6 +51,7 @@ public class MkmjAreaGateQueryExe {
Map<String, Object> params = PageQueryHelper.toHashMap(mkmjAreaGatePageQry);
PageResponse<MkmjAreaGateDO> pageResponse = mkmjAreaGateRepository.listPage(params);
List<MkmjAreaGateCO> examCenterCOS = mkmjAreaGateCoConvertor.converDOsToCOs(pageResponse.getData());
List<String> ids = examCenterCOS.stream().map(MkmjAreaGateCO::getPassageId).collect(Collectors.toList());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
}

View File

@ -1,17 +1,20 @@
package com.zcloud.primeport.command.query;
import com.zcloud.primeport.command.convertor.MkmjAreaCoConvertor;
import com.zcloud.primeport.domain.model.VideoCountE;
import com.zcloud.primeport.dto.MkmjAreaPageQry;
import com.zcloud.primeport.dto.clientobject.MkmjAreaCO;
import com.zcloud.primeport.persistence.dataobject.MkmjAreaDO;
import com.zcloud.primeport.persistence.repository.MkmjAreaRepository;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.alibaba.cola.dto.PageResponse;
import com.zcloud.primeport.persistence.repository.MkmjGateVideoRepository;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@ -25,6 +28,7 @@ import java.util.Map;
public class MkmjAreaQueryExe {
private final MkmjAreaRepository mkmjAreaRepository;
private final MkmjAreaCoConvertor mkmjAreaCoConvertor;
private final MkmjGateVideoRepository mkmjGateVideoRepository;
/**
* id
@ -46,6 +50,15 @@ public class MkmjAreaQueryExe {
Map<String, Object> params = PageQueryHelper.toHashMap(mkmjAreaPageQry);
PageResponse<MkmjAreaDO> pageResponse = mkmjAreaRepository.listPage(params);
List<MkmjAreaCO> examCenterCOS = mkmjAreaCoConvertor.converDOsToCOs(pageResponse.getData());
List<String> ids = examCenterCOS.stream().map(MkmjAreaCO::getAreaId).collect(Collectors.toList());
List<VideoCountE> videoCounts = mkmjGateVideoRepository.listVideoCountByAreaId(ids);
examCenterCOS.forEach(examCenterCO -> {
videoCounts.forEach(videoCount -> {
if (examCenterCO.getAreaId().equals(videoCount.getAreaGateId())) {
examCenterCO.setVideoNum(videoCount.getCount());
}
});
});
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
}

View File

@ -1,52 +0,0 @@
package com.zcloud.primeport.command.query;
import com.zcloud.primeport.command.convertor.MkmjGateLogCoConvertor;
import com.zcloud.primeport.dto.MkmjGateLogPageQry;
import com.zcloud.primeport.dto.clientobject.MkmjGateLogCO;
import com.zcloud.primeport.persistence.dataobject.MkmjGateLogDO;
import com.zcloud.primeport.persistence.repository.MkmjGateLogRepository;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.alibaba.cola.dto.PageResponse;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
/**
* web-app
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:44
*/
@Component
@AllArgsConstructor
public class MkmjGateLogQueryExe {
private final MkmjGateLogRepository mkmjGateLogRepository;
private final MkmjGateLogCoConvertor mkmjGateLogCoConvertor;
/**
* id
*
* @param id
* @return
*/
public MkmjGateLogCO queryById(Long id) {
return mkmjGateLogCoConvertor.converDOToCO(mkmjGateLogRepository.getById(id));
}
/**
*
*
* @param mkmjGateLogPageQry
* @return
*/
public PageResponse<MkmjGateLogCO> execute(MkmjGateLogPageQry mkmjGateLogPageQry) {
Map<String, Object> params = PageQueryHelper.toHashMap(mkmjGateLogPageQry);
PageResponse<MkmjGateLogDO> pageResponse = mkmjGateLogRepository.listPage(params);
List<MkmjGateLogCO> examCenterCOS = mkmjGateLogCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
}

View File

@ -1,9 +1,11 @@
package com.zcloud.primeport.command.query;
import com.zcloud.primeport.command.convertor.MkmjPassageCoConvertor;
import com.zcloud.primeport.domain.model.GateCountE;
import com.zcloud.primeport.dto.MkmjPassagePageQry;
import com.zcloud.primeport.dto.clientobject.MkmjPassageCO;
import com.zcloud.primeport.persistence.dataobject.MkmjPassageDO;
import com.zcloud.primeport.persistence.repository.MkmjAreaGateRepository;
import com.zcloud.primeport.persistence.repository.MkmjPassageRepository;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.alibaba.cola.dto.PageResponse;
@ -12,6 +14,7 @@ import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@ -25,6 +28,7 @@ import java.util.Map;
public class MkmjPassageQueryExe {
private final MkmjPassageRepository mkmjPassageRepository;
private final MkmjPassageCoConvertor mkmjPassageCoConvertor;
private final MkmjAreaGateRepository mkmjAreaGateRepository;
/**
* id
@ -45,8 +49,17 @@ public class MkmjPassageQueryExe {
public PageResponse<MkmjPassageCO> execute(MkmjPassagePageQry mkmjPassagePageQry) {
Map<String, Object> params = PageQueryHelper.toHashMap(mkmjPassagePageQry);
PageResponse<MkmjPassageDO> pageResponse = mkmjPassageRepository.listPage(params);
List<MkmjPassageCO> examCenterCOS = mkmjPassageCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
List<MkmjPassageCO> passageCOS = mkmjPassageCoConvertor.converDOsToCOs(pageResponse.getData());
List<String> ids = passageCOS.stream().map(MkmjPassageCO::getPassageId).collect(Collectors.toList());
List<GateCountE> gateCounts = mkmjAreaGateRepository.listGateCountByPassageId(ids);
passageCOS.forEach(mkmjPassageCO -> {
gateCounts.forEach(gateCountE -> {
if (mkmjPassageCO.getAreaId().equals(gateCountE.getPassageId())) {
mkmjPassageCO.setGateNum(gateCountE.getCount());
}
});
});
return PageResponse.of(passageCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
}

View File

@ -1,65 +0,0 @@
package com.zcloud.primeport.service;
import com.zcloud.primeport.api.MkmjGateLogServiceI;
import com.zcloud.primeport.command.MkmjGateLogAddExe;
import com.zcloud.primeport.command.MkmjGateLogRemoveExe;
import com.zcloud.primeport.command.MkmjGateLogUpdateExe;
import com.zcloud.primeport.command.query.MkmjGateLogQueryExe;
import com.zcloud.primeport.dto.MkmjGateLogAddCmd;
import com.zcloud.primeport.dto.MkmjGateLogPageQry;
import com.zcloud.primeport.dto.MkmjGateLogUpdateCmd;
import com.zcloud.primeport.dto.clientobject.MkmjGateLogCO;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
/**
* web-app
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:44
*/
@Service
@AllArgsConstructor
public class MkmjGateLogServiceImpl implements MkmjGateLogServiceI {
private final MkmjGateLogAddExe mkmjGateLogAddExe;
private final MkmjGateLogUpdateExe mkmjGateLogUpdateExe;
private final MkmjGateLogRemoveExe mkmjGateLogRemoveExe;
private final MkmjGateLogQueryExe mkmjGateLogQueryExe;
@Override
public MkmjGateLogCO queryById(Long id) {
return mkmjGateLogQueryExe.queryById(id);
}
@Override
public PageResponse<MkmjGateLogCO> listPage(MkmjGateLogPageQry qry) {
return mkmjGateLogQueryExe.execute(qry);
}
@Override
public SingleResponse add(MkmjGateLogAddCmd cmd) {
mkmjGateLogAddExe.execute(cmd);
return SingleResponse.buildSuccess();
}
@Override
public void edit(MkmjGateLogUpdateCmd mkmjGateLogUpdateCmd) {
mkmjGateLogUpdateExe.execute(mkmjGateLogUpdateCmd);
}
@Override
public void remove(Long id) {
mkmjGateLogRemoveExe.execute(id);
}
@Override
public void removeBatch(Long[] ids) {
mkmjGateLogRemoveExe.execute(ids);
}
}

View File

@ -1,30 +0,0 @@
package com.zcloud.primeport.api;
import com.zcloud.primeport.dto.MkmjGateLogAddCmd;
import com.zcloud.primeport.dto.MkmjGateLogPageQry;
import com.zcloud.primeport.dto.MkmjGateLogUpdateCmd;
import com.zcloud.primeport.dto.clientobject.MkmjGateLogCO;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
/**
* web-client
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:44
*/
public interface MkmjGateLogServiceI {
MkmjGateLogCO queryById(Long id);
PageResponse<MkmjGateLogCO> listPage(MkmjGateLogPageQry qry);
SingleResponse<MkmjGateLogCO> add(MkmjGateLogAddCmd cmd);
void edit(MkmjGateLogUpdateCmd cmd);
void remove(Long id);
void removeBatch(Long[] ids);
}

View File

@ -7,13 +7,14 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* web-client
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:41
* @Date 2025-11-14 09:51:09
*/
@EqualsAndHashCode(callSuper = true)
@Data
@ -36,6 +37,10 @@ public class MkmjAreaAddCmd extends Command {
@NotEmpty(message = "上级区域id(当area_level=1时此字段为字典bianma)不能为空")
private String areaParentId;
@ApiModelProperty(value = "上级区域", name = "areaParentName", required = true)
@NotEmpty(message = "上级区域不能为空")
private String areaParentName;
@ApiModelProperty(value = "口门类型 1-人行 2-车行 3-综合", name = "areaType", required = true)
@NotNull(message = "口门类型 1-人行 2-车行 3-综合不能为空")
private Integer areaType;
@ -44,10 +49,6 @@ public class MkmjAreaAddCmd extends Command {
@NotNull(message = "区域状态 0-停用 1-正常 2-暂时关闭不能为空")
private Integer areaStatus;
@ApiModelProperty(value = "企业id", name = "corpinfoId", required = true)
@NotEmpty(message = "企业id不能为空")
private String corpinfoId;
@ApiModelProperty(value = "经度", name = "longitude", required = true)
@NotEmpty(message = "经度不能为空")
private String longitude;

View File

@ -7,13 +7,14 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* web-client
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:42
* @Date 2025-11-14 16:01:00
*/
@EqualsAndHashCode(callSuper = true)
@Data
@ -21,7 +22,6 @@ import javax.validation.constraints.*;
@AllArgsConstructor
public class MkmjAreaGateAddCmd extends Command {
@ApiModelProperty(value = "企业id", name = "corpinfoId", required = true)
@NotEmpty(message = "企业id不能为空")
private String corpinfoId;
@ApiModelProperty(value = "口门区域id", name = "areaId", required = true)
@ -33,7 +33,6 @@ public class MkmjAreaGateAddCmd extends Command {
private String passageId;
@ApiModelProperty(value = "闸机标识", name = "gateNumber", required = true)
@NotEmpty(message = "闸机标识不能为空")
private String gateNumber;
@ApiModelProperty(value = "闸机名称", name = "gateName", required = true)
@ -61,11 +60,9 @@ public class MkmjAreaGateAddCmd extends Command {
private String gatePosition;
@ApiModelProperty(value = "是否相邻区域 0否 1是", name = "isAdjacent", required = true)
@NotNull(message = "是否相邻区域 0否 1是不能为空")
private Integer isAdjacent;
@ApiModelProperty(value = "相邻区域id", name = "adjacentAreaId", required = true)
@NotEmpty(message = "相邻区域id不能为空")
private String adjacentAreaId;
@ApiModelProperty(value = "经度", name = "longitude", required = true)

View File

@ -24,6 +24,10 @@ public class MkmjAreaGatePageQry extends PageQuery {
* - `le`:
* - `ne`: SQL!=
*/
private String likeAreaGateId;
private String eqAreaId;
private String eqPassageId;
private String likeGateName;
private Integer eqGateStatus;
private Integer eqGateType;
}

View File

@ -7,13 +7,14 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* web-client
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:43
* @Date 2025-11-14 16:01:00
*/
@EqualsAndHashCode(callSuper = true)
@Data
@ -27,7 +28,6 @@ public class MkmjAreaGateUpdateCmd extends Command {
@NotEmpty(message = "业务主键id不能为空")
private String areaGateId;
@ApiModelProperty(value = "企业id", name = "corpinfoId", required = true)
@NotEmpty(message = "企业id不能为空")
private String corpinfoId;
@ApiModelProperty(value = "口门区域id", name = "areaId", required = true)
@NotEmpty(message = "口门区域id不能为空")
@ -36,7 +36,6 @@ public class MkmjAreaGateUpdateCmd extends Command {
@NotEmpty(message = "通道id不能为空")
private String passageId;
@ApiModelProperty(value = "闸机标识", name = "gateNumber", required = true)
@NotEmpty(message = "闸机标识不能为空")
private String gateNumber;
@ApiModelProperty(value = "闸机名称", name = "gateName", required = true)
@NotEmpty(message = "闸机名称不能为空")
@ -57,10 +56,8 @@ public class MkmjAreaGateUpdateCmd extends Command {
@NotEmpty(message = "闸机位置不能为空")
private String gatePosition;
@ApiModelProperty(value = "是否相邻区域 0否 1是", name = "isAdjacent", required = true)
@NotNull(message = "是否相邻区域 0否 1是不能为空")
private Integer isAdjacent;
@ApiModelProperty(value = "相邻区域id", name = "adjacentAreaId", required = true)
@NotEmpty(message = "相邻区域id不能为空")
private String adjacentAreaId;
@ApiModelProperty(value = "经度", name = "longitude", required = true)
@NotEmpty(message = "经度不能为空")

View File

@ -24,6 +24,10 @@ public class MkmjAreaPageQry extends PageQuery {
* - `le`:
* - `ne`: SQL!=
*/
private String likeAreaId;
private String likeAreaName;
private Integer eqAreaStatus;
private Integer eqAreaType;
private String eqAreaParentId;
private Integer eqAreaLevel;
}

View File

@ -7,13 +7,14 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* web-client
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:42
* @Date 2025-11-14 09:51:10
*/
@EqualsAndHashCode(callSuper = true)
@Data
@ -38,15 +39,15 @@ public class MkmjAreaUpdateCmd extends Command {
@ApiModelProperty(value = "上级区域id(当area_level=1时此字段为字典bianma)", name = "areaParentId", required = true)
@NotEmpty(message = "上级区域id(当area_level=1时此字段为字典bianma)不能为空")
private String areaParentId;
@ApiModelProperty(value = "上级区域", name = "areaParentName", required = true)
@NotEmpty(message = "上级区域不能为空")
private String areaParentName;
@ApiModelProperty(value = "口门类型 1-人行 2-车行 3-综合", name = "areaType", required = true)
@NotNull(message = "口门类型 1-人行 2-车行 3-综合不能为空")
private Integer areaType;
@ApiModelProperty(value = "区域状态 0-停用 1-正常 2-暂时关闭", name = "areaStatus", required = true)
@NotNull(message = "区域状态 0-停用 1-正常 2-暂时关闭不能为空")
private Integer areaStatus;
@ApiModelProperty(value = "企业id", name = "corpinfoId", required = true)
@NotEmpty(message = "企业id不能为空")
private String corpinfoId;
@ApiModelProperty(value = "经度", name = "longitude", required = true)
@NotEmpty(message = "经度不能为空")
private String longitude;

View File

@ -1,69 +0,0 @@
package com.zcloud.primeport.dto;
import com.alibaba.cola.dto.Command;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.*;
/**
* web-client
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:43
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class MkmjGateLogAddCmd extends Command {
@ApiModelProperty(value = "闸机id", name = "areaGateId", required = true)
@NotEmpty(message = "闸机id不能为空")
private String areaGateId;
@ApiModelProperty(value = "状态 0进 1出 2车辆进 3车辆出", name = "state", required = true)
@NotNull(message = "状态 0进 1出 2车辆进 3车辆出不能为空")
private Integer state;
@ApiModelProperty(value = "时间", name = "logTime", required = true)
@NotNull(message = "时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date logTime;
@ApiModelProperty(value = "人员id", name = "userId", required = true)
@NotEmpty(message = "人员id不能为空")
private String userId;
@ApiModelProperty(value = "人员姓名", name = "userName", required = true)
@NotEmpty(message = "人员姓名不能为空")
private String userName;
@ApiModelProperty(value = "闸机类型 1-入 2出", name = "gateType", required = true)
@NotNull(message = "闸机类型 1-入 2出不能为空")
private Integer gateType;
@ApiModelProperty(value = "车牌号(车辆进出时使用)", name = "ex1", required = true)
@NotEmpty(message = "车牌号(车辆进出时使用)不能为空")
private String ex1;
@ApiModelProperty(value = "备用字段2", name = "ex2", required = true)
@NotEmpty(message = "备用字段2不能为空")
private String ex2;
@ApiModelProperty(value = "备用字段3", name = "ex3", required = true)
@NotEmpty(message = "备用字段3不能为空")
private String ex3;
@ApiModelProperty(value = "备用字段4", name = "ex4", required = true)
@NotEmpty(message = "备用字段4不能为空")
private String ex4;
@ApiModelProperty(value = "备用字段5", name = "ex5", required = true)
@NotEmpty(message = "备用字段5不能为空")
private String ex5;
}

View File

@ -1,29 +0,0 @@
package com.zcloud.primeport.dto;
import com.alibaba.cola.dto.PageQuery;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* web-client
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:44
*/
@Data
public class MkmjGateLogPageQry extends PageQuery {
/**
* ,
* - `like`: SQLLIKE
* - `eq`: SQL=
* - `gt`:
* - `lt`:
* - `ge`:
* - `le`:
* - `ne`: SQL!=
*/
private String likeAreaLogId;
}

View File

@ -1,64 +0,0 @@
package com.zcloud.primeport.dto;
import com.alibaba.cola.dto.Command;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.*;
/**
* web-client
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:44
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class MkmjGateLogUpdateCmd extends Command {
@ApiModelProperty(value = "主键", name = "id", required = true)
@NotNull(message = "主键不能为空")
private Long id;
@ApiModelProperty(value = "业务主键id", name = "areaLogId", required = true)
@NotEmpty(message = "业务主键id不能为空")
private String areaLogId;
@ApiModelProperty(value = "闸机id", name = "areaGateId", required = true)
@NotEmpty(message = "闸机id不能为空")
private String areaGateId;
@ApiModelProperty(value = "状态 0进 1出 2车辆进 3车辆出", name = "state", required = true)
@NotNull(message = "状态 0进 1出 2车辆进 3车辆出不能为空")
private Integer state;
@ApiModelProperty(value = "时间", name = "logTime", required = true)
@NotNull(message = "时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date logTime;
@ApiModelProperty(value = "人员id", name = "userId", required = true)
@NotEmpty(message = "人员id不能为空")
private String userId;
@ApiModelProperty(value = "人员姓名", name = "userName", required = true)
@NotEmpty(message = "人员姓名不能为空")
private String userName;
@ApiModelProperty(value = "闸机类型 1-入 2出", name = "gateType", required = true)
@NotNull(message = "闸机类型 1-入 2出不能为空")
private Integer gateType;
@ApiModelProperty(value = "车牌号(车辆进出时使用)", name = "ex1", required = true)
@NotEmpty(message = "车牌号(车辆进出时使用)不能为空")
private String ex1;
@ApiModelProperty(value = "备用字段2", name = "ex2", required = true)
@NotEmpty(message = "备用字段2不能为空")
private String ex2;
@ApiModelProperty(value = "备用字段3", name = "ex3", required = true)
@NotEmpty(message = "备用字段3不能为空")
private String ex3;
@ApiModelProperty(value = "备用字段4", name = "ex4", required = true)
@NotEmpty(message = "备用字段4不能为空")
private String ex4;
@ApiModelProperty(value = "备用字段5", name = "ex5", required = true)
@NotEmpty(message = "备用字段5不能为空")
private String ex5;
}

View File

@ -7,13 +7,14 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* web-client
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:44
* @Date 2025-11-14 17:16:03
*/
@EqualsAndHashCode(callSuper = true)
@Data
@ -36,6 +37,10 @@ public class MkmjGateVideoAddCmd extends Command {
@NotEmpty(message = "摄像头id不能为空")
private String videoResourceId;
@ApiModelProperty(value = "摄像头名称", name = "videoResourceName", required = true)
@NotEmpty(message = "摄像头名称不能为空")
private String videoResourceName;
@ApiModelProperty(value = "摄像头类型1-移动 2-平台)", name = "videoType", required = true)
@NotNull(message = "摄像头类型1-移动 2-平台)不能为空")
private Integer videoType;

View File

@ -24,6 +24,8 @@ public class MkmjGateVideoPageQry extends PageQuery {
* - `le`:
* - `ne`: SQL!=
*/
private String likeGateVideoId;
private String eqAreaGateId;
private String likeVideoResourceName;
private Integer eqVideoType;
}

View File

@ -7,13 +7,14 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* web-client
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:44
* @Date 2025-11-14 17:16:03
*/
@EqualsAndHashCode(callSuper = true)
@Data
@ -35,6 +36,9 @@ public class MkmjGateVideoUpdateCmd extends Command {
@ApiModelProperty(value = "摄像头id", name = "videoResourceId", required = true)
@NotEmpty(message = "摄像头id不能为空")
private String videoResourceId;
@ApiModelProperty(value = "摄像头名称", name = "videoResourceName", required = true)
@NotEmpty(message = "摄像头名称不能为空")
private String videoResourceName;
@ApiModelProperty(value = "摄像头类型1-移动 2-平台)", name = "videoType", required = true)
@NotNull(message = "摄像头类型1-移动 2-平台)不能为空")
private Integer videoType;

View File

@ -36,10 +36,6 @@ public class MkmjPassageAddCmd extends Command {
@NotEmpty(message = "口门区域id不能为空")
private String areaId;
@ApiModelProperty(value = "企业id", name = "corpinfoId", required = true)
@NotEmpty(message = "企业id不能为空")
private String corpinfoId;
@ApiModelProperty(value = "经度", name = "longitude", required = true)
@NotEmpty(message = "经度不能为空")
private String longitude;

View File

@ -24,6 +24,9 @@ public class MkmjPassagePageQry extends PageQuery {
* - `le`:
* - `ne`: SQL!=
*/
private String likePassageId;
private String likePassageName;
private Integer eqPassageStatus;
private Integer eqPassageType;
private String eqAreaId;
}

View File

@ -38,9 +38,6 @@ public class MkmjPassageUpdateCmd extends Command {
@ApiModelProperty(value = "口门区域id", name = "areaId", required = true)
@NotEmpty(message = "口门区域id不能为空")
private String areaId;
@ApiModelProperty(value = "企业id", name = "corpinfoId", required = true)
@NotEmpty(message = "企业id不能为空")
private String corpinfoId;
@ApiModelProperty(value = "经度", name = "longitude", required = true)
@NotEmpty(message = "经度不能为空")
private String longitude;

View File

@ -0,0 +1,20 @@
package com.zcloud.primeport.dto;
import com.alibaba.cola.dto.Command;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/**
* @author fangjiakai
* @date 2025/11/17 9:41
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class StatisticsByAreaCmd extends Command {
String[] ids;
}

View File

@ -9,7 +9,7 @@ import lombok.Data;
* web-client
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:41
* @Date 2025-11-14 09:51:09
*/
@Data
public class MkmjAreaCO extends ClientObject {
@ -31,6 +31,9 @@ public class MkmjAreaCO extends ClientObject {
//上级区域id(当area_level=1时此字段为字典bianma)
@ApiModelProperty(value = "上级区域id(当area_level=1时此字段为字典bianma)")
private String areaParentId;
//上级区域
@ApiModelProperty(value = "上级区域")
private String areaParentName;
//口门类型 1-人行 2-车行 3-综合
@ApiModelProperty(value = "口门类型 1-人行 2-车行 3-综合")
private Integer areaType;
@ -46,39 +49,8 @@ public class MkmjAreaCO extends ClientObject {
//纬度
@ApiModelProperty(value = "纬度")
private String latitude;
//删除标识true false
@ApiModelProperty(value = "删除标识true false")
private String deleteEnum;
//备注
@ApiModelProperty(value = "备注")
private String remarks;
//创建人姓名
@ApiModelProperty(value = "创建人姓名")
private String createName;
//更新人姓名
@ApiModelProperty(value = "更新人姓名")
private String updateName;
//租户id
@ApiModelProperty(value = "租户id")
private Long tenantId;
//单位id
@ApiModelProperty(value = "单位id")
private Long orgId;
//版本
@ApiModelProperty(value = "版本")
private String version;
//创建时间
@ApiModelProperty(value = "创建时间")
private String createTime;
//修改时间
@ApiModelProperty(value = "修改时间")
private String updateTime;
//创建人id
@ApiModelProperty(value = "创建人id")
private Long createId;
//修改人id
@ApiModelProperty(value = "修改人id")
private Long updateId;
private String env;
// 视频个数
@ApiModelProperty(value = "视频个数")
private Long videoNum;
}

View File

@ -9,7 +9,7 @@ import lombok.Data;
* web-client
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:42
* @Date 2025-11-14 16:01:00
*/
@Data
public class MkmjAreaGateCO extends ClientObject {

View File

@ -1,91 +0,0 @@
package com.zcloud.primeport.dto.clientobject;
import com.alibaba.cola.dto.ClientObject;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* web-client
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:43
*/
@Data
public class MkmjGateLogCO extends ClientObject {
//主键
@ApiModelProperty(value = "主键")
private Long id;
//业务主键id
@ApiModelProperty(value = "业务主键id")
private String areaLogId;
//闸机id
@ApiModelProperty(value = "闸机id")
private String areaGateId;
//状态 0进 1出 2车辆进 3车辆出
@ApiModelProperty(value = "状态 0进 1出 2车辆进 3车辆出")
private Integer state;
//时间
@ApiModelProperty(value = "时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date logTime;
//人员id
@ApiModelProperty(value = "人员id")
private String userId;
//人员姓名
@ApiModelProperty(value = "人员姓名")
private String userName;
//闸机类型 1-入 2出
@ApiModelProperty(value = "闸机类型 1-入 2出")
private Integer gateType;
//车牌号(车辆进出时使用)
@ApiModelProperty(value = "车牌号(车辆进出时使用)")
private String ex1;
//备用字段2
@ApiModelProperty(value = "备用字段2")
private String ex2;
//备用字段3
@ApiModelProperty(value = "备用字段3")
private String ex3;
//备用字段4
@ApiModelProperty(value = "备用字段4")
private String ex4;
//备用字段5
@ApiModelProperty(value = "备用字段5")
private String ex5;
//删除标识true false
@ApiModelProperty(value = "删除标识true false")
private String deleteEnum;
//备注
@ApiModelProperty(value = "备注")
private String remarks;
//创建人姓名
@ApiModelProperty(value = "创建人姓名")
private String createName;
//更新人姓名
@ApiModelProperty(value = "更新人姓名")
private String updateName;
//租户id
@ApiModelProperty(value = "租户id")
private Long tenantId;
//单位id
@ApiModelProperty(value = "单位id")
private Long orgId;
//版本
@ApiModelProperty(value = "版本")
private String version;
//创建时间
@ApiModelProperty(value = "创建时间")
private String createTime;
//修改时间
@ApiModelProperty(value = "修改时间")
private String updateTime;
//创建人id
@ApiModelProperty(value = "创建人id")
private Long createId;
//修改人id
@ApiModelProperty(value = "修改人id")
private Long updateId;
private String env;
}

View File

@ -9,7 +9,7 @@ import lombok.Data;
* web-client
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:44
* @Date 2025-11-14 17:16:03
*/
@Data
public class MkmjGateVideoCO extends ClientObject {
@ -28,6 +28,9 @@ public class MkmjGateVideoCO extends ClientObject {
//摄像头id
@ApiModelProperty(value = "摄像头id")
private String videoResourceId;
//摄像头名称
@ApiModelProperty(value = "摄像头名称")
private String videoResourceName;
//摄像头类型1-移动 2-平台)
@ApiModelProperty(value = "摄像头类型1-移动 2-平台)")
private Integer videoType;

View File

@ -40,39 +40,8 @@ public class MkmjPassageCO extends ClientObject {
//纬度
@ApiModelProperty(value = "纬度")
private String latitude;
//删除标识true false
@ApiModelProperty(value = "删除标识true false")
private String deleteEnum;
//备注
@ApiModelProperty(value = "备注")
private String remarks;
//创建人姓名
@ApiModelProperty(value = "创建人姓名")
private String createName;
//更新人姓名
@ApiModelProperty(value = "更新人姓名")
private String updateName;
//租户id
@ApiModelProperty(value = "租户id")
private Long tenantId;
//单位id
@ApiModelProperty(value = "单位id")
private Long orgId;
//版本
@ApiModelProperty(value = "版本")
private String version;
//创建时间
@ApiModelProperty(value = "创建时间")
private String createTime;
//修改时间
@ApiModelProperty(value = "修改时间")
private String updateTime;
//创建人id
@ApiModelProperty(value = "创建人id")
private Long createId;
//修改人id
@ApiModelProperty(value = "修改人id")
private Long updateId;
private String env;
// 设备数量
@ApiModelProperty(value = "设备数量")
private Long gateNum;
}

View File

@ -0,0 +1,18 @@
package com.zcloud.primeport.dto.clientobject;
import com.alibaba.cola.dto.ClientObject;
import lombok.Data;
/**
* @author fangjiakai
* @date 2025/11/17 9:44
*/
@Data
public class MkmjStatisticsCO extends ClientObject {
private String id;
private Long carInCount;
private Long carOutCount;
private Long personInCount;
private Long personOutCount;
}

View File

@ -1,30 +0,0 @@
package com.zcloud.primeport.domain.gateway;
import com.zcloud.primeport.domain.model.MkmjGateLogE;
/**
* web-domain
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:43
*/
public interface MkmjGateLogGateway {
/**
*
*/
Boolean add(MkmjGateLogE mkmjGateLogE);
/**
*
*/
Boolean update(MkmjGateLogE mkmjGateLogE);
/**
*
*/
Boolean deletedMkmjGateLogById(Long id);
Boolean deletedMkmjGateLogByIds(Long[] id);
}

View File

@ -0,0 +1,14 @@
package com.zcloud.primeport.domain.model;
import com.jjb.saas.framework.domain.model.BaseE;
import lombok.Data;
/**
* @author fangjiakai
* @date 2025/11/14 10:24
*/
@Data
public class GateCountE extends BaseE {
private String passageId;
private Long count;
}

View File

@ -1,15 +1,13 @@
package com.zcloud.primeport.domain.model;
import com.alibaba.cola.domain.Entity;
import com.jjb.saas.framework.domain.model.BaseE;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* web-domain
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:42
* @Date 2025-11-14 09:51:10
*/
@Data
public class MkmjAreaE extends BaseE {
@ -23,6 +21,8 @@ public class MkmjAreaE extends BaseE {
private Integer areaLevel;
//上级区域id(当area_level=1时此字段为字典bianma)
private String areaParentId;
//上级区域
private String areaParentName;
//口门类型 1-人行 2-车行 3-综合
private Integer areaType;
//区域状态 0-停用 1-正常 2-暂时关闭

View File

@ -1,15 +1,13 @@
package com.zcloud.primeport.domain.model;
import com.alibaba.cola.domain.Entity;
import com.jjb.saas.framework.domain.model.BaseE;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* web-domain
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:43
* @Date 2025-11-14 16:01:00
*/
@Data
public class MkmjAreaGateE extends BaseE {

View File

@ -1,41 +0,0 @@
package com.zcloud.primeport.domain.model;
import com.alibaba.cola.domain.Entity;
import com.jjb.saas.framework.domain.model.BaseE;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* web-domain
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:43
*/
@Data
public class MkmjGateLogE extends BaseE {
//业务主键id
private String areaLogId;
//闸机id
private String areaGateId;
//状态 0进 1出 2车辆进 3车辆出
private Integer state;
//时间
private Date logTime;
//人员id
private String userId;
//人员姓名
private String userName;
//闸机类型 1-入 2出
private Integer gateType;
//车牌号(车辆进出时使用)
private String ex1;
//备用字段2
private String ex2;
//备用字段3
private String ex3;
//备用字段4
private String ex4;
//备用字段5
private String ex5;
}

View File

@ -1,15 +1,13 @@
package com.zcloud.primeport.domain.model;
import com.alibaba.cola.domain.Entity;
import com.jjb.saas.framework.domain.model.BaseE;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* web-domain
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:44
* @Date 2025-11-14 17:16:03
*/
@Data
public class MkmjGateVideoE extends BaseE {
@ -21,6 +19,8 @@ public class MkmjGateVideoE extends BaseE {
private Integer deviceType;
//摄像头id
private String videoResourceId;
//摄像头名称
private String videoResourceName;
//摄像头类型1-移动 2-平台)
private Integer videoType;
//企业id

View File

@ -0,0 +1,18 @@
package com.zcloud.primeport.domain.model;
import com.alibaba.cola.dto.ClientObject;
import com.jjb.saas.framework.domain.model.BaseE;
import lombok.Data;
/**
* @author fangjiakai
* @date 2025/11/17 9:44
*/
@Data
public class MkmjStatisticsE extends BaseE {
private String id;
private Long carInCount;
private Long carOutCount;
private Long personInCount;
private Long personOutCount;
}

View File

@ -0,0 +1,14 @@
package com.zcloud.primeport.domain.model;
import com.jjb.saas.framework.domain.model.BaseE;
import lombok.Data;
/**
* @author fangjiakai
* @date 2025/11/14 10:24
*/
@Data
public class VideoCountE extends BaseE {
private String areaGateId;
private Long count;
}

View File

@ -1,51 +0,0 @@
package com.zcloud.primeport.gatewayimpl;
import com.zcloud.primeport.domain.gateway.MkmjGateLogGateway;
import com.zcloud.primeport.domain.model.MkmjGateLogE;
import com.zcloud.primeport.persistence.dataobject.MkmjGateLogDO;
import com.zcloud.primeport.persistence.repository.MkmjGateLogRepository;
import lombok.AllArgsConstructor;
import com.zcloud.gbscommon.utils.Tools;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.Collections;
/**
* web-infrastructure
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:43
*/
@Service
@AllArgsConstructor
public class MkmjGateLogGatewayImpl implements MkmjGateLogGateway {
private final MkmjGateLogRepository mkmjGateLogRepository;
@Override
public Boolean add(MkmjGateLogE mkmjGateLogE) {
MkmjGateLogDO d = new MkmjGateLogDO(Tools.get32UUID());
BeanUtils.copyProperties(mkmjGateLogE, d, "areaLogId");
mkmjGateLogRepository.save(d);
return true;
}
@Override
public Boolean update(MkmjGateLogE mkmjGateLogE) {
MkmjGateLogDO d = new MkmjGateLogDO();
BeanUtils.copyProperties(mkmjGateLogE, d);
mkmjGateLogRepository.updateById(d);
return true;
}
@Override
public Boolean deletedMkmjGateLogById(Long id) {
return mkmjGateLogRepository.removeById(id);
}
@Override
public Boolean deletedMkmjGateLogByIds(Long[] ids) {
return mkmjGateLogRepository.removeByIds(Collections.singletonList(ids));
}
}

View File

@ -1,15 +1,17 @@
package com.zcloud.primeport.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/**
* web-infrastructure
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:42
* @Date 2025-11-14 09:51:10
*/
@Data
@TableName("mkmj_area")
@ -31,6 +33,9 @@ public class MkmjAreaDO extends BaseDO {
//上级区域id(当area_level=1时此字段为字典bianma)
@ApiModelProperty(value = "上级区域id(当area_level=1时此字段为字典bianma)")
private String areaParentId;
//上级区域
@ApiModelProperty(value = "上级区域")
private String areaParentName;
//口门类型 1-人行 2-车行 3-综合
@ApiModelProperty(value = "口门类型 1-人行 2-车行 3-综合")
private Integer areaType;

View File

@ -1,15 +1,17 @@
package com.zcloud.primeport.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/**
* web-infrastructure
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:43
* @Date 2025-11-14 16:01:00
*/
@Data
@TableName("mkmj_area_gate")

View File

@ -1,61 +0,0 @@
package com.zcloud.primeport.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.*;
import com.jjb.saas.framework.repository.basedo.BaseDO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* web-infrastructure
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:43
*/
@Data
@TableName("mkmj_gate_log")
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class MkmjGateLogDO extends BaseDO {
//业务主键id
@ApiModelProperty(value = "业务主键id")
private String areaLogId;
//闸机id
@ApiModelProperty(value = "闸机id")
private String areaGateId;
//状态 0进 1出 2车辆进 3车辆出
@ApiModelProperty(value = "状态 0进 1出 2车辆进 3车辆出")
private Integer state;
//时间
@ApiModelProperty(value = "时间")
private Date logTime;
//人员id
@ApiModelProperty(value = "人员id")
private String userId;
//人员姓名
@ApiModelProperty(value = "人员姓名")
private String userName;
//闸机类型 1-入 2出
@ApiModelProperty(value = "闸机类型 1-入 2出")
private Integer gateType;
//车牌号(车辆进出时使用)
@ApiModelProperty(value = "车牌号(车辆进出时使用)")
private String ex1;
//备用字段2
@ApiModelProperty(value = "备用字段2")
private String ex2;
//备用字段3
@ApiModelProperty(value = "备用字段3")
private String ex3;
//备用字段4
@ApiModelProperty(value = "备用字段4")
private String ex4;
//备用字段5
@ApiModelProperty(value = "备用字段5")
private String ex5;
public MkmjGateLogDO(String areaLogId) {
this.areaLogId = areaLogId;
}
}

View File

@ -1,15 +1,17 @@
package com.zcloud.primeport.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/**
* web-infrastructure
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:44
* @Date 2025-11-14 17:16:03
*/
@Data
@TableName("mkmj_gate_video")
@ -28,6 +30,9 @@ public class MkmjGateVideoDO extends BaseDO {
//摄像头id
@ApiModelProperty(value = "摄像头id")
private String videoResourceId;
//摄像头名称
@ApiModelProperty(value = "摄像头名称")
private String videoResourceName;
//摄像头类型1-移动 2-平台)
@ApiModelProperty(value = "摄像头类型1-移动 2-平台)")
private Integer videoType;
@ -41,9 +46,6 @@ public class MkmjGateVideoDO extends BaseDO {
@ApiModelProperty(value = "纬度")
private String latitude;
public MkmjGateVideoDO(String) {
this. =;
}
}

View File

@ -1,9 +1,11 @@
package com.zcloud.primeport.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/**
* web-infrastructure

View File

@ -1,9 +1,12 @@
package com.zcloud.primeport.persistence.mapper;
import com.zcloud.primeport.domain.model.GateCountE;
import com.zcloud.primeport.persistence.dataobject.MkmjAreaGateDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* web-infrastructure
*
@ -13,5 +16,6 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface MkmjAreaGateMapper extends BaseMapper<MkmjAreaGateDO> {
List<GateCountE> listGateCountByPassageId(List<String> ids);
}

View File

@ -1,17 +0,0 @@
package com.zcloud.primeport.persistence.mapper;
import com.zcloud.primeport.persistence.dataobject.MkmjGateLogDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* web-infrastructure
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:44
*/
@Mapper
public interface MkmjGateLogMapper extends BaseMapper<MkmjGateLogDO> {
}

View File

@ -1,8 +1,12 @@
package com.zcloud.primeport.persistence.mapper;
import com.zcloud.primeport.domain.model.VideoCountE;
import com.zcloud.primeport.persistence.dataobject.MkmjGateVideoDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* web-infrastructure
@ -13,5 +17,6 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface MkmjGateVideoMapper extends BaseMapper<MkmjGateVideoDO> {
List<VideoCountE> listVideoCountByAreaId(@Param("ids") List<String> ids);
}

View File

@ -1,9 +1,11 @@
package com.zcloud.primeport.persistence.repository;
import com.zcloud.primeport.domain.model.GateCountE;
import com.zcloud.primeport.persistence.dataobject.MkmjAreaGateDO;
import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.repo.BaseRepository;
import java.util.List;
import java.util.Map;
/**
@ -14,5 +16,7 @@ import java.util.Map;
*/
public interface MkmjAreaGateRepository extends BaseRepository<MkmjAreaGateDO> {
PageResponse<MkmjAreaGateDO> listPage(Map<String, Object> params);
List<GateCountE> listGateCountByPassageId(List<String> ids);
}

View File

@ -1,18 +0,0 @@
package com.zcloud.primeport.persistence.repository;
import com.zcloud.primeport.persistence.dataobject.MkmjGateLogDO;
import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.repo.BaseRepository;
import java.util.Map;
/**
* web-infrastructure
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:44
*/
public interface MkmjGateLogRepository extends BaseRepository<MkmjGateLogDO> {
PageResponse<MkmjGateLogDO> listPage(Map<String, Object> params);
}

View File

@ -1,9 +1,11 @@
package com.zcloud.primeport.persistence.repository;
import com.zcloud.primeport.domain.model.VideoCountE;
import com.zcloud.primeport.persistence.dataobject.MkmjGateVideoDO;
import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.repo.BaseRepository;
import java.util.List;
import java.util.Map;
/**
@ -14,5 +16,7 @@ import java.util.Map;
*/
public interface MkmjGateVideoRepository extends BaseRepository<MkmjGateVideoDO> {
PageResponse<MkmjGateVideoDO> listPage(Map<String, Object> params);
List<VideoCountE> listVideoCountByAreaId(List<String> ids);
}

View File

@ -1,5 +1,7 @@
package com.zcloud.primeport.persistence.repository.impl;
import com.jjb.saas.framework.repository.common.PageHelper;
import com.zcloud.primeport.domain.model.GateCountE;
import com.zcloud.primeport.persistence.dataobject.MkmjAreaGateDO;
import com.zcloud.primeport.persistence.mapper.MkmjAreaGateMapper;
import com.zcloud.primeport.persistence.repository.MkmjAreaGateRepository;
@ -12,6 +14,7 @@ import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
@ -34,5 +37,10 @@ public class MkmjAreaGateRepositoryImpl extends BaseRepositoryImpl<MkmjAreaGateM
IPage<MkmjAreaGateDO> result = mkmjAreaGateMapper.selectPage(iPage, queryWrapper);
return PageHelper.pageToResponse(result, result.getRecords());
}
@Override
public List<GateCountE> listGateCountByPassageId(List<String> ids){
return mkmjAreaGateMapper.listGateCountByPassageId(ids);
}
}

View File

@ -1,5 +1,6 @@
package com.zcloud.primeport.persistence.repository.impl;
import com.jjb.saas.framework.repository.common.PageHelper;
import com.zcloud.primeport.persistence.dataobject.MkmjAreaDO;
import com.zcloud.primeport.persistence.mapper.MkmjAreaMapper;
import com.zcloud.primeport.persistence.repository.MkmjAreaRepository;

View File

@ -1,38 +0,0 @@
package com.zcloud.primeport.persistence.repository.impl;
import com.zcloud.primeport.persistence.dataobject.MkmjGateLogDO;
import com.zcloud.primeport.persistence.mapper.MkmjGateLogMapper;
import com.zcloud.primeport.persistence.repository.MkmjGateLogRepository;
import com.alibaba.cola.dto.PageResponse;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.zcloud.gbscommon.utils.Query;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
* web-infrastructure
*
* @Author fangjiakai
* @Date 2025-11-14 08:57:44
*/
@Service
@RequiredArgsConstructor
public class MkmjGateLogRepositoryImpl extends BaseRepositoryImpl<MkmjGateLogMapper, MkmjGateLogDO> implements MkmjGateLogRepository {
private final MkmjGateLogMapper mkmjGateLogMapper;
@Override
public PageResponse<MkmjGateLogDO> listPage(Map<String, Object> params) {
IPage<MkmjGateLogDO> iPage = new Query<MkmjGateLogDO>().getPage(params);
QueryWrapper<MkmjGateLogDO> queryWrapper = new QueryWrapper<>();
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params);
queryWrapper.orderByDesc("create_time");
IPage<MkmjGateLogDO> result = mkmjGateLogMapper.selectPage(iPage, queryWrapper);
return PageHelper.pageToResponse(result, result.getRecords());
}
}

View File

@ -1,5 +1,8 @@
package com.zcloud.primeport.persistence.repository.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jjb.saas.framework.repository.common.PageHelper;
import com.zcloud.primeport.domain.model.VideoCountE;
import com.zcloud.primeport.persistence.dataobject.MkmjGateVideoDO;
import com.zcloud.primeport.persistence.mapper.MkmjGateVideoMapper;
import com.zcloud.primeport.persistence.repository.MkmjGateVideoRepository;
@ -12,6 +15,7 @@ import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
@ -34,5 +38,11 @@ public class MkmjGateVideoRepositoryImpl extends BaseRepositoryImpl<MkmjGateVide
IPage<MkmjGateVideoDO> result = mkmjGateVideoMapper.selectPage(iPage, queryWrapper);
return PageHelper.pageToResponse(result, result.getRecords());
}
@Override
public List<VideoCountE> listVideoCountByAreaId(List<String> ids){
return mkmjGateVideoMapper.listVideoCountByAreaId(ids);
}
}

View File

@ -1,5 +1,6 @@
package com.zcloud.primeport.persistence.repository.impl;
import com.jjb.saas.framework.repository.common.PageHelper;
import com.zcloud.primeport.persistence.dataobject.MkmjPassageDO;
import com.zcloud.primeport.persistence.mapper.MkmjPassageMapper;
import com.zcloud.primeport.persistence.repository.MkmjPassageRepository;

View File

@ -3,6 +3,18 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zcloud.primeport.persistence.mapper.MkmjAreaGateMapper">
<select id="listGateCountByPassageId" resultType="com.zcloud.primeport.domain.model.GateCountE">
select passage_id,count(1) as count
from mkmj_area_gate
<where>
<if test="ids != null and ids.size() > 0">
and passage_id in
<foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
group by passage_id
</select>
</mapper>

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zcloud.primeport.persistence.mapper.MkmjGateLogMapper">
</mapper>

View File

@ -4,5 +4,19 @@
<mapper namespace="com.zcloud.primeport.persistence.mapper.MkmjGateVideoMapper">
<select id="listVideoCountByAreaId" resultType="com.zcloud.primeport.domain.model.VideoCountE">
select area_gate_id,count(1) as count
from mkmj_gate_video
<where>
<if test="ids != null and ids.size() > 0">
and area_gate_id in
<foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
group by area_gate_id
</select>
</mapper>