package com.ruoyi.web.controller.api;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.bean.BeanUtils;
|
import com.ruoyi.system.domain.SysVisitorRecord;
|
import com.ruoyi.system.dto.SysVisitorRecordAddRequest;
|
import com.ruoyi.system.mapper.SysVisitorRecordMapper;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiParam;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import java.util.Date;
|
|
@RestController
|
@RequestMapping("/api/visitorRecord")
|
@Api(tags = "访客登记")
|
public class SysApiVisitorRecordController extends BaseController {
|
|
@Autowired
|
private SysVisitorRecordMapper visitorRecordMapper;
|
|
@PostMapping("/add")
|
@ApiOperation(value = "访客登记", notes = "现场访客登记")
|
public AjaxResult add(
|
@RequestBody
|
@ApiParam(value = "访客登记信息", required = true)
|
SysVisitorRecordAddRequest request) {
|
|
// ================= 参数校验 =================
|
if (StringUtils.isBlank(request.getVisitorName())) {
|
return AjaxResult.error("访客姓名不能为空");
|
}
|
|
if (StringUtils.isBlank(request.getIntervieweeName())) {
|
return AjaxResult.error("被访人不能为空");
|
}
|
|
if (StringUtils.isNotBlank(request.getIdCard())) {
|
|
LambdaQueryWrapper<SysVisitorRecord> wrapper = Wrappers.lambdaQuery();
|
|
wrapper.eq(SysVisitorRecord::getIdCard, request.getIdCard())
|
.eq(SysVisitorRecord::getDelFlag, "0")
|
.in(SysVisitorRecord::getStatus,
|
"VISITING",
|
"PENDING_CONFIRM")
|
.last("limit 1");
|
|
SysVisitorRecord oldRecord = visitorRecordMapper.selectOne(wrapper);
|
|
if (oldRecord != null) {
|
return AjaxResult.error("该访客当前已有未结束的登记,请勿重复登记");
|
}
|
}
|
|
// ================= 保存 =================
|
SysVisitorRecord record = new SysVisitorRecord();
|
BeanUtils.copyProperties(request, record);
|
|
record.setRegisterNo(generateRegisterNo());
|
record.setRegisterType("ONSITE");
|
record.setRegisterSource("访客机");
|
record.setStatus("VISITING");
|
record.setRegisterTime(new Date());
|
record.setDelFlag("0");
|
|
int rows = visitorRecordMapper.insert(record);
|
|
if (rows > 0) {
|
return AjaxResult.success(record.getRegisterNo());
|
}
|
|
return AjaxResult.error("登记失败");
|
}
|
|
|
@PostMapping("/add")
|
@ApiOperation(value = "身份证签离", notes = "身份证签离")
|
public AjaxResult idCardOut(
|
@RequestBody
|
@ApiParam(value = "", required = true)
|
SysVisitorRecordAddRequest request){
|
return success();
|
}
|
|
/**
|
* 生成登记编号
|
* 格式:
|
* VIS + 年月日 + 6位随机数
|
* 例如:
|
* VIS20260707123456
|
*/
|
private String generateRegisterNo() {
|
|
String date =
|
new java.text.SimpleDateFormat("yyyyMMddHHmmss")
|
.format(new Date());
|
|
String random =
|
String.valueOf((int)((Math.random() * 900000) + 100000));
|
|
return "VIS" + date + random;
|
}
|
}
|