feat:接入海康二级口门进出记录

koumen
dearLin 2026-04-29 15:48:01 +08:00
parent 6fda8745fe
commit 3009e4edcf
43 changed files with 1244 additions and 13 deletions

View File

@ -0,0 +1,87 @@
package com.zcloud.primeport.web;
import com.zcloud.primeport.api.EVehicleBasicInfoServiceI;
import com.zcloud.primeport.dto.EVehicleBasicInfoAddCmd;
import com.zcloud.primeport.dto.EVehicleBasicInfoPageQry;
import com.zcloud.primeport.dto.EVehicleBasicInfoUpdateCmd;
import com.zcloud.primeport.dto.clientobject.EVehicleBasicInfoCO;
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;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* web-adapter
*
* @Author dearLin
* @Date 2026-04-23 10:04:31
*/
@Api(tags = "一级口门车辆出入信息")
@RequestMapping("/${application.gateway}/eVehicleBasicInfo")
@RestController
@AllArgsConstructor
public class EVehicleBasicInfoController {
private final EVehicleBasicInfoServiceI eVehicleBasicInfoService;
@ApiOperation("新增")
@PostMapping("/save")
public SingleResponse<EVehicleBasicInfoCO> add(@Validated @RequestBody EVehicleBasicInfoAddCmd cmd) {
return eVehicleBasicInfoService.add(cmd);
}
@ApiOperation("分页")
@PostMapping("/list")
public PageResponse<EVehicleBasicInfoCO> page(@RequestBody EVehicleBasicInfoPageQry qry) {
return eVehicleBasicInfoService.listPage(qry);
}
@ApiOperation("所有数据")
@GetMapping("/listAll")
public MultiResponse<EVehicleBasicInfoCO> listAll() {
return MultiResponse.of(new ArrayList<EVehicleBasicInfoCO>());
}
@ApiOperation("详情")
@GetMapping("/{id}")
public SingleResponse<EVehicleBasicInfoCO> getInfoById(@PathVariable("id") Long id) {
return SingleResponse.of(eVehicleBasicInfoService.queryById(id));
}
@ApiOperation("删除")
@DeleteMapping("/{id}")
public Response remove(@PathVariable("id") Long id) {
eVehicleBasicInfoService.remove(id);
return SingleResponse.buildSuccess();
}
@ApiOperation("删除多个")
@DeleteMapping("/ids")
public Response removeBatch(@RequestParam("ids") String ids) {
List<Long> idsList = Arrays.stream(ids.split(","))
.map(Long::valueOf)
.collect(Collectors.toList());
eVehicleBasicInfoService.removeBatch(idsList);
return SingleResponse.buildSuccess();
}
@ApiOperation("修改")
@PutMapping("/edit")
public SingleResponse edit(@Validated @RequestBody EVehicleBasicInfoUpdateCmd eVehicleBasicInfoUpdateCmd) {
eVehicleBasicInfoService.edit(eVehicleBasicInfoUpdateCmd);
return SingleResponse.buildSuccess();
}
}

View File

@ -48,7 +48,7 @@ public class VideoController {
@ApiOperation("详情") @ApiOperation("详情")
@GetMapping("/{id}") @GetMapping("/{id}")
public SingleResponse<VideoCO> getInfoById(@PathVariable("id") Long id) { public SingleResponse<VideoCO> getInfoById(@PathVariable("id") Long id) {
return SingleResponse.of(new VideoCO()); return SingleResponse.of(videoService.getInfoById(id));
} }
@ApiOperation("删除") @ApiOperation("删除")

View File

@ -59,7 +59,7 @@ public class ClosedAreaCarApplyAddExe {
closedAreaCarApplyE.setUserCard(userData.getUserIdCard()); closedAreaCarApplyE.setUserCard(userData.getUserIdCard());
closedAreaCarApplyE.setUserFaceUrl(userData.getUserAvatarUrl()); closedAreaCarApplyE.setUserFaceUrl(userData.getUserAvatarUrl());
} else { } else {
closedAreaCarApplyE.setUserCard(Base64.encodeToString(cmd.getUserCard())); // closedAreaCarApplyE.setUserCard(Base64.encodeToString(cmd.getUserCard()));
} }
boolean res = false; boolean res = false;
try { try {

View File

@ -53,7 +53,7 @@ public class ClosedAreaPersonApplyAddExe {
closedAreaPersonApplyE.setUserCard(userData.getUserIdCard()); closedAreaPersonApplyE.setUserCard(userData.getUserIdCard());
closedAreaPersonApplyE.setUserFaceUrl(userData.getUserAvatarUrl()); closedAreaPersonApplyE.setUserFaceUrl(userData.getUserAvatarUrl());
}else { }else {
closedAreaPersonApplyE.setUserCard(Base64.encodeToString(cmd.getUserCard())); // closedAreaPersonApplyE.setUserCard(Base64.encodeToString(cmd.getUserCard()));
} }
boolean res = false; boolean res = false;
try { try {

View File

@ -58,6 +58,12 @@ public class ClosedAreaPersonApplyUpdateExe {
TodoListCompleteEvent todoListCompleteEvent = new TodoListCompleteEvent(); TodoListCompleteEvent todoListCompleteEvent = new TodoListCompleteEvent();
todoListCompleteEvent.setForeignSubsidiaryKey(auditCmd.getId()); todoListCompleteEvent.setForeignSubsidiaryKey(auditCmd.getId());
todoListEventPusherUtil.sendMessageCompleteEvent(todoListCompleteEvent); todoListEventPusherUtil.sendMessageCompleteEvent(todoListCompleteEvent);
// 审批通过赋予权限
if (auditCmd.getAuditFlag().equals(2)) {
}
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)

View File

@ -0,0 +1,40 @@
package com.zcloud.primeport.command;
import com.zcloud.primeport.domain.gateway.EVehicleBasicInfoGateway;
import com.zcloud.primeport.domain.model.EVehicleBasicInfoE;
import com.zcloud.primeport.dto.EVehicleBasicInfoAddCmd;
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 dearLin
* @Date 2026-04-23 10:04:31
*/
@Component
@AllArgsConstructor
public class EVehicleBasicInfoAddExe {
private final EVehicleBasicInfoGateway eVehicleBasicInfoGateway;
@Transactional(rollbackFor = Exception.class)
public boolean execute(EVehicleBasicInfoAddCmd cmd) {
EVehicleBasicInfoE eVehicleBasicInfoE = new EVehicleBasicInfoE();
BeanUtils.copyProperties(cmd, eVehicleBasicInfoE);
boolean res = false;
try {
res = eVehicleBasicInfoGateway.add(eVehicleBasicInfoE);
} catch (Exception e) {
throw new RuntimeException(e);
}
if (!res) {
throw new BizException("保存失败");
}
return true;
}
}

View File

@ -0,0 +1,41 @@
package com.zcloud.primeport.command;
import com.zcloud.primeport.domain.gateway.EVehicleBasicInfoGateway;
import com.alibaba.cola.exception.BizException;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* web-app
*
* @Author dearLin
* @Date 2026-04-23 10:04:33
*/
@Component
@AllArgsConstructor
public class EVehicleBasicInfoRemoveExe {
private final EVehicleBasicInfoGateway eVehicleBasicInfoGateway;
@Transactional(rollbackFor = Exception.class)
public boolean execute(Long id) {
boolean res = eVehicleBasicInfoGateway.deletedEVehicleBasicInfoById(id);
if (!res) {
throw new BizException("删除失败");
}
return true;
}
@Transactional(rollbackFor = Exception.class)
public boolean execute(List<Long> ids) {
boolean res = eVehicleBasicInfoGateway.deletedEVehicleBasicInfoByIds(ids);
if (!res) {
throw new BizException("删除失败");
}
return true;
}
}

View File

@ -0,0 +1,34 @@
package com.zcloud.primeport.command;
import com.alibaba.cola.exception.BizException;
import com.zcloud.primeport.domain.gateway.EVehicleBasicInfoGateway;
import com.zcloud.primeport.domain.model.EVehicleBasicInfoE;
import com.zcloud.primeport.dto.EVehicleBasicInfoUpdateCmd;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
* web-app
*
* @Author dearLin
* @Date 2026-04-23 10:04:33
*/
@Component
@AllArgsConstructor
public class EVehicleBasicInfoUpdateExe {
private final EVehicleBasicInfoGateway eVehicleBasicInfoGateway;
@Transactional(rollbackFor = Exception.class)
public void execute(EVehicleBasicInfoUpdateCmd eVehicleBasicInfoUpdateCmd) {
EVehicleBasicInfoE eVehicleBasicInfoE = new EVehicleBasicInfoE();
BeanUtils.copyProperties(eVehicleBasicInfoUpdateCmd, eVehicleBasicInfoE);
boolean res = eVehicleBasicInfoGateway.update(eVehicleBasicInfoE);
if (!res) {
throw new BizException("修改失败");
}
}
}

View File

@ -72,7 +72,7 @@ public class VehicleApplyAddExe {
// 临时 // 临时
if (cmd.getVehicleBelongType().equals(VehicleBelongTypeEnum.TEMP_VEHICLES.getCode())){ if (cmd.getVehicleBelongType().equals(VehicleBelongTypeEnum.TEMP_VEHICLES.getCode())){
examTypeE.setEmployeeVehicleUserName(cmd.getDrivingUserName()); examTypeE.setEmployeeVehicleUserName(cmd.getDrivingUserName());
examTypeE.setLsUserIdcard(Base64.encodeToString(cmd.getLsUserIdcard())); // examTypeE.setLsUserIdcard(Base64.encodeToString(cmd.getLsUserIdcard()));
} }
VehicleApplyE add = vehicleApplyGateway.add(examTypeE); VehicleApplyE add = vehicleApplyGateway.add(examTypeE);
VehicleAuditE build = VehicleAuditE.builder().vehicleApplyId(examTypeE.getId()).batchState(1).batchType(1) VehicleAuditE build = VehicleAuditE.builder().vehicleApplyId(examTypeE.getId()).batchState(1).batchType(1)

View File

@ -0,0 +1,26 @@
package com.zcloud.primeport.command.convertor;
import com.zcloud.primeport.dto.clientobject.EVehicleBasicInfoCO;
import com.zcloud.primeport.persistence.dataobject.EVehicleBasicInfoDO;
import org.mapstruct.Mapper;
import java.util.List;
/**
* web-app
*
* @Author dearLin
* @Date 2026-04-23 10:04:31
*/
@Mapper(componentModel = "spring")
public interface EVehicleBasicInfoCoConvertor {
/**
* @param eVehicleBasicInfoDOs
* @return
*/
List<EVehicleBasicInfoCO> converDOsToCOs(List<EVehicleBasicInfoDO> eVehicleBasicInfoDOs);
EVehicleBasicInfoCO converDOToCO(EVehicleBasicInfoDO eVehicleBasicInfoDO);
}

View File

@ -20,5 +20,6 @@ public interface VideoCoConvertor {
* @return * @return
*/ */
List<VideoCO> converDOsToCOs(List<VideoDO> videoDOs); List<VideoCO> converDOsToCOs(List<VideoDO> videoDOs);
VideoCO converDOToCO(VideoDO videoDOs);
} }

View File

@ -81,6 +81,7 @@ public class ClosedAreaPersonApplyQueryExe {
public PageResponse<UserCo> getCorpUserList(ClosedAreaPersonApplyPageQry qry) { public PageResponse<UserCo> getCorpUserList(ClosedAreaPersonApplyPageQry qry) {
Map<String, Object> params = PageQueryHelper.toHashMap(qry); Map<String, Object> params = PageQueryHelper.toHashMap(qry);
params.put("corpinfoId", AuthContext.getTenantId()); params.put("corpinfoId", AuthContext.getTenantId());
params.put("selfUserId", AuthContext.getUserId());
PageResponse<UserDto> pageResponse = closedAreaPersonApplyRepository.getCorpUserList(params); PageResponse<UserDto> pageResponse = closedAreaPersonApplyRepository.getCorpUserList(params);
List<UserCo> examCenterCOS = closedAreaPersonApplyCoConvertor.converUserDtosToUserCos(pageResponse.getData()); List<UserCo> examCenterCOS = closedAreaPersonApplyCoConvertor.converUserDtosToUserCos(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());

View File

@ -0,0 +1,52 @@
package com.zcloud.primeport.command.query;
import com.zcloud.primeport.command.convertor.EVehicleBasicInfoCoConvertor;
import com.zcloud.primeport.dto.EVehicleBasicInfoPageQry;
import com.zcloud.primeport.dto.clientobject.EVehicleBasicInfoCO;
import com.zcloud.primeport.persistence.dataobject.EVehicleBasicInfoDO;
import com.zcloud.primeport.persistence.repository.EVehicleBasicInfoRepository;
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 dearLin
* @Date 2026-04-23 10:04:33
*/
@Component
@AllArgsConstructor
public class EVehicleBasicInfoQueryExe {
private final EVehicleBasicInfoRepository eVehicleBasicInfoRepository;
private final EVehicleBasicInfoCoConvertor eVehicleBasicInfoCoConvertor;
/**
* id
*
* @param id
* @return
*/
public EVehicleBasicInfoCO queryById(Long id) {
return eVehicleBasicInfoCoConvertor.converDOToCO(eVehicleBasicInfoRepository.getById(id));
}
/**
*
*
* @param eVehicleBasicInfoPageQry
* @return
*/
public PageResponse<EVehicleBasicInfoCO> execute(EVehicleBasicInfoPageQry eVehicleBasicInfoPageQry) {
Map<String, Object> params = PageQueryHelper.toHashMap(eVehicleBasicInfoPageQry);
PageResponse<EVehicleBasicInfoDO> pageResponse = eVehicleBasicInfoRepository.listPage(params);
List<EVehicleBasicInfoCO> examCenterCOS = eVehicleBasicInfoCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
}

View File

@ -47,7 +47,7 @@ public class MkmjQueryExe {
public List<MkmjCO> listAll(MkmjPageQry qry) { public List<MkmjCO> listAll(MkmjPageQry qry) {
QueryWrapper<MkmjDO> mkmjDOQueryWrapper = new QueryWrapper<>(); QueryWrapper<MkmjDO> mkmjDOQueryWrapper = new QueryWrapper<>();
mkmjDOQueryWrapper.eq("mkmj_status","2"); mkmjDOQueryWrapper.eq("mkmj_status", "2");
if (Tools.notEmpty(qry.getHgAuthArea())) { if (Tools.notEmpty(qry.getHgAuthArea())) {
mkmjDOQueryWrapper.eq("hg_auth_area", qry.getHgAuthArea()); mkmjDOQueryWrapper.eq("hg_auth_area", qry.getHgAuthArea());
} }

View File

@ -38,5 +38,10 @@ public class VideoQueryExe {
List<VideoCO> examCenterCOS = videoCoConvertor.converDOsToCOs(pageResponse.getData()); List<VideoCO> examCenterCOS = videoCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
} }
public VideoCO getInfoById(Long id) {
VideoDO byId = videoRepository.getById(id);
return videoCoConvertor.converDOToCO(byId);
}
} }

View File

@ -0,0 +1,67 @@
package com.zcloud.primeport.service;
import com.zcloud.primeport.api.EVehicleBasicInfoServiceI;
import com.zcloud.primeport.command.EVehicleBasicInfoAddExe;
import com.zcloud.primeport.command.EVehicleBasicInfoRemoveExe;
import com.zcloud.primeport.command.EVehicleBasicInfoUpdateExe;
import com.zcloud.primeport.command.query.EVehicleBasicInfoQueryExe;
import com.zcloud.primeport.dto.EVehicleBasicInfoAddCmd;
import com.zcloud.primeport.dto.EVehicleBasicInfoPageQry;
import com.zcloud.primeport.dto.EVehicleBasicInfoUpdateCmd;
import com.zcloud.primeport.dto.clientobject.EVehicleBasicInfoCO;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* web-app
*
* @Author dearLin
* @Date 2026-04-23 10:04:33
*/
@Service
@AllArgsConstructor
public class EVehicleBasicInfoServiceImpl implements EVehicleBasicInfoServiceI {
private final EVehicleBasicInfoAddExe eVehicleBasicInfoAddExe;
private final EVehicleBasicInfoUpdateExe eVehicleBasicInfoUpdateExe;
private final EVehicleBasicInfoRemoveExe eVehicleBasicInfoRemoveExe;
private final EVehicleBasicInfoQueryExe eVehicleBasicInfoQueryExe;
@Override
public EVehicleBasicInfoCO queryById(Long id) {
return eVehicleBasicInfoQueryExe.queryById(id);
}
@Override
public PageResponse<EVehicleBasicInfoCO> listPage(EVehicleBasicInfoPageQry qry) {
return eVehicleBasicInfoQueryExe.execute(qry);
}
@Override
public SingleResponse add(EVehicleBasicInfoAddCmd cmd) {
eVehicleBasicInfoAddExe.execute(cmd);
return SingleResponse.buildSuccess();
}
@Override
public void edit(EVehicleBasicInfoUpdateCmd eVehicleBasicInfoUpdateCmd) {
eVehicleBasicInfoUpdateExe.execute(eVehicleBasicInfoUpdateCmd);
}
@Override
public void remove(Long id) {
eVehicleBasicInfoRemoveExe.execute(id);
}
@Override
public void removeBatch(List<Long> ids) {
eVehicleBasicInfoRemoveExe.execute(ids);
}
}

View File

@ -55,5 +55,10 @@ public class VideoServiceImpl implements VideoServiceI {
public void removeBatch(Long[] ids) { public void removeBatch(Long[] ids) {
videoRemoveExe.execute(ids); videoRemoveExe.execute(ids);
} }
@Override
public VideoCO getInfoById(Long id) {
return videoQueryExe.getInfoById(id);
}
} }

View File

@ -0,0 +1,32 @@
package com.zcloud.primeport.api;
import com.zcloud.primeport.dto.EVehicleBasicInfoAddCmd;
import com.zcloud.primeport.dto.EVehicleBasicInfoPageQry;
import com.zcloud.primeport.dto.EVehicleBasicInfoUpdateCmd;
import com.zcloud.primeport.dto.clientobject.EVehicleBasicInfoCO;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import java.util.List;
/**
* web-client
*
* @Author dearLin
* @Date 2026-04-23 10:04:33
*/
public interface EVehicleBasicInfoServiceI {
EVehicleBasicInfoCO queryById(Long id);
PageResponse<EVehicleBasicInfoCO> listPage(EVehicleBasicInfoPageQry qry);
SingleResponse<EVehicleBasicInfoCO> add(EVehicleBasicInfoAddCmd cmd);
void edit(EVehicleBasicInfoUpdateCmd cmd);
void remove(Long id);
void removeBatch(List<Long> ids);
}

View File

@ -23,5 +23,7 @@ public interface VideoServiceI {
void remove(Long id); void remove(Long id);
void removeBatch(Long[] ids); void removeBatch(Long[] ids);
VideoCO getInfoById(Long id);
} }

View File

@ -28,6 +28,8 @@ public class ClosedAreaPersonApplyPageQry extends PageQuery {
private String name; private String name;
@ApiModelProperty(value = "随行人员按部门搜索", name = "deptId", required = true) @ApiModelProperty(value = "随行人员按部门搜索", name = "deptId", required = true)
private Long deptId; private Long deptId;
@ApiModelProperty(value = "1带自己2不带自己", name = "noSelf", required = true)
private Integer noSelf;
@ApiModelProperty(value = "申请人名称", name = "applyPersonUserName", required = true) @ApiModelProperty(value = "申请人名称", name = "applyPersonUserName", required = true)
private String applyPersonUserName; private String applyPersonUserName;

View File

@ -0,0 +1,96 @@
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 dearLin
* @Date 2026-04-23 10:04:31
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class EVehicleBasicInfoAddCmd extends Command {
@ApiModelProperty(value = "车辆ID", name = "vehicleRecordId", required = true)
// @NotEmpty(message = "车辆ID不能为空")
private String vehicleRecordId;
@ApiModelProperty(value = "车辆备案信息录入单位", name = "vehicleFilingInfoRecordingOrg", required = true)
// @NotEmpty(message = "车辆备案信息录入单位不能为空")
private String vehicleFilingInfoRecordingOrg;
@ApiModelProperty(value = "车辆归属单位", name = "vehicleOwningEntity", required = true)
// @NotEmpty(message = "车辆归属单位不能为空")
private String vehicleOwningEntity;
@ApiModelProperty(value = "车辆牌照号码", name = "vehiclePlateNumber", required = true)
// @NotEmpty(message = "车辆牌照号码不能为空")
private String vehiclePlateNumber;
@ApiModelProperty(value = "车辆行驶证号码", name = "vehicleRegistrationNumber", required = true)
// @NotEmpty(message = "车辆行驶证号码不能为空")
private String vehicleRegistrationNumber;
@ApiModelProperty(value = "车辆类型名称", name = "vehicleCategoryName", required = true)
// @NotEmpty(message = "车辆类型名称不能为空")
private String vehicleCategoryName;
@ApiModelProperty(value = "车辆牌照颜色名称", name = "vehiclePlateColorName", required = true)
// @NotEmpty(message = "车辆牌照颜色名称不能为空")
private String vehiclePlateColorName;
@ApiModelProperty(value = "车辆备案时间", name = "vehicleFilingTime", required = true)
// @NotEmpty(message = "车辆备案时间不能为空")
private String vehicleFilingTime;
@ApiModelProperty(value = "车辆联系人姓名", name = "vehicleContactName", required = true)
// @NotEmpty(message = "车辆联系人姓名不能为空")
private String vehicleContactName;
@ApiModelProperty(value = "车辆联系人电话", name = "vehicleContactPhoneNumber", required = true)
// @NotEmpty(message = "车辆联系人电话不能为空")
private String vehicleContactPhoneNumber;
@ApiModelProperty(value = "车辆备案分类1, 长期车辆,2, 一次性备案,3, 内部车辆, 4, 临时车辆)", name = "vehicleFilingMethod", required = true)
// @NotEmpty(message = "车辆备案分类1, 长期车辆,2, 一次性备案,3, 内部车辆, 4, 临时车辆)不能为空")
private String vehicleFilingMethod;
@ApiModelProperty(value = "有效标识", name = "edwValidFlag", required = true)
// @NotEmpty(message = "有效标识不能为空")
private String edwValidFlag;
@ApiModelProperty(value = "数据源头", name = "edwDataSource", required = true)
// @NotEmpty(message = "数据源头不能为空")
private String edwDataSource;
@ApiModelProperty(value = "创建时间", name = "edwCreateDate", required = true)
// @NotEmpty(message = "创建时间不能为空")
private String edwCreateDate;
@ApiModelProperty(value = "更新时间", name = "edwLastUpdate", required = true)
// @NotEmpty(message = "更新时间不能为空")
private String edwLastUpdate;
@ApiModelProperty(value = "分区列", name = "dataVersion", required = true)
// @NotNull(message = "分区列不能为空")
private Long dataVersion;
@ApiModelProperty(value = "同步时间", name = "accLastUpdateDate", required = true)
// @NotNull(message = "同步时间不能为空")
private String accLastUpdateDate;
@ApiModelProperty(value = "${column.comment}", name = "idSequence", required = true)
// @NotNull(message = "${column.comment}不能为空")
private Long idSequence;
}

View File

@ -0,0 +1,29 @@
package com.zcloud.primeport.dto;
import com.alibaba.cola.dto.PageQuery;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* web-client
*
* @Author dearLin
* @Date 2026-04-23 10:04:32
*/
@Data
public class EVehicleBasicInfoPageQry extends PageQuery {
/**
* ,
* - `like`: SQLLIKE
* - `eq`: SQL=
* - `gt`:
* - `lt`:
* - `ge`:
* - `le`:
* - `ne`: SQL!=
*/
private String likeVehicleRecordId;
}

View File

@ -0,0 +1,81 @@
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 dearLin
* @Date 2026-04-23 10:04:33
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class EVehicleBasicInfoUpdateCmd extends Command {
@ApiModelProperty(value = "id", name = "id", required = true)
// @NotNull(message = "id不能为空")
private Long id;
@ApiModelProperty(value = "车辆ID", name = "vehicleRecordId", required = true)
// @NotEmpty(message = "车辆ID不能为空")
private String vehicleRecordId;
@ApiModelProperty(value = "车辆备案信息录入单位", name = "vehicleFilingInfoRecordingOrg", required = true)
// @NotEmpty(message = "车辆备案信息录入单位不能为空")
private String vehicleFilingInfoRecordingOrg;
@ApiModelProperty(value = "车辆归属单位", name = "vehicleOwningEntity", required = true)
// @NotEmpty(message = "车辆归属单位不能为空")
private String vehicleOwningEntity;
@ApiModelProperty(value = "车辆牌照号码", name = "vehiclePlateNumber", required = true)
// @NotEmpty(message = "车辆牌照号码不能为空")
private String vehiclePlateNumber;
@ApiModelProperty(value = "车辆行驶证号码", name = "vehicleRegistrationNumber", required = true)
// @NotEmpty(message = "车辆行驶证号码不能为空")
private String vehicleRegistrationNumber;
@ApiModelProperty(value = "车辆类型名称", name = "vehicleCategoryName", required = true)
// @NotEmpty(message = "车辆类型名称不能为空")
private String vehicleCategoryName;
@ApiModelProperty(value = "车辆牌照颜色名称", name = "vehiclePlateColorName", required = true)
// @NotEmpty(message = "车辆牌照颜色名称不能为空")
private String vehiclePlateColorName;
@ApiModelProperty(value = "车辆备案时间", name = "vehicleFilingTime", required = true)
// @NotEmpty(message = "车辆备案时间不能为空")
private String vehicleFilingTime;
@ApiModelProperty(value = "车辆联系人姓名", name = "vehicleContactName", required = true)
// @NotEmpty(message = "车辆联系人姓名不能为空")
private String vehicleContactName;
@ApiModelProperty(value = "车辆联系人电话", name = "vehicleContactPhoneNumber", required = true)
// @NotEmpty(message = "车辆联系人电话不能为空")
private String vehicleContactPhoneNumber;
@ApiModelProperty(value = "车辆备案分类1, 长期车辆,2, 一次性备案,3, 内部车辆, 4, 临时车辆)", name = "vehicleFilingMethod", required = true)
// @NotEmpty(message = "车辆备案分类1, 长期车辆,2, 一次性备案,3, 内部车辆, 4, 临时车辆)不能为空")
private String vehicleFilingMethod;
@ApiModelProperty(value = "有效标识", name = "edwValidFlag", required = true)
// @NotEmpty(message = "有效标识不能为空")
private String edwValidFlag;
@ApiModelProperty(value = "数据源头", name = "edwDataSource", required = true)
// @NotEmpty(message = "数据源头不能为空")
private String edwDataSource;
@ApiModelProperty(value = "创建时间", name = "edwCreateDate", required = true)
// @NotEmpty(message = "创建时间不能为空")
private String edwCreateDate;
@ApiModelProperty(value = "更新时间", name = "edwLastUpdate", required = true)
// @NotEmpty(message = "更新时间不能为空")
private String edwLastUpdate;
@ApiModelProperty(value = "分区列", name = "dataVersion", required = true)
// @NotNull(message = "分区列不能为空")
private Long dataVersion;
@ApiModelProperty(value = "同步时间", name = "accLastUpdateDate", required = true)
// @NotNull(message = "同步时间不能为空")
private String accLastUpdateDate;
@ApiModelProperty(value = "${column.comment}", name = "idSequence", required = true)
// @NotNull(message = "${column.comment}不能为空")
private Long idSequence;
}

View File

@ -22,29 +22,29 @@ import javax.validation.constraints.NotNull;
@AllArgsConstructor @AllArgsConstructor
public class VideoUpdateCmd extends Command { public class VideoUpdateCmd extends Command {
@ApiModelProperty(value = "主键", name = "id", required = true) @ApiModelProperty(value = "主键", name = "id", required = true)
@NotNull(message = "主键不能为空") // @NotNull(message = "主键不能为空")
private Long id; private Long id;
@ApiModelProperty(value = "口门/闸机id 外键id ", name = "foreignId", required = true) @ApiModelProperty(value = "口门/闸机id 外键id ", name = "foreignId", required = true)
@NotNull(message = "口门/闸机id 外键id 不能为空") // @NotNull(message = "口门/闸机id 外键id 不能为空")
private Long foreignId; private Long foreignId;
@ApiModelProperty(value = "设备类型1-口门 2-闸机)", name = "deviceType", required = true) @ApiModelProperty(value = "设备类型1-口门 2-闸机)", name = "deviceType", required = true)
@NotNull(message = "设备类型1-口门 2-闸机)不能为空") // @NotNull(message = "设备类型1-口门 2-闸机)不能为空")
private Integer deviceType; private Integer deviceType;
@ApiModelProperty(value = "摄像头id", name = "videoResourceId", required = true) @ApiModelProperty(value = "摄像头id", name = "videoResourceId", required = true)
@NotEmpty(message = "摄像头id不能为空") // @NotEmpty(message = "摄像头id不能为空")
private String videoResourceId; private String videoResourceId;
@ApiModelProperty(value = "摄像头名称", name = "videoResourceName", required = true) @ApiModelProperty(value = "摄像头名称", name = "videoResourceName", required = true)
@NotEmpty(message = "摄像头名称不能为空") // @NotEmpty(message = "摄像头名称不能为空")
private String videoResourceName; private String videoResourceName;
private String videoResourceCode; private String videoResourceCode;
@ApiModelProperty(value = "摄像头类型1-移动 2-平台)", name = "videoType", required = true) @ApiModelProperty(value = "摄像头类型1-移动 2-平台)", name = "videoType", required = true)
@NotNull(message = "摄像头类型1-移动 2-平台)不能为空") // @NotNull(message = "摄像头类型1-移动 2-平台)不能为空")
private Integer videoType; private Integer videoType;
@ApiModelProperty(value = "经度", name = "longitude", required = true) @ApiModelProperty(value = "经度", name = "longitude", required = true)
@NotEmpty(message = "经度不能为空") // @NotEmpty(message = "经度不能为空")
private String longitude; private String longitude;
@ApiModelProperty(value = "纬度", name = "latitude", required = true) @ApiModelProperty(value = "纬度", name = "latitude", required = true)
@NotEmpty(message = "纬度不能为空") // @NotEmpty(message = "纬度不能为空")
private String latitude; private String latitude;
} }

View File

@ -0,0 +1,80 @@
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.sql.Date;
/**
* web-client
*
* @Author dearLin
* @Date 2026-04-23 10:04:31
*/
@Data
public class EVehicleBasicInfoCO extends ClientObject {
//id
@ApiModelProperty(value = "id")
private Long id;
//车辆ID
@ApiModelProperty(value = "车辆ID")
private String vehicleRecordId;
//车辆备案信息录入单位
@ApiModelProperty(value = "车辆备案信息录入单位")
private String vehicleFilingInfoRecordingOrg;
//车辆归属单位
@ApiModelProperty(value = "车辆归属单位")
private String vehicleOwningEntity;
//车辆牌照号码
@ApiModelProperty(value = "车辆牌照号码")
private String vehiclePlateNumber;
//车辆行驶证号码
@ApiModelProperty(value = "车辆行驶证号码")
private String vehicleRegistrationNumber;
//车辆类型名称
@ApiModelProperty(value = "车辆类型名称")
private String vehicleCategoryName;
//车辆牌照颜色名称
@ApiModelProperty(value = "车辆牌照颜色名称")
private String vehiclePlateColorName;
//车辆备案时间
@ApiModelProperty(value = "车辆备案时间")
private String vehicleFilingTime;
//车辆联系人姓名
@ApiModelProperty(value = "车辆联系人姓名")
private String vehicleContactName;
//车辆联系人电话
@ApiModelProperty(value = "车辆联系人电话")
private String vehicleContactPhoneNumber;
//车辆备案分类1, 长期车辆,2, 一次性备案,3, 内部车辆, 4, 临时车辆)
@ApiModelProperty(value = "车辆备案分类1, 长期车辆,2, 一次性备案,3, 内部车辆, 4, 临时车辆)")
private String vehicleFilingMethod;
//有效标识
@ApiModelProperty(value = "有效标识")
private String edwValidFlag;
//数据源头
@ApiModelProperty(value = "数据源头")
private String edwDataSource;
//创建时间
@ApiModelProperty(value = "创建时间")
private String edwCreateDate;
//更新时间
@ApiModelProperty(value = "更新时间")
private String edwLastUpdate;
//分区列
@ApiModelProperty(value = "分区列")
private Long dataVersion;
//同步时间
@ApiModelProperty(value = "同步时间")
private String accLastUpdateDate;
private Long idSequence;
//备注
@ApiModelProperty(value = "备注")
private String remarks;
}

View File

@ -1,6 +1,7 @@
package com.zcloud.primeport.dto.clientobject; package com.zcloud.primeport.dto.clientobject;
import com.alibaba.cola.dto.ClientObject; import com.alibaba.cola.dto.ClientObject;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;

View File

@ -0,0 +1,32 @@
package com.zcloud.primeport.domain.gateway;
import com.zcloud.primeport.domain.model.EVehicleBasicInfoE;
import java.util.List;
/**
* web-domain
*
* @Author dearLin
* @Date 2026-04-23 10:04:32
*/
public interface EVehicleBasicInfoGateway {
/**
*
*/
Boolean add(EVehicleBasicInfoE eVehicleBasicInfoE);
/**
*
*/
Boolean update(EVehicleBasicInfoE eVehicleBasicInfoE);
/**
*
*/
Boolean deletedEVehicleBasicInfoById(Long id);
Boolean deletedEVehicleBasicInfoByIds(List<Long> id);
}

View File

@ -0,0 +1,52 @@
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 dearLin
* @Date 2026-04-23 10:04:32
*/
@Data
public class EVehicleBasicInfoE extends BaseE {
//车辆ID
private String vehicleRecordId;
//车辆备案信息录入单位
private String vehicleFilingInfoRecordingOrg;
//车辆归属单位
private String vehicleOwningEntity;
//车辆牌照号码
private String vehiclePlateNumber;
//车辆行驶证号码
private String vehicleRegistrationNumber;
//车辆类型名称
private String vehicleCategoryName;
//车辆牌照颜色名称
private String vehiclePlateColorName;
//车辆备案时间
private String vehicleFilingTime;
//车辆联系人姓名
private String vehicleContactName;
//车辆联系人电话
private String vehicleContactPhoneNumber;
//车辆备案分类1, 长期车辆,2, 一次性备案,3, 内部车辆, 4, 临时车辆)
private String vehicleFilingMethod;
//有效标识
private String edwValidFlag;
//数据源头
private String edwDataSource;
//创建时间
private String edwCreateDate;
//更新时间
private String edwLastUpdate;
//分区列
private Long dataVersion;
//同步时间
private String accLastUpdateDate;
private Long idSequence;
}

View File

@ -0,0 +1,51 @@
package com.zcloud.primeport.gatewayimpl;
import com.zcloud.primeport.domain.gateway.EVehicleBasicInfoGateway;
import com.zcloud.primeport.domain.model.EVehicleBasicInfoE;
import com.zcloud.primeport.persistence.dataobject.EVehicleBasicInfoDO;
import com.zcloud.primeport.persistence.repository.EVehicleBasicInfoRepository;
import lombok.AllArgsConstructor;
import com.zcloud.gbscommon.utils.Tools;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* web-infrastructure
*
* @Author dearLin
* @Date 2026-04-23 10:04:32
*/
@Service
@AllArgsConstructor
public class EVehicleBasicInfoGatewayImpl implements EVehicleBasicInfoGateway {
private final EVehicleBasicInfoRepository eVehicleBasicInfoRepository;
@Override
public Boolean add(EVehicleBasicInfoE eVehicleBasicInfoE) {
EVehicleBasicInfoDO d = new EVehicleBasicInfoDO();
BeanUtils.copyProperties(eVehicleBasicInfoE, d);
eVehicleBasicInfoRepository.save(d);
return true;
}
@Override
public Boolean update(EVehicleBasicInfoE eVehicleBasicInfoE) {
EVehicleBasicInfoDO d = new EVehicleBasicInfoDO();
BeanUtils.copyProperties(eVehicleBasicInfoE, d);
eVehicleBasicInfoRepository.updateById(d);
return true;
}
@Override
public Boolean deletedEVehicleBasicInfoById(Long id) {
return eVehicleBasicInfoRepository.removeById(id);
}
@Override
public Boolean deletedEVehicleBasicInfoByIds(List<Long> ids) {
return eVehicleBasicInfoRepository.removeByIds(ids);
}
}

View File

@ -0,0 +1,75 @@
package com.zcloud.primeport.persistence.dataobject;
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 dearLin
* @Date 2026-04-23 10:04:32
*/
@Data
@TableName("e_vehicle_basic_info")
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class EVehicleBasicInfoDO extends BaseDO {
//车辆ID
@ApiModelProperty(value = "车辆ID")
private String vehicleRecordId;
//车辆备案信息录入单位
@ApiModelProperty(value = "车辆备案信息录入单位")
private String vehicleFilingInfoRecordingOrg;
//车辆归属单位
@ApiModelProperty(value = "车辆归属单位")
private String vehicleOwningEntity;
//车辆牌照号码
@ApiModelProperty(value = "车辆牌照号码")
private String vehiclePlateNumber;
//车辆行驶证号码
@ApiModelProperty(value = "车辆行驶证号码")
private String vehicleRegistrationNumber;
//车辆类型名称
@ApiModelProperty(value = "车辆类型名称")
private String vehicleCategoryName;
//车辆牌照颜色名称
@ApiModelProperty(value = "车辆牌照颜色名称")
private String vehiclePlateColorName;
//车辆备案时间
@ApiModelProperty(value = "车辆备案时间")
private String vehicleFilingTime;
//车辆联系人姓名
@ApiModelProperty(value = "车辆联系人姓名")
private String vehicleContactName;
//车辆联系人电话
@ApiModelProperty(value = "车辆联系人电话")
private String vehicleContactPhoneNumber;
//车辆备案分类1, 长期车辆,2, 一次性备案,3, 内部车辆, 4, 临时车辆)
@ApiModelProperty(value = "车辆备案分类1, 长期车辆,2, 一次性备案,3, 内部车辆, 4, 临时车辆)")
private String vehicleFilingMethod;
//有效标识
@ApiModelProperty(value = "有效标识")
private String edwValidFlag;
//数据源头
@ApiModelProperty(value = "数据源头")
private String edwDataSource;
//创建时间
@ApiModelProperty(value = "创建时间")
private String edwCreateDate;
//更新时间
@ApiModelProperty(value = "更新时间")
private String edwLastUpdate;
//分区列
@ApiModelProperty(value = "分区列")
private Long dataVersion;
//同步时间
@ApiModelProperty(value = "同步时间")
private String accLastUpdateDate;
private Long idSequence;
}

View File

@ -74,5 +74,7 @@ public class MkmjDO extends BaseDO {
private Long jurisdictionalCorpId; private Long jurisdictionalCorpId;
@TableField(exist = false) @TableField(exist = false)
private String jurisdictionalCorpName; private String jurisdictionalCorpName;
@TableField(exist = false)
private String closedAreaName;
} }

View File

@ -7,9 +7,12 @@ import com.jjb.saas.framework.datascope.annotation.DataScopes;
import com.zcloud.primeport.persistence.dataobject.ClosedAreaPersonApplyDO; import com.zcloud.primeport.persistence.dataobject.ClosedAreaPersonApplyDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zcloud.primeport.persistence.dataobject.UserDto; import com.zcloud.primeport.persistence.dataobject.UserDto;
import com.zcloud.primeport.plan.mjDevice.TwoPersonUtil;
import com.zcloud.primeport.plan.mjDevice.dto.TwoLevelUser;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@ -26,5 +29,7 @@ public interface ClosedAreaPersonApplyMapper extends BaseMapper<ClosedAreaPerson
IPage<UserDto> getCorpUserList(IPage<ClosedAreaPersonApplyDO> iPage, @Param("params") Map<String, Object> params); IPage<UserDto> getCorpUserList(IPage<ClosedAreaPersonApplyDO> iPage, @Param("params") Map<String, Object> params);
IPage<ClosedAreaPersonApplyDO> listPage(Page<Map<String, Object>> page, @Param("params") Map<String, Object> params, String menuPerms); IPage<ClosedAreaPersonApplyDO> listPage(Page<Map<String, Object>> page, @Param("params") Map<String, Object> params, String menuPerms);
List<TwoLevelUser> getDockAuthInfoById(Long applyId);
} }

View File

@ -0,0 +1,17 @@
package com.zcloud.primeport.persistence.mapper;
import com.zcloud.primeport.persistence.dataobject.EVehicleBasicInfoDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* web-infrastructure
*
* @Author dearLin
* @Date 2026-04-23 10:04:32
*/
@Mapper
public interface EVehicleBasicInfoMapper extends BaseMapper<EVehicleBasicInfoDO> {
}

View File

@ -4,8 +4,11 @@ import com.zcloud.primeport.persistence.dataobject.ClosedAreaPersonApplyDO;
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;
import com.zcloud.primeport.persistence.dataobject.UserDto; import com.zcloud.primeport.persistence.dataobject.UserDto;
import com.zcloud.primeport.plan.mjDevice.TwoPersonUtil;
import com.zcloud.primeport.plan.mjDevice.dto.TwoLevelUser;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@ -17,5 +20,7 @@ public interface ClosedAreaPersonApplyRepository extends BaseRepository<ClosedAr
PageResponse<ClosedAreaPersonApplyDO> listPage(Map<String,Object> params); PageResponse<ClosedAreaPersonApplyDO> listPage(Map<String,Object> params);
PageResponse<UserDto> getCorpUserList(Map<String, Object> params); PageResponse<UserDto> getCorpUserList(Map<String, Object> params);
List<TwoLevelUser> getDockAuthInfoById(Long applyId);
} }

View File

@ -0,0 +1,18 @@
package com.zcloud.primeport.persistence.repository;
import com.zcloud.primeport.persistence.dataobject.EVehicleBasicInfoDO;
import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.repo.BaseRepository;
import java.util.Map;
/**
* web-infrastructure
*
* @Author dearLin
* @Date 2026-04-23 10:04:33
*/
public interface EVehicleBasicInfoRepository extends BaseRepository<EVehicleBasicInfoDO> {
PageResponse<EVehicleBasicInfoDO> listPage(Map<String, Object> params);
}

View File

@ -14,9 +14,13 @@ import com.zcloud.gbscommon.utils.Query;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import com.zcloud.primeport.plan.mjDevice.TwoPersonUtil;
import com.zcloud.primeport.plan.mjDevice.dto.TwoLevelUser;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@ -50,5 +54,10 @@ public class ClosedAreaPersonApplyRepositoryImpl extends BaseRepositoryImpl<Clos
IPage<UserDto> result = closedAreaPersonApplyMapper.getCorpUserList(iPage, params); IPage<UserDto> result = closedAreaPersonApplyMapper.getCorpUserList(iPage, params);
return PageHelper.pageToResponse(result, result.getRecords()); return PageHelper.pageToResponse(result, result.getRecords());
} }
@Override
public List<TwoLevelUser> getDockAuthInfoById(Long applyId) {
return closedAreaPersonApplyMapper.getDockAuthInfoById(applyId);
}
} }

View File

@ -0,0 +1,39 @@
package com.zcloud.primeport.persistence.repository.impl;
import com.zcloud.primeport.persistence.dataobject.EVehicleBasicInfoDO;
import com.zcloud.primeport.persistence.mapper.EVehicleBasicInfoMapper;
import com.zcloud.primeport.persistence.repository.EVehicleBasicInfoRepository;
import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.common.PageHelper;
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 dearLin
* @Date 2026-04-23 10:04:33
*/
@Service
@RequiredArgsConstructor
public class EVehicleBasicInfoRepositoryImpl extends BaseRepositoryImpl<EVehicleBasicInfoMapper, EVehicleBasicInfoDO> implements EVehicleBasicInfoRepository {
private final EVehicleBasicInfoMapper eVehicleBasicInfoMapper;
@Override
public PageResponse<EVehicleBasicInfoDO> listPage(Map<String, Object> params) {
IPage<EVehicleBasicInfoDO> iPage = new Query<EVehicleBasicInfoDO>().getPage(params);
QueryWrapper<EVehicleBasicInfoDO> queryWrapper = new QueryWrapper<>();
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params);
queryWrapper.orderByDesc("create_time");
IPage<EVehicleBasicInfoDO> result = eVehicleBasicInfoMapper.selectPage(iPage, queryWrapper);
return PageHelper.pageToResponse(result, result.getRecords());
}
}

View File

@ -0,0 +1,154 @@
package com.zcloud.primeport.plan.mjDevice;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import com.zcloud.gbscommon.dahuaDevice.DaHuaDeviceCommon;
import com.zcloud.gbscommon.dahuaDevice.DhuaConfig;
import com.zcloud.gbscommon.hkDevice.HKDeviceUtil;
import com.zcloud.gbscommon.utils.DateUtil;
import com.zcloud.gbscommon.utils.Tools;
import com.zcloud.primeport.persistence.dataobject.XgfApplyPersonDO;
import com.zcloud.primeport.persistence.repository.ClosedAreaPersonApplyRepository;
import com.zcloud.primeport.persistence.repository.XgfApplyPersonRepository;
import com.zcloud.primeport.plan.mjDevice.dto.TwoLevelUser;
import jodd.util.Base64;
import lombok.Data;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
/**
*
*
*/
@Component
public class TwoPersonUtil {
@Resource
private ClosedAreaPersonApplyRepository closedAreaPersonApplyRepository;
@Resource
// @Value("${kmmj.dockflag}")
// private Integer dockFlag;
// @Value("${oneLevelPerson.prefix}")
// private String prefix;
private static Integer dockFlag = 1;
private static String prefix = "https://skqhdg.porthebei.com:9008/yjkmRy/";
private static String username = "shuangkong";
private static String password = "qinan@202604";
private static String clientId = "mkmj_management";
private static String clientSecret = "5ef82f7c-9926-46a3-8d07-136fd054849c";
public void levelTwoPeopleCompanyByApplyId(Long applyId) {
List<TwoLevelUser> u = new ArrayList<>();
List<TwoLevelUser> userList = closedAreaPersonApplyRepository.getDockAuthInfoById(applyId);
userList.forEach(item -> {
item.setUserCard(Base64.decodeToString(item.getUserCard()));
u.add(item);
if (Tools.notEmpty(item.getEntourage())) {
List<TwoLevelUser> entourageList = getEntourageList(new JSONArray(item.getEntourage()));
if (!entourageList.isEmpty()) {
u.addAll(entourageList);
}
}
});
}
protected List<TwoLevelUser> getEntourageList(JSONArray entries) {
if (entries.isEmpty()) return new ArrayList<>();
ArrayList<TwoLevelUser> objects = new ArrayList<>();
for (int i = 0; i < entries.size(); i++) {
TwoLevelUser u = new TwoLevelUser();
JSONObject jsonObject = entries.getJSONObject(i);
// [{"phone": "15128544888", "corpId": "2008796992261763072",
// "deptId": "2018204266870550528", "userId": "2027620760511225858",
// "corpName": "相关方普通企业_王雯仲", "deptName": "总经办",
// "userCard": "MTMwMzI0MTk5NTA2MDQxMjUx", "userName": "培训测试人员3",
// "userFaceUrl": null, "trainingState": "0", "endTrainingTime": null,
// "startTrainingTime": null}, {"phone": "13230332854",
// "corpId": "2008796992261763072", "deptId": "2018204266870550528",
// "userId": "2021400333349629953", "corpName": "相关方普通企业_王雯仲",
// "deptName": "总经办", "userCard": "MTMwMzI0MTk5NTA2MDQwNjkx",
// "userName": "线下培训人员2",
// "userFaceUrl": "2008796992261763072/202604/user_avatar/aa7880cf7abb4ee7aaa2eb6b911c6022.jpg",
// "trainingState": "0",
// "endTrainingTime": "2026-04-11 00:00:00",
// "startTrainingTime": "2026-04-06 00:00:00"},
u.setUserPhone(jsonObject.getStr("phone"));
u.setUserCard(Base64.decodeToString(jsonObject.getStr("userCard")));
u.setUserFaceImages(jsonObject.getStr("userFaceUrl"));
u.setUserName(jsonObject.getStr("userName"));
objects.add(u);
}
return objects;
}
/**
*
*/
public void dockLongTermUserAuthLevelTwo(TwoLevelUser towUser) {
// 跟据身份证号查询 这个人有没有一级门禁 没有新增一级门禁
if (!dockFlag.equals(1)) return;
JSONObject userListByUserCard = HKDeviceUtil.getUserListByPhone(Arrays.asList(towUser.getUserPhone()));
if (userListByUserCard.getJSONArray("data").isEmpty()) return;
// 门禁系统里没有这个人,哪么需要把这个人的信息同步过去
HKDeviceUtil.saveUser(towUser.getUserName(), towUser.getUserCard(), towUser.getUserFaceImagesBase64(), towUser.getUserPhone());
}
private static <T> List<List<T>> partition(List<T> list, int size) {
List<List<T>> partitions = new ArrayList<>();
for (int i = 0; i < list.size(); i += size) {
partitions.add(list.subList(i, Math.min(i + size, list.size())));
}
return partitions;
}
/*
*
* */
public void dockLongAuthTwo(List<TwoLevelUser> userIdList, List<String> resourceInfos, String time) {
if (!dockFlag.equals(1)) return;
JSONArray jsonArray = new JSONArray();
List<String> phoneList = userIdList.stream().map(TwoLevelUser::getUserPhone).collect(Collectors.toList());
List<List<String>> partition = partition(phoneList, 20);
partition.forEach(item -> {
// 接口有限制 最多一次查询20个人
jsonArray.addAll(HKDeviceUtil.getUserListByPhone(item).getJSONObject("data").getJSONArray("list"));
});
ArrayList<JSONObject> objects = new ArrayList<>();
resourceInfos.forEach(item -> {
JSONObject entries = new JSONObject();
entries.set("resourceIndexCode", item);
entries.set("resourceType", "door");
objects.add(entries);
});
// 接口有限制 最多一次存1000个人
ArrayList<String> userIds = new ArrayList<>();
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
userIds.add(jsonObject.getStr("personId"));
}
List<List<String>> partitionUserIds = partition(userIds, 1000);
partitionUserIds.forEach(itemUserPhones -> {
HKDeviceUtil.authPersonArea(itemUserPhones, objects, time + "T00:00:00+08:00", time + "T23:59:59+08:00");
});
}
protected DaHuaDeviceCommon getDaHuaDeviceCommon() {
return new DaHuaDeviceCommon(new DhuaConfig(dockFlag, prefix, username, password, clientId, clientSecret));
}
public static void main(String[] args) throws Exception {
JSONArray objects = new JSONArray();
JSONArray objects1 = new JSONArray("");
JSONArray objects3 = new JSONArray(null);
System.out.println(objects1);
}
}

View File

@ -0,0 +1,20 @@
package com.zcloud.primeport.plan.mjDevice.dto;
import lombok.Data;
import java.util.List;
@Data
public class TwoLevelUser {
private String userCard;
private String userPhone;
private String userUid;
private String userName;
private String userFaceImages;
private String userFaceImagesBase64;
private String visitStartTime;
private String visitEndTime;
private List<String> resourceIndexCode;
private String hkIndexCode;
private String entourage;
}

View File

@ -48,6 +48,9 @@
<if test="params.name != null and params.name != ''"> <if test="params.name != null and params.name != ''">
AND u.name like CONCAT('%', #{params.name}, '%') AND u.name like CONCAT('%', #{params.name}, '%')
</if> </if>
<if test="params.noSelf != null and params.noSelf == 2">
AND u.id != #{params.selfUserId}
</if>
ORDER BY ORDER BY
u.department_id u.department_id
</select> </select>
@ -84,5 +87,55 @@
</if> </if>
order by c.id desc order by c.id desc
</select> </select>
<select id="getDockAuthInfoById" resultType="com.zcloud.primeport.plan.mjDevice.dto.TwoLevelUser">
SELECT
capa.id,
capa.closed_area_id,
GROUP_CONCAT( chvi.hk_index_code ) hk_index_code,
capa.visit_start_time,
capa.visit_end_time,
capa.user_face_url,
capa.user_phone,
capa.user_card,
capa.entourage
FROM
closed_area_person_apply capa
LEFT JOIN (
SELECT
m.closed_area_id,
GROUP_CONCAT( DISTINCT tmp.hk_index_code ) hk_index_code
FROM
mkmj m
LEFT JOIN (
SELECT
mg.mkmj_id,
mg.hk_index_code
FROM
mkmj_gate mg
WHERE
mg.gate_type = 'HGKM_MKMJ_GATE_TYPE_PERSON'
AND mg.gate_status = 2
AND mg.delete_enum = 'FALSE'
) tmp ON m.id = tmp.mkmj_id
WHERE
m.delete_enum = 'FALSE'
AND m.mkmj_status = 2
AND m.mkmj_level = 2
GROUP BY
m.closed_area_id
) chvi ON chvi.closed_area_id = capa.closed_area_id
WHERE
capa.delete_enum = 'FALSE'
AND capa.audit_flag = 2
AND capa.person_belong_type IN ( 1, 2, 3 )
AND capa.visit_end_time &gt;= DATE_FORMAT( now(), '%Y-%m-%d' )
AND capa.visit_start_time &lt;= DATE_FORMAT( now(), '%Y-%m-%d' )
AND chvi.hk_index_code IS NOT NULL
<if test="applyId != null">
and capa.id = #{applyId}
</if>
GROUP BY
capa.id
</select>
</mapper> </mapper>

View File

@ -0,0 +1,8 @@
<?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.EVehicleBasicInfoMapper">
</mapper>

View File

@ -21,6 +21,7 @@
m.longitude, m.longitude,
m.latitude, m.latitude,
m.closed_area_id, m.closed_area_id,
ca.closed_area_name,
m.out_direction_type, m.out_direction_type,
ca.jurisdictional_corp_id, ca.jurisdictional_corp_id,
ca.jurisdictional_corp_name, ca.jurisdictional_corp_name,

View File

@ -53,6 +53,8 @@
<if test="params.gateStatus != null"> <if test="params.gateStatus != null">
AND g.gate_status = #{params.gateStatus} AND g.gate_status = #{params.gateStatus}
</if> </if>
GROUP BY
g.id
ORDER BY g.id DESC ORDER BY g.id DESC
</select> </select>
</mapper> </mapper>