From a1bd5fc40223cee3445fc62b7555afee7bbcdab5 Mon Sep 17 00:00:00 2001
From: pjb <pjb123456>
Date: 星期二, 12 八月 2025 16:06:49 +0800
Subject: [PATCH] 小车异常

---
 src/main/java/com/zy/asrs/domain/param/RgvCircularShuttleParam.java |    2 
 src/main/java/com/zy/core/thread/RgvThread.java                     |   30 +++++++
 src/main/java/com/zy/asrs/controller/RgvController.java             |   31 +++++++
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java         |    3 
 src/main/webapp/views/index.html                                    |   97 ++++++++++++++++++++++++
 src/main/java/com/zy/asrs/entity/BasRgvErrLog.java                  |   46 +++++++++-
 src/main/java/com/zy/core/model/protocol/RgvProtocol.java           |    4 +
 7 files changed, 206 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
index 10af29a..e24ad49 100644
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -62,6 +62,8 @@
     @Autowired
     private MainServiceImpl mainService;
     @Autowired
+    private BasRgvErrLogService basRgvErrLogService;
+    @Autowired
     private BasDevpPositionService basDevpPositionService;
     @Autowired
     private BasCircularShuttleService basCircularShuttleService;
@@ -492,6 +494,21 @@
                         if (rgvCircularShuttleParam.getStatus()==0){
                             rgvCircularShuttleParam.setStatus$(rgvProtocol.statusType.desc);
                         }
+                        if (rgvProtocol.getAlarmList().isEmpty()){
+                            rgvCircularShuttleParam.setError(0);
+                            rgvCircularShuttleParam.setError$("-");
+                        } else {
+                            StringBuilder alarmList = new StringBuilder();
+                            for (Integer alarm : rgvProtocol.getAlarmList()){
+                                BasRgvErr rgvErr = basRgvErrMapper.selectById(alarm);
+                                alarmList.append((rgvErr==null || rgvErr.getErrName()==null)? "鏈煡寮傚父:"+alarm:rgvErr.getErrName());
+                                if (alarm.equals(rgvProtocol.getAlarmList().get(rgvProtocol.getAlarmList().size() - 1))){
+                                    break;
+                                }
+                                alarmList.append("---");
+                            }
+                            rgvCircularShuttleParam.setError$(alarmList.toString());
+                        }
                     }
                 }
             }
@@ -527,4 +544,18 @@
         return R.ok();
     }
 
+
+    @PostMapping("/task/rgv/circular/shuttle/mast/position/data/v1")
+//    @ManagerAuth(memo = "浣滀笟淇℃伅")
+    public R rgvCircularShuttleV1(){
+        List<BasRgvErrLog> result = new ArrayList<>();
+        for (int i = 1 ; i<11; i ++){
+            BasRgvErrLog basRgvErrLog = basRgvErrLogService.selectOne(new EntityWrapper<BasRgvErrLog>().eq("rgv_no", i).orderBy("id", false));
+            if (basRgvErrLog!=null){
+                result.add(basRgvErrLog);
+            }
+        }
+        return R.ok().add(result);
+    }
+
 }
\ No newline at end of file
diff --git a/src/main/java/com/zy/asrs/domain/param/RgvCircularShuttleParam.java b/src/main/java/com/zy/asrs/domain/param/RgvCircularShuttleParam.java
index bc1ca9e..04a7574 100644
--- a/src/main/java/com/zy/asrs/domain/param/RgvCircularShuttleParam.java
+++ b/src/main/java/com/zy/asrs/domain/param/RgvCircularShuttleParam.java
@@ -22,7 +22,9 @@
      * 0:姝e父锛�1锛氱鐢�
      */
     private Integer status;
+    private Integer error;
     private String status$ = "鏈煡";
+    private String error$ = "-";
     private Long position = 0L;
 
     public RgvCircularShuttleParam(){};
diff --git a/src/main/java/com/zy/asrs/entity/BasRgvErrLog.java b/src/main/java/com/zy/asrs/entity/BasRgvErrLog.java
index 1d57f34..bceb92b 100644
--- a/src/main/java/com/zy/asrs/entity/BasRgvErrLog.java
+++ b/src/main/java/com/zy/asrs/entity/BasRgvErrLog.java
@@ -1,15 +1,20 @@
 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 java.text.SimpleDateFormat;
-import java.util.Date;
-import org.springframework.format.annotation.DateTimeFormat;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import com.core.common.Cools;
+import com.core.common.SpringUtils;
+import com.zy.asrs.mapper.BasRgvErrMapper;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import com.baomidou.mybatisplus.annotations.TableName;
+import org.springframework.format.annotation.DateTimeFormat;
+
 import java.io.Serializable;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
 
 @Data
 @TableName("asr_bas_rgv_err_log")
@@ -126,7 +131,7 @@
     private String error;
 
     /**
-     * 寮傚父鎯呭喌 1: 鏈鐞�  2: 宸蹭慨澶�  
+     * 寮傚父鎯呭喌 1: 鏈鐞�  2: 宸蹭慨澶�
      */
     @ApiModelProperty(value= "寮傚父鎯呭喌 1: 鏈鐞�  2: 宸蹭慨澶�  ")
     private Integer status;
@@ -169,6 +174,33 @@
 
     public BasRgvErrLog() {}
 
+    public BasRgvErrLog(List<Integer> alarmLists , Short taskNo,Integer rgvNo) {
+        BasRgvErrMapper basRgvErrMapper = SpringUtils.getBean(BasRgvErrMapper.class);
+        StringBuilder alarmList = new StringBuilder();
+        for (Integer alarm : alarmLists){
+            BasRgvErr rgvErr = basRgvErrMapper.selectById(alarm);
+            alarmList.append((rgvErr==null || rgvErr.getErrName()==null)? "鏈煡寮傚父:"+alarm:rgvErr.getErrName());
+            if (alarm.equals(alarmLists.get(alarmLists.size() - 1))){
+                this.errCode = alarm;
+                break;
+            }
+            alarmList.append("---");
+        }
+        this.error = alarmList.toString();
+        Date now = new Date();
+        this.uuid = String.valueOf(now.getTime());
+        this.wrkNo = taskNo.intValue();
+        this.startTime = now;
+        this.endTime = now;
+        this.rgvNo = rgvNo;
+        this.status = 1;
+        this.createTime = now;
+        this.createBy = 9999L;
+        this.updateTime = now;
+        this.updateBy = 9999L;
+        this.memo = "寮傚父鑷姩璁板綍";
+    }
+
     public BasRgvErrLog(String uuid,Integer wrkNo,Date startTime,Date endTime,Long wrkSts,Integer ioType,Integer rgvNo,Integer plcNo,String locNo,Integer staNo,Integer sourceStaNo,String sourceLocNo,String barcode,Integer errCode,String error,Integer status,Date createTime,Long createBy,Date updateTime,Long updateBy,String memo) {
         this.uuid = uuid;
         this.wrkNo = wrkNo;
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 79458bd..e5b80a8 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -499,6 +499,9 @@
                         break;
                     }
                     wrkMast.setWrkSts(2L);
+                    if (wrkMast.getIoType()==120){
+                        wrkMast.setWrkSts(53L);
+                    }
                     Date now = new Date();
                     wrkMast.setRgvFinishTime(now);
                     wrkMastService.updateById(wrkMast);
diff --git a/src/main/java/com/zy/core/model/protocol/RgvProtocol.java b/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
index b44627f..955956d 100644
--- a/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
@@ -4,6 +4,9 @@
 import com.zy.core.enums.*;
 import lombok.Data;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * Created by vincent on 2020/8/7
  */
@@ -104,6 +107,7 @@
      * 寮傚父鐮�
      */
     public Short alarm;
+    public List<Integer> alarmList = new ArrayList<>();
 
     /**
      * 蹇冭烦鎸囦护 1-2姣忕鍒囨崲涓�娆�
diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java
index 2225e69..1d95911 100644
--- a/src/main/java/com/zy/core/thread/RgvThread.java
+++ b/src/main/java/com/zy/core/thread/RgvThread.java
@@ -8,7 +8,9 @@
 import com.core.common.DateUtils;
 import com.core.common.SpringUtils;
 import com.zy.asrs.entity.BasRgv;
+import com.zy.asrs.entity.BasRgvErrLog;
 import com.zy.asrs.entity.BasRgvOpt;
+import com.zy.asrs.service.BasRgvErrLogService;
 import com.zy.asrs.service.BasRgvOptService;
 import com.zy.asrs.service.BasRgvService;
 import com.zy.core.ThreadHandler;
@@ -24,7 +26,10 @@
 import lombok.extern.slf4j.Slf4j;
 
 import java.text.MessageFormat;
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
 
 /**
  * RGV绾跨▼
@@ -45,6 +50,7 @@
      * 宸ヤ綅2澶嶄綅淇″彿
      */
     private boolean resetFlag2 = false;
+    private boolean alarmChangeSign = false;
 
     public RgvThread(RgvSlave slave) {
         this.slave = slave;
@@ -147,6 +153,7 @@
             OperateResultExOne<byte[]> result = siemensNet.Read("DB100.0", (short) 20);
 //            OperateResultExOne<byte[]> resultV = siemensNet.Read("DB20.16", (short) 2);
 //            OperateResultExOne<byte[]> resultE = siemensNet.Read("DB20.26", (short) 2);
+            OperateResultExOne<byte[]> resultError = siemensNet.Read("DB13.0", (short) 13);
             if (result.IsSuccess) {
                 if (null == rgvProtocol) {
                     rgvProtocol = new RgvProtocol();
@@ -164,6 +171,20 @@
 //                rgvProtocol.setInstantaneousSpeed((double) siemensNet.getByteTransform().TransInt16(resultV.Content, 0));
 //                rgvProtocol.setEndStaM(siemensNet.getByteTransform().TransInt16(resultE.Content, 0));
 //                rgvProtocol.setRgvPos((long)NumUtils.GetRandomIntInRange(1737000));
+
+                boolean[] statusAlarmList = siemensNet.getByteTransform().TransBool(resultError.Content, 0, 13);
+                int alarmCount = 0;
+                List<Integer> alarmList = new ArrayList<>();
+                for (boolean alarmSign : statusAlarmList){
+                    alarmCount++;
+                    if (alarmSign){
+                        alarmList.add(alarmCount);
+                    }
+                }
+                alarmChangeSign = new HashSet<>(alarmList).equals(new HashSet<>(rgvProtocol.getAlarmList()));
+                rgvProtocol.setAlarmList(alarmList);
+
+
                 OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
 
                 try {
@@ -176,6 +197,15 @@
                     if (!basRgvService.updateById(rgvProtocol.toSqlModel(basRgv))){
                         log.error("RGV plc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
                     }
+                    try{
+                        if (!alarmChangeSign && !alarmList.isEmpty()){
+                            BasRgvErrLogService basRgvErrLogService = SpringUtils.getBean(BasRgvErrLogService.class);
+                            BasRgvErrLog basRgvErrLog = new BasRgvErrLog(rgvProtocol.getAlarmList(), rgvProtocol.getTaskNo1(), rgvProtocol.getRgvNo());
+                            basRgvErrLogService.insert(basRgvErrLog);
+                        }
+                    } catch (Exception e){
+                        log.error("RGV寮傚父淇℃伅淇濆瓨澶辫触锛侊紒");
+                    }
                 } catch (Exception ignore) {
 
                 }
diff --git a/src/main/webapp/views/index.html b/src/main/webapp/views/index.html
index 6cced2e..bbcb785 100644
--- a/src/main/webapp/views/index.html
+++ b/src/main/webapp/views/index.html
@@ -100,6 +100,19 @@
             z-index: 1000; /* 纭繚鍦ㄥ叾浠栧厓绱犱箣涓� */
         }
 
+        .task-bar-right1 {
+            position: fixed;
+            top: 5%;
+            /*transform: translateY(-50%);*/
+            width: 25%; /* 璁剧疆瀹藉害 */
+            background-color: rgba(255, 255, 255, 0); /* 鍗婇�忔槑鑳屾櫙 */
+
+            border-radius: 5px;
+            padding: 10px;
+            box-shadow: 0 0 10px rgba(0, 0, 0, 0);
+            z-index: 1000; /* 纭繚鍦ㄥ叾浠栧厓绱犱箣涓� */
+        }
+
         .task-bar-right {
             position: fixed;
             top: 1%;
@@ -356,6 +369,10 @@
                             label="鐘舵��">
                     </el-table-column>
                     <el-table-column
+                            prop="error$"
+                            label="寮傚父">
+                    </el-table-column>
+                    <el-table-column
                             label="鎿嶄綔"
                             type="template">
                         <template slot-scope="scope">
@@ -370,6 +387,38 @@
                 </el-table>
             </div>
         </div>
+        <div class="task-bar-right1 right-task-bar">
+            <div>
+                <el-tooltip :content="'Switch value: ' + valueRight1" placement="top">
+                    <el-switch
+                            v-model="valueRight1"
+                            active-color="#13ce66"
+                            inactive-color="#ff4949"
+                            active-value="100"
+                            inactive-value="0">
+                    </el-switch>
+                </el-tooltip>
+            </div>
+            <div v-if="valueRight1 === '100' " class="task-bar-div1">
+                <el-table
+                        :data="tableDataRight1"
+                        style="width: 100%"
+                        :row-class-name="tableRowClassName">
+                    <el-table-column
+                            prop="rgvNo"
+                            label="灏忚溅鍙�">
+                    </el-table-column>
+                    <el-table-column
+                            prop="error"
+                            label="寮傚父">
+                    </el-table-column>
+                    <el-table-column
+                            prop="createTime$"
+                            label="璁板綍鏃ユ湡">
+                    </el-table-column>
+                </el-table>
+            </div>
+        </div>
     </div>
 
     <script>
@@ -379,6 +428,7 @@
                 activeNames: ['1'],
                 valueLeft: '0',
                 valueRight: '0',
+                valueRight1: '0',
                 licenseDay: ' ',
                 licenseDayI: 100,
                 valueSystem: false,
@@ -387,6 +437,7 @@
                 energyGatheringRing: [],
                 tableDataLeft: [],
                 tableDataRight: [],
+                tableDataRight1: [],
                 devpPos1:[
                     {dev_no: 116,pos:633980},
                     {dev_no: 117,pos:604043},
@@ -442,6 +493,7 @@
                     this.getTableDataTrack()
                     this.getTableDataLeft()
                     this.getTableDataRight()
+                    this.getTableDataRight1()
                     this.getValueSystem()
                     this.getLicenseDays()
 
@@ -451,6 +503,7 @@
                         this.getTableDataTrack()
                         this.getTableDataLeft()
                         this.getTableDataRight()
+                        this.getTableDataRight1()
                         this.getValueSystem()
                         this.getLicenseDays()
 
@@ -465,6 +518,18 @@
 
                         if (val.length >= 1){
                             this.handleChangeValueRight(1)
+                        }
+                    }
+                },
+                handleChange1(val) {
+                    console.log(val);
+                    if (val.length === 0){
+                        valueRight1 = '0';
+                    } else {
+                        console.log("2222"+val);
+
+                        if (val.length >= 1){
+                            this.handleChangeValueRight1(1)
                         }
                     }
                 },
@@ -537,6 +602,22 @@
                             valueRight = '100';
                         default:
                             valueRight = '0';
+                    }
+                },
+                handleChangeValueRight1(val) {
+                    console.log("33333"+val);
+
+                    switch (val){
+                        case 1:
+                            valueRight1 = '100';
+                        case 2:
+                            valueRight1 = '100';
+                        case 3:
+                            valueRight1 = '100';
+                        case 4:
+                            valueRight1 = '100';
+                        default:
+                            valueRight1 = '0';
                     }
                 },
                 tableRowClassName({row, rowIndex}) {
@@ -636,6 +717,22 @@
                         }
                     });
                 },
+                getTableDataRight1() {
+                    let that = this;
+                    $.ajax({
+                        url: baseUrl + "/rgv/task/rgv/circular/shuttle/mast/position/data/v1",
+                        headers: {
+                            'token': localStorage.getItem('token')
+                        },
+                        data: {},
+                        dataType: 'json',
+                        contentType: 'application/json;charset=UTF-8',
+                        method: 'post',
+                        success: function (res) {
+                            that.tableDataRight1 = res.data
+                        }
+                    });
+                },
                 getTableDataRgv() {
                     let that = this;
                     // that.tableDataRgv = busPsto

--
Gitblit v1.9.1