Browse Source

预约、记录

LIVE_YE 1 year ago
parent
commit
4f21261f5d
18 changed files with 1996 additions and 0 deletions
  1. 104 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/appointment/AccessRecordController.java
  2. 104 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/appointment/BomanReservatConfigTimeController.java
  3. 104 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/appointment/BomanReservatController.java
  4. 199 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/AccessRecord.java
  5. 298 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/BomanReservat.java
  6. 140 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/BomanReservatConfigTime.java
  7. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/AccessRecordMapper.java
  8. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/BomanReservatConfigTimeMapper.java
  9. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/BomanReservatMapper.java
  10. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/IAccessRecordService.java
  11. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/IBomanReservatConfigTimeService.java
  12. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/IBomanReservatService.java
  13. 96 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AccessRecordServiceImpl.java
  14. 96 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BomanReservatConfigTimeServiceImpl.java
  15. 96 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BomanReservatServiceImpl.java
  16. 126 0
      ruoyi-system/src/main/resources/mapper/system/AccessRecordMapper.xml
  17. 106 0
      ruoyi-system/src/main/resources/mapper/system/BomanReservatConfigTimeMapper.xml
  18. 161 0
      ruoyi-system/src/main/resources/mapper/system/BomanReservatMapper.xml

+ 104 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/appointment/AccessRecordController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.web.controller.appointment;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.domain.AccessRecord;
+import com.ruoyi.system.service.IAccessRecordService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 访问记录Controller
+ *
+ * @author ruoyi
+ * @date 2024-02-27
+ */
+@RestController
+@RequestMapping("/system/record")
+public class AccessRecordController extends BaseController
+{
+    @Autowired
+    private IAccessRecordService accessRecordService;
+
+/**
+ * 查询访问记录列表
+ */
+@PreAuthorize("@ss.hasPermi('system:record:list')")
+@GetMapping("/list")
+    public TableDataInfo list(AccessRecord accessRecord)
+    {
+        startPage();
+        List<AccessRecord> list = accessRecordService.selectAccessRecordList(accessRecord);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出访问记录列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:record:export')")
+    @Log(title = "访问记录", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, AccessRecord accessRecord)
+    {
+        List<AccessRecord> list = accessRecordService.selectAccessRecordList(accessRecord);
+        ExcelUtil<AccessRecord> util = new ExcelUtil<AccessRecord>(AccessRecord.class);
+        util.exportExcel(response, list, "访问记录数据");
+    }
+
+    /**
+     * 获取访问记录详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:record:query')")
+    @GetMapping(value = "/{recordId}")
+    public AjaxResult getInfo(@PathVariable("recordId") Long recordId)
+    {
+        return success(accessRecordService.selectAccessRecordByRecordId(recordId));
+    }
+
+    /**
+     * 新增访问记录
+     */
+    @PreAuthorize("@ss.hasPermi('system:record:add')")
+    @Log(title = "访问记录", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody AccessRecord accessRecord)
+    {
+        return toAjax(accessRecordService.insertAccessRecord(accessRecord));
+    }
+
+    /**
+     * 修改访问记录
+     */
+    @PreAuthorize("@ss.hasPermi('system:record:edit')")
+    @Log(title = "访问记录", businessType = BusinessType.UPDATE)
+    @PostMapping("/put")
+    public AjaxResult edit(@RequestBody AccessRecord accessRecord)
+    {
+        return toAjax(accessRecordService.updateAccessRecord(accessRecord));
+    }
+
+    /**
+     * 删除访问记录
+     */
+    @PreAuthorize("@ss.hasPermi('system:record:remove')")
+    @Log(title = "访问记录", businessType = BusinessType.DELETE)
+    @GetMapping("/delete/{recordIds}")
+    public AjaxResult remove(@PathVariable Long[] recordIds)
+    {
+        return toAjax(accessRecordService.deleteAccessRecordByRecordIds(recordIds));
+    }
+}

+ 104 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/appointment/BomanReservatConfigTimeController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.web.controller.appointment;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.domain.BomanReservatConfigTime;
+import com.ruoyi.system.service.IBomanReservatConfigTimeService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 预约时段配置Controller
+ *
+ * @author ruoyi
+ * @date 2024-02-27
+ */
+@RestController
+@RequestMapping("/system/time")
+public class BomanReservatConfigTimeController extends BaseController
+{
+    @Autowired
+    private IBomanReservatConfigTimeService bomanReservatConfigTimeService;
+
+/**
+ * 查询预约时段配置列表
+ */
+@PreAuthorize("@ss.hasPermi('system:time:list')")
+@GetMapping("/list")
+    public TableDataInfo list(BomanReservatConfigTime bomanReservatConfigTime)
+    {
+        startPage();
+        List<BomanReservatConfigTime> list = bomanReservatConfigTimeService.selectBomanReservatConfigTimeList(bomanReservatConfigTime);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出预约时段配置列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:time:export')")
+    @Log(title = "预约时段配置", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BomanReservatConfigTime bomanReservatConfigTime)
+    {
+        List<BomanReservatConfigTime> list = bomanReservatConfigTimeService.selectBomanReservatConfigTimeList(bomanReservatConfigTime);
+        ExcelUtil<BomanReservatConfigTime> util = new ExcelUtil<BomanReservatConfigTime>(BomanReservatConfigTime.class);
+        util.exportExcel(response, list, "预约时段配置数据");
+    }
+
+    /**
+     * 获取预约时段配置详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:time:query')")
+    @GetMapping(value = "/{reservatConfigTimeId}")
+    public AjaxResult getInfo(@PathVariable("reservatConfigTimeId") Long reservatConfigTimeId)
+    {
+        return success(bomanReservatConfigTimeService.selectBomanReservatConfigTimeByReservatConfigTimeId(reservatConfigTimeId));
+    }
+
+    /**
+     * 新增预约时段配置
+     */
+    @PreAuthorize("@ss.hasPermi('system:time:add')")
+    @Log(title = "预约时段配置", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BomanReservatConfigTime bomanReservatConfigTime)
+    {
+        return toAjax(bomanReservatConfigTimeService.insertBomanReservatConfigTime(bomanReservatConfigTime));
+    }
+
+    /**
+     * 修改预约时段配置
+     */
+    @PreAuthorize("@ss.hasPermi('system:time:edit')")
+    @Log(title = "预约时段配置", businessType = BusinessType.UPDATE)
+    @PostMapping("/put")
+    public AjaxResult edit(@RequestBody BomanReservatConfigTime bomanReservatConfigTime)
+    {
+        return toAjax(bomanReservatConfigTimeService.updateBomanReservatConfigTime(bomanReservatConfigTime));
+    }
+
+    /**
+     * 删除预约时段配置
+     */
+    @PreAuthorize("@ss.hasPermi('system:time:remove')")
+    @Log(title = "预约时段配置", businessType = BusinessType.DELETE)
+    @GetMapping("/delete/{reservatConfigTimeIds}")
+    public AjaxResult remove(@PathVariable Long[] reservatConfigTimeIds)
+    {
+        return toAjax(bomanReservatConfigTimeService.deleteBomanReservatConfigTimeByReservatConfigTimeIds(reservatConfigTimeIds));
+    }
+}

+ 104 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/appointment/BomanReservatController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.web.controller.appointment;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.domain.BomanReservat;
+import com.ruoyi.system.service.IBomanReservatService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 预约Controller
+ *
+ * @author ruoyi
+ * @date 2024-02-27
+ */
+@RestController
+@RequestMapping("/system/reservat")
+public class BomanReservatController extends BaseController
+{
+    @Autowired
+    private IBomanReservatService bomanReservatService;
+
+/**
+ * 查询预约列表
+ */
+@PreAuthorize("@ss.hasPermi('system:reservat:list')")
+@GetMapping("/list")
+    public TableDataInfo list(BomanReservat bomanReservat)
+    {
+        startPage();
+        List<BomanReservat> list = bomanReservatService.selectBomanReservatList(bomanReservat);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出预约列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:reservat:export')")
+    @Log(title = "预约", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BomanReservat bomanReservat)
+    {
+        List<BomanReservat> list = bomanReservatService.selectBomanReservatList(bomanReservat);
+        ExcelUtil<BomanReservat> util = new ExcelUtil<BomanReservat>(BomanReservat.class);
+        util.exportExcel(response, list, "预约数据");
+    }
+
+    /**
+     * 获取预约详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:reservat:query')")
+    @GetMapping(value = "/{reservatId}")
+    public AjaxResult getInfo(@PathVariable("reservatId") Long reservatId)
+    {
+        return success(bomanReservatService.selectBomanReservatByReservatId(reservatId));
+    }
+
+    /**
+     * 新增预约
+     */
+    @PreAuthorize("@ss.hasPermi('system:reservat:add')")
+    @Log(title = "预约", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BomanReservat bomanReservat)
+    {
+        return toAjax(bomanReservatService.insertBomanReservat(bomanReservat));
+    }
+
+    /**
+     * 修改预约
+     */
+    @PreAuthorize("@ss.hasPermi('system:reservat:edit')")
+    @Log(title = "预约", businessType = BusinessType.UPDATE)
+    @PostMapping("/put")
+    public AjaxResult edit(@RequestBody BomanReservat bomanReservat)
+    {
+        return toAjax(bomanReservatService.updateBomanReservat(bomanReservat));
+    }
+
+    /**
+     * 删除预约
+     */
+    @PreAuthorize("@ss.hasPermi('system:reservat:remove')")
+    @Log(title = "预约", businessType = BusinessType.DELETE)
+    @GetMapping("/delete/{reservatIds}")
+    public AjaxResult remove(@PathVariable Long[] reservatIds)
+    {
+        return toAjax(bomanReservatService.deleteBomanReservatByReservatIds(reservatIds));
+    }
+}

+ 199 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/AccessRecord.java

@@ -0,0 +1,199 @@
+package com.ruoyi.system.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 访问记录对象 access_record
+ * 
+ * @author ruoyi
+ * @date 2024-02-27
+ */
+public class AccessRecord extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** ID */
+    private Long recordId;
+
+    /** 来访者姓名 */
+    @Excel(name = "来访者姓名")
+    private String recordName;
+
+    /** 来访者手机号 */
+    @Excel(name = "来访者手机号")
+    private String recordPhone;
+
+    /** 来访者身份证 */
+    @Excel(name = "来访者身份证")
+    private String recordIdCard;
+
+    /** 来访者人数 */
+    @Excel(name = "来访者人数")
+    private String recordNum;
+
+    /** 来访者事由 */
+    @Excel(name = "来访者事由")
+    private String recordReason;
+
+    /** 来访者补充事由 */
+    @Excel(name = "来访者补充事由")
+    private String recordRemark;
+
+    /** 出入时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "出入时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date recordDateTime;
+
+    /** 人员类型 1:内部人员 2:外部人员 */
+    @Excel(name = "人员类型 1:内部人员 2:外部人员")
+    private String recordType;
+
+    /** 记录来源 */
+    @Excel(name = "记录来源")
+    private String recordSource;
+
+    /** 人脸数据 */
+    @Excel(name = "人脸数据")
+    private String humanFaceData;
+
+    /** 创建部门 */
+    @Excel(name = "创建部门")
+    private Long createDept;
+
+    public void setRecordId(Long recordId) 
+    {
+        this.recordId = recordId;
+    }
+
+    public Long getRecordId() 
+    {
+        return recordId;
+    }
+    public void setRecordName(String recordName) 
+    {
+        this.recordName = recordName;
+    }
+
+    public String getRecordName() 
+    {
+        return recordName;
+    }
+    public void setRecordPhone(String recordPhone) 
+    {
+        this.recordPhone = recordPhone;
+    }
+
+    public String getRecordPhone() 
+    {
+        return recordPhone;
+    }
+    public void setRecordIdCard(String recordIdCard) 
+    {
+        this.recordIdCard = recordIdCard;
+    }
+
+    public String getRecordIdCard() 
+    {
+        return recordIdCard;
+    }
+    public void setRecordNum(String recordNum) 
+    {
+        this.recordNum = recordNum;
+    }
+
+    public String getRecordNum() 
+    {
+        return recordNum;
+    }
+    public void setRecordReason(String recordReason) 
+    {
+        this.recordReason = recordReason;
+    }
+
+    public String getRecordReason() 
+    {
+        return recordReason;
+    }
+    public void setRecordRemark(String recordRemark) 
+    {
+        this.recordRemark = recordRemark;
+    }
+
+    public String getRecordRemark() 
+    {
+        return recordRemark;
+    }
+    public void setRecordDateTime(Date recordDateTime) 
+    {
+        this.recordDateTime = recordDateTime;
+    }
+
+    public Date getRecordDateTime() 
+    {
+        return recordDateTime;
+    }
+    public void setRecordType(String recordType) 
+    {
+        this.recordType = recordType;
+    }
+
+    public String getRecordType() 
+    {
+        return recordType;
+    }
+    public void setRecordSource(String recordSource) 
+    {
+        this.recordSource = recordSource;
+    }
+
+    public String getRecordSource() 
+    {
+        return recordSource;
+    }
+    public void setHumanFaceData(String humanFaceData) 
+    {
+        this.humanFaceData = humanFaceData;
+    }
+
+    public String getHumanFaceData() 
+    {
+        return humanFaceData;
+    }
+    public void setCreateDept(Long createDept) 
+    {
+        this.createDept = createDept;
+    }
+
+    public Long getCreateDept() 
+    {
+        return createDept;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("recordId", getRecordId())
+            .append("recordName", getRecordName())
+            .append("recordPhone", getRecordPhone())
+            .append("recordIdCard", getRecordIdCard())
+            .append("recordNum", getRecordNum())
+            .append("recordReason", getRecordReason())
+            .append("recordRemark", getRecordRemark())
+            .append("recordDateTime", getRecordDateTime())
+            .append("recordType", getRecordType())
+            .append("recordSource", getRecordSource())
+            .append("humanFaceData", getHumanFaceData())
+            .append("createDept", getCreateDept())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 298 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/BomanReservat.java

@@ -0,0 +1,298 @@
+package com.ruoyi.system.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 预约对象 boman_reservat
+ * 
+ * @author ruoyi
+ * @date 2024-02-27
+ */
+public class BomanReservat extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 陵园预约ID */
+    private Long reservatId;
+
+    /** 被访问人员id */
+    @Excel(name = "被访问人员id")
+    private Long appointmentId;
+
+    /** 被访问人员姓名 */
+    @Excel(name = "被访问人员姓名")
+    private String appointmentName;
+
+    /** 来访者姓名 */
+    @Excel(name = "来访者姓名")
+    private String visitName;
+
+    /** 预约时段id */
+    @Excel(name = "预约时段id")
+    private Long reservatConfigTimeId;
+
+    /** 来访者手机号 */
+    @Excel(name = "来访者手机号")
+    private String visitPhone;
+
+    /** 来访者身份证 */
+    @Excel(name = "来访者身份证")
+    private String visitIdCard;
+
+    /** 来访者人数 */
+    @Excel(name = "来访者人数")
+    private String visitNum;
+
+    /** 来访者事由 */
+    @Excel(name = "来访者事由")
+    private String visitReason;
+
+    /** 来访者补充事由 */
+    @Excel(name = "来访者补充事由")
+    private String visitRemark;
+
+    /** 预约日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "预约日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date visitDate;
+
+    /** 预约时间 */
+    @Excel(name = "预约时间")
+    private String visitTime;
+
+    /** 预约时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "预约时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date visitDateTime;
+
+    /** 预约二维码 */
+    @Excel(name = "预约二维码")
+    private String visitQr;
+
+    /** 预约状态 1:等待审核 2:拒绝 3:已通过 */
+    @Excel(name = "预约状态 1:等待审核 2:拒绝 3:已通过")
+    private String visitType;
+
+    /** 是否入场 1:未入场 2:已入场 */
+    @Excel(name = "是否入场 1:未入场 2:已入场")
+    private String visitStatus;
+
+    /** 人脸数据 */
+    @Excel(name = "人脸数据")
+    private String humanFaceData;
+
+    /** 访问密码(仅管理员可见) */
+    @Excel(name = "访问密码(仅管理员可见)")
+    private String accessPassword;
+
+    /** 创建部门 */
+    @Excel(name = "创建部门")
+    private Long createDept;
+
+    public void setReservatId(Long reservatId) 
+    {
+        this.reservatId = reservatId;
+    }
+
+    public Long getReservatId() 
+    {
+        return reservatId;
+    }
+    public void setAppointmentId(Long appointmentId) 
+    {
+        this.appointmentId = appointmentId;
+    }
+
+    public Long getAppointmentId() 
+    {
+        return appointmentId;
+    }
+    public void setAppointmentName(String appointmentName) 
+    {
+        this.appointmentName = appointmentName;
+    }
+
+    public String getAppointmentName() 
+    {
+        return appointmentName;
+    }
+    public void setVisitName(String visitName) 
+    {
+        this.visitName = visitName;
+    }
+
+    public String getVisitName() 
+    {
+        return visitName;
+    }
+    public void setReservatConfigTimeId(Long reservatConfigTimeId) 
+    {
+        this.reservatConfigTimeId = reservatConfigTimeId;
+    }
+
+    public Long getReservatConfigTimeId() 
+    {
+        return reservatConfigTimeId;
+    }
+    public void setVisitPhone(String visitPhone) 
+    {
+        this.visitPhone = visitPhone;
+    }
+
+    public String getVisitPhone() 
+    {
+        return visitPhone;
+    }
+    public void setVisitIdCard(String visitIdCard) 
+    {
+        this.visitIdCard = visitIdCard;
+    }
+
+    public String getVisitIdCard() 
+    {
+        return visitIdCard;
+    }
+    public void setVisitNum(String visitNum) 
+    {
+        this.visitNum = visitNum;
+    }
+
+    public String getVisitNum() 
+    {
+        return visitNum;
+    }
+    public void setVisitReason(String visitReason) 
+    {
+        this.visitReason = visitReason;
+    }
+
+    public String getVisitReason() 
+    {
+        return visitReason;
+    }
+    public void setVisitRemark(String visitRemark) 
+    {
+        this.visitRemark = visitRemark;
+    }
+
+    public String getVisitRemark() 
+    {
+        return visitRemark;
+    }
+    public void setVisitDate(Date visitDate) 
+    {
+        this.visitDate = visitDate;
+    }
+
+    public Date getVisitDate() 
+    {
+        return visitDate;
+    }
+    public void setVisitTime(String visitTime) 
+    {
+        this.visitTime = visitTime;
+    }
+
+    public String getVisitTime() 
+    {
+        return visitTime;
+    }
+    public void setVisitDateTime(Date visitDateTime) 
+    {
+        this.visitDateTime = visitDateTime;
+    }
+
+    public Date getVisitDateTime() 
+    {
+        return visitDateTime;
+    }
+    public void setVisitQr(String visitQr) 
+    {
+        this.visitQr = visitQr;
+    }
+
+    public String getVisitQr() 
+    {
+        return visitQr;
+    }
+    public void setVisitType(String visitType) 
+    {
+        this.visitType = visitType;
+    }
+
+    public String getVisitType() 
+    {
+        return visitType;
+    }
+    public void setVisitStatus(String visitStatus) 
+    {
+        this.visitStatus = visitStatus;
+    }
+
+    public String getVisitStatus() 
+    {
+        return visitStatus;
+    }
+    public void setHumanFaceData(String humanFaceData) 
+    {
+        this.humanFaceData = humanFaceData;
+    }
+
+    public String getHumanFaceData() 
+    {
+        return humanFaceData;
+    }
+    public void setAccessPassword(String accessPassword) 
+    {
+        this.accessPassword = accessPassword;
+    }
+
+    public String getAccessPassword() 
+    {
+        return accessPassword;
+    }
+    public void setCreateDept(Long createDept) 
+    {
+        this.createDept = createDept;
+    }
+
+    public Long getCreateDept() 
+    {
+        return createDept;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("reservatId", getReservatId())
+            .append("appointmentId", getAppointmentId())
+            .append("appointmentName", getAppointmentName())
+            .append("visitName", getVisitName())
+            .append("reservatConfigTimeId", getReservatConfigTimeId())
+            .append("visitPhone", getVisitPhone())
+            .append("visitIdCard", getVisitIdCard())
+            .append("visitNum", getVisitNum())
+            .append("visitReason", getVisitReason())
+            .append("visitRemark", getVisitRemark())
+            .append("visitDate", getVisitDate())
+            .append("visitTime", getVisitTime())
+            .append("visitDateTime", getVisitDateTime())
+            .append("visitQr", getVisitQr())
+            .append("visitType", getVisitType())
+            .append("visitStatus", getVisitStatus())
+            .append("humanFaceData", getHumanFaceData())
+            .append("accessPassword", getAccessPassword())
+            .append("createDept", getCreateDept())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 140 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/BomanReservatConfigTime.java

@@ -0,0 +1,140 @@
+package com.ruoyi.system.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 预约时段配置对象 boman_reservat_config_time
+ * 
+ * @author ruoyi
+ * @date 2024-02-27
+ */
+public class BomanReservatConfigTime extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 预约时段配置ID */
+    private Long reservatConfigTimeId;
+
+    /** 可预约日期 */
+    @Excel(name = "可预约日期")
+    private String reservatConfigDate;
+
+    /** 可预约时间开始 */
+    @Excel(name = "可预约时间开始")
+    private String reservatConfigTimeBegin;
+
+    /** 可预约时间结束 */
+    @Excel(name = "可预约时间结束")
+    private String reservatConfigTimeEnd;
+
+    /** 可预约人数 */
+    @Excel(name = "可预约人数")
+    private Long reservatConfigNum;
+
+    /** 1: AM 2: PM */
+    @Excel(name = "1: AM 2: PM")
+    private String reservatConfigType;
+
+    /** 当前时段是否可预约 N:不预约  Y:可约 */
+    @Excel(name = "当前时段是否可预约 N:不预约  Y:可约")
+    private String reservatConfigStatus;
+
+    /** 创建部门 */
+    @Excel(name = "创建部门")
+    private Long createDept;
+
+    public void setReservatConfigTimeId(Long reservatConfigTimeId) 
+    {
+        this.reservatConfigTimeId = reservatConfigTimeId;
+    }
+
+    public Long getReservatConfigTimeId() 
+    {
+        return reservatConfigTimeId;
+    }
+    public void setReservatConfigDate(String reservatConfigDate) 
+    {
+        this.reservatConfigDate = reservatConfigDate;
+    }
+
+    public String getReservatConfigDate() 
+    {
+        return reservatConfigDate;
+    }
+    public void setReservatConfigTimeBegin(String reservatConfigTimeBegin) 
+    {
+        this.reservatConfigTimeBegin = reservatConfigTimeBegin;
+    }
+
+    public String getReservatConfigTimeBegin() 
+    {
+        return reservatConfigTimeBegin;
+    }
+    public void setReservatConfigTimeEnd(String reservatConfigTimeEnd) 
+    {
+        this.reservatConfigTimeEnd = reservatConfigTimeEnd;
+    }
+
+    public String getReservatConfigTimeEnd() 
+    {
+        return reservatConfigTimeEnd;
+    }
+    public void setReservatConfigNum(Long reservatConfigNum) 
+    {
+        this.reservatConfigNum = reservatConfigNum;
+    }
+
+    public Long getReservatConfigNum() 
+    {
+        return reservatConfigNum;
+    }
+    public void setReservatConfigType(String reservatConfigType) 
+    {
+        this.reservatConfigType = reservatConfigType;
+    }
+
+    public String getReservatConfigType() 
+    {
+        return reservatConfigType;
+    }
+    public void setReservatConfigStatus(String reservatConfigStatus) 
+    {
+        this.reservatConfigStatus = reservatConfigStatus;
+    }
+
+    public String getReservatConfigStatus() 
+    {
+        return reservatConfigStatus;
+    }
+    public void setCreateDept(Long createDept) 
+    {
+        this.createDept = createDept;
+    }
+
+    public Long getCreateDept() 
+    {
+        return createDept;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("reservatConfigTimeId", getReservatConfigTimeId())
+            .append("reservatConfigDate", getReservatConfigDate())
+            .append("reservatConfigTimeBegin", getReservatConfigTimeBegin())
+            .append("reservatConfigTimeEnd", getReservatConfigTimeEnd())
+            .append("reservatConfigNum", getReservatConfigNum())
+            .append("reservatConfigType", getReservatConfigType())
+            .append("reservatConfigStatus", getReservatConfigStatus())
+            .append("createDept", getCreateDept())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/AccessRecordMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.mapper;
+
+import java.util.List;
+import com.ruoyi.system.domain.AccessRecord;
+
+/**
+ * 访问记录Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-02-27
+ */
+public interface AccessRecordMapper 
+{
+    /**
+     * 查询访问记录
+     * 
+     * @param recordId 访问记录主键
+     * @return 访问记录
+     */
+    public AccessRecord selectAccessRecordByRecordId(Long recordId);
+
+    /**
+     * 查询访问记录列表
+     * 
+     * @param accessRecord 访问记录
+     * @return 访问记录集合
+     */
+    public List<AccessRecord> selectAccessRecordList(AccessRecord accessRecord);
+
+    /**
+     * 新增访问记录
+     * 
+     * @param accessRecord 访问记录
+     * @return 结果
+     */
+    public int insertAccessRecord(AccessRecord accessRecord);
+
+    /**
+     * 修改访问记录
+     * 
+     * @param accessRecord 访问记录
+     * @return 结果
+     */
+    public int updateAccessRecord(AccessRecord accessRecord);
+
+    /**
+     * 删除访问记录
+     * 
+     * @param recordId 访问记录主键
+     * @return 结果
+     */
+    public int deleteAccessRecordByRecordId(Long recordId);
+
+    /**
+     * 批量删除访问记录
+     * 
+     * @param recordIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteAccessRecordByRecordIds(Long[] recordIds);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/BomanReservatConfigTimeMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.mapper;
+
+import java.util.List;
+import com.ruoyi.system.domain.BomanReservatConfigTime;
+
+/**
+ * 预约时段配置Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-02-27
+ */
+public interface BomanReservatConfigTimeMapper 
+{
+    /**
+     * 查询预约时段配置
+     * 
+     * @param reservatConfigTimeId 预约时段配置主键
+     * @return 预约时段配置
+     */
+    public BomanReservatConfigTime selectBomanReservatConfigTimeByReservatConfigTimeId(Long reservatConfigTimeId);
+
+    /**
+     * 查询预约时段配置列表
+     * 
+     * @param bomanReservatConfigTime 预约时段配置
+     * @return 预约时段配置集合
+     */
+    public List<BomanReservatConfigTime> selectBomanReservatConfigTimeList(BomanReservatConfigTime bomanReservatConfigTime);
+
+    /**
+     * 新增预约时段配置
+     * 
+     * @param bomanReservatConfigTime 预约时段配置
+     * @return 结果
+     */
+    public int insertBomanReservatConfigTime(BomanReservatConfigTime bomanReservatConfigTime);
+
+    /**
+     * 修改预约时段配置
+     * 
+     * @param bomanReservatConfigTime 预约时段配置
+     * @return 结果
+     */
+    public int updateBomanReservatConfigTime(BomanReservatConfigTime bomanReservatConfigTime);
+
+    /**
+     * 删除预约时段配置
+     * 
+     * @param reservatConfigTimeId 预约时段配置主键
+     * @return 结果
+     */
+    public int deleteBomanReservatConfigTimeByReservatConfigTimeId(Long reservatConfigTimeId);
+
+    /**
+     * 批量删除预约时段配置
+     * 
+     * @param reservatConfigTimeIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBomanReservatConfigTimeByReservatConfigTimeIds(Long[] reservatConfigTimeIds);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/BomanReservatMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.mapper;
+
+import java.util.List;
+import com.ruoyi.system.domain.BomanReservat;
+
+/**
+ * 预约Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-02-27
+ */
+public interface BomanReservatMapper 
+{
+    /**
+     * 查询预约
+     * 
+     * @param reservatId 预约主键
+     * @return 预约
+     */
+    public BomanReservat selectBomanReservatByReservatId(Long reservatId);
+
+    /**
+     * 查询预约列表
+     * 
+     * @param bomanReservat 预约
+     * @return 预约集合
+     */
+    public List<BomanReservat> selectBomanReservatList(BomanReservat bomanReservat);
+
+    /**
+     * 新增预约
+     * 
+     * @param bomanReservat 预约
+     * @return 结果
+     */
+    public int insertBomanReservat(BomanReservat bomanReservat);
+
+    /**
+     * 修改预约
+     * 
+     * @param bomanReservat 预约
+     * @return 结果
+     */
+    public int updateBomanReservat(BomanReservat bomanReservat);
+
+    /**
+     * 删除预约
+     * 
+     * @param reservatId 预约主键
+     * @return 结果
+     */
+    public int deleteBomanReservatByReservatId(Long reservatId);
+
+    /**
+     * 批量删除预约
+     * 
+     * @param reservatIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBomanReservatByReservatIds(Long[] reservatIds);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IAccessRecordService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.service;
+
+import java.util.List;
+import com.ruoyi.system.domain.AccessRecord;
+
+/**
+ * 访问记录Service接口
+ * 
+ * @author ruoyi
+ * @date 2024-02-27
+ */
+public interface IAccessRecordService 
+{
+    /**
+     * 查询访问记录
+     * 
+     * @param recordId 访问记录主键
+     * @return 访问记录
+     */
+    public AccessRecord selectAccessRecordByRecordId(Long recordId);
+
+    /**
+     * 查询访问记录列表
+     * 
+     * @param accessRecord 访问记录
+     * @return 访问记录集合
+     */
+    public List<AccessRecord> selectAccessRecordList(AccessRecord accessRecord);
+
+    /**
+     * 新增访问记录
+     * 
+     * @param accessRecord 访问记录
+     * @return 结果
+     */
+    public int insertAccessRecord(AccessRecord accessRecord);
+
+    /**
+     * 修改访问记录
+     * 
+     * @param accessRecord 访问记录
+     * @return 结果
+     */
+    public int updateAccessRecord(AccessRecord accessRecord);
+
+    /**
+     * 批量删除访问记录
+     * 
+     * @param recordIds 需要删除的访问记录主键集合
+     * @return 结果
+     */
+    public int deleteAccessRecordByRecordIds(Long[] recordIds);
+
+    /**
+     * 删除访问记录信息
+     * 
+     * @param recordId 访问记录主键
+     * @return 结果
+     */
+    public int deleteAccessRecordByRecordId(Long recordId);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IBomanReservatConfigTimeService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.service;
+
+import java.util.List;
+import com.ruoyi.system.domain.BomanReservatConfigTime;
+
+/**
+ * 预约时段配置Service接口
+ * 
+ * @author ruoyi
+ * @date 2024-02-27
+ */
+public interface IBomanReservatConfigTimeService 
+{
+    /**
+     * 查询预约时段配置
+     * 
+     * @param reservatConfigTimeId 预约时段配置主键
+     * @return 预约时段配置
+     */
+    public BomanReservatConfigTime selectBomanReservatConfigTimeByReservatConfigTimeId(Long reservatConfigTimeId);
+
+    /**
+     * 查询预约时段配置列表
+     * 
+     * @param bomanReservatConfigTime 预约时段配置
+     * @return 预约时段配置集合
+     */
+    public List<BomanReservatConfigTime> selectBomanReservatConfigTimeList(BomanReservatConfigTime bomanReservatConfigTime);
+
+    /**
+     * 新增预约时段配置
+     * 
+     * @param bomanReservatConfigTime 预约时段配置
+     * @return 结果
+     */
+    public int insertBomanReservatConfigTime(BomanReservatConfigTime bomanReservatConfigTime);
+
+    /**
+     * 修改预约时段配置
+     * 
+     * @param bomanReservatConfigTime 预约时段配置
+     * @return 结果
+     */
+    public int updateBomanReservatConfigTime(BomanReservatConfigTime bomanReservatConfigTime);
+
+    /**
+     * 批量删除预约时段配置
+     * 
+     * @param reservatConfigTimeIds 需要删除的预约时段配置主键集合
+     * @return 结果
+     */
+    public int deleteBomanReservatConfigTimeByReservatConfigTimeIds(Long[] reservatConfigTimeIds);
+
+    /**
+     * 删除预约时段配置信息
+     * 
+     * @param reservatConfigTimeId 预约时段配置主键
+     * @return 结果
+     */
+    public int deleteBomanReservatConfigTimeByReservatConfigTimeId(Long reservatConfigTimeId);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IBomanReservatService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.service;
+
+import java.util.List;
+import com.ruoyi.system.domain.BomanReservat;
+
+/**
+ * 预约Service接口
+ * 
+ * @author ruoyi
+ * @date 2024-02-27
+ */
+public interface IBomanReservatService 
+{
+    /**
+     * 查询预约
+     * 
+     * @param reservatId 预约主键
+     * @return 预约
+     */
+    public BomanReservat selectBomanReservatByReservatId(Long reservatId);
+
+    /**
+     * 查询预约列表
+     * 
+     * @param bomanReservat 预约
+     * @return 预约集合
+     */
+    public List<BomanReservat> selectBomanReservatList(BomanReservat bomanReservat);
+
+    /**
+     * 新增预约
+     * 
+     * @param bomanReservat 预约
+     * @return 结果
+     */
+    public int insertBomanReservat(BomanReservat bomanReservat);
+
+    /**
+     * 修改预约
+     * 
+     * @param bomanReservat 预约
+     * @return 结果
+     */
+    public int updateBomanReservat(BomanReservat bomanReservat);
+
+    /**
+     * 批量删除预约
+     * 
+     * @param reservatIds 需要删除的预约主键集合
+     * @return 结果
+     */
+    public int deleteBomanReservatByReservatIds(Long[] reservatIds);
+
+    /**
+     * 删除预约信息
+     * 
+     * @param reservatId 预约主键
+     * @return 结果
+     */
+    public int deleteBomanReservatByReservatId(Long reservatId);
+}

+ 96 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AccessRecordServiceImpl.java

@@ -0,0 +1,96 @@
+package com.ruoyi.system.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.AccessRecordMapper;
+import com.ruoyi.system.domain.AccessRecord;
+import com.ruoyi.system.service.IAccessRecordService;
+
+/**
+ * 访问记录Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-02-27
+ */
+@Service
+public class AccessRecordServiceImpl implements IAccessRecordService 
+{
+    @Autowired
+    private AccessRecordMapper accessRecordMapper;
+
+    /**
+     * 查询访问记录
+     * 
+     * @param recordId 访问记录主键
+     * @return 访问记录
+     */
+    @Override
+    public AccessRecord selectAccessRecordByRecordId(Long recordId)
+    {
+        return accessRecordMapper.selectAccessRecordByRecordId(recordId);
+    }
+
+    /**
+     * 查询访问记录列表
+     * 
+     * @param accessRecord 访问记录
+     * @return 访问记录
+     */
+    @Override
+    public List<AccessRecord> selectAccessRecordList(AccessRecord accessRecord)
+    {
+        return accessRecordMapper.selectAccessRecordList(accessRecord);
+    }
+
+    /**
+     * 新增访问记录
+     * 
+     * @param accessRecord 访问记录
+     * @return 结果
+     */
+    @Override
+    public int insertAccessRecord(AccessRecord accessRecord)
+    {
+        accessRecord.setCreateTime(DateUtils.getNowDate());
+        return accessRecordMapper.insertAccessRecord(accessRecord);
+    }
+
+    /**
+     * 修改访问记录
+     * 
+     * @param accessRecord 访问记录
+     * @return 结果
+     */
+    @Override
+    public int updateAccessRecord(AccessRecord accessRecord)
+    {
+        accessRecord.setUpdateTime(DateUtils.getNowDate());
+        return accessRecordMapper.updateAccessRecord(accessRecord);
+    }
+
+    /**
+     * 批量删除访问记录
+     * 
+     * @param recordIds 需要删除的访问记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteAccessRecordByRecordIds(Long[] recordIds)
+    {
+        return accessRecordMapper.deleteAccessRecordByRecordIds(recordIds);
+    }
+
+    /**
+     * 删除访问记录信息
+     * 
+     * @param recordId 访问记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteAccessRecordByRecordId(Long recordId)
+    {
+        return accessRecordMapper.deleteAccessRecordByRecordId(recordId);
+    }
+}

+ 96 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BomanReservatConfigTimeServiceImpl.java

@@ -0,0 +1,96 @@
+package com.ruoyi.system.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.BomanReservatConfigTimeMapper;
+import com.ruoyi.system.domain.BomanReservatConfigTime;
+import com.ruoyi.system.service.IBomanReservatConfigTimeService;
+
+/**
+ * 预约时段配置Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-02-27
+ */
+@Service
+public class BomanReservatConfigTimeServiceImpl implements IBomanReservatConfigTimeService 
+{
+    @Autowired
+    private BomanReservatConfigTimeMapper bomanReservatConfigTimeMapper;
+
+    /**
+     * 查询预约时段配置
+     * 
+     * @param reservatConfigTimeId 预约时段配置主键
+     * @return 预约时段配置
+     */
+    @Override
+    public BomanReservatConfigTime selectBomanReservatConfigTimeByReservatConfigTimeId(Long reservatConfigTimeId)
+    {
+        return bomanReservatConfigTimeMapper.selectBomanReservatConfigTimeByReservatConfigTimeId(reservatConfigTimeId);
+    }
+
+    /**
+     * 查询预约时段配置列表
+     * 
+     * @param bomanReservatConfigTime 预约时段配置
+     * @return 预约时段配置
+     */
+    @Override
+    public List<BomanReservatConfigTime> selectBomanReservatConfigTimeList(BomanReservatConfigTime bomanReservatConfigTime)
+    {
+        return bomanReservatConfigTimeMapper.selectBomanReservatConfigTimeList(bomanReservatConfigTime);
+    }
+
+    /**
+     * 新增预约时段配置
+     * 
+     * @param bomanReservatConfigTime 预约时段配置
+     * @return 结果
+     */
+    @Override
+    public int insertBomanReservatConfigTime(BomanReservatConfigTime bomanReservatConfigTime)
+    {
+        bomanReservatConfigTime.setCreateTime(DateUtils.getNowDate());
+        return bomanReservatConfigTimeMapper.insertBomanReservatConfigTime(bomanReservatConfigTime);
+    }
+
+    /**
+     * 修改预约时段配置
+     * 
+     * @param bomanReservatConfigTime 预约时段配置
+     * @return 结果
+     */
+    @Override
+    public int updateBomanReservatConfigTime(BomanReservatConfigTime bomanReservatConfigTime)
+    {
+        bomanReservatConfigTime.setUpdateTime(DateUtils.getNowDate());
+        return bomanReservatConfigTimeMapper.updateBomanReservatConfigTime(bomanReservatConfigTime);
+    }
+
+    /**
+     * 批量删除预约时段配置
+     * 
+     * @param reservatConfigTimeIds 需要删除的预约时段配置主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBomanReservatConfigTimeByReservatConfigTimeIds(Long[] reservatConfigTimeIds)
+    {
+        return bomanReservatConfigTimeMapper.deleteBomanReservatConfigTimeByReservatConfigTimeIds(reservatConfigTimeIds);
+    }
+
+    /**
+     * 删除预约时段配置信息
+     * 
+     * @param reservatConfigTimeId 预约时段配置主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBomanReservatConfigTimeByReservatConfigTimeId(Long reservatConfigTimeId)
+    {
+        return bomanReservatConfigTimeMapper.deleteBomanReservatConfigTimeByReservatConfigTimeId(reservatConfigTimeId);
+    }
+}

+ 96 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BomanReservatServiceImpl.java

@@ -0,0 +1,96 @@
+package com.ruoyi.system.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.BomanReservatMapper;
+import com.ruoyi.system.domain.BomanReservat;
+import com.ruoyi.system.service.IBomanReservatService;
+
+/**
+ * 预约Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-02-27
+ */
+@Service
+public class BomanReservatServiceImpl implements IBomanReservatService 
+{
+    @Autowired
+    private BomanReservatMapper bomanReservatMapper;
+
+    /**
+     * 查询预约
+     * 
+     * @param reservatId 预约主键
+     * @return 预约
+     */
+    @Override
+    public BomanReservat selectBomanReservatByReservatId(Long reservatId)
+    {
+        return bomanReservatMapper.selectBomanReservatByReservatId(reservatId);
+    }
+
+    /**
+     * 查询预约列表
+     * 
+     * @param bomanReservat 预约
+     * @return 预约
+     */
+    @Override
+    public List<BomanReservat> selectBomanReservatList(BomanReservat bomanReservat)
+    {
+        return bomanReservatMapper.selectBomanReservatList(bomanReservat);
+    }
+
+    /**
+     * 新增预约
+     * 
+     * @param bomanReservat 预约
+     * @return 结果
+     */
+    @Override
+    public int insertBomanReservat(BomanReservat bomanReservat)
+    {
+        bomanReservat.setCreateTime(DateUtils.getNowDate());
+        return bomanReservatMapper.insertBomanReservat(bomanReservat);
+    }
+
+    /**
+     * 修改预约
+     * 
+     * @param bomanReservat 预约
+     * @return 结果
+     */
+    @Override
+    public int updateBomanReservat(BomanReservat bomanReservat)
+    {
+        bomanReservat.setUpdateTime(DateUtils.getNowDate());
+        return bomanReservatMapper.updateBomanReservat(bomanReservat);
+    }
+
+    /**
+     * 批量删除预约
+     * 
+     * @param reservatIds 需要删除的预约主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBomanReservatByReservatIds(Long[] reservatIds)
+    {
+        return bomanReservatMapper.deleteBomanReservatByReservatIds(reservatIds);
+    }
+
+    /**
+     * 删除预约信息
+     * 
+     * @param reservatId 预约主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBomanReservatByReservatId(Long reservatId)
+    {
+        return bomanReservatMapper.deleteBomanReservatByReservatId(reservatId);
+    }
+}

+ 126 - 0
ruoyi-system/src/main/resources/mapper/system/AccessRecordMapper.xml

@@ -0,0 +1,126 @@
+<?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.ruoyi.system.mapper.AccessRecordMapper">
+    
+    <resultMap type="AccessRecord" id="AccessRecordResult">
+        <result property="recordId"    column="record_id"    />
+        <result property="recordName"    column="record_name"    />
+        <result property="recordPhone"    column="record_phone"    />
+        <result property="recordIdCard"    column="record_id_card"    />
+        <result property="recordNum"    column="record_num"    />
+        <result property="recordReason"    column="record_reason"    />
+        <result property="recordRemark"    column="record_remark"    />
+        <result property="recordDateTime"    column="record_date_time"    />
+        <result property="recordType"    column="record_type"    />
+        <result property="recordSource"    column="record_source"    />
+        <result property="humanFaceData"    column="human_face_data"    />
+        <result property="createDept"    column="create_dept"    />
+        <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="remark"    column="remark"    />
+    </resultMap>
+
+    <sql id="selectAccessRecordVo">
+        select record_id, record_name, record_phone, record_id_card, record_num, record_reason, record_remark, record_date_time, record_type, record_source, human_face_data, create_dept, create_by, create_time, update_by, update_time, remark from access_record
+    </sql>
+
+    <select id="selectAccessRecordList" parameterType="AccessRecord" resultMap="AccessRecordResult">
+        <include refid="selectAccessRecordVo"/>
+        <where>  
+            <if test="recordName != null  and recordName != ''"> and record_name like concat('%', #{recordName}, '%')</if>
+            <if test="recordPhone != null  and recordPhone != ''"> and record_phone = #{recordPhone}</if>
+            <if test="recordIdCard != null  and recordIdCard != ''"> and record_id_card = #{recordIdCard}</if>
+            <if test="recordNum != null  and recordNum != ''"> and record_num = #{recordNum}</if>
+            <if test="recordReason != null  and recordReason != ''"> and record_reason = #{recordReason}</if>
+            <if test="recordRemark != null  and recordRemark != ''"> and record_remark = #{recordRemark}</if>
+            <if test="recordDateTime != null "> and record_date_time = #{recordDateTime}</if>
+            <if test="recordType != null  and recordType != ''"> and record_type = #{recordType}</if>
+            <if test="recordSource != null  and recordSource != ''"> and record_source = #{recordSource}</if>
+            <if test="humanFaceData != null  and humanFaceData != ''"> and human_face_data = #{humanFaceData}</if>
+            <if test="createDept != null "> and create_dept = #{createDept}</if>
+        </where>
+    </select>
+    
+    <select id="selectAccessRecordByRecordId" parameterType="Long" resultMap="AccessRecordResult">
+        <include refid="selectAccessRecordVo"/>
+        where record_id = #{recordId}
+    </select>
+        
+    <insert id="insertAccessRecord" parameterType="AccessRecord" useGeneratedKeys="true" keyProperty="recordId">
+        insert into access_record
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="recordName != null">record_name,</if>
+            <if test="recordPhone != null">record_phone,</if>
+            <if test="recordIdCard != null">record_id_card,</if>
+            <if test="recordNum != null">record_num,</if>
+            <if test="recordReason != null">record_reason,</if>
+            <if test="recordRemark != null">record_remark,</if>
+            <if test="recordDateTime != null">record_date_time,</if>
+            <if test="recordType != null">record_type,</if>
+            <if test="recordSource != null">record_source,</if>
+            <if test="humanFaceData != null">human_face_data,</if>
+            <if test="createDept != null">create_dept,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="recordName != null">#{recordName},</if>
+            <if test="recordPhone != null">#{recordPhone},</if>
+            <if test="recordIdCard != null">#{recordIdCard},</if>
+            <if test="recordNum != null">#{recordNum},</if>
+            <if test="recordReason != null">#{recordReason},</if>
+            <if test="recordRemark != null">#{recordRemark},</if>
+            <if test="recordDateTime != null">#{recordDateTime},</if>
+            <if test="recordType != null">#{recordType},</if>
+            <if test="recordSource != null">#{recordSource},</if>
+            <if test="humanFaceData != null">#{humanFaceData},</if>
+            <if test="createDept != null">#{createDept},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+         </trim>
+    </insert>
+
+    <update id="updateAccessRecord" parameterType="AccessRecord">
+        update access_record
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="recordName != null">record_name = #{recordName},</if>
+            <if test="recordPhone != null">record_phone = #{recordPhone},</if>
+            <if test="recordIdCard != null">record_id_card = #{recordIdCard},</if>
+            <if test="recordNum != null">record_num = #{recordNum},</if>
+            <if test="recordReason != null">record_reason = #{recordReason},</if>
+            <if test="recordRemark != null">record_remark = #{recordRemark},</if>
+            <if test="recordDateTime != null">record_date_time = #{recordDateTime},</if>
+            <if test="recordType != null">record_type = #{recordType},</if>
+            <if test="recordSource != null">record_source = #{recordSource},</if>
+            <if test="humanFaceData != null">human_face_data = #{humanFaceData},</if>
+            <if test="createDept != null">create_dept = #{createDept},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where record_id = #{recordId}
+    </update>
+
+    <delete id="deleteAccessRecordByRecordId" parameterType="Long">
+        delete from access_record where record_id = #{recordId}
+    </delete>
+
+    <delete id="deleteAccessRecordByRecordIds" parameterType="String">
+        delete from access_record where record_id in 
+        <foreach item="recordId" collection="array" open="(" separator="," close=")">
+            #{recordId}
+        </foreach>
+    </delete>
+</mapper>

+ 106 - 0
ruoyi-system/src/main/resources/mapper/system/BomanReservatConfigTimeMapper.xml

@@ -0,0 +1,106 @@
+<?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.ruoyi.system.mapper.BomanReservatConfigTimeMapper">
+    
+    <resultMap type="BomanReservatConfigTime" id="BomanReservatConfigTimeResult">
+        <result property="reservatConfigTimeId"    column="reservat_config_time_id"    />
+        <result property="reservatConfigDate"    column="reservat_config_date"    />
+        <result property="reservatConfigTimeBegin"    column="reservat_config_time_begin"    />
+        <result property="reservatConfigTimeEnd"    column="reservat_config_time_end"    />
+        <result property="reservatConfigNum"    column="reservat_config_num"    />
+        <result property="reservatConfigType"    column="reservat_config_type"    />
+        <result property="reservatConfigStatus"    column="reservat_config_status"    />
+        <result property="createDept"    column="create_dept"    />
+        <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="remark"    column="remark"    />
+    </resultMap>
+
+    <sql id="selectBomanReservatConfigTimeVo">
+        select reservat_config_time_id, reservat_config_date, reservat_config_time_begin, reservat_config_time_end, reservat_config_num, reservat_config_type, reservat_config_status, create_dept, create_by, create_time, update_by, update_time, remark from boman_reservat_config_time
+    </sql>
+
+    <select id="selectBomanReservatConfigTimeList" parameterType="BomanReservatConfigTime" resultMap="BomanReservatConfigTimeResult">
+        <include refid="selectBomanReservatConfigTimeVo"/>
+        <where>  
+            <if test="reservatConfigDate != null  and reservatConfigDate != ''"> and reservat_config_date = #{reservatConfigDate}</if>
+            <if test="reservatConfigTimeBegin != null  and reservatConfigTimeBegin != ''"> and reservat_config_time_begin = #{reservatConfigTimeBegin}</if>
+            <if test="reservatConfigTimeEnd != null  and reservatConfigTimeEnd != ''"> and reservat_config_time_end = #{reservatConfigTimeEnd}</if>
+            <if test="reservatConfigNum != null "> and reservat_config_num = #{reservatConfigNum}</if>
+            <if test="reservatConfigType != null  and reservatConfigType != ''"> and reservat_config_type = #{reservatConfigType}</if>
+            <if test="reservatConfigStatus != null  and reservatConfigStatus != ''"> and reservat_config_status = #{reservatConfigStatus}</if>
+            <if test="createDept != null "> and create_dept = #{createDept}</if>
+        </where>
+    </select>
+    
+    <select id="selectBomanReservatConfigTimeByReservatConfigTimeId" parameterType="Long" resultMap="BomanReservatConfigTimeResult">
+        <include refid="selectBomanReservatConfigTimeVo"/>
+        where reservat_config_time_id = #{reservatConfigTimeId}
+    </select>
+        
+    <insert id="insertBomanReservatConfigTime" parameterType="BomanReservatConfigTime" useGeneratedKeys="true" keyProperty="reservatConfigTimeId">
+        insert into boman_reservat_config_time
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="reservatConfigDate != null">reservat_config_date,</if>
+            <if test="reservatConfigTimeBegin != null">reservat_config_time_begin,</if>
+            <if test="reservatConfigTimeEnd != null">reservat_config_time_end,</if>
+            <if test="reservatConfigNum != null">reservat_config_num,</if>
+            <if test="reservatConfigType != null">reservat_config_type,</if>
+            <if test="reservatConfigStatus != null">reservat_config_status,</if>
+            <if test="createDept != null">create_dept,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="reservatConfigDate != null">#{reservatConfigDate},</if>
+            <if test="reservatConfigTimeBegin != null">#{reservatConfigTimeBegin},</if>
+            <if test="reservatConfigTimeEnd != null">#{reservatConfigTimeEnd},</if>
+            <if test="reservatConfigNum != null">#{reservatConfigNum},</if>
+            <if test="reservatConfigType != null">#{reservatConfigType},</if>
+            <if test="reservatConfigStatus != null">#{reservatConfigStatus},</if>
+            <if test="createDept != null">#{createDept},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+         </trim>
+    </insert>
+
+    <update id="updateBomanReservatConfigTime" parameterType="BomanReservatConfigTime">
+        update boman_reservat_config_time
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="reservatConfigDate != null">reservat_config_date = #{reservatConfigDate},</if>
+            <if test="reservatConfigTimeBegin != null">reservat_config_time_begin = #{reservatConfigTimeBegin},</if>
+            <if test="reservatConfigTimeEnd != null">reservat_config_time_end = #{reservatConfigTimeEnd},</if>
+            <if test="reservatConfigNum != null">reservat_config_num = #{reservatConfigNum},</if>
+            <if test="reservatConfigType != null">reservat_config_type = #{reservatConfigType},</if>
+            <if test="reservatConfigStatus != null">reservat_config_status = #{reservatConfigStatus},</if>
+            <if test="createDept != null">create_dept = #{createDept},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where reservat_config_time_id = #{reservatConfigTimeId}
+    </update>
+
+    <delete id="deleteBomanReservatConfigTimeByReservatConfigTimeId" parameterType="Long">
+        delete from boman_reservat_config_time where reservat_config_time_id = #{reservatConfigTimeId}
+    </delete>
+
+    <delete id="deleteBomanReservatConfigTimeByReservatConfigTimeIds" parameterType="String">
+        delete from boman_reservat_config_time where reservat_config_time_id in 
+        <foreach item="reservatConfigTimeId" collection="array" open="(" separator="," close=")">
+            #{reservatConfigTimeId}
+        </foreach>
+    </delete>
+</mapper>

+ 161 - 0
ruoyi-system/src/main/resources/mapper/system/BomanReservatMapper.xml

@@ -0,0 +1,161 @@
+<?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.ruoyi.system.mapper.BomanReservatMapper">
+    
+    <resultMap type="BomanReservat" id="BomanReservatResult">
+        <result property="reservatId"    column="reservat_id"    />
+        <result property="appointmentId"    column="appointment_id"    />
+        <result property="appointmentName"    column="appointment_name"    />
+        <result property="visitName"    column="visit_name"    />
+        <result property="reservatConfigTimeId"    column="reservat_config_time_id"    />
+        <result property="visitPhone"    column="visit_phone"    />
+        <result property="visitIdCard"    column="visit_id_card"    />
+        <result property="visitNum"    column="visit_num"    />
+        <result property="visitReason"    column="visit_reason"    />
+        <result property="visitRemark"    column="visit_remark"    />
+        <result property="visitDate"    column="visit_date"    />
+        <result property="visitTime"    column="visit_time"    />
+        <result property="visitDateTime"    column="visit_date_time"    />
+        <result property="visitQr"    column="visit_qr"    />
+        <result property="visitType"    column="visit_type"    />
+        <result property="visitStatus"    column="visit_status"    />
+        <result property="humanFaceData"    column="human_face_data"    />
+        <result property="accessPassword"    column="access_password"    />
+        <result property="createDept"    column="create_dept"    />
+        <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="remark"    column="remark"    />
+    </resultMap>
+
+    <sql id="selectBomanReservatVo">
+        select reservat_id, appointment_id, appointment_name, visit_name, reservat_config_time_id, visit_phone, visit_id_card, visit_num, visit_reason, visit_remark, visit_date, visit_time, visit_date_time, visit_qr, visit_type, visit_status, human_face_data, access_password, create_dept, create_by, create_time, update_by, update_time, remark from boman_reservat
+    </sql>
+
+    <select id="selectBomanReservatList" parameterType="BomanReservat" resultMap="BomanReservatResult">
+        <include refid="selectBomanReservatVo"/>
+        <where>  
+            <if test="appointmentId != null "> and appointment_id = #{appointmentId}</if>
+            <if test="appointmentName != null  and appointmentName != ''"> and appointment_name like concat('%', #{appointmentName}, '%')</if>
+            <if test="visitName != null  and visitName != ''"> and visit_name like concat('%', #{visitName}, '%')</if>
+            <if test="reservatConfigTimeId != null "> and reservat_config_time_id = #{reservatConfigTimeId}</if>
+            <if test="visitPhone != null  and visitPhone != ''"> and visit_phone = #{visitPhone}</if>
+            <if test="visitIdCard != null  and visitIdCard != ''"> and visit_id_card = #{visitIdCard}</if>
+            <if test="visitNum != null  and visitNum != ''"> and visit_num = #{visitNum}</if>
+            <if test="visitReason != null  and visitReason != ''"> and visit_reason = #{visitReason}</if>
+            <if test="visitRemark != null  and visitRemark != ''"> and visit_remark = #{visitRemark}</if>
+            <if test="visitDate != null "> and visit_date = #{visitDate}</if>
+            <if test="visitTime != null  and visitTime != ''"> and visit_time = #{visitTime}</if>
+            <if test="visitDateTime != null "> and visit_date_time = #{visitDateTime}</if>
+            <if test="visitQr != null  and visitQr != ''"> and visit_qr = #{visitQr}</if>
+            <if test="visitType != null  and visitType != ''"> and visit_type = #{visitType}</if>
+            <if test="visitStatus != null  and visitStatus != ''"> and visit_status = #{visitStatus}</if>
+            <if test="humanFaceData != null  and humanFaceData != ''"> and human_face_data = #{humanFaceData}</if>
+            <if test="accessPassword != null  and accessPassword != ''"> and access_password = #{accessPassword}</if>
+            <if test="createDept != null "> and create_dept = #{createDept}</if>
+        </where>
+    </select>
+    
+    <select id="selectBomanReservatByReservatId" parameterType="Long" resultMap="BomanReservatResult">
+        <include refid="selectBomanReservatVo"/>
+        where reservat_id = #{reservatId}
+    </select>
+        
+    <insert id="insertBomanReservat" parameterType="BomanReservat" useGeneratedKeys="true" keyProperty="reservatId">
+        insert into boman_reservat
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="appointmentId != null">appointment_id,</if>
+            <if test="appointmentName != null">appointment_name,</if>
+            <if test="visitName != null">visit_name,</if>
+            <if test="reservatConfigTimeId != null">reservat_config_time_id,</if>
+            <if test="visitPhone != null">visit_phone,</if>
+            <if test="visitIdCard != null">visit_id_card,</if>
+            <if test="visitNum != null">visit_num,</if>
+            <if test="visitReason != null">visit_reason,</if>
+            <if test="visitRemark != null">visit_remark,</if>
+            <if test="visitDate != null">visit_date,</if>
+            <if test="visitTime != null">visit_time,</if>
+            <if test="visitDateTime != null">visit_date_time,</if>
+            <if test="visitQr != null">visit_qr,</if>
+            <if test="visitType != null">visit_type,</if>
+            <if test="visitStatus != null">visit_status,</if>
+            <if test="humanFaceData != null">human_face_data,</if>
+            <if test="accessPassword != null">access_password,</if>
+            <if test="createDept != null">create_dept,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="appointmentId != null">#{appointmentId},</if>
+            <if test="appointmentName != null">#{appointmentName},</if>
+            <if test="visitName != null">#{visitName},</if>
+            <if test="reservatConfigTimeId != null">#{reservatConfigTimeId},</if>
+            <if test="visitPhone != null">#{visitPhone},</if>
+            <if test="visitIdCard != null">#{visitIdCard},</if>
+            <if test="visitNum != null">#{visitNum},</if>
+            <if test="visitReason != null">#{visitReason},</if>
+            <if test="visitRemark != null">#{visitRemark},</if>
+            <if test="visitDate != null">#{visitDate},</if>
+            <if test="visitTime != null">#{visitTime},</if>
+            <if test="visitDateTime != null">#{visitDateTime},</if>
+            <if test="visitQr != null">#{visitQr},</if>
+            <if test="visitType != null">#{visitType},</if>
+            <if test="visitStatus != null">#{visitStatus},</if>
+            <if test="humanFaceData != null">#{humanFaceData},</if>
+            <if test="accessPassword != null">#{accessPassword},</if>
+            <if test="createDept != null">#{createDept},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+         </trim>
+    </insert>
+
+    <update id="updateBomanReservat" parameterType="BomanReservat">
+        update boman_reservat
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="appointmentId != null">appointment_id = #{appointmentId},</if>
+            <if test="appointmentName != null">appointment_name = #{appointmentName},</if>
+            <if test="visitName != null">visit_name = #{visitName},</if>
+            <if test="reservatConfigTimeId != null">reservat_config_time_id = #{reservatConfigTimeId},</if>
+            <if test="visitPhone != null">visit_phone = #{visitPhone},</if>
+            <if test="visitIdCard != null">visit_id_card = #{visitIdCard},</if>
+            <if test="visitNum != null">visit_num = #{visitNum},</if>
+            <if test="visitReason != null">visit_reason = #{visitReason},</if>
+            <if test="visitRemark != null">visit_remark = #{visitRemark},</if>
+            <if test="visitDate != null">visit_date = #{visitDate},</if>
+            <if test="visitTime != null">visit_time = #{visitTime},</if>
+            <if test="visitDateTime != null">visit_date_time = #{visitDateTime},</if>
+            <if test="visitQr != null">visit_qr = #{visitQr},</if>
+            <if test="visitType != null">visit_type = #{visitType},</if>
+            <if test="visitStatus != null">visit_status = #{visitStatus},</if>
+            <if test="humanFaceData != null">human_face_data = #{humanFaceData},</if>
+            <if test="accessPassword != null">access_password = #{accessPassword},</if>
+            <if test="createDept != null">create_dept = #{createDept},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where reservat_id = #{reservatId}
+    </update>
+
+    <delete id="deleteBomanReservatByReservatId" parameterType="Long">
+        delete from boman_reservat where reservat_id = #{reservatId}
+    </delete>
+
+    <delete id="deleteBomanReservatByReservatIds" parameterType="String">
+        delete from boman_reservat where reservat_id in 
+        <foreach item="reservatId" collection="array" open="(" separator="," close=")">
+            #{reservatId}
+        </foreach>
+    </delete>
+</mapper>