From 9ee189754669aabf8f3a1547d508aabdd0a51f0e Mon Sep 17 00:00:00 2001 From: zc Date: Fri, 6 Jun 2025 15:55:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B4=E5=AE=89=E8=AE=BF=E5=AE=A2=E5=B0=8F?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E8=AE=BF=E5=AE=A2=E6=94=B9=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../visitor/controller/VisitorController.java | 80 +++++++++++-------- .../controller/VisitorMachineController.java | 4 +- .../dcsoft/system/visitor/domain/Visitor.java | 15 ++++ .../system/visitor/mapper/VisitorMapper.java | 5 +- .../service/impl/VisitorServiceImpl.java | 14 ++-- .../mapper/system/visitor/VisitorMapper.xml | 24 ++++-- 6 files changed, 92 insertions(+), 50 deletions(-) diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/controller/VisitorController.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/controller/VisitorController.java index 4301348..5767d44 100644 --- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/controller/VisitorController.java +++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/controller/VisitorController.java @@ -10,6 +10,7 @@ import com.dcsoft.common.core.enums.ExamineEnum; import com.dcsoft.common.core.enums.MatterEnum; import com.dcsoft.common.core.enums.exception.CommonExceptionEnum; import com.dcsoft.common.core.exception.ServiceException; +import com.dcsoft.common.core.utils.CollUtil; import com.dcsoft.common.core.utils.SpringUtils; import com.dcsoft.common.core.utils.poi.ExcelUtil; import com.dcsoft.common.core.utils.uuid.IdUtils; @@ -302,37 +303,46 @@ public class VisitorController extends BaseController { throw new ServiceException("您输入的开始时间不能大于结束时间"); } - if (visitorService.queryVisitorByIdCount(visitor.getPhone()) > 0) { - throw new ServiceException("该手机号已存在访客预约信息"); + //判断访客和随访人是否存在预约过的信息 + List visitors = new ArrayList<>(); + visitors.add(visitor); + if (!CollUtil.isEmpty(visitor.getItemList())) { + for (Visitor item : visitor.getItemList()) { + if (!validatePhoneNumber(item.getPhone())) { + throw new ServiceException("您输入的随访人员手机号格式不正确"); + } + item.setParentId(visitor.getId()); + item.setSource(Constants.ONE); + item.setUserId(visitor.getUserId()); + item.setDeptId(visitor.getDeptId()); + item.setFlag(visitor.getFlag()); + item.setStartTime(visitor.getStartTime()); + item.setEndTime(visitor.getEndTime()); + item.setMatter(visitor.getMatter()); + item.setExamineState(ExamineEnum.IN_REVIEW.getCode()); + item.setCreateTime(visitor.getCreateTime()); + item.setStartTime(visitor.getStartTime()); + item.setEndTime(visitor.getEndTime()); + visitors.add(item); + } } - if (visitorService.queryVisitor(visitor) > 0) { - throw new ServiceException("您已预约"); + List phones = visitors.stream().map(Visitor::getPhone).collect(Collectors.toList()); + if (visitorService.queryVisitorByIdCount(phones) > 0) { + throw new ServiceException("手机号已存在访客预约信息"); + } + + List idcards = visitors.stream().map(Visitor::getIdcard).collect(Collectors.toList()); + if (visitorService.queryVisitorByCardCount(idcards) > 0) { + throw new ServiceException("访客中存在已预约访客"); } // 校验图片 // checkPhoto(visitor.getAvatar(), visitor.getName()); - log.info("新增访客信息:{}", visitor); - int i = visitorService.insertVisitor(visitor); - List itemList = visitor.getItemList(); - // 随访人员 - if (!CollectionUtils.isEmpty(itemList)) { - for (Visitor item : itemList) { - if (!validatePhoneNumber(item.getPhone())) { - throw new ServiceException("您输入的随访人员手机号格式不正确"); - } - // 校验图片 -// checkPhoto(item.getAvatar(), item.getName()); - item.setParentId(visitor.getId()); - item.setSource(Constants.ONE); - item.setUserId(visitor.getUserId()); - item.setDeptId(visitor.getDeptId()); - item.setCreateTime(visitor.getCreateTime()); - item.setStartTime(visitor.getStartTime()); - item.setEndTime(visitor.getEndTime()); - visitorService.insertVisitor(item); - } + log.info("新增访客信息:{}", visitors); + for (Visitor visitor1 : visitors) { + visitorService.insertVisitor(visitor1); } // 保存附件 @@ -341,20 +351,20 @@ public class VisitorController extends BaseController { } // 审核通知企微发送消息(小程序来源) - String appletLink = getAppletLink(String.valueOf(visitor.getId()), "pages/visitor/visitor/examineIndex"); +// String appletLink = getAppletLink(String.valueOf(visitor.getId()), "pages/visitor/visitor/examineIndex"); SysPeople sysPeople = sysPeopleService.selectSysPeopleByUserId(visitor.getUserId()); - log.info("审核通知链接:{}", appletLink); - sendWeCom(sysPeople.getPhone(), appletLink + " --访客姓名:" + visitor.getName()); +// log.info("审核通知链接:{}", appletLink); +// sendWeCom(sysPeople.getPhone(), appletLink + " --访客姓名:" + visitor.getName()); // 访客审核 - SysBranch sysBranch = sysBranchService.selectSysBranchById(visitor.getDeptId()); - if(sysBranch != null && Constants.ZERO.equals(sysBranch.getIsExamine())) { - VisVisitorExamine examine = new VisVisitorExamine(); - examine.setExamine(Constants.ZERO); - visitor.setExamine(examine); - updateVisitorExamine(visitor); - } - return toAjax(i); +// SysBranch sysBranch = sysBranchService.selectSysBranchById(visitor.getDeptId()); +// if(sysBranch != null && Constants.ZERO.equals(sysBranch.getIsExamine())) { +// VisVisitorExamine examine = new VisVisitorExamine(); +// examine.setExamine(Constants.ZERO); +// visitor.setExamine(examine); +// updateVisitorExamine(visitor); +// } + return toAjax(true); } /** diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/controller/VisitorMachineController.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/controller/VisitorMachineController.java index 7fbc8b1..71a7125 100644 --- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/controller/VisitorMachineController.java +++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/controller/VisitorMachineController.java @@ -133,10 +133,10 @@ public class VisitorMachineController extends BaseController { throw new ServiceException("姓名不能为空"); } - if (visitorService.queryVisitorByIdCount(visitor.getPhone()) > 0) { + if (visitorService.queryVisitorByIdCount(Collections.singletonList(visitor.getPhone())) > 0) { throw new ServiceException("该手机号已存在访客预约信息"); } - if (visitorService.queryVisitor(visitor) > 0) { + if (visitorService.queryVisitorByCardCount(Collections.singletonList(visitor.getIdcard())) > 0) { throw new ServiceException("您已预约"); } diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/domain/Visitor.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/domain/Visitor.java index 2903e8e..e258841 100644 --- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/domain/Visitor.java +++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/domain/Visitor.java @@ -255,4 +255,19 @@ public class Visitor extends BaseEntity { * 来访事由名称 */ private String MatterName; + + /** + * 审核状态 0:通过,1:驳回,2审核中,4:已取消,5:已失效 + */ + private String examineState; + + /** + * 申请类型 0:临时访客 1:携物出门 + */ + private String visitorType; + + /** + * 园区 + */ + private String park; } diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/mapper/VisitorMapper.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/mapper/VisitorMapper.java index 826cc1b..add1555 100644 --- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/mapper/VisitorMapper.java +++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/mapper/VisitorMapper.java @@ -8,6 +8,7 @@ import com.dcsoft.system.domain.SysManageRecord; import com.dcsoft.system.domain.SysPeople; import com.dcsoft.system.domain.vo.SysFileVo; import com.dcsoft.system.visitor.domain.*; +import org.apache.ibatis.annotations.Param; /** * 访客信息Mapper接口 @@ -83,7 +84,7 @@ public interface VisitorMapper */ void updateVisitorPushType(List list); - int queryVisitor(Visitor visitor); + int queryVisitorByCardCount(@Param("idcards") List idcards); /** * @@ -187,7 +188,7 @@ public interface VisitorMapper */ VisitorRecordVo queryVisitorById(String phone); - int queryVisitorByIdCount(String phone); + int queryVisitorByIdCount(@Param("phones") List phones); /** * 查询近七天的访客数据 diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/impl/VisitorServiceImpl.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/impl/VisitorServiceImpl.java index 407ebd5..62868e5 100644 --- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/impl/VisitorServiceImpl.java +++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/impl/VisitorServiceImpl.java @@ -31,6 +31,8 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; +import java.util.Arrays; +import java.util.Collections; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -320,8 +322,8 @@ public class VisitorServiceImpl implements IVisitorService { * 查询访客预约数 */ @Override - public int queryVisitor(Visitor visitor) { - return visitorMapper.queryVisitor(visitor); + public int queryVisitorByCardCount(List idcards) { + return visitorMapper.queryVisitorByCardCount(idcards); } /** @@ -509,8 +511,8 @@ public class VisitorServiceImpl implements IVisitorService { } @Override - public int queryVisitorByIdCount(String phone) { - return visitorMapper.queryVisitorByIdCount(phone); + public int queryVisitorByIdCount(List phones) { + return visitorMapper.queryVisitorByIdCount(phones); } /** @@ -565,7 +567,7 @@ public class VisitorServiceImpl implements IVisitorService { public void saveDisconnect(List visitor) { for (Visitor visitor1 : visitor) { log.info("保存断线数据:" + visitor1); - if (visitorMapper.queryVisitor(visitor1) > 0) { + if (visitorMapper.queryVisitorByCardCount(Collections.singletonList(visitor1.getIdcard())) > 0) { MultipartFile file = PictureUtils.base64ToMultipartFiles(visitor1.getAvatar()); R sysFileR = fileService.uploadMinio1(file, "true"); visitor1.setAvatar(sysFileR.getData().getUrl()); @@ -586,7 +588,7 @@ public class VisitorServiceImpl implements IVisitorService { if (!CollectionUtils.isEmpty(itemList)) { for (Visitor item : itemList) { log.info("保存断线随访人数据:" + item); - if (visitorMapper.queryVisitor(item) > 0) { + if (visitorMapper.queryVisitorByCardCount(Collections.singletonList(item.getIdcard())) > 0) { MultipartFile file = PictureUtils.base64ToMultipartFiles(item.getAvatar()); R sysFileR = fileService.uploadMinio1(file, "true"); item.setAvatar(sysFileR.getData().getUrl()); diff --git a/dcsoft-modules/dcsoft-system/src/main/resources/mapper/system/visitor/VisitorMapper.xml b/dcsoft-modules/dcsoft-system/src/main/resources/mapper/system/visitor/VisitorMapper.xml index cbe9cb2..7ff6983 100644 --- a/dcsoft-modules/dcsoft-system/src/main/resources/mapper/system/visitor/VisitorMapper.xml +++ b/dcsoft-modules/dcsoft-system/src/main/resources/mapper/system/visitor/VisitorMapper.xml @@ -287,6 +287,9 @@ id_card_end_time, id_card_address, visiting_unit, + examine_state, + visitor_type, + park, user_name, @@ -320,6 +323,9 @@ #{idCardEndTime}, #{idCardAddress}, #{visitingUnit}, + #{examineState}, + #{visitorType}, + #{park}, #{userName}, @@ -586,11 +592,15 @@ order by vv.create_time desc, id desc - select count(1) from vis_visitor - where idcard = #{idcard} - and out_time is null + where out_time is null + and examine_state in ('2','0') + and idcard in + + #{idcard} + select count(1) from vis_visitor - where phone = #{phone} - and out_time is null + where out_time is null + and examine_state in ('2','0') + and phone in + + #{phone} +