兴安访客小程序访客改造
This commit is contained in:
@@ -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<Visitor> 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<String> phones = visitors.stream().map(Visitor::getPhone).collect(Collectors.toList());
|
||||
if (visitorService.queryVisitorByIdCount(phones) > 0) {
|
||||
throw new ServiceException("手机号已存在访客预约信息");
|
||||
}
|
||||
|
||||
List<String> 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<Visitor> 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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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("您已预约");
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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<Visitor> list);
|
||||
|
||||
int queryVisitor(Visitor visitor);
|
||||
int queryVisitorByCardCount(@Param("idcards") List<String> idcards);
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -187,7 +188,7 @@ public interface VisitorMapper
|
||||
*/
|
||||
VisitorRecordVo queryVisitorById(String phone);
|
||||
|
||||
int queryVisitorByIdCount(String phone);
|
||||
int queryVisitorByIdCount(@Param("phones") List<String> phones);
|
||||
|
||||
/**
|
||||
* 查询近七天的访客数据
|
||||
|
||||
@@ -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<String> 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<String> phones) {
|
||||
return visitorMapper.queryVisitorByIdCount(phones);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -565,7 +567,7 @@ public class VisitorServiceImpl implements IVisitorService {
|
||||
public void saveDisconnect(List<Visitor> 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<SysFile> 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<SysFile> sysFileR = fileService.uploadMinio1(file, "true");
|
||||
item.setAvatar(sysFileR.getData().getUrl());
|
||||
|
||||
@@ -287,6 +287,9 @@
|
||||
<if test="idCardEndTime != null">id_card_end_time,</if>
|
||||
<if test="idCardAddress != null">id_card_address,</if>
|
||||
<if test="visitingUnit != null">visiting_unit,</if>
|
||||
<if test="examineState != null">examine_state,</if>
|
||||
<if test="visitorType != null">visitor_type,</if>
|
||||
<if test="park != null">park,</if>
|
||||
<if test="userName != null">user_name,</if>
|
||||
|
||||
</trim>
|
||||
@@ -320,6 +323,9 @@
|
||||
<if test="idCardEndTime != null">#{idCardEndTime},</if>
|
||||
<if test="idCardAddress != null">#{idCardAddress},</if>
|
||||
<if test="visitingUnit != null">#{visitingUnit},</if>
|
||||
<if test="examineState != null">#{examineState},</if>
|
||||
<if test="visitorType != null">#{visitorType},</if>
|
||||
<if test="park != null">#{park},</if>
|
||||
<if test="userName != null">#{userName},</if>
|
||||
|
||||
</trim>
|
||||
@@ -586,11 +592,15 @@
|
||||
</if>
|
||||
order by vv.create_time desc, id desc
|
||||
</select>
|
||||
<select id="queryVisitor" resultType="java.lang.Integer">
|
||||
<select id="queryVisitorByCardCount" resultType="java.lang.Integer">
|
||||
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
|
||||
<foreach item="idcard" collection="idcards" open="(" separator="," close=")">
|
||||
#{idcard}
|
||||
</foreach>
|
||||
</select>
|
||||
<select id="queryVisitorInfoById" resultType="com.dcsoft.system.visitor.domain.PersonnelInfoVo">
|
||||
select idcard
|
||||
@@ -729,8 +739,12 @@
|
||||
<select id="queryVisitorByIdCount" resultType="java.lang.Integer">
|
||||
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
|
||||
<foreach item="phone" collection="phones" open="(" separator="," close=")">
|
||||
#{phone}
|
||||
</foreach>
|
||||
</select>
|
||||
<select id="queryExportVisitorInfo" resultType="com.dcsoft.system.visitor.domain.Visitor">
|
||||
select vv.name, vv.phone, vv.start_time startTime, vv.end_time endTime, sp.name userName, vv.matter
|
||||
|
||||
Reference in New Issue
Block a user