Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
Gree
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 796407e1
由
sunke
编写于
2020-07-01 10:52:22 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
盘点出库,出到皮带线上
1 个父辈
9e082650
隐藏空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
424 行增加
和
29 行删除
myproject/src/main/java/com/myproject/bean/qisda/AppendInfo.java
myproject/src/main/java/com/myproject/bean/qisda/DeviceAlarmMsgBean.java
myproject/src/main/java/com/myproject/bean/qisda/InquiryShelfBean.java
myproject/src/main/java/com/myproject/bean/update/DataLog.java
myproject/src/main/java/com/myproject/bean/update/qisda/OutInfo.java
myproject/src/main/java/com/myproject/bean/update/qisda/OutItem.java
myproject/src/main/java/com/myproject/webapp/controller/qisda/DifferentInventoryController.java
myproject/src/main/java/com/myproject/webapp/controller/qisda/util/OutInfoCache.java
myproject/src/main/java/com/myproject/webapp/controller/webService/QisdaCache.java
myproject/src/main/java/com/myproject/webapp/controller/webService/QisdaDeviceController.java
myproject/src/main/java/com/myproject/webapp/controller/webService/StorageDataController.java
myproject/src/main/java/com/myproject/webapp/controller/webService/TaskService.java
myproject/src/main/webapp/WEB-INF/pages/qisda/alarmMsg.jsp
myproject/src/main/java/com/myproject/bean/qisda/AppendInfo.java
查看文件 @
796407e
...
...
@@ -302,7 +302,14 @@ public class AppendInfo {
return
false
;
}
return
getAction
().
contains
(
"急料"
)
||
getAction
().
contains
(
"指定"
)
||
getAction
().
contains
(
"单独出库"
);
return
getAction
().
contains
(
"急料"
)
||
getAction
().
contains
(
"指定"
)
||
getAction
().
contains
(
"单独出库"
)
||
isCheckAction
();
}
/**
* 盘点出库需求单
*/
public
boolean
isCheckAction
(){
return
action
==
null
||
action
.
isEmpty
()
||
getAction
().
contains
(
"盘点出库"
);
}
public
String
getDnOrFacility
(){
...
...
myproject/src/main/java/com/myproject/bean/qisda/DeviceAlarmMsgBean.java
0 → 100644
查看文件 @
796407e
package
com
.
myproject
.
bean
.
qisda
;
import
java.util.Date
;
/**
* Created by sunke on 2020/6/27.
*/
public
class
DeviceAlarmMsgBean
{
public
DeviceAlarmMsgBean
()
{
}
public
DeviceAlarmMsgBean
(
String
name
,
String
msgKey
,
String
msgValue
)
{
this
.
msgKey
=
msgKey
;
this
.
msgValue
=
msgValue
;
this
.
name
=
name
;
}
private
String
name
;
private
String
msgKey
;
private
String
msgValue
;
private
Date
startTime
;
private
Date
updateTime
=
new
Date
();
public
void
updateMsg
(
DeviceAlarmMsgBean
newBean
){
this
.
msgValue
=
newBean
.
getMsgValue
();
this
.
name
=
newBean
.
getName
();
this
.
updateTime
=
new
Date
();
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getMsgKey
()
{
return
msgKey
;
}
public
void
setMsgKey
(
String
msgKey
)
{
this
.
msgKey
=
msgKey
;
}
public
String
getMsgValue
()
{
return
msgValue
;
}
public
void
setMsgValue
(
String
msgValue
)
{
this
.
msgValue
=
msgValue
;
}
public
Date
getStartTime
()
{
return
startTime
;
}
public
void
setStartTime
(
Date
startTime
)
{
this
.
startTime
=
startTime
;
}
public
Date
getUpdateTime
()
{
return
updateTime
;
}
public
void
setUpdateTime
(
Date
updateTime
)
{
this
.
updateTime
=
updateTime
;
}
public
boolean
isTimeout
(){
return
System
.
currentTimeMillis
()
-
updateTime
.
getTime
()
>
10
*
1000
;
}
}
myproject/src/main/java/com/myproject/bean/qisda/InquiryShelfBean.java
查看文件 @
796407e
...
...
@@ -227,7 +227,7 @@ public class InquiryShelfBean {
shelfType
=
StorageConstants
.
SHEFL_TYPE
.
A
;
}
else
{
//需要分盘的料或紧急料或者缺料补发的料,且不是包装料,统一都放到料串上
if
(
task
.
isCutReel
()
||
task
.
isUrgentReel
()
||
task
.
isLessSendReel
()){
if
(
task
.
isCutReel
()
||
task
.
isUrgentReel
()
||
task
.
isLessSendReel
()
||
task
.
getAppendInfo
().
isUrgentAction
()
){
//B料串
return
StorageConstants
.
SHEFL_TYPE
.
B
;
}
else
{
...
...
myproject/src/main/java/com/myproject/bean/update/DataLog.java
查看文件 @
796407e
...
...
@@ -620,6 +620,13 @@ public class DataLog extends BaseMongoBean /*implements Comparable<DataLog>*/ {
}
/**
* 是否是在皮带线上
*/
public
boolean
isInBelt
(){
return
status
.
toLowerCase
().
equals
(
"inbelt"
);
}
/**
* 非等待状态,超过10分钟未更新状态,等待状态,超过30分钟未更新过状态,认为超时
*/
public
boolean
isTimeout
(){
...
...
myproject/src/main/java/com/myproject/bean/update/qisda/OutInfo.java
查看文件 @
796407e
...
...
@@ -194,11 +194,11 @@ public class OutInfo extends BaseMongoBean {
}
/**
* 紧急料或指定料或单独出库料
* 紧急料或指定料或单独出库料
(包括盘点出库)
* @return
*/
public
boolean
isUrgentAction
(){
return
getAction
().
contains
(
"急料"
)
||
getAction
().
contains
(
"指定料"
)
||
getAction
().
contains
(
"单独出库"
);
return
getAction
().
contains
(
"急料"
)
||
getAction
().
contains
(
"指定料"
)
||
getAction
().
contains
(
"单独出库"
)
||
isCheckAction
()
;
}
/**
...
...
@@ -216,6 +216,14 @@ public class OutInfo extends BaseMongoBean {
return
getAction
().
contains
(
"补料"
);
}
/**
* 盘点出库需求单
*/
public
boolean
isCheckAction
(){
return
getAction
().
contains
(
"盘点出库"
);
}
public
int
getTaskFinishNum
()
{
return
taskFinishNum
;
}
...
...
myproject/src/main/java/com/myproject/bean/update/qisda/OutItem.java
查看文件 @
796407e
...
...
@@ -355,7 +355,7 @@ public class OutItem extends BaseMongoBean {
}
public
boolean
isUrgentAction
(){
return
getAction
().
contains
(
"急料"
)
||
getAction
().
contains
(
"指定"
)
||
getAction
().
contains
(
"单独出库"
);
return
getAction
().
contains
(
"急料"
)
||
getAction
().
contains
(
"指定"
)
||
getAction
().
contains
(
"单独出库"
)
||
isCheckAction
()
;
}
/**
...
...
@@ -365,6 +365,13 @@ public class OutItem extends BaseMongoBean {
return
getAction
().
contains
(
"补料"
);
}
/**
* 盘点出库需求单
*/
public
boolean
isCheckAction
(){
return
getAction
().
contains
(
"盘点出库"
);
}
public
String
getAction
()
{
if
(
action
==
null
){
return
""
;
...
...
myproject/src/main/java/com/myproject/webapp/controller/qisda/DifferentInventoryController.java
查看文件 @
796407e
...
...
@@ -116,7 +116,10 @@ public class DifferentInventoryController extends BaseController {
List
<
DiffInfo
>
qisdaDiffReels
=
new
ArrayList
<>();
for
(
String
reelId
:
qisdaReelMap
.
keySet
()){
if
(!
neotelReelMap
.
containsKey
(
reelId
)){
qisdaDiffReels
.
add
(
qisdaReelMap
.
get
(
reelId
));
DiffInfo
diffInfo
=
qisdaReelMap
.
get
(
reelId
);
qisdaDiffReels
.
add
(
diffInfo
);
//log.info("清理不一致库存"+reelId+"["+diffInfo.getLocation()+"]");
//QisdaApi.ClearStockBy(diffInfo.getLocation());
}
}
log
.
info
(
"与Qisda库存比对完成"
);
...
...
myproject/src/main/java/com/myproject/webapp/controller/qisda/util/OutInfoCache.java
查看文件 @
796407e
...
...
@@ -980,6 +980,10 @@ public class OutInfoCache {
if
(
outItem
.
isUrgentAction
()){
task
.
setUrgentReel
(
true
);
if
(
outItem
.
isCheckAction
()){
//盘点出库,不走紧急出料口
task
.
setUrgentReel
(
false
);
}
}
Storage
storage
=
dataCache
.
getStorageById
(
pos
.
getStorageId
());
...
...
myproject/src/main/java/com/myproject/webapp/controller/webService/QisdaCache.java
查看文件 @
796407e
...
...
@@ -109,9 +109,16 @@ public class QisdaCache {
* 添加条码锁定库位信息
* @param reelLockPosInfo
*/
public
static
void
addReelLockPosInfo
(
ReelLockPosInfo
reelLockPosInfo
){
public
static
synchronized
boolean
addReelLockPosInfo
(
ReelLockPosInfo
reelLockPosInfo
){
for
(
ReelLockPosInfo
locInfo
:
reelLocKPosMap
.
values
())
{
if
(
locInfo
.
getLockPosId
().
equals
(
reelLockPosInfo
.
getLockPosId
())
&&
!
locInfo
.
getBarcode
().
equals
(
reelLockPosInfo
.
getBarcode
())){
log
.
info
(
"为["
+
reelLockPosInfo
.
getBarcode
()+
"]锁定库位["
+
reelLockPosInfo
.
getLockPos
()+
"]时,库位已被["
+
locInfo
.
getBarcode
()+
"]锁定"
);
return
false
;
}
}
reelLocKPosMap
.
put
(
reelLockPosInfo
.
getBarcode
(),
reelLockPosInfo
);
cacheInfoDao
.
updateCacheItem
(
REEL_LOCK_POS_MAP_KEY
,
reelLocKPosMap
);
return
true
;
}
/**
...
...
myproject/src/main/java/com/myproject/webapp/controller/webService/QisdaDeviceController.java
查看文件 @
796407e
...
...
@@ -649,7 +649,7 @@ public class QisdaDeviceController extends BaseController {
cutTask
=
cutTask
+
1
;
}
}
else
if
(
unFinishedTask
.
isUrgentReel
()
||
unFinishedTask
.
isLessSendReel
()){
}
else
if
(
unFinishedTask
.
isUrgentReel
()
||
unFinishedTask
.
isLessSendReel
()
||
unFinishedTask
.
getAppendInfo
().
isCheckAction
()
){
totalUrgentTask
=
totalUrgentTask
+
1
;
if
(
unFinishedTask
.
isPackageReel
())
{
if
(
unFinishedTask
.
getCid
().
equals
(
cid
))
{
...
...
@@ -725,6 +725,23 @@ public class QisdaDeviceController extends BaseController {
log
.
info
(
"更新料盘["
+
barcode
+
"]的任务状态["
+
task
.
getStatus
()+
"="
+
task
.
getLocInfo
()
+
"]为["
+
statusStr
+
"="
+
locInfo
+
"]"
);
task
.
setStatus
(
statusStr
);
task
.
setLocInfo
(
locInfo
);
if
(
task
.
isInBelt
()
||
task
.
isPackageReel
()){
//已经放上皮带线
AppendInfo
appendInfo
=
task
.
getAppendInfo
();
if
(
Strings
.
isBlank
(
appendInfo
.
gethSerial
())){
log
.
info
(
"手动出库料盘["
+
barcode
+
"]放上皮带线或包装料架,结束任务"
);
task
.
setStatus
(
StorageConstants
.
OP_STATUS
.
FINISHED
.
name
());
}
else
if
(
appendInfo
.
isCheckAction
()){
log
.
info
(
"盘点料盘["
+
barcode
+
"]放上皮带线或包装料架,结束任务"
);
task
.
setStatus
(
StorageConstants
.
OP_STATUS
.
FINISHED
.
name
());
//盘点料,出到皮带线上即算完成
int
slotSeq
=
appendInfo
.
getSlotIndex
();
int
sendQty
=
task
.
getNum
();
outInfoCache
.
incTaskFinishNum
(
appendInfo
.
gethSerial
(),
slotSeq
,
sendQty
);
}
}
task
=
dataLogDao
.
save
(
task
);
if
(!
task
.
isStopSendToQisda
()){
...
...
@@ -929,12 +946,12 @@ public class QisdaDeviceController extends BaseController {
for
(
DataLog
task
:
allTasks
)
{
if
(!
task
.
isFinished
()
&&
!
task
.
isCancel
()
&&
task
.
isCheckOutTask
()){
if
(
task
.
isPackageReel
()){
if
(
task
.
isCutReel
()
||
task
.
isUrgentReel
()
||
task
.
isLessSendReel
()){
if
(
task
.
isCutReel
()
||
task
.
isUrgentReel
()
||
task
.
isLessSendReel
()
||
task
.
getAppendInfo
().
isCheckAction
()
){
cutPackageTask
=
cutPackageTask
+
1
;
}
else
{
packageTask
=
packageTask
+
1
;
}
}
else
if
(
task
.
isCutReel
()
||
task
.
isUrgentReel
()
||
task
.
isLessSendReel
()){
}
else
if
(
task
.
isCutReel
()
||
task
.
isUrgentReel
()
||
task
.
isLessSendReel
()
||
task
.
getAppendInfo
().
isCheckAction
()
){
cutTask
=
cutTask
+
1
;
}
else
if
(
task
.
isSmallReel
()){
smallTask
=
smallTask
+
1
;
...
...
@@ -1045,6 +1062,25 @@ public class QisdaDeviceController extends BaseController {
}
/**
* 清理料架中锁定库位的料盘绑定信息
*/
@RequestMapping
(
value
=
"/clearLockLoc"
)
@ResponseBody
public
ResultBean
clearLockLoc
(
HttpServletRequest
request
){
String
rfid
=
request
.
getParameter
(
"rfid"
);
String
rfidLoc
=
request
.
getParameter
(
"rfidLoc"
);
ReelLockPosInfo
lockInfo
=
QisdaCache
.
getLockPosInfoByRfidLoc
(
rfid
,
rfidLoc
);
if
(
lockInfo
!=
null
){
log
.
info
(
"客户端清理料架锁定信息:"
+
lockInfo
);
QisdaCache
.
removeReelLockPosInfo
(
lockInfo
.
getBarcode
());
return
ResultBean
.
newOkResult
(
""
);
}
else
{
return
ResultBean
.
newErrorResult
(
201
,
"未找到"
+
rfid
+
"["
+
rfidLoc
+
"]的锁定信息"
);
}
}
/**
* 包装料仓空闲仓位数量
*/
@RequestMapping
(
value
=
"/emptyStoragePosCount"
)
...
...
myproject/src/main/java/com/myproject/webapp/controller/webService/StorageDataController.java
查看文件 @
796407e
...
...
@@ -604,7 +604,6 @@ public class StorageDataController extends BaseController {
}
Storage
theStorage
=
dataCache
.
getStorageById
(
pos
.
getStorageId
());
resultMap
.
put
(
"result"
,
"0"
);
...
...
@@ -616,20 +615,20 @@ public class StorageDataController extends BaseController {
if
(
oldLockInfo
!=
null
){
if
(!
oldLockInfo
.
getBarcode
().
equals
(
barcode
.
getBarcode
())){
String
result
=
"-1"
;
okMsg
=
rfid
+
"["
+
rfidLoc
+
"]["
+
barcode
.
getBarcode
()+
"]锁定库位["
+
pos
.
getPosName
()+
"],清理旧有锁定信息"
+
oldLockInfo
;
okMsg
=
rfid
+
"["
+
rfidLoc
+
"]["
+
barcode
.
getBarcode
()+
"]锁定库位["
+
pos
.
getPosName
()+
"],清理旧有锁定信息"
;
resultMap
.
put
(
"result"
,
result
);
resultMap
.
put
(
"msg"
,
okMsg
);
//已经锁定过库位,但不是同一个条码,需要把对应位置的锁定信息清理掉
QisdaCache
.
removeReelLockPosInfo
(
barcode
.
getBarcode
());
//
List<ReelLockPosInfo> lockPosInfoList = QisdaCache.getShelfLockPosInfo(rfid);
//
for (ReelLockPosInfo reelLockPosInfo : lockPosInfoList) {
//
QisdaCache.removeReelLockPosInfo(reelLockPosInfo.getBarcode());
//
log.info("清理料架"+reelLockPosInfo.getRfid()+"["+reelLockPosInfo.getRfidLoc()+"]上物料["+reelLockPosInfo.getBarcode()+"]锁定的库位");
//
}
//
QisdaCache.removeReelLockPosInfo(barcode.getBarcode());
List
<
ReelLockPosInfo
>
lockPosInfoList
=
QisdaCache
.
getShelfLockPosInfo
(
rfid
);
for
(
ReelLockPosInfo
reelLockPosInfo
:
lockPosInfoList
)
{
QisdaCache
.
removeReelLockPosInfo
(
reelLockPosInfo
.
getBarcode
());
log
.
info
(
"清理料架"
+
reelLockPosInfo
.
getRfid
()+
"["
+
reelLockPosInfo
.
getRfidLoc
()+
"]上物料["
+
reelLockPosInfo
.
getBarcode
()+
"]锁定的库位"
);
}
}
}
log
.
info
(
okMsg
);
log
.
info
(
okMsg
+
oldLockInfo
);
ReelLockPosInfo
reelLocInfo
=
new
ReelLockPosInfo
();
reelLocInfo
.
setBarcode
(
barcode
.
getBarcode
());
...
...
@@ -638,12 +637,19 @@ public class StorageDataController extends BaseController {
reelLocInfo
.
setLockPosId
(
pos
.
getId
());
reelLocInfo
.
setRfid
(
rfid
);
reelLocInfo
.
setRfidLoc
(
rfidLoc
);
QisdaCache
.
addReelLockPosInfo
(
reelLocInfo
);
boolean
locResult
=
QisdaCache
.
addReelLockPosInfo
(
reelLocInfo
);
if
(!
locResult
){
errorMsg
=
"库位已被锁定,暂停入库"
;
lineMsg
=
errorMsg
;
resultMap
.
put
(
"result"
,
"99"
);
resultMap
.
put
(
"msg"
,
errorMsg
);
return
resultMap
;
}
else
{
resultMap
.
put
(
"pos"
,
pos
.
getPosName
());
resultMap
.
put
(
"barcode"
,
barcode
.
getBarcode
());
resultMap
.
put
(
"cid"
,
theStorage
.
getCid
());
}
resultMap
.
put
(
"pos"
,
pos
.
getPosName
());
resultMap
.
put
(
"barcode"
,
barcode
.
getBarcode
());
resultMap
.
put
(
"cid"
,
theStorage
.
getCid
());
}
else
{
resultMap
.
put
(
"result"
,
"104"
);
errorMsg
=
"["
+
barcode
.
getBarcode
()+
"]未找到可用的["
+
barcode
.
getPlateSize
()
+
"x"
+
barcode
.
getHeight
()+
"]仓位"
;
...
...
myproject/src/main/java/com/myproject/webapp/controller/webService/TaskService.java
查看文件 @
796407e
...
...
@@ -467,7 +467,7 @@ public class TaskService implements ITaskService {
* @return
*/
@Override
public
StoragePos
findEmptyPosForPutIn
(
List
<
Storage
>
storageList
,
Barcode
barcode
,
String
inRFID
)
throws
ValidateException
{
public
synchronized
StoragePos
findEmptyPosForPutIn
(
List
<
Storage
>
storageList
,
Barcode
barcode
,
String
inRFID
)
throws
ValidateException
{
verifyBarcodePutIn
(
storageList
,
barcode
,
inRFID
);
//查找任务数最少的料仓
...
...
@@ -884,7 +884,7 @@ public class TaskService implements ITaskService {
for
(
DataLog
task
:
waitTasks
)
{
if
(
cid
.
equals
(
task
.
getCid
())
&&
task
.
isCheckOutTask
()
&&
task
.
isWait
())
{
//分盘料,紧急料和包装料,可以按时间顺序先出
if
(
task
.
isCutReel
()
||
task
.
isUrgentReel
()
||
task
.
isPackageReel
()
||
task
.
isLessSendReel
()){
if
(
task
.
isCutReel
()
||
task
.
isUrgentReel
()
||
task
.
isPackageReel
()
||
task
.
isLessSendReel
()
||
task
.
getAppendInfo
().
isCheckAction
()
){
if
(
urgentTask
==
null
||
urgentTask
.
getCreateDate
().
after
(
task
.
getCreateDate
())){
urgentTask
=
task
;
}
...
...
@@ -1930,10 +1930,10 @@ public class TaskService implements ITaskService {
boolean
lessBind
=
false
;
QisdaApi
.
VMILocationOutFeedback
(
outItemList
,
lessBind
);
}
}
else
{
log
.
info
(
task
.
getBarcode
()+
"的出库任务["
+
task
.
getId
()+
"]无需求单信息,清除Qisda库存"
);
QisdaApi
.
ClearStockBy
(
task
.
getPosName
());
}
}
else
{
log
.
info
(
task
.
getBarcode
()+
"的出库任务["
+
task
.
getId
()+
"]无需求单信息,清除Qisda库存"
);
QisdaApi
.
ClearStockBy
(
task
.
getPosName
());
}
}
...
...
myproject/src/main/webapp/WEB-INF/pages/qisda/alarmMsg.jsp
0 → 100644
查看文件 @
796407e
<%@ include file="/common/taglibs.jsp" %>
<%@ page language="java" pageEncoding="UTF-8" %>
<style type="text/css">
.modal-body {
position: relative;
padding: 15px;
height: 360px;
overflow-y: scroll;
}
.label-alarm{
color: white;
background-color: #df4441 !important;
border-color: #df6821 !important;
}
.task-content{
/*width: 800px;*/
}
</style>
<!-- BEGIN PAGE HEADER-->
<%--<h3 class="page-title">--%>
<%--<fmt:message key="异常看板"/>--%>
<%--</h3>--%>
<div class="clearfix">
</div>
<div class="row ">
<!--任务 -->
<div class="col-md-4 col-sm-4">
<div class="portlet light bordered">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-list"></i>任务
</div>
</div>
<div class="portlet-body" style="height:713px;overflow: auto;">
<div class="task-content">
<ul class="feeds" id="task">
</ul>
</div>
<%--<div class="task-footer">--%>
<%--<div class="btn-arrow-link pull-right">--%>
<%--<a href="${ctx}/workOrder/feederSearch.html">more</a>--%>
<%--<i class="icon-arrow-right"></i>--%>
<%--</div>--%>
<%--</div>--%>
</div>
</div>
</div>
<!--温度 -->
<div class="col-md-4 col-sm-4">
<div class="portlet light bordered">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-list"></i>料仓
</div>
</div>
<div class="portlet-body" style="height:300px;overflow: auto;">
<div class="task-content">
<ul class="feeds" id="box">
</ul>
</div>
</div>
</div>
</div>
<!--流水线-->
<div class="col-md-4 col-sm-4">
<div class="portlet light bordered">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-list"></i>流水线
</div>
</div>
<div class="portlet-body" style="height:300px;overflow: auto;">
<div class="task-content">
<ul class="feeds" id="line">
</ul>
</div>
</div>
</div>
</div>
<!--双层线-->
<div class="col-md-4 col-sm-4">
<div class="portlet light bordered">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-list"></i>双层线
</div>
</div>
<div class="portlet-body" style="height:300px;overflow: auto;">
<div class="task-content">
<ul class="feeds" id="doubleLine">
</ul>
</div>
</div>
</div>
</div>
<!--AGV-->
<div class="col-md-4 col-sm-4">
<div class="portlet light bordered">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-list"></i>AGV
</div>
</div>
<div class="portlet-body" style="height:300px;overflow: auto;">
<div class="task-content">
<ul class="feeds" id="agv">
</ul>
</div>
</div>
</div>
</div>
</div>
<fmt:message key="boxView.taskCancel" var="taskCancel_label"/>
<fmt:message key="boxView.taskExcuting" var="taskExcuting_label"/>
<fmt:message key="boxView.taskFinished" var="taskFinished_label"/>
<fmt:message key="boxView.taskWaiting" var="taskWaiting_label"/>
<fmt:message key="boxView.cancelTask" var="cancelTask_label"/>
<fmt:message key="inOutList.in" var="in_label"/>
<fmt:message key="inOutList.out" var="out_label"/>
<fmt:message key="dataLog.orderSource" var="source_label"/>
<c:set var="scripts" scope="request">
<script type="text/javascript">
$(document).ready(function(){
function flushMsgs(){
var msgMap = {};
$.get('${ctx}/rest/api/qisda/device/deviceMsgList', function (list) {
for(var i in list){
var msgBean = list[i];
var msgKey = msgBean.msgKey;
var documentId = msgKey.split(".")[0];
var msgItem = "<li>" +
"<span class='task-title-sp'>["+msgBean.name+"]</span>" +
"<span class='label label-sm label-alarm'>" +
msgBean.msgValue +"</span>" +
"</li>";
var html = msgMap[documentId];
if(!html){
html = "";
}
msgMap[documentId] = html + msgItem;
}
var allBox = $(".feeds");
allBox.each(function(index){
var documentId = $(this).attr("id");
if(documentId != "task"){
var html = msgMap[documentId];
if(!html){
html = "";
}
$(this).html(html);
}
});
});
}
function updateTasks(){
//任务列表
$.post("${ctx}/service/store/tasks", {}, function (data) {
var html = "";
for(var item in data){
if(!data[item].timeout){
continue;
}
var partNumber = data[item].partNumber;
var barcode = data[item].barcode
//入库
var showStr = barcode + "["+partNumber+"]${in_label}";
var status = data[item].status.toLowerCase();
if(data[item].type == 2){//出库
showStr = barcode + "["+partNumber+"]${out_label}";
}
var showClass = 'label-'+status;
var statusMsg ="["+status+"]";
if(data[item].cancel){
statusMsg ="[${taskCancel_label}]";
} else if(data[item].executing){
statusMsg ="[${taskExcuting_label}]";
}else if(data[item].finished){
statusMsg ="[${taskFinished_label}]";
}else if(data[item].wait){
statusMsg ="[${taskWaiting_label}]";
}
var sourceStr = "";
if(data[item].sourceName){
sourceStr = "<br/>${source_label} " + data[item].sourceStr;
}
var msgValue = showStr + statusMsg + sourceStr;
var msgItem = "<li><span class='task-title-sp'>" +
"[" + data[item].posName + "] </span>" +
"<span class='label label-sm label-alarm'>"+msgValue+"</span>" +
"</li>";
html = html + msgItem;
}
$("#task").html(html);
});
}
setInterval(function(){
flushMsgs();
updateTasks();
}, 1000);
});
</script>
</c:set>
\ No newline at end of file
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论