From 785ce007ce4b7b2119a99aacc95cefe9da09e32e Mon Sep 17 00:00:00 2001
From: jiazx0107@163.com <jiazx0107@163.com>
Date: 星期二, 04 七月 2023 16:49:09 +0800
Subject: [PATCH] 优化出入库逻辑,调整节点事件

---
 igds-core/src/main/java/com/ld/igds/io/impl/DefaultInoutApiServiceImpl.java                      |   12 
 igds-inout/src/main/java/com/ld/igds/inout/controller/InoutApiController.java                    |   22 
 igds-core/src/main/java/com/ld/igds/io/constant/ProtocolEnum.java                                |    1 
 igds-inout/src/main/java/com/ld/igds/inout/manager/InoutManager.java                             |  147 ++++----
 igds-web/src/main/resources/static/admin/inout/out-weight.js                                     |   30 
 igds-databoard/src/main/java/com/ld/igds/databoard/controller/DataboardController.java           |    3 
 igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/inout/BhznInoutService.java           |   63 +++
 igds-inout/src/main/java/com/ld/igds/inout/manager/InoutEventControlManager.java                 |  326 +++++++++++++++----
 igds-inout/src/main/java/com/ld/igds/inout/service/impl/InoutServiceImpl.java                    |   67 ----
 /dev/null                                                                                        |  140 --------
 igds-web/src/main/resources/static/admin/inout/inout-print.js                                    |   16 
 igds-core/src/main/java/com/ld/igds/inout/ApiInoutService.java                                   |   25 +
 igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/inout/package-info.java               |    6 
 igds-web/src/main/java/com/ld/igds/IgdsApplication.java                                          |    2 
 igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/grainv1/RemoteGrainV1ServiceImpl.java |    2 
 igds-inout/src/main/java/com/ld/igds/inout/manager/InoutCommonManager.java                       |    5 
 igds-core/src/main/java/com/ld/igds/inout/dto/ApiInoutData.java                                  |    2 
 igds-inout/src/main/java/com/ld/igds/inout/service/InoutService.java                             |   18 -
 igds-inout/src/main/java/com/ld/igds/inout/controller/InoutController.java                       |   20 
 19 files changed, 479 insertions(+), 428 deletions(-)

diff --git a/igds-core/src/main/java/com/ld/igds/inout/ApiInoutService.java b/igds-core/src/main/java/com/ld/igds/inout/ApiInoutService.java
index de009e3..b3f9547 100644
--- a/igds-core/src/main/java/com/ld/igds/inout/ApiInoutService.java
+++ b/igds-core/src/main/java/com/ld/igds/inout/ApiInoutService.java
@@ -1,6 +1,7 @@
 package com.ld.igds.inout;
 
 import com.ld.igds.inout.dto.ApiInoutData;
+import com.ld.igds.inout.dto.InoutData;
 
 
 /**
@@ -35,7 +36,6 @@
      */
     ApiInoutData getPlateNum(ApiInoutData param);
 
-
     /**
      * 杞︾墝璇嗗埆鍒濆鍖�
      *
@@ -46,7 +46,7 @@
 
 
     /**
-     * 闂告満鎺у埗-actionCode鍜� deviceId
+     * 闂告満鎺у埗
      *
      * @param param
      * @return
@@ -55,23 +55,30 @@
 
 
     /**
-     * 璇煶鎾斁--杩滅▼璋冪敤璇煶鎾斁
+     * 绾㈣矾鐏帶鍒�
      *
-     * @param param actionCode 鍜� msg涓嶅彲涓虹┖
+     * @param param
      * @return
      */
-    String noticeRadio(ApiInoutData param);
+    String lightControl(ApiInoutData param);
+
+
+    /**
+     * 杩滅▼璇煶鎾姤
+     *
+     * @param param
+     * @return
+     */
+    String noticeRadio(ApiInoutData param, InoutData data);
 
 
     /**
      * LED灞忓箷鎺ㄩ�佷俊鎭�
      *
-     * @param param actionCode 鍜� msg涓嶅彲涓虹┖
+     * @param param
      * @return
      */
-    String noticeLed(ApiInoutData param);
-
-
+    String noticeLed(ApiInoutData param, InoutData data);
 
 
 }
diff --git a/igds-core/src/main/java/com/ld/igds/inout/dto/ApiInoutData.java b/igds-core/src/main/java/com/ld/igds/inout/dto/ApiInoutData.java
index 10168ff..52ba697 100644
--- a/igds-core/src/main/java/com/ld/igds/inout/dto/ApiInoutData.java
+++ b/igds-core/src/main/java/com/ld/igds/inout/dto/ApiInoutData.java
@@ -86,7 +86,7 @@
     //绉伴噸淇℃伅
     private double weight = 0.0;
 
-    //鍔ㄤ綔缂栫爜锛屼緥濡傚紑闂告満-鍏抽椄鏈虹瓑
+    //鍔ㄤ綔缂栫爜锛�0=鍏抽棴/绾㈢伅锛�1=鎵撳紑/璺伅
     private String actionCode;
 
     //鍔ㄤ綔缂栫爜锛岃澶囩紪鍙�
diff --git a/igds-core/src/main/java/com/ld/igds/io/constant/ProtocolEnum.java b/igds-core/src/main/java/com/ld/igds/io/constant/ProtocolEnum.java
index 99f2dc8..6384c63 100644
--- a/igds-core/src/main/java/com/ld/igds/io/constant/ProtocolEnum.java
+++ b/igds-core/src/main/java/com/ld/igds/io/constant/ProtocolEnum.java
@@ -30,6 +30,7 @@
     TCP_BHZH_GRAIN_FM_V1("TCP_BHZH_GRAIN_FM_V1", "閭︽捣鏅鸿兘鏃犵嚎涓绘満鐗圴1"),
     TCP_BHZH_GRAIN_V2("TCP_BHZH_GRAIN_V2", "閭︽捣鏅鸿兘鏈夌嚎鐗圴2"),
     TCP_BHZH_VERB_V2("TCP_BHZH_VERB_V2", "閭︽捣鎺у埗鏌滄櫤鑳芥湁绾跨増V2"),
+    TCP_BHZH_INOTU_V1("TCP_BHZH_INOTU_V1", "閭︽捣鏅鸿兘鍑哄叆搴撴帶鍒跺櫒鍗忚"),
     FZZY_OPENAPI_HTTP("FZZY_OPENAPI_HTTP", "椋庢鑷磋繙API-HTTP鍗忚");
     private String code;
     private String msg;
diff --git a/igds-core/src/main/java/com/ld/igds/io/impl/DefaultInoutApiServiceImpl.java b/igds-core/src/main/java/com/ld/igds/io/impl/DefaultInoutApiServiceImpl.java
index 4eec8ec..616e00f 100644
--- a/igds-core/src/main/java/com/ld/igds/io/impl/DefaultInoutApiServiceImpl.java
+++ b/igds-core/src/main/java/com/ld/igds/io/impl/DefaultInoutApiServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.ld.igds.inout.dto.ApiInoutData;
 import com.ld.igds.inout.ApiInoutService;
+import com.ld.igds.inout.dto.InoutData;
 import com.ld.igds.io.constant.ProtocolEnum;
 import org.springframework.stereotype.Repository;
 
@@ -14,6 +15,11 @@
     @Override
     public String getProtocol() {
         return ProtocolEnum.TCP_DEFAULT.getCode();
+    }
+
+    @Override
+    public ApiInoutData getIcCardNum(ApiInoutData param) {
+        return null;
     }
 
     @Override
@@ -32,17 +38,17 @@
     }
 
     @Override
-    public String noticeRadio(ApiInoutData param) {
+    public String lightControl(ApiInoutData param) {
         return null;
     }
 
     @Override
-    public String noticeLed(ApiInoutData param) {
+    public String noticeRadio(ApiInoutData param, InoutData data) {
         return null;
     }
 
     @Override
-    public ApiInoutData getIcCardNum(ApiInoutData param) {
+    public String noticeLed(ApiInoutData param, InoutData data) {
         return null;
     }
 
diff --git a/igds-databoard/src/main/java/com/ld/igds/databoard/controller/DataboardController.java b/igds-databoard/src/main/java/com/ld/igds/databoard/controller/DataboardController.java
index 2ef17de..9dd246d 100644
--- a/igds-databoard/src/main/java/com/ld/igds/databoard/controller/DataboardController.java
+++ b/igds-databoard/src/main/java/com/ld/igds/databoard/controller/DataboardController.java
@@ -42,6 +42,7 @@
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
+import javax.annotation.Resource;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -305,7 +306,7 @@
 
         inoutCommonManager.initInoutScreen(param.getCompanyId(),param.getDeptId());
 
-        return new PageResponse<String>(RespCodeEnum.CODE_0000.getCode(), "鎴愬姛锛�");
+        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎴愬姛锛�");
     }
 
     /**
diff --git a/igds-inout/src/main/java/com/ld/igds/inout/controller/InoutApiController.java b/igds-inout/src/main/java/com/ld/igds/inout/controller/InoutApiController.java
index 32498d0..c888d5d 100644
--- a/igds-inout/src/main/java/com/ld/igds/inout/controller/InoutApiController.java
+++ b/igds-inout/src/main/java/com/ld/igds/inout/controller/InoutApiController.java
@@ -5,7 +5,7 @@
 import com.ld.igds.data.SnapImgDto;
 import com.ld.igds.inout.dto.ApiInoutData;
 import com.ld.igds.inout.dto.InoutCameraDto;
-import com.ld.igds.inout.manager.InoutDeviceManager;
+import com.ld.igds.inout.manager.InoutEventControlManager;
 import com.ld.igds.models.InoutConf;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.web.bind.annotation.*;
@@ -25,7 +25,7 @@
 public class InoutApiController {
 
     @Resource
-    private InoutDeviceManager inoutDeviceManager;
+    private InoutEventControlManager inoutEventControl;
 
     /**
      * 鑾峰彇杞︾墝璇嗗埆淇℃伅
@@ -36,8 +36,8 @@
     @ResponseBody
     @RequestMapping("/get-plateNum")
     public PageResponse<ApiInoutData> getPlateNum(@RequestBody ApiInoutData param) {
-    	
-    	if (null == param.getIp()) {
+
+        if (null == param.getIp()) {
             return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), "鍑哄叆搴撻厤缃腑娌℃湁閰嶇疆濡傚叆鐧昏鐨勮溅鐗岃瘑鍒�");
         }
 
@@ -45,7 +45,7 @@
             return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), "褰撳墠杞︾墝璇嗗埆鏈厤缃�氳鍗忚锛屾棤娉曟墽琛�");
         }
 
-        param = inoutDeviceManager.getPlateNum(param);
+        param = inoutEventControl.getPlateNum(param);
 
         if (StringUtils.isEmpty(param.getErrorMsg())) {
             return new PageResponse<>(RespCodeEnum.CODE_0000, param);
@@ -72,7 +72,7 @@
             return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), "鍑哄叆搴撻厤缃腑娌℃湁閰嶇疆鏅烘収鍗′俊鎭�");
         }
 
-        param = inoutDeviceManager.getIcCardNum(param);
+        param = inoutEventControl.getIcCardNum(param);
 
         if (StringUtils.isEmpty(param.getErrorMsg())) {
             return new PageResponse<>(RespCodeEnum.CODE_0000, param);
@@ -90,7 +90,7 @@
     public @ResponseBody
     PageResponse<InoutCameraDto> inoutVideoPlay(@RequestBody InoutCameraDto param) {
         param.setErrorMsg(null);
-        param = inoutDeviceManager.inoutVideoPlay(param);
+        param = inoutEventControl.inoutVideoPlay(param);
 
         if (StringUtils.isEmpty(param.getErrorMsg())) {
             return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎴愬姛", param);
@@ -108,7 +108,7 @@
     public @ResponseBody
     PageResponse<String> keepLive(@RequestBody InoutCameraDto param) {
 
-        String msg = inoutDeviceManager.videoKeepLive(param);
+        String msg = inoutEventControl.videoKeepLive(param);
 
         return new PageResponse<>(RespCodeEnum.CODE_0000, msg);
     }
@@ -124,7 +124,7 @@
     public @ResponseBody
     PageResponse<SnapImgDto> cutImg(@RequestBody SnapImgDto param) {
 
-        param = inoutDeviceManager.snapImg(param);
+        param = inoutEventControl.snapImg(param);
 
         return new PageResponse<>(RespCodeEnum.CODE_0000, param);
     }
@@ -149,7 +149,7 @@
         view.addObject("length", length);
         view.addObject("width", width);
 
-        InoutConf inoutConf = inoutDeviceManager.getInoutConf(id);
+        InoutConf inoutConf = inoutEventControl.getInoutConf(id);
         view.addObject("data", inoutConf);
 
         view.setViewName("admin/inout/video-hik");
@@ -167,7 +167,7 @@
     public @ResponseBody
     PageResponse<String> noticeWeightDone(@RequestBody ApiInoutData param) {
 
-        String msg = inoutDeviceManager.noticeWeightDone(param);
+        String msg = inoutEventControl.noticeWeightDone(param);
 
         return new PageResponse<>(RespCodeEnum.CODE_0000, msg);
     }
diff --git a/igds-inout/src/main/java/com/ld/igds/inout/controller/InoutController.java b/igds-inout/src/main/java/com/ld/igds/inout/controller/InoutController.java
index a7629be..dfdc749 100644
--- a/igds-inout/src/main/java/com/ld/igds/inout/controller/InoutController.java
+++ b/igds-inout/src/main/java/com/ld/igds/inout/controller/InoutController.java
@@ -93,14 +93,14 @@
         InoutConf conf = inoutCommonManager.getInoutConf(listInoutConf, sort, InoutConstant.CONF_TYPE_10, InoutConstant.PROGRESS_REGISTER, 1);
         view.addObject("lprDto", conf);
 
-        //鍒濆鍖栬溅鐗岃瘑鍒�
-        inoutManager.initLpr(conf);
+        //鐧昏鍒濆鍖�
+        inoutManager.initInoutRegister(conf);
 
         view.setViewName("admin/inout/in-register");
         return view;
     }
-    
-    
+
+
     /**
      * 鎵︽牱椤甸潰
      *
@@ -405,7 +405,7 @@
         view.addObject("lprDto", conf);
 
         //鍒濆鍖栬溅鐗岃瘑鍒�
-        inoutManager.initLpr(conf);
+        inoutManager.initInoutRegister(conf);
 
         view.setViewName("admin/inout/out-register");
         return view;
@@ -663,8 +663,8 @@
     @RequestMapping("/submit-handle")
     @Transactional
     public PageResponse<InoutData> submitHandle(@RequestBody InoutData data) throws Exception {
-    	
-    	log.debug("-------------submitHandle------------------");
+
+        log.debug("-------------submitHandle------------------");
         return inoutManager.submitHandle(data);
     }
 
@@ -701,7 +701,7 @@
      */
     @RequestMapping("/submit-check")
     @Transactional
-    public PageResponse<InoutCheckData> submitCheck(@RequestBody InoutCheckData data)throws Exception {
+    public PageResponse<InoutCheckData> submitCheck(@RequestBody InoutCheckData data) throws Exception {
         return inoutManager.submitCheck(data);
     }
 
@@ -731,8 +731,6 @@
     }
 
 
-   
-
     /**
      * 鍒嗛〉鑾峰彇鎵︽牱鏁版嵁
      *
@@ -743,7 +741,6 @@
     public PageResponse<Page<InoutCheckData>> pageSampleData(@RequestBody InoutCheckParam param) {
         return inoutManager.pageSampleData(param);
     }
-
 
 
     /**
@@ -767,7 +764,6 @@
     public PageResponse<List<CheckItemData>> getCheckItem(@RequestBody InoutCheckParam param) {
         return inoutManager.getCheckItemData(param);
     }
-
 
 
     /**
diff --git a/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutCommonManager.java b/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutCommonManager.java
index 23e56bf..eae9542 100644
--- a/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutCommonManager.java
+++ b/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutCommonManager.java
@@ -30,6 +30,8 @@
     private DicTriggerService dicTriggerService;
     @Resource
     private InoutService inoutService;
+    @Resource
+    private InoutEventControlManager inoutEventControl;
 
     /**
      * 鑾峰彇鍑哄叆搴撶殑鏁翠釜娴佺▼淇℃伅
@@ -156,12 +158,11 @@
     public void initInoutScreen(String companyId, String deptId) {
         if (StringUtils.isEmpty(companyId)) return;
         if (StringUtils.isEmpty(deptId)) return;
-        inoutService.notifyToScreen(companyId, deptId, null);
+        inoutEventControl.initInoutScreen(companyId, deptId, null);
     }
 
     public List<InoutData> getListInoutCache(String deptId) {
         return inoutService.getListInoutCache(deptId);
-
     }
 
     public List<InoutData> getCompleteListInoutCache(String deptId) {
diff --git a/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutDeviceManager.java b/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutEventControlManager.java
similarity index 64%
rename from igds-inout/src/main/java/com/ld/igds/inout/manager/InoutDeviceManager.java
rename to igds-inout/src/main/java/com/ld/igds/inout/manager/InoutEventControlManager.java
index 81ce32e..c4c35af 100644
--- a/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutDeviceManager.java
+++ b/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutEventControlManager.java
@@ -5,22 +5,26 @@
 import com.ld.igds.camera.data.ApiCameraData;
 import com.ld.igds.camera.data.ApiCameraResp;
 import com.ld.igds.camera.data.ApiSnapReq;
+import com.ld.igds.constant.BizType;
 import com.ld.igds.data.SnapImgDto;
 import com.ld.igds.file.CoreFileService;
 import com.ld.igds.inout.ApiInoutManager;
-import com.ld.igds.inout.InoutConstant;
-import com.ld.igds.inout.dto.ApiInoutData;
-import com.ld.igds.inout.dto.InoutCameraDto;
-import com.ld.igds.inout.dto.InoutData;
 import com.ld.igds.inout.ApiInoutService;
+import com.ld.igds.inout.InoutConstant;
+import com.ld.igds.inout.dto.*;
+import com.ld.igds.inout.service.InoutService;
 import com.ld.igds.io.constant.ProtocolEnum;
 import com.ld.igds.m.service.InoutCommonService;
 import com.ld.igds.models.InoutConf;
 import com.ld.igds.models.SnapSer;
 import com.ld.igds.util.ContextUtil;
+import com.ld.igds.util.NumberUtil;
 import com.ld.igds.view.service.SnapSerService;
+import com.ld.igds.websocket.WebSocketPacket;
+import com.ld.igds.websocket.WebSocketServer;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
@@ -30,18 +34,22 @@
 
 
 /**
- * @Desc: 鍑哄叆搴撶浉鍏宠澶囨搷浣滐紝涓氬姟閫昏緫鍖呮嫭鎽勫儚澶存搷浣滐紝鍦扮锛屾墻鏍锋満绛夋墍鏈夎澶�
+ * @Desc: 鍑哄叆搴撹繃绋嬩腑锛岄拡瀵规祦绋嬬浉鍏崇殑璁惧鑱斿姩鎺у埗鍖呮嫭锛屽湴纾呫�佹墻鏍锋満銆佽鍗″櫒銆侀椄鏈恒�丩ED瀵规帴绛�
+ * <p>
+ * 娉ㄦ剰锛涘綋鍓嶇被涓簨浠剁被鏂规硶鍧囦娇鐢ㄥ紓姝ユ柟寮忓疄鐜�
  * @author: Andy
- * @update-time: 2022/11/24
+ * @update-time: 2023/7/4 閲嶆柊浼樺寲
  */
 @Slf4j
 @Component
-public class InoutDeviceManager {
+public class InoutEventControlManager {
 
     @Resource
     private SnapSerService snapSerService;
     @Resource
     private InoutCommonService inoutCommonService;
+    @Resource
+    private InoutService inoutService;
     @Resource
     private CoreFileService fileService;
     @Resource
@@ -50,6 +58,12 @@
     private ApiCameraManager apiCameraManager;
 
 
+    /**
+     * 椤甸潰鑾峰彇杞︾墝璇嗗埆
+     *
+     * @param param
+     * @return
+     */
     public ApiInoutData getPlateNum(ApiInoutData param) {
 
         //濡傛灉浣跨敤鐨勬槸鍦扮鎻掍欢鑾峰彇锛屽垯闇�瑕佽皟鏁磋澶囦负鍦扮鎻掍欢淇℃伅
@@ -61,68 +75,44 @@
                 return param;
             }
 
-            ApiInoutData pluginWeight = new ApiInoutData();
-            pluginWeight = param;
-            pluginWeight.setIp(conf.getIp());
-            pluginWeight.setPort(conf.getPort());
-            pluginWeight.setProtocol(conf.getProtocol());
 
-            return apiInoutManager.getApiService(param.getProtocol()).getPlateNum(pluginWeight);
+            param.setIp(conf.getIp());
+            param.setPort(conf.getPort());
+            param.setProtocol(conf.getProtocol());
+
+            return apiInoutManager.getApiService(param.getProtocol()).getPlateNum(param);
 
         }
-
 
         return apiInoutManager.getApiService(param.getProtocol()).getPlateNum(param);
     }
 
+
+    /**
+     * 鑾峰彇鏅烘収鍗$粨鏋�
+     *
+     * @param param
+     * @return
+     */
     public ApiInoutData getIcCardNum(ApiInoutData param) {
 
         return apiInoutManager.getApiService(param.getProtocol()).getIcCardNum(param);
     }
 
-    /**
-     * 鑾峰彇绉伴噸鎻掍欢閰嶇疆淇℃伅
-     *
-     * @param companyId
-     * @param deptId
-     * @param sort
-     * @param type
-     * @return
-     */
-    public InoutConf getInoutConf(String companyId, String deptId, String sort, String type) {
-
-        // 鑾峰彇鍑哄叆搴撻厤缃俊鎭�
-        List<InoutConf> listInoutConf = inoutCommonService.getCacheInoutConf(companyId, deptId);
-
-        if (null == listInoutConf) return null;
-
-        InoutConf result = null;
-
-        for (InoutConf conf : listInoutConf) {
-            if (sort.equals(conf.getSort()) && type.equals(conf.getType())) {
-                result = conf;
-                break;
-            }
-        }
-
-        if (null == result) return null;
-
-        return result;
-    }
-
 
     /**
-     * 鍒濆鍖栬溅鐗岃瘑鍒�
+     * 鍑哄叆搴撶櫥璁板垵濮嬪寲
      *
-     * @param conf
+     * @param lpr 杞︾墝璇嗗埆閰嶇疆淇℃伅
      */
-    public void initLpr(InoutConf conf) {
+    @Async
+    public void initInoutRegister(InoutConf lpr) {
 
-        if (null == conf) return;
+        if (null == lpr) return;
 
-        ApiInoutData lprData = new ApiInoutData(conf);
+        ApiInoutData lprData = new ApiInoutData(lpr);
 
-        apiInoutManager.getApiService(conf.getProtocol()).initLpr(lprData);
+        apiInoutManager.getApiService(lpr.getProtocol()).initLpr(lprData);
     }
 
 
@@ -157,34 +147,17 @@
     public SnapImgDto snapImg(SnapImgDto param) {
         try {
             InoutConf conf;
-
-            //鐧昏鏃跺�欐姄鎷�
-            if (InoutConstant.PROGRESS_REGISTER.equals(param.getProgress())) {
-                this.noticeGatewayAddWhitePlate(param);
-            }
-
-            //鐐瑰嚮绉伴噸瀹屾垚
-            if (InoutConstant.PROGRESS_WEIGHT_TAG.equals(param.getProgress())
-                    || InoutConstant.PROGRESS_WEIGHT_FULL.equals(param.getProgress()) ||
-                    InoutConstant.PROGRESS_WEIGHT_EMPTY.equals(param.getProgress())) {
-
-                this.noticeGatewayWeightInfo(param);
-            }
-
             SnapSer ser = snapSerService.getCacheByDeptId(param.getDeptId());
-
             if (StringUtils.isNotEmpty(param.getId1())) {
                 conf = inoutCommonService.getCacheInoutConf(param.getCompanyId(), param.getDeptId(), param.getId1());
                 param.setFileName1(this.snapImgByConf(conf, param, ser));
-                Thread.sleep(600);
+                Thread.sleep(500);
             }
-
             if (StringUtils.isNotEmpty(param.getId2())) {
                 conf = inoutCommonService.getCacheInoutConf(param.getCompanyId(), param.getDeptId(), param.getId2());
                 param.setFileName2(this.snapImgByConf(conf, param, ser));
-                Thread.sleep(600);
+                Thread.sleep(500);
             }
-
             if (StringUtils.isNotEmpty(param.getId3())) {
                 conf = inoutCommonService.getCacheInoutConf(param.getCompanyId(), param.getDeptId(), param.getId3());
                 param.setFileName3(this.snapImgByConf(conf, param, ser));
@@ -221,7 +194,7 @@
         apiData.setMsg("绉伴噸宸插畬鎴�");
 
 //        apiInoutManager.getApiService(apiData.getProtocol()).noticeWeightDone(apiData);
-        apiInoutManager.getApiService(apiData.getProtocol()).noticeRadio(apiData);
+      //  apiInoutManager.getApiService(apiData.getProtocol()).noticeRadio(apiData);
     }
 
     /**
@@ -426,17 +399,224 @@
         return null;
     }
 
+    /**
+     * 鍑哄叆搴撶櫥璁板畬鎴愯Е鍙戜簨浠讹紝榛樿涓哄紓姝ュ鐞�
+     *
+     * @param data
+     */
+    @Async
+    public void onInoutRegister(InoutData data) {
+
+        //DO Nothing
+    }
+
 
     /**
-     * 鏍规嵁鍑哄叆搴撲俊鎭紝鎺у埗鍑哄叆搴撴帶鍒跺櫒
+     * 鍑哄叆搴撶О閲嶅畬鎴愶紝浜嬩欢
      *
      * @param data
      * @param curProgress
      * @param nextProgress
      */
-    public void controlWeight(InoutData data, String curProgress, String nextProgress) {
+    @Async
+    public void onInoutWeight(InoutData data, String curProgress, String nextProgress) {
 
-        //TODO
+        //1銆侀�氱煡绉伴噸鏄剧ず灞�
+
+        //2銆佽闊抽�氱煡
+
+        //3銆佸紑闂告満
+
+        //4銆佸紑绾㈢豢鐏�
 
     }
+
+
+    /**
+     * 鍊间粨瀹屾垚锛屼簨浠�
+     *
+     * @param data
+     * @param curProgress
+     * @param nextProgress
+     */
+    @Async
+    public void onInoutHandle(InoutData data, String curProgress, String nextProgress) {
+
+        //DO Nothing
+    }
+
+
+    /**
+     * 鎵︽牱瀹屾垚锛屼簨浠�
+     *
+     * @param data
+     */
+    @Async
+    public void onInSimple(InoutCheckData data) {
+        //DO Nothing
+    }
+
+    /**
+     * 璐ㄦ瀹屾垚锛屼簨浠�
+     *
+     * @param data
+     * @param curProgress
+     * @param nextProgress
+     */
+    @Async
+    public void onInCheck(InoutCheckData data, String curProgress, String nextProgress) {
+        //1銆佽川妫�澶у睆鏄剧ず
+    }
+
+    /**
+     * 娴佺▼瀹屾垚锛屼簨浠�
+     *
+     * @param data
+     */
+    @Async
+    public void onInoutComplete(InoutData data) {
+        //DO Nothing
+    }
+
+    /**
+     * 鍒濆鍖栧ぇ灞�
+     *
+     * @param companyId 缁勭粐缂栫爜
+     * @param deptId    鍒嗗簱缂栫爜
+     * @param progress  娴佺▼鐜妭
+     */
+    @Async
+    public void initInoutScreen(String companyId, String deptId, String progress) {
+        if (null == WebSocketServer.contextOnLineMap.get(BizType.SCREEN
+                .getCode())) {
+            WebSocketServer.contextOnLineMap.put(BizType.SCREEN.getCode(),
+                    false);
+        }
+        if (null == WebSocketServer.contextOnLineMap.get(BizType.SCREEN_INOUT
+                .getCode())) {
+            WebSocketServer.contextOnLineMap.put(
+                    BizType.SCREEN_INOUT.getCode(), false);
+        }
+        if (null == WebSocketServer.contextOnLineMap.get(BizType.SCREEN_CHECK
+                .getCode())) {
+            WebSocketServer.contextOnLineMap.put(
+                    BizType.SCREEN_CHECK.getCode(), false);
+        }
+
+        if (WebSocketServer.contextOnLineMap.get(BizType.SCREEN.getCode())
+                || WebSocketServer.contextOnLineMap.get(BizType.SCREEN_INOUT
+                .getCode())
+                || WebSocketServer.contextOnLineMap.get(BizType.SCREEN_CHECK
+                .getCode())) {
+
+
+            // 鎺ㄩ�佸埌澶у睆
+            List<InoutData> curList = inoutService.getListInoutCache(deptId);
+
+            List<InoutData> completeList = inoutService.getCompleteListInoutCache(deptId);
+
+            notifyInoutScreen(companyId, deptId, curList, completeList);
+        }
+    }
+
+    private void notifyInoutScreen(String companyId, String deptId, List<InoutData> curList, List<InoutData> completeList) {
+        InoutSumDto dto = new InoutSumDto();
+        if (null != curList) {
+            for (InoutData data : curList) {
+                if (InoutConstant.TYPE_IN.equals(data.getType())) {
+                    dto.setInSumNum(dto.getInSumNum() + 1);
+                }
+                if (InoutConstant.TYPE_OUT.equals(data.getType())) {
+                    dto.setOutSumNum(dto.getOutSumNum() + 1);
+                }
+                dto.setCompanyId(companyId);
+                dto.setDeptId(deptId);
+            }
+        }
+
+        if (null != completeList) {
+            for (InoutData data : completeList) {
+                if (InoutConstant.TYPE_IN.equals(data.getType())) {
+                    dto.setInSumNum(dto.getInSumNum() + 1);
+                    dto.setInComplateNum(dto.getInComplateNum() + 1);
+                }
+                if (InoutConstant.TYPE_OUT.equals(data.getType())) {
+                    dto.setOutSumNum(dto.getOutSumNum() + 1);
+                    dto.setOutComplateNum(dto.getOutComplateNum() + 1);
+                }
+                dto.setCompanyId(data.getCompanyId());
+                dto.setDeptId(data.getDeptId());
+            }
+        }
+
+        // 璋冩暣灏佽
+        if (dto.getInSumNum() > 0) {
+            dto.setPerInComplate(dto.getInComplateNum() / Double.valueOf(dto.getInSumNum()));
+            dto.setPerInComplate(NumberUtil.keepPrecision(
+                    dto.getPerInComplate() * 100, 1));
+        }
+
+        if (dto.getOutSumNum() > 0) {
+            dto.setPerOutComplate(dto.getOutComplateNum() / Double.valueOf(dto.getOutSumNum()));
+            dto.setPerOutComplate(NumberUtil.keepPrecision(
+                    dto.getPerOutComplate() * 100, 1));
+        }
+
+        if (null == dto.getCompanyId()) {
+            dto.setCompanyId(ContextUtil.getDefaultCompanyId());
+        }
+
+        // 鎺ㄩ�佺患鍚堢鐞嗗ぇ灞�
+        WebSocketPacket packet = new WebSocketPacket();
+        packet.setBizId("IN_OUT_SUMMARY");
+        packet.setCompanyId(dto.getCompanyId());
+        packet.setDeptId(dto.getDeptId());
+        packet.setBizType(BizType.SCREEN.getCode());
+        packet.setData(dto);
+        WebSocketServer.sendByBizTag(packet);
+
+        // 鎺ㄩ�佸嚭鍏ュ簱澶у睆
+        dto.setCurList(curList);
+        dto.setComplateList(completeList);
+        packet.setBizType(BizType.SCREEN.getCode());
+        packet.setBizTag(WebSocketPacket.BIZ_TAG_SCREEN_INOUT);
+        WebSocketServer.sendByBizTag(packet);
+
+        // 鎺ㄩ�佸寲楠屽ぇ灞�
+        packet.setBizType(BizType.SCREEN.getCode());
+        packet.setBizTag(WebSocketPacket.BIZ_TAG_SCREEN_CHECK);
+        WebSocketServer.sendByBizTag(packet);
+    }
+
+    /**
+     * 鑾峰彇绉伴噸鎻掍欢閰嶇疆淇℃伅
+     *
+     * @param companyId
+     * @param deptId
+     * @param sort
+     * @param type
+     * @return
+     */
+    public InoutConf getInoutConf(String companyId, String deptId, String sort, String type) {
+
+        // 鑾峰彇鍑哄叆搴撻厤缃俊鎭�
+        List<InoutConf> listInoutConf = inoutCommonService.getCacheInoutConf(companyId, deptId);
+
+        if (null == listInoutConf) return null;
+
+        InoutConf result = null;
+
+        for (InoutConf conf : listInoutConf) {
+            if (sort.equals(conf.getSort()) && type.equals(conf.getType())) {
+                result = conf;
+                break;
+            }
+        }
+
+        if (null == result) return null;
+
+        return result;
+    }
+
+
 }
diff --git a/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutManager.java b/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutManager.java
index 9373ae5..bed9209 100644
--- a/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutManager.java
+++ b/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutManager.java
@@ -3,7 +3,6 @@
 import com.ld.igds.check.CheckStandardManager;
 import com.ld.igds.check.dto.CheckItemData;
 import com.ld.igds.check.dto.CheckUpdateResult;
-import com.ld.igds.common.CoreCommonService;
 import com.ld.igds.constant.RespCodeEnum;
 import com.ld.igds.data.Page;
 import com.ld.igds.data.PageResponse;
@@ -20,9 +19,7 @@
 import com.ld.igds.models.InoutSysConf;
 import com.ld.igds.util.ContextUtil;
 import com.ld.igds.util.DateUtil;
-
 import lombok.extern.slf4j.Slf4j;
-
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.time.DateFormatUtils;
 import org.apache.commons.lang3.time.DateUtils;
@@ -30,7 +27,6 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
@@ -49,13 +45,11 @@
     @Resource
     private CoreFileService fileService;
     @Resource
-    private CoreCommonService commonService;
-    @Resource
     private InoutCommonService inoutCommonService;
     @Resource
     private CheckStandardManager checkStandardManager;
     @Resource
-    private InoutDeviceManager inoutDeviceManager;
+    private InoutEventControlManager inoutEventControl;
 
     /**
      * 鐩存帴浠庢暟鎹簱鏌ヨ锛屼笉鑰冭檻淇℃伅鐘舵��
@@ -296,46 +290,6 @@
         return data;
     }
 
-    public PageResponse<InoutData> submitComplete(InoutData data)
-            throws Exception {
-
-        if (StringUtils.isEmpty(data.getId())
-                || StringUtils.isEmpty(data.getType())
-                || StringUtils.isEmpty(data.getProgress())) {
-
-            return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(),
-                    "娌℃湁鑾峰彇鍒拌溅杈嗕俊鎭��", data);
-        }
-
-        data.setUpdateTime(new Date());
-        if (null == data.getCompleteTime()) {
-            data.setCompleteTime(DateUtil.getNewByMinute(new Date(), 2));
-        }
-        if (null == data.getCompleteUser()) {
-            data.setCompleteUser(ContextUtil.getLoginUserCName());
-        }
-
-        // 璁剧疆娴佺▼鑺傜偣鐩存帴瀹屾垚
-        InoutParam param = new InoutParam();
-        param.setCompanyId(data.getCompanyId());
-        param.setId(data.getId());
-        param.setType(data.getType());
-        param.setDeptId(data.getDeptId());
-        param.setIntelCard(data.getIntelCard());
-        param.setUserId(data.getCompleteUser());
-        param.setDepotId(data.getDepotId());
-        param.setCompleteTime(new Date());
-        param.setProgress(InoutConstant.PROGRESS_RECORD);
-
-        String msg = inoutService.toComplete(param);
-
-        if (null != msg) {
-            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg);
-        }
-
-        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), null, data);
-    }
-
     /**
      * 鍗″洖鏀堕�昏緫澶勭悊
      *
@@ -374,6 +328,51 @@
 
         return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛",
                 data);
+    }
+
+
+    public PageResponse<InoutData> submitComplete(InoutData data)
+            throws Exception {
+
+        if (StringUtils.isEmpty(data.getId())
+                || StringUtils.isEmpty(data.getType())
+                || StringUtils.isEmpty(data.getProgress())) {
+
+            return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(),
+                    "娌℃湁鑾峰彇鍒拌溅杈嗕俊鎭��", data);
+        }
+
+        data.setUpdateTime(new Date());
+        if (null == data.getCompleteTime()) {
+            data.setCompleteTime(DateUtil.getNewByMinute(new Date(), 2));
+        }
+        if (null == data.getCompleteUser()) {
+            data.setCompleteUser(ContextUtil.getLoginUserCName());
+        }
+
+        // 璁剧疆娴佺▼鑺傜偣鐩存帴瀹屾垚
+        InoutParam param = new InoutParam();
+        param.setCompanyId(data.getCompanyId());
+        param.setId(data.getId());
+        param.setType(data.getType());
+        param.setDeptId(data.getDeptId());
+        param.setIntelCard(data.getIntelCard());
+        param.setUserId(data.getCompleteUser());
+        param.setDepotId(data.getDepotId());
+        param.setCompleteTime(new Date());
+        param.setProgress(InoutConstant.PROGRESS_RECORD);
+
+        String msg = inoutService.toComplete(param);
+
+        if (null != msg) {
+            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg);
+        }
+
+
+        // 娴佺▼瀹屾垚鏀朵簨浠�
+        inoutEventControl.onInoutComplete(data);
+
+        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), null, data);
     }
 
     /**
@@ -556,8 +555,13 @@
         return msg;
     }
 
-    public void initLpr(InoutConf conf) {
-        inoutDeviceManager.initLpr(conf);
+    /**
+     * 鍑哄叆搴撶櫥璁板垵濮嬪寲
+     *
+     * @param conf 杞︾墝璇嗗埆閰嶇疆淇℃伅
+     */
+    public void initInoutRegister(InoutConf conf) {
+        inoutEventControl.initInoutRegister(conf);
     }
 
     /**
@@ -567,8 +571,7 @@
      * @return
      * @throws Exception
      */
-    public PageResponse<InoutData> submitRegisterInout(InoutData data)
-            throws Exception {
+    public PageResponse<InoutData> submitRegisterInout(InoutData data) throws Exception {
 
         // 棣栧厛鍒ゆ柇娴佺▼涓槸鍚︽湁宸茬粡瀛樺湪鐨勮溅杈嗕俊鎭湭鎵ц瀹屾垚锛岀洿鎺ヤ粠鏁版嵁搴撲腑鏌ヨ
         InoutParam param = new InoutParam();
@@ -602,20 +605,20 @@
         String msg = inoutService.insertData(data);
 
         if (null != msg) {
-            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg,
-                    data);
+            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg, data);
         }
 
         // 鎵ц闄勪欢淇℃伅
-        fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(),
-                data.getId(), curProgress);
+        fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(), data.getId(), curProgress);
+
+        //鐧昏瀹屾垚浜嬩欢
+        inoutEventControl.onInoutRegister(data);
 
         return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛",
                 data);
     }
 
-    public PageResponse<InoutData> submitWeightIn(InoutData data)
-            throws Exception {
+    public PageResponse<InoutData> submitWeightIn(InoutData data) throws Exception {
         // 鑾峰彇绯荤粺鍙傛暟閰嶇疆
         InoutSysConf inoutSysConf = inoutCommonService.getCacheInoutSysConf(
                 data.getCompanyId(), data.getDeptId());
@@ -642,14 +645,12 @@
         }
 
         // 鎵ц闄勪欢淇℃伅
-        fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(),
-                data.getId(), curProgress);
+        fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(), data.getId(), curProgress);
 
-        // 绉伴噸瀹屾垚锛岃皟鐢ㄥ嚭鍏ュ簱鎺у埗閫昏緫澶勭悊
-        inoutDeviceManager.controlWeight(data, curProgress, nextProgress);
+        // 绉伴噸瀹屾垚浜嬩欢
+        inoutEventControl.onInoutWeight(data, curProgress, nextProgress);
 
-        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛",
-                data);
+        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛", data);
     }
 
     public PageResponse<InoutData> submitWeightOut(InoutData data)
@@ -680,11 +681,11 @@
         fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(),
                 data.getId(), curProgress);
 
-        // 绉伴噸鍚庢牴鎹綋鍓嶆祦绋嬬姸鎬佸拰涓嬩竴涓姸鎬侊紝閫氱煡绉伴噸鎺у埗鍣�
-        inoutDeviceManager.controlWeight(data, curProgress, nextProgress);
 
-        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛",
-                data);
+        // 绉伴噸瀹屾垚浜嬩欢
+        inoutEventControl.onInoutWeight(data, curProgress, nextProgress);
+
+        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛", data);
     }
 
     public PageResponse<InoutData> submitHandle(InoutData data)
@@ -715,6 +716,9 @@
 
         // 鎵ц闄勪欢淇℃伅
         fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(), data.getId(), curProgress);
+
+        // 鍊间粨瀹屾垚瑙﹀彂浜嬩欢
+        inoutEventControl.onInoutHandle(data, curProgress, nextProgress);
 
         return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛", data);
     }
@@ -784,6 +788,9 @@
         if (null != msg) {
             return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg);
         }
+
+        // 鎵︽牱瀹屾垚瑙﹀彂浜嬩欢
+        inoutEventControl.onInSimple(data);
 
         return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛");
     }
@@ -867,6 +874,10 @@
             return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg);
         }
 
+
+        // 璐ㄦ瀹屾垚瑙﹀彂浜嬩欢
+        inoutEventControl.onInCheck(data,curProgress,nextProgress);
+
         return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛");
     }
 
@@ -908,7 +919,7 @@
 
         try {
             List<CheckItemData> result = checkStandardManager.listCheckItem(
-                     param.getCompanyId(),param.getCheckId(),
+                    param.getCompanyId(), param.getCheckId(),
                     param.getFoodVariety());
 
             return new PageResponse<>(RespCodeEnum.CODE_0000, result);
diff --git a/igds-inout/src/main/java/com/ld/igds/inout/service/InoutService.java b/igds-inout/src/main/java/com/ld/igds/inout/service/InoutService.java
index 23e0fca..3d907db 100644
--- a/igds-inout/src/main/java/com/ld/igds/inout/service/InoutService.java
+++ b/igds-inout/src/main/java/com/ld/igds/inout/service/InoutService.java
@@ -132,16 +132,6 @@
      */
     InoutData getFromInoutCache(InoutParam param);
 
-
-    /**
-     * 鎺ㄩ�佸ぇ灞�
-     *
-     * @param companyId
-     * @param deptId
-     * @param progress  鍙互涓虹┖
-     */
-    void notifyToScreen(String companyId, String deptId, String progress);
-
     /**
      * 蹇�熷畬鎴愭祦绋嬩腑鐨勮鍗�
      *
@@ -149,7 +139,6 @@
      * @return
      */
     String quickComplete(InoutData data) throws Exception;
-
 
     /**
      * 缂撳瓨涓幏鍙栧畬鎴愮殑娴佹按
@@ -189,13 +178,6 @@
      * @param param
      */
     void delInoutDataByLossOver(InoutParam param);
-
-    /**
-     * 灏嗗寲楠岀粨鏋滃瓨鍏ョ紦瀛樹腑
-     *
-     * @param data
-     */
-    void setCheckCache(InoutData data);
 
     /**
      * 鑾峰彇鍑哄叆搴撴祦姘碔D搴忓彿
diff --git a/igds-inout/src/main/java/com/ld/igds/inout/service/impl/InoutServiceImpl.java b/igds-inout/src/main/java/com/ld/igds/inout/service/impl/InoutServiceImpl.java
index e56e76a..0b5efca 100644
--- a/igds-inout/src/main/java/com/ld/igds/inout/service/impl/InoutServiceImpl.java
+++ b/igds-inout/src/main/java/com/ld/igds/inout/service/impl/InoutServiceImpl.java
@@ -1,8 +1,6 @@
 package com.ld.igds.inout.service.impl;
 
 import com.bstek.dorado.data.entity.EntityUtils;
-import com.ld.igds.common.CoreCommonService;
-import com.ld.igds.constant.BizType;
 import com.ld.igds.constant.Constant;
 import com.ld.igds.constant.RedisConst;
 import com.ld.igds.data.CommonData;
@@ -19,7 +17,6 @@
 import com.ld.igds.util.ContextUtil;
 import com.ld.igds.util.DateUtil;
 import com.ld.igds.util.RedisUtil;
-import com.ld.igds.websocket.WebSocketServer;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.time.DateFormatUtils;
@@ -28,9 +25,6 @@
 
 import javax.annotation.Resource;
 import java.util.*;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.FutureTask;
 
 @Slf4j
 @Component
@@ -42,8 +36,6 @@
     private InoutCheckMapper inoutCheckMapper;
     @Resource
     private RedisUtil redisUtil;
-    @Resource
-    private CoreCommonService commonService;
 
     @Override
     public InoutData inoutProgressQuery(InoutParam param) throws Exception {
@@ -156,7 +148,7 @@
             if (EntityUtils.isEntity(data)) {
                 newData = new InoutData();
                 BeanUtils.copyProperties(data, newData, new String[]{"checkItems", "files"});
-            }else{
+            } else {
                 newData = data;
             }
 
@@ -516,16 +508,6 @@
         inoutMapper.deleteData(param);
     }
 
-    @Override
-    public void setCheckCache(InoutData data) {
-
-        String cacheKey = RedisConst.buildKey(data.getCompanyId(), data.getCheckId());
-
-        //鍖栭獙缁撴灉瀛樺叆缂撳瓨3澶�
-        redisUtil.set(cacheKey, data.getCheckItems(), 60 * 60 * 24 * 3);
-    }
-
-
     /**
      * 鍑哄叆搴撴祦绋婭D鍒涘缓 202001030001 202001030001
      *
@@ -626,53 +608,6 @@
         String key = this.buildInoutKey(deptId, InoutConstant.KEY_INOUT_COMPLETE_LIST, data.getType(), data.getId());
         //璁剧疆缂撳瓨鍒扮浜屽ぉ鍑屾櫒(璁$畻褰撳墠鏃堕棿鍒扮浜屽ぉ鍑屾櫒鐨勬椂闂村樊绉掓暟)
         redisUtil.set(key, data, DateUtil.getNowToNextDaySeconds());
-    }
-
-    /**
-     * 鎺ㄩ�佸埌澶у睆锛屽垽鏂彧鏈夊綋澶у睆鍦ㄧ嚎鏃跺�欐墠澶勭悊褰撳墠閫昏緫锛岄伩鍏嶉〉闈㈠崱椤匡紝璋冪敤瀛愪换鍔″畬鎴愭帹閫�
-     *
-     * @param companyId 缁勭粐缂栧彿
-     * @param deptId    鍒嗗簱缂栧彿
-     * @param progress  娴佽浆鑺傜偣
-     */
-    public void notifyToScreen(String companyId, String deptId, String progress) {
-
-        // 鎺ㄩ�佸埌澶у睆
-        List<InoutData> curList = this.getListInoutCache(deptId);
-
-        List<InoutData> completeList = this.getCompleteListInoutCache(deptId);
-
-
-        if (null == WebSocketServer.contextOnLineMap.get(BizType.SCREEN
-                .getCode())) {
-            WebSocketServer.contextOnLineMap.put(BizType.SCREEN.getCode(),
-                    false);
-        }
-        if (null == WebSocketServer.contextOnLineMap.get(BizType.SCREEN_INOUT
-                .getCode())) {
-            WebSocketServer.contextOnLineMap.put(
-                    BizType.SCREEN_INOUT.getCode(), false);
-        }
-        if (null == WebSocketServer.contextOnLineMap.get(BizType.SCREEN_CHECK
-                .getCode())) {
-            WebSocketServer.contextOnLineMap.put(
-                    BizType.SCREEN_CHECK.getCode(), false);
-        }
-
-        if (WebSocketServer.contextOnLineMap.get(BizType.SCREEN.getCode())
-                || WebSocketServer.contextOnLineMap.get(BizType.SCREEN_INOUT
-                .getCode())
-                || WebSocketServer.contextOnLineMap.get(BizType.SCREEN_CHECK
-                .getCode())) {
-
-
-            // 鍒涘缓涓�涓瓙浠诲姟杩涜鎺ㄩ�佷俊鎭�
-            FutureTask<String> futureTask = new FutureTask<>(new NotifyScreenTask(curList, completeList, deptId));
-
-            ExecutorService executorService = Executors.newCachedThreadPool();
-            executorService.submit(futureTask);
-            executorService.shutdown();
-        }
     }
 
     /**
diff --git a/igds-inout/src/main/java/com/ld/igds/inout/service/impl/NotifyScreenTask.java b/igds-inout/src/main/java/com/ld/igds/inout/service/impl/NotifyScreenTask.java
deleted file mode 100644
index 43d25c3..0000000
--- a/igds-inout/src/main/java/com/ld/igds/inout/service/impl/NotifyScreenTask.java
+++ /dev/null
@@ -1,140 +0,0 @@
-package com.ld.igds.inout.service.impl;
-
-import java.util.List;
-import java.util.concurrent.Callable;
-import com.ld.igds.constant.BizType;
-import com.ld.igds.inout.InoutConstant;
-import com.ld.igds.inout.dto.InoutData;
-import com.ld.igds.inout.dto.InoutSumDto;
-import com.ld.igds.util.ContextUtil;
-import com.ld.igds.util.NumberUtil;
-import com.ld.igds.websocket.WebSocketPacket;
-import com.ld.igds.websocket.WebSocketServer;
-
-/**
- * 鍒涘缓瀛愪换鍔★紝褰撳墠浠诲姟鐢ㄤ簬閫氱煡澶у睆
- * 
- * @author: andy.jia
- * @description:
- * @version:
- * @data:2020骞�6鏈�22鏃�
- *
- */
-public class NotifyScreenTask implements Callable<String> {
-
-	private List<InoutData> curList;
-	private List<InoutData> completeList;
-	
-	private String deptId;
-
-	public List<InoutData> getCurList() {
-		return curList;
-	}
-
-	public void setCurList(List<InoutData> curList) {
-		this.curList = curList;
-	}
-
-	public List<InoutData> getCompleteList() {
-		return completeList;
-	}
-
-	public void setCompleteList(List<InoutData> completeList) {
-		this.completeList = completeList;
-	}
-
-	public void setDeptId(String deptId) {
-		this.deptId = deptId;
-	}
-
-	public String getDeptId() {
-		return deptId;
-	}
-
-	public NotifyScreenTask() {
-		super();
-	}
-
-
-	public NotifyScreenTask(List<InoutData> curList,
-			List<InoutData> completeList,String deptId) {
-		super();
-		this.curList = curList;
-		this.completeList = completeList;
-		this.deptId = deptId;
-	}
-
-	// IN_OUT_SUMMARY
-	@Override
-	public String call() throws Exception {
-
-		InoutSumDto dto = new InoutSumDto();
-		if (null != curList) {
-			for (InoutData data : curList) {
-				if (InoutConstant.TYPE_IN.equals(data.getType())) {
-					dto.setInSumNum(dto.getInSumNum() + 1);
-				}
-				if (InoutConstant.TYPE_OUT.equals(data.getType())) {
-					dto.setOutSumNum(dto.getOutSumNum() + 1);
-				}
-				dto.setCompanyId(data.getCompanyId());
-				dto.setDeptId(data.getDeptId());
-			}
-		}
-
-		if (null != completeList) {
-			for (InoutData data : completeList) {
-				if (InoutConstant.TYPE_IN.equals(data.getType())) {
-					dto.setInSumNum(dto.getInSumNum() + 1);
-					dto.setInComplateNum(dto.getInComplateNum() + 1);
-				}
-				if (InoutConstant.TYPE_OUT.equals(data.getType())) {
-					dto.setOutSumNum(dto.getOutSumNum() + 1);
-					dto.setOutComplateNum(dto.getOutComplateNum() + 1);
-				}
-				dto.setCompanyId(data.getCompanyId());
-				dto.setDeptId(data.getDeptId());
-			}
-		}
-
-		// 璋冩暣灏佽
-		if (dto.getInSumNum() > 0) {
-			dto.setPerInComplate(dto.getInComplateNum() / Double.valueOf(dto.getInSumNum()));
-			dto.setPerInComplate(NumberUtil.keepPrecision(
-					dto.getPerInComplate() * 100, 1));
-		}
-
-		if (dto.getOutSumNum() > 0) {
-			dto.setPerOutComplate(dto.getOutComplateNum() / Double.valueOf(dto.getOutSumNum()));
-			dto.setPerOutComplate(NumberUtil.keepPrecision(
-					dto.getPerOutComplate() * 100, 1));
-		}
-
-		if (null == dto.getCompanyId()) {
-			dto.setCompanyId(ContextUtil.getDefaultCompanyId());
-		}
-
-		// 鎺ㄩ�佺患鍚堢鐞嗗ぇ灞�
-		WebSocketPacket packet = new WebSocketPacket();
-		packet.setBizId("IN_OUT_SUMMARY");
-		packet.setCompanyId(dto.getCompanyId());
-		packet.setDeptId(dto.getDeptId());
-		packet.setBizType(BizType.SCREEN.getCode());
-		packet.setData(dto);
-		WebSocketServer.sendByBizTag(packet);
-
-		// 鎺ㄩ�佸嚭鍏ュ簱澶у睆
-		dto.setCurList(curList);
-		dto.setComplateList(completeList);
-		packet.setBizType(BizType.SCREEN.getCode());
-		packet.setBizTag(WebSocketPacket.BIZ_TAG_SCREEN_INOUT);
-		WebSocketServer.sendByBizTag(packet);
-
-		// 鎺ㄩ�佸寲楠屽ぇ灞�
-		packet.setBizType(BizType.SCREEN.getCode());
-		packet.setBizTag(WebSocketPacket.BIZ_TAG_SCREEN_CHECK);
-		WebSocketServer.sendByBizTag(packet);
-
-		return "鍑哄叆搴撳ぇ灞忔暟鎹帹閫佸畬鎴愶紒锛�";
-	}
-}
diff --git a/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/grainv1/RemoteGrainV1ServiceImpl.java b/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/grainv1/RemoteGrainV1ServiceImpl.java
index fd347b0..16be4b2 100644
--- a/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/grainv1/RemoteGrainV1ServiceImpl.java
+++ b/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/grainv1/RemoteGrainV1ServiceImpl.java
@@ -26,8 +26,6 @@
     public static final String BEAN_ID = "bhznGrain.remoteGrainService";
 
     @Autowired
-    private CoreSerService coreSerService;
-    @Autowired
     private BhznGrainV1ServerEngine bhznGrainServerEngine;
 
     @Override
diff --git a/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/inout/BhznInoutService.java b/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/inout/BhznInoutService.java
new file mode 100644
index 0000000..2ce862e
--- /dev/null
+++ b/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/inout/BhznInoutService.java
@@ -0,0 +1,63 @@
+package com.ld.igds.protocol.bhzn.inout;
+
+import com.ld.igds.inout.ApiInoutService;
+import com.ld.igds.inout.dto.ApiInoutData;
+import com.ld.igds.inout.dto.InoutData;
+import com.ld.igds.io.constant.ProtocolEnum;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Desc: 閭︽捣鏅鸿兘鍑哄叆搴撴帶鍒舵帴鍙e疄鐜�
+ * @author: andy.jia
+ * @update-time: 2023/7/4 15:48
+ */
+@Component
+public class BhznInoutService implements ApiInoutService {
+
+    @Override
+    public String getProtocol() {
+        return ProtocolEnum.TCP_BHZH_INOTU_V1.getCode();
+    }
+
+    @Override
+    public ApiInoutData getIcCardNum(ApiInoutData param) {
+        param.setErrorMsg("褰撳墠鍗忚涓嶆敮鎸�");
+        return param;
+    }
+
+    @Override
+    public ApiInoutData getPlateNum(ApiInoutData param) {
+        param.setErrorMsg("褰撳墠鍗忚涓嶆敮鎸�");
+        return param;
+    }
+
+    @Override
+    public String initLpr(ApiInoutData param) {
+        return "褰撳墠鍗忚涓嶆敮鎸�";
+    }
+
+    @Override
+    public String gateControl(ApiInoutData param) {
+
+        //TODO
+        return null;
+    }
+
+    @Override
+    public String lightControl(ApiInoutData param) {
+        //TODO
+        return null;
+    }
+
+    @Override
+    public String noticeRadio(ApiInoutData param, InoutData data) {
+        //TODO
+        return null;
+    }
+
+    @Override
+    public String noticeLed(ApiInoutData param, InoutData data) {
+        //TODO
+        return null;
+    }
+}
diff --git a/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/inout/package-info.java b/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/inout/package-info.java
new file mode 100644
index 0000000..8da5b94
--- /dev/null
+++ b/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/inout/package-info.java
@@ -0,0 +1,6 @@
+/**
+ * 鍑哄叆搴撶浉鍏冲鎺�
+ */
+package com.ld.igds.protocol.bhzn.inout;
+
+
diff --git a/igds-web/src/main/java/com/ld/igds/IgdsApplication.java b/igds-web/src/main/java/com/ld/igds/IgdsApplication.java
index b6af387..8c17aaa 100644
--- a/igds-web/src/main/java/com/ld/igds/IgdsApplication.java
+++ b/igds-web/src/main/java/com/ld/igds/IgdsApplication.java
@@ -10,6 +10,7 @@
 import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
+import org.springframework.scheduling.annotation.EnableAsync;
 
 import java.util.LinkedHashSet;
 import java.util.Set;
@@ -19,6 +20,7 @@
  *
  * @author Andy
  */
+@EnableAsync
 @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
 @ComponentScan(basePackages = {"com.ld.license","com.ld.onvif"})
 public class IgdsApplication {
diff --git a/igds-web/src/main/resources/static/admin/inout/inout-print.js b/igds-web/src/main/resources/static/admin/inout/inout-print.js
index 1b2db0f..08073d9 100644
--- a/igds-web/src/main/resources/static/admin/inout/inout-print.js
+++ b/igds-web/src/main/resources/static/admin/inout/inout-print.js
@@ -16,12 +16,10 @@
         LODOP.PRINT_INIT("杩囩鍗�");
         //LODOP.SET_PRINT_PAGESIZE(1, 0, '90mm', "A4");
         LODOP.SET_PRINT_PAGESIZE(1, '210mm', '140mm', "A4");
-        //LODOP.SET_PRINT_PAGESIZE(3, 2100, '45', "A4");
         LODOP.ADD_PRINT_HTM(0, 0, "100%", "100%", htmlStr);
         //鎵撳嵃澶氫唤
         // LODOP.SET_PRINT_COPIES(3);
         LODOP.PREVIEW();
-        //LODOP.PRINT_DESIGN();
     }
 };
 
@@ -30,12 +28,16 @@
     var vcode = data.id;
     var checkId = data.checkId;
     var LODOP = getLodop();
-    LODOP.PRINT_INIT("娴嬭瘯");
-    LODOP.SET_PRINT_PAGESIZE(1,'70mm','50mm' ,'');
-    LODOP.ADD_PRINT_BARCODE(20,20,'67mm',80,"128A",checkId);
-    LODOP.SET_PRINT_STYLEA(0,"FontSize",18);
 
-    LODOP.SET_PRINTER_INDEX("鏉$爜鎵撳嵃鏈�");//鎸囧畾鏌愯櫄鎷熸墦鍗版満
+    LODOP.PRINT_INIT("");
+    LODOP.SET_PRINT_PAGESIZE(1,'80mm','60mm' ,'');
+
+    LODOP.ADD_PRINT_BARCODE(30,30,'70mm',80,"128A",checkId);
+    //LODOP.SET_PRINT_STYLEA(0,"ShowBarText",0);
+    LODOP.SET_PRINT_STYLEA(0,"FontSize",18);
+    
+    
+    LODOP.SET_PRINTER_INDEX("鏉$爜鎵撳嵃鏈�");//鎸囧畾鎵撳嵃鏈�
     LODOP.PREVIEW();
 };
 
diff --git a/igds-web/src/main/resources/static/admin/inout/out-weight.js b/igds-web/src/main/resources/static/admin/inout/out-weight.js
index ec1c9be..33fc9cc 100644
--- a/igds-web/src/main/resources/static/admin/inout/out-weight.js
+++ b/igds-web/src/main/resources/static/admin/inout/out-weight.js
@@ -618,21 +618,21 @@
     if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {
         curWeight = recordData.emptyWeight;
     }
-    var param = {
-        sort: $("#scaleName").val(),
-        weight: curWeight,
-        inoutProgress: recordData.progress,
-        deptId: recordData.deptId,
-        companyId: recordData.companyId,
-        plateNum:recordData.plateNum
-    };
-    $.ajax({
-        type: "POST",
-        url: "../../inout/api/notice-weight-done",
-        dataType: "json",
-        contentType: "application/json;charset=UTF-8",
-        data: JSON.stringify(param)
-    });
+    // var param = {
+    //     sort: $("#scaleName").val(),
+    //     weight: curWeight,
+    //     inoutProgress: recordData.progress,
+    //     deptId: recordData.deptId,
+    //     companyId: recordData.companyId,
+    //     plateNum:recordData.plateNum
+    // };
+    // $.ajax({
+    //     type: "POST",
+    //     url: "../../inout/api/notice-weight-done",
+    //     dataType: "json",
+    //     contentType: "application/json;charset=UTF-8",
+    //     data: JSON.stringify(param)
+    // });
 }
 
 

--
Gitblit v1.9.3