feat:接入大华一级口门进出记录

koumen
dearLin 2026-04-23 09:02:56 +08:00
parent 1dc1f2e7da
commit a16262165f
25 changed files with 1720 additions and 55 deletions

View File

@ -0,0 +1,117 @@
package com.zcloud.primeport.web;
import com.zcloud.primeport.api.MkmjSwipeCardRecordServiceI;
import com.zcloud.primeport.dto.MkmjSwipeCardRecordAddCmd;
import com.zcloud.primeport.dto.MkmjSwipeCardRecordPageQry;
import com.zcloud.primeport.dto.MkmjSwipeCardRecordUpdateCmd;
import com.zcloud.primeport.dto.clientobject.MkmjSwipeCardRecordCO;
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 com.zcloud.primeport.dto.mjDock.SwipeRecordPushExtend;
import com.zcloud.primeport.dto.mjDock.SwipeRecordPushInfo;
import com.zcloud.primeport.dto.mjDock.SwipeRecordPushVo;
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-22 17:04:00
*/
@Api(tags = "")
@RequestMapping("/${application.gateway}/mkmjSwipeCardRecord")
@RestController
@AllArgsConstructor
public class MkmjSwipeCardRecordController {
private final MkmjSwipeCardRecordServiceI mkmjSwipeCardRecordService;
@ApiOperation("新增")
@PostMapping("/dockSave")
public SingleResponse dockSave(@Validated @RequestBody SwipeRecordPushVo cmd) {
SwipeRecordPushInfo info = cmd.getInfo();
SwipeRecordPushExtend extend = info.getExtend();
MkmjSwipeCardRecordAddCmd cardRecordEntity = new MkmjSwipeCardRecordAddCmd();
cardRecordEntity
.setNodeCode(info.getNodeCode()).setAlarmCode(info.getAlarmCode()).setAlarmPicture(info.getAlarmPicture())
.setNodeType(info.getNodeType()).setAlarmDate(info.getAlarmDate()).setAlarmGrade(info.getAlarmGrade())
.setUnitType(info.getUnitType()).setAlarmType(info.getAlarmType()).setChannelSeq(info.getChannelSeq())
.setChannelName(info.getChannelName()).setAlarmStat(info.getAlarmStat()).setDeptName(extend.getDeptName())
.setAcsChannelCode(extend.getAcsChannelCode()).setMaskState(extend.getMaskState()).setEnterOrExit(extend.getEnterOrExit())
.setOpenTypeStr(extend.getOpenTypeStr()).setSwingTime(extend.getSwingTime()).setDeviceName(extend.getDeviceName())
.setPersonCode(extend.getPersonCode()).setOpenType(extend.getOpenType()).setOrgCode(extend.getOrgCode())
.setPaperType(extend.getPaperType()).setPaperNumber(extend.getPaperNumber()).setErrorDetail(extend.getErrorDetail())
.setOpenFailedCod(extend.getOpenFailedCode()).setExtendId(extend.getId()).setBeginTime(extend.getBeginTime())
.setAcsChannelName(extend.getAcsChannelName()).setCardStatus(extend.getCardStatus()).setOrgName(extend.getOrgName())
.setSex(extend.getSex()).setDeptId(extend.getDeptId()).setCardType(extend.getCardType()).setDeviceCode(extend.getDeviceCode())
.setPersonName(extend.getPersonName()).setPersonImg(extend.getPersonImg()).setOpenResult(extend.getOpenResult())
.setPersonId(extend.getPersonId()).setRecordImage1(extend.getRecordImage1()).setCategory(extend.getCategory())
.setCardNumber(extend.getCardNumber()).setRfidType(extend.getRfidType()).setAge(extend.getAge()).setVRecordFlag(extend.getVRecordFlag());
return mkmjSwipeCardRecordService.add(cardRecordEntity);
// return SingleResponse.buildSuccess();
}
@ApiOperation("新增")
@PostMapping("/save")
public SingleResponse<MkmjSwipeCardRecordCO> add(@Validated @RequestBody MkmjSwipeCardRecordAddCmd cmd) {
return mkmjSwipeCardRecordService.add(cmd);
}
@ApiOperation("分页")
@PostMapping("/list")
public PageResponse<MkmjSwipeCardRecordCO> page(@RequestBody MkmjSwipeCardRecordPageQry qry) {
return mkmjSwipeCardRecordService.listPage(qry);
}
@ApiOperation("所有数据")
@GetMapping("/listAll")
public MultiResponse<MkmjSwipeCardRecordCO> listAll() {
return MultiResponse.of(new ArrayList<MkmjSwipeCardRecordCO>());
}
@ApiOperation("详情")
@GetMapping("/{id}")
public SingleResponse<MkmjSwipeCardRecordCO> getInfoById(@PathVariable("id") Long id) {
return SingleResponse.of(mkmjSwipeCardRecordService.queryById(id));
}
@ApiOperation("删除")
@DeleteMapping("/{id}")
public Response remove(@PathVariable("id") Long id) {
mkmjSwipeCardRecordService.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());
mkmjSwipeCardRecordService.removeBatch(idsList);
return SingleResponse.buildSuccess();
}
@ApiOperation("修改")
@PutMapping("/edit")
public SingleResponse edit(@Validated @RequestBody MkmjSwipeCardRecordUpdateCmd mkmjSwipeCardRecordUpdateCmd) {
mkmjSwipeCardRecordService.edit(mkmjSwipeCardRecordUpdateCmd);
return SingleResponse.buildSuccess();
}
}

View File

@ -0,0 +1,40 @@
package com.zcloud.primeport.command;
import com.zcloud.primeport.domain.gateway.MkmjSwipeCardRecordGateway;
import com.zcloud.primeport.domain.model.MkmjSwipeCardRecordE;
import com.zcloud.primeport.dto.MkmjSwipeCardRecordAddCmd;
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-22 17:03:59
*/
@Component
@AllArgsConstructor
public class MkmjSwipeCardRecordAddExe {
private final MkmjSwipeCardRecordGateway mkmjSwipeCardRecordGateway;
@Transactional(rollbackFor = Exception.class)
public boolean execute(MkmjSwipeCardRecordAddCmd cmd) {
MkmjSwipeCardRecordE mkmjSwipeCardRecordE = new MkmjSwipeCardRecordE();
BeanUtils.copyProperties(cmd, mkmjSwipeCardRecordE);
boolean res = false;
try {
res = mkmjSwipeCardRecordGateway.add(mkmjSwipeCardRecordE);
} 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.MkmjSwipeCardRecordGateway;
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-22 17:04:01
*/
@Component
@AllArgsConstructor
public class MkmjSwipeCardRecordRemoveExe {
private final MkmjSwipeCardRecordGateway mkmjSwipeCardRecordGateway;
@Transactional(rollbackFor = Exception.class)
public boolean execute(Long id) {
boolean res = mkmjSwipeCardRecordGateway.deletedMkmjSwipeCardRecordById(id);
if (!res) {
throw new BizException("删除失败");
}
return true;
}
@Transactional(rollbackFor = Exception.class)
public boolean execute(List<Long> ids) {
boolean res = mkmjSwipeCardRecordGateway.deletedMkmjSwipeCardRecordByIds(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.MkmjSwipeCardRecordGateway;
import com.zcloud.primeport.domain.model.MkmjSwipeCardRecordE;
import com.zcloud.primeport.dto.MkmjSwipeCardRecordUpdateCmd;
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-22 17:04:02
*/
@Component
@AllArgsConstructor
public class MkmjSwipeCardRecordUpdateExe {
private final MkmjSwipeCardRecordGateway mkmjSwipeCardRecordGateway;
@Transactional(rollbackFor = Exception.class)
public void execute(MkmjSwipeCardRecordUpdateCmd mkmjSwipeCardRecordUpdateCmd) {
MkmjSwipeCardRecordE mkmjSwipeCardRecordE = new MkmjSwipeCardRecordE();
BeanUtils.copyProperties(mkmjSwipeCardRecordUpdateCmd, mkmjSwipeCardRecordE);
boolean res = mkmjSwipeCardRecordGateway.update(mkmjSwipeCardRecordE);
if (!res) {
throw new BizException("修改失败");
}
}
}

View File

@ -0,0 +1,26 @@
package com.zcloud.primeport.command.convertor;
import com.zcloud.primeport.dto.clientobject.MkmjSwipeCardRecordCO;
import com.zcloud.primeport.persistence.dataobject.MkmjSwipeCardRecordDO;
import org.mapstruct.Mapper;
import java.util.List;
/**
* web-app
*
* @Author dearLin
* @Date 2026-04-22 17:04:00
*/
@Mapper(componentModel = "spring")
public interface MkmjSwipeCardRecordCoConvertor {
/**
* @param mkmjSwipeCardRecordDOs
* @return
*/
List<MkmjSwipeCardRecordCO> converDOsToCOs(List<MkmjSwipeCardRecordDO> mkmjSwipeCardRecordDOs);
MkmjSwipeCardRecordCO converDOToCO(MkmjSwipeCardRecordDO mkmjSwipeCardRecordDO);
}

View File

@ -0,0 +1,52 @@
package com.zcloud.primeport.command.query;
import com.zcloud.primeport.command.convertor.MkmjSwipeCardRecordCoConvertor;
import com.zcloud.primeport.dto.MkmjSwipeCardRecordPageQry;
import com.zcloud.primeport.dto.clientobject.MkmjSwipeCardRecordCO;
import com.zcloud.primeport.persistence.dataobject.MkmjSwipeCardRecordDO;
import com.zcloud.primeport.persistence.repository.MkmjSwipeCardRecordRepository;
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-22 17:04:01
*/
@Component
@AllArgsConstructor
public class MkmjSwipeCardRecordQueryExe {
private final MkmjSwipeCardRecordRepository mkmjSwipeCardRecordRepository;
private final MkmjSwipeCardRecordCoConvertor mkmjSwipeCardRecordCoConvertor;
/**
* id
*
* @param id
* @return
*/
public MkmjSwipeCardRecordCO queryById(Long id) {
return mkmjSwipeCardRecordCoConvertor.converDOToCO(mkmjSwipeCardRecordRepository.getById(id));
}
/**
*
*
* @param mkmjSwipeCardRecordPageQry
* @return
*/
public PageResponse<MkmjSwipeCardRecordCO> execute(MkmjSwipeCardRecordPageQry mkmjSwipeCardRecordPageQry) {
Map<String, Object> params = PageQueryHelper.toHashMap(mkmjSwipeCardRecordPageQry);
PageResponse<MkmjSwipeCardRecordDO> pageResponse = mkmjSwipeCardRecordRepository.listPage(params);
List<MkmjSwipeCardRecordCO> examCenterCOS = mkmjSwipeCardRecordCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
}

View File

@ -0,0 +1,67 @@
package com.zcloud.primeport.service;
import com.zcloud.primeport.api.MkmjSwipeCardRecordServiceI;
import com.zcloud.primeport.command.MkmjSwipeCardRecordAddExe;
import com.zcloud.primeport.command.MkmjSwipeCardRecordRemoveExe;
import com.zcloud.primeport.command.MkmjSwipeCardRecordUpdateExe;
import com.zcloud.primeport.command.query.MkmjSwipeCardRecordQueryExe;
import com.zcloud.primeport.dto.MkmjSwipeCardRecordAddCmd;
import com.zcloud.primeport.dto.MkmjSwipeCardRecordPageQry;
import com.zcloud.primeport.dto.MkmjSwipeCardRecordUpdateCmd;
import com.zcloud.primeport.dto.clientobject.MkmjSwipeCardRecordCO;
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-22 17:04:01
*/
@Service
@AllArgsConstructor
public class MkmjSwipeCardRecordServiceImpl implements MkmjSwipeCardRecordServiceI {
private final MkmjSwipeCardRecordAddExe mkmjSwipeCardRecordAddExe;
private final MkmjSwipeCardRecordUpdateExe mkmjSwipeCardRecordUpdateExe;
private final MkmjSwipeCardRecordRemoveExe mkmjSwipeCardRecordRemoveExe;
private final MkmjSwipeCardRecordQueryExe mkmjSwipeCardRecordQueryExe;
@Override
public MkmjSwipeCardRecordCO queryById(Long id) {
return mkmjSwipeCardRecordQueryExe.queryById(id);
}
@Override
public PageResponse<MkmjSwipeCardRecordCO> listPage(MkmjSwipeCardRecordPageQry qry) {
return mkmjSwipeCardRecordQueryExe.execute(qry);
}
@Override
public SingleResponse add(MkmjSwipeCardRecordAddCmd cmd) {
mkmjSwipeCardRecordAddExe.execute(cmd);
return SingleResponse.buildSuccess();
}
@Override
public void edit(MkmjSwipeCardRecordUpdateCmd mkmjSwipeCardRecordUpdateCmd) {
mkmjSwipeCardRecordUpdateExe.execute(mkmjSwipeCardRecordUpdateCmd);
}
@Override
public void remove(Long id) {
mkmjSwipeCardRecordRemoveExe.execute(id);
}
@Override
public void removeBatch(List<Long> ids) {
mkmjSwipeCardRecordRemoveExe.execute(ids);
}
}

View File

@ -0,0 +1,30 @@
package com.zcloud.primeport.api;
import com.zcloud.primeport.dto.MkmjSwipeCardRecordAddCmd;
import com.zcloud.primeport.dto.MkmjSwipeCardRecordPageQry;
import com.zcloud.primeport.dto.MkmjSwipeCardRecordUpdateCmd;
import com.zcloud.primeport.dto.clientobject.MkmjSwipeCardRecordCO;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import java.util.List;
/**
* web-client
* @Author dearLin
* @Date 2026-04-22 17:14:52
*/
public interface MkmjSwipeCardRecordServiceI {
MkmjSwipeCardRecordCO queryById(Long id);
PageResponse<MkmjSwipeCardRecordCO> listPage(MkmjSwipeCardRecordPageQry qry);
SingleResponse<MkmjSwipeCardRecordCO> add(MkmjSwipeCardRecordAddCmd cmd);
void edit(MkmjSwipeCardRecordUpdateCmd cmd);
void remove(Long id);
void removeBatch(List<Long> ids);
}

View File

@ -0,0 +1,207 @@
package com.zcloud.primeport.dto;
import com.alibaba.cola.dto.Command;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;
import javax.validation.constraints.*;
/**
* web-client
*
* @Author dearLin
* @Date 2026-04-22 17:03:59
*/
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class MkmjSwipeCardRecordAddCmd extends Command {
@ApiModelProperty(value = "刷卡记录表ID", name = "swipeCardRecordId", required = true)
// @NotEmpty(message = "刷卡记录表ID不能为空")
private String swipeCardRecordId;
@ApiModelProperty(value = "节点编码", name = "nodeCode", required = true)
// @NotEmpty(message = "节点编码不能为空")
private String nodeCode;
@ApiModelProperty(value = "报警编号", name = "alarmCode", required = true)
// @NotEmpty(message = "报警编号不能为空")
private String alarmCode;
@ApiModelProperty(value = "报警图片路径", name = "alarmPicture", required = true)
// @NotEmpty(message = "报警图片路径不能为空")
private String alarmPicture;
@ApiModelProperty(value = "节点类型", name = "nodeType", required = true)
// @NotEmpty(message = "节点类型不能为空")
private String nodeType;
@ApiModelProperty(value = "报警时间10位时间戳", name = "alarmDate", required = true)
// @NotNull(message = "报警时间10位时间戳不能为空")
private Long alarmDate;
@ApiModelProperty(value = "报警等级 1严重2一般3轻微", name = "alarmGrade", required = true)
// @NotNull(message = "报警等级 1严重2一般3轻微不能为空")
private Integer alarmGrade;
@ApiModelProperty(value = "单元类型", name = "unitType", required = true)
// @NotNull(message = "单元类型不能为空")
private Integer unitType;
@ApiModelProperty(value = "报警类型", name = "alarmType", required = true)
// @NotNull(message = "报警类型不能为空")
private Integer alarmType;
@ApiModelProperty(value = "通道序号", name = "channelSeq", required = true)
// @NotNull(message = "通道序号不能为空")
private Integer channelSeq;
@ApiModelProperty(value = "通道名称", name = "channelName", required = true)
// @NotEmpty(message = "通道名称不能为空")
private String channelName;
@ApiModelProperty(value = "报警状态 1报警产生2报警消失", name = "alarmStat", required = true)
// @NotNull(message = "报警状态 1报警产生2报警消失不能为空")
private Integer alarmStat;
@ApiModelProperty(value = "部门名称", name = "deptName", required = true)
// @NotEmpty(message = "部门名称不能为空")
private String deptName;
@ApiModelProperty(value = "通道编号", name = "acsChannelCode", required = true)
// @NotEmpty(message = "通道编号不能为空")
private String acsChannelCode;
@ApiModelProperty(value = "口罩状态 3-戴口罩2-未戴口罩1-未识别0-未知", name = "maskState", required = true)
// @NotNull(message = "口罩状态 3-戴口罩2-未戴口罩1-未识别0-未知不能为空")
private Integer maskState;
@ApiModelProperty(value = "进出门类型: 详见 读卡器业务类型字典", name = "enterOrExit", required = true)
// @NotEmpty(message = "进出门类型: 详见 读卡器业务类型字典不能为空")
private String enterOrExit;
@ApiModelProperty(value = "开门类型字符串", name = "openTypeStr", required = true)
// @NotEmpty(message = "开门类型字符串不能为空")
private String openTypeStr;
@ApiModelProperty(value = "刷卡时间格式yyyy-MM:dd HH:mm:ss", name = "swingTime", required = true)
// @NotEmpty(message = "刷卡时间格式yyyy-MM:dd HH:mm:ss不能为空")
private String swingTime;
@ApiModelProperty(value = "设备名称", name = "deviceName", required = true)
// @NotEmpty(message = "设备名称不能为空")
private String deviceName;
@ApiModelProperty(value = "人员编号", name = "personCode", required = true)
// @NotEmpty(message = "人员编号不能为空")
private String personCode;
@ApiModelProperty(value = "开门类型, 详见开门类型 字典", name = "openType", required = true)
// @NotEmpty(message = "开门类型, 详见开门类型 字典不能为空")
private String openType;
@ApiModelProperty(value = "组织编码", name = "orgCode", required = true)
// @NotEmpty(message = "组织编码不能为空")
private String orgCode;
@ApiModelProperty(value = "证件类型", name = "paperType", required = true)
// @NotEmpty(message = "证件类型不能为空")
private String paperType;
@ApiModelProperty(value = "证件号", name = "paperNumber", required = true)
// @NotEmpty(message = "证件号不能为空")
private String paperNumber;
@ApiModelProperty(value = "错误详情", name = "errorDetail", required = true)
// @NotEmpty(message = "错误详情不能为空")
private String errorDetail;
@ApiModelProperty(value = "开门错误码0代表成功96代表需远程验证(需结合平台上远程验证功能使用),其他参考门禁开门错误码", name = "openFailedCod", required = true)
// @NotEmpty(message = "开门错误码0代表成功96代表需远程验证(需结合平台上远程验证功能使用),其他参考门禁开门错误码不能为空")
private String openFailedCod;
@ApiModelProperty(value = "固定值evo-accesscontrol", name = "from", required = true)
// @NotEmpty(message = "固定值evo-accesscontrol不能为空")
private String from;
@ApiModelProperty(value = "extendId标识", name = "extendId", required = true)
// @NotNull(message = "extendId标识不能为空")
private Long extendId;
@ApiModelProperty(value = "开始时间, 13位时间戳", name = "beginTime", required = true)
// @NotNull(message = "开始时间, 13位时间戳不能为空")
private Long beginTime;
@ApiModelProperty(value = "通道名称", name = "acsChannelName", required = true)
// @NotEmpty(message = "通道名称不能为空")
private String acsChannelName;
@ApiModelProperty(value = "预留字段暂未使用默认值为0", name = "cardStatus", required = true)
// @NotNull(message = "预留字段暂未使用默认值为0不能为空")
private Integer cardStatus;
@ApiModelProperty(value = "组织名称", name = "orgName", required = true)
// @NotEmpty(message = "组织名称不能为空")
private String orgName;
@ApiModelProperty(value = "性别 1 男2 女, 0 未知", name = "sex", required = true)
// @NotNull(message = "性别 1 男2 女, 0 未知不能为空")
private Integer sex;
@ApiModelProperty(value = "人员部门id", name = "deptId", required = true)
// @NotNull(message = "人员部门id不能为空")
private Long deptId;
@ApiModelProperty(value = "卡类型", name = "cardType", required = true)
// @NotNull(message = "卡类型不能为空")
private Integer cardType;
@ApiModelProperty(value = "设备编号", name = "deviceCode", required = true)
// @NotEmpty(message = "设备编号不能为空")
private String deviceCode;
@ApiModelProperty(value = "人员姓名", name = "personName", required = true)
// @NotEmpty(message = "人员姓名不能为空")
private String personName;
@ApiModelProperty(value = "刷卡人在平台上的图片,相对路径", name = "personImg", required = true)
// @NotEmpty(message = "刷卡人在平台上的图片,相对路径不能为空")
private String personImg;
@ApiModelProperty(value = "开门结果 0 失败 1 成功", name = "openResult", required = true)
// @NotNull(message = "开门结果 0 失败 1 成功不能为空")
private Integer openResult;
@ApiModelProperty(value = "人员id", name = "personId", required = true)
// @NotNull(message = "人员id不能为空")
private Long personId;
@ApiModelProperty(value = "抓拍图,相对路径", name = "recordImage1", required = true)
// @NotEmpty(message = "抓拍图,相对路径不能为空")
private String recordImage1;
@ApiModelProperty(value = "卡介质 0 IC 1 有源RFID 2 CPU", name = "category", required = true)
// @NotEmpty(message = "卡介质 0 IC 1 有源RFID 2 CPU不能为空")
private String category;
@ApiModelProperty(value = "卡号", name = "cardNumber", required = true)
// @NotEmpty(message = "卡号不能为空")
private String cardNumber;
@ApiModelProperty(value = "rfid子类型0普通门禁1电动车2特殊人群关怀 3宠物", name = "rfidType", required = true)
// @NotNull(message = "rfid子类型0普通门禁1电动车2特殊人群关怀 3宠物不能为空")
private Integer rfidType;
@ApiModelProperty(value = "年龄", name = "age", required = true)
// @NotNull(message = "年龄不能为空")
private Integer age;
@ApiModelProperty(value = "0-非访客1-访客", name = "vRecordFlag", required = true)
// @NotNull(message = "0-非访客1-访客不能为空")
private Integer vRecordFlag;
}

View File

@ -0,0 +1,32 @@
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-22 17:04:01
*/
@Data
public class MkmjSwipeCardRecordPageQry extends PageQuery {
/**
* ,
* - `like`: SQLLIKE
* - `eq`: SQL=
* - `gt`:
* - `lt`:
* - `ge`:
* - `le`:
* - `ne`: SQL!=
*/
private Integer likeId;
private String cardNo;
private String swingTimeStart;
private String swingTimeEnd;
}

View File

@ -0,0 +1,165 @@
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-22 17:04:01
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class MkmjSwipeCardRecordUpdateCmd extends Command {
@ApiModelProperty(value = "所有卡片消息共享的自增长整型数值从1开始门禁子系统重启复位到1", name = "id", required = true)
@NotNull(message = "所有卡片消息共享的自增长整型数值从1开始门禁子系统重启复位到1不能为空")
private Long id;
@ApiModelProperty(value = "刷卡记录表ID", name = "swipeCardRecordId", required = true)
@NotEmpty(message = "刷卡记录表ID不能为空")
private String swipeCardRecordId;
@ApiModelProperty(value = "节点编码", name = "nodeCode", required = true)
@NotEmpty(message = "节点编码不能为空")
private String nodeCode;
@ApiModelProperty(value = "报警编号", name = "alarmCode", required = true)
@NotEmpty(message = "报警编号不能为空")
private String alarmCode;
@ApiModelProperty(value = "报警图片路径", name = "alarmPicture", required = true)
@NotEmpty(message = "报警图片路径不能为空")
private String alarmPicture;
@ApiModelProperty(value = "节点类型", name = "nodeType", required = true)
@NotEmpty(message = "节点类型不能为空")
private String nodeType;
@ApiModelProperty(value = "报警时间10位时间戳", name = "alarmDate", required = true)
@NotNull(message = "报警时间10位时间戳不能为空")
private Long alarmDate;
@ApiModelProperty(value = "报警等级 1严重2一般3轻微", name = "alarmGrade", required = true)
@NotNull(message = "报警等级 1严重2一般3轻微不能为空")
private Integer alarmGrade;
@ApiModelProperty(value = "单元类型", name = "unitType", required = true)
@NotNull(message = "单元类型不能为空")
private Integer unitType;
@ApiModelProperty(value = "报警类型", name = "alarmType", required = true)
@NotNull(message = "报警类型不能为空")
private Integer alarmType;
@ApiModelProperty(value = "通道序号", name = "channelSeq", required = true)
@NotNull(message = "通道序号不能为空")
private Integer channelSeq;
@ApiModelProperty(value = "通道名称", name = "channelName", required = true)
@NotEmpty(message = "通道名称不能为空")
private String channelName;
@ApiModelProperty(value = "报警状态 1报警产生2报警消失", name = "alarmStat", required = true)
@NotNull(message = "报警状态 1报警产生2报警消失不能为空")
private Integer alarmStat;
@ApiModelProperty(value = "部门名称", name = "deptName", required = true)
@NotEmpty(message = "部门名称不能为空")
private String deptName;
@ApiModelProperty(value = "通道编号", name = "acsChannelCode", required = true)
@NotEmpty(message = "通道编号不能为空")
private String acsChannelCode;
@ApiModelProperty(value = "口罩状态 3-戴口罩2-未戴口罩1-未识别0-未知", name = "maskState", required = true)
@NotNull(message = "口罩状态 3-戴口罩2-未戴口罩1-未识别0-未知不能为空")
private Integer maskState;
@ApiModelProperty(value = "进出门类型: 详见 读卡器业务类型字典", name = "enterOrExit", required = true)
@NotEmpty(message = "进出门类型: 详见 读卡器业务类型字典不能为空")
private String enterOrExit;
@ApiModelProperty(value = "开门类型字符串", name = "openTypeStr", required = true)
@NotEmpty(message = "开门类型字符串不能为空")
private String openTypeStr;
@ApiModelProperty(value = "刷卡时间格式yyyy-MM:dd HH:mm:ss", name = "swingTime", required = true)
@NotEmpty(message = "刷卡时间格式yyyy-MM:dd HH:mm:ss不能为空")
private String swingTime;
@ApiModelProperty(value = "设备名称", name = "deviceName", required = true)
@NotEmpty(message = "设备名称不能为空")
private String deviceName;
@ApiModelProperty(value = "人员编号", name = "personCode", required = true)
@NotEmpty(message = "人员编号不能为空")
private String personCode;
@ApiModelProperty(value = "开门类型, 详见开门类型 字典", name = "openType", required = true)
@NotEmpty(message = "开门类型, 详见开门类型 字典不能为空")
private String openType;
@ApiModelProperty(value = "组织编码", name = "orgCode", required = true)
@NotEmpty(message = "组织编码不能为空")
private String orgCode;
@ApiModelProperty(value = "证件类型", name = "paperType", required = true)
@NotEmpty(message = "证件类型不能为空")
private String paperType;
@ApiModelProperty(value = "证件号", name = "paperNumber", required = true)
@NotEmpty(message = "证件号不能为空")
private String paperNumber;
@ApiModelProperty(value = "错误详情", name = "errorDetail", required = true)
@NotEmpty(message = "错误详情不能为空")
private String errorDetail;
@ApiModelProperty(value = "开门错误码0代表成功96代表需远程验证(需结合平台上远程验证功能使用),其他参考门禁开门错误码", name = "openFailedCod", required = true)
@NotEmpty(message = "开门错误码0代表成功96代表需远程验证(需结合平台上远程验证功能使用),其他参考门禁开门错误码不能为空")
private String openFailedCod;
@ApiModelProperty(value = "固定值evo-accesscontrol", name = "from", required = true)
@NotEmpty(message = "固定值evo-accesscontrol不能为空")
private String from;
@ApiModelProperty(value = "extendId标识", name = "extendId", required = true)
@NotNull(message = "extendId标识不能为空")
private Long extendId;
@ApiModelProperty(value = "开始时间, 13位时间戳", name = "beginTime", required = true)
@NotNull(message = "开始时间, 13位时间戳不能为空")
private Long beginTime;
@ApiModelProperty(value = "通道名称", name = "acsChannelName", required = true)
@NotEmpty(message = "通道名称不能为空")
private String acsChannelName;
@ApiModelProperty(value = "预留字段暂未使用默认值为0", name = "cardStatus", required = true)
@NotNull(message = "预留字段暂未使用默认值为0不能为空")
private Integer cardStatus;
@ApiModelProperty(value = "组织名称", name = "orgName", required = true)
@NotEmpty(message = "组织名称不能为空")
private String orgName;
@ApiModelProperty(value = "性别 1 男2 女, 0 未知", name = "sex", required = true)
@NotNull(message = "性别 1 男2 女, 0 未知不能为空")
private Integer sex;
@ApiModelProperty(value = "人员部门id", name = "deptId", required = true)
@NotNull(message = "人员部门id不能为空")
private Long deptId;
@ApiModelProperty(value = "卡类型", name = "cardType", required = true)
@NotNull(message = "卡类型不能为空")
private Integer cardType;
@ApiModelProperty(value = "设备编号", name = "deviceCode", required = true)
@NotEmpty(message = "设备编号不能为空")
private String deviceCode;
@ApiModelProperty(value = "人员姓名", name = "personName", required = true)
@NotEmpty(message = "人员姓名不能为空")
private String personName;
@ApiModelProperty(value = "刷卡人在平台上的图片,相对路径", name = "personImg", required = true)
@NotEmpty(message = "刷卡人在平台上的图片,相对路径不能为空")
private String personImg;
@ApiModelProperty(value = "开门结果 0 失败 1 成功", name = "openResult", required = true)
@NotNull(message = "开门结果 0 失败 1 成功不能为空")
private Integer openResult;
@ApiModelProperty(value = "人员id", name = "personId", required = true)
@NotNull(message = "人员id不能为空")
private Long personId;
@ApiModelProperty(value = "抓拍图,相对路径", name = "recordImage1", required = true)
@NotEmpty(message = "抓拍图,相对路径不能为空")
private String recordImage1;
@ApiModelProperty(value = "卡介质 0 IC 1 有源RFID 2 CPU", name = "category", required = true)
@NotEmpty(message = "卡介质 0 IC 1 有源RFID 2 CPU不能为空")
private String category;
@ApiModelProperty(value = "卡号", name = "cardNumber", required = true)
@NotEmpty(message = "卡号不能为空")
private String cardNumber;
@ApiModelProperty(value = "rfid子类型0普通门禁1电动车2特殊人群关怀 3宠物", name = "rfidType", required = true)
@NotNull(message = "rfid子类型0普通门禁1电动车2特殊人群关怀 3宠物不能为空")
private Integer rfidType;
@ApiModelProperty(value = "年龄", name = "age", required = true)
@NotNull(message = "年龄不能为空")
private Integer age;
@ApiModelProperty(value = "0-非访客1-访客", name = "vRecordFlag", required = true)
@NotNull(message = "0-非访客1-访客不能为空")
private Integer vRecordFlag;
}

View File

@ -0,0 +1,161 @@
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-22 17:04:00
*/
@Data
public class MkmjSwipeCardRecordCO extends ClientObject {
//刷卡记录表ID
@ApiModelProperty(value = "刷卡记录表ID")
private String swipecardrecordid;
//所有卡片消息共享的自增长整型数值从1开始门禁子系统重启复位到1
@ApiModelProperty(value = "所有卡片消息共享的自增长整型数值从1开始门禁子系统重启复位到1")
private Integer id;
//节点编码
@ApiModelProperty(value = "节点编码")
private String nodecode;
//报警编号
@ApiModelProperty(value = "报警编号")
private String alarmcode;
//报警图片路径
@ApiModelProperty(value = "报警图片路径")
private String alarmpicture;
//节点类型
@ApiModelProperty(value = "节点类型")
private String nodetype;
//报警时间10位时间戳
@ApiModelProperty(value = "报警时间10位时间戳")
private Integer alarmdate;
//报警等级 1严重2一般3轻微
@ApiModelProperty(value = "报警等级 1严重2一般3轻微")
private Integer alarmgrade;
//单元类型
@ApiModelProperty(value = "单元类型")
private Integer unittype;
//报警类型
@ApiModelProperty(value = "报警类型")
private Integer alarmtype;
//通道序号
@ApiModelProperty(value = "通道序号")
private Integer channelseq;
//通道名称
@ApiModelProperty(value = "通道名称")
private String channelname;
//报警状态 1报警产生2报警消失
@ApiModelProperty(value = "报警状态 1报警产生2报警消失")
private Integer alarmstat;
//部门名称
@ApiModelProperty(value = "部门名称")
private String deptname;
//通道编号
@ApiModelProperty(value = "通道编号")
private String acschannelcode;
//口罩状态 3-戴口罩2-未戴口罩1-未识别0-未知
@ApiModelProperty(value = "口罩状态 3-戴口罩2-未戴口罩1-未识别0-未知")
private Integer maskstate;
//进出门类型: 详见 读卡器业务类型字典
@ApiModelProperty(value = "进出门类型: 详见 读卡器业务类型字典")
private String enterorexit;
//开门类型字符串
@ApiModelProperty(value = "开门类型字符串")
private String opentypestr;
//刷卡时间格式yyyy-MM:dd HH:mm:ss
@ApiModelProperty(value = "刷卡时间格式yyyy-MM:dd HH:mm:ss")
private String swingtime;
//设备名称
@ApiModelProperty(value = "设备名称")
private String devicename;
//人员编号
@ApiModelProperty(value = "人员编号")
private String personcode;
//开门类型, 详见开门类型 字典
@ApiModelProperty(value = "开门类型, 详见开门类型 字典")
private String opentype;
//组织编码
@ApiModelProperty(value = "组织编码")
private String orgcode;
//证件类型
@ApiModelProperty(value = "证件类型")
private String papertype;
//证件号
@ApiModelProperty(value = "证件号")
private String papernumber;
//错误详情
@ApiModelProperty(value = "错误详情")
private String errordetail;
//开门错误码0代表成功96代表需远程验证(需结合平台上远程验证功能使用),其他参考门禁开门错误码
@ApiModelProperty(value = "开门错误码0代表成功96代表需远程验证(需结合平台上远程验证功能使用),其他参考门禁开门错误码")
private String openfailedcod;
//固定值evo-accesscontrol
@ApiModelProperty(value = "固定值evo-accesscontrol")
private String from;
//extendId标识
@ApiModelProperty(value = "extendId标识")
private Long extendid;
//开始时间, 13位时间戳
@ApiModelProperty(value = "开始时间, 13位时间戳")
private Long begintime;
//通道名称
@ApiModelProperty(value = "通道名称")
private String acschannelname;
//预留字段暂未使用默认值为0
@ApiModelProperty(value = "预留字段暂未使用默认值为0")
private Integer cardstatus;
//组织名称
@ApiModelProperty(value = "组织名称")
private String orgname;
//性别 1 男2 女, 0 未知
@ApiModelProperty(value = "性别 1 男2 女, 0 未知")
private Integer sex;
//人员部门id
@ApiModelProperty(value = "人员部门id")
private Integer deptid;
//卡类型
@ApiModelProperty(value = "卡类型")
private Integer cardtype;
//设备编号
@ApiModelProperty(value = "设备编号")
private String devicecode;
//人员姓名
@ApiModelProperty(value = "人员姓名")
private String personname;
//刷卡人在平台上的图片,相对路径
@ApiModelProperty(value = "刷卡人在平台上的图片,相对路径")
private String personimg;
//开门结果 0 失败 1 成功
@ApiModelProperty(value = "开门结果 0 失败 1 成功")
private Integer openresult;
//人员id
@ApiModelProperty(value = "人员id")
private Integer personid;
//抓拍图,相对路径
@ApiModelProperty(value = "抓拍图,相对路径")
private String recordimage1;
//卡介质 0 IC 1 有源RFID 2 CPU
@ApiModelProperty(value = "卡介质 0 IC 1 有源RFID 2 CPU")
private String category;
//卡号
@ApiModelProperty(value = "卡号")
private String cardnumber;
//rfid子类型0普通门禁1电动车2特殊人群关怀 3宠物
@ApiModelProperty(value = "rfid子类型0普通门禁1电动车2特殊人群关怀 3宠物")
private Integer rfidtype;
//年龄
@ApiModelProperty(value = "年龄")
private Integer age;
//0-非访客1-访客
@ApiModelProperty(value = "0-非访客1-访客")
private Integer vrecordflag;
}

View File

@ -0,0 +1,151 @@
package com.zcloud.primeport.dto.mjDock;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
@Data
@Accessors(chain = true)
public class SwipeRecordPushExtend {
/**
*
*/
private String deptName;
/**
* id
*/
private List<Long> deptIdList;
/**
*
*/
private String acsChannelCode;
/**
* 3-2-1-0-
*/
private Integer maskState;
/**
* ()
*/
private String enterOrExit;
/**
*
*/
private String openTypeStr;
/**
* (yyyy-MM-dd HH:mm:ss)
*/
private String swingTime;
/**
*
*/
private String deviceName;
/**
*
*/
private String personCode;
/**
* ()
*/
private String openType;
/**
*
*/
private String orgCode;
/**
*
*/
private String paperType;
/**
*
*/
private String paperNumber;
/**
*
*/
private String errorDetail;
/**
* (0-96-)
*/
private String openFailedCode;
/**
* evo-accesscontrol
*/
private String from;
/**
* ID
*/
private Long id;
/**
* (13)
*/
private Long beginTime;
/**
*
*/
private String acsChannelName;
/**
* (0)
*/
private Integer cardStatus;
/**
*
*/
private String orgName;
/**
* (1-2-0-)
*/
private Integer sex;
/**
* ID
*/
private Long deptId;
/**
*
*/
private Integer cardType;
/**
*
*/
private String deviceCode;
/**
*
*/
private String personName;
/**
* ()
*/
private String personImg;
/**
* (0-1-)
*/
private Integer openResult;
/**
* ID
*/
private Long personId;
/**
*
*/
private String recordImage1;
/**
* (0-IC1-RFID2-CPU)
*/
private String category;
/**
*
*/
private String cardNumber;
/**
* RFID (0-1-2-怀3-)
*/
private Integer rfidType;
/**
*
*/
private Integer age;
/**
* 访 (0-访1-访)
*/
private Integer vRecordFlag;
}

View File

@ -0,0 +1,61 @@
package com.zcloud.primeport.dto.mjDock;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
public class SwipeRecordPushInfo {
/**
*
*/
private String nodeCode;
/**
*
*/
private String deviceCode;
/**
*
*/
private String alarmCode;
/**
*
*/
private String alarmPicture;
/**
*
*/
private String nodeType;
/**
* (10)
*/
private Long alarmDate;
/**
* 1:, 2:, 3:
*/
private Integer alarmGrade;
/**
*
*/
private Integer unitType;
/**
*
*/
private Integer alarmType;
/**
*
*/
private Integer channelSeq;
/**
*
*/
private String channelName;
/**
* 1:, 2:
*/
private Integer alarmStat;
/**
* info {@link SwipeRecordPushExtend}
*/
private SwipeRecordPushExtend extend;
}

View File

@ -0,0 +1,32 @@
package com.zcloud.primeport.dto.mjDock;
import lombok.Data;
import lombok.experimental.Accessors;
/**
*
*/
@Data
@Accessors(chain = true)
public class SwipeRecordPushVo {
/**
* alarm.msg
*/
private String method;
/**
* evo-accesscontrol
*/
private String subsystem;
/**
* 11
*/
private Long id;
/**
* alarm
*/
private String category;
/**
* {@link SwipeRecordPushInfo}
*/
private SwipeRecordPushInfo info;
}

View File

@ -0,0 +1,32 @@
package com.zcloud.primeport.domain.gateway;
import com.zcloud.primeport.domain.model.MkmjSwipeCardRecordE;
import java.util.List;
/**
* web-domain
*
* @Author dearLin
* @Date 2026-04-22 17:04:00
*/
public interface MkmjSwipeCardRecordGateway {
/**
*
*/
Boolean add(MkmjSwipeCardRecordE mkmjSwipeCardRecordE);
/**
*
*/
Boolean update(MkmjSwipeCardRecordE mkmjSwipeCardRecordE);
/**
*
*/
Boolean deletedMkmjSwipeCardRecordById(Long id);
Boolean deletedMkmjSwipeCardRecordByIds(List<Long> id);
}

View File

@ -0,0 +1,109 @@
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-22 17:04:00
*/
@Data
public class MkmjSwipeCardRecordE extends BaseE {
//刷卡记录表ID
private String swipeCardRecordId;
//节点编码
private String nodeCode;
//报警编号
private String alarmCode;
//报警图片路径
private String alarmPicture;
//节点类型
private String nodeType;
//报警时间10位时间戳
private Long alarmDate;
//报警等级 1严重2一般3轻微
private Integer alarmGrade;
//单元类型
private Integer unitType;
//报警类型
private Integer alarmType;
//通道序号
private Integer channelSeq;
//通道名称
private String channelName;
//报警状态 1报警产生2报警消失
private Integer alarmStat;
//部门名称
private String deptName;
//通道编号
private String acsChannelCode;
//口罩状态 3-戴口罩2-未戴口罩1-未识别0-未知
private Integer maskState;
//进出门类型: 详见 读卡器业务类型字典
private String enterOrExit;
//开门类型字符串
private String openTypeStr;
//刷卡时间格式yyyy-MM:dd HH:mm:ss
private String swingTime;
//设备名称
private String deviceName;
//人员编号
private String personCode;
//开门类型, 详见开门类型 字典
private String openType;
//组织编码
private String orgCode;
//证件类型
private String paperType;
//证件号
private String paperNumber;
//错误详情
private String errorDetail;
//开门错误码0代表成功96代表需远程验证(需结合平台上远程验证功能使用),其他参考门禁开门错误码
private String openFailedCod;
//固定值evo-accesscontrol
private String from;
//extendId标识
private Long extendId;
//开始时间, 13位时间戳
private Long beginTime;
//通道名称
private String acsChannelName;
//预留字段暂未使用默认值为0
private Integer cardStatus;
//组织名称
private String orgName;
//性别 1 男2 女, 0 未知
private Integer sex;
//人员部门id
private Long deptId;
//卡类型
private Integer cardType;
//设备编号
private String deviceCode;
//人员姓名
private String personName;
//刷卡人在平台上的图片,相对路径
private String personImg;
//开门结果 0 失败 1 成功
private Integer openResult;
//人员id
private Long personId;
//抓拍图,相对路径
private String recordImage1;
//卡介质 0 IC 1 有源RFID 2 CPU
private String category;
//卡号
private String cardNumber;
//rfid子类型0普通门禁1电动车2特殊人群关怀 3宠物
private Integer rfidType;
//年龄
private Integer age;
//0-非访客1-访客
private Integer vRecordFlag;
}

View File

@ -0,0 +1,51 @@
package com.zcloud.primeport.gatewayimpl;
import com.zcloud.primeport.domain.gateway.MkmjSwipeCardRecordGateway;
import com.zcloud.primeport.domain.model.MkmjSwipeCardRecordE;
import com.zcloud.primeport.persistence.dataobject.MkmjSwipeCardRecordDO;
import com.zcloud.primeport.persistence.repository.MkmjSwipeCardRecordRepository;
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-22 17:04:00
*/
@Service
@AllArgsConstructor
public class MkmjSwipeCardRecordGatewayImpl implements MkmjSwipeCardRecordGateway {
private final MkmjSwipeCardRecordRepository mkmjSwipeCardRecordRepository;
@Override
public Boolean add(MkmjSwipeCardRecordE mkmjSwipeCardRecordE) {
MkmjSwipeCardRecordDO d = new MkmjSwipeCardRecordDO();
BeanUtils.copyProperties(mkmjSwipeCardRecordE, d);
mkmjSwipeCardRecordRepository.save(d);
return true;
}
@Override
public Boolean update(MkmjSwipeCardRecordE mkmjSwipeCardRecordE) {
MkmjSwipeCardRecordDO d = new MkmjSwipeCardRecordDO();
BeanUtils.copyProperties(mkmjSwipeCardRecordE, d);
mkmjSwipeCardRecordRepository.updateById(d);
return true;
}
@Override
public Boolean deletedMkmjSwipeCardRecordById(Long id) {
return mkmjSwipeCardRecordRepository.removeById(id);
}
@Override
public Boolean deletedMkmjSwipeCardRecordByIds(List<Long> ids) {
return mkmjSwipeCardRecordRepository.removeByIds(ids);
}
}

View File

@ -113,7 +113,7 @@ public class PersonApplyGatewayImpl implements PersonApplyGateway {
userCardHashSet.add(Base64.decodeToString(item.getUserCard()));
JSONObject entries = new JSONObject();
entries.set("name", item.getEmployeePersonUserName());
entries.set("code", "hbqa"+Base64.decodeToString(item.getUserCard()));
entries.set("code", "hbqa" + Base64.decodeToString(item.getUserCard()));
entries.set("validStartTime", byId.getVisitStartTime() + " 00:00:00");
entries.set("validEndTime", byId.getVisitEndTime() + " 23:59:59");
entries.set("paperType", 111);
@ -150,27 +150,27 @@ public class PersonApplyGatewayImpl implements PersonApplyGateway {
JSONObject jsonObject = mkmjUserInfoByUserCard.getJSONObject(i);
mjDeviceHashMap.put(jsonObject.getStr("paperNumber"), jsonObject);
}
// for (String s : userHashMap.keySet()) {
// JSONObject entries = userHashMap.get(s);
// if (mjDeviceHashMap.containsKey(s)) {
// JSONObject o = mjDeviceHashMap.get(s);
// // 已存在 看下今天是不是在 申请的时间里
// long validStartTime = DateUtil.fomatDate(entries.getStr("validStartTime")+ "00:00:00","yyyy-MM-dd HH:mm:ss").getTime();
// long validEndTime = DateUtil.fomatDate(entries.getStr("validEndTime")+ "23:59:59","yyyy-MM-dd HH:mm:ss").getTime();
// long time = new Date().getTime();
// if (time >= validStartTime && time <= validEndTime) {
// // 今天在申请的时间里 需要修改
// JSONObject entries1 = new JSONObject();
// entries1.set("personId", o.getLong("id"));
// entries1.set("validStartTime"
// , DateUtil.date2Str(new Date(),"yyyy-MM-dd")+ "00:00:00");
// entries1.set("validEndTime", DateUtil.date2Str(new Date(),"yyyy-MM-dd")+ "23:59:59");
// waitEditUser.add(entries1);
// }else {
// // 新增的
// waitSaveUser.add(entries);
// }
// }
for (String s : userHashMap.keySet()) {
JSONObject entries = userHashMap.get(s);
if (mjDeviceHashMap.containsKey(s)) {
JSONObject o = mjDeviceHashMap.get(s);
// 已存在 看下今天是不是在 申请的时间里
long validStartTime = DateUtil.fomatDate(entries.getStr("validStartTime") + "00:00:00", "yyyy-MM-dd HH:mm:ss").getTime();
long validEndTime = DateUtil.fomatDate(entries.getStr("validEndTime") + "23:59:59", "yyyy-MM-dd HH:mm:ss").getTime();
long time = new Date().getTime();
if (time >= validStartTime && time <= validEndTime) {
// 今天在申请的时间里 需要修改
JSONObject entries1 = new JSONObject();
entries1.set("personId", o.getLong("id"));
entries1.set("validStartTime", DateUtil.date2Str(new Date(), "yyyy-MM-dd") + "00:00:00");
entries1.set("validEndTime", DateUtil.date2Str(new Date(), "yyyy-MM-dd") + "23:59:59");
waitEditUser.add(entries1);
}
} else {
// 新增的
waitSaveUser.add(entries);
}
}
// for (int i = 0; i < mkmjUserInfoByUserCard.size(); i++) {
// JSONObject o = mkmjUserInfoByUserCard.getJSONObject(i);
// String str = o.getStr("paperNumber");
@ -192,8 +192,7 @@ public class PersonApplyGatewayImpl implements PersonApplyGateway {
}
}
@Override
public List<PersonApplyE> personListByxgfApplyPersonId(Long id) {
@Override public List<PersonApplyE> personListByxgfApplyPersonId (Long id){
QueryWrapper<PersonApplyDO> xgfApplyPersonDOQueryWrapper = new QueryWrapper<>();
xgfApplyPersonDOQueryWrapper.eq("xgf_apply_person_id", id);
List<PersonApplyDO> xgfApplyPersonDOS = personApplyRepository.list(xgfApplyPersonDOQueryWrapper);
@ -206,12 +205,12 @@ public class PersonApplyGatewayImpl implements PersonApplyGateway {
return xgfApplyPersonES;
}
public static void main(String[] args) {
public static void main (String[]args){
HashSet<String> strings = new HashSet<>();
System.out.println(strings.add("1"));
System.out.println(strings.add("2"));
System.out.println(strings.add("3"));
System.out.println(strings.add("1"));
}
}
}

View File

@ -0,0 +1,115 @@
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-22 17:04:00
*/
@Data
@TableName("mkmj_swipe_card_record")
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class MkmjSwipeCardRecordDO extends BaseDO {
//刷卡记录表ID
private String swipeCardRecordId;
//节点编码
private String nodeCode;
//报警编号
private String alarmCode;
//报警图片路径
private String alarmPicture;
//节点类型
private String nodeType;
//报警时间10位时间戳
private Long alarmDate;
//报警等级 1严重2一般3轻微
private Integer alarmGrade;
//单元类型
private Integer unitType;
//报警类型
private Integer alarmType;
//通道序号
private Integer channelSeq;
//通道名称
private String channelName;
//报警状态 1报警产生2报警消失
private Integer alarmStat;
//部门名称
private String deptName;
//通道编号
private String acsChannelCode;
//口罩状态 3-戴口罩2-未戴口罩1-未识别0-未知
private Integer maskState;
//进出门类型: 详见 读卡器业务类型字典
private String enterOrExit;
//开门类型字符串
private String openTypeStr;
//刷卡时间格式yyyy-MM:dd HH:mm:ss
private String swingTime;
//设备名称
private String deviceName;
//人员编号
private String personCode;
//开门类型, 详见开门类型 字典
private String openType;
//组织编码
private String orgCode;
//证件类型
private String paperType;
//证件号
private String paperNumber;
//错误详情
private String errorDetail;
//开门错误码0代表成功96代表需远程验证(需结合平台上远程验证功能使用),其他参考门禁开门错误码
private String openFailedCod;
//固定值evo-accesscontrol
private String from;
//extendId标识
private Long extendId;
//开始时间, 13位时间戳
private Long beginTime;
//通道名称
private String acsChannelName;
//预留字段暂未使用默认值为0
private Integer cardStatus;
//组织名称
private String orgName;
//性别 1 男2 女, 0 未知
private Integer sex;
//人员部门id
private Long deptId;
//卡类型
private Integer cardType;
//设备编号
private String deviceCode;
//人员姓名
private String personName;
//刷卡人在平台上的图片,相对路径
private String personImg;
//开门结果 0 失败 1 成功
private Integer openResult;
//人员id
private Long personId;
//抓拍图,相对路径
private String recordImage1;
//卡介质 0 IC 1 有源RFID 2 CPU
private String category;
//卡号
private String cardNumber;
//rfid子类型0普通门禁1电动车2特殊人群关怀 3宠物
private Integer rfidType;
//年龄
private Integer age;
//0-非访客1-访客
private Integer vRecordFlag;
}

View File

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

View File

@ -0,0 +1,18 @@
package com.zcloud.primeport.persistence.repository;
import com.zcloud.primeport.persistence.dataobject.MkmjSwipeCardRecordDO;
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-22 17:04:01
*/
public interface MkmjSwipeCardRecordRepository extends BaseRepository<MkmjSwipeCardRecordDO> {
PageResponse<MkmjSwipeCardRecordDO> listPage(Map<String, Object> params);
}

View File

@ -0,0 +1,40 @@
package com.zcloud.primeport.persistence.repository.impl;
import com.zcloud.primeport.persistence.dataobject.MkmjSwipeCardRecordDO;
import com.zcloud.primeport.persistence.mapper.MkmjSwipeCardRecordMapper;
import com.zcloud.primeport.persistence.repository.MkmjSwipeCardRecordRepository;
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-22 17:04:01
*/
@Service
@RequiredArgsConstructor
public class MkmjSwipeCardRecordRepositoryImpl extends BaseRepositoryImpl<MkmjSwipeCardRecordMapper, MkmjSwipeCardRecordDO> implements MkmjSwipeCardRecordRepository {
private final MkmjSwipeCardRecordMapper mkmjSwipeCardRecordMapper;
@Override
public PageResponse<MkmjSwipeCardRecordDO> listPage(Map<String, Object> params) {
IPage<MkmjSwipeCardRecordDO> iPage = new Query<MkmjSwipeCardRecordDO>().getPage(params);
QueryWrapper<MkmjSwipeCardRecordDO> queryWrapper = new QueryWrapper<>();
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params);
queryWrapper.eq("paper_number",params.get("cardNo"));
queryWrapper.orderByDesc("swing_time");
IPage<MkmjSwipeCardRecordDO> result = mkmjSwipeCardRecordMapper.selectPage(iPage, queryWrapper);
return PageHelper.pageToResponse(result, result.getRecords());
}
}

View File

@ -165,12 +165,72 @@ public class OnePersonUtil {
public static void main(String[] args) throws Exception {
OnePersonUtil onePersonUtil = new OnePersonUtil();
System.out.println(onePersonUtil.getDaHuaDeviceCommon().getToken());
JSONArray userListByUserCard = onePersonUtil.getDaHuaDeviceCommon().getUserListByUserCard(Arrays.asList("61010519900320002X", "130324199407282116")).getJSONObject("data").getJSONArray("pageData");
System.out.println();
String base64 = imageToBase64("C:\\Users\\Administrator\\Desktop\\myface.jpg");
String dataUrl = "data:image/jpeg;base64," + base64;
System.out.println(dataUrl);
String requestStr = "{\n" +
"\n" +
" \"param\": {\n" +
"\n" +
" \"monitors\": [\n" +
"\n" +
" {\n" +
"\n" +
" \"monitor\": \"http://192.168.192.201:8971/qa-prevention-gwj-tongbu/mkmjPerson/swipeCardRecordReceiving\",\n" +
"\n" +
" \"monitorType\": \"url\",\n" +
"\n" +
" \"events\": [\n" +
"\n" +
" {\n" +
"\n" +
" \"category\": \"alarm\",\n" +
"\n" +
" \"subscribeAll\": 1,\n" +
"\n" +
" \"domainSubscribe\": 2,\n" +
"\n" +
" \"authorities\": [\n" +
"\n" +
" {\n" +
"\n" +
" \"types\": [\n" +
"\n" +
" \"51\",\n" +
"\n" +
" \"61\"\n" +
"\n" +
" ]\n" +
"\n" +
" }\n" +
"\n" +
" ]\n" +
"\n" +
" }\n" +
"\n" +
" ]\n" +
"\n" +
" }\n" +
"\n" +
" ],\n" +
"\n" +
" \"subsystem\": {\n" +
"\n" +
" \"subsystemType\": 0,\n" +
"\n" +
" \"name\":\"192.168.192.201_8971\",\n" +
"\n" +
" \"magic\":\"192.168.192.201_8971\"\n" +
"\n" +
" }\n" +
"\n" +
" }\n" +
"\n" +
"}";
JSONObject x = new JSONObject(requestStr);
// JSONArray userListByUserCard = onePersonUtil.getDaHuaDeviceCommon().getUserListByUserCard(Arrays.asList("61010519900320002X", "130324199407282116")).getJSONObject("data").getJSONArray("pageData");
//
// System.out.println();
// String base64 = imageToBase64("C:\\Users\\Administrator\\Desktop\\myface.jpg");
// String dataUrl = "data:image/jpeg;base64," + base64;
// System.out.println(dataUrl);
}
public static String imageToBase64(String imagePath) throws IOException {
File file = new File(imagePath);

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.MkmjSwipeCardRecordMapper">
</mapper>