Prechádzať zdrojové kódy

智能门锁需求变更逻辑修改

liujh 3 rokov pred
rodič
commit
2045920d93
14 zmenil súbory, kde vykonal 262 pridanie a 91 odobranie
  1. 1 24
      zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/controller/SlApplyApprovalController.java
  2. 25 9
      zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/controller/SlOpendoorApplyController.java
  3. 16 2
      zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/controller/SlSubjectRelationController.java
  4. 1 11
      zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/controller/SlUserRelationController.java
  5. 1 1
      zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/controller/SmartlockController.java
  6. 21 0
      zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/domain/SlSubjectRelation.java
  7. 11 0
      zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/domain/vo/SlOpendoorApplyVo.java
  8. 0 6
      zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/service/ISlApplyApprovalService.java
  9. 7 0
      zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/service/ISlOpendoorApplyService.java
  10. 5 20
      zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/service/impl/SlApplyApprovalServiceImpl.java
  11. 152 17
      zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/service/impl/SlOpendoorApplyServiceImpl.java
  12. 1 0
      zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/utils/SmartlockUtil.java
  13. 2 1
      zd-modules/zd-smartlock/src/main/resources/mapper/smartlock/SlOpendoorApplyMapper.xml
  14. 19 0
      zd-modules/zd-smartlock/src/main/resources/mapper/smartlock/SlSubjectRelationMapper.xml

+ 1 - 24
zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/controller/SlApplyApprovalController.java

@@ -1,6 +1,5 @@
 package com.zd.smartlock.controller;
 
-import com.zd.common.core.domain.R;
 import com.zd.common.core.utils.poi.ExcelUtil;
 import com.zd.common.core.web.controller.BaseController;
 import com.zd.common.core.web.domain.AjaxResult;
@@ -8,15 +7,8 @@ import com.zd.common.core.web.page.TableDataInfo;
 import com.zd.common.log.annotation.Log;
 import com.zd.common.log.enums.BusinessType;
 import com.zd.common.response.ResultData;
-import com.zd.common.security.annotation.PreAuthorize;
 import com.zd.smartlock.domain.SlApplyApproval;
-import com.zd.smartlock.domain.SlUserRelation;
-import com.zd.smartlock.domain.api.SlUser;
 import com.zd.smartlock.service.ISlApplyApprovalService;
-import com.zd.smartlock.service.ISlUserRelationService;
-import com.zd.smartlock.utils.SmartlockUtil;
-import com.zd.system.api.domain.SysUser;
-import com.zd.system.api.smartlock.RemoteSmartlockService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,7 +22,7 @@ import java.util.Map;
 /**
  * 门锁申请审核Controller
  *
- * @author zd
+ * @author xxf
  * @date 2022-09-02
  */
 @RestController
@@ -41,9 +33,6 @@ public class SlApplyApprovalController extends BaseController
     @Autowired
     private ISlApplyApprovalService slApplyApprovalService;
 
-    @Autowired
-    private RemoteSmartlockService remoteSmartlockService;
-
 
     /**
      * 查询申请审核列表
@@ -134,16 +123,4 @@ public class SlApplyApprovalController extends BaseController
         return AjaxResult.success(map);
     }
 
-    /***
-     * 重新授权
-     * @param id
-     * @return
-     */
-    @ApiOperation(value = "重新授权")
-    @GetMapping("/auth/{id}")
-    public AjaxResult againAuth(@PathVariable Long id)
-    {
-        return AjaxResult.success(slApplyApprovalService.againAuth(id));
-    }
-
 }

+ 25 - 9
zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/controller/SlOpendoorApplyController.java

@@ -5,6 +5,7 @@ import com.zd.common.core.domain.per.PerPrefix;
 import com.zd.common.core.utils.StringUtils;
 import com.zd.common.core.utils.poi.ExcelUtil;
 import com.zd.common.core.web.controller.BaseController;
+import com.zd.common.core.web.domain.AjaxResult;
 import com.zd.common.core.web.page.TableDataInfo;
 import com.zd.common.log.annotation.Log;
 import com.zd.common.log.enums.BusinessType;
@@ -12,10 +13,8 @@ import com.zd.common.response.ResultData;
 import com.zd.common.security.annotation.PreAuthorize;
 import com.zd.common.security.service.TokenService;
 import com.zd.smartlock.domain.SlOpendoorApply;
-import com.zd.smartlock.domain.SlSubjectRelation;
 import com.zd.smartlock.domain.vo.SlOpendoorApplyVo;
 import com.zd.smartlock.service.ISlOpendoorApplyService;
-import com.zd.smartlock.service.ISlSubjectRelationService;
 import com.zd.system.api.domain.SysUser;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -24,12 +23,13 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.util.Date;
 import java.util.List;
 
 /**
  * 申请开门Controller
  *
- * @author zd
+ * @author xxf
  * @date 2022-09-03
  */
 @RestController
@@ -56,10 +56,8 @@ public class SlOpendoorApplyController extends BaseController
         startPage();
         List<SlOpendoorApplyVo> list = slOpendoorApplyService.selectSlOpendoorApplyList(slOpendoorApply);
         for (SlOpendoorApplyVo vo:list) {
-                if(StringUtils.isNotEmpty(vo.getSafeUserId()) && vo.getSafeUserId().contains(String.valueOf(sysUser.getUserId()))){
-                    vo.setSafe(true);
-                }else{
-                    vo.setSafe(false);
+                if(vo.getLoseTime().getTime()<System.currentTimeMillis()){
+                    vo.setApplyStatus(2L);
                 }
         }
         return getDataTable(list);
@@ -78,6 +76,11 @@ public class SlOpendoorApplyController extends BaseController
         slOpendoorApply.setUserId(sysUser.getUserId());
         startPage();
         List<SlOpendoorApplyVo> list = slOpendoorApplyService.selectSlOpendoorApplyList(slOpendoorApply);
+        for (SlOpendoorApplyVo vo:list) {
+            if(vo.getLoseTime().getTime()<System.currentTimeMillis()){
+                vo.setApplyStatus(2L);
+            }
+        }
         return getDataTable(list);
     }
 
@@ -94,6 +97,11 @@ public class SlOpendoorApplyController extends BaseController
 
         startPage();
         List<SlOpendoorApplyVo> list = slOpendoorApplyService.selectSlOpendoorApplyListStudent(slOpendoorApply);
+        for (SlOpendoorApplyVo vo:list) {
+            if(vo.getLoseTime().getTime()<System.currentTimeMillis()){
+                vo.setApplyStatus(2L);
+            }
+        }
         return getDataTable(list);
     }
 
@@ -177,7 +185,15 @@ public class SlOpendoorApplyController extends BaseController
         return ResultData.result(slOpendoorApplyService.deleteSlOpendoorApplyByIds(ids));
     }
 
-    public static void main(String[] args) {
-
+    /***
+     * 重新授权
+     * @param id 申请主键
+     * @return
+     */
+    @ApiOperation(value = "重新授权")
+    @GetMapping("/auth/{id}")
+    public AjaxResult againAuth(@PathVariable Long id)
+    {
+        return AjaxResult.success(slOpendoorApplyService.againAuth(id));
     }
 }

+ 16 - 2
zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/controller/SlSubjectRelationController.java

@@ -28,7 +28,7 @@ import java.util.List;
 /**
  * 实验室关联Controller
  *
- * @author zd
+ * @author xxf
  * @date 2022-09-03
  */
 @RestController
@@ -151,7 +151,21 @@ public class SlSubjectRelationController extends BaseController {
     @GetMapping("/listLockRoom")
     @ApiOperation(value = "查询实验室关联列表")
     public TableDataInfo<SlRoom> listLockRoom(SlRoom slRoom) {
-        List<SlRoom> list = SmartlockUtil.getRoom( slRoom);
+        //List<SlRoom> list = SmartlockUtil.getRoom( slRoom);
+
+        List<SlRoom> list = new ArrayList<>();
+        slRoom.setRoomname("房间1");
+        slRoom.setRoomcode2("MS001");
+        slRoom.setRoomlocation("1-1-110");
+        slRoom.setRoomid(220);
+        list.add(slRoom);
+
+        SlRoom slRoom1 = new SlRoom();
+        slRoom1.setRoomname("房间2");
+        slRoom1.setRoomcode2("MS002");
+        slRoom1.setRoomlocation("1-1-112");
+        slRoom1.setRoomid(330);
+        list.add(slRoom1);
         return getDataTable(list);
     }
 

+ 1 - 11
zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/controller/SlUserRelationController.java

@@ -5,11 +5,9 @@ import java.io.IOException;
 import javax.servlet.http.HttpServletResponse;
 
 import com.zd.common.response.ResultData;
-import com.zd.common.security.service.TokenService;
 import com.zd.smartlock.domain.SlUserRelation;
 import com.zd.smartlock.domain.api.SlUser;
 import com.zd.smartlock.utils.SmartlockUtil;
-import com.zd.system.api.domain.SysUser;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -24,7 +22,6 @@ import com.zd.common.log.enums.BusinessType;
 import com.zd.common.security.annotation.PreAuthorize;
 import com.zd.smartlock.service.ISlUserRelationService;
 import com.zd.common.core.web.controller.BaseController;
-import com.zd.common.core.web.domain.AjaxResult;
 import com.zd.common.core.utils.poi.ExcelUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -33,7 +30,7 @@ import com.zd.common.core.web.page.TableDataInfo;
 /**
  * 人员关联Controller
  *
- * @author zd
+ * @author xxf
  * @date 2022-09-02
  */
 @RestController
@@ -44,9 +41,6 @@ public class SlUserRelationController extends BaseController
     @Autowired
     private ISlUserRelationService slUserRelationService;
 
-    @Autowired
-    private TokenService tokenService;
-
     /**
      * 查询人员关联列表
      */
@@ -124,14 +118,10 @@ public class SlUserRelationController extends BaseController
     /**
      * 查询智能锁人员列表
      */
-    //@PreAuthorize(hasPermi = "laboratory:relation:list")
     @GetMapping("/listLockUser")
     @ApiOperation(value = "查询智能锁人员列表")
     public TableDataInfo<SlUser> listLockUser(SlUser sluser)
     {
-        SysUser sysUser = tokenService.getLoginUser().getSysUser();
-        System.out.println(sysUser.getNickName());
-        //List<SlUserRelation> list = slUserRelationService.selectSlUserRelationList(slUserRelation);
         List<SlUser> list = SmartlockUtil.getUser(sluser);
         return getDataTable(list);
     }

+ 1 - 1
zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/controller/SmartlockController.java

@@ -20,7 +20,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 /**
- * @Author: liujh
+ * @Author: xxf
  * @Date: 2022/09/07/9:43
  * @Description:
  */

+ 21 - 0
zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/domain/SlSubjectRelation.java

@@ -71,6 +71,15 @@ public class SlSubjectRelation extends BaseEntity
     @ApiModelProperty(value = "学院")
     private String college;
 
+    @ApiModelProperty(value = "安全负责人id")
+    private Long safeUserId;
+
+    @ApiModelProperty(value = "安全负责人姓名")
+    private String safeUserName;
+
+    @ApiModelProperty(value = "安全负责人电话")
+    private String safeUserPhone;
+
     private Long deptId;
 
     private String deptName;
@@ -164,4 +173,16 @@ public class SlSubjectRelation extends BaseEntity
     public void setCollege(String college) {
         this.college = college;
     }
+
+    public Long getSafeUserId() {        return safeUserId;    }
+
+    public void setSafeUserId(Long safeUserId) {        this.safeUserId = safeUserId;    }
+
+    public String getSafeUserName() {        return safeUserName;    }
+
+    public void setSafeUserName(String safeUserName) {        this.safeUserName = safeUserName;    }
+
+    public String getSafeUserPhone() {        return safeUserPhone;    }
+
+    public void setSafeUserPhone(String safeUserPhone) {        this.safeUserPhone = safeUserPhone;    }
 }

+ 11 - 0
zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/domain/vo/SlOpendoorApplyVo.java

@@ -1,8 +1,11 @@
 package com.zd.smartlock.domain.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.zd.smartlock.domain.SlOpendoorApply;
 import io.swagger.annotations.ApiModelProperty;
 
+import java.util.Date;
+
 /**
  * @Author: liujh
  * @Date: 2022/09/06/15:01
@@ -22,6 +25,10 @@ public class SlOpendoorApplyVo extends SlOpendoorApply {
     @ApiModelProperty(value = "结束时间")
     private String endTime;
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "失效时间")
+    private Date loseTime;
+
     public Boolean getSafe() {
         return safe;
     }
@@ -42,4 +49,8 @@ public class SlOpendoorApplyVo extends SlOpendoorApply {
     public String getEndTime() {        return endTime;    }
 
     public void setEndTime(String endTime) {        this.endTime = endTime;    }
+
+    public Date getLoseTime() {        return loseTime;    }
+
+    public void setLoseTime(Date loseTime) {        this.loseTime = loseTime;    }
 }

+ 0 - 6
zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/service/ISlApplyApprovalService.java

@@ -78,10 +78,4 @@ public interface ISlApplyApprovalService
      */
     Map<String,Object> sysMsgApprova(String phone, String content, Long lockApplyId);
 
-    /***
-     * 门锁申请重新授权
-     * @param id
-     * @return
-     */
-    String againAuth(Long id);
 }

+ 7 - 0
zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/service/ISlOpendoorApplyService.java

@@ -77,4 +77,11 @@ public interface ISlOpendoorApplyService
      * @return 结果
      */
     int deleteSlOpendoorApplyById(Long id);
+
+    /***
+     * 门锁申请重新授权
+     * @param id
+     * @return
+     */
+    String againAuth(Long id);
 }

+ 5 - 20
zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/service/impl/SlApplyApprovalServiceImpl.java

@@ -52,6 +52,7 @@ public class SlApplyApprovalServiceImpl implements ISlApplyApprovalService
     @Autowired
     private RemoteUserService remoteUserService;
 
+
     /**
      * 查询申请审核
      *
@@ -85,7 +86,7 @@ public class SlApplyApprovalServiceImpl implements ISlApplyApprovalService
     }
 
     /**
-     * 新增申请审核
+     * 新增申请审核-需求变更废弃 2022-09-27
      *
      * @param slApplyApproval 申请审核
      * @return 结果
@@ -135,6 +136,7 @@ public class SlApplyApprovalServiceImpl implements ISlApplyApprovalService
                     //审核通过后,添加人员并且授权、短信发送
                     String str =  authPower(opendoorApply.getId());
                     if(!"ok".equals(str)){
+                        log.info("人员授权以及短信发送结果:"+str);
                         throw new ServiceException(str);
                     }
                 }
@@ -203,7 +205,7 @@ public class SlApplyApprovalServiceImpl implements ISlApplyApprovalService
     }
 
     /***
-     * 短信审核
+     * 短信审核 需求变更,废弃2022-09-27
      * @param phone 回复人电话
      * @param content 回复内容
      * @param lockApplyId 申请id
@@ -303,24 +305,7 @@ public class SlApplyApprovalServiceImpl implements ISlApplyApprovalService
     }
 
     /***
-     * 门锁申请重新授权
-     * @param id
-     * @return
-     */
-    @Override
-    public String againAuth(Long id) {
-        String str="";
-        try {
-            str =  authPower(id);
-        }catch (Exception e) {
-            e.printStackTrace();
-            log.error("重新授权失败:"+e);
-        }
-        return str;
-    }
-
-    /***
-     * 审批通过后人员密码授权处理
+     * 审批通过后人员密码授权处理- 需求变更,废弃2022-09-27
      * @param applyId 申请id
      */
     public String authPower(Long applyId) throws Exception {

+ 152 - 17
zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/service/impl/SlOpendoorApplyServiceImpl.java

@@ -10,6 +10,7 @@ import com.zd.common.security.service.TokenService;
 import com.zd.smartlock.domain.SlOpendoorApply;
 import com.zd.smartlock.domain.SlSubjectRelation;
 import com.zd.smartlock.domain.SlUserRelation;
+import com.zd.smartlock.domain.api.SlUser;
 import com.zd.smartlock.domain.vo.SlOpendoorApplyVo;
 import com.zd.smartlock.domain.vo.SlSubjectRelationVo;
 import com.zd.smartlock.mapper.SlOpendoorApplyMapper;
@@ -17,6 +18,7 @@ import com.zd.smartlock.mapper.SlSubjectRelationMapper;
 import com.zd.smartlock.mapper.SlUserRelationMapper;
 import com.zd.smartlock.service.ISlOpendoorApplyService;
 import com.zd.smartlock.service.ISlUserRelationService;
+import com.zd.smartlock.utils.SmartlockUtil;
 import com.zd.system.api.RemoteUserService;
 import com.zd.system.api.chemical.RemoteStockService;
 import com.zd.system.api.domain.SysUser;
@@ -26,9 +28,7 @@ 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;
+import java.util.*;
 
 /**
  * 申请开门Service业务层处理
@@ -140,21 +140,13 @@ public class SlOpendoorApplyServiceImpl implements ISlOpendoorApplyService {
         slOpendoorApply.setPhonenumber(sysUser.getPhonenumber());
         slOpendoorApply.setCreatTime(new Date());
 
-        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);
+        try {
+            //授权并且发送短信通知实验室门锁对应的安全负责人
+            authPowerNew(slOpendoorApply.getId());
+        } catch (Exception e) {
+            log.info("授权失败:"+e);
         }
-        return 1;
+        return slOpendoorApplyMapper.insertSlOpendoorApply(slOpendoorApply);
     }
 
     /**
@@ -192,4 +184,147 @@ public class SlOpendoorApplyServiceImpl implements ISlOpendoorApplyService {
     public int deleteSlOpendoorApplyById(Long id) {
         return slOpendoorApplyMapper.deleteSlOpendoorApplyById(id);
     }
+
+
+    /***
+     * 门锁申请重新授权
+     * @param id
+     * @return
+     */
+    @Override
+    public String againAuth(Long id) {
+        String str="";
+        try {
+            str =  authPowerNew(id);
+        }catch (Exception e) {
+            e.printStackTrace();
+            log.error("重新授权失败:"+e);
+        }
+        return str;
+    }
+
+    /***
+     * 审批通过后人员密码授权处理
+     * @param applyId 申请id
+     */
+    public String authPowerNew(Long applyId) throws Exception {
+        log.info("========开始门锁授权===========");
+        //人员1 授权结果
+        Boolean auths1=false;
+        //人员2授权结果
+        Boolean auths2=false;
+        //返回值
+        String strMsg="ok";
+        try {
+            //查询申请记录
+            SlOpendoorApply opendoorApply = slOpendoorApplyMapper.selectSlOpendoorApplyById(applyId);
+
+            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());
+
+            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;
+            }
+
+            //人员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;
+            }
+
+            log.info("=======授权结束========人员1授权结果:"+auths1+" ,人员2授权结果:"+auths2);
+            //人员入住办理成功,发送短信提示
+            if(auths1 && auths2){
+                log.info("=============双人授权成功,下发短信================");
+                SlSubjectRelationVo relationVo = new SlSubjectRelationVo();
+                relationVo.setSubjectId(opendoorApply.getSubjectId());
+                List<SlSubjectRelationVo> relist = slSubjectRelationMapper.selectSlSubjectRelationList(relationVo);
+                if(relist.size()<2){
+                    log.info("该实验室暂未关联双门锁。");
+                    throw  new ServiceException("该实验室暂未关联双门锁。");
+                }
+
+                if(StringUtils.isNotEmpty(relist.get(0).getSafeUserPhone())){
+                    R r1= remoteStockService.sendSydSms(
+                            "【实验室安全系统】" + opendoorApply.getUserName() + "申请" +
+                                    opendoorApply.getSubjectName() +
+                                    "-门禁远程授权,手机号:"+opendoorApply.getPhonenumber()+",授权码:"+map1.get("password")+
+                                    "("+ SmartlockUtil.authsLength+"小时内有效),请勿泄露给他人。",
+                            3, opendoorApply.getId(), relist.get(0).getSafeUserPhone());
+                    log.info("人员1短信发送结果:"+r1);
+                }else {
+                    log.info("安全负责人电话为空:"+relist.get(0).getSafeUserName());
+                }
+
+                if(StringUtils.isNotEmpty(relist.get(1).getSafeUserPhone())){
+                    R r2= remoteStockService.sendSydSms(
+                            "【实验室安全系统】" + opendoorApply.getUserName2() + "申请" +
+                                    opendoorApply.getSubjectName() +
+                                    "-门禁远程授权,手机号:"+opendoorApply.getPhonenumber2()+",授权码:"+map2.get("password")+
+                                    "("+ SmartlockUtil.authsLength+"小时内有效),请勿泄露给他人。",
+                            3, opendoorApply.getId(), relist.get(1).getSafeUserPhone());
+                    log.info("人员2短信发送结果:"+r2);
+                }else{
+                    log.info("安全负责人电话为空:"+relist.get(1).getSafeUserName());
+                }
+
+            }
+            opendoorApply.setIllustrate(detalisMap.toString());
+            slOpendoorApplyMapper.updateSlOpendoorApply(opendoorApply);
+
+        }catch (Exception e){
+            log.info("=======人员授权失败========"+e);
+        }
+        return strMsg;
+    }
 }

+ 1 - 0
zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/utils/SmartlockUtil.java

@@ -628,5 +628,6 @@ public class SmartlockUtil {
 
         //getRoomDetails("109");
 
+        //System.out.println(getRandom(6));
     }
 }

+ 2 - 1
zd-modules/zd-smartlock/src/main/resources/mapper/smartlock/SlOpendoorApplyMapper.xml

@@ -89,7 +89,8 @@
                t.approval_user,
                t.approval_time,
                t.creat_time,
-               (SELECT GROUP_CONCAT(aa.approva_name) FROM sl_apply_approval aa WHERE aa.apply_id=t.id) AS examineName
+               (SELECT GROUP_CONCAT(aa.approva_name) FROM sl_apply_approval aa WHERE aa.apply_id=t.id) AS examineName,
+               date_add(t.creat_time, interval 1 hour) loseTime
         from sl_opendoor_apply as t
         LEFT JOIN   sys_dept d on   t.dept_id=d.dept_id
         LEFT JOIN sys_user u on  t.user_id=u.user_id

+ 19 - 0
zd-modules/zd-smartlock/src/main/resources/mapper/smartlock/SlSubjectRelationMapper.xml

@@ -16,6 +16,9 @@
         <result property="lockCode" column="lock_code"/>
         <result property="roomLocation" column="room_location"/>
         <result property="roomName" column="room_name"/>
+        <result property="safeUserId" column="safe_user_id"/>
+        <result property="safeUserName" column="safe_user_name"/>
+        <result property="safeUserPhone" column="safe_user_phone"/>
         <result property="userId" column="user_id"/>
         <result property="createBy" column="create_by"/>
         <result property="creatTime" column="creat_time"/>
@@ -33,6 +36,9 @@
                lock_code,
                room_location,
                room_name,
+               safe_user_id,
+               safe_user_name,
+               safe_user_phone,
                user_id,
                create_by,
                creat_time
@@ -50,6 +56,9 @@
                t.lock_code,
                t.room_location,
                t.room_name,
+               t.safe_user_id,
+               t.safe_user_name,
+               t.safe_user_phone,
                t.user_id,
                t.create_by,
                t.creat_time
@@ -113,6 +122,10 @@
 
             <if test="roomName != null">room_name,</if>
 
+            <if test="safeUserId != null">safe_user_id,</if>
+            <if test="safeUserName != null">safe_user_name,</if>
+            <if test="safeUserPhone != null">safe_user_phone,</if>
+
             <if test="userId != null">user_id,</if>
 
             <if test="createBy != null">create_by,</if>
@@ -131,6 +144,9 @@
             <if test="lockCode != null">#{lockCode},</if>
             <if test="roomLocation != null">#{roomLocation},</if>
             <if test="roomName != null">#{roomName},</if>
+            <if test="safeUserId != null">#{safeUserId},</if>
+            <if test="safeUserName != null">#{safeUserName},</if>
+            <if test="safeUserPhone != null">#{safeUserPhone},</if>
             <if test="userId != null">#{userId},</if>
             <if test="createBy != null">#{createBy},</if>
             <if test="creatTime != null">#{creatTime},</if>
@@ -150,6 +166,9 @@
             <if test="lockCode != null">lock_code = #{lockCode},</if>
             <if test="roomLocation != null">room_location = #{roomLocation},</if>
             <if test="roomName != null">room_name = #{roomName},</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="userId != null">user_id = #{userId},</if>
             <if test="createBy != null">create_by = #{createBy},</if>
             <if test="creatTime != null">creat_time = #{creatTime},</if>