浦江访客分支

This commit is contained in:
zjf committed 2025-04-14 11:48:40 +08:00
1 parent e1cfd9b2c5
commit a6e16c3f9d
12 files changed
+782

No files matched your search

@@ -0,0 +1,127 @@
package com.bsd.pjcloud.integrated.vo.visitor.app;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
/**
* 我的邀约
*
* @author zjf
* @date 2025-04-09 15:22:47
*/
@Data
@Schema(description = "访客表vo")
public class VisitorsAppPageVo {
/**
* id
*/
@Schema(description="id")
private Long id;
/**
* 姓名
*/
@Schema(description="姓名")
private String name;
/**
* 手机号
*/
@Schema(description="手机号")
private String mobile;
/**
* 身份证号
*/
@Schema(description="身份证号")
private String idCard;
/**
* 描述
*/
@Schema(description="描述")
private String description;
/**
* 审核状态
*/
@Schema(description="审核状态")
private String checkStatus;
/**
* 到访单位
*/
@Schema(description="到访单位")
private Long deptId;
/**
* 接待人
*/
@Schema(description="接待人")
private Long userName;
/**
* 车牌号id
*/
@Schema(description="车牌号id")
private Long carId;
/**
* 公司名称
*/
@Schema(description="公司名称")
private String companyName;
/**
* 随行人员数量
*/
@Schema(description="随行人员数量")
private Integer peopleNumber;
/**
* 到访时间
*/
@Schema(description="到访时间")
private LocalDateTime vStartDate;
/**
* 到访时间
*/
@Schema(description="到访时间")
private LocalDateTime vEndDate;
/**
* 是否驾驶车辆0 否 1是
*/
@Schema(description="是否驾驶车辆0 否 1是")
private String isDrive;
/**
* 审核原因
*/
@Schema(description="审核原因")
private String checkReason;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
@Schema(description="创建时间")
private LocalDateTime createTime;
@Schema(description="token")
private String token;
@Schema(description="车牌号")
private List<VisitorsCarAppVo> visitorsCarAppVos;
}
@@ -0,0 +1,129 @@
package com.bsd.pjcloud.integrated.vo.visitor.app;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.bsd.pjcloud.common.core.util.TenantTable;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import java.util.List;
/**
* 访客表
*
* @author zjf
* @date 2025-04-09 15:22:47
*/
@Data
@Schema(description = "访客表vo")
public class VisitorsAppVo{
/**
* id
*/
@Schema(description="id")
private Long id;
/**
* 姓名
*/
@Schema(description="姓名")
private String name;
/**
* 手机号
*/
@Schema(description="手机号")
private String mobile;
/**
* 身份证号
*/
@Schema(description="身份证号")
private String idCard;
/**
* 描述
*/
@Schema(description="描述")
private String description;
/**
* 审核状态
*/
@Schema(description="审核状态")
private String checkStatus;
/**
* 到访单位
*/
@Schema(description="到访单位")
private Long deptId;
/**
* 接待人
*/
@Schema(description="接待人")
private Long userName;
/**
* 车牌号id
*/
@Schema(description="车牌号id")
private Long carId;
/**
* 公司名称
*/
@Schema(description="公司名称")
private String companyName;
/**
* 随行人员数量
*/
@Schema(description="随行人员数量")
private Integer peopleNumber;
/**
* 到访时间
*/
@Schema(description="到访时间")
private LocalDateTime vStartDate;
/**
* 到访时间
*/
@Schema(description="到访时间")
private LocalDateTime vEndDate;
/**
* 是否驾驶车辆0 否 1是
*/
@Schema(description="是否驾驶车辆0 否 1是")
private String isDrive;
/**
* 审核原因
*/
@Schema(description="审核原因")
private String checkReason;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
@Schema(description="创建时间")
private LocalDateTime createTime;
@Schema(description="token")
private String token;
@Schema(description="车牌号")
private List<VisitorsCarAppVo> visitorsCarAppVos;
}
@@ -0,0 +1,27 @@
package com.bsd.pjcloud.integrated.vo.visitor.app;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* 车牌号
*
* @author zjf
* @date 2025-04-09 15:10:54
*/
@Data
@Schema(description = "车牌号")
public class VisitorsCarAppVo {
private Long id;
/**
* 车牌号
*/
@Schema(description="车牌号")
private String carNumber;
}
@@ -0,0 +1,206 @@
package com.bsd.pjcloud.integrated.controller;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bsd.pjcloud.common.core.util.BeanUtils;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.idempotent.annotation.Idempotent;
import com.bsd.pjcloud.common.log.annotation.SysLog;
import com.bsd.pjcloud.common.security.annotation.Inner;
import com.bsd.pjcloud.flow.task.constant.TaskCheckStatusEnum;
import com.bsd.pjcloud.integrated.dto.visitor.app.VisitorsAppDTO;
import com.bsd.pjcloud.integrated.entity.VisitorsEntity;
import com.bsd.pjcloud.integrated.service.VisitorsService;
import com.bsd.pjcloud.integrated.vo.visitor.app.VisitorsAppVo;
import org.springframework.security.access.prepost.PreAuthorize;
import com.bsd.pjcloud.common.excel.annotation.ResponseExcel;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import org.springdoc.core.annotations.ParameterObject;
import org.springframework.http.HttpHeaders;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.List;
/**
* 访客表
*
* @author zjf
* @date 2025-04-09 15:22:47
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/visitors" )
@Tag(description = "visitors" , name = "访客表管理" )
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
public class VisitorsController {
private final VisitorsService visitorsService;
/**
* 分页查询
* @param page 分页对象
* @param visitors 访客表
* @return
*/
@Operation(summary = "分页查询" , description = "分页查询" )
@GetMapping("/page" )
@PreAuthorize("@pms.hasPermission('integrated_visitors_view')" )
public R getVisitorsPage(@ParameterObject Page page, @ParameterObject VisitorsEntity visitors) {
LambdaQueryWrapper<VisitorsEntity> wrapper = Wrappers.lambdaQuery();
wrapper.eq(StrUtil.isNotBlank(visitors.getName()),VisitorsEntity::getName,visitors.getName());
wrapper.eq(StrUtil.isNotBlank(visitors.getMobile()),VisitorsEntity::getMobile,visitors.getMobile());
return R.ok(visitorsService.page(page, wrapper));
}
/**
* 通过id查询访客表
* @param id id
* @return R
*/
@Operation(summary = "通过id查询" , description = "通过id查询" )
@GetMapping("/{id}" )
@PreAuthorize("@pms.hasPermission('integrated_visitors_view')" )
public R getById(@PathVariable("id" ) Long id) {
return R.ok(visitorsService.getById(id));
}
/**
* 新增访客表
* @param visitors 访客表
* @return R
*/
@Operation(summary = "新增访客表" , description = "新增访客表" )
@SysLog("新增访客表" )
@PostMapping
@PreAuthorize("@pms.hasPermission('integrated_visitors_add')" )
public R save(@RequestBody VisitorsEntity visitors) {
return R.ok(visitorsService.save(visitors));
}
/**
* 修改访客表
* @param visitors 访客表
* @return R
*/
@Operation(summary = "修改访客表" , description = "修改访客表" )
@SysLog("修改访客表" )
@PutMapping
@PreAuthorize("@pms.hasPermission('integrated_visitors_edit')" )
public R updateById(@RequestBody VisitorsEntity visitors) {
return R.ok(visitorsService.updateById(visitors));
}
/**
* 通过id删除访客表
* @param ids id列表
* @return R
*/
@Operation(summary = "通过id删除访客表" , description = "通过id删除访客表" )
@SysLog("通过id删除访客表" )
@DeleteMapping
@PreAuthorize("@pms.hasPermission('integrated_visitors_del')" )
public R removeById(@RequestBody Long[] ids) {
return R.ok(visitorsService.removeBatchByIds(CollUtil.toList(ids)));
}
/**
* 导出excel 表格
* @param visitors 查询条件
* @param ids 导出指定ID
* @return excel 文件流
*/
@ResponseExcel
@GetMapping("/export")
@PreAuthorize("@pms.hasPermission('integrated_visitors_export')" )
public List<VisitorsEntity> export(VisitorsEntity visitors,Long[] ids) {
return visitorsService.list(Wrappers.lambdaQuery(visitors).in(ArrayUtil.isNotEmpty(ids), VisitorsEntity::getId, ids));
}
//-----------------------APP----------------------------
/**
* 新增访客表
* @param visitors 访客表
* @return R
*/
@Operation(summary = "app新增访客" , description = "app新增访客" )
@SysLog("新增访客" )
@PostMapping("/app/save")
@Idempotent(key = "#mobile", expireTime = 10, info = "请勿重复提交")
@Inner(value = false)
public R saveFK(@RequestBody VisitorsAppDTO visitors) {
return R.ok(visitorsService.vistorsSave(visitors));
}
/**
* 根据token查询预约的信息
* 通过token查询访客表
* @param
* @return R
*/
@Operation(summary = "通过token查询" , description = "通过token查询" )
@GetMapping("/app/get/{token}" )
public R<VisitorsAppVo> getByToken(@PathVariable("token" ) String token) {
return R.ok(visitorsService.getByToken(token));
}
/**
* 扫码发送请求确认是否能通过
* 通过token查询访客表
* @param
* @return R
*/
@Operation(summary = "通过token查询" , description = "通过token查询" )
@GetMapping("/app/check/{token}" )
public R checkByToken(@PathVariable("token" ) String token) {
LambdaQueryWrapper<VisitorsEntity> visitorsEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
visitorsEntityLambdaQueryWrapper.eq(VisitorsEntity::getToken,token);
visitorsEntityLambdaQueryWrapper.eq(VisitorsEntity::getCheckStatus, TaskCheckStatusEnum.RESULT);
VisitorsEntity visitors = visitorsService.getOne(visitorsEntityLambdaQueryWrapper);
if (visitors == null){
return R.failed("没有此预约信息");
}
LocalDateTime vStartDate = visitors.getVStartDate();
if (vStartDate.isBefore(LocalDateTime.now())){
return R.failed("预约时间未到");
}
LocalDateTime vEndDate = visitors.getVEndDate();
if (vEndDate.isBefore(LocalDateTime.now())){
return R.failed("预约已过期");
}
return R.ok(true);
}
/**
* 新增拜访
* @param visitors 访客表
* @return R
*/
@Operation(summary = "app新增拜访" , description = "app新增拜访" )
@SysLog("新增拜访" )
@PostMapping("/app/saveBF")
@Idempotent(key = "#mobile", expireTime = 10, info = "请勿重复提交")
public R saveBF(@RequestBody VisitorsAppDTO visitors) {
return R.ok(visitorsService.vistorsBFSave(visitors));
}
@GetMapping("/app/pageBF")
@SysLog("获取我的邀约记录" )
public R getPageBF(@ParameterObject Page page, @ParameterObject VisitorsEntity visitors) {
return R.ok( visitorsService.getPageBF(page, visitors));
}
}
@@ -0,0 +1,11 @@
package com.bsd.pjcloud.integrated.mapper;
import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper;
import com.bsd.pjcloud.integrated.entity.VisitorsCarEntity;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface VisitorsCarMapper extends PjcloudBaseMapper<VisitorsCarEntity> {
}
@@ -0,0 +1,11 @@
package com.bsd.pjcloud.integrated.mapper;
import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper;
import com.bsd.pjcloud.integrated.entity.VisitorsEntity;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface VisitorsMapper extends PjcloudBaseMapper<VisitorsEntity> {
}
@@ -0,0 +1,8 @@
package com.bsd.pjcloud.integrated.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bsd.pjcloud.integrated.entity.VisitorsCarEntity;
public interface VisitorsCarService extends IService<VisitorsCarEntity> {
}
@@ -0,0 +1,38 @@
package com.bsd.pjcloud.integrated.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bsd.pjcloud.integrated.dto.visitor.app.VisitorsAppDTO;
import com.bsd.pjcloud.integrated.entity.VisitorsEntity;
import com.bsd.pjcloud.integrated.vo.visitor.app.VisitorsAppVo;
public interface VisitorsService extends IService<VisitorsEntity> {
/**
* 移动端发起访客新增
* @param visitors
* @return
*/
Object vistorsSave(VisitorsAppDTO visitors);
/**
* 根据token查询访客信息
* @param token
* @return
*/
VisitorsAppVo getByToken(String token);
/**
* 移动端发起拜访
* @param visitors
* @return
*/
Object vistorsBFSave(VisitorsAppDTO visitors);
Object getPageBF(Page page, VisitorsEntity visitors);
}
@@ -0,0 +1,16 @@
package com.bsd.pjcloud.integrated.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bsd.pjcloud.integrated.entity.VisitorsCarEntity;
import com.bsd.pjcloud.integrated.mapper.VisitorsCarMapper;
import com.bsd.pjcloud.integrated.service.VisitorsCarService;
import org.springframework.stereotype.Service;
/**
* 车牌号
*
* @author zjf
* @date 2025-04-09 15:10:54
*/
@Service
public class VisitorsCarServiceImpl extends ServiceImpl<VisitorsCarMapper, VisitorsCarEntity> implements VisitorsCarService {
}
@@ -0,0 +1,163 @@
package com.bsd.pjcloud.integrated.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bsd.pjcloud.admin.api.feign.RemoteUserService;
import com.bsd.pjcloud.common.core.exception.ServiceException;
import com.bsd.pjcloud.common.core.util.BeanUtils;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.data.datascope.DataScope;
import com.bsd.pjcloud.common.security.util.SecurityUtils;
import com.bsd.pjcloud.flow.task.api.feign.RemoteFlowApiFlowService;
import com.bsd.pjcloud.flow.task.constant.TaskCheckStatusEnum;
import com.bsd.pjcloud.flow.task.dto.ProcessInstanceParamDto;
import com.bsd.pjcloud.flow.task.entity.Process;
import com.bsd.pjcloud.integrated.constant.IntegratedFlowConstant;
import com.bsd.pjcloud.integrated.constant.VisitorTypeEnum;
import com.bsd.pjcloud.integrated.dto.visitor.app.VisitorsAppDTO;
import com.bsd.pjcloud.integrated.dto.visitor.app.VisitorsCarAppDTO;
import com.bsd.pjcloud.integrated.entity.VisitorsCarEntity;
import com.bsd.pjcloud.integrated.entity.VisitorsEntity;
import com.bsd.pjcloud.integrated.mapper.VisitorsCarMapper;
import com.bsd.pjcloud.integrated.mapper.VisitorsMapper;
import com.bsd.pjcloud.integrated.service.VisitorsService;
import com.bsd.pjcloud.integrated.vo.visitor.app.VisitorsAppPageVo;
import com.bsd.pjcloud.integrated.vo.visitor.app.VisitorsAppVo;
import com.bsd.pjcloud.integrated.vo.visitor.app.VisitorsCarAppVo;
import lombok.AllArgsConstructor;
import org.springframework.security.oauth2.jwt.Jwt;
import org.springframework.security.oauth2.jwt.JwtClaimsSet;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.List;
import java.util.UUID;
/**
* 访客表
*
* @author zjf
* @date 2025-04-09 15:22:47
*/
@Service
@AllArgsConstructor
public class VisitorsServiceImpl extends ServiceImpl<VisitorsMapper, VisitorsEntity> implements VisitorsService {
private final VisitorsCarMapper visitorsCarMapper;
private final RemoteUserService remoteUserService;
private final RemoteFlowApiFlowService remoteFlowApiFlowService;
@Override
@Transactional
public Object vistorsSave(VisitorsAppDTO visitors) {
//发起流程
R<Process> processR = remoteFlowApiFlowService.getProcessByBusinessKey(IntegratedFlowConstant.INTEGRATED_VISITOR);
if (!processR.isOk() || processR.getData() == null) {
throw new ServiceException("流程配置获取失败: " + processR.getMsg());
}
String flowId = processR.getData().getFlowId();
ProcessInstanceParamDto processInstanceParamDto = new ProcessInstanceParamDto();
processInstanceParamDto.setFlowId(flowId);
R<String> stringR = remoteFlowApiFlowService.startProcessInstance(processInstanceParamDto);
if (!stringR.isOk() || stringR.getData() == null) {
throw new ServiceException("流程实例启动失败: " + stringR.getMsg());
}
String processInstanceId = stringR.getData();
VisitorsEntity bean = BeanUtils.toBean(visitors, VisitorsEntity.class);
bean.setType(VisitorTypeEnum.FKSQ.getType());
bean.setProcessInstanceId(processInstanceId);
bean.setCheckStatus(TaskCheckStatusEnum.PADDING.getCode());
String uniqueToken = UUID.randomUUID().toString();
String token = uniqueToken.replace("-", "");
bean.setToken(token);
int insert = baseMapper.insert(bean);
List<VisitorsCarAppDTO> visitorsCarAppDTOList = visitors.getVisitorsCarAppDTOList();
if (!CollectionUtils.isEmpty(visitorsCarAppDTOList)){
List<VisitorsCarEntity> visitorsCarEntities = BeanUtils.toBean(visitorsCarAppDTOList, VisitorsCarEntity.class);
visitorsCarEntities.forEach(i->{
i.setVisitorsId(bean.getId());
});
visitorsCarMapper.insert(visitorsCarEntities);
}
// VisitorsAppVo visitorAppVo = BeanUtils.toBean(bean, VisitorsAppVo.class);
// List<VisitorsCarAppVo> visitorsCarAppVos = BeanUtils.toBean(visitorsCarAppDTOList, VisitorsCarAppVo.class);
// visitorAppVo.setVisitorsCarAppVos(visitorsCarAppVos);
return insert;
}
@Override
public VisitorsAppVo getByToken(String token) {
LambdaQueryWrapper<VisitorsEntity> visitorsEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
visitorsEntityLambdaQueryWrapper.eq(VisitorsEntity::getToken,token);
VisitorsEntity visitors = baseMapper.selectOne(visitorsEntityLambdaQueryWrapper);
VisitorsAppVo bean = BeanUtils.toBean(visitors, VisitorsAppVo.class);
List<VisitorsCarEntity> visitorsCarEntities =
visitorsCarMapper.selectList(new LambdaQueryWrapper<VisitorsCarEntity>().eq(VisitorsCarEntity::getVisitorsId, visitors.getId()));
List<VisitorsCarAppVo> visitorsCarAppVos = BeanUtils.toBean(visitorsCarEntities, VisitorsCarAppVo.class);
bean.setVisitorsCarAppVos(visitorsCarAppVos);
return bean;
}
@Override
public Object vistorsBFSave(VisitorsAppDTO visitors) {
//发起流程
R<Process> processR = remoteFlowApiFlowService.getProcessByBusinessKey(IntegratedFlowConstant.INTEGRATED_VISITOR);
if (!processR.isOk() || processR.getData() == null) {
throw new ServiceException("流程配置获取失败: " + processR.getMsg());
}
String flowId = processR.getData().getFlowId();
ProcessInstanceParamDto processInstanceParamDto = new ProcessInstanceParamDto();
processInstanceParamDto.setFlowId(flowId);
R<String> stringR = remoteFlowApiFlowService.startProcessInstance(processInstanceParamDto);
if (!stringR.isOk() || stringR.getData() == null) {
throw new ServiceException("流程实例启动失败: " + stringR.getMsg());
}
String processInstanceId = stringR.getData();
Long deptId = SecurityUtils.getUser().getDeptId();
VisitorsEntity bean = BeanUtils.toBean(visitors, VisitorsEntity.class);
bean.setType(VisitorTypeEnum.ZDYQ.getType());
bean.setProcessInstanceId(processInstanceId);
bean.setDeptId(deptId);
bean.setCheckStatus(TaskCheckStatusEnum.PADDING.getCode());
String uniqueToken = UUID.randomUUID().toString();
String token = uniqueToken.replace("-", "");
bean.setToken(token);
int insert = baseMapper.insert(bean);
List<VisitorsCarAppDTO> visitorsCarAppDTOList = visitors.getVisitorsCarAppDTOList();
if (!CollectionUtils.isEmpty(visitorsCarAppDTOList)){
List<VisitorsCarEntity> visitorsCarEntities = BeanUtils.toBean(visitorsCarAppDTOList, VisitorsCarEntity.class);
visitorsCarEntities.forEach(i->{
i.setVisitorsId(bean.getId());
});
visitorsCarMapper.insert(visitorsCarEntities);
}
return insert;
}
@Override
public Object getPageBF(Page page, VisitorsEntity visitors) {
Long userId = SecurityUtils.getUser().getId();
LambdaQueryWrapper<VisitorsEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(VisitorsEntity::getUserId, userId);
Page pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of());
List<VisitorsAppPageVo> records = pageData.getRecords();
Page<VisitorsAppPageVo> resultPage = new Page<>();
org.springframework.beans.BeanUtils.copyProperties(pageData, resultPage, "records"); // 复制分页参数
List<VisitorsAppPageVo> visitorsAppPageVos = BeanUtils.toBean(records, VisitorsAppPageVo.class);
resultPage.setRecords(visitorsAppPageVos);
return resultPage;
}
}
@@ -0,0 +1,13 @@
<?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.bsd.pjcloud.integrated.mapper.VisitorsCarMapper">
<resultMap id="visitorsCarMap" type="com.bsd.pjcloud.integrated.entity.VisitorsCarEntity">
<id property="id" column="id"/>
<result property="carNumber" column="car_number"/>
<result property="visitorsId" column="visitors_id"/>
<result property="createTime" column="create_time"/>
<result property="delFlag" column="del_flag"/>
</resultMap>
</mapper>
@@ -0,0 +1,33 @@
<?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.bsd.pjcloud.integrated.mapper.VisitorsMapper">
<resultMap id="visitorsMap" type="com.bsd.pjcloud.integrated.entity.VisitorsEntity">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="mobile" column="mobile"/>
<result property="idCard" column="id_card"/>
<result property="description" column="description"/>
<result property="checkStatus" column="check_status"/>
<result property="deptId" column="dept_id"/>
<result property="userName" column="user_name"/>
<result property="carId" column="car_id"/>
<result property="companyName" column="company_name"/>
<result property="peopleNumber" column="people_number"/>
<result property="vStartDate" column="v_start_date"/>
<result property="vEndDate" column="v_end_data"/>
<result property="isDrive" column="is_drive"/>
<result property="processInstanceId" column="process_instance_id"/>
<result property="checkReason" column="check_reason"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="delFlag" column="del_flag"/>
<result property="tenantId" column="tenant_id"/>
<result property="token" column="token"/>
<result property="type" column="type"/>
<result property="userId" column="user_id"/>
</resultMap>
</mapper>