Quellcode durchsuchen

现场问题,四医大短信功能

liubo vor 3 Jahren
Ursprung
Commit
d8c5faaea3
18 geänderte Dateien mit 133 neuen und 102 gelöschten Zeilen
  1. 1 1
      zd-api/zd-api-system/src/main/java/com/zd/system/api/chemical/RemoteStockService.java
  2. 2 0
      zd-api/zd-api-system/src/main/java/com/zd/system/api/domain/InventoryTag.java
  3. 13 5
      zd-modules/zd-chemical/pom.xml
  4. 1 0
      zd-modules/zd-chemical/src/main/java/com/zd/chemical/ZdChemicalApplication.java
  5. 2 2
      zd-modules/zd-chemical/src/main/java/com/zd/chemical/controller/HxpAIOController.java
  6. 22 26
      zd-modules/zd-chemical/src/main/java/com/zd/chemical/controller/HxpStockController.java
  7. 10 10
      zd-modules/zd-chemical/src/main/java/com/zd/chemical/domain/vo/AioAlarmRecordVo.java
  8. 1 1
      zd-modules/zd-chemical/src/main/java/com/zd/chemical/mapper/HxpAlarmRecordMapper.java
  9. 1 3
      zd-modules/zd-chemical/src/main/java/com/zd/chemical/service/IHxpAlarmRecordService.java
  10. 1 2
      zd-modules/zd-chemical/src/main/java/com/zd/chemical/service/impl/HxpAlarmRecordServiceImpl.java
  11. 48 26
      zd-modules/zd-chemical/src/main/java/com/zd/chemical/service/impl/HxpStockServiceImpl.java
  12. 5 1
      zd-modules/zd-chemical/src/main/java/com/zd/chemical/util/SmsSydUtil.java
  13. 6 3
      zd-modules/zd-chemical/src/main/resources/mapper/chemical/HxpAlarmRecordMapper.xml
  14. 5 4
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/event/SubFunctionListener.java
  15. 3 1
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabSubjectManagerService.java
  16. 12 6
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/socket/runner/TCPServer.java
  17. 0 8
      zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/service/impl/SlApplyApprovalServiceImpl.java
  18. 0 3
      zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/service/impl/SlOpendoorApplyServiceImpl.java

+ 1 - 1
zd-api/zd-api-system/src/main/java/com/zd/system/api/chemical/RemoteStockService.java

@@ -37,6 +37,6 @@ public interface RemoteStockService {
     @GetMapping(value = "/sendSydSms")
     public R sendSydSms(@RequestParam(value = "content", required = true) String content,
                         @RequestParam(value = "purpose", required = true) Integer purpose,
-                        Long lockApplyId,
+                        @RequestParam(value = "lockApplyId") Long lockApplyId,
                         @RequestParam(value = "phones", required = true) @NotNull String... phones);
 }

+ 2 - 0
zd-api/zd-api-system/src/main/java/com/zd/system/api/domain/InventoryTag.java

@@ -2,12 +2,14 @@ package com.zd.system.api.domain;
 
 import com.zd.system.api.laboratory.domain.RemoteLabHardware;
 import lombok.Data;
+import lombok.ToString;
 
 /**
  *
  * @author Administrator
  */
 @Data
+@ToString
 public class InventoryTag {
 
     private String pc;

+ 13 - 5
zd-modules/zd-chemical/pom.xml

@@ -214,9 +214,9 @@
             <systemPath>${pom.basedir}/src/main/resources/libs/sms-syd/junit-4.8.1.jar</systemPath>
         </dependency>-->
 
-        <dependency>
-            <groupId>com.xuanwu</groupId>
-            <artifactId>postmsg-ump</artifactId>
+       <dependency>
+            <groupId>com.xuanwu.ump</groupId>
+            <artifactId>postmsg</artifactId>
             <version>5.3.0.0</version>
             <scope>system</scope>
             <systemPath>${pom.basedir}/src/main/resources/libs/sms-syd/postmsg-ump-5.3.0.0.jar</systemPath>
@@ -227,7 +227,7 @@
             <artifactId>protobuf-java</artifactId>
             <version>2.4.1</version>
             <scope>system</scope>
-            <systemPath>${pom.basedir}/src/main/resources/libs/sms-syd/protobuf-java-2.4.1.jar</systemPath>
+            <systemPath>${project.basedir}/src/main/resources/libs/sms-syd/protobuf-java-2.4.1.jar</systemPath>
         </dependency>
 
         <dependency>
@@ -248,13 +248,17 @@
 
         <dependency>
             <groupId>com.thoughtworks.xstream</groupId>
-            <artifactId>xstream</artifactId>
+            <artifactId>com.springsource.com.thoughtworks.xstream</artifactId>
+            <!--<groupId>com.thoughtworks.xstream</groupId>
+            <artifactId>com.springsource.com.thoughtworks.xstream</artifactId>-->
+
             <version>1.3.1</version>
             <scope>system</scope>
             <systemPath>${pom.basedir}/src/main/resources/libs/sms-syd/xstream-1.3.1.jar</systemPath>
         </dependency>
 
         <!-- 四医大短信依赖包 -->
+
     </dependencies>
 
     <build>
@@ -263,6 +267,10 @@
             <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
+                <configuration>
+                    <includeSystemScope>true</includeSystemScope>
+                    <fork>true</fork>
+                </configuration>
                 <executions>
                     <execution>
                         <goals>

+ 1 - 0
zd-modules/zd-chemical/src/main/java/com/zd/chemical/ZdChemicalApplication.java

@@ -12,6 +12,7 @@ import org.springframework.boot.ApplicationArguments;
 import org.springframework.boot.ApplicationRunner;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.ComponentScan;
 
 import java.util.Collections;
 import java.util.List;

+ 2 - 2
zd-modules/zd-chemical/src/main/java/com/zd/chemical/controller/HxpAIOController.java

@@ -268,10 +268,10 @@ public class HxpAIOController extends BaseController {
      */
     @PostMapping("/queryAlarmRecordList")
     @ApiOperation(value = "查询报警记录列表")
-    public TableDataInfo<List<HxpCabinetVo>> queryAlarmRecordList(@RequestBody AioAlarmRecordVo aioAlarmRecordVo) {
+    public TableDataInfo<List<AioAlarmRecordVo>> queryAlarmRecordList(@RequestBody AioAlarmRecordVo aioAlarmRecordVo) {
         aioAlarmRecordVo.setSubId(getSubIdByTerminalNum());
         startPage();
-        List<HxpCabinetVo> list = hxpAlarmRecordService.queryAlarmRecordList(aioAlarmRecordVo);
+        List<AioAlarmRecordVo> list = hxpAlarmRecordService.queryAlarmRecordList(aioAlarmRecordVo);
         return getDataTable(list);
     }
 

+ 22 - 26
zd-modules/zd-chemical/src/main/java/com/zd/chemical/controller/HxpStockController.java

@@ -1,41 +1,37 @@
 package com.zd.chemical.controller;
 
-import java.time.LocalDate;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.io.IOException;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.constraints.NotNull;
-
-import com.github.pagehelper.PageHelper;
-import com.zd.chemical.domain.vo.*;
+import com.zd.chemical.domain.HxpStock;
+import com.zd.chemical.domain.vo.HxpStockDetailVO;
+import com.zd.chemical.domain.vo.HxpStockJoinVO;
+import com.zd.chemical.domain.vo.HxpStockOutVO;
+import com.zd.chemical.domain.vo.HxpStockSearch;
+import com.zd.chemical.service.IHxpStockService;
 import com.zd.chemical.util.SmsSydUtil;
 import com.zd.common.core.domain.R;
 import com.zd.common.core.domain.per.PerFun;
 import com.zd.common.core.domain.per.PerPrefix;
 import com.zd.common.core.utils.SecurityUtils;
-import com.zd.common.security.service.TokenService;
-import com.zd.system.api.domain.InventoryTag;
-import com.zd.system.api.laboratory.domain.RemoteLabHardware;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.ibatis.annotations.Param;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import com.zd.common.response.ResultData;
+import com.zd.common.core.utils.poi.ExcelUtil;
+import com.zd.common.core.web.controller.BaseController;
+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.chemical.domain.HxpStock;
-import com.zd.chemical.service.IHxpStockService;
-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 com.zd.common.security.service.TokenService;
+import com.zd.system.api.domain.InventoryTag;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import com.zd.common.swagger.config.Knife4jConfiguration;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
-import com.zd.common.core.web.page.TableDataInfo;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.constraints.NotNull;
+import java.io.IOException;
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 
 /**
  * 库存管理Controller
@@ -233,7 +229,7 @@ public class HxpStockController extends BaseController {
     @GetMapping(value = "/sendSydSms")
     public R sendSydSms(@RequestParam(value = "content", required = true) String content,
                         @RequestParam(value = "purpose", required = true) Integer purpose,
-                        Long lockApplyId,
+                        @RequestParam(value = "lockApplyId") Long lockApplyId,
                         @RequestParam(value = "phones", required = true) @NotNull String... phones){
 
         try {

+ 10 - 10
zd-modules/zd-chemical/src/main/java/com/zd/chemical/domain/vo/AioAlarmRecordVo.java

@@ -93,8 +93,8 @@ public class AioAlarmRecordVo {
     @ApiModelProperty(value = "责任ID)")
     private String liableUserIds;
 
-//    @ApiModelProperty(value = "责任人姓名")
-//    private String liableUserNames;
+    @ApiModelProperty(value = "责任人姓名")
+    private String liableUserNames;
 //
 //    @ApiModelProperty(value = "责任人手机号码")
 //    private String liableUserPhones;
@@ -227,14 +227,6 @@ public class AioAlarmRecordVo {
         this.liableUserIds = liableUserIds;
     }
 
-//    public String getLiableUserNames() {
-//        return liableUserNames;
-//    }
-//
-//    public void setLiableUserNames(String liableUserNames) {
-//        this.liableUserNames = liableUserNames;
-//    }
-//
 //    public String getLiableUserPhones() {
 //        return liableUserPhones;
 //    }
@@ -266,4 +258,12 @@ public class AioAlarmRecordVo {
     public void setAdminNames(String adminNames) {
         this.adminNames = adminNames;
     }
+
+    public String getLiableUserNames() {
+        return liableUserNames;
+    }
+
+    public void setLiableUserNames(String liableUserNames) {
+        this.liableUserNames = liableUserNames;
+    }
 }

+ 1 - 1
zd-modules/zd-chemical/src/main/java/com/zd/chemical/mapper/HxpAlarmRecordMapper.java

@@ -63,7 +63,7 @@ public interface HxpAlarmRecordMapper
      */
     public int deleteHxpAlarmRecordByIds(Long[] ids);
 
-    List<HxpCabinetVo> queryAlarmRecordList(AioAlarmRecordVo aioAlarmRecordVo);
+    List<AioAlarmRecordVo> queryAlarmRecordList(AioAlarmRecordVo aioAlarmRecordVo);
 
     AioAlarmRecordVo queryAlarmRecordDetail(Long id);
 

+ 1 - 3
zd-modules/zd-chemical/src/main/java/com/zd/chemical/service/IHxpAlarmRecordService.java

@@ -5,8 +5,6 @@ import com.zd.chemical.domain.HxpAlarmRecord;
 import com.zd.chemical.domain.vo.AioAlarmRecordVo;
 import com.zd.chemical.domain.vo.HxpAlarmRecordSearch;
 import com.zd.chemical.domain.vo.HxpAlarmRecordVo;
-import com.zd.chemical.domain.vo.HxpCabinetVo;
-import com.zd.common.core.domain.R;
 
 /**
  * 化学品报警记录Service接口
@@ -64,7 +62,7 @@ public interface IHxpAlarmRecordService
      */
     public int deleteHxpAlarmRecordById(Long id);
 
-    List<HxpCabinetVo> queryAlarmRecordList(AioAlarmRecordVo aioAlarmRecordVo);
+    List<AioAlarmRecordVo> queryAlarmRecordList(AioAlarmRecordVo aioAlarmRecordVo);
 
     AioAlarmRecordVo queryAlarmRecordDetail(Long id);
 

+ 1 - 2
zd-modules/zd-chemical/src/main/java/com/zd/chemical/service/impl/HxpAlarmRecordServiceImpl.java

@@ -7,7 +7,6 @@ import cn.hutool.core.date.DateUtil;
 import com.zd.chemical.domain.vo.AioAlarmRecordVo;
 import com.zd.chemical.domain.vo.HxpAlarmRecordSearch;
 import com.zd.chemical.domain.vo.HxpAlarmRecordVo;
-import com.zd.chemical.domain.vo.HxpCabinetVo;
 import com.zd.chemical.mapper.HxpUserecordMapper;
 import com.zd.chemical.util.SmsSydUtil;
 import com.zd.common.core.domain.per.PerPrefix;
@@ -115,7 +114,7 @@ public class HxpAlarmRecordServiceImpl implements IHxpAlarmRecordService {
     }
 
     @Override
-    public List<HxpCabinetVo> queryAlarmRecordList(AioAlarmRecordVo aioAlarmRecordVo) {
+    public List<AioAlarmRecordVo> queryAlarmRecordList(AioAlarmRecordVo aioAlarmRecordVo) {
         return hxpAlarmRecordMapper.queryAlarmRecordList(aioAlarmRecordVo);
     }
 

+ 48 - 26
zd-modules/zd-chemical/src/main/java/com/zd/chemical/service/impl/HxpStockServiceImpl.java

@@ -95,7 +95,7 @@ public class HxpStockServiceImpl implements IHxpStockService {
     private HxpCabinetlockLogMapper hxpCabinetlockLogMapper;
     @Resource
     private RemoteNettyService remoteNettyService;
-    @Autowired
+    @Resource
     private SmsSydUtil smsSydUtil;
     /**
      * 查询库存管理
@@ -326,13 +326,18 @@ public class HxpStockServiceImpl implements IHxpStockService {
         HxpUserecord hxpUserecord = hxpUserecordMapper.selectByStockId(hxpStock.getId());
         if(hxpUserecord != null){
             logger.info("RFID 化学品正常使用中: " + JSONUtil.toJsonStr(hxpUserecord));
+            return false;
         }else {
             logger.error("RFID 检测到违规触发报警: " + JSONUtil.toJsonStr(hxpStock));
             //触发RFID警报
             RemoteLabHardware hardware = tag.getRemoteLabHardware();
+            boolean isAlarm = false;
             if (hardware!=null){
                 R<Boolean> alarm = remoteNettyService.alarm(hardware);//RFID设备报警
                 logger.info("==================>{},{}",alarm.getCode(),alarm.getMsg());
+                //isAlarm = true;
+            }else {
+                logger.info("==================> rfid 参数有误!"+ tag.toString());
             }
             // 如果非领用状态,做报警台账
             // 0.检测实验室声光报警器是否使用- 使用则直接调用触发- 否则跳过
@@ -344,16 +349,32 @@ public class HxpStockServiceImpl implements IHxpStockService {
                 safeUserId = subInfo.get("safeUserId")==null?"":String.valueOf(subInfo.get("safeUserId"));
             }
 
-            HxpAlarmRecord hxpAlarmRecord;
-            Integer dealTime = null;
+            String terminalNum = null;
+            Integer dealTime = 0;
             List<Map<String, Object>> terminalList = hxpSmartTerminalMapper.selectTerminalBySubId(8, hxpStock.getSubId());
             if(CollectionUtils.isEmpty(terminalList)){
                 logger.error("实验室【"+subName+"】ID" + hxpStock.getSubId() +"未设置或启用声光报警器!");
             }else {
                 Map<String, Object> smartTerminal = terminalList.get(0);
+                terminalNum = String.valueOf(smartTerminal.get("hardwareNum"));
+                dealTime = (Integer) smartTerminal.get("dealTime");
                 // 执行声光报警器动作触发
                 remoteLaboratoryService.controlByInside(Long.parseLong(smartTerminal.get("id")+"") , "01");
+                isAlarm = true;
+                // 控制响铃时长
+                if(smartTerminal.get("ringTime") != null){
+                    ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
+                    executorService.schedule(new Runnable() {
+                        @Override
+                        public void run() {
+                            remoteLaboratoryService.controlByInside(Long.parseLong(smartTerminal.get("id")+"") , "00");
+                        }
+                    }, Long.parseLong(smartTerminal.get("ringTime") + ""), TimeUnit.SECONDS);
+                }
+            }
 
+            HxpAlarmRecord hxpAlarmRecord;
+            if(isAlarm){
                 // 默认一个实验室只触发一个报警器
                 hxpAlarmRecord = new HxpAlarmRecord();
                 hxpAlarmRecord.setAlarmContent("未领用即携带化学品离开实验室【"+subName+"】," + "化学品("+hxpStock.getChemicalName()+"), 请尽快确认!");
@@ -362,26 +383,16 @@ public class HxpStockServiceImpl implements IHxpStockService {
                 hxpAlarmRecord.setAlarmMode(2);
                 hxpAlarmRecord.setAlarmTime(DateUtils.getNowDate());
                 hxpAlarmRecord.setSubId(hxpStock.getSubId());
-                hxpAlarmRecord.setTerminalNum(smartTerminal.get("hardwareNum") + "");
+                hxpAlarmRecord.setTerminalNum(terminalNum == null ? tag.getSerialNumber() : terminalNum);
                 hxpAlarmRecord.setHandlingStatus(1);
 
-                dealTime = (Integer) smartTerminal.get("dealTime");
                 hxpAlarmRecordMapper.insertHxpAlarmRecord(hxpAlarmRecord);
+            }
 
-                // TODO 报警通知演示临时通知给实验室管理员  phones
-                sendPhoneAlarm(hxpStock.getSubId(), subName, hxpStock.getChemicalName(), subInfo.get("phones") + "");
+            // 报警通知演示临时通知给实验室管理员  phones
+            sendPhoneAlarm(hxpStock.getSubId(), subName, hxpStock.getChemicalName(), subInfo.get("phones") + "");
 
-                // 控制响铃时长
-                if(smartTerminal.get("ringTime") != null){
-                    ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
-                    executorService.schedule(new Runnable() {
-                        @Override
-                        public void run() {
-                            remoteLaboratoryService.controlByInside(Long.parseLong(smartTerminal.get("id")+"") , "00");
-                        }
-                    }, Long.parseLong(smartTerminal.get("ringTime") + ""), TimeUnit.SECONDS);
-                }
-            }
+            cacheMap.put(rfidCode, DateUtils.getNowDate());
 
             // 系统通知 未领用即携带化学品离开实验室-实验室安全责任人
             Map<String, Object> msgData = new HashMap<>();
@@ -410,7 +421,6 @@ public class HxpStockServiceImpl implements IHxpStockService {
             // 2.最多五个步骤分别执行
             if(CollectionUtils.isNotEmpty(hxpAlarmConfigList)){
                 logger.error("实验室【"+subName+"】ID" + hxpStock.getSubId() +"执行用户短信通知!");
-                cacheMap.put(rfidCode, DateUtils.getNowDate());
 
                 Date date = DateUtil.offsetMinute(DateUtils.getNowDate(), Optional.ofNullable(dealTime).orElse(1));
 
@@ -434,7 +444,6 @@ public class HxpStockServiceImpl implements IHxpStockService {
             }
             return true;
         }
-        return false;
     }
 
     private void sendPhoneAlarm(Long subId, String subName, String chemicalName, String phones) {
@@ -445,8 +454,12 @@ public class HxpStockServiceImpl implements IHxpStockService {
                 logger.error("RFID触发电话报警失败:实验室【"+subName+"】管理员未配置手机号!");
                 return;
             }
+            to = Arrays.stream(to).distinct().toArray(String[]::new);
+
 
-            for (String s : to) {
+            // 判断四医大还是其他学校短信方案
+            String content;
+            if(phoneMode == 0){
                 HxpAlarmRecord hxpAlarmRecord = new HxpAlarmRecord();
                 hxpAlarmRecord.setAlarmContent("未领用即携带化学品离开实验室【"+subName+"】," + "化学品("+chemicalName+"),请尽快确认!");
                 hxpAlarmRecord.setAlarmType(2);
@@ -455,20 +468,29 @@ public class HxpStockServiceImpl implements IHxpStockService {
                 hxpAlarmRecord.setAlarmTime(DateUtils.getNowDate());
                 hxpAlarmRecord.setSubId(subId);
                 hxpAlarmRecord.setHandlingStatus(1);
-                hxpAlarmRecord.setLiableUserIds(s);
+                hxpAlarmRecord.setLiableUserIds(phones);
 
                 hxpAlarmRecordMapper.insertHxpAlarmRecord(hxpAlarmRecord);
-            }
 
-            // 判断四医大还是其他学校短信方案
-            String content;
-            if(phoneMode == 0){
                 content = "电话报警:" + subName + "的化学品" + chemicalName + "违规带离实验室,请尽快确认!";
                 AlarmEntrty alarmEntrty = new AlarmEntrty(Routes.NoticePush, to, content);
                 AjaxResult result = remoteAlarmService.send(alarmEntrty);
 
                 logger.error(JSONUtil.toJsonStr(result));
             }else if(phoneMode == 1){
+                for (String s : to) {
+                    HxpAlarmRecord hxpAlarmRecord = new HxpAlarmRecord();
+                    hxpAlarmRecord.setAlarmContent("未领用即携带化学品离开实验室【"+subName+"】," + "化学品("+chemicalName+"),请尽快确认!");
+                    hxpAlarmRecord.setAlarmType(2);
+                    hxpAlarmRecord.setAlarmMode(3);
+                    hxpAlarmRecord.setHasValid(1);
+                    hxpAlarmRecord.setAlarmTime(DateUtils.getNowDate());
+                    hxpAlarmRecord.setSubId(subId);
+                    hxpAlarmRecord.setHandlingStatus(1);
+                    hxpAlarmRecord.setLiableUserIds(s);
+
+                    hxpAlarmRecordMapper.insertHxpAlarmRecord(hxpAlarmRecord);
+                }
 
                 content = "【实验室安全系统】" + subName + "-实验人员未领用即携带化学品离开房间,发生时间:"
                         + DateUtil.format(DateUtil.date(), DateUtils.YYYY_MM_DD_HH_MM_SS)

+ 5 - 1
zd-modules/zd-chemical/src/main/java/com/zd/chemical/util/SmsSydUtil.java

@@ -13,6 +13,7 @@ import com.zd.common.core.domain.R;
 import com.zd.common.core.utils.DateUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
@@ -32,8 +33,11 @@ public class SmsSydUtil {
     // 发送密码 yfhzfGSJ
     private static Account account = new Account("djjx", "yfhzfGSJ");
 
+    @Value("${sms-syd.ip:127.0.0.1}")
     private static String SMS_IP =  "127.0.0.1";
+    @Value("${sms-syd.down-port:8090}")
     public static int DOWN_PORT = 8090;
+    @Value("${sms-syd.up-port:8188}")
     public static int UP_PORT = 8188;
 
     // 8090  下发端口   8188 拉取状态报告和上行
@@ -64,7 +68,7 @@ public class SmsSydUtil {
 
     private static MTPack buildDefaultSMSPack() {
         if(SmsSydUtil.mtPack == null){
-            mtPack = new MTPack();
+            MTPack mtPack = new MTPack();
             mtPack.setSendType(MTPack.SendType.MASS);
             mtPack.setMsgType(MTPack.MsgType.SMS);
             mtPack.setBizType(1);

+ 6 - 3
zd-modules/zd-chemical/src/main/resources/mapper/chemical/HxpAlarmRecordMapper.xml

@@ -70,8 +70,8 @@
         (SELECT dt.dept_name FROM sys_dept dt,lab_subject st WHERE dt.dept_id = st.dept_id AND st.id = ard.`sub_id`)
         alarmDeptName,
         (SELECT st.name FROM lab_subject st WHERE st.id = ard.`sub_id`) subName,
-        CASE WHEN ard.alarm_mode = 1 THEN (SELECT GROUP_CONCAT(nick_name,' ',phonenumber SEPARATOR '、') FROM sys_user WHERE FIND_IN_SET(user_id, ard.liable_user_ids))
-        ELSE ''
+        CASE WHEN ard.alarm_mode = 1 THEN (SELECT GROUP_CONCAT(nick_name) FROM sys_user WHERE FIND_IN_SET(user_id, ard.liable_user_ids))
+        ELSE (select GROUP_CONCAT(nick_name) FROM sys_user where FIND_IN_SET(user_id, st.safe_user_id))
         END liableUserName,
         ard.handling_time handlingTime,
         (SELECT ur.nick_name FROM sys_user ur WHERE ur.user_id = ard.handling_user_id) handlingUserName,
@@ -117,7 +117,10 @@
         select ar.*,
                s.dept_id,
                s.safe_user_id,
-               d.dept_name
+               d.dept_name,
+               CASE WHEN ar.alarm_mode = 1 THEN (SELECT GROUP_CONCAT(nick_name) FROM sys_user WHERE FIND_IN_SET(user_id, ar.liable_user_ids))
+                    ELSE (select GROUP_CONCAT(nick_name) FROM sys_user where FIND_IN_SET(user_id, s.safe_user_id))
+                   END liableUserNames
         from hxp_alarm_record ar
                  left join lab_subject s on ar.sub_id = s.id
                  left join sys_dept d on s.dept_id = d.dept_id

+ 5 - 4
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/event/SubFunctionListener.java

@@ -38,12 +38,13 @@ public class SubFunctionListener implements ApplicationListener <SubFunctionEven
 
         String num = subFunctionEvent.getSource();
         //根据编号获取实验室ID
-        Long cacheSubByGateway = labSensorService.getCacheSubByGateway(num);
-        if(cacheSubByGateway==null) return;
-        List<SensorFunctionStatus> list = labSubjectManagerService.querySenseFunctionBySubId(cacheSubByGateway);
+        Long subId = labSensorService.getCacheSubByGateway(num);
+        if(subId==null) return;
+//        List<SensorFunctionStatus> list = labSubjectManagerService.querySenseFunctionBySubId(subId);
+        List<SensorFunctionStatus> list = labSubjectManagerService.querySenseNewFunctionBySubId(subId);
         SubFunction subFunction= new SubFunction();
         subFunction.setFunctionStatuses(list);
-        subFunction.setSubId(cacheSubByGateway);
+        subFunction.setSubId(subId);
         subMessageSendManager.sendFunctionUpdateToCommon(subFunction);
     }
 }

+ 3 - 1
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabSubjectManagerService.java

@@ -675,7 +675,9 @@ public class LabSubjectManagerService {
     public List<SensorFunctionStatus> querySenseNewFunctionBySubId(Long subjectId) {
         List<LabSensor> labSensors = sensorMapper.selectSensorBySubIds(subjectId);
         updateLabHardwareFunctionStatuses(subjectId);
-        return getSensorNewFunctionStatuses(labSensors, subjectId);
+
+        return getSensorFunctionStatuses(labSensors, true);
+//        return getSensorNewFunctionStatuses(labSensors, subjectId);
     }
 
     /**

+ 12 - 6
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/socket/runner/TCPServer.java

@@ -1,11 +1,13 @@
 package com.zd.laboratory.socket.runner;
 
+import cn.hutool.json.JSONUtil;
 import com.zd.common.core.utils.SpringUtils;
 import com.zd.common.core.utils.StringUtils;
 import com.zd.laboratory.socket.constant.JXCTPacket;
 import com.zd.laboratory.socket.constant.SocketTypes;
 import com.zd.laboratory.socket.service.BaseRouter;
 import com.zd.laboratory.socket.service.SocketService;
+import com.zd.laboratory.socket.vo.TransmissionVo;
 import com.zd.laboratory.utils.CRCCHECK;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -216,13 +218,17 @@ public class TCPServer implements Runnable {
 //        Integer num = Integer.parseInt(str, Character.FORMAT);
 //        System.out.println(Integer.toBinaryString(num));
         // gb2312   gb18030
-        String out = TCPServer.bytesToHexString("二维码内容".getBytes("gbk"));
-        System.out.println(out);
-
-        String qrCode = "68 74 74 70 73 3A 2F 2F 75 2E 77 65 63 68 61 74 2E 63 6F 6D 2F 4D 46 77 41 75 6D 75 63 2D 41 6F 52 5F 4C 64 59 49 48 64 38 43 5F 45";
-        byte[] b = TCPServer.parseHexStr2Byte(qrCode.replaceAll(" ", ""));
+//        String out = TCPServer.bytesToHexString("二维码内容".getBytes("gbk"));
+//        System.out.println(out);
+//
+//
+//        String qrCode = "68 74 74 70 73 3A 2F 2F 75 2E 77 65 63 68 61 74 2E 63 6F 6D 2F 4D 46 77 41 75 6D 75 63 2D 41 6F 52 5F 4C 64 59 49 48 64 38 43 5F 45";
+//        byte[] b = TCPServer.parseHexStr2Byte(qrCode.replaceAll(" ", ""));
+//
+//        System.out.println(TCPServer.byte2hex(b));
 
-        System.out.println(TCPServer.byte2hex(b));
+        TransmissionVo transmissionVo = new TransmissionVo("fe dc 01 6b 55 65 61 6a 67 00 00 1f a0 03 00 10 00 00 01 2d 00 00 02 3a 00 01 88 08 00 00 00 00 00");
 
+        System.out.println(JSONUtil.toJsonStr(transmissionVo));
     }
 }

+ 0 - 8
zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/service/impl/SlApplyApprovalServiceImpl.java

@@ -1,32 +1,24 @@
 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;
 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.SlApplyApprovalMapper;
 import com.zd.smartlock.mapper.SlOpendoorApplyMapper;
 import com.zd.smartlock.mapper.SlSubjectRelationMapper;
-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.*;
 
 /**

+ 0 - 3
zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/service/impl/SlOpendoorApplyServiceImpl.java

@@ -51,9 +51,6 @@ public class SlOpendoorApplyServiceImpl implements ISlOpendoorApplyService {
     @Autowired
     private SlSubjectRelationMapper slSubjectRelationMapper;
 
-    /*@Resource
-    private SmsSydUtil smsSydUtil;*/
-
     @Autowired
     private RemoteStockService remoteStockService;