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