diff --git a/db/1001pjcloudx_integrated.sql b/db/1001pjcloudx_integrated.sql
index 8e5c37b31..dcb19d840 100644
--- a/db/1001pjcloudx_integrated.sql
+++ b/db/1001pjcloudx_integrated.sql
@@ -52,3 +52,28 @@ insert into sys_menu ( menu_id,parent_id, permission, menu_type, path, icon, del
values (1744015545429,1744015545424, 'integrated_faqInfo_export', '1', null, '1', '0', null, '3', null, '导入导出', 1);
+
+
+
+-- 该脚本不要直接执行, 注意维护菜单的父节点ID 默认 父节点-1 , 默认租户 1
+
+-- 菜单SQL
+insert into sys_menu ( menu_id,parent_id, path, permission, menu_type, icon, del_flag, create_time, sort_order, update_time, name, tenant_id)
+values (1744183369178, '-1', '/integrated/visitors/index', '', '0', 'icon-bangzhushouji', '0', null , '8', null , '访客表管理', 1);
+
+-- 菜单对应按钮SQL
+insert into sys_menu ( menu_id,parent_id, permission, menu_type, path, icon, del_flag, create_time, sort_order, update_time, name, tenant_id)
+values (1744183369179,1744183369178, 'integrated_visitors_view', '1', null, '1', '0', null, '0', null, '访客表查看', 1);
+
+insert into sys_menu ( menu_id,parent_id, permission, menu_type, path, icon, del_flag, create_time, sort_order, update_time, name, tenant_id)
+values (1744183369180,1744183369178, 'integrated_visitors_add', '1', null, '1', '0', null, '1', null, '访客表新增', 1);
+
+insert into sys_menu (menu_id, parent_id, permission, menu_type, path, icon, del_flag, create_time, sort_order, update_time, name, tenant_id)
+values (1744183369181,1744183369178, 'integrated_visitors_edit', '1', null, '1', '0', null, '2', null, '访客表修改', 1);
+
+insert into sys_menu (menu_id, parent_id, permission, menu_type, path, icon, del_flag, create_time, sort_order, update_time, name, tenant_id)
+values (1744183369182,1744183369178, 'integrated_visitors_del', '1', null, '1', '0', null, '3', null, '访客表删除', 1);
+
+insert into sys_menu ( menu_id,parent_id, permission, menu_type, path, icon, del_flag, create_time, sort_order, update_time, name, tenant_id)
+values (1744183369183,1744183369178, 'integrated_visitors_export', '1', null, '1', '0', null, '3', null, '导入导出', 1);
+
diff --git a/pjcloud-integrated/pjcloud-integrated-api/pom.xml b/pjcloud-integrated/pjcloud-integrated-api/pom.xml
index 13d4b5ce3..c35aa605f 100644
--- a/pjcloud-integrated/pjcloud-integrated-api/pom.xml
+++ b/pjcloud-integrated/pjcloud-integrated-api/pom.xml
@@ -28,6 +28,10 @@
com.baomidou
mybatis-plus-extension
+
+ com.baomidou
+ mybatis-plus-spring
+
com.bsd
diff --git a/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/dto/feedback/FeedbackAppDTO.java b/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/dto/feedback/FeedbackAppDTO.java
new file mode 100644
index 000000000..ed3148461
--- /dev/null
+++ b/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/dto/feedback/FeedbackAppDTO.java
@@ -0,0 +1,55 @@
+package com.bsd.pjcloud.integrated.dto.feedback;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.time.LocalDateTime;
+
+/**
+ * 意见反馈
+ *
+ * @author zjf
+ * @date 2025-03-21 14:34:27
+ */
+@Data
+@Schema(description = "移动端意见反馈dto")
+public class FeedbackAppDTO {
+
+
+ /**
+ * 标题
+ */
+ @Schema(description="标题")
+ private String title;
+
+ /**
+ * 图片
+ */
+ @Schema(description="图片")
+ private String picUrl;
+
+
+ /**
+ * 描述
+ */
+ @Schema(description="描述")
+ private String description;
+
+
+ /**
+ * 反馈类型('投诉','建议','BUG报告','功能需求')
+ */
+ @Schema(description="反馈类型('投诉','建议','BUG报告','功能需求')")
+ private String type;
+
+
+ /**
+ * 创建时间
+ */
+ @TableField(fill = FieldFill.INSERT)
+ @Schema(description="创建时间")
+ private LocalDateTime createTime;
+
+}
\ No newline at end of file
diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/FeedbackController.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/FeedbackController.java
index aae740ccc..36300ca39 100644
--- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/FeedbackController.java
+++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/FeedbackController.java
@@ -6,8 +6,11 @@ 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.log.annotation.SysLog;
+import com.bsd.pjcloud.common.security.util.SecurityUtils;
+import com.bsd.pjcloud.integrated.dto.feedback.FeedbackAppDTO;
import com.bsd.pjcloud.integrated.entity.FeedbackEntity;
import com.bsd.pjcloud.integrated.service.FeedbackService;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -120,4 +123,54 @@ public class FeedbackController {
public List export(FeedbackEntity feedback,Long[] ids) {
return feedbackService.list(Wrappers.lambdaQuery(feedback).in(ArrayUtil.isNotEmpty(ids), FeedbackEntity::getId, ids));
}
+
+
+// --------------------APP-------------------------------
+
+
+ /**
+ * 新增意见反馈
+ * @param feedbackAppDTO 意见反馈
+ * @return R
+ */
+ @Operation(summary = "app新增意见反馈" , description = "app新增意见反馈" )
+ @SysLog("新增意见反馈" )
+ @PostMapping("/app/save")
+ public R appSave(@RequestBody FeedbackAppDTO feedbackAppDTO) {
+ Long id = SecurityUtils.getUser().getId();
+ FeedbackEntity feedback = BeanUtils.toBean(feedbackAppDTO, FeedbackEntity.class);
+ feedback.setUserId(id);
+ return R.ok(feedbackService.save(feedback));
+ }
+
+
+ /**
+ * 分页查询
+ * @param page 分页对象
+ * @param feedback 意见反馈
+ * @return
+ */
+ @Operation(summary = "app分页查询" , description = "app分页查询" )
+ @GetMapping("/app/page" )
+ public R getAppPage(@ParameterObject Page page, @ParameterObject FeedbackEntity feedback) {
+ LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
+ wrapper.eq(FeedbackEntity::getUserId,SecurityUtils.getUser().getId());
+ wrapper.eq(StrUtil.isNotBlank(feedback.getStatus()),FeedbackEntity::getStatus,feedback.getStatus());
+ return R.ok(feedbackService.page(page, wrapper));
+ }
+
+
+ /**
+ * 详情
+ * @param id
+ * @return
+ */
+ @Operation(summary = "app分页查询" , description = "app分页查询" )
+ @GetMapping("/app/getDetails" )
+ public R getAppPage(@RequestParam("id")Long id) {
+ LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
+ wrapper.eq(FeedbackEntity::getUserId,SecurityUtils.getUser().getId());
+ wrapper.eq(FeedbackEntity::getId,id);
+ return R.ok(feedbackService.list(wrapper));
+ }
}
\ No newline at end of file
diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/VisitorsCarController.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/VisitorsCarController.java
new file mode 100644
index 000000000..213948625
--- /dev/null
+++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/VisitorsCarController.java
@@ -0,0 +1,119 @@
+package com.bsd.pjcloud.integrated.controller;
+
+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.R;
+import com.bsd.pjcloud.common.log.annotation.SysLog;
+import com.bsd.pjcloud.integrated.entity.VisitorsCarEntity;
+import com.bsd.pjcloud.integrated.service.VisitorsCarService;
+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.util.List;
+import java.util.Objects;
+
+/**
+ * 车牌号
+ *
+ * @author zjf
+ * @date 2025-04-09 15:10:54
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/visitorsCar" )
+@Tag(description = "visitorsCar" , name = "车牌号管理" )
+@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
+public class VisitorsCarController {
+
+ private final VisitorsCarService visitorsCarService;
+
+ /**
+ * 分页查询
+ * @param page 分页对象
+ * @param visitorsCar 车牌号
+ * @return
+ */
+ @Operation(summary = "分页查询" , description = "分页查询" )
+ @GetMapping("/page" )
+ @PreAuthorize("@pms.hasPermission('integrated_visitorsCar_view')" )
+ public R getVisitorsCarPage(@ParameterObject Page page, @ParameterObject VisitorsCarEntity visitorsCar) {
+ LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
+ return R.ok(visitorsCarService.page(page, wrapper));
+ }
+
+
+ /**
+ * 通过id查询车牌号
+ * @param id id
+ * @return R
+ */
+ @Operation(summary = "通过id查询" , description = "通过id查询" )
+ @GetMapping("/{id}" )
+ @PreAuthorize("@pms.hasPermission('integrated_visitorsCar_view')" )
+ public R getById(@PathVariable("id" ) Long id) {
+ return R.ok(visitorsCarService.getById(id));
+ }
+
+ /**
+ * 新增车牌号
+ * @param visitorsCar 车牌号
+ * @return R
+ */
+ @Operation(summary = "新增车牌号" , description = "新增车牌号" )
+ @SysLog("新增车牌号" )
+ @PostMapping
+ @PreAuthorize("@pms.hasPermission('integrated_visitorsCar_add')" )
+ public R save(@RequestBody VisitorsCarEntity visitorsCar) {
+ return R.ok(visitorsCarService.save(visitorsCar));
+ }
+
+ /**
+ * 修改车牌号
+ * @param visitorsCar 车牌号
+ * @return R
+ */
+ @Operation(summary = "修改车牌号" , description = "修改车牌号" )
+ @SysLog("修改车牌号" )
+ @PutMapping
+ @PreAuthorize("@pms.hasPermission('integrated_visitorsCar_edit')" )
+ public R updateById(@RequestBody VisitorsCarEntity visitorsCar) {
+ return R.ok(visitorsCarService.updateById(visitorsCar));
+ }
+
+ /**
+ * 通过id删除车牌号
+ * @param ids id列表
+ * @return R
+ */
+ @Operation(summary = "通过id删除车牌号" , description = "通过id删除车牌号" )
+ @SysLog("通过id删除车牌号" )
+ @DeleteMapping
+ @PreAuthorize("@pms.hasPermission('integrated_visitorsCar_del')" )
+ public R removeById(@RequestBody Long[] ids) {
+ return R.ok(visitorsCarService.removeBatchByIds(CollUtil.toList(ids)));
+ }
+
+
+ /**
+ * 导出excel 表格
+ * @param visitorsCar 查询条件
+ * @param ids 导出指定ID
+ * @return excel 文件流
+ */
+ @ResponseExcel
+ @GetMapping("/export")
+ @PreAuthorize("@pms.hasPermission('integrated_visitorsCar_export')" )
+ public List export(VisitorsCarEntity visitorsCar,Long[] ids) {
+ return visitorsCarService.list(Wrappers.lambdaQuery(visitorsCar).in(ArrayUtil.isNotEmpty(ids), VisitorsCarEntity::getId, ids));
+ }
+}
\ No newline at end of file
diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/VisitorsController.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/VisitorsController.java
new file mode 100644
index 000000000..27579573e
--- /dev/null
+++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/VisitorsController.java
@@ -0,0 +1,122 @@
+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.R;
+import com.bsd.pjcloud.common.log.annotation.SysLog;
+import com.bsd.pjcloud.integrated.entity.VisitorsEntity;
+import com.bsd.pjcloud.integrated.service.VisitorsService;
+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.util.List;
+import java.util.Objects;
+
+/**
+ * 访客表
+ *
+ * @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 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 export(VisitorsEntity visitors,Long[] ids) {
+ return visitorsService.list(Wrappers.lambdaQuery(visitors).in(ArrayUtil.isNotEmpty(ids), VisitorsEntity::getId, ids));
+ }
+}
\ No newline at end of file
diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/VisitorsCarEntity.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/VisitorsCarEntity.java
new file mode 100644
index 000000000..bd6dd3dcb
--- /dev/null
+++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/VisitorsCarEntity.java
@@ -0,0 +1,56 @@
+package com.bsd.pjcloud.integrated.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.time.LocalDateTime;
+
+/**
+ * 车牌号
+ *
+ * @author zjf
+ * @date 2025-04-09 15:10:54
+ */
+@Data
+@TableName("visitors_car")
+@EqualsAndHashCode(callSuper = true)
+@Schema(description = "车牌号")
+public class VisitorsCarEntity extends Model {
+
+
+ /**
+ * id
+ */
+ @TableId(type = IdType.ASSIGN_ID)
+ @Schema(description="id")
+ private Long id;
+
+ /**
+ * 车牌号
+ */
+ @Schema(description="车牌号")
+ private String carNumber;
+
+ /**
+ * 访客id
+ */
+ @Schema(description="访客id")
+ private Long visitorsId;
+
+ /**
+ * 创建时间
+ */
+ @TableField(fill = FieldFill.INSERT)
+ @Schema(description="创建时间")
+ private LocalDateTime createTime;
+
+ /**
+ * 是否删除
+ */
+ @TableLogic
+ @TableField(fill = FieldFill.INSERT)
+ @Schema(description="是否删除")
+ private String delFlag;
+}
\ No newline at end of file
diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/VisitorsEntity.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/VisitorsEntity.java
new file mode 100644
index 000000000..50d908bcf
--- /dev/null
+++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/VisitorsEntity.java
@@ -0,0 +1,157 @@
+package com.bsd.pjcloud.integrated.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.bsd.pjcloud.common.core.util.TenantTable;
+import java.time.LocalDateTime;
+
+/**
+ * 访客表
+ *
+ * @author zjf
+ * @date 2025-04-09 15:22:47
+ */
+@Data
+@TenantTable
+@TableName("visitors")
+@EqualsAndHashCode(callSuper = true)
+@Schema(description = "访客表")
+public class VisitorsEntity extends Model {
+
+
+ /**
+ * id
+ */
+ @TableId(type = IdType.ASSIGN_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 vDate;
+
+ /**
+ * 是否驾驶车辆0 否 1是
+ */
+ @Schema(description="是否驾驶车辆0 否 1是")
+ private String isDrive;
+
+ /**
+ * 流程id
+ */
+ @Schema(description="流程id")
+ private String processInstanceId;
+
+ /**
+ * 审核原因
+ */
+ @Schema(description="审核原因")
+ private String checkReason;
+
+ /**
+ * 创建者
+ */
+ @TableField(fill = FieldFill.INSERT)
+ @Schema(description="创建者")
+ private String createBy;
+
+ /**
+ * 创建时间
+ */
+ @TableField(fill = FieldFill.INSERT)
+ @Schema(description="创建时间")
+ private LocalDateTime createTime;
+
+ /**
+ * 更新者
+ */
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @Schema(description="更新者")
+ private String updateBy;
+
+ /**
+ * 更新时间
+ */
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @Schema(description="更新时间")
+ private LocalDateTime updateTime;
+
+ /**
+ * 是否删除
+ */
+ @TableLogic
+ @TableField(fill = FieldFill.INSERT)
+ @Schema(description="是否删除")
+ private String delFlag;
+
+ /**
+ * 租户编号
+ */
+ @Schema(description="租户编号")
+ private Long tenantId;
+}
\ No newline at end of file
diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/mapper/VisitorsCarMapper.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/mapper/VisitorsCarMapper.java
new file mode 100644
index 000000000..dbe373646
--- /dev/null
+++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/mapper/VisitorsCarMapper.java
@@ -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 {
+
+
+}
\ No newline at end of file
diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/mapper/VisitorsMapper.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/mapper/VisitorsMapper.java
new file mode 100644
index 000000000..affcdc4f9
--- /dev/null
+++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/mapper/VisitorsMapper.java
@@ -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 {
+
+
+}
\ No newline at end of file
diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/VisitorsCarService.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/VisitorsCarService.java
new file mode 100644
index 000000000..0c0b63542
--- /dev/null
+++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/VisitorsCarService.java
@@ -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 {
+
+}
\ No newline at end of file
diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/VisitorsService.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/VisitorsService.java
new file mode 100644
index 000000000..2aad8b681
--- /dev/null
+++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/VisitorsService.java
@@ -0,0 +1,8 @@
+package com.bsd.pjcloud.integrated.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.bsd.pjcloud.integrated.entity.VisitorsEntity;
+
+public interface VisitorsService extends IService {
+
+}
\ No newline at end of file
diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsCarServiceImpl.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsCarServiceImpl.java
new file mode 100644
index 000000000..da426d75b
--- /dev/null
+++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsCarServiceImpl.java
@@ -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 implements VisitorsCarService {
+}
\ No newline at end of file
diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsServiceImpl.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsServiceImpl.java
new file mode 100644
index 000000000..0b404d9d3
--- /dev/null
+++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsServiceImpl.java
@@ -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.VisitorsEntity;
+import com.bsd.pjcloud.integrated.mapper.VisitorsMapper;
+import com.bsd.pjcloud.integrated.service.VisitorsService;
+import org.springframework.stereotype.Service;
+/**
+ * 访客表
+ *
+ * @author zjf
+ * @date 2025-04-09 15:22:47
+ */
+@Service
+public class VisitorsServiceImpl extends ServiceImpl implements VisitorsService {
+}
\ No newline at end of file
diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/VisitorsCarMapper.xml b/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/VisitorsCarMapper.xml
new file mode 100644
index 000000000..ddb88483c
--- /dev/null
+++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/VisitorsCarMapper.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/VisitorsMapper.xml b/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/VisitorsMapper.xml
new file mode 100644
index 000000000..588e2542d
--- /dev/null
+++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/VisitorsMapper.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file