From deeea3d8de2d09fbeef300fcb6a790d72cfee42e Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期五, 26 八月 2022 15:30:03 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/BasSteService.java          |    4 +
 src/main/java/com/zy/core/thread/SteThread.java               |   65 ++++++++++++---------
 src/main/java/com/zy/core/model/protocol/SteProtocol.java     |    7 ++
 src/main/java/com/zy/asrs/controller/SteController.java       |   15 ++++
 src/main/java/com/zy/asrs/domain/vo/SteMsgTableVo.java        |    2 
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java   |   18 +++---
 src/main/webapp/views/ste.html                                |   33 ++++++++--
 src/main/webapp/views/pipeline.html                           |    7 +-
 src/main/java/com/zy/asrs/mapper/BasSteMapper.java            |    4 +
 src/main/java/com/zy/asrs/domain/vo/SteDataVo.java            |    2 
 src/main/java/com/zy/asrs/service/impl/BasSteServiceImpl.java |    9 ++
 src/main/resources/mapper/BasSteMapper.xml                    |   12 +++
 12 files changed, 123 insertions(+), 55 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/SteController.java b/src/main/java/com/zy/asrs/controller/SteController.java
index ba77109..7ff7b92 100644
--- a/src/main/java/com/zy/asrs/controller/SteController.java
+++ b/src/main/java/com/zy/asrs/controller/SteController.java
@@ -134,6 +134,7 @@
             }
             vo.setSpeed(steProtocol.getSpeed());  // 閫熷害
             vo.setCloser(steProtocol.getCloser());  // 杩戠偣璺濈
+            vo.setPakMk(steProtocol.getPakMk());    // 浣滀笟鏍囪
         }
         return R.ok().add(list);
     }
@@ -164,6 +165,7 @@
                     vo.setLev(basSte.getLev());
                     vo.setCrnNo(basSte.getCrnNo());
                     vo.setWorkNo(basSte.getWrkNo());
+                    vo.setPakMk(basSte.getPakMk());
                 }
                 break;
             }
@@ -178,7 +180,18 @@
         if (basSte == null) {
             return R.error();
         }
-
+        // 鑾峰彇绌挎杞︿俊鎭�
+        SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, vo.getSteNo());
+        SteProtocol steProtocol = steThread.getSteProtocol();
+        if (steProtocol != null) {
+           throw new CoolException(vo.getSteNo() + "鍙风┛姊溅涓嶅湪绾匡紝鏃犳硶淇濆瓨");
+        }
+        if (!Cools.isEmpty(vo.getRow(), vo.getBay(), vo.getLev())) {
+            if (!steThread.modifyPosHandle(vo.getRow(), vo.getBay(), vo.getLev())) {
+                throw new CoolException("鏈嶅姟鍣ㄩ敊璇�");
+            }
+        }
+        basSte.setPakMk(vo.getPakMk());
         basSte.setWrkNo(vo.getWorkNo());
         basSte.setCrnNo(vo.getCrnNo());
         basSte.setUpdateTime(new Date());
diff --git a/src/main/java/com/zy/asrs/domain/vo/SteDataVo.java b/src/main/java/com/zy/asrs/domain/vo/SteDataVo.java
index 71ebde7..b0f70d8 100644
--- a/src/main/java/com/zy/asrs/domain/vo/SteDataVo.java
+++ b/src/main/java/com/zy/asrs/domain/vo/SteDataVo.java
@@ -22,4 +22,6 @@
 
     private Integer crnNo;
 
+    private String pakMk;
+
 }
diff --git a/src/main/java/com/zy/asrs/domain/vo/SteMsgTableVo.java b/src/main/java/com/zy/asrs/domain/vo/SteMsgTableVo.java
index 414e6b5..0be072d 100644
--- a/src/main/java/com/zy/asrs/domain/vo/SteMsgTableVo.java
+++ b/src/main/java/com/zy/asrs/domain/vo/SteMsgTableVo.java
@@ -44,5 +44,7 @@
     // 杩戠偣璺濈
     public Double closer = 0.0D;
 
+    // 浣滀笟鏍囪
+    private String pakMk = "-";
 
 }
diff --git a/src/main/java/com/zy/asrs/mapper/BasSteMapper.java b/src/main/java/com/zy/asrs/mapper/BasSteMapper.java
index f26536e..605f410 100644
--- a/src/main/java/com/zy/asrs/mapper/BasSteMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/BasSteMapper.java
@@ -10,6 +10,8 @@
 @Repository
 public interface BasSteMapper extends BaseMapper<BasSte> {
 
-    int updatePos(@Param("row")Integer row, @Param("bay")Integer bay, @Param("lev")Integer lev);
+    int updatePos(@Param("steNo")Integer steNo, @Param("row")Integer row, @Param("bay")Integer bay, @Param("lev")Integer lev);
+
+    int updatePakMk(@Param("steNo")Integer steNo, @Param("pakMk")String pakMk);
 
 }
diff --git a/src/main/java/com/zy/asrs/service/BasSteService.java b/src/main/java/com/zy/asrs/service/BasSteService.java
index bd599d0..e26fd21 100644
--- a/src/main/java/com/zy/asrs/service/BasSteService.java
+++ b/src/main/java/com/zy/asrs/service/BasSteService.java
@@ -7,6 +7,8 @@
 
     BasSte findByCrnNo(Integer crnNo);
 
-    int updatePos(Integer row, Integer bay, Integer lev);
+    Boolean updatePos(Integer steNo, Integer row, Integer bay, Integer lev);
+
+    Boolean updatePakMk(Integer steNo, String pakMk);
 
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/BasSteServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasSteServiceImpl.java
index 240ba59..5b3e947 100644
--- a/src/main/java/com/zy/asrs/service/impl/BasSteServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/BasSteServiceImpl.java
@@ -28,8 +28,13 @@
     }
 
     @Override
-    public int updatePos(Integer row, Integer bay, Integer lev) {
-        return this.baseMapper.updatePos(row, bay, lev);
+    public Boolean updatePos(Integer steNo, Integer row, Integer bay, Integer lev) {
+        return this.baseMapper.updatePos(steNo, row, bay, lev) > 0;
+    }
+
+    @Override
+    public Boolean updatePakMk(Integer steNo, String pakMk) {
+        return this.baseMapper.updatePakMk(steNo, pakMk) > 0;
     }
 
 }
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 f0ad4e0..9c430f5 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -547,7 +547,7 @@
                         SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
                         SteProtocol steProtocol = steThread.getSteProtocol();
                         if (steProtocol == null) { continue; }
-                        if (steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
+                        if (steProtocol.isIdle()) {
 
                             // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
                             if (wrkMastMapper.selectWorking(slave.getId()) != null) {
@@ -690,7 +690,7 @@
                             SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
                             SteProtocol steProtocol = steThread.getSteProtocol();
                             if (steProtocol == null) { continue; }
-                            if (steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
+                            if (steProtocol.isIdle()) {
 
                                 // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
                                 SteCommand steCommand = new SteCommand();
@@ -781,7 +781,7 @@
             SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId());
             SteProtocol steProtocol = steThread.getSteProtocol();
             if (steProtocol == null) { continue; }
-            if (steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
+            if (steProtocol.isIdle()) {
                 if (Utils.getGroupRow(locNo).equals(Utils.getGroupRow(steProtocol.getRow().intValue())) && steProtocol.getBay() == Utils.getBay(locNo) && steProtocol.getLev() == Utils.getLev(locNo)) {
                     return steProtocol.getSteNo().intValue();
                 }
@@ -800,7 +800,7 @@
         SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, basSte.getSteNo());
         SteProtocol steProtocol = steThread.getSteProtocol();
         if (steProtocol != null) {
-            if (steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
+            if (steProtocol.isIdle()) {
                 return steThread;
             }
         }
@@ -816,7 +816,7 @@
         SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
         SteProtocol steProtocol = steThread.getSteProtocol();
         if (steProtocol == null) { return; }
-        if (steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
+        if (steProtocol.isIdle()) {
 
             // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
             SteCommand steCommand = new SteCommand();
@@ -849,7 +849,7 @@
         SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
         SteProtocol steProtocol = steThread.getSteProtocol();
         if (steProtocol == null) { return; }
-        if (steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
+        if (steProtocol.isIdle()) {
             // 鍫嗗灈鏈虹┖闂�
             if (crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() == 0) {
                 LocMast locMast;
@@ -926,7 +926,7 @@
         SteProtocol steProtocol = steThread.getSteProtocol();
         if (steProtocol == null) { return; }
         // 绌挎杞︾┖闂�
-        if (steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
+        if (steProtocol.isIdle()) {
             // 鍫嗗灈鏈虹┖闂�
             if (crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() == 0) {
 
@@ -1009,7 +1009,7 @@
                         SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
                         SteProtocol steProtocol = steThread.getSteProtocol();
                         if (steProtocol == null) { continue; }
-                        if (steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
+                        if (steProtocol.isIdle()) {
                             // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
                             SteCommand steCommand = new SteCommand();
                             steCommand.setSteNo(steNo); // 绌挎杞︾紪鍙�
@@ -1078,7 +1078,7 @@
                     SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
                     SteProtocol steProtocol = steThread.getSteProtocol();
                     if (steProtocol == null) { continue; }
-                    if (steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
+                    if (steProtocol.isIdle()) {
                         // 绌挎杞﹂噸鏂板畾浣嶆帓鍒楀眰
                         if (!steThread.confirmPos()) {
                             log.error("{}鍙风┛姊溅閲嶆柊瀹氫綅澶辫触锛佷綔涓氬伐浣滄。浠诲姟鍙凤細{}", wrkMast.getSteNo(), wrkMast.getWrkNo());
diff --git a/src/main/java/com/zy/core/model/protocol/SteProtocol.java b/src/main/java/com/zy/core/model/protocol/SteProtocol.java
index 90f2103..bc4eb2f 100644
--- a/src/main/java/com/zy/core/model/protocol/SteProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/SteProtocol.java
@@ -217,6 +217,7 @@
      */
     private String lastIo = "I";
 
+    private String pakMk = "-";
 
     public BasSte toSqlModel(BasSte basSte){
         if (alarm!=null) {
@@ -225,4 +226,10 @@
         basSte.setWrkNo(taskNo);
         return basSte;
     }
+
+    // 鏄惁澶勪簬绌洪棽寰呭懡鐘舵��
+    public Boolean isIdle() {
+        return getStatusType().equals(SteStatusType.IDLE) && pakMk.equals("N");
+    }
+
 }
diff --git a/src/main/java/com/zy/core/thread/SteThread.java b/src/main/java/com/zy/core/thread/SteThread.java
index 1ba98de..a2ad916 100644
--- a/src/main/java/com/zy/core/thread/SteThread.java
+++ b/src/main/java/com/zy/core/thread/SteThread.java
@@ -42,10 +42,6 @@
     private short heartBeatVal = 1;
     private boolean resetFlag = false;
 
-    private Integer lastRow;
-    private Integer lastBay;
-    private Integer lastLev;
-
     public SteThread(SteSlave slave) {
         this.slave = slave;
     }
@@ -186,6 +182,12 @@
                 // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
                 BasSteService service = SpringUtils.getBean(BasSteService.class);
                 if (null != service) {
+                    // 鍚屾pakMk
+                    BasSte one = service.selectById(slave.getId());
+                    if (one != null) {
+                        steProtocol.setPakMk(one.getPakMk());
+                    }
+
                     BasSte basSte = new BasSte();
                     basSte.setSteNo(slave.getId());
                     if (!service.updateById(steProtocol.toSqlModel(basSte))){
@@ -306,40 +308,45 @@
     }
 
     public void modifyPos(Integer row, Integer bay, Integer lev) {
-        this.lastRow = row;
-        this.lastBay = bay;
-        this.lastLev = lev;
+        BasSteService service = SpringUtils.getBean(BasSteService.class);
+        if (!service.updatePos(this.slave.getId(), row, bay, lev)) {
+            log.error("鏇存柊{}鍙风┛姊溅瀹氫綅澶辫触 ===>> 鎺掞細銆恵}銆�, 鍒楋細銆恵}銆戯紝灞傦細銆恵}銆�", this.slave.getId(), row, bay, lev);
+        }
     }
 
     public boolean confirmPos() {
-        if (this.lastRow != null && this.lastRow != 0) {
-            if (this.lastBay != null && this.lastBay != 0) {
-                if (this.lastLev != null && this.lastLev != 0) {
-                    BasSteService service = SpringUtils.getBean(BasSteService.class);
-                    BasSte basSte = service.selectById(slave.getId());
-                    if (basSte != null) {
-                        // 鏇存柊plc鏁版嵁鍧�
-                        short[] arr = new short[] {this.lastRow.shortValue(), this.lastBay.shortValue(), this.lastLev.shortValue()};
-                        OperateResult result = siemensS7Net.Write("V1002", arr);
-                        if (result.IsSuccess) {
-                            // 鏇存柊鏁版嵁搴�
-                            if (service.updatePos(this.lastRow, this.lastBay, this.lastLev) > 0) {
-                                this.lastRow = null;
-                                this.lastBay = null;
-                                this.lastLev = null;
-                                return true;
-                            } else {
-                                log.error("{}鍙风┛姊溅淇敼鏁版嵁搴撳畾浣嶅け璐ワ紒锛侊紒", slave.getId());
-                            }
-                        }
-                    }
-
+        BasSteService service = SpringUtils.getBean(BasSteService.class);
+        BasSte basSte = service.selectById(slave.getId());
+        if (basSte != null) {
+            // 鏇存柊plc鏁版嵁鍧�
+            short[] arr = new short[] {basSte.getRow().shortValue(), basSte.getBay().shortValue(), basSte.getLev().shortValue()};
+            OperateResult result = siemensS7Net.Write("V1002", arr);
+            if (result.IsSuccess) {
+                // 鏇存柊鏁版嵁搴�
+                if (service.updatePakMk(this.slave.getId(), "N")) {
+                    return true;
+                } else {
+                    log.error("{}鍙风┛姊溅淇敼鏁版嵁搴撳畾浣嶅け璐ワ紒锛侊紒", slave.getId());
                 }
             }
         }
         return false;
     }
 
+    public boolean modifyPosHandle(Integer row, Integer bay, Integer lev) {
+        short[] arr = new short[] {row.shortValue(), bay.shortValue(), lev.shortValue()};
+        OperateResult result = siemensS7Net.Write("V1002", arr);
+        if (!result.IsSuccess) {
+            return false;
+        }
+        BasSteService service = SpringUtils.getBean(BasSteService.class);
+        if (!service.updatePos(this.slave.getId(), row, bay, lev)) {
+            log.error("鏇存柊{}鍙风┛姊溅瀹氫綅澶辫触 ===>> 鎺掞細銆恵}銆�, 鍒楋細銆恵}銆戯紝灞傦細銆恵}銆�", this.slave.getId(), row, bay, lev);
+            return false;
+        }
+        return true;
+    }
+
     @Override
     public void close() {
         siemensS7Net.ConnectClose();
diff --git a/src/main/resources/mapper/BasSteMapper.xml b/src/main/resources/mapper/BasSteMapper.xml
index f89586a..4b23fb9 100644
--- a/src/main/resources/mapper/BasSteMapper.xml
+++ b/src/main/resources/mapper/BasSteMapper.xml
@@ -31,7 +31,17 @@
     <update id="updatePos">
         update asr_bas_ste
         set his_row = row, his_bay = bay,his_lev = lev,
-        row = #{row}, bay = #{bay}, lev = #{lev}
+        row = #{row}, bay = #{bay}, lev = #{lev},
+        pak_mk = 'Y'
+        where 1=1
+        and ste_no = #{steNo}
+    </update>
+
+    <update id="updatePakMk">
+        update asr_bas_ste
+        set pak_mk = #{pakMk}
+        where 1=1
+        and ste_no = #{steNo}
     </update>
 
 </mapper>
diff --git a/src/main/webapp/views/pipeline.html b/src/main/webapp/views/pipeline.html
index 487bad6..997dc8d 100644
--- a/src/main/webapp/views/pipeline.html
+++ b/src/main/webapp/views/pipeline.html
@@ -84,7 +84,7 @@
         </footer>
 
         <div id="site-detl" style="display: none">
-            <form>
+            <div>
                 <div class="form-item">
                     <label class="form-label">绔欏彿:</label>
                     <div class="form-input">
@@ -113,7 +113,7 @@
                     <button class="form-button" id="save">淇濆瓨</button>
                     <button class="form-button" id="cancel" style="background-color: #D0D0D0">鍙栨秷</button>
                 </div>
-            </form>
+            </div>
         </div>
     </div>
 
@@ -326,6 +326,7 @@
             staNo:  $('#staNo').val(),
             pakMk: $('#pakMk').val()
         }, function (res) {
+            layer.close(layerDetl);
             layer.msg("淇敼鎴愬姛",{icon: 1,});
         })
     })
@@ -338,4 +339,4 @@
     })
 
 </script>
-</html>
\ No newline at end of file
+</html>
diff --git a/src/main/webapp/views/ste.html b/src/main/webapp/views/ste.html
index 4555227..8628a2f 100644
--- a/src/main/webapp/views/ste.html
+++ b/src/main/webapp/views/ste.html
@@ -73,6 +73,7 @@
                             <th>鐩爣搴撲綅</th>
                             <th>閫熷害</th>
                             <th>杩戠偣璺濈</th>
+                            <th>浣滀笟鏍囪</th>
                         </tr>
                     </thead>
                     <tbody>
@@ -133,7 +134,7 @@
     </div>
 
     <div id="ste-detl" style="display: none">
-        <form>
+        <div>
             <div class="form-item">
                 <label class="form-label">绌挎杞﹀彿:</label>
                 <div class="form-input">
@@ -155,26 +156,32 @@
             <div class="form-item">
                 <label class="form-label">鍒�:</label>
                 <div class="form-input">
-                    <input id="bay" name="bay" type="text" class="layui-input" autocomplete="off">
+                    <input id="bay" name="bay" type="number" class="layui-input" autocomplete="off">
                 </div>
             </div>
             <div class="form-item">
                 <label class="form-label">灞�:</label>
                 <div class="form-input">
-                    <input id="lev" name="lev" type="text" class="layui-input" autocomplete="off">
+                    <input id="lev" name="lev" type="number" class="layui-input" autocomplete="off">
                 </div>
             </div>
             <div class="form-item">
                 <label class="form-label">鍫嗗灈鏈�:</label>
                 <div class="form-input">
-                    <input id="crnNo" name="crnNo" type="text" class="layui-input" autocomplete="off">
+                    <input id="crnNo" name="crnNo" type="number" class="layui-input" autocomplete="off">
+                </div>
+            </div>
+            <div class="form-item">
+                <label class="form-label">浣滀笟鏍囪:</label>
+                <div class="form-input">
+                    <input id="pakMk" name="pakMk" type="text" class="layui-input" autocomplete="off">
                 </div>
             </div>
             <div class="form-item form-button-container">
                 <button class="form-button" id="save">淇濆瓨</button>
                 <button class="form-button" id="cancel" style="background-color: #D0D0D0">鍙栨秷</button>
             </div>
-        </form>
+        </di>
     </div>
 </body>
 </html>
@@ -217,16 +224,17 @@
         }
     }
 
+    var layerIdx;
     $(document).on('click ','.pos-btn', function () {
         let steNo = Number($(this).parent().attr("data-steNo"));
-        layerDetl = layer.open({
+        layerIdx = layer.open({
             type: 1,
             title: false,
             shadeClose: true,
             offset: [$(this).offset().top + 30 + 'px', $(this).offset().left + 'px'],
             anim: 5,
             shade: [0],
-            area: ['310px', '340px'],
+            area: ['310px', '370px'],
             closeBtn: 0,
             content: $("#ste-detl"),
             success: function(layero, index){
@@ -237,6 +245,7 @@
                     $('#bay').val(res.data.bay);
                     $('#lev').val(res.data.lev);
                     $('#crnNo').val(res.data.crnNo);
+                    $('#pakMk').val(res.data.pakMk);
                 })
             },
             end: function () {
@@ -246,6 +255,7 @@
                 $('#bay').val("");
                 $('#lev').val("");
                 $('#crnNo').val("");
+                $('#pakMk').val("");
             }
         })
     })
@@ -258,9 +268,15 @@
             bay: $('#bay').val(),
             lev:  $('#lev').val(),
             crnNo: $('#crnNo').val(),
+            pakMk: $('#pakMk').val(),
         }, function (res) {
-            layer.msg("淇敼鎴愬姛",{icon: 1,});
+            layer.msg("淇敼鎴愬姛", {icon: 1,});
+            layer.close(layerIdx);
         })
+    })
+
+    $(document).on('click ','#cancel', function () {
+        layer.close(layerIdx);
     })
 
     // 绌挎杞︿俊鎭〃鑾峰彇 ---- 琛ㄤ竴
@@ -327,6 +343,7 @@
                         setVal(tr.children("td").eq(6), table[i-1].locNo);
                         setVal(tr.children("td").eq(7), table[i-1].speed);
                         setVal(tr.children("td").eq(8), table[i-1].closer);
+                        setVal(tr.children("td").eq(9), table[i-1].pakMk);
                     }
                 } else if (res.code === 403){
                     window.location.href = baseUrl+"/login";

--
Gitblit v1.9.1