Преглед изворни кода

智能门锁短信发送修改

liujh пре 3 година
родитељ
комит
e118d8dffc

+ 2 - 1
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabSubjectMapper.xml

@@ -129,7 +129,8 @@
 	        (SELECT GROUP_CONCAT(ur.nick_name) FROM sys_user ur WHERE FIND_IN_SET(ur.user_id, s.`safe_user_id`)) AS safeUserNames,
             (select d.dept_name from sys_dept d where s.build_id = d.dept_id) build_name,
             (select b.name from lab_building b where b.id = s.floor_id) floorName,
-            (SELECT l.room FROM lab_subject_layout l WHERE l.id = s.layout_id ) roomName
+            (SELECT l.room FROM lab_subject_layout l WHERE l.id = s.layout_id ) roomName,
+            (select GROUP_CONCAT(phonenumber) from sys_user where find_in_set(user_id, s.safe_user_id)) safeUserPhone
         from lab_subject s
     </sql>
     <sql id="selectLabSubjectListVo">

+ 7 - 0
zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/domain/SlOpendoorApply.java

@@ -127,6 +127,9 @@ public class SlOpendoorApply extends BaseEntity
     @ApiModelProperty(value = "实验室安全负责人ID集合")
     private String safeUserId;
 
+    @ApiModelProperty(value = "实验室安全负责人电话集合")
+    private String safeUserPhone;
+
     public Long getId() {
         return id;
     }
@@ -290,4 +293,8 @@ public class SlOpendoorApply extends BaseEntity
     public String getSafeUserId() {        return safeUserId;    }
 
     public void setSafeUserId(String safeUserId) {        this.safeUserId = safeUserId;    }
+
+    public String getSafeUserPhone() {        return safeUserPhone;    }
+
+    public void setSafeUserPhone(String safeUserPhone) {        this.safeUserPhone = safeUserPhone;    }
 }

+ 160 - 116
zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/service/impl/SlApplyApprovalServiceImpl.java

@@ -1,5 +1,7 @@
 package com.zd.smartlock.service.impl;
 
+import com.zd.chemical.util.SmsSydUtil;
+import com.zd.common.core.domain.R;
 import com.zd.common.core.exception.ServiceException;
 import com.zd.common.security.service.TokenService;
 import com.zd.smartlock.domain.SlApplyApproval;
@@ -16,11 +18,15 @@ import com.zd.smartlock.mapper.SlUserRelationMapper;
 import com.zd.smartlock.service.ISlApplyApprovalService;
 import com.zd.smartlock.service.ISlUserRelationService;
 import com.zd.smartlock.utils.SmartlockUtil;
+import com.zd.system.api.chemical.RemoteStockService;
 import com.zd.system.api.domain.SysUser;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.zookeeper.Login;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.util.*;
 
 /**
@@ -29,6 +35,7 @@ import java.util.*;
  * @author zd
  * @date 2022-09-02
  */
+@Slf4j
 @Service
 public class SlApplyApprovalServiceImpl implements ISlApplyApprovalService
 {
@@ -44,6 +51,10 @@ public class SlApplyApprovalServiceImpl implements ISlApplyApprovalService
 
     @Autowired
     private SlSubjectRelationMapper slSubjectRelationMapper;
+
+    @Autowired
+    private RemoteStockService remoteStockService;
+
     /**
      * 查询申请审核
      *
@@ -86,60 +97,73 @@ public class SlApplyApprovalServiceImpl implements ISlApplyApprovalService
     @Transactional(rollbackFor = Exception.class)
     public int insertSlApplyApproval(SlApplyApproval slApplyApproval)
     {
-        SysUser sysUser = tokenService.getLoginUser().getSysUser();
-        //部门id
-        slApplyApproval.setDeptId(sysUser.getDept().getDeptId());
-        //部门名称
-        slApplyApproval.setDeptName(sysUser.getDept().getDeptName());
-        //审核人id
-        slApplyApproval.setApprovaId(sysUser.getUserId());
-        //审核人姓名
-        slApplyApproval.setApprovaName(sysUser.getNickName());
-        //审核时间
-        slApplyApproval.setCretaTime(new Date());
-
-        //查询申请记录
-        SlOpendoorApply opendoorApply = slOpendoorApplyMapper.selectSlOpendoorApplyById(slApplyApproval.getApplyId());
-
-        if(opendoorApply.getApplyStatus()==3){
-            throw new ServiceException("该记录已驳回,无需审核!");
-        }
-        if(opendoorApply.getApplyNumber()==2){
-            throw new ServiceException("该记录已有两次审核,无需再次审核!");
-        }
-        //通过
-        if(slApplyApproval.getApprovaStatus()==1){
-            opendoorApply.setApplyNumber(opendoorApply.getApplyNumber()+1);
-            //审核通过,下发密码(第二次,审核通过的情况下)
+        int flg=0;
+        try {
+            SysUser sysUser = tokenService.getLoginUser().getSysUser();
+            //部门id
+            slApplyApproval.setDeptId(sysUser.getDept().getDeptId());
+            //部门名称
+            slApplyApproval.setDeptName(sysUser.getDept().getDeptName());
+            //审核人id
+            slApplyApproval.setApprovaId(sysUser.getUserId());
+            //审核人姓名
+            slApplyApproval.setApprovaName(sysUser.getNickName());
+            //审核时间
+            slApplyApproval.setCretaTime(new Date());
+
+            //查询申请记录
+            SlOpendoorApply opendoorApply = slOpendoorApplyMapper.selectSlOpendoorApplyById(slApplyApproval.getApplyId());
+
+            if(opendoorApply.getApplyStatus()==3){
+                throw new ServiceException("该记录已驳回,无需审核!");
+            }
             if(opendoorApply.getApplyNumber()==2){
-                //判断是否同一个人连续审核
-                SlApplyApproval approval = new SlApplyApproval();
-                approval.setApplyId(slApplyApproval.getApplyId());
-                approval.setApprovaId(sysUser.getUserId());
-                List<SlApplyApproval> applyVoList = slApplyApprovalMapper.selectSlApplyApprovalList(approval);
-                if(applyVoList.size()>0){
-                    throw new ServiceException("您已审核过该条申请,无需重复审核!");
+                throw new ServiceException("该记录已有两次审核,无需再次审核!");
+            }
+            //通过
+            if(slApplyApproval.getApprovaStatus()==1){
+                opendoorApply.setApplyNumber(opendoorApply.getApplyNumber()+1);
+                //审核通过,下发密码(第二次,审核通过的情况下)
+                if(opendoorApply.getApplyNumber()==2){
+                    //判断是否同一个人连续审核
+                    SlApplyApproval approval = new SlApplyApproval();
+                    approval.setApplyId(slApplyApproval.getApplyId());
+                    approval.setApprovaId(sysUser.getUserId());
+                    List<SlApplyApproval> applyVoList = slApplyApprovalMapper.selectSlApplyApprovalList(approval);
+                    if(applyVoList.size()>0){
+                        throw new ServiceException("您已审核过该条申请,无需重复审核!");
+                    }
+                    //审核通过,刷新审核状态
+                    opendoorApply.setApplyStatus(2L);
+                    //审核通过后,添加人员并且授权、短信发送
+                    String str =  authPower(opendoorApply.getId());
+                    if(!"ok".equals(str)){
+                        throw new ServiceException(str);
+                    }
                 }
-                //审核通过,刷新审核状态
-                opendoorApply.setApplyStatus(2L);
-                //审核通过后,添加人员并且授权
-               String str =  authPower(opendoorApply.getId());
-               if(!"ok".equals(str)){
-                   throw new ServiceException(str);
-               }
+            }else if(slApplyApproval.getApprovaStatus()==2){
+                //驳回
+                opendoorApply.setApplyNumber(opendoorApply.getApplyNumber()+1);
+                //修改申请表状态
+                opendoorApply.setApplyStatus(3L);
+
+                //申请人1短信发送通知
+               R r1= remoteStockService.sendSydSms("【实验室安全系统】"+opendoorApply.getSubjectName()+"-门禁远程授权申请已拒绝,请联系实验室管理人员。",3,opendoorApply.getId(),opendoorApply.getPhonenumber());
+               log.info("开门申请拒绝,人员1短信通知结果:"+r1);
+                //申请人2短信发送通知
+               R r2= remoteStockService.sendSydSms("【实验室安全系统】"+opendoorApply.getSubjectName()+"-门禁远程授权申请已拒绝,请联系实验室管理人员。",3,opendoorApply.getId(),opendoorApply.getPhonenumber2());
+                log.info("开门申请拒绝,人员2短信通知结果:"+r2);
             }
-        }else if(slApplyApproval.getApprovaStatus()==2){
-            //驳回
-            opendoorApply.setApplyNumber(opendoorApply.getApplyNumber()+1);
-            //修改申请表状态
-            opendoorApply.setApplyStatus(3L);
-        }
-        //申请表操作
-        opendoorApply.setApprovalTime(new Date());
-        opendoorApply.setApprovalUser(sysUser.getNickName());
+            //申请表操作
+            opendoorApply.setApprovalTime(new Date());
+            opendoorApply.setApprovalUser(sysUser.getNickName());
 
-        slOpendoorApplyMapper.updateSlOpendoorApply(opendoorApply);
-        return slApplyApprovalMapper.insertSlApplyApproval(slApplyApproval);
+            slOpendoorApplyMapper.updateSlOpendoorApply(opendoorApply);
+            flg= slApplyApprovalMapper.insertSlApplyApproval(slApplyApproval);
+        }catch (Exception e){
+            log.info("申请审核异常"+e);
+        }
+        return flg;
     }
 
     /**
@@ -185,84 +209,104 @@ public class SlApplyApprovalServiceImpl implements ISlApplyApprovalService
      * 审批通过后人员密码授权处理
      * @param applyId 申请id
      */
-    public String authPower(Long applyId){
-
+    public String authPower(Long applyId) throws Exception {
+        log.info("========开始门锁授权===========");
         //人员1 授权结果
         Boolean auths1=false;
         //人员2授权结果
         Boolean auths2=false;
         //返回值
         String strMsg="ok";
-        //查询申请记录
-        SlOpendoorApply opendoorApply = slOpendoorApplyMapper.selectSlOpendoorApplyById(applyId);
-
-        SlSubjectRelationVo subjectRelation = new SlSubjectRelationVo();
-        subjectRelation.setSubjectId(opendoorApply.getSubjectId());
-        List<SlSubjectRelationVo>  listsubRla = slSubjectRelationMapper.selectSlSubjectRelationList(subjectRelation);
-        if(listsubRla.size()!=2){
-            strMsg="该实验室暂未绑定双锁!";
-        }
+        try {
+            //查询申请记录
+            SlOpendoorApply opendoorApply = slOpendoorApplyMapper.selectSlOpendoorApplyById(applyId);
 
-        Map<String,Object> detalisMap = new HashMap<>();
-        SlUser user = new SlUser();
-        //学号、工号
-        user.setPersoncode(opendoorApply.getUserCode());
-        //姓名
-        user.setPersonname(opendoorApply.getUserName());
-        //性别 (0=女,1=男)
-        user.setPersonsex(opendoorApply.getUserSex()==null?1+"":0+"");
-        //人员类别(1=学生,2=教职工,3=临时人员)
-        user.setPersontype("1");
-        //电话
-        user.setPersonmobile(opendoorApply.getPhonenumber());
-        Map<String,Object> map1= SmartlockUtil.addUser(user,listsubRla.get(0).getLockRoomId());
-
-        if(!SmartlockUtil.resultMsg.equals(map1.get("resultMsg").toString())){
-            strMsg="人员:"+opendoorApply.getUserName()+",授权失败,原因:"+map1.get("resultMsg")+",请联系管理员";
-            return strMsg;
-        }else {
-            auths1=true;
-        }
+            SlSubjectRelationVo subjectRelation = new SlSubjectRelationVo();
+            subjectRelation.setSubjectId(opendoorApply.getSubjectId());
+            List<SlSubjectRelationVo>  listsubRla = slSubjectRelationMapper.selectSlSubjectRelationList(subjectRelation);
+            if(listsubRla.size()!=2){
+                strMsg="该实验室暂未绑定双锁!";
+            }
 
+            Map<String,Object> detalisMap = new HashMap<>();
+            SlUser user = new SlUser();
+            //学号、工号
+            user.setPersoncode(opendoorApply.getUserCode());
+            //姓名
+            user.setPersonname(opendoorApply.getUserName());
+            //性别 (0=女,1=男)
+            user.setPersonsex(opendoorApply.getUserSex()==null?1+"":0+"");
+            //人员类别(1=学生,2=教职工,3=临时人员)
+            user.setPersontype("1");
+            //电话
+            user.setPersonmobile(opendoorApply.getPhonenumber());
+            log.info("=======人员1授权开始========");
+            Map<String,Object> map1= SmartlockUtil.addUser(user,listsubRla.get(0).getLockRoomId());
 
-        //人员1 备注详情
-        detalisMap.put("人员1",opendoorApply.getUserName());
-        detalisMap.put("锁编1号",listsubRla.get(0).getLockCode());
-        detalisMap.put("人员1密码",map1.get("password"));
-
-        //学号、工号
-        user.setPersoncode(opendoorApply.getUserCode2());
-        //姓名
-        user.setPersonname(opendoorApply.getUserName2());
-        //性别 (0=女,1=男)
-        user.setPersonsex(opendoorApply.getUserSex2()==null?1+"":0+"");
-        //人员类别(1=学生,2=教职工,3=临时人员)
-        user.setPersontype("1");
-        //电话
-        user.setPersonmobile(opendoorApply.getPhonenumber2());
-        Map<String,Object> map2= SmartlockUtil.addUser(user,listsubRla.get(1).getLockRoomId());
-
-        if(!SmartlockUtil.resultMsg.equals(map2.get("resultMsg").toString())){
-            strMsg="人员:"+opendoorApply.getUserName()+",授权失败,原因:"+map2.get("resultMsg")+",请联系管理员";
-            return strMsg;
-        }else {
-            auths2=true;
-        }
+            if(!SmartlockUtil.resultMsg.equals(map1.get("resultMsg").toString())){
+                log.info("人员:"+opendoorApply.getUserName()+",授权失败,原因:"+map1.get("resultMsg")+",请联系管理员");
+                strMsg="人员:"+opendoorApply.getUserName()+",授权失败,原因:"+map1.get("resultMsg")+",请联系管理员";
+                return strMsg;
+            }else {
+                log.info("=======人员1授权成功========");
+                auths1=true;
+            }
 
-        //人员入住办理成功,发送短信提示
-        if(auths1 && auths2){
-            System.out.println("=============双人授权成功,下发短信================");
-            String msg1="开门申请成功,门锁编号:"+listsubRla.get(0).getLockCode()+"密码:"+map1.get("password");
-            String msg2="开门申请成功,门锁编号:"+listsubRla.get(1).getLockCode()+"密码:"+map1.get("password");
-        }
 
-        //人员1 备注详情
-        detalisMap.put("人员2",opendoorApply.getUserName());
-        detalisMap.put("锁编2号",listsubRla.get(1).getLockCode());
-        detalisMap.put("人员2密码",map2.get("password"));
+            //人员1 备注详情
+            detalisMap.put("人员1",opendoorApply.getUserName());
+            detalisMap.put("锁编1号",listsubRla.get(0).getLockCode());
+            detalisMap.put("人员1密码",map1.get("password"));
+
+            //学号、工号
+            user.setPersoncode(opendoorApply.getUserCode2());
+            //姓名
+            user.setPersonname(opendoorApply.getUserName2());
+            //性别 (0=女,1=男)
+            user.setPersonsex(opendoorApply.getUserSex2()==null?1+"":0+"");
+            //人员类别(1=学生,2=教职工,3=临时人员)
+            user.setPersontype("1");
+            //电话
+            user.setPersonmobile(opendoorApply.getPhonenumber2());
+
+            log.info("=======人员2授权开始========");
+            Map<String,Object> map2= SmartlockUtil.addUser(user,listsubRla.get(1).getLockRoomId());
+
+            //人员2 备注详情
+            detalisMap.put("人员2",opendoorApply.getUserName());
+            detalisMap.put("锁编2号",listsubRla.get(1).getLockCode());
+            detalisMap.put("人员2密码",map2.get("password"));
+            if(!SmartlockUtil.resultMsg.equals(map2.get("resultMsg").toString())){
+                log.info("人员2:"+opendoorApply.getUserName()+",授权失败,原因:"+map2.get("resultMsg")+",请联系管理员");
+                strMsg="人员:"+opendoorApply.getUserName()+",授权失败,原因:"+map2.get("resultMsg")+",请联系管理员";
+                return strMsg;
+            }else {
+                log.info("=======人员2授权成功========");
+                auths2=true;
+            }
+
 
-        opendoorApply.setIllustrate(detalisMap.toString());
-        slOpendoorApplyMapper.updateSlOpendoorApply(opendoorApply);
+
+            log.info("=======授权结束========人员1授权结果:"+auths1+" ,人员2授权结果:"+auths2);
+            //人员入住办理成功,发送短信提示
+            if(auths1 && auths2){
+                log.info("=============双人授权成功,下发短信================");
+                R p1 = remoteStockService.sendSydSms("【实验室安全系统】授权码:"+map1.get("password")+"("+SmartlockUtil.authsLength+"小时内有效),"+opendoorApply.getSubjectName()+"-门禁远程授权申请已通过,请勿泄露给他人。",3,applyId,new String[] {opendoorApply.getPhonenumber()});
+                log.info("人员1短信发送结果:"+p1);
+
+                R p2 = remoteStockService.sendSydSms("【实验室安全系统】授权码:"+map1.get("password")+"("+SmartlockUtil.authsLength+"小时内有效),"+opendoorApply.getSubjectName()+"-门禁远程授权申请已通过,请勿泄露给他人。",3,applyId,new String[] {opendoorApply.getPhonenumber2()});
+                log.info("人员2短信发送结果:"+p2);
+
+            /*String msg1="开门申请成功,门锁编号:"+listsubRla.get(0).getLockCode()+"密码:"+map1.get("password");
+            String msg2="开门申请成功,门锁编号:"+listsubRla.get(1).getLockCode()+"密码:"+map1.get("password");*/
+            }
+
+            opendoorApply.setIllustrate(detalisMap.toString());
+            slOpendoorApplyMapper.updateSlOpendoorApply(opendoorApply);
+
+        }catch (Exception e){
+            log.info("=======人员授权失败========"+e);
+        }
         return strMsg;
     }
 }

+ 46 - 26
zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/service/impl/SlOpendoorApplyServiceImpl.java

@@ -5,6 +5,7 @@ import com.zd.common.core.domain.per.PerPrefix;
 import com.zd.common.core.exception.ServiceException;
 import com.zd.common.core.utils.StringUtils;
 import com.zd.common.datascope.annotation.DataScope;
+import com.zd.common.log.annotation.Log;
 import com.zd.common.security.service.TokenService;
 import com.zd.smartlock.domain.SlOpendoorApply;
 import com.zd.smartlock.domain.SlSubjectRelation;
@@ -17,11 +18,14 @@ import com.zd.smartlock.mapper.SlUserRelationMapper;
 import com.zd.smartlock.service.ISlOpendoorApplyService;
 import com.zd.smartlock.service.ISlUserRelationService;
 import com.zd.system.api.RemoteUserService;
+import com.zd.system.api.chemical.RemoteStockService;
 import com.zd.system.api.domain.SysUser;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -32,9 +36,9 @@ import java.util.List;
  * @author zd
  * @date 2022-09-03
  */
+@Slf4j
 @Service
-public class SlOpendoorApplyServiceImpl implements ISlOpendoorApplyService
-{
+public class SlOpendoorApplyServiceImpl implements ISlOpendoorApplyService {
     @Autowired
     private SlOpendoorApplyMapper slOpendoorApplyMapper;
 
@@ -47,6 +51,12 @@ public class SlOpendoorApplyServiceImpl implements ISlOpendoorApplyService
     @Autowired
     private SlSubjectRelationMapper slSubjectRelationMapper;
 
+    /*@Resource
+    private SmsSydUtil smsSydUtil;*/
+
+    @Autowired
+    private RemoteStockService remoteStockService;
+
     /**
      * 查询申请开门
      *
@@ -54,8 +64,7 @@ public class SlOpendoorApplyServiceImpl implements ISlOpendoorApplyService
      * @return 申请开门
      */
     @Override
-    public SlOpendoorApply selectSlOpendoorApplyById(Long id)
-    {
+    public SlOpendoorApply selectSlOpendoorApplyById(Long id) {
         return slOpendoorApplyMapper.selectSlOpendoorApplyById(id);
     }
 
@@ -67,8 +76,7 @@ public class SlOpendoorApplyServiceImpl implements ISlOpendoorApplyService
      */
     @Override
     @DataScope(deptAlias = "d", userAlias = "u", permi = PerPrefix.SMARTLOCK_OPENDOORAPPLY)
-    public List<SlOpendoorApplyVo> selectSlOpendoorApplyList(SlOpendoorApplyVo slOpendoorApply)
-    {
+    public List<SlOpendoorApplyVo> selectSlOpendoorApplyList(SlOpendoorApplyVo slOpendoorApply) {
         return slOpendoorApplyMapper.selectSlOpendoorApplyList(slOpendoorApply);
     }
 
@@ -84,8 +92,8 @@ public class SlOpendoorApplyServiceImpl implements ISlOpendoorApplyService
     }
 
     @Override
-    public List<SlOpendoorApply> getListByIds(List<Long> ids){
-        if (ids.isEmpty()){
+    public List<SlOpendoorApply> getListByIds(List<Long> ids) {
+        if (ids.isEmpty()) {
             new ArrayList<>();
         }
         return slOpendoorApplyMapper.getListByIds(ids);
@@ -99,31 +107,31 @@ public class SlOpendoorApplyServiceImpl implements ISlOpendoorApplyService
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public int insertSlOpendoorApply(SlOpendoorApply slOpendoorApply)
-    {
+    public int insertSlOpendoorApply(SlOpendoorApply slOpendoorApply) {
+
         SysUser sysUser = tokenService.getLoginUser().getSysUser();
 
-         //1.校验实验室是否配置并且关联双锁
+        //1.校验实验室是否配置并且关联双锁
         SlSubjectRelationVo subjectRelation = new SlSubjectRelationVo();
         subjectRelation.setSubjectId(slOpendoorApply.getSubjectId());
         List<SlSubjectRelationVo> subjectList = slSubjectRelationMapper.selectSlSubjectRelationList(subjectRelation);
-        if(subjectList.size()<2){
+        if (subjectList.size() < 2) {
             throw new ServiceException("该实验室关联门锁不足2个!");
         }
         //2.校验人员电话是否为空
-        if(StringUtils.isEmpty(sysUser.getPhonenumber())){
-            throw new ServiceException("申请人:"+sysUser.getNickName()+"电话为空!");
+        if (StringUtils.isEmpty(sysUser.getPhonenumber())) {
+            throw new ServiceException("申请人:" + sysUser.getNickName() + "电话为空!");
         }
 
-        R<SysUser> r = remoteUserService.getUserInfoByUserId(slOpendoorApply.getUserId2(),"inner");
-        if(StringUtils.isEmpty(r.getData().getPhonenumber())){
-            throw new ServiceException("申请人:"+r.getData().getNickName()+"电话为空!");
+        R<SysUser> r = remoteUserService.getUserInfoByUserId(slOpendoorApply.getUserId2(), "inner");
+        if (StringUtils.isEmpty(r.getData().getPhonenumber())) {
+            throw new ServiceException("申请人:" + r.getData().getNickName() + "电话为空!");
         }
 
         slOpendoorApply.setUserId2(r.getData().getUserId());
         slOpendoorApply.setUserName2(r.getData().getNickName());
         slOpendoorApply.setUserCode2(r.getData().getUserName());
-        slOpendoorApply.setUserSex2(r.getData().getSex()==null?1:Integer.valueOf(sysUser.getSex()));
+        slOpendoorApply.setUserSex2(r.getData().getSex() == null ? 1 : Integer.valueOf(sysUser.getSex()));
         slOpendoorApply.setPhonenumber2(r.getData().getPhonenumber());
 
         slOpendoorApply.setUserId(sysUser.getUserId());
@@ -131,10 +139,25 @@ public class SlOpendoorApplyServiceImpl implements ISlOpendoorApplyService
         slOpendoorApply.setDeptId(sysUser.getDept().getDeptId());
         slOpendoorApply.setDeptName(sysUser.getDept().getDeptName());
         slOpendoorApply.setUserCode(sysUser.getUserName());
-        slOpendoorApply.setUserSex(sysUser.getSex()==null?1:Integer.valueOf(sysUser.getSex()));
+        slOpendoorApply.setUserSex(sysUser.getSex() == null ? 1 : Integer.valueOf(sysUser.getSex()));
         slOpendoorApply.setPhonenumber(sysUser.getPhonenumber());
         slOpendoorApply.setCreatTime(new Date());
-        return slOpendoorApplyMapper.insertSlOpendoorApply(slOpendoorApply);
+
+        slOpendoorApplyMapper.insertSlOpendoorApply(slOpendoorApply);
+
+        //发送短信通知实验室负责人
+        String[] strPhoe = slOpendoorApply.getSafeUserPhone().split(",");
+        if (strPhoe.length > 0) {
+            log.info("申请完毕实验室负责人短信发送");
+            R r1= remoteStockService.sendSydSms(
+                    "【实验室安全系统】" + slOpendoorApply.getUserName() + "、" +
+                            slOpendoorApply.getUserName2() +
+                            slOpendoorApply.getSubjectName() +
+                            "-门禁远程授权,短信回复“1”确认授权,如拒绝请回复“0”。",
+                    3, slOpendoorApply.getId(), strPhoe);
+            log.info("短信发送结果:"+r1);
+        }
+        return 1;
     }
 
     /**
@@ -145,8 +168,7 @@ public class SlOpendoorApplyServiceImpl implements ISlOpendoorApplyService
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public int updateSlOpendoorApply(SlOpendoorApply slOpendoorApply)
-    {
+    public int updateSlOpendoorApply(SlOpendoorApply slOpendoorApply) {
         return slOpendoorApplyMapper.updateSlOpendoorApply(slOpendoorApply);
     }
 
@@ -158,8 +180,7 @@ public class SlOpendoorApplyServiceImpl implements ISlOpendoorApplyService
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public int deleteSlOpendoorApplyByIds(Long[] ids)
-    {
+    public int deleteSlOpendoorApplyByIds(Long[] ids) {
         return slOpendoorApplyMapper.deleteSlOpendoorApplyByIds(ids);
     }
 
@@ -171,8 +192,7 @@ public class SlOpendoorApplyServiceImpl implements ISlOpendoorApplyService
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public int deleteSlOpendoorApplyById(Long id)
-    {
+    public int deleteSlOpendoorApplyById(Long id) {
         return slOpendoorApplyMapper.deleteSlOpendoorApplyById(id);
     }
 }

+ 18 - 5
zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/utils/SmartlockUtil.java

@@ -34,6 +34,11 @@ public class SmartlockUtil {
      */
     public final static String resultMsg = "ok";
 
+    /**
+     * //授权时长(小时)
+     */
+    public final static Integer authsLength=1;
+
     /***
      * 登陆账户
      */
@@ -359,12 +364,20 @@ public class SmartlockUtil {
             slupdateAuths.setAuthid(authid);
             slupdateAuths.setRctype(3);
             list.add(slupdateAuths);
+            //授权开始日期
+            String empsdate =sdf.format(new Date());
+            //授权结束日期
+            String empedate = sdf.format(getTime(authsLength));
+
             String pw = getRandom(6);
-            String url2 = SmartlockUtil.serviceurl + "/lockauth/operate/7/updateauths?token=" + token + "&roomid=" + roomId + "&password=" + pw;
+            String url2 = SmartlockUtil.serviceurl + "/lockauth/operate/7/updateauths?token=" + token + "&roomid=" + roomId + "&password=" + pw
+                    +"&empsdate="+empsdate+"&empedate="+empedate;
             HttpRequest request2 = SmartlockUtil.httpSendPost(url2, JSONObject.toJSONString(list));
             HttpResponse response2 = request2.execute();
-            String resultMsg = JSON.parseObject(response2.body().toString()).get("resultMsg").toString();
+            String resultMsg = JSON.parseObject(response2.body()).get("resultMsg").toString();
+            logger.info("用户申请修改:"+response2.body());
             System.out.println(response2.body());
+            logger.info("用户密码:"+pw);
             System.out.println(pw);
             map.put("password", pw);
             map.put("resultMsg", resultMsg);
@@ -396,10 +409,10 @@ public class SmartlockUtil {
             postUser.setIssendface("1");//是否下发人脸(1是,0否)
             postUser.setIssendfinger("1");//是否下发指纹(1是,0否)
             postUser.setIssendpass("1");//是否下发密码(1是,0否)
-            postUser.setManagertype(1);//权限类型(1管理权限,0使用权限,管理权限不占用入住人数)
+            postUser.setManagertype(0);//权限类型(1管理权限,0使用权限,管理权限不占用入住人数)
             postUser.setPassword(pw);//6位数字密码(不允许连续数字或连续三个及以上相同数字)
             postUser.setEmpsdate(sdf.format(new Date()));//授权开始时间
-            postUser.setEmpedate(sdf.format(getTime(1)));  //授权结束时间,当前时间加1小时
+            postUser.setEmpedate(sdf.format(getTime(authsLength)));  //授权结束时间,当前时间加1小时
             postlist.add(postUser);
             System.out.println("开始时间:" + sdf.format(new Date()) + "结束时间:" + sdf.format(getTime(1)));
 
@@ -604,7 +617,7 @@ public class SmartlockUtil {
 
         // AuthCheckIn(new SlUser() , "");
 
-         addUser(new SlUser() , "");
+         //addUser(new SlUser() , "");
 
         // System.out.println(checkUserExis("C008","1"));
 

+ 7 - 0
zd-modules/zd-smartlock/src/main/resources/mapper/smartlock/SlOpendoorApplyMapper.xml

@@ -22,6 +22,7 @@
         <result property="subjectName" column="subject_name"/>
         <result property="safeUserId" column="safe_user_id"/>
         <result property="safeUserName" column="safe_user_name"/>
+        <result property="safeUserPhone" column="safe_user_phone"/>
         <result property="position" column="position"/>
         <result property="college" column="college"/>
         <result property="applyStatus" column="apply_status"/>
@@ -50,6 +51,7 @@
                subject_name,
                safe_user_id,
                safe_user_name,
+               safe_user_phone,
                position,
                college,
                apply_status,
@@ -78,6 +80,7 @@
                t.subject_name,
                t.safe_user_id,
                t.safe_user_name,
+               t.safe_user_phone,
                t.position,
                t.college,
                t.apply_status,
@@ -186,6 +189,8 @@
 
             <if test="safeUserName != null">safe_user_name,</if>
 
+            <if test="safeUserPhone != null">safe_user_phone,</if>
+
             <if test="position != null">position,</if>
 
             <if test="college != null">college,</if>
@@ -220,6 +225,7 @@
             <if test="subjectName != null">#{subjectName},</if>
             <if test="safeUserId != null">#{safeUserId},</if>
             <if test="safeUserName != null">#{safeUserName},</if>
+            <if test="safeUserPhone != null">#{safeUserPhone},</if>
             <if test="position != null">#{position},</if>
             <if test="college != null">#{college},</if>
             <if test="applyStatus != null">#{applyStatus},</if>
@@ -250,6 +256,7 @@
             <if test="subjectName != null">subject_name = #{subjectName},</if>
             <if test="safeUserId != null">safe_user_id = #{safeUserId},</if>
             <if test="safeUserName != null">safe_user_name = #{safeUserName},</if>
+            <if test="safeUserPhone != null">safe_user_phone = #{safeUserPhone},</if>
             <if test="position != null">position = #{position},</if>
             <if test="college != null">college = #{college},</if>
             <if test="applyStatus != null">apply_status = #{applyStatus},</if>