Commit 41a2860a sunke

报警页面播放声音

任务队列页面执行队列只显示当前执行的任务
1 个父辈 2821bcf3
...@@ -451,3 +451,38 @@ ...@@ -451,3 +451,38 @@
>> - qty: 数量 >> - qty: 数量
>> - w: 料盘直径(未配置尺寸信息时使用传入尺寸,否则使用配置尺寸) >> - w: 料盘直径(未配置尺寸信息时使用传入尺寸,否则使用配置尺寸)
>> - h: 厚度(未配置尺寸信息时使用传入尺寸,否则使用配置尺寸) >> - h: 厚度(未配置尺寸信息时使用传入尺寸,否则使用配置尺寸)
## dataLog表字段含义
{ "_id" : "1000114", "_class" : "com.myproject.bean.update.DataLog", "singleOut" : false, "stopSendToQisda" : false, "storageName" : "line-ac-11", "cid" : "line-ac-11", "storageId" : "12", "posId" : "33342", "posName" : "4D1116CC0016", "barcode" : "R507682020080462257", "w" : 7, "h" : 8, "cutReel" : false, "urgentReel" : false, "lessSendReel" : false, "packageReel" : false, "appendInfo" : { "outItemId" : "513024", "dnNo" : "", "facility" : "ST", "company" : "BACHS", "action" : "补料", "hSerial" : "46228", "so" : "2527563", "soseq" : "21157830", "refno" : "F001_2527563N_1", "preBindSlot" : "71", "bindSlot" : "71", "slotStr" : "9-23", "slotIndex" : 71, "rfidIndex" : 4, "rfid" : "D89", "rfidLoc" : 28, "cisIn" : false, "shelfType" : "D" }, "partNumber" : "7H.10621.511", "num" : 2000, "type" : 2, "status" : "FINISHED", "locInfo" : "2", "sourceName" : "46228_2527563_71", "subSourceInfo" : "D", "outOrder" : 277, "createDate" : { "$date" : 1601174705738 }, "updateDate" : { "$date" : 1601175846540 } }
id: 任务ID
>> - createDate: 任务创建时间(毫秒)
>> - updateDate: 任务更新时间(毫秒)
>> - updateDateStr: 任务更新时间(字符串)
>> - storageName: 料仓/料架名称
>> - cid: 料仓或料架编号
>> - storageId: 料仓/料架ID
>> - posId: 库位ID
>> - posName: 库位名称
>> - posStr: 料仓名称+库位名称
>> - barcode: 物料条码
>> - partNumber: 物料编号
>> - num: 物料数量
>> - type: 任务类型 1=入库 2=出库
>> - status: 任务状态: 无状态=NONE,等待=WAIT,正在执行=EXECUTING,已暂停=PAUSE,已完成=FINISHED,已取消=CANCEL,已结束=END
>> - sourceId: 来源(工单)ID
>> - sourceName: 来源(工单)名称,入库时为groupName
>> - subSourceId: 站位/工单条目Id
>> - subSourceInfo: 站位/工单条目名称
>> - operator: 操作人
>> - lightColor: 任务颜色(亮灯的颜色),用于区分不同工单
>> - memo: 备注信息
...@@ -18,6 +18,7 @@ import org.apache.logging.log4j.util.Strings; ...@@ -18,6 +18,7 @@ import org.apache.logging.log4j.util.Strings;
import java.io.*; import java.io.*;
import java.net.URL; import java.net.URL;
import java.net.URLConnection; import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.*; import java.util.*;
import java.util.Map.Entry; import java.util.Map.Entry;
...@@ -94,6 +95,7 @@ public class HttpHelper { ...@@ -94,6 +95,7 @@ public class HttpHelper {
value = valueObj.toString(); value = valueObj.toString();
} }
} }
value = URLEncoder.encode(value,"UTF-8");
param += key + "=" + value + "&"; param += key + "=" + value + "&";
} }
param = param.substring(0, param.length() - 1); param = param.substring(0, param.length() - 1);
......
...@@ -106,6 +106,7 @@ public class StoragePosUpdateController extends BaseUpdateController { ...@@ -106,6 +106,7 @@ public class StoragePosUpdateController extends BaseUpdateController {
} }
pos.setEnabled(enabled); pos.setEnabled(enabled);
try { try {
log.info("改变库位["+pos.getPosName()+"]启用状态为:" + enabled);
storagePosManager.save(pos); storagePosManager.save(pos);
Storage storage = dataCache.getStorageById(pos.getStorageId()); Storage storage = dataCache.getStorageById(pos.getStorageId());
dataCache.reloadStorage(storage); dataCache.reloadStorage(storage);
......
...@@ -405,13 +405,13 @@ public class QisdaCache { ...@@ -405,13 +405,13 @@ public class QisdaCache {
for (QisdaApiRequest apiRequest : failedList) { for (QisdaApiRequest apiRequest : failedList) {
//log.info("重发通知指令[" + apiRequest.getMapKey() + "]到Qisda"); //log.info("重发通知指令[" + apiRequest.getMapKey() + "]到Qisda");
String result = HttpHelper.postParam(apiRequest.getUrl(),apiRequest.getParamMap()); String result = HttpHelper.postParam(apiRequest.getUrl(),apiRequest.getParamMap());
//log.info("重发通知指令[" + apiRequest.getMapKey() + "]到Qisda返回:" + result); log.info("重发通知指令[" + apiRequest.getMapKey() + "]"+apiRequest.getParamMap()+"到Qisda返回:" + result);
String resultStr = XmlUtil.getNodeBody("string", result); String resultStr = XmlUtil.getNodeBody("string", result);
if(resultStr.startsWith("-1") || resultStr.startsWith("0")){ if(resultStr.startsWith("-1") || resultStr.startsWith("0")){
//log.info(apiRequest.getMapKey() + "Qisda接口调用失败,需要进行重发"); //log.info(apiRequest.getMapKey() + "Qisda接口调用失败,需要进行重发");
//return;
}else{ }else{
QisdaCache.removeFailedRequest(apiRequest); QisdaCache.removeFailedRequest(apiRequest);
return;
} }
} }
} }
......
...@@ -40,22 +40,28 @@ ...@@ -40,22 +40,28 @@
<div class="row "> <div class="row ">
<!--出入库 --> <!--出入库 -->
<%--<div class="col-md-12">--%> <%--<div class="col-md-12">--%>
<%--<!-- BEGIN CHART PORTLET-->--%> <%--<!-- BEGIN CHART PORTLET-->--%>
<%--<div class="portlet light bordered">--%> <%--<div class="portlet light bordered">--%>
<%--<div class="portlet-title">--%> <%--<div class="portlet-title">--%>
<%--<div class="caption">--%> <%--<div class="caption">--%>
<%--<i class="icon-bar-chart font-green-haze"></i>--%> <%--<i class="icon-bar-chart font-green-haze"></i>--%>
<%--<span class="caption-subject bold uppercase font-green-haze"><fmt:message key="runStatus.throughput"/></span>--%> <%--<span class="caption-subject bold uppercase font-green-haze"><fmt:message key="runStatus.throughput"/></span>--%>
<%--</div>--%> <%--</div>--%>
<%--<div class="tools">--%> <%--<div class="tools">--%>
<%--</div>--%> <%--</div>--%>
<%--</div>--%> <%--</div>--%>
<%--<div class="portlet-body">--%> <%--<div class="portlet-body">--%>
<%--<div id="inOutChart" class="chart" style="height: 300px; overflow: hidden;">--%> <%--<div id="inOutChart" class="chart" style="height: 300px; overflow: hidden;">--%>
<%--</div>--%> <%--</div>--%>
<%--</div>--%> <%--</div>--%>
<%--</div>--%>
<%--<!-- END CHART PORTLET-->--%>
<%--</div>--%>
<%--<div class="row">--%>
<%--<div class="col-md-12 col-sm-12">--%>
<%--<input type="checkbox" id="check1" onclick="check()" class="right" >开启报警声音--%>
<%--</div>--%> <%--</div>--%>
<%--<!-- END CHART PORTLET-->--%>
<%--</div>--%> <%--</div>--%>
<!--AGV--> <!--AGV-->
...@@ -193,6 +199,7 @@ ...@@ -193,6 +199,7 @@
var msgMap = {}; var msgMap = {};
$.get('${ctx}/rest/api/qisda/device/deviceMsgList', function (list) { $.get('${ctx}/rest/api/qisda/device/deviceMsgList', function (list) {
var playSound = false;
for(var i in list){ for(var i in list){
var msgBean = list[i]; var msgBean = list[i];
var msgKey = msgBean.msgKey; var msgKey = msgBean.msgKey;
...@@ -201,6 +208,9 @@ ...@@ -201,6 +208,9 @@
alarmClass = ""; alarmClass = "";
} }
var documentId = msgKey.split(".")[0]; var documentId = msgKey.split(".")[0];
if(documentId == 'box' || documentId == 'line'){
playSound = true;
}
var msgItem = "<li>" + var msgItem = "<li>" +
"<span class='task-title-sp '>["+msgBean.name+"]</span>" + "<span class='task-title-sp '>["+msgBean.name+"]</span>" +
"<span class='label label-sm "+alarmClass+"'>" + "<span class='label label-sm "+alarmClass+"'>" +
...@@ -227,9 +237,37 @@ ...@@ -227,9 +237,37 @@
}); });
playOrStopSound(playSound);
}); });
} }
var audio="";
var audioContent=false;
var playFlag = 1;
function playOrStopSound (playSound) {
if(!audioContent){
audio=document.createElement("audio");
var source = document.createElement("source");
source.src="${ctx}/scripts/sound/6531.mp3";
audio.loop = "loop";
audio.appendChild(source);
audio.style.visibility="hidden";
audioContent = true;
}
if(playSound){
if(playFlag ==1){
audio.play();// 这个就是播放
}
playFlag++;
}else{
audio.pause();// 这个就是暂停
playFlag = 1;
}
}
function updateTasks(){ function updateTasks(){
//任务列表 //任务列表
$.post("${ctx}/service/store/tasks", {}, function (data) { $.post("${ctx}/service/store/tasks", {}, function (data) {
......
...@@ -12,6 +12,42 @@ ...@@ -12,6 +12,42 @@
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<ul class="timeline"> <ul class="timeline">
<li class="timeline-yellow">
<div class="timeline-time">
<span class="date">2021 </span>
<span class="time">06-02 </span>
</div>
<div class="timeline-icon">
<i class="fa fa-clock-o"></i>
</div>
<div class="timeline-body">
<h2>版本: V2021060217</h2>
<div class="timeline-content">
<ul>
<li>报警页面播放声音</li>
<li>任务队列页面执行队列只显示当前执行的任务</li>
</ul>
</div>
</div>
</li>
<li class="timeline-grey">
<div class="timeline-time">
<span class="date">2021</span>
<span class="time">06-01</span>
</div>
<div class="timeline-icon">
<i class="fa fa-clock-o"></i>
</div>
<div class="timeline-body">
<h2>版本: V2021060120</h2>
<div class="timeline-content">
<ul>
<li>任务重发记录异常日志(可能会导致日志过大,风险已告知佳世达)</li>
</ul>
</div>
</div>
</li>
<li class="timeline-purple"> <li class="timeline-purple">
<div class="timeline-time"> <div class="timeline-time">
<span class="date">2021</span> <span class="date">2021</span>
......
...@@ -239,7 +239,7 @@ ...@@ -239,7 +239,7 @@
<div class="page-footer-inner"> <div class="page-footer-inner">
2016&copy; <a href="${ctx}/updateHistory.html">SMD BOX</a> 2016&copy; <a href="${ctx}/updateHistory.html">SMD BOX</a>
</div> </div>
<span class="right" style="color: #a3a3a3;">Version: 2021.05.11</span> <span class="right" style="color: #a3a3a3;">Version: 2021.06.02</span>
<div class="scroll-to-top"> <div class="scroll-to-top">
<i class="icon-arrow-up"></i> <i class="icon-arrow-up"></i>
</div> </div>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!