兴安访客小程序访客改造

This commit is contained in:
zc
2025-07-01 16:40:21 +08:00
parent ccc1f08366
commit a99ee058b0
16 changed files with 705 additions and 33 deletions

View File

@@ -119,6 +119,19 @@ public class SysPeople extends BaseEntity
private String visitorRegisterId;
/**
* 携物出门审核人员01一级审核人2二级审核人3三级审核人
*/
private String carryStuffExamine;
public String getCarryStuffExamine() {
return carryStuffExamine;
}
public void setCarryStuffExamine(String carryStuffExamine) {
this.carryStuffExamine = carryStuffExamine;
}
public String getVisitorRegisterId() {
return visitorRegisterId;
}

View File

@@ -0,0 +1,260 @@
package com.dcsoft.system.visitor.controller;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.dcsoft.common.core.constant.CacheConstants;
import com.dcsoft.common.core.constant.Constants;
import com.dcsoft.common.core.enums.ExamineEnum;
import com.dcsoft.common.core.enums.MatterEnum;
import com.dcsoft.common.core.exception.ServiceException;
import com.dcsoft.common.core.utils.CollUtil;
import com.dcsoft.common.core.web.controller.BaseController;
import com.dcsoft.common.core.web.domain.AjaxResult;
import com.dcsoft.common.core.web.page.TableDataInfo;
import com.dcsoft.common.log.annotation.Log;
import com.dcsoft.common.log.enums.BusinessType;
import com.dcsoft.common.redis.service.RedisService;
import com.dcsoft.common.security.utils.SecurityUtils;
import com.dcsoft.system.api.model.LoginUser;
import com.dcsoft.system.domain.SysBranch;
import com.dcsoft.system.domain.SysManageRecord;
import com.dcsoft.system.domain.SysPeople;
import com.dcsoft.system.service.ISysDictDataService;
import com.dcsoft.system.service.ISysPeopleService;
import com.dcsoft.system.utils.UuidUtil;
import com.dcsoft.system.visitor.domain.CheckCodeVo;
import com.dcsoft.system.visitor.domain.VisCarryStuffVo;
import com.dcsoft.system.visitor.domain.VisVisitorExamine;
import com.dcsoft.system.visitor.domain.Visitor;
import com.dcsoft.system.visitor.service.IVisCarryStuffService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@Slf4j
@RestController
@RequestMapping("/stuff")
public class VisCarryStuffController extends BaseController {
@Resource
private IVisCarryStuffService visCarryStuffService;
@Autowired
private ISysDictDataService dictDataService;
@Autowired
private ISysPeopleService sysPeopleService;
@Autowired
private VisitorController visitorController;
@Autowired
private RedisService redisService;
private static final String APPROVE_KEY = "APPROVE_KEY:STUFF_APPROVE";
@GetMapping("/list")
public TableDataInfo list(VisCarryStuffVo vo) {
startPage();
Map<String, String> map = dictDataService.queryDictData("vis_out_stuff_type");
List<VisCarryStuffVo> list =visCarryStuffService.selectList(vo);
list.forEach(vis -> vis.setStuffTypeName(map.get(vis.getStuffType())));
return getDataTable(list);
}
/**
* 小程序查询我的携物信息列表
*/
@GetMapping("/app/list")
public TableDataInfo appList(VisCarryStuffVo vo) {
LoginUser user = SecurityUtils.getLoginUser();
vo.setCreateBy(user.getUsername());
Map<String, String> map = dictDataService.queryDictData("vis_out_stuff_type");
List<VisCarryStuffVo> list =visCarryStuffService.selectList(vo);
list.forEach(vis -> vis.setStuffTypeName(map.get(vis.getStuffType())));
return getDataTable(list);
}
/**
* 获取携物信息详细信息(详情)
*/
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id) {
VisCarryStuffVo stuffVo = visCarryStuffService.selectVisStuffById(id);
CheckCodeVo codeVo = visCarryStuffService.selectStuffCheckCode(id);
Map<String, String> map = dictDataService.queryDictData("vis_out_stuff_type");
stuffVo.setStuffTypeName(map.get(stuffVo.getStuffType()));
if (ObjectUtil.isNotNull(codeVo)) {
stuffVo.setQrCode(codeVo.getCode());
}
return success(stuffVo);
}
/**
* 新增访客信息
*/
@Log(title = "携物申请", businessType = BusinessType.INSERT)
@PostMapping
@Transactional
public AjaxResult add(@RequestBody VisCarryStuffVo vo) {
log.info("新增携物申请信息:{}", vo);
try {
visCarryStuffService.insertVisCarryStuff(vo);
} catch (Exception e) {
log.error("携物申请add异常", e);
return AjaxResult.error("系统异常,请重新提交或联系管理员!");
}
//查询一级审核人信息
// 审核通知企微发送消息(小程序来源)
SysPeople sysPeople = new SysPeople();
sysPeople.setCarryStuffExamine("1");
List<SysPeople> peopleList = sysPeopleService.selectSysPeopleLists(sysPeople);
for (SysPeople people : peopleList) {
String url = getExamineUrl(String.valueOf(vo.getId()), people.getPhone());
log.info("携物申请add发送审核链接{}", url);
//发送钉钉信息
String content = getContent(vo);
visitorController.asyncsendV2(sysPeople.getPhone(), "text", content + url);
//发送企微信息
try {
visitorController.sendWeCom(sysPeople.getPhone(), url + " --访客姓名:" + vo.getName());
} catch (Exception e) {
log.error("携物申请add-sendWeCom异常", e);
return AjaxResult.error("系统异常,请重新提交或联系管理员!");
}
}
return AjaxResult.success();
}
/**
* 组织链接内容(申请人&随访人基本信息)
*
* @return
*/
private String getContent(VisCarryStuffVo vo) {
String matterName = "携物出门申请";
String visTime = DateUtil.format(vo.getVisTime(), DatePattern.NORM_DATE_FORMATTER);
StringBuilder sb = new StringBuilder();
sb.append("收到新的携物出门申请:").append(matterName).append("\n");
sb.append("申请人:").append(vo.getName()).append("\n");
sb.append("物品名称:").append(vo.getStuffName()).append("\n");
sb.append("物品类型:").append(vo.getStuffTypeName()).append("\n");
sb.append("物品数量:").append(vo.getStuffNumber()).append("\n");
sb.append("点击链接进行审核:");
log.info("getContent{}", JSON.toJSONString(sb));
return sb.toString();
}
/**
* 获取审核链接
*
* @return
*/
public String getExamineUrl(String id, String telephone) {
//生成8位短参作为缓存key
String code = UuidUtil.getShortUuid();
try {
while (redisService.hasKey(code)) {
code = UuidUtil.getShortUuid();
}
redisService.setCacheObject(CacheConstants.VIS_CARRY_STUFF_CODE + code, id + "&" + telephone, 30L, TimeUnit.DAYS);
} catch (Exception e) {
throw new ServiceException("缓存数据异常:" + e.getMessage());
}
return "https://fk.xyxaks.cn/h5/?c=" + code + "2";
}
/**
* 流程审核
*/
@Log(title = "流程审核", businessType = BusinessType.UPDATE)
@PostMapping("/approve")
@Transactional
public AjaxResult approve(@RequestBody VisCarryStuffVo vo) {
log.info("携物流程审核入参 {}", JSON.toJSONString(vo));
try {
String telephone = StringUtils.isBlank(vo.getTelephone()) ? "1" : vo.getTelephone();
Boolean lock = redisService.lock(APPROVE_KEY, telephone, 60 * 5, TimeUnit.SECONDS);
if (!lock) {
log.error("approve-审核人员正在审核中");
return error("正在审核中");
}
//查询当前审核人基本信息
SysPeople sysPeople = sysPeopleService.queryPeopleName(telephone, null);
//审核通过
if(Constants.ZERO.equals(vo.getExamineState())) {
//被访人审核
if (vo.getCurrentNode() == 1) {
}
//二级审核人审核
else if (vo.getCurrentNode() == 2) {
}
else {//最后一级审核
// visitor.setExamineState(examine.getExamine());
// //保存审核历史表
// examine.setRejectReason(visitor.getRejectReason());
// SysPeople people = sysPeopleService.selectSysPeopleById(visitor.getUserId());
// examine.setCreateBy(people.getName());
// visVisitorExamineService.insertVisVisitorExamine(examine);
//
// //修改环节状态
// visitorService.updateVisitorReviewProcess(visitor);
}
}
//审核拒绝
if (Constants.ONE.equals(vo.getExamineState())) {
// visitor.setExamineState(examine.getExamine());
// visVisitorExamineService.insertVisVisitorExamine(examine);
try {
visitorController.sendWeCom(telephone, vo.getName() + "的访客审核已驳回");
} catch (Exception e) {
log.error("访客approve-sendWeCom驳回异常{}", e.getMessage());
}
// 申请人发送短信(审核不通过)
// visitorController.sendMessage(vo.getPhone(), "1", smsProperties.getTemplate3());
}
// visitorService.approve(visitor);
return toAjax(true);
} catch (Exception e) {
log.error("审核异常:{}", e.getMessage());
return toAjax(false);
}finally {
redisService.deleteObject(APPROVE_KEY);
}
}
}

View File

@@ -42,10 +42,8 @@ import com.dcsoft.system.uniubi.service.ISysApiService;
import com.dcsoft.system.uniubi.service.ISysSdkService;
import com.dcsoft.system.utils.FileUtils;
import com.dcsoft.system.utils.UuidUtil;
import com.dcsoft.system.visitor.domain.CheckCodeVo;
import com.dcsoft.system.visitor.domain.VisVisitorExamine;
import com.dcsoft.system.visitor.domain.Visitor;
import com.dcsoft.system.visitor.domain.VisitorRecordVo;
import com.dcsoft.system.visitor.domain.*;
import com.dcsoft.system.visitor.service.IVisCarryStuffService;
import com.dcsoft.system.visitor.service.IVisVisitorExamineService;
import com.dcsoft.system.visitor.service.IVisitorService;
import lombok.extern.slf4j.Slf4j;
@@ -56,6 +54,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.text.ParseException;
@@ -118,6 +117,9 @@ public class VisitorController extends BaseController {
@Autowired
private ISysDictDataService dictDataService;
@Resource
private IVisCarryStuffService visCarryStuffService;
@Value("${qd.url}")
public String qdUrl;
@@ -291,6 +293,10 @@ public class VisitorController extends BaseController {
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id) {
Visitor visitor = visitorService.selectVisitorById(id);
Map<String, String> map = dictDataService.queryDictData("sys_company_type");
visitor.setMatterName(MatterEnum.getByCode(visitor.getMatter()));
visitor.setDeptName(map.get(visitor.getDeptId()));
return success(visitor);
}
@@ -305,13 +311,23 @@ public class VisitorController extends BaseController {
*/
@PostMapping(value = "/getVisitorInfo")
public AjaxResult getVisitorInfo(@RequestBody JSONObject js) throws Exception {
String data = js.getString("data");
if (StringUtils.isBlank(data)) {
String str = js.getString("data");
if (StringUtils.isBlank(str)) {
throw new ServiceException("参数为空,请联系管理员!");
}
//数据进行解密
Object cacheObject = redisService.getCacheObject(CacheConstants.VISITOR_SMS_CODE + data);
String type = str.substring(str.length() - 1);
String data = str.substring(0, str.length() - 1);
//数据进行解密 1是临时访客2是
Object cacheObject = null;
if (StringUtils.equals("1", type)) {
cacheObject = redisService.getCacheObject(CacheConstants.VISITOR_SMS_CODE + data);
}
if (StringUtils.equals("2", type)) {
cacheObject = redisService.getCacheObject(CacheConstants.VIS_CARRY_STUFF_CODE + data);
}
if (ObjectUtil.isNull(cacheObject)) {
throw new ServiceException("链接不存在或已过期!");
}
@@ -320,31 +336,74 @@ public class VisitorController extends BaseController {
Long id = Long.parseLong(split[0]);
String telephone = split[1];
if (StringUtils.equals("2", type)) {
VisCarryStuffVo visCarryStuff = getVisCarryStuff(id, telephone);
visCarryStuff.setTelephone(telephone);
return success(visCarryStuff);
}
Visitor visitor = visitorService.selectVisitorById(id);
visitor.setTelephone(telephone);
//审核链接进来
if (StringUtils.isNotBlank(telephone)) {
if (StringUtils.equals(visitor.getExamineState(), ExamineEnum.IN_REVIEW.getCode())) {
// if (StringUtils.equals(visitor.getExamineState(), ExamineEnum.IN_REVIEW.getCode())) {
//查询当前点击审核链接的人员信息
SysPeople sysPeople = sysPeopleService.queryPeopleName(telephone, null);
//根据手机号查询peopleId
visitor.setReviewer(String.valueOf(sysPeople.getId()));
visitor.setPosition(null);
Visitor visitor1 = visitorService.queryReviewProcess(visitor);
Visitor visitor2 = new Visitor();
visitor2.setId(visitor.getId());
visitor2.setReviewer(String.valueOf(sysPeople.getId()));
visitor2.setPosition(null);
Visitor visitor1 = visitorService.queryReviewProcess(visitor2);
if (ObjectUtil.isNotNull(visitor1) && StrUtil.isNotBlank(visitor1.getState())) {
visitor.setExamineState(visitor1.getState());
visitor.setRejectReason(visitor1.getRejectReason());
}
}
// }
}
Map<String, String> map = dictDataService.queryDictData("sys_company_type");
visitor.setMatterName(MatterEnum.getByCode(visitor.getMatter()));
visitor.setDeptName(map.get(visitor.getDeptId()));
log.info("临时日志:{}",JSON.toJSONString(visitor));
return success(visitor);
}
/**
* 查询携物申请信息
* @param id
* @param telephone
* @return
*/
private VisCarryStuffVo getVisCarryStuff(Long id, String telephone) {
VisCarryStuffVo stuffVo = visCarryStuffService.selectVisStuffById(id);
CheckCodeVo codeVo = visCarryStuffService.selectStuffCheckCode(id);
Map<String, String> map = dictDataService.queryDictData("vis_out_stuff_type");
stuffVo.setStuffTypeName(map.get(stuffVo.getStuffType()));
if (ObjectUtil.isNotNull(codeVo)) {
stuffVo.setQrCode(codeVo.getCode());
}
if (StringUtils.isNotBlank(telephone)) {
//查询当前点击审核链接的人员信息
SysPeople sysPeople = sysPeopleService.queryPeopleName(telephone, null);
//根据手机号查询peopleId
Visitor visitor2 = new Visitor();
visitor2.setId(stuffVo.getId());
visitor2.setReviewer(String.valueOf(sysPeople.getId()));
visitor2.setPosition(null);
Visitor visitor1 = visitorService.queryReviewProcess(visitor2);
if (ObjectUtil.isNotNull(visitor1) && StrUtil.isNotBlank(visitor1.getState())) {
stuffVo.setExamineState(visitor1.getState());
}
}
return stuffVo;
}
/**
* 新增访客信息
@@ -472,7 +531,7 @@ public class VisitorController extends BaseController {
} catch (Exception e) {
throw new ServiceException("缓存数据异常:" + e.getMessage());
}
return "https://fk.xyxaks.cn/h5/?c=" + code;
return "https://fk.xyxaks.cn/h5/?c=" + code + "1";
}
@@ -514,7 +573,7 @@ public class VisitorController extends BaseController {
/**
* 钉工牌消息通知
*/
private void asyncsendV2(String phone, String msgType, String content) {
public void asyncsendV2(String phone, String msgType, String content) {
DingtalkMsgVo msgVo = new DingtalkMsgVo();
DingtalkMsgVo.Text text = new DingtalkMsgVo.Text();
text.setContent(content);
@@ -668,7 +727,7 @@ public class VisitorController extends BaseController {
* @param phone
* @param content
*/
private void sendWeCom(String phone, String content) {
public void sendWeCom(String phone, String content) {
// 获取userId
String weComUserId = getWeComUserId(phone);
DingtalkMsgVo.Text text = new DingtalkMsgVo.Text();
@@ -871,10 +930,10 @@ public class VisitorController extends BaseController {
log.error("approve-审核人员正在审核中");
return error("正在审核中");
}
List<SysManageRecord> record = visitorService.querySysManageRecord(visitor.getUserId());
if (CollectionUtils.isEmpty(record)) {
throw new RuntimeException("被访人未授权通行");
}
// List<SysManageRecord> record = visitorService.querySysManageRecord(visitor.getUserId());
// if (CollectionUtils.isEmpty(record)) {
// throw new RuntimeException("被访人未授权通行");
// }
//查询当前审核人基本信息
SysPeople sysPeople = sysPeopleService.queryPeopleName(telephone, null);
@@ -900,6 +959,7 @@ public class VisitorController extends BaseController {
Visitor visitor2 = new Visitor();
visitor2.setId(visitor.getId());
visitor2.setReviewer(String.valueOf(sysPeople.getId()));
visitor2.setRejectReason(visitor.getRejectReason());
visitor2.setState(ExamineEnum.PASSED.getCode());
list.add(visitor2);
Visitor visitor3 = new Visitor();
@@ -933,12 +993,14 @@ public class VisitorController extends BaseController {
String url = getExamineUrl(String.valueOf(visitor.getId()), nextPeople.getPhone());
log.info("approve发送审核链接{}", url);
String str = content + url;
// asyncsendV2(nextPeople.getPhone(), "text", str);
asyncsendV2(nextPeople.getPhone(), "text", str);
log.info("发送钉钉结束:{}", nextPeople.getPhone());
} else {//最后一级审核
visitor.setExamineState(examine.getExamine());
//保存审核历史表
examine.setRejectReason(visitor.getRejectReason());
SysPeople people = sysPeopleService.selectSysPeopleById(visitor.getUserId());
examine.setCreateBy(people.getName());
visVisitorExamineService.insertVisVisitorExamine(examine);
//修改环节状态
@@ -948,7 +1010,10 @@ public class VisitorController extends BaseController {
Visitor visitor2 = new Visitor();
visitor2.setParentId(visitor.getId());
List<Visitor> itemList = visitorService.selectVisitorItemList(visitor2);
if (CollUtil.isNotEmpty(itemList)) {
// phoneList.addAll(itemList.stream().map(Visitor::getPhone).collect(Collectors.toList()));
// phoneList = phoneList.stream().distinct().collect(Collectors.toList());
}
}
}
//审核拒绝
@@ -959,12 +1024,12 @@ public class VisitorController extends BaseController {
visVisitorExamineService.insertVisVisitorExamine(examine);
try {
// sendWeCom(telephone, visitor.getName() + "的访客审核已驳回");
sendWeCom(telephone, visitor.getName() + "的访客审核已驳回");
} catch (Exception e) {
log.error("访客approve-sendWeCom驳回异常{}", e.getMessage());
}
// 申请人发送短信(审核不通过)
// sendMessage(visitor.getPhone(), "1", smsProperties.getTemplate3());
sendMessage(visitor.getPhone(), "1", smsProperties.getTemplate3());
}

View File

@@ -16,5 +16,7 @@ public class CheckCodeVo {
private String visitorId;
private String stuffId;
}

View File

@@ -0,0 +1,105 @@
package com.dcsoft.system.visitor.domain;
import com.dcsoft.common.core.annotation.Excel;
import com.dcsoft.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@Data
public class VisCarryStuffVo extends BaseEntity {
private Long id;
private Long userId;
/**
* 申请人姓名
*/
private String name;
/**
* 申请单位
*/
private String visitingUnit;
/**
* 物品名称
*/
private String stuffName;
/**
* 物品类型
*/
private String stuffType;
/**
* 物品类型名称
*/
private String stuffTypeName;
/**
* 物品数量
*/
private String stuffNumber;
/**
* 交通工具
*/
private String vehicle;
/**
* 现场照片
*/
private String imgUrls;
/**
* 日期
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date visTime;
/**
* 一级审核人
*/
private Long reviewer1;
/**
* 二级审核人
*/
private Long reviewer2;
/**
* 三级审核人
*/
private Long reviewer3;
/**
* 审核状态 0通过1驳回2审核中4已取消5已失效
*/
private String examineState;
/**
* 申请类型 0:临时访客 1携物出门
*/
private String visitorType = "1";
/**
* 二维码信息
*/
private String qrCode;
/**
* 审核链接手机号
*/
private String telephone;
/**
* 当前审批节点
*/
private Integer currentNode;
}

View File

@@ -98,6 +98,19 @@ public class VisVisitorRegister extends BaseEntity {
@Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date updatedTime;
/**
* 部门
*/
private String deptId;
public String getDeptId() {
return deptId;
}
public void setDeptId(String deptId) {
this.deptId = deptId;
}
public void setId(String id) {
this.id = id;
}

View File

@@ -0,0 +1,18 @@
package com.dcsoft.system.visitor.mapper;
import com.dcsoft.system.visitor.domain.CheckCodeVo;
import com.dcsoft.system.visitor.domain.VisCarryStuffVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface VisCarryStuffMapper {
List<VisCarryStuffVo> selectList(VisCarryStuffVo vo);
void insertVisCarryStuff(VisCarryStuffVo vo);
VisCarryStuffVo selectVisStuffById(Long id);
CheckCodeVo selectStuffCheckCode(@Param("stuffId") Long id);
}

View File

@@ -0,0 +1,18 @@
package com.dcsoft.system.visitor.service;
import com.dcsoft.system.visitor.domain.CheckCodeVo;
import com.dcsoft.system.visitor.domain.VisCarryStuffVo;
import com.dcsoft.system.visitor.domain.Visitor;
import java.util.List;
public interface IVisCarryStuffService {
List<VisCarryStuffVo> selectList(VisCarryStuffVo vo);
void insertVisCarryStuff(VisCarryStuffVo vo);
VisCarryStuffVo selectVisStuffById(Long id);
CheckCodeVo selectStuffCheckCode(Long id);
}

View File

@@ -0,0 +1,45 @@
package com.dcsoft.system.visitor.service.impl;
import com.dcsoft.common.core.enums.ExamineEnum;
import com.dcsoft.common.security.utils.SecurityUtils;
import com.dcsoft.system.api.model.LoginUser;
import com.dcsoft.system.visitor.domain.CheckCodeVo;
import com.dcsoft.system.visitor.domain.VisCarryStuffVo;
import com.dcsoft.system.visitor.domain.Visitor;
import com.dcsoft.system.visitor.mapper.VisCarryStuffMapper;
import com.dcsoft.system.visitor.service.IVisCarryStuffService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class VisCarryStuffImpl implements IVisCarryStuffService {
@Resource
private VisCarryStuffMapper visCarryStuffMapper;
@Override
public List<VisCarryStuffVo> selectList(VisCarryStuffVo vo) {
return visCarryStuffMapper.selectList(vo);
}
@Override
public void insertVisCarryStuff(VisCarryStuffVo vo) {
LoginUser loginUser = SecurityUtils.getLoginUser();
vo.setCreateBy(String.valueOf(loginUser.getUserid()));
vo.setExamineState(ExamineEnum.IN_REVIEW.getCode());
vo.setExamineState(ExamineEnum.IN_REVIEW.getCode());
visCarryStuffMapper.insertVisCarryStuff(vo);
}
@Override
public VisCarryStuffVo selectVisStuffById(Long id) {
return visCarryStuffMapper.selectVisStuffById(id);
}
@Override
public CheckCodeVo selectStuffCheckCode(Long id) {
return visCarryStuffMapper.selectStuffCheckCode(id);
}
}

View File

@@ -83,6 +83,13 @@ public class VisitorServiceImpl implements IVisitorService {
if (visitor == null) {
return new Visitor();
}
List<Long> collect = Arrays.asList(id);
List<CheckCodeVo> checkCodeVos = visitorMapper.queryCode(collect);
if (CollUtil.isNotEmpty(checkCodeVos)) {
visitor.setQrCode(checkCodeVos.get(0).getCode());
}
if(StringUtils.isNotEmpty(visitor.getVisitorPosition())) {
visitor.setPosition(visitor.getVisitorPosition());
}
@@ -653,6 +660,8 @@ public class VisitorServiceImpl implements IVisitorService {
saveVisCheckCode(codeVo);
}
//不修改userId信息
visitor.setUserId(null);
visitorMapper.updateVisitor(visitor);
//修改随访人员信息