Commit 796407e1 sunke

盘点出库,出到皮带线上

1 个父辈 9e082650
...@@ -302,7 +302,14 @@ public class AppendInfo { ...@@ -302,7 +302,14 @@ public class AppendInfo {
return false; 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(){ public String getDnOrFacility(){
......
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;
}
}
...@@ -227,7 +227,7 @@ public class InquiryShelfBean { ...@@ -227,7 +227,7 @@ public class InquiryShelfBean {
shelfType = StorageConstants.SHEFL_TYPE.A; shelfType = StorageConstants.SHEFL_TYPE.A;
}else { }else {
//需要分盘的料或紧急料或者缺料补发的料,且不是包装料,统一都放到料串上 //需要分盘的料或紧急料或者缺料补发的料,且不是包装料,统一都放到料串上
if(task.isCutReel() || task.isUrgentReel() || task.isLessSendReel()){ if(task.isCutReel() || task.isUrgentReel() || task.isLessSendReel() || task.getAppendInfo().isUrgentAction()){
//B料串 //B料串
return StorageConstants.SHEFL_TYPE.B; return StorageConstants.SHEFL_TYPE.B;
}else{ }else{
......
...@@ -620,6 +620,13 @@ public class DataLog extends BaseMongoBean /*implements Comparable<DataLog>*/ { ...@@ -620,6 +620,13 @@ public class DataLog extends BaseMongoBean /*implements Comparable<DataLog>*/ {
} }
/** /**
* 是否是在皮带线上
*/
public boolean isInBelt(){
return status.toLowerCase().equals("inbelt");
}
/**
* 非等待状态,超过10分钟未更新状态,等待状态,超过30分钟未更新过状态,认为超时 * 非等待状态,超过10分钟未更新状态,等待状态,超过30分钟未更新过状态,认为超时
*/ */
public boolean isTimeout(){ public boolean isTimeout(){
......
...@@ -194,11 +194,11 @@ public class OutInfo extends BaseMongoBean { ...@@ -194,11 +194,11 @@ public class OutInfo extends BaseMongoBean {
} }
/** /**
* 紧急料或指定料或单独出库料 * 紧急料或指定料或单独出库料(包括盘点出库)
* @return * @return
*/ */
public boolean isUrgentAction(){ 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 { ...@@ -216,6 +216,14 @@ public class OutInfo extends BaseMongoBean {
return getAction().contains("补料"); return getAction().contains("补料");
} }
/**
* 盘点出库需求单
*/
public boolean isCheckAction(){
return getAction().contains("盘点出库");
}
public int getTaskFinishNum() { public int getTaskFinishNum() {
return taskFinishNum; return taskFinishNum;
} }
......
...@@ -355,7 +355,7 @@ public class OutItem extends BaseMongoBean { ...@@ -355,7 +355,7 @@ public class OutItem extends BaseMongoBean {
} }
public boolean isUrgentAction(){ 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 { ...@@ -365,6 +365,13 @@ public class OutItem extends BaseMongoBean {
return getAction().contains("补料"); return getAction().contains("补料");
} }
/**
* 盘点出库需求单
*/
public boolean isCheckAction(){
return getAction().contains("盘点出库");
}
public String getAction() { public String getAction() {
if(action == null){ if(action == null){
return ""; return "";
......
...@@ -116,7 +116,10 @@ public class DifferentInventoryController extends BaseController { ...@@ -116,7 +116,10 @@ public class DifferentInventoryController extends BaseController {
List<DiffInfo> qisdaDiffReels = new ArrayList<>(); List<DiffInfo> qisdaDiffReels = new ArrayList<>();
for(String reelId : qisdaReelMap.keySet()){ for(String reelId : qisdaReelMap.keySet()){
if(!neotelReelMap.containsKey(reelId)){ 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库存比对完成"); log.info("与Qisda库存比对完成");
......
...@@ -980,6 +980,10 @@ public class OutInfoCache { ...@@ -980,6 +980,10 @@ public class OutInfoCache {
if(outItem.isUrgentAction()){ if(outItem.isUrgentAction()){
task.setUrgentReel(true); task.setUrgentReel(true);
if(outItem.isCheckAction()){
//盘点出库,不走紧急出料口
task.setUrgentReel(false);
}
} }
Storage storage = dataCache.getStorageById(pos.getStorageId()); Storage storage = dataCache.getStorageById(pos.getStorageId());
......
...@@ -109,9 +109,16 @@ public class QisdaCache { ...@@ -109,9 +109,16 @@ public class QisdaCache {
* 添加条码锁定库位信息 * 添加条码锁定库位信息
* @param reelLockPosInfo * @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); reelLocKPosMap.put(reelLockPosInfo.getBarcode(), reelLockPosInfo);
cacheInfoDao.updateCacheItem(REEL_LOCK_POS_MAP_KEY, reelLocKPosMap); cacheInfoDao.updateCacheItem(REEL_LOCK_POS_MAP_KEY, reelLocKPosMap);
return true;
} }
/** /**
......
...@@ -649,7 +649,7 @@ public class QisdaDeviceController extends BaseController { ...@@ -649,7 +649,7 @@ public class QisdaDeviceController extends BaseController {
cutTask = cutTask + 1; cutTask = cutTask + 1;
} }
}else if(unFinishedTask.isUrgentReel() || unFinishedTask.isLessSendReel()){ }else if(unFinishedTask.isUrgentReel() || unFinishedTask.isLessSendReel() || unFinishedTask.getAppendInfo().isCheckAction()){
totalUrgentTask = totalUrgentTask + 1; totalUrgentTask = totalUrgentTask + 1;
if(unFinishedTask.isPackageReel()) { if(unFinishedTask.isPackageReel()) {
if (unFinishedTask.getCid().equals(cid)) { if (unFinishedTask.getCid().equals(cid)) {
...@@ -725,6 +725,23 @@ public class QisdaDeviceController extends BaseController { ...@@ -725,6 +725,23 @@ public class QisdaDeviceController extends BaseController {
log.info("更新料盘["+barcode+"]的任务状态["+task.getStatus()+"=" + task.getLocInfo() + "]为["+statusStr+"="+locInfo+"]"); log.info("更新料盘["+barcode+"]的任务状态["+task.getStatus()+"=" + task.getLocInfo() + "]为["+statusStr+"="+locInfo+"]");
task.setStatus(statusStr); task.setStatus(statusStr);
task.setLocInfo(locInfo); 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); task = dataLogDao.save(task);
if(!task.isStopSendToQisda()){ if(!task.isStopSendToQisda()){
...@@ -929,12 +946,12 @@ public class QisdaDeviceController extends BaseController { ...@@ -929,12 +946,12 @@ public class QisdaDeviceController extends BaseController {
for (DataLog task : allTasks) { for (DataLog task : allTasks) {
if(!task.isFinished() && !task.isCancel() && task.isCheckOutTask()){ if(!task.isFinished() && !task.isCancel() && task.isCheckOutTask()){
if(task.isPackageReel()){ if(task.isPackageReel()){
if(task.isCutReel() || task.isUrgentReel() || task.isLessSendReel()){ if(task.isCutReel() || task.isUrgentReel() || task.isLessSendReel() || task.getAppendInfo().isCheckAction()){
cutPackageTask = cutPackageTask + 1; cutPackageTask = cutPackageTask + 1;
}else{ }else{
packageTask = packageTask + 1; 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; cutTask = cutTask + 1;
}else if(task.isSmallReel()){ }else if(task.isSmallReel()){
smallTask = smallTask + 1; smallTask = smallTask + 1;
...@@ -1045,6 +1062,25 @@ public class QisdaDeviceController extends BaseController { ...@@ -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") @RequestMapping(value = "/emptyStoragePosCount")
......
...@@ -604,7 +604,6 @@ public class StorageDataController extends BaseController { ...@@ -604,7 +604,6 @@ public class StorageDataController extends BaseController {
} }
Storage theStorage = dataCache.getStorageById(pos.getStorageId()); Storage theStorage = dataCache.getStorageById(pos.getStorageId());
resultMap.put("result","0"); resultMap.put("result","0");
...@@ -616,20 +615,20 @@ public class StorageDataController extends BaseController { ...@@ -616,20 +615,20 @@ public class StorageDataController extends BaseController {
if(oldLockInfo != null){ if(oldLockInfo != null){
if(!oldLockInfo.getBarcode().equals(barcode.getBarcode())){ if(!oldLockInfo.getBarcode().equals(barcode.getBarcode())){
String result = "-1"; String result = "-1";
okMsg = rfid+"["+ rfidLoc +"]["+barcode.getBarcode()+"]锁定库位["+pos.getPosName()+"],清理旧有锁定信息"+oldLockInfo; okMsg = rfid+"["+ rfidLoc +"]["+barcode.getBarcode()+"]锁定库位["+pos.getPosName()+"],清理旧有锁定信息";
resultMap.put("result",result); resultMap.put("result",result);
resultMap.put("msg",okMsg); resultMap.put("msg",okMsg);
//已经锁定过库位,但不是同一个条码,需要把对应位置的锁定信息清理掉 //已经锁定过库位,但不是同一个条码,需要把对应位置的锁定信息清理掉
QisdaCache.removeReelLockPosInfo(barcode.getBarcode()); //QisdaCache.removeReelLockPosInfo(barcode.getBarcode());
// List<ReelLockPosInfo> lockPosInfoList = QisdaCache.getShelfLockPosInfo(rfid); List<ReelLockPosInfo> lockPosInfoList = QisdaCache.getShelfLockPosInfo(rfid);
// for (ReelLockPosInfo reelLockPosInfo : lockPosInfoList) { for (ReelLockPosInfo reelLockPosInfo : lockPosInfoList) {
// QisdaCache.removeReelLockPosInfo(reelLockPosInfo.getBarcode()); QisdaCache.removeReelLockPosInfo(reelLockPosInfo.getBarcode());
// log.info("清理料架"+reelLockPosInfo.getRfid()+"["+reelLockPosInfo.getRfidLoc()+"]上物料["+reelLockPosInfo.getBarcode()+"]锁定的库位"); log.info("清理料架"+reelLockPosInfo.getRfid()+"["+reelLockPosInfo.getRfidLoc()+"]上物料["+reelLockPosInfo.getBarcode()+"]锁定的库位");
// } }
} }
} }
log.info(okMsg); log.info(okMsg + oldLockInfo);
ReelLockPosInfo reelLocInfo = new ReelLockPosInfo(); ReelLockPosInfo reelLocInfo = new ReelLockPosInfo();
reelLocInfo.setBarcode(barcode.getBarcode()); reelLocInfo.setBarcode(barcode.getBarcode());
...@@ -638,12 +637,19 @@ public class StorageDataController extends BaseController { ...@@ -638,12 +637,19 @@ public class StorageDataController extends BaseController {
reelLocInfo.setLockPosId(pos.getId()); reelLocInfo.setLockPosId(pos.getId());
reelLocInfo.setRfid(rfid); reelLocInfo.setRfid(rfid);
reelLocInfo.setRfidLoc(rfidLoc); 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("pos",pos.getPosName());
resultMap.put("barcode",barcode.getBarcode()); resultMap.put("barcode",barcode.getBarcode());
resultMap.put("cid",theStorage.getCid()); resultMap.put("cid",theStorage.getCid());
}
}else{ }else{
resultMap.put("result","104"); resultMap.put("result","104");
errorMsg = "["+barcode.getBarcode()+"]未找到可用的["+barcode.getPlateSize() + "x" + barcode.getHeight()+"]仓位"; errorMsg = "["+barcode.getBarcode()+"]未找到可用的["+barcode.getPlateSize() + "x" + barcode.getHeight()+"]仓位";
......
...@@ -467,7 +467,7 @@ public class TaskService implements ITaskService { ...@@ -467,7 +467,7 @@ public class TaskService implements ITaskService {
* @return * @return
*/ */
@Override @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); verifyBarcodePutIn(storageList ,barcode, inRFID);
//查找任务数最少的料仓 //查找任务数最少的料仓
...@@ -884,7 +884,7 @@ public class TaskService implements ITaskService { ...@@ -884,7 +884,7 @@ public class TaskService implements ITaskService {
for (DataLog task : waitTasks) { for (DataLog task : waitTasks) {
if(cid.equals(task.getCid()) && task.isCheckOutTask() && task.isWait()) { 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())){ if(urgentTask == null || urgentTask.getCreateDate().after(task.getCreateDate())){
urgentTask = task; urgentTask = task;
} }
...@@ -1930,12 +1930,12 @@ public class TaskService implements ITaskService { ...@@ -1930,12 +1930,12 @@ public class TaskService implements ITaskService {
boolean lessBind = false; boolean lessBind = false;
QisdaApi.VMILocationOutFeedback(outItemList, lessBind); QisdaApi.VMILocationOutFeedback(outItemList, lessBind);
} }
}
}else{ }else{
log.info(task.getBarcode()+"的出库任务["+task.getId()+"]无需求单信息,清除Qisda库存"); log.info(task.getBarcode()+"的出库任务["+task.getId()+"]无需求单信息,清除Qisda库存");
QisdaApi.ClearStockBy(task.getPosName()); QisdaApi.ClearStockBy(task.getPosName());
} }
} }
}
} }
<%@ 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 \ No newline at end of file
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!