Browse Source

feat: 添加核对日志

master
Yen 8 months ago
parent
commit
2e20cfe179
  1. 28
      src/main/java/com/qs/serve/modules/visit/api/VisitMainInnerController.java
  2. 3
      src/main/java/com/qs/serve/modules/visit/api/VisitMainOuterApi.java
  3. 91
      src/main/java/com/qs/serve/modules/visit/controller/VisitCheckLogController.java
  4. 97
      src/main/java/com/qs/serve/modules/visit/entity/VisitCheckLog.java
  5. 14
      src/main/java/com/qs/serve/modules/visit/mapper/VisitCheckLogMapper.java
  6. 14
      src/main/java/com/qs/serve/modules/visit/service/VisitCheckLogService.java
  7. 22
      src/main/java/com/qs/serve/modules/visit/service/impl/VisitCheckLogServiceImpl.java

28
src/main/java/com/qs/serve/modules/visit/api/VisitMainInnerController.java

@ -6,17 +6,16 @@ import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.*;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.visit.common.VisitMainConst; import com.qs.serve.modules.visit.common.VisitMainConst;
import com.qs.serve.modules.visit.entity.VisitCheckLog;
import com.qs.serve.modules.visit.entity.VisitMain; import com.qs.serve.modules.visit.entity.VisitMain;
import com.qs.serve.modules.visit.entity.VisitTheme; import com.qs.serve.modules.visit.entity.VisitTheme;
import com.qs.serve.modules.visit.entity.bo.VisitCheckIn; import com.qs.serve.modules.visit.entity.bo.VisitCheckIn;
import com.qs.serve.modules.visit.entity.vo.VisitMainVo; import com.qs.serve.modules.visit.entity.vo.VisitMainVo;
import com.qs.serve.modules.visit.service.VisitCheckLogService;
import com.qs.serve.modules.visit.service.VisitMainService; import com.qs.serve.modules.visit.service.VisitMainService;
import com.qs.serve.modules.visit.service.VisitThemeService; import com.qs.serve.modules.visit.service.VisitThemeService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -38,6 +37,7 @@ import java.util.List;
@RequestMapping("/mApi/visit") @RequestMapping("/mApi/visit")
public class VisitMainInnerController { public class VisitMainInnerController {
private VisitCheckLogService visitCheckLogService;
private VisitMainService visitMainService; private VisitMainService visitMainService;
private VisitThemeService visitThemeService; private VisitThemeService visitThemeService;
private SysUserService sysUserService; private SysUserService sysUserService;
@ -83,8 +83,15 @@ public class VisitMainInnerController {
@SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.QUERY) @SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.QUERY)
public R<VisitMain> checkIn(@PathVariable String id, @RequestBody VisitCheckIn param){ public R<VisitMain> checkIn(@PathVariable String id, @RequestBody VisitCheckIn param){
VisitMain visitMain = visitMainService.getById(id); VisitMain visitMain = visitMainService.getById(id);
if(visitMain.getCheckState().equals(VisitMainConst.CheckState_1) // 判断是否超过2小时
&&visitMain.getVisitStatus().equals(VisitMainConst.VisitStatus_1)){ if(visitMain.getVisitTime()!=null){
LocalDateTime time = visitMain.getVisitTime().plusHours(2);
if(LocalDateTime.now().isAfter(time)){
Assert.throwEx("已超过2小时,无法核对");
}
}
// 状态为待核对
if(visitMain.getCheckState().equals(VisitMainConst.CheckState_1)){
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
visitMain.setCheckUserId(sysUser.getId()); visitMain.setCheckUserId(sysUser.getId());
visitMain.setCheckUserCode(sysUser.getCode()); visitMain.setCheckUserCode(sysUser.getCode());
@ -92,8 +99,15 @@ public class VisitMainInnerController {
visitMain.setVisitTime(LocalDateTime.now()); visitMain.setVisitTime(LocalDateTime.now());
visitMain.setRemark2(param.getRemark2()); visitMain.setRemark2(param.getRemark2());
visitMain.setVisitStatus(VisitMainConst.VisitStatus_3); visitMain.setVisitStatus(VisitMainConst.VisitStatus_3);
visitMainService.updateById(visitMain); visitMainService.updateById(visitMain);
// 添加核对日志
VisitCheckLog checkLog = new VisitCheckLog();
checkLog.setMainId(id);
visitMain.setCheckUserId(sysUser.getId());
visitMain.setCheckUserCode(sysUser.getCode());
visitMain.setCheckUserName(sysUser.getName());
checkLog.setRemark(param.getRemark2());
visitCheckLogService.save(checkLog);
return R.ok(); return R.ok();
} }
return R.ok(); return R.ok();

3
src/main/java/com/qs/serve/modules/visit/api/VisitMainOuterApi.java

@ -173,10 +173,11 @@ public class VisitMainOuterApi {
public R<?> submit(@RequestBody @Valid VisitMain param){ public R<?> submit(@RequestBody @Valid VisitMain param){
long count = visitMainService.count(new LambdaQueryWrapper<VisitMain>() long count = visitMainService.count(new LambdaQueryWrapper<VisitMain>()
.eq(VisitMain::getThemeId,param.getThemeId()) .eq(VisitMain::getThemeId,param.getThemeId())
.eq(VisitMain::getVisitStatus,1)
.eq(VisitMain::getVisitorMobile,param.getVisitorMobile()) .eq(VisitMain::getVisitorMobile,param.getVisitorMobile())
); );
if(count>0){ if(count>0){
return R.error("请勿重复提交"); return R.error("来访已通过,无需再次提交");
} }
VisitTheme visitTheme = visitThemeService.getById(param.getThemeId()); VisitTheme visitTheme = visitThemeService.getById(param.getThemeId());
if(visitTheme==null){ if(visitTheme==null){

91
src/main/java/com/qs/serve/modules/visit/controller/VisitCheckLogController.java

@ -0,0 +1,91 @@
package com.qs.serve.modules.visit.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.StringUtils;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.visit.entity.VisitCheckLog;
import com.qs.serve.modules.visit.service.VisitCheckLogService;
import javax.validation.Valid;
import java.util.List;
/**
* 系统 门卫核对日志
* @author YenHex
* @since 2024-11-20
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("visit/checkLog")
public class VisitCheckLogController {
private VisitCheckLogService visitCheckLogService;
/**
* 翻页我的
* @param param
* @return
*/
@GetMapping("/pageMy")
public R<PageVo<VisitCheckLog>> getPageMy(VisitCheckLog param){
LambdaQueryWrapper<VisitCheckLog> lqw = new LambdaQueryWrapper<>(param);
param.setCheckUserId(AuthContextUtils.getSysUserId());
PageUtil.startPage();
List<VisitCheckLog> list = visitCheckLogService.list(lqw);
return R.byPageHelperList(list);
}
/**
* 翻页
* @param param
* @return
*/
@GetMapping("/page")
public R<PageVo<VisitCheckLog>> getPage(VisitCheckLog param){
LambdaQueryWrapper<VisitCheckLog> lqw = new LambdaQueryWrapper<>(param);
PageUtil.startPage();
List<VisitCheckLog> list = visitCheckLogService.list(lqw);
return R.byPageHelperList(list);
}
/**
* ID查询
* @param id
* @return
*/
//@GetMapping("/getById/{id}")
@PreAuthorize("hasRole('visit:checkLog:query')")
public R<VisitCheckLog> getById(@PathVariable("id") String id){
VisitCheckLog visitCheckLog = visitCheckLogService.getById(id);
return R.ok(visitCheckLog);
}
/**
* 删除
* @param ids
* @return
*/
@DeleteMapping("/deleteById/{ids}")
//@PreAuthorize("hasRole('visit:checkLog:delete')")
public R<?> deleteById(@PathVariable("ids") String ids){
List<Long> idsLong = StringUtils.splitIdLong(ids);
boolean result = visitCheckLogService.removeByIds(idsLong);
return R.isTrue(result);
}
}

97
src/main/java/com/qs/serve/modules/visit/entity/VisitCheckLog.java

@ -0,0 +1,97 @@
package com.qs.serve.modules.visit.entity;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 门卫核对日志 实体类
* @author YenHex
* @since 2024-11-20
*/
@Data
@TableName("visit_check_log")
public class VisitCheckLog implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 来访实例id */
@Length(max = 255,message = "来访实例id长度不能超过255字")
private String mainId;
/** 门卫id */
@Length(max = 255,message = "门卫id长度不能超过255字")
private String checkUserId;
/** 门卫工号 */
@Length(max = 255,message = "门卫工号长度不能超过255字")
private String checkUserCode;
/** 门卫名称 */
@Length(max = 255,message = "门卫名称长度不能超过255字")
private String checkUserName;
/** 门卫填写的备注 */
@Length(max = 255,message = "门卫填写的备注长度不能超过255字")
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 删除标识 */
@JsonIgnore
@JsonProperty
private Boolean delFlag;
public static VisitCheckLog toNewObject(VisitCheckLog source){
VisitCheckLog checkLog = new VisitCheckLog();
checkLog.setId(source.getId());
checkLog.setMainId(source.getMainId());
checkLog.setCheckUserId(source.getCheckUserId());
checkLog.setCheckUserCode(source.getCheckUserCode());
checkLog.setCheckUserName(source.getCheckUserName());
checkLog.setRemark(source.getRemark());
checkLog.setCreateTime(source.getCreateTime());
checkLog.setCreateBy(source.getCreateBy());
checkLog.setUpdateTime(source.getUpdateTime());
checkLog.setUpdateBy(source.getUpdateBy());
checkLog.setDelFlag(source.getDelFlag());
return checkLog;
}
}

14
src/main/java/com/qs/serve/modules/visit/mapper/VisitCheckLogMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.visit.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.visit.entity.VisitCheckLog;
/**
* 门卫核对日志 Mapper
* @author YenHex
* @date 2024-11-20
*/
public interface VisitCheckLogMapper extends BaseMapper<VisitCheckLog> {
}

14
src/main/java/com/qs/serve/modules/visit/service/VisitCheckLogService.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.visit.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.visit.entity.VisitCheckLog;
/**
* 门卫核对日志 服务接口
* @author YenHex
* @date 2024-11-20
*/
public interface VisitCheckLogService extends IService<VisitCheckLog> {
}

22
src/main/java/com/qs/serve/modules/visit/service/impl/VisitCheckLogServiceImpl.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.visit.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.visit.entity.VisitCheckLog;
import com.qs.serve.modules.visit.service.VisitCheckLogService;
import com.qs.serve.modules.visit.mapper.VisitCheckLogMapper;
/**
* 门卫核对日志 服务实现类
* @author YenHex
* @since 2024-11-20
*/
@Slf4j
@Service
@AllArgsConstructor
public class VisitCheckLogServiceImpl extends ServiceImpl<VisitCheckLogMapper,VisitCheckLog> implements VisitCheckLogService {
}
Loading…
Cancel
Save