Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
changZhouShelf
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 43764ab6
由
sunke
编写于
2021-01-19 09:20:29 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
呆滞料提示
库存接口返回LOC为线别信息
1 个父辈
64f6829b
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
20 个修改的文件
包含
266 行增加
和
63 行删除
myproject/src/main/java/com/myproject/bean/Authority.java
myproject/src/main/java/com/myproject/bean/czshelf/RemainingTime.java
myproject/src/main/java/com/myproject/bean/search/StoragePosFindCriteria.java
myproject/src/main/java/com/myproject/bean/update/Storage.java
myproject/src/main/java/com/myproject/manager/impl/StoragePosManagerImpl.java
myproject/src/main/java/com/myproject/util/BarcodeRule.java
myproject/src/main/java/com/myproject/webapp/controller/storage/StoragePosFindController.java
myproject/src/main/java/com/myproject/webapp/controller/storage/SzShelfController.java
myproject/src/main/java/com/myproject/webapp/controller/webService/MesApiController.java
myproject/src/main/webapp/WEB-INF/pages/component/componentUpdate.jsp
myproject/src/main/webapp/WEB-INF/pages/component/storagePosFind.jsp
myproject/src/main/webapp/WEB-INF/pages/homeMenu.jsp
myproject/src/main/webapp/WEB-INF/pages/storage/accshelf.jsp
myproject/src/main/webapp/WEB-INF/pages/storage/allBoxView.jsp
myproject/src/main/webapp/WEB-INF/pages/storage/storageSearch.jsp
myproject/src/main/webapp/WEB-INF/pages/storage/storageUpdate.jsp
myproject/src/main/webapp/WEB-INF/security.xml
myproject/src/main/webapp/common/metroTopMenu.jsp
myproject/src/main/webapp/decorators/metro.jsp
myproject/src/main/webapp/decorators/metroEmpty.jsp
myproject/src/main/java/com/myproject/bean/Authority.java
查看文件 @
43764ab
...
...
@@ -26,7 +26,7 @@ public enum Authority implements GrantedAuthority {
//用户管理
ROLE_MANAGE_USER
(
"authority.user.manage"
,
6
),
//角色管理
ROLE_MANAGE_ROLE
(
"authority.role.manage"
,
7
),
//
ROLE_MANAGE_ROLE("authority.role.manage", 7),
//出库
ROLE_MANAGE_STACK_OUT
(
"authority.stockOut"
,
8
),
//入库
...
...
myproject/src/main/java/com/myproject/bean/czshelf/RemainingTime.java
查看文件 @
43764ab
...
...
@@ -11,6 +11,16 @@ import java.util.Date;
public
class
RemainingTime
{
/**
* GUID
*/
private
String
guid
;
/**
* 是否忽略报警
*/
private
boolean
ignoreAlarm
=
false
;
/**
* 产线编号
*/
private
int
lineNo
;
...
...
@@ -261,4 +271,20 @@ public class RemainingTime {
public
void
setLockPos
(
StoragePos
lockPos
)
{
this
.
lockPos
=
lockPos
;
}
public
String
getGuid
()
{
return
guid
;
}
public
void
setGuid
(
String
guid
)
{
this
.
guid
=
guid
;
}
public
boolean
isIgnoreAlarm
()
{
return
ignoreAlarm
;
}
public
void
setIgnoreAlarm
(
boolean
ignoreAlarm
)
{
this
.
ignoreAlarm
=
ignoreAlarm
;
}
}
\ No newline at end of file
myproject/src/main/java/com/myproject/bean/search/StoragePosFindCriteria.java
查看文件 @
43764ab
...
...
@@ -22,6 +22,16 @@ public class StoragePosFindCriteria extends BaseSearchCriteria {
*/
private
String
barcode
;
private
String
storageId
;
public
String
getStorageId
()
{
return
storageId
;
}
public
void
setStorageId
(
String
storageId
)
{
this
.
storageId
=
storageId
;
}
public
String
getBarcode
()
{
return
barcode
;
}
...
...
myproject/src/main/java/com/myproject/bean/update/Storage.java
查看文件 @
43764ab
...
...
@@ -298,7 +298,7 @@ public class Storage extends BaseMongoBean {
}
}
}
else
{
return
tru
e
;
return
fals
e
;
}
return
false
;
}
...
...
myproject/src/main/java/com/myproject/manager/impl/StoragePosManagerImpl.java
查看文件 @
43764ab
...
...
@@ -324,9 +324,9 @@ public class StoragePosManagerImpl implements IStoragePosManager {
@Override
public
List
<
StoragePos
>
findInaction
(
List
<
String
>
storageIds
,
int
day
,
Collection
<
String
>
excludePosIds
,
int
count
){
Date
date
=
DateUtils
.
addDays
(
new
Date
(),
-
day
);
//几天前
Criteria
c
=
Criteria
.
where
(
"
updateDat
e"
).
lte
(
date
)
Criteria
c
=
Criteria
.
where
(
"
barcode.putInTim
e"
).
lte
(
date
)
.
and
(
"barcode"
).
exists
(
true
)
.
and
(
"barcode.lockId"
).
is
(
null
)
//没有被锁定的仓位
//
.and("barcode.lockId").is(null)//没有被锁定的仓位
.
and
(
"id"
).
nin
(
excludePosIds
);
if
(
storageIds
!=
null
&&
!
storageIds
.
isEmpty
()){
...
...
myproject/src/main/java/com/myproject/util/BarcodeRule.java
查看文件 @
43764ab
...
...
@@ -385,7 +385,18 @@ public class BarcodeRule {
// String str = "3SS191908055X1Z";
// System.out.println(str.substring(str.length() - 13));
String
memo
=
"2=2=yellow;1=1=green;statusLight=10=30"
;
String
memo
=
"1=1=yellow;2=2=green;statusLight=10=30"
;
if
(!
Strings
.
isNullOrEmpty
(
memo
)){
String
[]
lineInfos
=
memo
.
split
(
";"
);
for
(
String
lineInfo
:
lineInfos
){
if
(!
Strings
.
isNullOrEmpty
(
lineInfo
)){
String
[]
lightInfos
=
lineInfo
.
split
(
"="
);
if
(
"statusLight"
.
equalsIgnoreCase
(
lightInfos
[
0
])){
System
.
out
.
println
(
Integer
.
valueOf
(
lightInfos
[
2
]));
}
}
}
}
}
}
myproject/src/main/java/com/myproject/webapp/controller/storage/StoragePosFindController.java
查看文件 @
43764ab
...
...
@@ -4,6 +4,7 @@ import com.google.common.base.Strings;
import
com.myproject.bean.search.BaseSearchCriteria
;
import
com.myproject.bean.search.PageList
;
import
com.myproject.bean.search.StoragePosFindCriteria
;
import
com.myproject.bean.update.Storage
;
import
com.myproject.exception.ValidateException
;
import
com.myproject.manager.IStoragePosManager
;
import
com.myproject.util.DateUtil
;
...
...
@@ -22,7 +23,10 @@ import org.springframework.web.bind.annotation.RequestMethod;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.ArrayList
;
import
java.util.Comparator
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.regex.Pattern
;
/**
...
...
@@ -50,6 +54,16 @@ public class StoragePosFindController extends BaseSearchController {
baseCriteria
.
and
(
"used"
).
is
(
true
);
baseCriteria
.
and
(
"barcode.barcode"
).
exists
(
true
);
List
<
Storage
>
storages
=
new
ArrayList
<>(
dataCache
.
getAllStorage
().
values
());
storages
.
sort
(
new
Comparator
<
Storage
>()
{
@Override
public
int
compare
(
Storage
o1
,
Storage
o2
)
{
return
o1
.
getCid
().
compareTo
(
o2
.
getCid
());
}
});
request
.
setAttribute
(
"allStorage"
,
storages
);
String
providerNumber
=
searchCriteria
.
getProviderNumber
();
if
(!
Strings
.
isNullOrEmpty
(
providerNumber
)){
Pattern
pattern
=
Pattern
.
compile
(
providerNumber
,
Pattern
.
CASE_INSENSITIVE
);
...
...
@@ -75,6 +89,11 @@ public class StoragePosFindController extends BaseSearchController {
baseCriteria
.
and
(
"barcode.partNumber"
).
regex
(
pattern
);
}
String
storageId
=
searchCriteria
.
getStorageId
();
if
(!
Strings
.
isNullOrEmpty
(
storageId
)){
baseCriteria
.
and
(
"storageId"
).
is
(
storageId
);
}
String
memo
=
request
.
getParameter
(
"memo"
);
...
...
@@ -98,7 +117,7 @@ public class StoragePosFindController extends BaseSearchController {
if
(
inactionDay
>
0
){
Date
inactionDate
=
DateUtil
.
addDays
(
new
Date
(),
-
inactionDay
);
request
.
setAttribute
(
"inaction
Date"
,
inactionDate
);
request
.
setAttribute
(
"inaction
Time"
,
inactionDate
.
getTime
()
);
}
...
...
myproject/src/main/java/com/myproject/webapp/controller/storage/SzShelfController.java
查看文件 @
43764ab
...
...
@@ -185,7 +185,7 @@ public class SzShelfController extends BaseController {
log
.
info
(
"物料[ "
+
reelId
+
" ]有接料信息"
+
splice
.
getKey
()+
",但还在库存中,直接从["
+
pos
.
getPosName
()+
"]出库"
);
taskService
.
addTaskToFinished
(
pos
,
null
,
splice
.
getLineNo
()+
"-Splice"
);
}
else
{
//
log.info("未找到接料信息息"+splice.getKey()+"对应的料物:" + splice.getReelbar());
log
.
info
(
"未找到接料信息息"
+
splice
.
getKey
()+
"对应的料物:"
+
splice
.
getReelbar
());
}
}
...
...
@@ -198,9 +198,12 @@ public class SzShelfController extends BaseController {
for
(
RemainingTime
newRemainingTime
:
remainingTimeList
)
{
int
remainMinute
=
newRemainingTime
.
getRemainingTime
();
if
(
remainMinute
>
0
){
RemainingTime
existRemainingTime
=
showMap
.
get
(
newRemainingTime
.
get
Key
());
RemainingTime
existRemainingTime
=
showMap
.
get
(
newRemainingTime
.
get
Guid
());
if
(
existRemainingTime
==
null
)
{
log
.
info
(
"加载到新的发料数据["
+
newRemainingTime
.
getKey
()
+
"] tableNo="
+
newRemainingTime
.
getTableNo
()+
" 剩余时间"
+
newRemainingTime
.
getRemainingTime
());
}
else
{
boolean
ignoreAlam
=
existRemainingTime
.
isIgnoreAlarm
();
newRemainingTime
.
setIgnoreAlarm
(
ignoreAlam
);
}
//只要查询到的且在30 分钟以内,进行亮灯
...
...
@@ -214,8 +217,12 @@ public class SzShelfController extends BaseController {
// continue;
// }
// }
//判断是否已经接料,如果
int
yellowLightMinute
=
storage
.
getYellowLightMinute
();
if
(
storage
.
getCid
().
equals
(
"1"
)){
log
.
debug
(
"SMS Line 01 & 02 yellowMinute:"
+
yellowLightMinute
+
" remainMinute:"
+
remainMinute
+
" Red:"
+
storage
.
getRedLightMiniute
());
}
if
(
remainMinute
<=
yellowLightMinute
)
{
//小于30 分钟,需要亮黄灯
statusLightColor
=
"yellow"
;
...
...
@@ -248,14 +255,14 @@ public class SzShelfController extends BaseController {
barcode
.
setLockName
(
newRemainingTime
.
getKey
());
lockPos
.
setBarcode
(
barcode
);
log
.
info
(
"锁定库位"
+
lockPos
.
getPosName
()+
"["
+
barcode
.
getBarcode
()+
"] "
+
barcode
.
getPartNumber
()
+
" LineInfo:"
+
lineInfoStr
);
storagePosManager
.
save
(
lockPos
);
lockPos
=
storagePosManager
.
save
(
lockPos
);
//锁定成功,亮灯
}
catch
(
Exception
e
)
{
}
}
else
{
//料架上无料,无法锁定
log
.
debug
(
"料架["
+
storage
.
getName
()+
"]未查找到 "
+
newRemainingTime
.
getKey
()
+
"的物料"
);
}
}
else
{
//已经锁定,亮灯
...
...
@@ -298,8 +305,8 @@ public class SzShelfController extends BaseController {
}
String
key
=
newRemainingTime
.
getKey
();
newMap
.
put
(
key
,
newRemainingTime
);
String
guid
=
newRemainingTime
.
getGuid
();
newMap
.
put
(
guid
,
newRemainingTime
);
}
return
newMap
;
}
...
...
@@ -444,8 +451,10 @@ public class SzShelfController extends BaseController {
list
.
add
(
remainingTime
);
//}
//没有需要物料时,灯塔要红色闪烁
if
(
remainingTime
.
getColorClass
().
equalsIgnoreCase
(
"red"
)
&&
remainingTime
.
getLockPos
()
==
null
){
statusLightTwinkle
=
true
;
if
(!
remainingTime
.
isIgnoreAlarm
()){
if
(
remainingTime
.
getColorClass
().
equalsIgnoreCase
(
"red"
)){
statusLightTwinkle
=
true
;
}
}
}
...
...
@@ -465,6 +474,18 @@ public class SzShelfController extends BaseController {
return
list
;
}
@RequestMapping
(
"/service/store/accshelf/checkAuthCode"
)
@ResponseBody
public
String
checkAuthCode
(
HttpServletRequest
request
){
String
opUser
=
request
.
getParameter
(
"opUser"
);
User
user
=
userManager
.
findByAuthCode
(
opUser
);
if
(
user
==
null
){
return
getText
(
"shelf.msg.noPermission"
,
request
.
getLocale
(),
"无权执行此操作"
);
}
return
""
;
}
/**
* 查找下一个空位,并且点亮灯
*/
...
...
@@ -648,7 +669,7 @@ public class SzShelfController extends BaseController {
Map
<
String
,
String
>
allLines
=
storage
.
getShowLines
();
for
(
String
lineInfo
:
allLines
.
keySet
())
{
//未包含
if
(
lineInfo
.
startsWith
(
ecall
.
getSmtLineNo
())){
if
(
lineInfo
.
startsWith
(
ecall
.
getSmtLineNo
()
+
"-"
)){
lineInfoStr
=
lineInfo
;
break
;
}
...
...
@@ -656,7 +677,7 @@ public class SzShelfController extends BaseController {
//线别信息不一致
if
(
Strings
.
isNullOrEmpty
(
lineInfoStr
)){
log
.
error
(
"["
+
packageId
+
"]线别信息与配置不一致"
);
return
"n"
+
getText
(
"shelf.msg.erro
r
Line"
,
new
String
[]{
ecall
.
getSmtLineNo
()},
request
.
getLocale
(),
"该物料是"
+
ecall
.
getSmtLineNo
()+
"物料,如确认入库请选择对应线别"
);
return
"n"
+
getText
(
"shelf.msg.erroLine"
,
new
String
[]{
ecall
.
getSmtLineNo
()},
request
.
getLocale
(),
"该物料是"
+
ecall
.
getSmtLineNo
()+
"物料,如确认入库请选择对应线别"
);
}
}
}
else
{
...
...
@@ -731,4 +752,46 @@ public class SzShelfController extends BaseController {
return
""
;
}
@RequestMapping
(
"/service/store/clearInactionPos"
)
@ResponseBody
public
String
clearInactionPos
(
HttpServletRequest
request
)
{
String
pids
=
request
.
getParameter
(
"pids"
);
for
(
String
pid
:
pids
.
split
(
";"
)){
StoragePos
pos
=
storagePosManager
.
get
(
pid
);
if
(
pos
!=
null
&&
pos
.
getBarcode
()
!=
null
){
try
{
String
opUser
=
StorageDataController
.
getLoginUsername
();
log
.
info
(
opUser
+
"清理库位["
+
pos
.
getPosName
()+
"]"
);
taskService
.
addTaskToFinished
(
pos
,
null
,
opUser
+
"-clear"
);
}
catch
(
Exception
e
)
{
return
e
.
getMessage
();
}
}
}
return
""
;
}
@RequestMapping
(
"/service/store/ignoreAlarm"
)
@ResponseBody
public
String
ignoreAlarm
(
HttpServletRequest
request
)
{
String
guid
=
request
.
getParameter
(
"guid"
);
RemainingTime
remainingTime
=
showMap
.
get
(
guid
);
if
(
remainingTime
!=
null
){
remainingTime
.
setIgnoreAlarm
(
true
);
showMap
.
put
(
guid
,
remainingTime
);
log
.
info
(
"忽略发料数据["
+
remainingTime
.
getKey
()+
"]的报警"
);
return
""
;
}
else
{
log
.
warn
(
"忽略发料数据["
+
guid
+
"]的报警时,未找到对应的发料数据"
);
return
"未找到["
+
guid
+
"]对应的发料数据"
;
}
}
@RequestMapping
(
"/service/store/testNet"
)
@ResponseBody
public
String
testNet
(
HttpServletRequest
request
)
{
return
"OK"
;
}
}
myproject/src/main/java/com/myproject/webapp/controller/webService/MesApiController.java
查看文件 @
43764ab
...
...
@@ -164,7 +164,8 @@ public class MesApiController extends BaseController {
item
.
put
(
"RI"
,
barcode
.
getBarcode
());
item
.
put
(
"PN"
,
barcode
.
getPartNumber
());
item
.
put
(
"QTY"
,
barcode
.
getAmount
());
item
.
put
(
"LOC"
,
pos
.
getStorageId
());
String
location
=
"line"
+
barcode
.
getLineInfoStr
()
+
"-"
+
pos
.
getPosName
();
item
.
put
(
"LOC"
,
location
);
Date
inDate
=
barcode
.
getPutInDate
();
String
inDateStr
=
DateUtil
.
toDateString
(
inDate
,
"yyyy-MM-dd HH:mm:ss"
);
item
.
put
(
"INTIME"
,
inDateStr
);
...
...
myproject/src/main/webapp/WEB-INF/pages/component/componentUpdate.jsp
查看文件 @
43764ab
...
...
@@ -628,7 +628,7 @@
$("#partNumber").val(data.barcode.partNumber);
$("#batch").val(data.barcode.batch);
$("#amount").val(data.barcode.amount);
$("#provider").val(data.barcode.provider
Number
);
$("#provider").val(data.barcode.provider);
}
});
})
...
...
myproject/src/main/webapp/WEB-INF/pages/component/storagePosFind.jsp
查看文件 @
43764ab
此文件的差异被折叠,
点击展开。
myproject/src/main/webapp/WEB-INF/pages/homeMenu.jsp
查看文件 @
43764ab
...
...
@@ -63,14 +63,14 @@
</div>
</security:authorize>
<
%--<security:authorize ifAnyGranted="ROLE_MANAGE_DATALOG">--%
>
<
security:authorize ifAnyGranted="ROLE_MANAGE_STACK_OUT"
>
<div class="col-md-2 col-xs-2 menuItem">
<a href="${ctx}/dataLog/search.html">
<img src="${ctx}/images/menu/1.png" class="menuImg"/>
<div><fmt:message key="menu.bigdata"/></div>
</a>
</div>
<
%--</security:authorize>--%
>
<
/security:authorize
>
<security:authorize ifAnyGranted="ROLE_MANAGE_USER,ROLE_MANAGE_ROLE">
<div class="col-md-2 col-xs-2 menuItem">
...
...
myproject/src/main/webapp/WEB-INF/pages/storage/accshelf.jsp
查看文件 @
43764ab
...
...
@@ -107,6 +107,7 @@
</tr>
</thead>
<tbody class="dataTable">
</tbody>
</table>
</div>
...
...
@@ -206,21 +207,20 @@
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" style="font-weight: 500;"><fmt:message key="shelf.employeeNo"/></h4>
<h4 class="modal-title" style="font-weight: 500;"><fmt:message key="shelf.employeeNo"/><
span id="authErrorMsg" style="font-weight: 500;color:red;"></span><
/h4>
</div>
<div class="modal-body">
<div class="row">
<div class="input-group">
<input type="text" class="form-control" id="opUser" />
</div>
</div>
</div>
<div class="modal-footer">
<div>
<%--<a href="" class="btn yellow left" id="findAndOut"><i class="fa fa-sign-out"></i><fmt:message key="allBoxView.findAndOut"/></a>--%>
<button type="button" class="btn green" onclick="opUserOk();">
<button type="button" class="btn green" onclick="opUserOk();"
>
<fmt:message key="button.ok"/></button>
<button type="button" data-dismiss="modal" class="btn default" id="cancelAuthBtn"><fmt:message key="button.cancel"/></button>
</div>
...
...
@@ -299,10 +299,12 @@
setInterval(function(){
if($('#allPartNumbers').is(':visible')) {
$("#opUserConfirm").modal("hide");
if($("#searchPn_keyboard").is(':visible')){
$("#searchPn_keyboard input").focus();
}else{
$("#searchPn").focus();
FilterPnItems();
}
}else if($("#opUserConfirm").is(':visible')){
if($("#opUser_keyboard").is(':visible')){
...
...
@@ -331,6 +333,7 @@
showPartNumbers = function(){
$("#opUser").val("");
$("#authErrorMsg").text("");
$("#opUserConfirm").modal("show");
<%--var findAndOutHref = '${ctx}/component/storagePosFind.html';--%>
...
...
@@ -340,14 +343,23 @@
opUserOk = function(type){
var opUser = $("#opUser").val();
$("#opUserConfirm").modal("hide");
if(opUser != ""){
$("#searchPn").val("");
$.post("${ctx}/service/store/storageTypeInventory", {type: type, cid: '${show}'}, function (data) {
pageIndex = -1;
partNumberItems = data;
nextPage();
}).error(function(){showMsg("request inventory error");});
$.post("${ctx}/service/store/accshelf/checkAuthCode", {opUser: opUser}, function (data) {
if(data == ""){
$("#opUserConfirm").attr("style","z-index:100000");
$("#opUserConfirm").modal("hide");
$("#opUserConfirm").attr("style","");
$("#searchPn").val("");
$.post("${ctx}/service/store/storageTypeInventory", {type: type, cid: '${show}'}, function (data) {
pageIndex = -1;
partNumberItems = data;
nextPage();
}).error(function(){showMsg("request inventory error");});
}else{
$("#authErrorMsg").text(data);
}
}).error(function(){showMsg("request check user error");});
}
}
...
...
@@ -461,12 +473,18 @@
$.post("${ctx}/service/store/accshelf/checkOut", {pn: partnumber, cid: '${show}',opUser:opUser}, function (data) {
$("#allPartNumbers").modal("hide");
showMsg(data);
waitting();
}).error(function(){showMsg("check out request error");});
}
$(".dataTable").html("");
closeVolume = function(guid){
$.post("${ctx}/service/store/ignoreAlarm", {guid: guid}, function (data) {
$("#allPartNumbers").modal("hide");
showMsg(data);
}).error(function(){showMsg("ignore alarm request error");});
}
var rows = {};
flushTable = function(){
...
...
@@ -478,6 +496,7 @@
$(".dataTable").html("");
var newRows = [];
//data = [{"key":"12-160023-0-8909000864","tableNo":2,"lineNo":12,"colorClass":"red","shelfLoc":"1-1-2","status":1,"guid":"ABCDEF"}];
for(var item in data) {
var remainingTime = data[item];
var key = remainingTime.key;
...
...
@@ -542,6 +561,12 @@
subSlotLabel = "${subslot_1}";
}
if(trColor == 'red' || tdColor == 'red'){
if(!remainingTime.ignoreAlarm){
var guid = remainingTime.guid;
shelfLoc = shelfLoc + "<span class='icon-volume-off right' onclick='closeVolume(\""+guid+"\");'></span>";
}
}
var trLine = $("#"+key);
var tdStr =
...
...
@@ -581,14 +606,17 @@
var inactionAlarmWindow;
flushInactionAlarm = function(){
$.post("${ctx}/service/store/inactionAlarmMsg", {cid: '${show}'}, function (data) {
inactionAlarmWindow = showAlarmWindow(inactionAlarmWindow,"${inactionAlarmTitle}",data);
var position = "bottom left";
inactionAlarmWindow = showAlarmWindow(position, inactionAlarmWindow,"${inactionAlarmTitle}",data);
});
};
function showAlarmWindow(alarmWindow, title, msg){
function showAlarmWindow(position, alarmWindow, title, msg){
var windowOptions = {
delay: false,
position:
'bottom left'
,
position:
position
,
closeOnClick: false,
sound: false,
title: title,
...
...
@@ -608,13 +636,60 @@
windowOptions.msg = msg;
alarmWindow =Lobibox.notify('warning', windowOptions);
}else{
alarmWindow.$el.find(".lobibox-notify-msg").html(msg);
//if(alarmWindow.$el){
alarmWindow.$el.find(".lobibox-notify-msg").html(msg);
//}
}
}
return alarmWindow;
}
setInterval(function(){
testNet();
flushTable();
flushInactionAlarm();
}, 1000);
var netErrorWindow;
testNet = function(){
var ajaxTimeoutTest = $.ajax({
url:'${ctx}/service/store/testNet', //请求的URL
timeout : 200, //超时时间设置,单位毫秒
type : 'get', //请求方式,get或post
data :{}, //请求所传参数,json格式
dataType:'json',//返回的数据格式
success:function(data){ //请求成功的回调函数
var position = "top left";
netErrorWindow = showAlarmWindow(position, netErrorWindow,"","");
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
var position = "top left";
netErrorWindow = showAlarmWindow(position, netErrorWindow,"Network Error","Request error");
},
complete : function(XMLHttpRequest,status){ //请求完成后最终执行参数
if(status=='timeout'){//超时,status还有success,error等值的情况
ajaxTimeoutTest.abort();
var position = "top left";
netErrorWindow = showAlarmWindow(position, netErrorWindow,"Network Error","Request time out");
}
}
});
}
setInterval(function(){
flushTable();
flushInactionAlarm();
}, 1000);
...
...
myproject/src/main/webapp/WEB-INF/pages/storage/allBoxView.jsp
查看文件 @
43764ab
...
...
@@ -147,7 +147,7 @@
<c:when test="${storage.shelf || storage.cabinet || storage.accShelf}">
<%--智能料架--%>
<div class="portlet-title">
<div style="text-align:center;font-size: 28px;"><a style="color:#FFFFFF;" href="${detailUrl}"
target="_blank"
>${storage.name}</a></div>
<div style="text-align:center;font-size: 28px;"><a style="color:#FFFFFF;" href="${detailUrl}">${storage.name}</a></div>
</div>
<div class="portlet-body">
<div class="task-content">
...
...
myproject/src/main/webapp/WEB-INF/pages/storage/storageSearch.jsp
查看文件 @
43764ab
...
...
@@ -50,9 +50,7 @@
<display:column property="name" escapeXml="true" titleKey="storage.name"/>
<%--<display:column titleKey="storage.boxCount" property="boxCount"/>--%>
<display:column titleKey="storage.slotAmount">
${storage.totalSlots}
</display:column>
<display:column property="lightMemo" escapeXml="true" titleKey="Line"/>
<display:setProperty name="paging.banner.items_name"><fmt:message
key="storage.item.name"/></display:setProperty>
<display:column titleKey="">
...
...
myproject/src/main/webapp/WEB-INF/pages/storage/storageUpdate.jsp
查看文件 @
43764ab
...
...
@@ -353,7 +353,7 @@
<th style="width:15%;"><fmt:message key="barcode.barcode"/></th>
<th><fmt:message key="Line"/></th>
<th><fmt:message key="barcode.amount"/></th>
<
th></th
>
<
%--<th></th>--%
>
</tr>
</thead>
<tbody>
...
...
@@ -410,11 +410,11 @@
<td class="posInfo${slot.id}">
<c:out value="${slot.barcode.amount}"/>
</td>
<
td
>
<
button class="btn yellow" id="btn${slot.id}"
onclick="checkoutStorage('${slot.id}')"
>
<
i class="fa fa-sign-out"></i><fmt:message key="button.checkout"/></button
>
<
/td
>
<
%--<td>--%
>
<
%--<button class="btn yellow" id="btn${slot.id}"--%>
<%--onclick="checkoutStorage('${slot.id}')">--%
>
<
%--<i class="fa fa-sign-out"></i><fmt:message key="button.checkout"/></button>--%
>
<
%--</td>--%
>
</tr>
</c:forEach>
...
...
@@ -468,7 +468,7 @@
if(window.confirm('${clearMsg}')){
$("tr[id]").each(function(){
var posId = $(this).attr("id");
$.post("${ctx}/service/store/clear
Pos", {pid
: posId}, function (data) {
$.post("${ctx}/service/store/clear
InactionPos", {pids
: posId}, function (data) {
if(data == ''){
$(".posInfo"+posId).html("");
}
...
...
@@ -486,7 +486,7 @@
}
function clearPos(posId){
$.post("${ctx}/service/store/clear
Pos", {pid
: posId}, function (data) {
$.post("${ctx}/service/store/clear
InactionPos", {pids
: posId}, function (data) {
if(data != ''){
alert(data);
}else{
...
...
myproject/src/main/webapp/WEB-INF/security.xml
查看文件 @
43764ab
...
...
@@ -24,11 +24,11 @@
<intercept-url
pattern=
"/app/userform**"
access=
"ROLE_DEFAULT"
/>
<intercept-url
pattern=
"/app/updatePassword**"
access=
"ROLE_DEFAULT"
/>
<intercept-url
pattern=
"/app/storage/**"
access=
"ROLE_DEFAULT"
/>
<intercept-url
pattern=
"/app/user/role*"
access=
"ROLE_MANAGE_ROLE"
/>
<intercept-url
pattern=
"/app/user/user*"
access=
"ROLE_MANAGE_USER"
/>
<intercept-url
pattern=
"/app/dataLog/*"
access=
"ROLE_MANAGE_
COMPONEN
T"
/>
<intercept-url
pattern=
"/app/user/role*"
access=
"ROLE_MANAGE_ROLE
,ROLE_MANAGE_USER
"
/>
<intercept-url
pattern=
"/app/user/user*"
access=
"ROLE_MANAGE_USER
,ROLE_MANAGE_USER
"
/>
<intercept-url
pattern=
"/app/dataLog/*"
access=
"ROLE_MANAGE_
STACK_OU
T"
/>
<intercept-url
pattern=
"/app/barcode/*"
access=
"ROLE_MANAGE_BARCODE"
/>
<intercept-url
pattern=
"/app/system/*"
access=
"ROLE_MANAGE_ROLE"
/>
<intercept-url
pattern=
"/app/system/*"
access=
"ROLE_MANAGE_ROLE
,ROLE_MANAGE_USER
"
/>
<intercept-url
pattern=
"/app/component/component*"
access=
"ROLE_MANAGE_COMPONENT"
/>
<intercept-url
pattern=
"/app/component/bom*"
access=
"ROLE_MANAGE_BOM"
/>
<intercept-url
pattern=
"/app/component/storagePosFind*"
access=
"ROLE_MANAGE_STACK_OUT"
/>
...
...
myproject/src/main/webapp/common/metroTopMenu.jsp
查看文件 @
43764ab
...
...
@@ -100,13 +100,13 @@
<%--Data--%>
<security:authorize ifAnyGranted="ROLE_MANAGE_DATALOG">
<security:authorize ifAnyGranted="ROLE_MANAGE_DATALOG
,ROLE_MANAGE_STACK_OUT
">
<ul class="hor-menu-data nav navbar-nav hide">
<
%--<li class="classic-menu-dropdown">--%
>
<
%--<a href="${ctx}/system/runStatus.html" name="data">--%
>
<
%--<fmt:message key="menu.bigdata.runStatus" /><span class="selected"></span>--%
>
<
%--</a>--%
>
<
%--</li>--%
>
<
li class="classic-menu-dropdown"
>
<
a href="${ctx}/system/runStatus.html" name="data"
>
<
fmt:message key="menu.bigdata.runStatus" /><span class="selected"></span
>
<
/a
>
<
/li
>
<%--<li class="classic-menu-dropdown">--%>
<%--<a href="${ctx}/system/dataReport.html" name="data">--%>
...
...
@@ -134,7 +134,7 @@
</a>
</li>
<security:authorize ifAnyGranted="ROLE_MANAGE_USER">
<security:authorize ifAnyGranted="ROLE_MANAGE_USER
,ROLE_MANAGE_ROLE
">
<li class="classic-menu-dropdown">
<a href="${ctx}/user/roleSearch.html" name="system">
<fmt:message key="menu.user.role"/><span class="selected"></span>
...
...
@@ -142,7 +142,7 @@
</li>
</security:authorize>
<security:authorize ifAnyGranted="ROLE_MANAGE_ROLE">
<security:authorize ifAnyGranted="ROLE_MANAGE_ROLE
,ROLE_MANAGE_USER
">
<li class="classic-menu-dropdown">
<a href="${ctx}/system/settings.html" name="system">
<fmt:message key="menu.system.settings"/><span class="selected"></span>
...
...
@@ -151,7 +151,7 @@
</security:authorize>
<security:authorize ifAnyGranted="ROLE_MANAGE_ROLE">
<security:authorize ifAnyGranted="ROLE_MANAGE_ROLE
,ROLE_MANAGE_USER
">
<li class="classic-menu-dropdown">
<a href="${ctx}/system/storageSearch.html" name="system">
<fmt:message key="menu.cloud.storage"/><span class="selected"></span>
...
...
myproject/src/main/webapp/decorators/metro.jsp
查看文件 @
43764ab
...
...
@@ -96,8 +96,8 @@
<div
class=
"page-header-inner"
>
<!-- BEGIN LOGO -->
<div
class=
"page-logo"
>
<div
style=
"color:white;font-size:35px;"
>
${storage.name}
<div
style=
"color:white;font-size:35px;
width:300px;
"
>
<a
href=
"${ctx}/homeMenu.html"
>
${storage.name}
</a>
</div>
</div>
</div>
...
...
myproject/src/main/webapp/decorators/metroEmpty.jsp
查看文件 @
43764ab
...
...
@@ -101,7 +101,7 @@
<script
src=
"${ctx}/assets/jqkeyboard/jquery-ui-custom.min.js"
type=
"text/javascript"
></script>
<script
src=
"${ctx}/assets/jqkeyboard/jquery.keyboard.js?id=1"
type=
"text/javascript"
></script>
<script
src=
"${ctx}/assets/jqkeyboard/jquery.keyboard.js?id=1
0
"
type=
"text/javascript"
></script>
<!-- END PAGE LEVEL SCRIPTS -->
<script>
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论