From b26b26e7170f4b86642176ac62955e57e1dc74a9 Mon Sep 17 00:00:00 2001
From: zyh <zyh@123>
Date: 星期五, 13 三月 2026 14:35:00 +0800
Subject: [PATCH] 人员入侵调用以及回调接口

---
 src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java |  369 ++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 324 insertions(+), 45 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
index 148e36d..ccc0db8 100644
--- a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -6,16 +6,19 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.mes.TransArrivalStation;
-import com.zy.asrs.entity.mes.TransInOutStationAllow;
 import com.zy.asrs.entity.mes.TransParent;
 import com.zy.asrs.entity.rcs.*;
 import com.zy.asrs.enums.RcsRetMethodEnum;
+import com.zy.asrs.mapper.BasDevpMapper;
 import com.zy.asrs.mapper.BlockStationMapper;
 import com.zy.asrs.mapper.BlockTaskMapper;
 import com.zy.asrs.service.*;
 import com.zy.common.utils.HttpHandler;
+import com.zy.common.utils.RedisUtil;
 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.Service;
 
 import javax.annotation.Resource;
@@ -29,13 +32,15 @@
 import java.net.URLConnection;
 import java.nio.charset.StandardCharsets;
 import java.util.*;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 
 @Slf4j
 @Service
 public class RcsServiceImpl implements RcsService {
 
+    @Value("${wms.address}")
+    private String WMS_ADDRESS;
+    @Value("${personIn.url}")
+    private String PERSON_URL;
     // 娴峰悍RCS鍦板潃
     @Value("${hik.url}")
     private String HIK_URL;
@@ -63,8 +68,15 @@
     @Resource
     private WrkMastService wrkMastService;
 
+    @Autowired
+    private RedisUtil redisUtil;
     @Resource
     private ApiLogService apiLogService;
+
+    private static final String IS_START_CHECK_INTRUSION = "intrusion:check";
+    private static final String IS_PERSON_INTRUSION = "intrusion:person";
+    private static final String LAST_INTRUSION_TIME = "intrusion:lastTime";
+    private static final String IS_BLOCK_AREA = "intrusion:block";
 
 
     // region 灏侀攣鍖洪�昏緫锛岀洰鍓嶅彧鏈変竴涓ぇ灏侀攣鍖猴紝浠诲姟鍏ㄩ儴杞埌婊戝潡搴撳鐞嗭紝鎴栫洿鎺ュ啓鍒版粦鍧楀簱
@@ -95,40 +107,40 @@
      */
     public void managerBlock() {
 
-       try {
-           BlockTask firstTask = blockTaskMapper.findTop();
-           if (firstTask == null) {
-               return;
-           }
-           EntityWrapper<BlockStation> wrapper = new EntityWrapper<>();
-           wrapper.eq("block_no", firstTask.getBlockNo());
-           List<BlockStation> stations = blockStationMapper.selectList(wrapper);
-           if (!stations.isEmpty()) {
-               boolean locked = false;
-               for (BlockStation station : stations) {
-                   // 鍙厑璁�1涓巶瀹惰澶囪繘鍏ュ皝閿佸尯锛宻tatus鐘舵�侊細0 绌洪棽锛�1 娴峰悍灏侀攣涓紱2 鍗庢檽灏侀攣涓紱-1 寮傚父锛�
-                   if (station.getStatus() > 0 && !station.getStatus().equals(firstTask.getAgvFactory())) {
-                       locked = true;
-                       break;
-                   }
-               }
+        try {
+            BlockTask firstTask = blockTaskMapper.findTop();
+            if (firstTask == null) {
+                return;
+            }
+            EntityWrapper<BlockStation> wrapper = new EntityWrapper<>();
+            wrapper.eq("block_no", firstTask.getBlockNo());
+            List<BlockStation> stations = blockStationMapper.selectList(wrapper);
+            if (!stations.isEmpty()) {
+                boolean locked = false;
+                for (BlockStation station : stations) {
+                    // 鍙厑璁�1涓巶瀹惰澶囪繘鍏ュ皝閿佸尯锛宻tatus鐘舵�侊細0 绌洪棽锛�1 娴峰悍灏侀攣涓紱2 鍗庢檽灏侀攣涓紱-1 寮傚父锛�
+                    if (station.getStatus() > 0 && !station.getStatus().equals(firstTask.getAgvFactory())) {
+                        locked = true;
+                        break;
+                    }
+                }
 
-               if (!locked) {
-                   // 灏侀攣鐘舵��
-                   int success = blockStationMapper.addByBlockNo(firstTask.getBlockNo(), firstTask.getAgvFactory());
-                   if (success > 0) {
-                       // 閫氱煡RCS
-                       RcsEqptNotify notify = new RcsEqptNotify();
-                       notify.setEqptCode(firstTask.getBlockNo());
-                       notify.setTaskCode(firstTask.getTaskCode());
-                       notify.setActionStatus("1");
-                       notifyEqpt(notify, firstTask.getAgvFactory());
-                   }
-               }
-           }
-       } catch (Exception e) {
-           log.error("绠$悊灏侀攣鍖哄紓甯�", e);
-       }
+                if (!locked) {
+                    // 灏侀攣鐘舵��
+                    int success = blockStationMapper.addByBlockNo(firstTask.getBlockNo(), firstTask.getAgvFactory());
+                    if (success > 0) {
+                        // 閫氱煡RCS
+                        RcsEqptNotify notify = new RcsEqptNotify();
+                        notify.setEqptCode(firstTask.getBlockNo());
+                        notify.setTaskCode(firstTask.getTaskCode());
+                        notify.setActionStatus("1");
+                        notifyEqpt(notify, firstTask.getAgvFactory());
+                    }
+                }
+            }
+        } catch (Exception e) {
+            log.error("绠$悊灏侀攣鍖哄紓甯�", e);
+        }
     }
 
     /**
@@ -339,6 +351,9 @@
         return 0;
     }
 
+    @Resource
+    private BasDevpMapper basDevpMapper;
+
     /**
      * 2.2.1浠诲姟鎵ц鍥為
      * 鍘傚锛氭捣閲忋�佸崕鏅�
@@ -387,6 +402,100 @@
 //                        JSONObject taskMemo = JSONObject.parseObject(task.getMemo());
 //                        mesService.outFeedbackByTuo(taskMemo.getString("OrderNo"), task);
                     } break;
+                    case APPLY_PUT: { // 鏀捐揣鐢宠
+                        String staNo = task.getStaNo();
+                        BasDevp basDevp = basDevpMapper.selectById(staNo);
+                        if(basDevp.getAutoing().equals("Y") && basDevp.getLoading().equals("N") && basDevp.getWrkNo() == 0) {
+
+                            // 205 瑙﹀彂鏉$爜鎵弿
+                            if (staNo.equals("205")) {
+                                Map<String,Object> params = new HashMap<>();
+                                params.put("siteId",staNo);
+                                String response = new HttpHandler.Builder()
+                                        .setUri(WCS_URL)
+                                        .setPath("/site/startScan")
+                                        .setParams(params)
+                                        .build()
+                                        .doPost();
+                                log.info("{}鏀捐揣鐢宠缁檞cs涓嬪彂鏉$爜鎵弿鍘熷杩斿洖:{}",staNo,response);
+                            }
+
+                            // 婊¤冻鏀捐揣鏉′欢锛岃皟鐢≧CS浠诲姟缁х画鎵ц
+                            RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+                            rcsTaskContinue.setRobotTaskCode(robotTaskCode);
+                            rcsTaskContinue.setTriggerType("TASK");
+                            rcsTaskContinue.setTriggerCode(robotTaskCode);
+                            int success = continueTask(rcsTaskContinue, 1);
+                            if(success != 1) {
+                                rcsReturn.setCode("Err_RobotCodeNotMatch");
+                                rcsReturn.setMessage("缁х画鎵ц澶辫触");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
+                                return rcsReturn;
+                            }
+                        }else {
+                            log.warn("绔欑偣锛歿}锛屼笉婊¤冻鏀捐揣鏉′欢锛岃嚜鍔細{}锛屾棤鐗╋細{}锛屼换鍔″彿锛歿}",staNo,basDevp.getAutoing(),basDevp.getLoading(),basDevp.getWrkNo());
+                            rcsReturn.setCode("Err_RobotCodeNotMatch");
+                            rcsReturn.setMessage("绔欑偣涓嶆弧瓒虫斁璐ф潯浠�");
+                            JSONObject data = new JSONObject();
+                            data.put("robotTaskCode", robotTaskCode);
+                            rcsReturn.setData(data);
+                            return rcsReturn;
+                        }
+                    } break;
+                    case APPLY_PICK: { // 鍙栬揣鐢宠
+                        String staNo = task.getSourceStaNo();
+                        BasDevp basDevp = basDevpMapper.selectById(staNo);
+                        if(basDevp.getAutoing().equals("Y") && basDevp.getLoading().equals("Y")
+                                && basDevp.getWrkNo()  > 0 && basDevp.getWrkNo() <= 9990) {
+                            // 婊¤冻鏀捐揣鏉′欢锛岃皟鐢≧CS浠诲姟缁х画鎵ц
+                            RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+                            rcsTaskContinue.setRobotTaskCode(robotTaskCode);
+                            rcsTaskContinue.setTriggerType("TASK");
+                            rcsTaskContinue.setTriggerCode(robotTaskCode);
+                            int success = continueTask(rcsTaskContinue, 1);
+                            if(success != 1) {
+                                rcsReturn.setCode("Err_RobotCodeNotMatch");
+                                rcsReturn.setMessage("缁х画鎵ц澶辫触");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
+                                return rcsReturn;
+                            }
+                        }else {
+                            log.warn("绔欑偣锛歿}锛屼笉婊¤冻鍙栬揣鏉′欢锛岃嚜鍔細{}锛屾棤鐗╋細{}锛屼换鍔″彿锛歿}",staNo,basDevp.getAutoing(),basDevp.getLoading(),basDevp.getWrkNo());
+                            rcsReturn.setCode("Err_RobotCodeNotMatch");
+                            rcsReturn.setMessage("绔欑偣涓嶆弧瓒虫斁璐ф潯浠�");
+                            JSONObject data = new JSONObject();
+                            data.put("robotTaskCode", robotTaskCode);
+                            rcsReturn.setData(data);
+                            return rcsReturn;
+                        }
+                    } break;
+                    case PICK_COMPLETE: { // 鍙栬揣瀹屾垚
+                        String staNo = task.getSourceStaNo();
+
+                        // 娓呴櫎杈撻�佺嚎浠诲姟鍙�
+                        Map<String,Object> params = new HashMap<>();
+                        params.put("siteId",staNo);
+                        params.put("workNo",0);
+                        params.put("staNo", 0);
+                        params.put("pakMk","Y");
+                        String response = new HttpHandler.Builder()
+                                .setUri(WCS_URL)
+                                .setPath("/site/detl/update")
+                                .setParams(params)
+                                .build()
+                                .doPost();
+                        log.info("agv鍙嶉pickComplete缁檞cs鍙戝懡浠�:{},杩斿洖锛歿}",JSONObject.toJSONString(params),response);
+                        // agv缁х画鎵ц
+//                        TransInOutStationAllow inOutStationAllow = new TransInOutStationAllow();
+//                        inOutStationAllow.setTaskno(robotTaskCode);
+//                        inOutStationAllow.setStatus("Y");
+//                        inOutStationAllow.setAgvCode("agv001");
+//                        mesService.allowOutStation(inOutStationAllow);
+                    } break;
                     case TASK_END: {
                         // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
                         task.setWrkSts(304L);   // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
@@ -394,9 +503,10 @@
                         task.setModiUser(defaultUserId);
                         taskService.updateById(task);
                         // 浠诲姟瀹屾垚
-                        mesService.reporterTask(rcsReporterTask);
+//                        mesService.reporterTask(rcsReporterTask);
 
                         // 鍏ョ珛搴撴椂锛屽尯鍒嗘槸绌烘墭杩樻槸婊℃墭锛岀粰杈撻�佺嚎涓嬪彂鍛戒护9990 绌猴紝9995婊�
+                        // 渚ч潰205 9996绌猴紝9997婊�
                         String transType = memo.getString("TransType");
                         if("02".equals(transType) || "04".equals(transType)) {
                             int wrkNo = 9995;
@@ -409,11 +519,14 @@
                                 }
                             }
                             int staNo = Integer.parseInt(task.getStaNo());
+                            if(staNo == 205) { // 渚ч潰浠诲姟鍙疯浆鎹�
+                                wrkNo = wrkNo == 9990 ? 9996 : 9997;
+                            }
                             Map<String,Object> params = new HashMap<>();
                             params.put("siteId",staNo);
                             params.put("workNo",wrkNo);
                             params.put("staNo", staNo == 205 ? 205 : (staNo-1) );
-                            params.put("String","Y");
+                            params.put("pakMk","Y");
                             String response = new HttpHandler.Builder()
                                     .setUri(WCS_URL)
                                     .setPath("/site/detl/update")
@@ -451,20 +564,52 @@
                         } else {
                             apply.setStationId(task.getStaNo());
                         }
-
                         if (RcsRetMethodEnum.APPLY_IN_STATION.getCode().equals(method)) {
+                            JSONObject personRequest = new JSONObject();
+                            personRequest.put("TaskType", 2);
+                            personRequest.put("callback", WMS_ADDRESS+"/api/robot/personIn");
+                            List<String> areaCodes = new ArrayList<>(Arrays.asList("03-H01", "03-H02", "03-M01"));
+                            int i = 0;
+                            for (String areaCode : areaCodes){
+                                personRequest.put("AreaCode", areaCode);
+                                int j = PersonRequest(personRequest, "IN");
+                                if (j == 0){
+                                    log.error("浜哄憳鍏ヤ镜绯荤粺璋冪敤澶辫触");
+                                }
+                            }
+                            redisUtil.set(IS_START_CHECK_INTRUSION, "T");
+                            // 寤惰繜澶勭悊锛岀‘淇濅汉鍛樺叆渚电郴缁熶俊鍙蜂紭鍏堝鐞�
+                            try {
+                                Thread.sleep(10000); // 鐫$湢10绉�
+                            } catch (InterruptedException e) {
+                                Thread.currentThread().interrupt();
+                            }
                             mesService.applyInStation(apply);
                         } else if (RcsRetMethodEnum.APPLY_OFF_STATION.getCode().equals(method)) {
                             mesService.applyOutStation(apply);
                         } else if (RcsRetMethodEnum.ARRIVE_OFF_STATION.getCode().equals(method)) {
+                            JSONObject personRequest = new JSONObject();
+                            personRequest.put("TaskType", 2);
+                            personRequest.put("callback", WMS_ADDRESS+"/api/robot/personIn");
+                            List<String> areaCodes = new ArrayList<>(Arrays.asList("03-H01", "03-H02", "03-M01"));
+                            int i = 0;
+                            for (String areaCode:areaCodes){
+                                personRequest.put("AreaCode", areaCode);
+                                int j = PersonRequest(personRequest, "OUT");
+                                if (j == 0){
+                                    log.error("浜哄憳鍏ヤ镜绯荤粺璋冪敤澶辫触");
+                                }
+                            }
+                            redisUtil.set(IS_START_CHECK_INTRUSION, "F");
+
                             mesService.outStation(apply);
                             // agv缁х画鎵ц
 
-                            TransInOutStationAllow inOutStationAllow = new TransInOutStationAllow();
-                            inOutStationAllow.setTaskno(robotTaskCode);
-                            inOutStationAllow.setStatus("Y");
-                            inOutStationAllow.setAgvCode("agv001");
-                            mesService.allowOutStation(inOutStationAllow);
+//                            TransInOutStationAllow inOutStationAllow = new TransInOutStationAllow();
+//                            inOutStationAllow.setTaskno(robotTaskCode);
+//                            inOutStationAllow.setStatus("Y");
+//                            inOutStationAllow.setAgvCode("agv001");
+//                            mesService.allowOutStation(inOutStationAllow);
                         }
                     } break;
                     case ARRIVE_ON_STATION: {
@@ -476,7 +621,7 @@
                         TransArrivalStation arrivalStation = new TransArrivalStation();
                         arrivalStation.setTaskno(robotTaskCode);
                         arrivalStation.setTaskname(memo.getString("taskName"));
-                        arrivalStation.setTuoPanId(taskDetl == null ? "":taskDetl.getZpallet());  // memo.getString("TuoPanId")
+                        arrivalStation.setTuoPanId(task.getBarcode());  // memo.getString("TuoPanId")
                         arrivalStation.setProductLineId(memo.getString("ProductLineId"));
                         String transType = memo.getString("TransType");
                         arrivalStation.setDaotype(transType);
@@ -737,5 +882,139 @@
         return result.toString();
     }
 
+    @Override
+    public RcsReturn siteBind(SiteBind siteBind) {
+        RcsReturn rcsReturn = new RcsReturn();
+        String url = HIK_URL + "api/robot/controller/site/bind";
+        String response = sendPost(url, JSONObject.toJSONString(siteBind));
+        if (!StringUtils.isEmpty(response) && response.contains("code")){
+            rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
+        } else {
+            rcsReturn.setCode("ERROR");
+            rcsReturn.setMessage("璋冪敤缁戝畾鎺ュ彛RCS鏃犺繑鍥�");
+        }
+        return rcsReturn;
+    }
+
+    int PersonRequest(JSONObject personRequest, String Type){
+        String url;
+        if (Type.equals("IN")){
+            url = "/detect/start";
+        }else{
+            url = "/detect/stop";
+        }
+        String URL = PERSON_URL + url;
+        String blockResponse = RcsServiceImpl.sendPost(URL, JSONObject.toJSONString(personRequest));
+        JSONObject jsonObject = JSON.parseObject(blockResponse);
+        if (!StringUtils.isEmpty(blockResponse) && (jsonObject.getInteger("code") == 200)) {
+            return 1;
+        }
+        return 0;
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void personOut(){
+        Object lastTimeObj = redisUtil.get(LAST_INTRUSION_TIME);
+        if (lastTimeObj == null) {
+            return;  // 娌℃湁璁板綍锛岀洿鎺ヨ繑鍥�
+        }
+        long lastTime = Long.parseLong(lastTimeObj.toString());  // 鍏堣浆String鍐嶈浆long
+        long now = System.currentTimeMillis();
+        long waitTime = now - lastTime;
+        //寰幆妫�娴嬫槸鍚︽湁瓒呰繃10绉掓病鏈夋洿鏂版湁浜轰俊鍙�
+        if (waitTime > 10000){
+            JSONObject personReturn = new JSONObject();
+
+            String hik_blockUrl = "api/robot/controller/zone/blockade";
+            String hik_pauseUrl = "api/robot/controller/zone/pause";
+
+            String BLOCK_URL = HIK_URL + hik_blockUrl;
+            String PAUSE_URL = HIK_URL + hik_pauseUrl;
+
+            // 涓変釜AGV鍖哄煙
+            List<String> areaCodes = new ArrayList<>(Arrays.asList("oprs1", "oprs2", "oprs3"));
+
+            for (String areaCode:areaCodes){
+                JSONObject rcsBlock = new JSONObject();
+                JSONObject rcsPause = new JSONObject();
+                rcsBlock.put("mapCode", "AA");
+                rcsPause.put("mapCode", "AA");
+                rcsBlock.put("invoke", "OPENUP");
+                rcsPause.put("invoke","RUN");
+                rcsBlock.put("zoneCode", areaCode);
+                rcsPause.put("zoneCode", areaCode);
+
+                // 瑙i櫎AGV閿佸畾鍖哄煙涓庤В闄ゆ殏鍋�
+                String blockResponse = RcsServiceImpl.sendPost(BLOCK_URL, JSONObject.toJSONString(rcsBlock));
+                String PauseResponse = RcsServiceImpl.sendPost(PAUSE_URL, JSONObject.toJSONString(rcsPause));
+                JSONObject blockJsonObject = JSON.parseObject(blockResponse);
+                JSONObject pauseJsonObject = JSON.parseObject(PauseResponse);
+                if (!StringUtils.isEmpty(blockResponse) && (blockJsonObject.getString("code").equals("SUCCESS"))) {
+                    if (!StringUtils.isEmpty(PauseResponse) && (pauseJsonObject.getString("code").equals("SUCCESS"))) {
+                        personReturn.put("code", 200);
+                        personReturn.put("message", "success");
+                    }
+                }
+            }
+            //閲嶇疆灏侀攣鐘舵��
+            redisUtil.set(IS_BLOCK_AREA, "F");
+        }
+    }
+
+    @Override
+    //浜哄憳鍏ヤ镜绯荤粺鍥炶皟鎺ュ彛瀹炵幇鏂规硶
+    public int personIn(JSONObject param) {
+
+        //浜哄憳鍏ヤ镜绯荤粺妫�娴嬪埌鏈変汉
+        if (param.getString("AlarmValue").equals("1")){
+            long date = new Date().getTime();
+            //閲嶇疆redis璁℃椂
+            redisUtil.set(LAST_INTRUSION_TIME, String.valueOf(date));
+
+            //濡傛灉宸茬粡灏侀攣鍖哄煙灏辩洿鎺ヨ繑鍥烇紝閬垮厤澶氭璋冪敤agv鎺ュ彛
+            Object blockArea = redisUtil.get(IS_BLOCK_AREA);
+            if (blockArea != null && "T".equals(blockArea)) {
+                return 1;
+            }
+
+            redisUtil.set(IS_PERSON_INTRUSION, "T");
+        }
+
+        JSONObject personReturn = new JSONObject();
+
+        String hik_blockUrl = "api/robot/controller/zone/blockade";
+        String hik_pauseUrl = "api/robot/controller/zone/pause";
+
+        String BLOCK_URL = HIK_URL + hik_blockUrl;
+        String PAUSE_URL = HIK_URL + hik_pauseUrl;
+
+        JSONObject rcsBlock = new JSONObject();
+        JSONObject rcsPause = new JSONObject();
+        rcsBlock.put("mapCode", "AA");
+        rcsPause.put("mapCode", "AA");
+
+        List<String> areaCodes = new ArrayList<>(Arrays.asList("oprs1", "oprs2", "oprs3"));
+
+        for (String areaCode:areaCodes){
+            rcsBlock.put("zoneCode", areaCode);
+            rcsPause.put("zoneCode", areaCode);
+            rcsBlock.put("invoke", "BLOCKADE");
+            rcsPause.put("invoke","FREEZE");
+            String blockResponse = RcsServiceImpl.sendPost(BLOCK_URL, JSONObject.toJSONString(rcsBlock));
+            String PauseResponse = RcsServiceImpl.sendPost(PAUSE_URL, JSONObject.toJSONString(rcsPause));
+            JSONObject blockJsonObject = JSON.parseObject(blockResponse);
+            JSONObject pauseJsonObject = JSON.parseObject(PauseResponse);
+            if (!StringUtils.isEmpty(blockResponse) && (blockJsonObject.getString("code").equals("SUCCESS"))) {
+                if (!StringUtils.isEmpty(PauseResponse) && (pauseJsonObject.getString("code").equals("SUCCESS"))) {
+                    personReturn.put("code", 200);
+                    personReturn.put("message", "success");
+                }
+            }
+        }
+        // 鏇存柊瀛樺偍灏侀攣淇℃伅
+        redisUtil.set(IS_BLOCK_AREA, "T");
+        //鐩存帴杩斿洖锛屼笉闇�瑕佷俊鎭�
+        return 1;
+    }
     // endregion
 }

--
Gitblit v1.9.1