From 44bddde6414f5c7565c21ef510c6c63dbc0971c3 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 13 一月 2021 15:12:50 +0800
Subject: [PATCH] #test

---
 src/main/java/com/zy/core/model/CrnSlave.java               |    2 
 src/main/webapp/views/crn.html                              |   57 ++++++++++++++-----
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   89 +++++++++++++++++++++++++++++
 src/main/webapp/static/css/crn.css                          |    2 
 src/main/java/com/zy/asrs/domain/param/CrnDemoParam.java    |    2 
 src/main/java/com/zy/core/MainProcess.java                  |    3 +
 src/main/java/com/zy/asrs/controller/CrnController.java     |    9 ++
 src/main/resources/application.yml                          |    2 
 8 files changed, 149 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java
index 4b5edf5..6cfaab7 100644
--- a/src/main/java/com/zy/asrs/controller/CrnController.java
+++ b/src/main/java/com/zy/asrs/controller/CrnController.java
@@ -216,6 +216,7 @@
         return R.ok().add(str.toString());
     }
 
+
     @PostMapping("/demo/switch")
     @ManagerAuth(memo = "鍫嗗灈鏈烘紨绀�")
     public R crnDemo(CrnDemoParam param) throws InterruptedException {
@@ -229,11 +230,17 @@
             return R.error("鍙d护閿欒");
         }
         Thread.sleep(200L);
-        mainService.crnDemoOfLocMove(param.getCrnId());
+        for (CrnSlave crnSlave : slaveProperties.getCrn()) {
+            if (crnSlave.getId().equals(param.getCrnId())) {
+                crnSlave.setDemo(param.getOpt());
+            }
+        }
+//        mainService.crnDemoOfLocMove(param.getCrnId());
         return R.ok();
     }
 
 
+
     /****************************************************************/
     /************************** 鎵嬪姩鎿嶄綔 ******************************/
     /****************************************************************/
diff --git a/src/main/java/com/zy/asrs/domain/param/CrnDemoParam.java b/src/main/java/com/zy/asrs/domain/param/CrnDemoParam.java
index e85d39c..c724435 100644
--- a/src/main/java/com/zy/asrs/domain/param/CrnDemoParam.java
+++ b/src/main/java/com/zy/asrs/domain/param/CrnDemoParam.java
@@ -15,4 +15,6 @@
     // 瀵嗙爜鍙d护
     private String password;
 
+    private Boolean opt;
+
 }
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 28556f8..cb11c6a 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1222,4 +1222,93 @@
         }
     }
 
+    /**
+     * 鍫嗗灈鏈烘紨绀�  ===>> 搴撲綅绉昏浆
+     */
+    public synchronized void crnDemoOfLocMove1(){
+        for (CrnSlave crn : slaveProperties.getCrn()) {
+            if (!crn.getDemo()) { continue; }   // 蹇呴』涓烘紨绀虹姸鎬�
+
+            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+            if (crnProtocol == null) { continue; }
+
+            // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
+            if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
+                // 鑾峰彇绉诲簱宸ヤ綔妗d俊鎭�
+                WrkMast wrkMast = wrkMastMapper.selectLocMove(crn.getId());
+                if (null != wrkMast) { continue; }
+
+                LocMast sourceLoc = locMastService.queryDemoSourceLoc(crn.getId());
+                LocMast loc = locMastService.queryDemoLoc(crn.getId());
+                if (null == sourceLoc || null == loc) { continue; }
+
+                String sourceLocNo = sourceLoc.getLocNo();
+                String locNo = loc.getLocNo();
+
+                // 鑾峰彇宸ヤ綔鍙�
+                int workNo = commonService.getWorkNo(WorkNoType.PICK.type);
+                // 淇濆瓨宸ヤ綔妗�
+                wrkMast = new WrkMast();
+                wrkMast.setWrkNo(workNo);
+                wrkMast.setIoTime(new Date());
+                wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+                wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
+                wrkMast.setIoPri(13D);
+                wrkMast.setCrnNo(crn.getId());
+                wrkMast.setSourceLocNo(sourceLocNo); // 婧愬簱浣�
+                wrkMast.setLocNo(locNo); // 鐩爣搴撲綅
+                wrkMast.setFullPlt("N"); // 婊℃澘锛歒
+                wrkMast.setPicking("N"); // 鎷f枡
+                wrkMast.setExitMk("N"); // 閫�鍑�
+                wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D")?"Y":"N"); // 绌烘澘
+                wrkMast.setBarcode(sourceLoc.getBarcode()); // 鎵樼洏鐮�
+                wrkMast.setLinkMis("N");
+                wrkMast.setAppeTime(new Date());
+                wrkMast.setModiTime(new Date());
+                int res = wrkMastMapper.insert(wrkMast);
+                if (res == 0) {
+                    throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+                }
+                // 宸ヤ綔妗f槑缁嗕繚瀛�
+                List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo));
+                for (LocDetl locDetl : locDetls) {
+                    WrkDetl wrkDetl = new WrkDetl();
+                    wrkDetl.setWrkNo(workNo);
+                    wrkDetl.setIoTime(new Date());
+                    wrkDetl.setAnfme(locDetl.getAnfme());
+                    VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
+                    wrkDetl.setAppeTime(new Date());
+                    wrkDetl.setModiTime(new Date());
+                    if (!wrkDetlService.insert(wrkDetl)) {
+                        throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+                    }
+                }
+                // 淇敼婧愬簱浣嶇姸鎬�
+                if (sourceLoc.getLocSts().equals("D") || sourceLoc.getLocSts().equals("F")) {
+                    sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害
+                    sourceLoc.setModiTime(new Date());
+                    if (!locMastService.updateById(sourceLoc)){
+                        throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
+                    }
+                } else {
+                    throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�");
+                }
+                // 淇敼鐩爣搴撲綅鐘舵��
+                if (loc.getLocSts().equals("O")) {
+                    loc.setLocSts("S"); // S.鍏ュ簱棰勭害
+                    loc.setModiTime(new Date());
+                    if (!locMastService.updateById(loc)) {
+                        throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
+                    }
+                } else {
+                    throw new CoolException("绉昏浆澶辫触");
+                }
+
+            }
+
+        }
+    }
+
+
 }
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 9583e04..3a3ceb3 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -39,6 +39,9 @@
                         continue;
                     }
 
+                    // 婕旂ず
+                    mainService.crnDemoOfLocMove1();
+
                     // 鍏ュ簱  ===>> 鍏ュ簱绔欏埌鍫嗗灈鏈虹珯锛屾牴鎹潯鐮佹壂鎻忕敓鎴愬叆搴撳伐浣滄。
                     mainService.generateStoreWrkFile(); // 缁勬墭
                     mainService.generateStoreWrkFile0(); // WMS鍏ュ簱
diff --git a/src/main/java/com/zy/core/model/CrnSlave.java b/src/main/java/com/zy/core/model/CrnSlave.java
index 42d2822..cfee50d 100644
--- a/src/main/java/com/zy/core/model/CrnSlave.java
+++ b/src/main/java/com/zy/core/model/CrnSlave.java
@@ -20,6 +20,8 @@
 
     private Integer offset;
 
+    private Boolean demo;
+
     // 鍫嗗灈鏈哄叆搴撶珯鐐�
     private List<CrnStn> crnInStn = new ArrayList<>();
 
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 0b84f05..61d34df 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -50,6 +50,7 @@
     slot: 1
     # 鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
     offset: 2
+    demo: false
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[0]:
       devpPlcId: ${wcs-slave.devp[0].id}
@@ -87,6 +88,7 @@
     slot: 1
     # 鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
     offset: 2
+    demo: false
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[0]:
       devpPlcId: ${wcs-slave.devp[0].id}
diff --git a/src/main/webapp/static/css/crn.css b/src/main/webapp/static/css/crn.css
index 97ae7d0..ea974b0 100644
--- a/src/main/webapp/static/css/crn.css
+++ b/src/main/webapp/static/css/crn.css
@@ -40,7 +40,7 @@
 .crn-command-item input {
     vertical-align: middle;
     outline: none;
-    width: 70%;
+    width: 60%;
 }
 
 /* 鍙� */
diff --git a/src/main/webapp/views/crn.html b/src/main/webapp/views/crn.html
index 04c02b2..70068ac 100644
--- a/src/main/webapp/views/crn.html
+++ b/src/main/webapp/views/crn.html
@@ -44,18 +44,20 @@
 <!-- 鏃ュ織鐩戞帶鏉� -->
 <div class="log-board">
     <!-- 鎵ц鍛戒护 -->
+
+    <!-- 鎵ц鍛戒护 -->
     <div class="command-log">
         <h2>鎵ц涓殑鍛戒护</h2>
         <div class="crn-command-item">
             <label>1#</label>
-<!--            <button id="demoBtn-1" class="demoBtn" onclick="demoSwitch(this.id)">婕旂ず</button>-->
-                        <span>&nbsp;</span>
+            <button id="demoBtn-1" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>
+            <!--            <span>&nbsp;</span>-->
             <input id="crn1" disabled="disabled">
         </div>
         <div class="crn-command-item">
             <label>2#</label>
-<!--            <button id="demoBtn-2" class="demoBtn" onclick="demoSwitch(this.id)">婕旂ず</button>-->
-                        <span>&nbsp;</span>
+            <button id="demoBtn-2" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>
+            <!--            <span>&nbsp;</span>-->
             <input id="crn2" disabled="disabled">
         </div>
     </div>
@@ -229,6 +231,7 @@
     setInterval(function () {
         getCrnOutput();
         operatorBlockShow();
+        initDemo();
     },500);
 
     // 鍒ゆ柇鎵嬪姩鎿嶄綔妯″潡鏄惁鍙敤
@@ -550,22 +553,45 @@
         crnOutputDom.scrollTop = crnOutputDom.scrollHeight;
     }
 
-    // function demoSwitch(el) {
-    //     var crnId = el.split("-")[1];
-    //     layer.prompt({title: '璇疯緭鍏ュ彛浠わ紝骞跺紑濮�'+crnId+"鍙峰爢鍨涙満婕旂ず", formType: 1, shadeClose: true}, function (pass, idx) {
-    //         layer.close(idx);
-    //         doDemo(crnId, pass); // 鍋滄wcs绯荤粺
-    //     });
-    // }
+
+    var crnDemoData;
+    function initDemo() {
+        $.ajax({
+            url: baseUrl+"/crn/demo/status",
+            async: false,
+            method: 'GET',
+            success: function (res) {
+                if (res.code === 200) {
+                    crnDemoData = res.data;
+                    crnDemoData.forEach(function (e) {
+                        $("#demoBtn-"+e.crnNo).html(e.demo?'鍋滄':'婕旂ず');
+                    })
+                } else if (res.code === 403){
+                    parent.location.href = baseUrl+"/login";
+                }  else {
+                    layer.msg(res.msg, {icon: 2});
+                }
+            }
+        })
+    }
 
     function demoSwitch(el) {
         var crnId = el.split("-")[1];
-        layer.confirm(crnId + ' 鍙峰爢鍨涙満纭畾寮�濮嬫紨绀哄悧锛�', function(){
-            doDemo(crnId, 'root'); // 鍋滄wcs绯荤粺
+        var opt;
+        if (crnDemoData == null) {
+            initDemo();
+        }
+        for (var i = 0; i<crnDemoData.length; i++) {
+            if (Number(crnDemoData[i].crnNo) === Number(crnId)) {
+                opt = !crnDemoData[i].demo;
+            }
+        }
+        layer.confirm(crnId + ' 鍙峰爢鍨涙満纭畾'+ (opt?'寮�濮�':'鍋滄') + '婕旂ず鍚楋紵', function(){
+            doDemo(crnId, 'root', opt); // 鍋滄wcs绯荤粺
         });
     }
 
-    function doDemo(crnId, password) {
+    function doDemo(crnId, password, opt) {
         // 鍔犺浇tips
         var index = layer.load(1, {
             shade: [0.1,'#fff']
@@ -576,7 +602,8 @@
             // async: false,
             data: {
                 crnId: Number(crnId),
-                password: password
+                password: password,
+                opt: opt
             },
             method: 'POST',
             success: function (res) {

--
Gitblit v1.9.1