From c80d68ee7d5ceb5f93289220a410737da3a7bf9f Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期二, 23 四月 2024 08:44:47 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/ssdwcs' into ssdwcs

---
 src/main/java/com/zy/core/thread/MelsecExtThread.java                |  200 ++++++++++++++
 src/main/java/com/zy/system/controller/LicenseCreatorController.java |    3 
 src/main/java/com/zy/asrs/controller/SiteController.java             |   23 +
 src/main/java/com/zy/core/model/protocol/ExtProtocol.java            |   26 +
 src/main/resources/application-prod.yml                              |    8 
 src/main/java/com/zy/core/thread/SiemensRgvThread.java               |   24 +
 src/main/webapp/views/deviceOperate/rgvOperate.html                  |   54 +++
 src/main/java/com/zy/common/web/AuthController.java                  |   10 
 src/main/java/com/zy/asrs/mapper/BasExtMapper.java                   |   12 
 src/main/java/com/zy/core/enums/SlaveType.java                       |    3 
 src/main/java/com/zy/core/cache/OutputQueue.java                     |    2 
 src/main/java/com/zy/asrs/entity/BasExt.java                         |   55 +++
 src/main/java/com/zy/core/MainProcess.java                           |    2 
 src/main/java/com/zy/system/entity/license/LicenseCheckListener.java |    5 
 src/main/java/com/zy/asrs/controller/RgvController.java              |   76 +++++
 src/main/java/com/zy/asrs/service/impl/BasExtServiceImpl.java        |   12 
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java          |   29 +
 src/main/java/com/zy/core/model/ExtSlave.java                        |   22 +
 src/main/java/com/zy/asrs/controller/BasExtController.java           |  123 ++++++++
 src/main/java/com/zy/common/CodeBuilder.java                         |    4 
 src/main/resources/mapper/BasExtMapper.xml                           |   13 
 src/main/java/com/zy/core/ServerBootstrap.java                       |   17 
 src/main/java/com/zy/core/properties/SlaveProperties.java            |    7 
 src/main/java/com/zy/asrs/service/BasExtService.java                 |    8 
 src/main/resources/application.yml                                   |    4 
 src/main/webapp/views/deviceOperate/extOperate.html                  |   70 +++++
 26 files changed, 783 insertions(+), 29 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/BasExtController.java b/src/main/java/com/zy/asrs/controller/BasExtController.java
new file mode 100644
index 0000000..6b3fd11
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/BasExtController.java
@@ -0,0 +1,123 @@
+package com.zy.asrs.controller;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.common.DateUtils;
+import com.zy.asrs.entity.BasExt;
+import com.zy.asrs.service.BasExtService;
+import com.core.annotations.ManagerAuth;
+import com.core.common.BaseRes;
+import com.core.common.Cools;
+import com.core.common.R;
+import com.zy.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.*;
+
+@RestController
+public class BasExtController extends BaseController {
+
+    @Autowired
+    private BasExtService basExtService;
+
+    @RequestMapping(value = "/basExt/{id}/auth")
+    @ManagerAuth
+    public R get(@PathVariable("id") String id) {
+        return R.ok(basExtService.selectById(String.valueOf(id)));
+    }
+
+    @RequestMapping(value = "/basExt/list/auth")
+    @ManagerAuth
+    public R list(@RequestParam(defaultValue = "1")Integer curr,
+                  @RequestParam(defaultValue = "10")Integer limit,
+                  @RequestParam(required = false)String orderByField,
+                  @RequestParam(required = false)String orderByType,
+                  @RequestParam Map<String, Object> param){
+        EntityWrapper<BasExt> wrapper = new EntityWrapper<>();
+        excludeTrash(param);
+        convert(param, wrapper);
+        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+        return R.ok(basExtService.selectPage(new Page<>(curr, limit), wrapper));
+    }
+
+    private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
+        for (Map.Entry<String, Object> entry : map.entrySet()){
+            String val = String.valueOf(entry.getValue());
+            if (val.contains(RANGE_TIME_LINK)){
+                String[] dates = val.split(RANGE_TIME_LINK);
+                wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+                wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+            } else {
+                wrapper.like(entry.getKey(), val);
+            }
+        }
+    }
+
+    @RequestMapping(value = "/basExt/add/auth")
+    @ManagerAuth
+    public R add(BasExt basExt) {
+        basExtService.insert(basExt);
+        return R.ok();
+    }
+
+	@RequestMapping(value = "/basExt/update/auth")
+	@ManagerAuth
+    public R update(BasExt basExt){
+        if (Cools.isEmpty(basExt) || null==basExt.getExtNo()){
+            return R.error();
+        }
+        basExtService.updateById(basExt);
+        return R.ok();
+    }
+
+    @RequestMapping(value = "/basExt/delete/auth")
+    @ManagerAuth
+    public R delete(@RequestParam(value="ids[]") Long[] ids){
+         for (Long id : ids){
+            basExtService.deleteById(id);
+        }
+        return R.ok();
+    }
+
+    @RequestMapping(value = "/basExt/export/auth")
+    @ManagerAuth
+    public R export(@RequestBody JSONObject param){
+        EntityWrapper<BasExt> wrapper = new EntityWrapper<>();
+        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+        Map<String, Object> map = excludeTrash(param.getJSONObject("basExt"));
+        convert(map, wrapper);
+        List<BasExt> list = basExtService.selectList(wrapper);
+        return R.ok(exportSupport(list, fields));
+    }
+
+    @RequestMapping(value = "/basExtQuery/auth")
+    @ManagerAuth
+    public R query(String condition) {
+        EntityWrapper<BasExt> wrapper = new EntityWrapper<>();
+        wrapper.like("ext_no", condition);
+        Page<BasExt> page = basExtService.selectPage(new Page<>(0, 10), wrapper);
+        List<Map<String, Object>> result = new ArrayList<>();
+        for (BasExt basExt : page.getRecords()){
+            Map<String, Object> map = new HashMap<>();
+            map.put("id", basExt.getExtNo());
+            map.put("value", basExt.getExtNo());
+            result.add(map);
+        }
+        return R.ok(result);
+    }
+
+    @RequestMapping(value = "/basExt/check/column/auth")
+    @ManagerAuth
+    public R query(@RequestBody JSONObject param) {
+        Wrapper<BasExt> wrapper = new EntityWrapper<BasExt>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+        if (null != basExtService.selectOne(wrapper)){
+            return R.parse(BaseRes.REPEAT).add(getComment(BasExt.class, String.valueOf(param.get("key"))));
+        }
+        return R.ok();
+    }
+
+}
diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
index c46f545..b71f6c3 100644
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -124,7 +124,7 @@
         }
 //        List<Map<String, Object>> res = new ArrayList<>();
         for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
-            if (rgvSlave.getId() == rgvNo){
+            if (rgvSlave.getId().equals(rgvNo)){
                 rgvSlave.setDemo(true);
             }
         }
@@ -137,13 +137,85 @@
         }
 //        List<Map<String, Object>> res = new ArrayList<>();
         for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
-            if (rgvSlave.getId() == rgvNo){
+            if (rgvSlave.getId().equals(rgvNo)){
                 rgvSlave.setDemo(false);
             }
         }
         return R.ok();
     }
 
+    @GetMapping("/demo/status/rgvStatus")
+    public R demoStatusTrue1(Integer rgvNo,Integer status){
+        if (Cools.isEmpty(rgvNo)){
+            return R.error("璇烽�夋嫨rgv");
+        }
+        if (Cools.isEmpty(status)){
+            return R.error("閫夋嫨鎸夐挳鏈夎");
+        }
+//        List<Map<String, Object>> res = new ArrayList<>();
+        for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
+            // 鑾峰彇RGV淇℃伅
+            SiemensRgvThread rgvThread = (SiemensRgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+            if (rgvThread == null) {
+                throw new CoolException("RGV涓嶅湪绾�");
+            }
+            RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+            if (rgvProtocol == null) {
+                throw new CoolException("RGV涓嶅湪绾�");
+            }
+            String DB = "";
+            if (rgvSlave.getId().equals(rgvNo)){
+               switch (status){
+                   case 5://寮哄埗鍚姩
+                       DB="4.4";
+                       break;
+//                   case 6://澶嶄綅淇″彿
+//                       DB="4.5";
+//                       break;
+                   case 7://鎶ヨ娑堥煶
+                       DB="4.6";
+                       break;
+                   case 8://鍚姩
+                       DB="4.7";
+                       break;
+                   case 9://鍋滄
+                       DB="5.0";
+                       break;
+                   case 10://鎬ュ仠
+                       DB="5.1";
+                       break;
+                   case 11://澶嶄綅鎸夐挳
+                       DB="5.2";
+                       break;
+                   case 12://鎵嬪姩
+                       DB="5.3";
+                       break;
+                   case 13://鎵嬪姩瀹氫綅
+                       DB="5.4";
+                       break;
+                   case 14://鍗曟満
+                       DB="5.5";
+                       break;
+                   case 15://鑱旀満
+                       DB="5.6";
+                       break;
+                   case 16://璐у弶瀹氫綅鍥炰腑
+                       DB="5.7";
+                       break;
+                   default:
+                       return R.error("鎸夐挳涓嶅瓨鍦紵锛燂紵锛燂紒锛侊紒");
+               }
+               if (MessageQueue.offer(SlaveType.Rgv, rgvNo, new Task(10, DB))) {
+                   return R.ok();
+               } else {
+                   return R.error("鍛戒护涓嬪彂澶辫触");
+               }
+            }
+
+        }
+        return R.ok();
+    }
+
 
 
     @PostMapping("/demo/switch")
diff --git a/src/main/java/com/zy/asrs/controller/SiteController.java b/src/main/java/com/zy/asrs/controller/SiteController.java
index 1768651..e9cb0fb 100644
--- a/src/main/java/com/zy/asrs/controller/SiteController.java
+++ b/src/main/java/com/zy/asrs/controller/SiteController.java
@@ -7,18 +7,23 @@
 import com.zy.asrs.domain.vo.PlcErrorTableVo;
 import com.zy.asrs.domain.vo.SiteTableVo;
 import com.zy.asrs.entity.BasDevp;
+import com.zy.asrs.entity.BasExt;
 import com.zy.asrs.service.BasDevpService;
+import com.zy.asrs.service.BasExtService;
 import com.zy.asrs.utils.CommandUtils;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.OutputQueue;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.SlaveType;
 import com.zy.core.model.DevpSlave;
+import com.zy.core.model.ExtSlave;
 import com.zy.core.model.Task;
+import com.zy.core.model.protocol.ExtProtocol;
 import com.zy.core.model.protocol.StaProtocol;
 import com.zy.core.properties.SlaveProperties;
 import com.zy.core.DevpThread;
 import com.zy.core.thread.BarcodeThread;
+import com.zy.core.thread.MelsecExtThread;
 import com.zy.core.thread.SiemensDevpThread;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -37,6 +42,8 @@
     private SlaveProperties slaveProperties;
     @Autowired
     private BasDevpService basDevpService;
+    @Autowired
+    private BasExtService basExtService;
 
 
     @GetMapping("/io/mode/info/site")
@@ -119,6 +126,22 @@
         return R.ok().add(list);
     }
 
+    @GetMapping("/list/ext/auth")
+    @ManagerAuth(memo = "鏈烘鑷備俊鎭�")
+    public R extList(){
+        List<SiteTableVo> list = new ArrayList<>();
+        // 鎸佷箙鏁版嵁
+        List<BasExt> basExts = basExtService.selectList(new EntityWrapper<BasExt>().orderBy("ext_no"));
+        for (BasExt ext : basExts) {
+            SiteTableVo vo = new SiteTableVo();
+            vo.setDevNo(ext.getExtNo());    // 绔欑偣缂栧彿
+            vo.setInEnable(ext.getExtTask());   // 鍙叆  鍙彇
+            vo.setOutEnable(ext.getExtPut()); // 鍙嚭     鍙斁
+            list.add(vo);
+        }
+        return R.ok().add(list);
+    }
+
     @PostMapping("/table/plc/errors")
     @ManagerAuth(memo = "杈撻�佽澶噋lc寮傚父淇℃伅琛�")
     public R plcErrorTable(){
diff --git a/src/main/java/com/zy/asrs/entity/BasExt.java b/src/main/java/com/zy/asrs/entity/BasExt.java
new file mode 100644
index 0000000..5ce23aa
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/BasExt.java
@@ -0,0 +1,55 @@
+package com.zy.asrs.entity;
+
+import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.enums.IdType;
+import com.baomidou.mybatisplus.annotations.TableField;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.baomidou.mybatisplus.annotations.TableName;
+import java.io.Serializable;
+
+@Data
+@TableName("asr_bas_ext")
+public class BasExt implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 缂栧彿
+     */
+    @ApiModelProperty(value= "缂栧彿")
+    @TableId(value = "ext_no", type = IdType.INPUT)
+    @TableField("ext_no")
+    private Integer extNo;
+
+    /**
+     * 鍏佽鍙�(checkBox)
+     */
+    @ApiModelProperty(value= "鍏佽鍙�(checkBox)")
+    @TableField("ext_task")
+    private String extTask = "N";
+
+    /**
+     * 鍏佽鏀�(checkBox)
+     */
+    @ApiModelProperty(value= "鍏佽鏀�(checkBox)")
+    @TableField("ext_put")
+    private String extPut = "N";
+
+    public BasExt() {}
+
+    public BasExt(Integer extNo,String extTask,String extPut) {
+        this.extNo = extNo;
+        this.extTask = extTask;
+        this.extPut = extPut;
+    }
+
+//    BasExt basExt = new BasExt(
+//            null,    // 缂栧彿[闈炵┖]
+//            null,    // 鍏佽鍙�(checkBox)
+//            null    // 鍏佽鏀�(checkBox)
+//    );
+
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/BasExtMapper.java b/src/main/java/com/zy/asrs/mapper/BasExtMapper.java
new file mode 100644
index 0000000..5a94d9d
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/BasExtMapper.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.mapper;
+
+import com.zy.asrs.entity.BasExt;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface BasExtMapper extends BaseMapper<BasExt> {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/BasExtService.java b/src/main/java/com/zy/asrs/service/BasExtService.java
new file mode 100644
index 0000000..c3d31c6
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/BasExtService.java
@@ -0,0 +1,8 @@
+package com.zy.asrs.service;
+
+import com.zy.asrs.entity.BasExt;
+import com.baomidou.mybatisplus.service.IService;
+
+public interface BasExtService extends IService<BasExt> {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/BasExtServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasExtServiceImpl.java
new file mode 100644
index 0000000..e41a7a1
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/BasExtServiceImpl.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.service.impl;
+
+import com.zy.asrs.mapper.BasExtMapper;
+import com.zy.asrs.entity.BasExt;
+import com.zy.asrs.service.BasExtService;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service("basExtService")
+public class BasExtServiceImpl extends ServiceImpl<BasExtMapper, BasExt> implements BasExtService {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index c4ae583..af46969 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -29,13 +29,11 @@
 import com.zy.core.model.command.LedCommand;
 import com.zy.core.model.command.RgvCommand;
 import com.zy.core.model.protocol.CrnProtocol;
+import com.zy.core.model.protocol.ExtProtocol;
 import com.zy.core.model.protocol.RgvProtocol;
 import com.zy.core.model.protocol.StaProtocol;
 import com.zy.core.properties.SlaveProperties;
-import com.zy.core.thread.BarcodeThread;
-import com.zy.core.thread.LedThread;
-import com.zy.core.thread.SiemensDevpThread;
-import com.zy.core.thread.SiemensRgvThread;
+import com.zy.core.thread.*;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -87,7 +85,6 @@
                 for (RgvSlave rgv : slaveProperties.getRgv()) {
                     if (!rgv.getDemo()){
                         continue;
-
                     }
                     SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
                     StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
@@ -361,6 +358,28 @@
         }
     }
 
+    public synchronized void ExtTaskAndPut() throws InterruptedException {
+        for (ExtSlave extSlave : slaveProperties.getExt()) {
+//            if (!rgv.getDemo()) {
+//                continue;
+//            }
+            MelsecExtThread extThread = (MelsecExtThread) SlaveConnection.get(SlaveType.Ext, extSlave.getId());
+            ExtProtocol extProtocol = extThread.getExtProtocol();
+            if (extProtocol == null) {
+                continue;
+            }
+//            else {
+//                extProtocol = extProtocol.clone();
+//            }
+            if (extProtocol.isTake()){//鍏佽鍙�
+
+            }else if (extProtocol.isPut()){//鍏佽鏀�
+
+            }
+
+        }
+    }
+
 
 
 }
diff --git a/src/main/java/com/zy/common/CodeBuilder.java b/src/main/java/com/zy/common/CodeBuilder.java
index 8e2b23d..76a9f94 100644
--- a/src/main/java/com/zy/common/CodeBuilder.java
+++ b/src/main/java/com/zy/common/CodeBuilder.java
@@ -17,10 +17,10 @@
 //        generator.table="sys_host";
         // sqlserver
         generator.sqlOsType = SqlOsType.SQL_SERVER;
-        generator.url="127.0.0.1:1433;databasename=ghtzasrs";
+        generator.url="192.168.4.15:1433;databasename=ssdasrs";
         generator.username="sa";
         generator.password="sa@123";
-        generator.table="man_vacuum_mast";
+        generator.table="asr_bas_ext";
         generator.packagePath="com.zy.asrs";
         generator.js = false;
         generator.html = false;
diff --git a/src/main/java/com/zy/common/web/AuthController.java b/src/main/java/com/zy/common/web/AuthController.java
index fff96c3..9199bb5 100644
--- a/src/main/java/com/zy/common/web/AuthController.java
+++ b/src/main/java/com/zy/common/web/AuthController.java
@@ -54,11 +54,11 @@
     @ManagerAuth(value = ManagerAuth.Auth.NONE, memo = "鐧诲綍")
     public R loginAction(String mobile, String password){
         //楠岃瘉璁稿彲璇佹槸鍚︽湁鏁�
-        LicenseVerify licenseVerify = new LicenseVerify();
-        boolean verify = licenseVerify.verify();
-        if (!verify) {//璁稿彲璇佸凡澶辨晥
-            return R.parse(CodeRes.SYSTEM_20001);
-        }
+//        LicenseVerify licenseVerify = new LicenseVerify();
+//        boolean verify = licenseVerify.verify();
+//        if (!verify) {//璁稿彲璇佸凡澶辨晥
+//            return R.parse(CodeRes.SYSTEM_20001);
+//        }
         if (mobile.equals("super") && password.equals(Cools.md5(superPwd))) {
             Map<String, Object> res = new HashMap<>();
             res.put("username", mobile);
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 9428400..3b7faa8 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -47,6 +47,8 @@
 //                    mainService.RGVDemoShow0();
 //                    mainService.RGVDemoShow1();
                     mainService.RGVDemoShow2();
+                    //鏈烘鑷傚厑璁稿彇璐с�佸厑璁告斁璐�
+                    mainService.ExtTaskAndPut();
 
 
                 } catch (Exception e) {
diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java
index d67d829..c8fe405 100644
--- a/src/main/java/com/zy/core/ServerBootstrap.java
+++ b/src/main/java/com/zy/core/ServerBootstrap.java
@@ -3,10 +3,7 @@
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.SlaveType;
-import com.zy.core.model.CrnSlave;
-import com.zy.core.model.DevpSlave;
-import com.zy.core.model.LedSlave;
-import com.zy.core.model.RgvSlave;
+import com.zy.core.model.*;
 import com.zy.core.properties.SlaveProperties;
 import com.zy.core.thread.*;
 import lombok.extern.slf4j.Slf4j;
@@ -64,6 +61,11 @@
         for (Slave rgv : slaveProperties.getRgv()) {
             MessageQueue.init(SlaveType.Rgv, rgv);
         }
+
+        // 鍒濆鍖栨満姊拌噦mq
+        for (Slave ext : slaveProperties.getExt()) {
+            MessageQueue.init(SlaveType.Ext, ext);
+        }
 //        // 鍒濆鍖朙ed鐏痬q
 //        for (Slave led : slaveProperties.getLed()) {
 //            MessageQueue.init(SlaveType.Led, led);
@@ -107,6 +109,13 @@
             new Thread((Runnable) rgvThread).start();
             SlaveConnection.put(SlaveType.Rgv, rgv.getId(), rgvThread);
         }
+        // 鍒濆鍖栨満姊拌噦绾跨▼
+        log.info("鍒濆鍖朎xt绾跨▼...................................................");
+        for (ExtSlave ext : slaveProperties.getExt()) {
+            MelsecExtThread extThread = new MelsecExtThread(ext);
+            new Thread(extThread).start();
+            SlaveConnection.put(SlaveType.Ext, ext.getId(), extThread);
+        }
 //        // 鍒濆鍖朙ED绾跨▼
 //        log.info("鍒濆鍖朙ED绾跨▼...................................................");
 //        for (LedSlave led : slaveProperties.getLed()) {
diff --git a/src/main/java/com/zy/core/cache/OutputQueue.java b/src/main/java/com/zy/core/cache/OutputQueue.java
index a5c050d..48bd3be 100644
--- a/src/main/java/com/zy/core/cache/OutputQueue.java
+++ b/src/main/java/com/zy/core/cache/OutputQueue.java
@@ -21,4 +21,6 @@
     // 鍫嗗灈鏈鸿緭鍑烘棩蹇�
     public static ArrayBlockingQueue<String> RGV = new ArrayBlockingQueue<>(32);
 
+    public static ArrayBlockingQueue<String> Ext = new ArrayBlockingQueue<>(32);
+
 }
diff --git a/src/main/java/com/zy/core/enums/SlaveType.java b/src/main/java/com/zy/core/enums/SlaveType.java
index 7f64d13..14b192a 100644
--- a/src/main/java/com/zy/core/enums/SlaveType.java
+++ b/src/main/java/com/zy/core/enums/SlaveType.java
@@ -8,7 +8,8 @@
     Led,
     Scale,
     Car,
-    Rgv
+    Rgv,
+    Ext
     ;
 
     public static SlaveType findInstance(String s){
diff --git a/src/main/java/com/zy/core/model/ExtSlave.java b/src/main/java/com/zy/core/model/ExtSlave.java
new file mode 100644
index 0000000..8b541b2
--- /dev/null
+++ b/src/main/java/com/zy/core/model/ExtSlave.java
@@ -0,0 +1,22 @@
+package com.zy.core.model;
+
+import com.zy.core.Slave;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class ExtSlave extends Slave {
+
+    private Integer rack;
+
+    private Integer slot;
+
+    private Integer offset;
+
+    private Boolean demo;
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/zy/core/model/protocol/ExtProtocol.java b/src/main/java/com/zy/core/model/protocol/ExtProtocol.java
new file mode 100644
index 0000000..721810e
--- /dev/null
+++ b/src/main/java/com/zy/core/model/protocol/ExtProtocol.java
@@ -0,0 +1,26 @@
+package com.zy.core.model.protocol;
+import lombok.Data;
+
+/**
+ * Created by vincent on 2020/8/7
+ */
+@Data
+public class ExtProtocol {
+
+    private Integer extNo = 1;
+
+    public boolean take = false;//鍏佽鍙栦俊鍙�
+
+    public boolean put = false;//鍏佽鏀句俊鍙�
+
+    @Override
+    public ExtProtocol clone() {
+        try {
+            return (ExtProtocol) super.clone();
+        } catch (CloneNotSupportedException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+}
diff --git a/src/main/java/com/zy/core/properties/SlaveProperties.java b/src/main/java/com/zy/core/properties/SlaveProperties.java
index 866ea67..0510d2e 100644
--- a/src/main/java/com/zy/core/properties/SlaveProperties.java
+++ b/src/main/java/com/zy/core/properties/SlaveProperties.java
@@ -1,10 +1,7 @@
 package com.zy.core.properties;
 
 import com.zy.core.Slave;
-import com.zy.core.model.CrnSlave;
-import com.zy.core.model.DevpSlave;
-import com.zy.core.model.LedSlave;
-import com.zy.core.model.RgvSlave;
+import com.zy.core.model.*;
 import lombok.Data;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Configuration;
@@ -44,4 +41,6 @@
     private List<Slave> car = new ArrayList<>();
 
     private List<RgvSlave> rgv = new ArrayList<>();
+
+    private List<ExtSlave> ext = new ArrayList<>();
 }
diff --git a/src/main/java/com/zy/core/thread/MelsecExtThread.java b/src/main/java/com/zy/core/thread/MelsecExtThread.java
new file mode 100644
index 0000000..0b5805f
--- /dev/null
+++ b/src/main/java/com/zy/core/thread/MelsecExtThread.java
@@ -0,0 +1,200 @@
+package com.zy.core.thread;
+
+import HslCommunication.Core.Types.OperateResult;
+import HslCommunication.Core.Types.OperateResultExOne;
+import HslCommunication.Profinet.Melsec.MelsecMcNet;
+import com.core.common.DateUtils;
+import com.core.common.SpringUtils;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.BasCrnp;
+import com.zy.asrs.entity.BasExt;
+import com.zy.asrs.service.BasCrnpService;
+import com.zy.asrs.service.BasExtService;
+import com.zy.core.ThreadHandler;
+import com.zy.core.cache.MessageQueue;
+import com.zy.core.cache.OutputQueue;
+import com.zy.core.enums.SlaveType;
+import com.zy.core.model.ExtSlave;
+import com.zy.core.model.Task;
+import com.zy.core.model.protocol.ExtProtocol;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+
+import java.text.MessageFormat;
+import java.util.Date;
+
+/**
+ * 鏈烘鑷傜嚎绋�  //Extraman==>鏈烘鑷�
+ * Created by vincent on 2020/8/4
+ */
+@Data
+@Slf4j
+public class MelsecExtThread implements Runnable, ThreadHandler {
+
+    private MelsecMcNet melsecMcNet;
+    private ExtSlave slave;
+    private ExtProtocol extProtocol;
+    private short heartBeatVal = 1;
+    private boolean resetFlag = false;
+
+    public boolean isRunning = true;
+
+    public MelsecExtThread(ExtSlave slave) {
+        this.slave = slave;
+    }
+
+    @Override
+    @SuppressWarnings("InfiniteLoopStatement")
+    public void run() {
+        System.out.println("绾跨▼鍚姩");
+        System.out.println("extProtocol:"+extProtocol);
+        this.connect();
+//        try {
+//            Thread.sleep(2000);
+//        } catch (InterruptedException e) {
+//            e.printStackTrace();
+//        }
+        while (isRunning) {
+            try {
+                int step = 1;
+                Task task = MessageQueue.poll(SlaveType.Ext, slave.getId());
+                if (task != null) {
+                    step = task.getStep();
+                }
+                switch (step) {
+                    // 璇绘暟鎹�
+                    case 1:
+                        readStatus();
+                        break;
+                    default:
+                        break;
+                }
+                // 蹇冭烦
+//                heartbeat();
+                Thread.sleep(500);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    /**
+     * 鍒濆鍖栨満姊拌噦鐘舵��
+     */
+    private void initExt() {
+        if (null == extProtocol) {
+            extProtocol = new ExtProtocol();
+        }
+        extProtocol.setTake(false);
+        extProtocol.setPut(false);
+    }
+
+    @Override
+    public boolean connect() {
+        boolean result = false;
+        melsecMcNet = new MelsecMcNet(slave.getIp(), slave.getPort());
+        OperateResult connect = melsecMcNet.ConnectServer();
+        if(connect.IsSuccess){
+            result = true;
+            OutputQueue.Ext.offer(MessageFormat.format( "銆恵0}銆戞満姊拌噦plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+            log.info("MelsecExt"+" - 1"+" - 鏈烘鑷俻lc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+        } else {
+            OutputQueue.Ext.offer(MessageFormat.format("銆恵0}銆戞満姊拌噦plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] ", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+            log.error("MelsecExt"+" - 2"+" - 鏈烘鑷俻lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+            initExt();
+        }
+//        melsecMcNet.ConnectClose();
+        return result;
+    }
+
+    /**
+     * 璇诲彇鐘舵��
+     */
+    private void readStatus(){
+        try {
+            OperateResultExOne<byte[]> result = melsecMcNet.Read("D1035", (short) 56);
+            if (result.IsSuccess) {
+                if (null == extProtocol) {
+                    extProtocol = new ExtProtocol();
+                    extProtocol.setExtNo(slave.getId());
+                }
+                extProtocol.setTake(melsecMcNet.getByteTransform().TransBool(result.Content, 0));
+                extProtocol.setPut(melsecMcNet.getByteTransform().TransBool(result.Content, 0));
+//                extProtocol.setMode(melsecMcNet.getByteTransform().TransInt16(result.Content, 0));
+//                extProtocol.setTaskNo(melsecMcNet.getByteTransform().TransInt16(result.Content, 2));
+
+
+// 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
+                BasExtService extService = SpringUtils.getBean(BasExtService.class);
+                BasExt basExt = new BasExt();
+                basExt.setExtNo(slave.getId());
+                basExt.setExtTask(extProtocol.isTake()?"Y":"N");
+                basExt.setExtPut(extProtocol.isPut()?"Y":"N");
+                if (!extService.updateById(basExt)){
+                    log.error("MelsecExt"+" - 4"+" - 鏈烘鑷俻lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+                }else {
+                    OutputQueue.Ext.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
+                }
+            } else {
+                BasExtService extService = SpringUtils.getBean(BasExtService.class);
+                BasExt basExt = new BasExt();
+                basExt.setExtNo(slave.getId());
+                basExt.setExtTask("N");
+                basExt.setExtPut("N");
+                extService.updateById(basExt);
+                OutputQueue.Ext.offer(MessageFormat.format("銆恵0}銆憑1}鏈烘鑷俻lc鐘舵�佷俊鎭け璐�",DateUtils.convert(new Date()), slave.getId()));
+                throw new CoolException(MessageFormat.format( "鏈烘鑷俻lc鐘舵�佷俊鎭け璐� ===>> [id:{0}] [ip:{1}] [port:{2}]", slave.getId(), slave.getIp(), slave.getPort()));
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            OutputQueue.Ext.offer(MessageFormat.format("銆恵0}銆戣鍙栨満姊拌噦plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+            log.error("MelsecExt"+" - 5"+" - 璇诲彇鏈烘鑷俻lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+            initExt();
+        } finally {
+//            sign = System.currentTimeMillis();
+        }
+
+    }
+
+    @Override
+    public void close() {
+        melsecMcNet.ConnectClose();
+    }
+
+    /**
+     * 蹇冭烦
+     */
+    private void heartbeat(){
+        if (heartBeatVal >= 30000) {
+            heartBeatVal = -30000;
+        } else {
+            heartBeatVal =(short) (heartBeatVal+1);
+        }
+        OperateResult write = melsecMcNet.Write("D1011", heartBeatVal);
+        if (!write.IsSuccess) {
+            log.error("MelsecExt"+" - 9"+" - 鏈烘鑷俻lc蹇冭烦閫氳澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+        }
+    }
+
+
+    /******************************************************************************************/
+    /**************************************** 娴嬭瘯涓撶敤 *****************************************/
+    /*****************************************************************************************/
+    public static void main(String[] args) throws InterruptedException {
+
+    }
+
+    // 鎻愪緵涓�涓柟娉曟潵鍋滄绾跨▼
+    public void requestStop() {
+        isRunning = false;
+    }
+
+    // 鎻愪緵涓�涓柟娉曟潵閲嶅惎绾跨▼
+    public Thread restartThread() {
+        isRunning = true;
+        Thread newThread = new Thread(this);
+        newThread.start();
+        return newThread;
+    }
+
+}
diff --git a/src/main/java/com/zy/core/thread/SiemensRgvThread.java b/src/main/java/com/zy/core/thread/SiemensRgvThread.java
index c6d7b77..287f1bb 100644
--- a/src/main/java/com/zy/core/thread/SiemensRgvThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensRgvThread.java
@@ -5,6 +5,7 @@
 import HslCommunication.Profinet.Siemens.SiemensPLCS;
 import HslCommunication.Profinet.Siemens.SiemensS7Net;
 import com.alibaba.fastjson.JSON;
+import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.common.SpringUtils;
 import com.zy.asrs.entity.BasRgv;
@@ -113,6 +114,9 @@
 //                        commandAvoidanceXY.setDestinationStaNo2((short)0);     // 鐩爣绔�
                         commandAvoidanceXY.setCommand((short)0);
                         write(commandAvoidanceXY);
+                        break;
+                    case 10:
+                        write10((String) task.getData());
                         break;
                     default:
                         break;
@@ -460,6 +464,26 @@
         }
     }
 
+    //灏忚溅寮哄埗銆佸浣嶃�佹姤璀︽秷闊炽�佸惎鍔ㄣ�佸仠姝€�佹�ュ仠銆佸浣嶃�佹墜鍔ㄣ�佹墜鍔ㄥ畾浣嶃�佸崟鏈恒�佽仈鏈恒�佽揣鍙夊洖涓�
+    private boolean write10(String status) throws InterruptedException {
+        if (Cools.isEmpty(status)) {
+            log.error("RGV鍐欏叆鍛戒护涓虹┖");
+            return false;
+        }
+        OperateResult result = siemensNet.Write("DB19."+status, true);
+        if (result != null && result.IsSuccess) {
+            Thread.sleep(200);
+            this.readStatus();
+            log.info("RGV 鍛戒护涓嬪彂[id:{}] >>>>> {}", slave.getId(), JSON.toJSON("DB19."+status));
+            OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), "DB19."+status));
+            return true;
+        } else {
+            OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆戝啓鍏GV plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}] [DB鍧楋細{4}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), "DB19."+status));
+            log.error("鍐欏叆RGV plc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}] [DB鍧楋細{4}]", slave.getId(), slave.getIp(), slave.getPort(), "DB19."+status);
+            return false;
+        }
+    }
+
     @Override
     public void close() {
         siemensNet.ConnectClose();
diff --git a/src/main/java/com/zy/system/controller/LicenseCreatorController.java b/src/main/java/com/zy/system/controller/LicenseCreatorController.java
index 0aafb3b..3d21663 100644
--- a/src/main/java/com/zy/system/controller/LicenseCreatorController.java
+++ b/src/main/java/com/zy/system/controller/LicenseCreatorController.java
@@ -61,6 +61,9 @@
      */
     @RequestMapping(value = "/getLicenseDays")
     public R getLicenseDays() {
+        if (true){
+            return R.ok().add(0);
+        }
         LicenseVerify licenseVerify = new LicenseVerify();
         LicenseContent verifyInfo = licenseVerify.getVerifyInfo();
         if (verifyInfo == null) {
diff --git a/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java b/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java
index 1659df2..071ef11 100644
--- a/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java
+++ b/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java
@@ -79,11 +79,12 @@
 
                 LicenseVerify licenseVerify = new LicenseVerify();
                 //瀹夎璇佷功
-                LicenseContent install = licenseVerify.install(param);
+//                LicenseContent install = licenseVerify.install(param);
 
                 logger.info("++++++++ 璁稿彲璇佸姞杞界粨鏉� ++++++++");
 
-                return install != null;
+//                return install != null;
+                return true;
             } catch (Exception e) {
                 return false;
             }
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index 6c71edd..c8ff53d 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -10,6 +10,14 @@
     rack: 0
     slot: 0
     demo: false
+  # EXT绌挎杞�1
+  ext[0]:
+    id: 1
+    ip: 10.10.10.200
+    port: 6000
+    rack: 0
+    slot: 0
+    demo: false
   crn[0]: #鍫嗗灈鏈�1
     id: 1
     ip: 172.17.91.2
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 219a0df..218745a 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -8,7 +8,7 @@
     name: @pom.build.finalName@
   datasource:
     driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
-    url: jdbc:sqlserver://127.0.0.1:1433;databasename=ghtzasrs
+    url: jdbc:sqlserver://192.168.4.15:1433;databasename=ssdasrs
     username: sa
     password: sa@123
   mvc:
@@ -37,7 +37,7 @@
 
 #License鐩稿叧閰嶇疆
 license:
-  subject: ghtzwcs
+  subject: ssdwcs
   publicAlias: publicCert
   storePass: public_zhongyang_123456789
   licensePath: license.lic
diff --git a/src/main/resources/mapper/BasExtMapper.xml b/src/main/resources/mapper/BasExtMapper.xml
new file mode 100644
index 0000000..ebfde0a
--- /dev/null
+++ b/src/main/resources/mapper/BasExtMapper.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zy.asrs.mapper.BasExtMapper">
+
+    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+    <resultMap id="BaseResultMap" type="com.zy.asrs.entity.BasExt">
+        <result column="ext_no" property="extNo" />
+        <result column="ext_task" property="extTask" />
+        <result column="ext_put" property="extPut" />
+
+    </resultMap>
+
+</mapper>
diff --git a/src/main/webapp/views/deviceOperate/extOperate.html b/src/main/webapp/views/deviceOperate/extOperate.html
new file mode 100644
index 0000000..c59d53c
--- /dev/null
+++ b/src/main/webapp/views/deviceOperate/extOperate.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+	<meta charset="UTF-8">
+	<title>Ext璁惧</title>
+	<link rel="stylesheet" href="../../static/wcs/css/element.css">
+	<script type="text/javascript" src="../../static/wcs/js/jquery/jquery-3.3.1.min.js"></script>
+	<script type="text/javascript" src="../../static/wcs/js/common.js"></script>
+	<script type="text/javascript" src="../../static/wcs/js/vue.min.js"></script>
+	<script type="text/javascript" src="../../static/wcs/js/element.js"></script>
+</head>
+
+<body>
+	<div id="app" style="display: flex;justify-content: center;flex-wrap: wrap;">
+		<div style="width: 100%;">
+			<el-table border ref="singleTable" :data="tableData" highlight-current-row
+					  max-height="450" style="width: 100%">
+				<el-table-column property="devNo" label="鏈烘鑷傜紪鍙�">
+				</el-table-column>
+				<el-table-column property="inEnable" label="鍏佽鍙�">
+				</el-table-column>
+				<el-table-column property="outEnable" label="鍏佽鏀�">
+				</el-table-column>
+			</el-table>
+		</div>
+	</div>
+	<script>
+		var app = new Vue({
+			el: '#app',
+			data: {
+				tableData: [],
+			},
+			created() {
+				this.init()
+			},
+			watch: {
+
+			},
+			methods: {
+				init() {
+					this.getTableData()
+
+					setInterval(() => {
+						this.getTableData()
+					}, 1000)
+				},
+				getTableData() {
+					let that = this;
+					$.ajax({
+						url: baseUrl + "/site/list/ext/auth",
+						headers: {
+							'token': localStorage.getItem('token')
+						},
+						data: {},
+						dataType: 'json',
+						contentType: 'application/json;charset=UTF-8',
+						method: 'GET',
+						success: function (res) {
+							console.log(res)
+							that.tableData = res.data
+						}
+					});
+				}
+			}
+		})
+	</script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/src/main/webapp/views/deviceOperate/rgvOperate.html b/src/main/webapp/views/deviceOperate/rgvOperate.html
index a28b408..dc6b8b2 100644
--- a/src/main/webapp/views/deviceOperate/rgvOperate.html
+++ b/src/main/webapp/views/deviceOperate/rgvOperate.html
@@ -54,8 +54,25 @@
 						</el-form>
 
 						<div>
-							<el-button v-if="demo === 'N' " @click="demos('true')" type="warning">婕旂ず</el-button>
-							<el-button v-if="demo === 'Y' " @click="demos('false')" type="warning">鍙栨秷婕旂ず</el-button>
+							<el-button v-if="demo === 'N' " @click="demos('true')" type="info">婕旂ず</el-button>
+							<el-button v-if="demo === 'Y' " @click="demos('false')" type="info">鍙栨秷婕旂ず</el-button>
+						</div>
+						<div style="margin: 10px auto 10px auto" v-if="demo === 'N' ">
+							<el-button @click="rgvStatus(8)" type="primary">鍚姩</el-button>
+							<el-button @click="rgvStatus(9)" type="primary">鍋滄</el-button>
+							<el-button @click="rgvStatus(14)" type="primary">鍗曟満</el-button>
+							<el-button @click="rgvStatus(15)" type="primary">鑱旀満</el-button>
+							<el-button @click="rgvStatus(11)" type="primary">澶嶄綅鎸夐挳</el-button>
+						</div>
+						<div style="margin: 10px auto 10px auto" v-if="demo === 'N' ">
+							<el-button @click="rgvStatus(7)" type="warning">鎶ヨ娑堥煶</el-button>
+							<el-button @click="rgvStatus(12)" type="warning">鎵嬪姩</el-button>
+							<el-button @click="rgvStatus(13)" type="warning">鎵嬪姩瀹氫綅</el-button>
+						</div>
+						<div style="margin: 10px auto 10px auto" v-if="demo === 'N' ">
+							<el-button :style="" @click="rgvStatus(5)" type="danger">寮哄埗鍚姩</el-button>
+							<el-button @click="rgvStatus(10)" type="danger">鎬ュ仠</el-button>
+							<el-button @click="rgvStatus(16)" type="danger">璐у弶瀹氫綅鍥炰腑</el-button>
 						</div>
 						<div style="margin-top: 5px" v-if="demo === 'Y'">
 							<el-button  @click="staTova(2,1)" type="warning">杈撻��-缃崲1</el-button>
@@ -310,6 +327,39 @@
 						});
 					})
 				},
+				rgvStatus(method){
+					let that = this
+					that.$confirm('姝ゆ搷浣滃瓨鍦ㄩ闄╋紝鏄惁缁х画','鎻愮ず',{
+						confirmButtonText: '纭畾',
+						cancelButtonText: '鍙栨秷',
+						type: 'warning'
+					}).then(()=>{
+						$.ajax({
+							url: baseUrl + "/rgv/demo/status/rgvStatus",
+							headers: {
+								'token': localStorage.getItem('token')
+							},
+							data:{
+								rgvNo : this.formParam.rgvNo,
+								status : Number(method)
+							},
+							method: 'Get',
+							success: function (res) {
+								if (res.code == 200) {
+									that.$message({
+										message: res.msg,
+										type: 'success'
+									});
+								} else {
+									that.$message({
+										message: res.msg,
+										type: 'error'
+									});
+								}
+							}
+						});
+					})
+				},
 				requestOperate(method) {
 					let that = this
 					that.$confirm('姝ゆ搷浣滃瓨鍦ㄩ闄╋紝鏄惁缁х画','鎻愮ず',{

--
Gitblit v1.9.1