diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/controller/SysPeopleController.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/controller/SysPeopleController.java index cc42438..d5e18d3 100644 --- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/controller/SysPeopleController.java +++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/controller/SysPeopleController.java @@ -457,15 +457,15 @@ public class SysPeopleController extends BaseController } } //下发设备 - if(sysPeople.getBranchId()!=null){ - SysBranch branch=sysBranchService.selectSysBranchById(sysPeople.getBranchId()); - if (branch.getRuleId()!= null) { - //添加人员授权信息 - SysRule rule=sysRuleService.selectSysRuleById(branch.getRuleId()); - String data=sdkService.authDeviceNew(rule,sysPeople); + if (sysPeople.getBranchId() != null) { + SysBranch branch = sysBranchService.selectSysBranchById(sysPeople.getBranchId()); + if (branch.getRuleId() != null) { + //添加人员授权信息 + SysRule rule = sysRuleService.selectSysRuleById(branch.getRuleId()); + String data = sdkService.authDeviceNew(rule, sysPeople); log.info("人员修改-authDeviceNew-result:{}", data); sysPeople.setDown(1L); - if("".equals(data)){ + if ("".equals(data)) { return AjaxResult.error("该规则未绑定设备!"); } } diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/controller/VisCarryStuffController.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/controller/VisCarryStuffController.java index 67183b2..3047a4e 100644 --- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/controller/VisCarryStuffController.java +++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/controller/VisCarryStuffController.java @@ -5,6 +5,7 @@ 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.exception.ServiceException; import com.dcsoft.common.core.utils.CollUtil; import com.dcsoft.common.core.utils.SmsUtils; @@ -17,10 +18,12 @@ import com.dcsoft.common.log.enums.BusinessType; import com.dcsoft.common.redis.service.RedisService; import com.dcsoft.common.security.annotation.RequiresPermissions; import com.dcsoft.common.sms.config.properties.SmsProperties; +import com.dcsoft.system.api.domain.SysUser; import com.dcsoft.system.domain.SysPeople; import com.dcsoft.system.domain.vo.IdNamelVo; import com.dcsoft.system.service.ISysDictDataService; import com.dcsoft.system.service.ISysPeopleService; +import com.dcsoft.system.service.impl.SysUserServiceImpl; import com.dcsoft.system.utils.UuidUtil; import com.dcsoft.system.visitor.domain.*; import com.dcsoft.system.visitor.service.IVisCarryStuffService; @@ -30,6 +33,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -73,6 +77,12 @@ public class VisCarryStuffController extends BaseController { private static final String APPROVE_KEY = "APPROVE_KEY:STUFF_APPROVE"; + @Autowired + private SysUserServiceImpl sysUserServiceImpl; + + @Value("${sms.parkName:'兴安智慧园区'}") + private String parkName; + @GetMapping("/list") public TableDataInfo list(VisExitOutVo vo) { @@ -189,6 +199,30 @@ public class VisCarryStuffController extends BaseController { //新增物资信息 visStuffInfoList.forEach(stuff -> stuff.setExitId(vo.getId())); visCarryStuffService.insertVisStuffInfo(visStuffInfoList); + + //新增审核环节信息 + List list = new ArrayList<>(); + VisExitOutVo visExitOutVo = new VisExitOutVo(); + visExitOutVo.setId(vo.getId()); + visExitOutVo.setReviewer(vo.getReviewer1()); + visExitOutVo.setState(ExamineEnum.IN_REVIEW.getCode()); + list.add(visExitOutVo); + + VisExitOutVo visExitOutVo2 = new VisExitOutVo(); + visExitOutVo2.setId(vo.getId()); + visExitOutVo2.setReviewer(vo.getReviewer2()); + visExitOutVo2.setState(ExamineEnum.IN_REVIEW.getCode()); + list.add(visExitOutVo2); + + VisExitOutVo visExitOutVo3 = new VisExitOutVo(); + visExitOutVo3.setId(vo.getId()); + visExitOutVo3.setReviewer(vo.getReviewer3()); + visExitOutVo3.setState(ExamineEnum.IN_REVIEW.getCode()); + list.add(visExitOutVo3); + //保存审核环节表 + visCarryStuffService.saveVisitorReviewProcessList(list); + + } catch (Exception e) { log.error("出门证申请add异常:", e); throw new ServiceException("系统异常,请重新提交或联系管理员!"); @@ -262,9 +296,13 @@ public class VisCarryStuffController extends BaseController { VisExitOutVo stuffVo = visCarryStuffService.selectVisExitOutById(vo.getId()); //保存审核环节表 - vo.setReviewer(sysPeople.getId()); - vo.setState(vo.getExamineState()); - visCarryStuffService.saveVisitorReviewProcess(vo); + VisitorReviewProcessVo reviewProcessVo = new VisitorReviewProcessVo(); + reviewProcessVo.setReviewer(String.valueOf(sysPeople.getId())); + reviewProcessVo.setExitId(String.valueOf(vo.getId())); + //查询审核环节表未审核状态的第一条数据,处理同一个人会审核两个环节情况 + VisitorReviewProcessVo reviewProcess = visCarryStuffService.selectVisitorReviewProcessOne(reviewProcessVo); + reviewProcess.setState(vo.getExamineState()); + visCarryStuffService.updateVisitorReviewProcessById(reviewProcess); //保存审核历史表 VisVisitorExamine examine = new VisVisitorExamine(); @@ -299,6 +337,10 @@ public class VisCarryStuffController extends BaseController { codeVo.setExitId(String.valueOf(vo.getId())); codeVo.setId(UUID.randomUUID().toString().replace("-", "")); visitorService.saveVisCheckCode(codeVo); + + // 申请人发送短信(审核通过) + SysUser sysUser = sysUserServiceImpl.selectUserById(stuffVo.getUserId()); + visitorController.sendMessage(sysUser.getPhonenumber(), "1", parkName, smsProperties.getTemplate2()); } } @@ -325,9 +367,10 @@ public class VisCarryStuffController extends BaseController { log.error("访客approve-sendWeCom驳回异常", e); throw new ServiceException("系统异常,请重新审核或联系管理员!"); } + // 申请人发送短信(审核不通过) - SysPeople sysPeople1 = sysPeopleService.selectSysPeopleById(stuffVo.getUserId()); - visitorController.sendMessage(sysPeople1.getPhone(), "1", smsProperties.getTemplate3()); + SysUser sysUser = sysUserServiceImpl.selectUserById(stuffVo.getUserId()); + visitorController.sendMessage(sysUser.getPhonenumber(), "1", parkName, smsProperties.getTemplate3()); } visCarryStuffService.updateStaff(vo); 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 b1092a0..5f80a44 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 @@ -180,6 +180,9 @@ public class VisitorController extends BaseController { @Value("${weCom.agentid}") public String weComAgentid; + @Value("${sms.parkName:'兴安智慧园区'}") + private String parkName; + // 正则表达式匹配大部分国家的手机号码格式 private static final Pattern PHONE_NUMBER_PATTERN = Pattern.compile("^1[3-9]\\d{9}$"); @@ -1094,7 +1097,7 @@ public class VisitorController extends BaseController { } log.info("approve-发同意短信:{}", JSON.toJSONString(phoneList)); for (String phone : phoneList) { - sendMessage(phone, "1", smsProperties.getTemplate2()); + sendMessage(phone, "1", parkName, smsProperties.getTemplate2()); } } } @@ -1116,7 +1119,7 @@ public class VisitorController extends BaseController { // 申请人发送短信(审核不通过) log.info("approve-发拒绝短信:{}", visitor.getPhone()); - sendMessage(visitor.getPhone(), "1", smsProperties.getTemplate3()); + sendMessage(visitor.getPhone(), "1", parkName, smsProperties.getTemplate3()); } visitorService.approve(visitor); @@ -1235,7 +1238,7 @@ public class VisitorController extends BaseController { visitor2.setReviewer3(visitor.getReviewer3()); visitorService.updateVisitor(visitor2); if(Constants.ONE.equals(examine.getExamine())) { - sendMessage(visitor.getPhone(), "1", smsProperties.getTemplate8()); + sendMessage(visitor.getPhone(), "1", null, smsProperties.getTemplate8()); visitor.setState(examine.getExamine()); visitorService.updateVisitorReviewProcess(visitor); @@ -1306,7 +1309,7 @@ public class VisitorController extends BaseController { visitorService.updateVisitorReviewProcess(visitor2); // 审核通知企微发送消息(小程序来源) sendWeCom(officialAccountVo.getPhone(), visitor.getName() + "的访客审核被拒绝"); - sendMessage(visitor.getPhone(), "1", smsProperties.getTemplate8()); + sendMessage(visitor.getPhone(), "1", null, smsProperties.getTemplate8()); Visitor visitor3 = new Visitor(); if("1".equals(examine.getExamine())) { visitor3.setOutTime(new Date()); @@ -1365,21 +1368,21 @@ public class VisitorController extends BaseController { // 申请人发送短信(审核通过) String appletLink = getAppletLink(String.valueOf(visitor.getId()), "pagesC/visExamineEwm/index"); String[] split = appletLink.split("wxaurl.cn/"); - sendMessage(visitor.getPhone(), split[1], smsProperties.getTemplate5()); + sendMessage(visitor.getPhone(), split[1], null, smsProperties.getTemplate5()); redisService.setCacheObject(CacheConstants.WEIXIN_URL_LINK + visitor.getPhone(), appletLink, 24L, TimeUnit.HOURS); // 被访人发送短信(审核通过) - sendMessage(officialAccountVo.getPhone(), visitor.getName() + "访问" + officialAccountVo.getName(), smsProperties.getTemplate9()); + sendMessage(officialAccountVo.getPhone(), visitor.getName() + "访问" + officialAccountVo.getName(), null, smsProperties.getTemplate9()); } if("1".equals(examine.getExamine())) { // 申请人发送短信(审核不通过) SysPeople people1 = sysPeopleService.selectSysPeopleById(visitor.getUserId()); sendWeCom(people1.getPhone(), visitor.getName() + "的访客审核被拒绝"); - sendMessage(visitor.getPhone(), "1", smsProperties.getTemplate8()); + sendMessage(visitor.getPhone(), "1", null, smsProperties.getTemplate8()); // 被访人发送短信(审核不通过) - sendMessage(officialAccountVo.getPhone(), visitor.getName() + "访问" + officialAccountVo.getName(), smsProperties.getTemplate10()); + sendMessage(officialAccountVo.getPhone(), visitor.getName() + "访问" + officialAccountVo.getName(), null, smsProperties.getTemplate10()); } visitor.setState(examine.getExamine()); @@ -1562,7 +1565,7 @@ public class VisitorController extends BaseController { return toAjax(visVisitorExamineService.deleteVisVisitorExamineByVisitorId(id)); } - public AjaxResult sendMessage(String phone, String code, String templateId) { + public AjaxResult sendMessage(String phone, String code, String parkName, String templateId) { if (org.apache.commons.lang3.StringUtils.isEmpty(phone)) { return error("手机号不能为空!"); } @@ -1571,13 +1574,17 @@ public class VisitorController extends BaseController { } Map map = new HashMap<>(1); map.put("code", code); + if (StringUtils.isNotBlank(parkName)) { + map.put("park_name", parkName); + } SmsTemplate smsTemplate = SpringUtils.getBean(SmsTemplate.class); + log.info("访客短信发送{}模板:{}参数:{}", phone, templateId, JSON.toJSONString(map)); SmsResult result = smsTemplate.send(phone, templateId, map); - log.info("sendMessage-phone:{},result:{}", phone, result); + log.info("短信发送{}结果:{}", phone, JSON.toJSONString(result)); if (!result.getIsSuccess()) { return error(result.getMessage()); } - return AjaxResult.success(); + return AjaxResult.success("成功", result.getResponse()); } @@ -1585,7 +1592,8 @@ public class VisitorController extends BaseController { public AjaxResult test(@RequestBody JSONObject js) throws Exception { String code = js.getString("code"); String template = js.getString("template"); - return sendMessage("15155304840", code, template); + String parkName = js.getString("parkName"); + return sendMessage("15155304840", code, parkName, template); } /** diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/domain/VisExitOutVo.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/domain/VisExitOutVo.java index b8f5d7d..a05bd48 100644 --- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/domain/VisExitOutVo.java +++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/domain/VisExitOutVo.java @@ -22,6 +22,11 @@ public class VisExitOutVo extends BaseEntity { */ private Long userId; + /** + * 事由 + */ + private String reason; + /** * 当前审核人id */ diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/domain/VisStuffInfoExportVo.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/domain/VisStuffInfoExportVo.java index 65549c1..60773a8 100644 --- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/domain/VisStuffInfoExportVo.java +++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/domain/VisStuffInfoExportVo.java @@ -18,6 +18,11 @@ public class VisStuffInfoExportVo extends BaseEntity { */ private Long exitId; + /** + * 事由 + */ + private String reason; + private List exitIds; diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/domain/VisitorReviewProcessVo.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/domain/VisitorReviewProcessVo.java index 6ec3100..38f4dfa 100644 --- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/domain/VisitorReviewProcessVo.java +++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/domain/VisitorReviewProcessVo.java @@ -1,14 +1,23 @@ package com.dcsoft.system.visitor.domain; +import com.dcsoft.common.core.web.domain.BaseEntity; import lombok.Data; @Data public class VisitorReviewProcessVo { + + private String id; + /** * 审核人 */ private String reviewer; + /** + * 访客id + */ + private String visitorId; + /** * 审核状态 0 同意;1 不同意 */ @@ -28,4 +37,14 @@ public class VisitorReviewProcessVo { * 审核时间 */ private String createdTime; + + /** + * 出门申请表id + */ + private String exitId; + + /** + * 理由 + */ + private String rejectReason; } diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/mapper/VisCarryStuffMapper.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/mapper/VisCarryStuffMapper.java index 72d95ae..318f2cb 100644 --- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/mapper/VisCarryStuffMapper.java +++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/mapper/VisCarryStuffMapper.java @@ -28,4 +28,10 @@ public interface VisCarryStuffMapper { List selectStuffList(VisStuffInfoVo visStuffInfoVo); List selectVisitorList(VisExitOutVo vo); + + void saveVisitorReviewProcessList(List list); + + VisitorReviewProcessVo selectVisitorReviewProcessOne(VisitorReviewProcessVo reviewProcessVo); + + void updateVisitorReviewProcessById(VisitorReviewProcessVo reviewProcess); } diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/IVisCarryStuffService.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/IVisCarryStuffService.java index e0dbe83..6ef30dc 100644 --- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/IVisCarryStuffService.java +++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/IVisCarryStuffService.java @@ -27,4 +27,10 @@ public interface IVisCarryStuffService { List selectStuffList(VisStuffInfoVo vo); List selectVisitorList(VisExitOutVo vo); + + void saveVisitorReviewProcessList(List list); + + VisitorReviewProcessVo selectVisitorReviewProcessOne(VisitorReviewProcessVo reviewProcessVo); + + void updateVisitorReviewProcessById(VisitorReviewProcessVo reviewProcess); } diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/impl/VisCarryStuffImpl.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/impl/VisCarryStuffImpl.java index ef604ac..303285f 100644 --- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/impl/VisCarryStuffImpl.java +++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/impl/VisCarryStuffImpl.java @@ -23,9 +23,6 @@ public class VisCarryStuffImpl implements IVisCarryStuffService { @Resource private VisCarryStuffMapper visCarryStuffMapper; - @Resource - private VisitorMapper visitorMapper; - @Override public List selectList(VisExitOutVo vo) { return visCarryStuffMapper.selectList(vo); @@ -57,6 +54,21 @@ public class VisCarryStuffImpl implements IVisCarryStuffService { return visCarryStuffMapper.selectVisitorList(vo); } + @Override + public void saveVisitorReviewProcessList(List list) { + visCarryStuffMapper.saveVisitorReviewProcessList(list); + } + + @Override + public VisitorReviewProcessVo selectVisitorReviewProcessOne(VisitorReviewProcessVo reviewProcessVo) { + return visCarryStuffMapper.selectVisitorReviewProcessOne(reviewProcessVo); + } + + @Override + public void updateVisitorReviewProcessById(VisitorReviewProcessVo reviewProcess) { + visCarryStuffMapper.updateVisitorReviewProcessById(reviewProcess); + } + @Override public VisExitOutVo selectVisExitOutById(Long id) { return visCarryStuffMapper.selectVisExitOutById(id); diff --git a/dcsoft-modules/dcsoft-system/src/main/resources/mapper/system/visitor/VisCarryStuffMapper.xml b/dcsoft-modules/dcsoft-system/src/main/resources/mapper/system/visitor/VisCarryStuffMapper.xml index 74ace2a..a4f88dc 100644 --- a/dcsoft-modules/dcsoft-system/src/main/resources/mapper/system/visitor/VisCarryStuffMapper.xml +++ b/dcsoft-modules/dcsoft-system/src/main/resources/mapper/system/visitor/VisCarryStuffMapper.xml @@ -7,6 +7,7 @@ + @@ -57,6 +58,7 @@ + @@ -89,6 +91,7 @@ select distinct e.id, e.user_id, + e.reason, e.name, e.phone, e.`exit_permit_no`, @@ -118,6 +121,7 @@ user_id = #{userId}, `name` = #{name}, + `reason` = #{reason}, `phone` = #{phone}, `exit_permit_no` = #{exitPermitNo}, `people_id` = #{peopleId}, @@ -136,6 +140,15 @@ where id = #{id} + + update vis_visitor_review_process + set state = #{state} + + ,reject_reason = #{rejectReason} + + where id = #{id} + + + insert into vis_exit_out id, user_id, + reason, `name`, `phone`, `exit_permit_no`, @@ -295,6 +327,7 @@ #{id}, #{userId}, + #{reason}, #{name}, #{phone}, #{exitPermitNo}, @@ -373,4 +406,12 @@ + + insert into vis_visitor_review_process (id, exit_id, reviewer, state) + VALUES + + (REPLACE(uuid(), '-', ''), #{i.id}, #{i.reviewer}, #{i.state}) + + +