Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
SmdBox
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit c833ac2b
由
sunke
编写于
2020-06-29 14:15:41 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
扫码料架入库推荐库位
添加日语 尾料先出改为数量小的先出 清理库位时更新库存
1 个父辈
5dabe5bb
全部展开
显示空白字符变更
内嵌
并排
正在显示
17 个修改的文件
包含
233 行增加
和
242 行删除
myproject/src/main/java/com/myproject/bean/Language.java
myproject/src/main/java/com/myproject/bean/utils/StatusBean.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/CodeShelfController.java
myproject/src/main/java/com/myproject/webapp/controller/storage/StoragePosUpdateController.java
myproject/src/main/java/com/myproject/webapp/controller/webService/MesApiController.java
myproject/src/main/java/com/myproject/webapp/controller/webService/StatusController.java
myproject/src/main/java/com/myproject/webapp/filter/LocaleFilter.java
myproject/src/main/resources/ApplicationResources_jp.properties
myproject/src/main/resources/StorageResources.properties
myproject/src/main/resources/StorageResources_en.properties
myproject/src/main/resources/StorageResources_jp.properties
myproject/src/main/resources/StorageResources_zh_CN.properties
myproject/src/main/webapp/WEB-INF/pages/storage/allBoxView.jsp
myproject/src/main/webapp/WEB-INF/pages/system/settings.jsp
myproject/src/main/webapp/WEB-INF/pages/updateHistory.jsp
myproject/src/main/java/com/myproject/bean/Language.java
查看文件 @
c833ac2
package
com
.
myproject
.
bean
;
package
com
.
myproject
.
bean
;
import
org.mockito.cglib.core.Local
;
import
java.util.Locale
;
import
java.util.Locale
;
/**
/**
...
@@ -12,6 +14,8 @@ public enum Language {
...
@@ -12,6 +14,8 @@ public enum Language {
ENGLISH
(
"en"
,
"English"
),
ENGLISH
(
"en"
,
"English"
),
//zh_CN 中文
//zh_CN 中文
ZH_CN
(
"zh-CN"
,
"中文"
),
ZH_CN
(
"zh-CN"
,
"中文"
),
//日语
Japan
(
"jp"
,
"日本語"
),
;
;
...
@@ -39,18 +43,22 @@ public enum Language {
...
@@ -39,18 +43,22 @@ public enum Language {
this
.
value
=
value
;
this
.
value
=
value
;
}
}
public
Locale
getLocale
(
){
public
static
Locale
getLocale
(
String
langueLabel
){
Locale
preferredLocale
=
null
;
Locale
preferredLocale
=
null
;
if
(
la
bel
!=
null
&&
!
l
abel
.
isEmpty
())
{
if
(
la
ngueLabel
!=
null
&&
!
langueL
abel
.
isEmpty
())
{
int
indexOfUnderscore
=
label
.
indexOf
(
'-'
);
int
indexOfUnderscore
=
la
ngueLa
bel
.
indexOf
(
'-'
);
if
(
indexOfUnderscore
!=
-
1
)
{
if
(
indexOfUnderscore
!=
-
1
)
{
String
language
=
label
.
substring
(
0
,
indexOfUnderscore
);
String
language
=
la
ngueLa
bel
.
substring
(
0
,
indexOfUnderscore
);
String
country
=
label
.
substring
(
indexOfUnderscore
+
1
);
String
country
=
la
ngueLa
bel
.
substring
(
indexOfUnderscore
+
1
);
preferredLocale
=
new
Locale
(
language
,
country
);
preferredLocale
=
new
Locale
(
language
,
country
);
}
else
{
}
else
{
preferredLocale
=
new
Locale
(
label
);
preferredLocale
=
new
Locale
(
la
ngueLa
bel
);
}
}
}
}
return
preferredLocale
;
return
preferredLocale
;
}
}
public
Locale
getLocale
(){
return
getLocale
(
label
);
}
}
}
myproject/src/main/java/com/myproject/bean/utils/StatusBean.java
查看文件 @
c833ac2
package
com
.
myproject
.
bean
.
utils
;
package
com
.
myproject
.
bean
.
utils
;
import
com.google.common.base.Strings
;
import
com.google.common.base.Strings
;
import
com.myproject.bean.Language
;
import
com.myproject.bean.update.AlarmInfo
;
import
com.myproject.bean.update.AlarmInfo
;
import
com.myproject.util.StorageConstants
;
import
com.myproject.util.StorageConstants
;
...
@@ -39,6 +40,11 @@ public class StatusBean {
...
@@ -39,6 +40,11 @@ public class StatusBean {
//服务器默认这些按钮都为不可用状态,只有收到对应的enable时,按钮才可以进行点击
//服务器默认这些按钮都为不可用状态,只有收到对应的enable时,按钮才可以进行点击
private
Map
<
String
,
String
>
data
=
new
HashMap
<>();
private
Map
<
String
,
String
>
data
=
new
HashMap
<>();
/**
* 提示消息,key为en, zh_CN, jp等,消息为对应语言的消息
*/
private
Map
<
String
,
String
>
msgData
=
new
HashMap
<>();
/// <summary>
/// <summary>
/// 整体料仓状态
/// 整体料仓状态
/// 1=正常运行中
/// 1=正常运行中
...
@@ -60,16 +66,6 @@ public class StatusBean {
...
@@ -60,16 +66,6 @@ public class StatusBean {
* 英文提示消息
* 英文提示消息
*/
*/
public
String
msgEn
=
""
;
public
String
msgEn
=
""
;
/**
* 提示消息类型
*/
public
String
msgCode
=
""
;
/**
* 消息参数
*/
public
String
[]
msgParam
;
/// <summary>
/// <summary>
/// 包含的多个 BOX 的状态信息
/// 包含的多个 BOX 的状态信息
/// </summary>
/// </summary>
...
@@ -321,20 +317,17 @@ public class StatusBean {
...
@@ -321,20 +317,17 @@ public class StatusBean {
this
.
msg
=
msg
;
this
.
msg
=
msg
;
}
}
public
String
getMsgCode
()
{
public
void
setShowMsg
(
Locale
local
){
return
msgCode
;
String
lang
=
local
.
getLanguage
();
}
String
showMsg
=
msgData
.
get
(
lang
);
if
(
showMsg
==
null
){
public
void
setMsgCode
(
String
msgCode
)
{
if
(
Language
.
ENGLISH
.
getLabel
().
contains
(
lang
)){
this
.
msgCode
=
msgCode
;
showMsg
=
msgEn
;
}
else
{
showMsg
=
msg
;
}
}
public
String
[]
getMsgParam
()
{
return
msgParam
;
}
}
this
.
msg
=
showMsg
;
public
void
setMsgParam
(
String
[]
msgParam
)
{
this
.
msgParam
=
msgParam
;
}
}
public
Map
<
Integer
,
BoxStatusBean
>
getBoxStatus
()
{
public
Map
<
Integer
,
BoxStatusBean
>
getBoxStatus
()
{
...
@@ -436,4 +429,20 @@ public class StatusBean {
...
@@ -436,4 +429,20 @@ public class StatusBean {
public
void
setMsgEn
(
String
msgEn
)
{
public
void
setMsgEn
(
String
msgEn
)
{
this
.
msgEn
=
msgEn
;
this
.
msgEn
=
msgEn
;
}
}
public
Map
<
String
,
String
>
getMsgData
()
{
return
msgData
;
}
public
void
setMsgData
(
Map
<
String
,
String
>
msgData
)
{
this
.
msgData
=
msgData
;
}
public
String
getDoorReelSingnal
()
{
String
doorReelSignal
=
getFromData
(
"doorReelSignal"
);
if
(
Strings
.
isNullOrEmpty
(
doorReelSignal
)){
doorReelSignal
=
"-1"
;
}
return
doorReelSignal
;
}
}
}
myproject/src/main/java/com/myproject/manager/impl/StoragePosManagerImpl.java
查看文件 @
c833ac2
...
@@ -414,7 +414,7 @@ public class StoragePosManagerImpl implements IStoragePosManager {
...
@@ -414,7 +414,7 @@ public class StoragePosManagerImpl implements IStoragePosManager {
}
else
if
(
StorageConstants
.
CHECKOUT_TYPE
.
FIFO
.
equals
(
checkoutType
)){
//严格的先进先出
}
else
if
(
StorageConstants
.
CHECKOUT_TYPE
.
FIFO
.
equals
(
checkoutType
)){
//严格的先进先出
sort
=
new
Sort
(
Sort
.
Direction
.
ASC
,
"canCheckOutTime"
).
and
(
new
Sort
(
Sort
.
Direction
.
DESC
,
"barcode.usedCount"
));
sort
=
new
Sort
(
Sort
.
Direction
.
ASC
,
"canCheckOutTime"
).
and
(
new
Sort
(
Sort
.
Direction
.
DESC
,
"barcode.usedCount"
));
}
else
if
(
StorageConstants
.
CHECKOUT_TYPE
.
USED_FIRST
.
equals
(
checkoutType
)){
//尾料优先
}
else
if
(
StorageConstants
.
CHECKOUT_TYPE
.
USED_FIRST
.
equals
(
checkoutType
)){
//尾料优先
sort
=
new
Sort
(
Sort
.
Direction
.
DESC
,
"barcode.usedC
ount"
).
and
(
new
Sort
(
Sort
.
Direction
.
ASC
,
"canCheckOutTime"
));
sort
=
new
Sort
(
Sort
.
Direction
.
ASC
,
"barcode.am
ount"
).
and
(
new
Sort
(
Sort
.
Direction
.
ASC
,
"canCheckOutTime"
));
}
else
if
(
StorageConstants
.
CHECKOUT_TYPE
.
PRODUCE_DATE
.
equals
(
checkoutType
)){
}
else
if
(
StorageConstants
.
CHECKOUT_TYPE
.
PRODUCE_DATE
.
equals
(
checkoutType
)){
//先生产先出
//先生产先出
sort
=
new
Sort
(
Sort
.
Direction
.
ASC
,
"barcode.produceDate"
).
and
(
new
Sort
(
Sort
.
Direction
.
ASC
,
"canCheckOutTime"
));
sort
=
new
Sort
(
Sort
.
Direction
.
ASC
,
"barcode.produceDate"
).
and
(
new
Sort
(
Sort
.
Direction
.
ASC
,
"canCheckOutTime"
));
...
...
myproject/src/main/java/com/myproject/util/BarcodeRule.java
查看文件 @
c833ac2
...
@@ -79,6 +79,9 @@ public class BarcodeRule {
...
@@ -79,6 +79,9 @@ public class BarcodeRule {
}
}
log
.
info
(
"分割符为:"
+
newRule
.
separator
+
"长度为:"
+
tempArr
.
length
);
log
.
info
(
"分割符为:"
+
newRule
.
separator
+
"长度为:"
+
tempArr
.
length
);
if
(
tempArr
.
length
==
0
){
tempArr
=
new
String
[]{
ruleStr
};
}
for
(
int
i
=
0
;
i
<
tempArr
.
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
tempArr
.
length
;
i
++)
{
String
fieldValue
=
tempArr
[
i
];
String
fieldValue
=
tempArr
[
i
];
...
@@ -126,15 +129,19 @@ public class BarcodeRule {
...
@@ -126,15 +129,19 @@ public class BarcodeRule {
}
}
}
}
if
(!
newRule
.
expireYear_item
.
hasThisField
()
&&
!
newRule
.
expireMonth_item
.
hasThisField
()
&&
!
newRule
.
expireDay_item
.
hasThisField
()&&
!
newRule
.
expireDate_item
.
hasThisField
()){
if
(!
newRule
.
expireDate_item
.
matchRule
(
fieldValue
,
i
)){
if
(
newRule
.
expireDate_item
.
matchRule
(
fieldValue
,
i
)){
log
.
info
(
"expireDate: 为"
+
newRule
.
expireDate_item
.
toString
());
}
}
if
(!
newRule
.
expireYear_item
.
hasThisField
()
&&
!
newRule
.
expireMonth_item
.
hasThisField
()
&&
!
newRule
.
expireDay_item
.
hasThisField
()){
if
(
newRule
.
expireYear_item
.
matchRule
(
fieldValue
,
i
)){
if
(
newRule
.
expireYear_item
.
matchRule
(
fieldValue
,
i
)){
log
.
info
(
"expireYear: 为"
+
newRule
.
expireYear_item
.
toString
());
log
.
info
(
"expireYear: 为"
+
newRule
.
expireYear_item
.
toString
());
}
else
if
(
newRule
.
expireMonth_item
.
matchRule
(
fieldValue
,
i
)){
}
else
if
(
newRule
.
expireMonth_item
.
matchRule
(
fieldValue
,
i
)){
log
.
info
(
"expireMonth: 为"
+
newRule
.
expireMonth_item
.
toString
());
log
.
info
(
"expireMonth: 为"
+
newRule
.
expireMonth_item
.
toString
());
}
else
if
(
newRule
.
expireDay_item
.
matchRule
(
fieldValue
,
i
)){
}
else
if
(
newRule
.
expireDay_item
.
matchRule
(
fieldValue
,
i
)){
log
.
info
(
"expireDay: 为"
+
newRule
.
expireDay_item
.
toString
());
log
.
info
(
"expireDay: 为"
+
newRule
.
expireDay_item
.
toString
());
}
else
if
(
newRule
.
expireDate_item
.
matchRule
(
fieldValue
,
i
)){
log
.
info
(
"expireDate: 为"
+
newRule
.
expireDate_item
.
toString
());
}
}
}
}
}
}
...
@@ -198,11 +205,11 @@ public class BarcodeRule {
...
@@ -198,11 +205,11 @@ public class BarcodeRule {
private
int
prefix
=
-
1
;
private
int
prefix
=
-
1
;
/**
/**
*长度,0表示为变长,正值表示从前面截取,负值表示从后面开始截取,前缀和后缀及长度都有效时,需要验证字串总长度
*长度,0表示为变长,正值表示从前面截取,负值表示从后面开始截取,前缀和后缀及长度都有效时,需要验证字串总长度
* 例一: QTY[
-1,5,-1
]取前5位作为数量
* 例一: QTY[
0,5,0
]取前5位作为数量
* 例二: QTY[
-1,-5,-1
]取后5位作为数量
* 例二: QTY[
0,-5,0
]取后5位作为数量
* 例三: QTY[1,5,
-1
]去除前面第1位后,取前5位作为数量
* 例三: QTY[1,5,
0
]去除前面第1位后,取前5位作为数量
* 例四: QTY[
-1
,-5,1]去除后面第1位后,取后5位作为数量
* 例四: QTY[
0
,-5,1]去除后面第1位后,取后5位作为数量
* 例五: QTY[1,0,
-1
]去除前面1位后,剩余的作为数量
* 例五: QTY[1,0,
0
]去除前面1位后,剩余的作为数量
* 例六: QTY[0,5,3]去除前面0位和后面3位,剩余的5位作为数量,也就是说只能为8位
* 例六: QTY[0,5,3]去除前面0位和后面3位,剩余的5位作为数量,也就是说只能为8位
*/
*/
private
int
length
=
0
;
private
int
length
=
0
;
...
@@ -279,6 +286,9 @@ public class BarcodeRule {
...
@@ -279,6 +286,9 @@ public class BarcodeRule {
try
{
try
{
if
(
index
!=
-
1
){
if
(
index
!=
-
1
){
String
codeValue
=
codeArr
[
index
];
String
codeValue
=
codeArr
[
index
];
if
(
codeValue
.
length
()
<
prefix
+
suffix
){
return
null
;
}
//如果有前缀和后缀
//如果有前缀和后缀
if
(
prefix
>
0
){
if
(
prefix
>
0
){
codeValue
=
codeValue
.
substring
(
prefix
);
codeValue
=
codeValue
.
substring
(
prefix
);
...
@@ -408,7 +418,9 @@ public class BarcodeRule {
...
@@ -408,7 +418,9 @@ public class BarcodeRule {
codeBean
.
setError
(
"error.barcode.noRule"
,
"解析规则未定义"
);
codeBean
.
setError
(
"error.barcode.noRule"
,
"解析规则未定义"
);
return
codeBean
;
return
codeBean
;
}
}
String
[]
codeArr
=
codeStr
.
split
(
separator
);
String
[]
codeArr
=
new
String
[]{
codeStr
};
if
(!
Strings
.
isNullOrEmpty
(
separator
)){
codeArr
=
codeStr
.
split
(
separator
);
//条码与规则长度对应不上
//条码与规则长度对应不上
if
(
codeArr
.
length
!=
length
){
if
(
codeArr
.
length
!=
length
){
log
.
info
(
"条码["
+
codeStr
+
"]与规则【"
+
ruleStr
+
"】长度不同"
);
log
.
info
(
"条码["
+
codeStr
+
"]与规则【"
+
ruleStr
+
"】长度不同"
);
...
@@ -417,6 +429,8 @@ public class BarcodeRule {
...
@@ -417,6 +429,8 @@ public class BarcodeRule {
}
else
{
}
else
{
codeArr
=
codeStr
.
split
(
separator
,
length
);
codeArr
=
codeStr
.
split
(
separator
,
length
);
}
}
}
Barcode
b
=
new
Barcode
();
Barcode
b
=
new
Barcode
();
...
@@ -555,12 +569,16 @@ public class BarcodeRule {
...
@@ -555,12 +569,16 @@ public class BarcodeRule {
// codeStr = "=1+0x0-0x0=A0002";
// codeStr = "=1+0x0-0x0=A0002";
//阳光电源
//阳光电源
rule
=
"[RI]_PN_3_QTYxxxx"
;
rule
=
"[RI]_PN_3_QTYxxxx"
;
//
rule = "[RI]_PN_PRODATEyyMMdd_QTY[0:5:4]";
rule
=
"[RI]_PN_PRODATEyyMMdd_QTY[0:5:4]"
;
codeStr
=
"4500065747_CS000069_180101_030000041"
;
codeStr
=
"4500065747_CS000069_180101_030000041"
;
codeStr
=
"4500089600_DC000045_190528_003000006"
;
codeStr
=
"4500089600_DC000045_190528_003000006"
;
//佳世达
//博郎 QR = [VEE PN] + [Quantity] + [UID] + [Expire date] + [MSD level] + [Light class] + [Color class] + [Forward voltage] + [00000000]
//rule ="BATCH;PRODATEyyyyMMdd[1:8:-1]EXPD[-1:-4:-1];PN[1:12:-1]SP[13:5:-1]QTY[-1:-5:-1];RI";
// codeStr = "001967370080049250852020112000010P130BT200MH00000000";
//codeStr = "L00002019090199951797;E20190901 0365;B8C.R2003.V81506072019090103000;R506072019102200356";
//
// rule = "PN[0:8:-1]QTY[8:5:-1]RI[13:7:-1]EXPDATEyyyyMMdd[20:8:-1]MSL[28:4:-1]BATCH[32:4:-1]SP[36:4:-1]";
// //佳世达
// rule ="BATCH;PRODATEyyyyMMdd[1:8:-1]EXPD[-1:-4:-1];PN[1:12:-1]SP[13:5:-1]QTY[-1:-5:-1];RI";
// codeStr = "L00002019090199951797;E20190901 0365;B8C.R2003.V81506072019090103000;R506072019102200356";
BarcodeRule
br
=
BarcodeRule
.
newRule
(
rule
);
BarcodeRule
br
=
BarcodeRule
.
newRule
(
rule
);
Barcode
b
=
br
.
toCodeBean
(
codeStr
).
getBarcode
();
Barcode
b
=
br
.
toCodeBean
(
codeStr
).
getBarcode
();
if
(
b
!=
null
){
if
(
b
!=
null
){
...
@@ -570,13 +588,12 @@ public class BarcodeRule {
...
@@ -570,13 +588,12 @@ public class BarcodeRule {
System
.
out
.
println
(
"BATCH:"
+
b
.
getBatch
());
System
.
out
.
println
(
"BATCH:"
+
b
.
getBatch
());
System
.
out
.
println
(
"MSL:"
+
b
.
getMsl
());
System
.
out
.
println
(
"MSL:"
+
b
.
getMsl
());
System
.
out
.
println
(
"EXPDATE:"
+
b
.
getExpireDate
());
System
.
out
.
println
(
"EXPDATE:"
+
b
.
getExpireDate
());
System
.
out
.
println
(
"Supllier:"
+
b
.
getProvider
());
}
else
{
}
else
{
log
.
info
(
"解析失败"
);
log
.
info
(
"解析失败"
);
}
}
System
.
out
.
println
(
String
.
format
(
"%08d"
,
Long
.
valueOf
(
"002"
)));
// URI uri = new URI("smb://materialtower:Flextronics1@10.222.42.48/materialtower/re20190822161258_result.txt");
// URI uri = new URI("smb://materialtower:Flextronics1@10.222.42.48/materialtower/re20190822161258_result.txt");
// String smbFileName = uri.getScheme() + "://" + uri.getHost() + "" + uri.getPath() + "abc.txt";
// String smbFileName = uri.getScheme() + "://" + uri.getHost() + "" + uri.getPath() + "abc.txt";
...
...
myproject/src/main/java/com/myproject/webapp/controller/storage/CodeShelfController.java
查看文件 @
c833ac2
此文件的差异被折叠,
点击展开。
myproject/src/main/java/com/myproject/webapp/controller/storage/StoragePosUpdateController.java
查看文件 @
c833ac2
...
@@ -72,7 +72,8 @@ public class StoragePosUpdateController extends BaseUpdateController {
...
@@ -72,7 +72,8 @@ public class StoragePosUpdateController extends BaseUpdateController {
barcodeManager
.
save
(
barcode
);
barcodeManager
.
save
(
barcode
);
storagePos
.
setBarcode
(
null
);
storagePos
.
setBarcode
(
null
);
storagePos
.
setUsed
(
false
);
storagePos
.
setUsed
(
false
);
storagePosManager
.
save
(
storagePos
);
storagePos
=
storagePosManager
.
save
(
storagePos
);
dataCache
.
updateInventory
(
storagePos
,
barcode
);
}
}
return
""
;
return
""
;
...
...
myproject/src/main/java/com/myproject/webapp/controller/webService/MesApiController.java
查看文件 @
c833ac2
...
@@ -5,6 +5,8 @@ import com.google.common.collect.Lists;
...
@@ -5,6 +5,8 @@ import com.google.common.collect.Lists;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Sets
;
import
com.google.common.collect.Sets
;
import
com.myproject.bean.CodeBean
;
import
com.myproject.bean.CodeBean
;
import
com.myproject.bean.Language
;
import
com.myproject.bean.json.UsageItem
;
import
com.myproject.bean.update.*
;
import
com.myproject.bean.update.*
;
import
com.myproject.bean.utils.BoxStatusBean
;
import
com.myproject.bean.utils.BoxStatusBean
;
import
com.myproject.bean.utils.StatusBean
;
import
com.myproject.bean.utils.StatusBean
;
...
@@ -16,6 +18,7 @@ import com.myproject.manager.IStoragePosManager;
...
@@ -16,6 +18,7 @@ import com.myproject.manager.IStoragePosManager;
import
com.myproject.util.DateUtil
;
import
com.myproject.util.DateUtil
;
import
com.myproject.util.StorageConstants
;
import
com.myproject.util.StorageConstants
;
import
com.myproject.webapp.controller.storage.BaseController
;
import
com.myproject.webapp.controller.storage.BaseController
;
import
com.myproject.webapp.filter.LocaleFilter
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.apache.logging.log4j.Logger
;
import
org.apache.logging.log4j.core.util.Integers
;
import
org.apache.logging.log4j.core.util.Integers
;
...
@@ -355,9 +358,21 @@ public class MesApiController extends BaseController {
...
@@ -355,9 +358,21 @@ public class MesApiController extends BaseController {
@RequestMapping
(
value
=
"/status"
)
@RequestMapping
(
value
=
"/status"
)
@ResponseBody
@ResponseBody
public
Map
<
String
,
Object
>
status
(
HttpServletRequest
request
)
{
public
List
<
Map
<
String
,
Object
>>
status
(
HttpServletRequest
request
)
{
Map
<
String
,
Object
>
results
=
Maps
.
newHashMap
();
String
cid
=
request
.
getParameter
(
"cid"
);
for
(
Storage
storage
:
dataCache
.
getAllStorage
().
values
()){
Locale
localeZh
=
Language
.
ZH_CN
.
getLocale
();
Locale
localeEn
=
Language
.
ENGLISH
.
getLocale
();
Collection
<
Storage
>
storageList
=
Lists
.
newArrayList
();
if
(
Strings
.
isNullOrEmpty
(
cid
)){
storageList
.
addAll
(
dataCache
.
getAllStorage
().
values
());
}
else
{
Storage
storage
=
dataCache
.
getStorage
(
cid
);
storageList
.
add
(
storage
);
}
List
<
Map
<
String
,
Object
>>
results
=
Lists
.
newArrayList
();
for
(
Storage
storage
:
storageList
){
StatusBean
statusBean
=
taskService
.
getStatus
(
storage
.
getCid
());
StatusBean
statusBean
=
taskService
.
getStatus
(
storage
.
getCid
());
Map
<
Integer
,
BoxStatusBean
>
boxStatusMap
=
statusBean
.
getBoxStatus
();
Map
<
Integer
,
BoxStatusBean
>
boxStatusMap
=
statusBean
.
getBoxStatus
();
int
status
=
-
1
;
int
status
=
-
1
;
...
@@ -366,18 +381,50 @@ public class MesApiController extends BaseController {
...
@@ -366,18 +381,50 @@ public class MesApiController extends BaseController {
if
(
boxStatusBean
!=
null
){
if
(
boxStatusBean
!=
null
){
status
=
boxStatusBean
.
getStatus
();
status
=
boxStatusBean
.
getStatus
();
}
}
}
}
int
storageStatus
=
status
;
int
storageStatus
=
status
;
if
(
status
==
StorageConstants
.
STATUS
.
OFFLINE
||
statusBean
.
timeOut
()){
if
(
status
==
StorageConstants
.
STATUS
.
OFFLINE
||
statusBean
.
timeOut
()){
//离线
//离线
storageStatus
=
-
1
;
storageStatus
=
-
1
;
}
}
results
.
put
(
storage
.
getName
(),
storageStatus
);
String
msg
=
statusBean
.
getMsg
();
String
msgEn
=
statusBean
.
getMsgEn
();
Exception
e
=
taskService
.
getServerException
(
storage
.
getCid
());
if
(
e
!=
null
){
if
(
e
instanceof
ValidateException
){
msg
=
getText
(
e
.
getMessage
(),((
ValidateException
)
e
).
getParams
(),
localeZh
,
e
.
getMessage
());
msgEn
=
getText
(
e
.
getMessage
(),((
ValidateException
)
e
).
getParams
(),
localeEn
,
e
.
getMessage
());
}
else
{
msg
=
e
.
getMessage
();
msgEn
=
e
.
getMessage
();
}
}
Map
<
String
,
Object
>
itemMap
=
new
HashMap
<>();
itemMap
.
put
(
"cid"
,
storage
.
getCid
());
itemMap
.
put
(
"name"
,
storage
.
getName
());
itemMap
.
put
(
"status"
,
storageStatus
);
itemMap
.
put
(
"msg"
,
msg
);
itemMap
.
put
(
"msgEn"
,
msgEn
);
itemMap
.
put
(
"doorReelSignal"
,
statusBean
.
getDoorReelSingnal
());
Map
<
String
,
Object
>
emptySlotMap
=
Maps
.
newHashMap
();
Map
<
String
,
Object
>
totalSlotMap
=
Maps
.
newHashMap
();
Map
<
String
,
UsageItem
>
usageMap
=
storage
.
getUsageMap
();
for
(
UsageItem
usageItem
:
usageMap
.
values
())
{
String
sizeStr
=
usageItem
.
getSizeStr
();
int
total
=
usageItem
.
getTotalCount
();
int
used
=
usageItem
.
getUsedCount
();
totalSlotMap
.
put
(
sizeStr
,
total
);
emptySlotMap
.
put
(
sizeStr
,
total
-
used
);
}
itemMap
.
put
(
"emptySlot"
,
emptySlotMap
);
itemMap
.
put
(
"totalSlot"
,
totalSlotMap
);
results
.
add
(
itemMap
);
}
}
return
results
;
return
results
;
}
}
private
Date
toDate
(
String
dateStr
){
private
Date
toDate
(
String
dateStr
){
try
{
try
{
return
DateUtil
.
toDate
(
dateStr
,
"yyyyMMddHHmmss"
);
return
DateUtil
.
toDate
(
dateStr
,
"yyyyMMddHHmmss"
);
...
...
myproject/src/main/java/com/myproject/webapp/controller/webService/StatusController.java
查看文件 @
c833ac2
...
@@ -50,7 +50,7 @@ public class StatusController extends BaseController{
...
@@ -50,7 +50,7 @@ public class StatusController extends BaseController{
private
StatusBean
getStatus
(
String
cid
,
HttpServletRequest
request
){
private
StatusBean
getStatus
(
String
cid
,
HttpServletRequest
request
){
StatusBean
statusBean
=
taskService
.
getStatus
(
cid
);
StatusBean
statusBean
=
taskService
.
getStatus
(
cid
);
statusBean
.
setShowMsg
(
request
.
getLocale
());
Exception
e
=
taskService
.
getServerException
(
cid
);
Exception
e
=
taskService
.
getServerException
(
cid
);
if
(
e
!=
null
){
if
(
e
!=
null
){
if
(
e
instanceof
ValidateException
){
if
(
e
instanceof
ValidateException
){
...
@@ -63,6 +63,7 @@ public class StatusController extends BaseController{
...
@@ -63,6 +63,7 @@ public class StatusController extends BaseController{
}
}
}
}
//log.debug("Get cid: " + cid + " status: " + statusBean.getStatus() + " and error: " + statusBean.getError());
//log.debug("Get cid: " + cid + " status: " + statusBean.getStatus() + " and error: " + statusBean.getError());
return
statusBean
;
return
statusBean
;
}
}
...
...
myproject/src/main/java/com/myproject/webapp/filter/LocaleFilter.java
查看文件 @
c833ac2
...
@@ -2,6 +2,7 @@ package com.myproject.webapp.filter;
...
@@ -2,6 +2,7 @@ package com.myproject.webapp.filter;
import
com.google.common.base.Strings
;
import
com.google.common.base.Strings
;
import
com.myproject.Constants
;
import
com.myproject.Constants
;
import
com.myproject.bean.Language
;
import
com.myproject.model.User
;
import
com.myproject.model.User
;
import
org.springframework.context.i18n.LocaleContextHolder
;
import
org.springframework.context.i18n.LocaleContextHolder
;
import
org.springframework.security.core.Authentication
;
import
org.springframework.security.core.Authentication
;
...
@@ -40,7 +41,7 @@ public class LocaleFilter extends OncePerRequestFilter {
...
@@ -40,7 +41,7 @@ public class LocaleFilter extends OncePerRequestFilter {
String
locale
=
request
.
getParameter
(
"locale"
);
String
locale
=
request
.
getParameter
(
"locale"
);
Locale
preferredLocale
=
getPreFerred
Locale
(
locale
);
Locale
preferredLocale
=
Language
.
get
Locale
(
locale
);
SecurityContextImpl
securityContextImpl
=
(
SecurityContextImpl
)
request
SecurityContextImpl
securityContextImpl
=
(
SecurityContextImpl
)
request
.
getSession
().
getAttribute
(
"SPRING_SECURITY_CONTEXT"
);
.
getSession
().
getAttribute
(
"SPRING_SECURITY_CONTEXT"
);
...
@@ -83,7 +84,7 @@ public class LocaleFilter extends OncePerRequestFilter {
...
@@ -83,7 +84,7 @@ public class LocaleFilter extends OncePerRequestFilter {
if
(
preferredLocale
==
null
){
//没有设置过,使用用户设置的 Locale
if
(
preferredLocale
==
null
){
//没有设置过,使用用户设置的 Locale
if
(
loginUser
!=
null
){
if
(
loginUser
!=
null
){
preferredLocale
=
getPreFerred
Locale
(
loginUser
.
getLanguage
());
preferredLocale
=
Language
.
get
Locale
(
loginUser
.
getLanguage
());
}
}
}
}
...
@@ -109,19 +110,4 @@ public class LocaleFilter extends OncePerRequestFilter {
...
@@ -109,19 +110,4 @@ public class LocaleFilter extends OncePerRequestFilter {
// Reset thread-bound LocaleContext.
// Reset thread-bound LocaleContext.
LocaleContextHolder
.
setLocaleContext
(
null
);
LocaleContextHolder
.
setLocaleContext
(
null
);
}
}
private
Locale
getPreFerredLocale
(
String
locale
){
Locale
preferredLocale
=
null
;
if
(
locale
!=
null
&&
!
locale
.
isEmpty
())
{
int
indexOfUnderscore
=
locale
.
indexOf
(
'-'
);
if
(
indexOfUnderscore
!=
-
1
)
{
String
language
=
locale
.
substring
(
0
,
indexOfUnderscore
);
String
country
=
locale
.
substring
(
indexOfUnderscore
+
1
);
preferredLocale
=
new
Locale
(
language
,
country
);
}
else
{
preferredLocale
=
new
Locale
(
locale
);
}
}
return
preferredLocale
;
}
}
}
myproject/src/main/resources/ApplicationResources_jp.properties
0 → 100644
查看文件 @
c833ac2
此文件的差异被折叠,
点击展开。
myproject/src/main/resources/StorageResources.properties
查看文件 @
c833ac2
...
@@ -332,44 +332,10 @@ alarm.expire.title=Expire Alarm
...
@@ -332,44 +332,10 @@ alarm.expire.title=Expire Alarm
alarm.expire.msg
=
The amount of expire material is [{0}]
alarm.expire.msg
=
The amount of expire material is [{0}]
client.inSuddenStop
=
Emergency Stop
client.NoAIr
=
No air signal
client.PreConnectFail
=
Startup failure
\u
FF1Apress Axis connect failed.
client.CloseError
=
Lock failed
\u
FF1Athe put in device is not closed.
client.startFail
=
Startup failure: emergency stop is not opened
client.startFailAir
=
Startup failure: no air pressure signal
client.InoutAlarm
=
The in out axis is alarm!
client.OpenAxisFail
=
Failed to open axis {0}
client.AutoReset
=
Resetting
client.AxisAlarm
=
Motion axis {0} alarm
client.OutStoreError
=
Providing format error{0}
client.WaitSingleTimeOut
=
Wait signal {0}={1} timeout
client.AxisHomeMoveAlarm
=
The movement {0} axis {1} receives the origin completion signal, the current position [{2}], the error is too large
client.AxisMoveAlarm
=
Movement {0} axis {1} target position [{2}] current position {3} error is too large
client.MoveTimeOut
=
[{0}]Timeout{1}[{2}]
client.XiLiaoError
=
Sucker suction failure
client.InStoreError
=
put in format error[barcode:{0}] pos:[{1}]
client.InStoreNoPosition
=
no pos found
\u
FF1Abarcode:[{0}] pos:[{1}]
client.WaitInstoreTimeOut
=
[{0}] timeout [wait to store][{1} seconds]
client.HasWare
=
there is a reel on the fork
client.NoCodeMsg
=
No barcode is found, please check the reel
client.InStoreNoCode
=
No barcode is found, send the reel out
client.MoveTimeOut_01
=
[{0}][motion]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_02
=
[{0}][waiting IO signal]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_03
=
[{0}][waiting time]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_04
=
[{0}][target pos]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_05
=
[{0}][press axis motion]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_06
=
[{0}][origin signal]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_07
=
[{0}][get height]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_08
=
[{0}][waiting axis limit signal]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_09
=
[{0}][waiting axis positive limit signal]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_10
=
[{0}][loading axis stopping]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_11
=
[{0}][scanning]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_12
=
[{0}][putting/taking reel]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_13
=
[{0}][send reel]timeout
\u
FF0C{1} seconds waited
settings.api.checkBarcode
=
Check Barcode
settings.api.checkBarcode
=
Check Barcode
settings.api.orderFileDir
=
Order File Folder
settings.api.orderFileDir
=
Order File Folder
settings.remind.title
=
Remind Setting
settings.remind.deadday
=
days dead metiral remind
shelf.btn.closeAll
=
Close All Lights
shelf.btn.closeAll
=
Close All Lights
shelf.btn.posCheck
=
Database Check
shelf.btn.posCheck
=
Database Check
...
@@ -382,6 +348,13 @@ shelf.msg.noTask=Failed\: the material is in [{0}], but no task for it.
...
@@ -382,6 +348,13 @@ shelf.msg.noTask=Failed\: the material is in [{0}], but no task for it.
shelf.msg.outError
=
No material is found.
shelf.msg.outError
=
No material is found.
shelf.msg.inOk
=
Please put the material in the location [{0}]
shelf.msg.inOk
=
Please put the material in the location [{0}]
shelf.msg.inError
=
No suitable location for [{0}] is found.
shelf.msg.inError
=
No suitable location for [{0}] is found.
shelf.msg.hasReel
=
There position [{0}] already has material
shelf.msg.tipScanReel
=
Please scan the material to put in [{0}]
shelf.msg.fastop
=
Barcode operate is too fast
shelf.msg.scanPos
=
Please scan the position code
shelf.nextPos.hasTask
=
Next Position [{0}] already has task, please scan a new position code.
shelf.nextPos.hasReel
=
Next Position [{0}] already has material, please scan a new position code.
shelf.nextPos.wrongSize
=
Next Position [{0}] size [{1}] is different from material size [{2}] please scan a new position code.
order.out.set
=
set of materials
order.out.set
=
set of materials
order.out.surplus
=
surplus material
order.out.surplus
=
surplus material
...
@@ -432,3 +405,4 @@ error.barcode.pnNotExist=x Component {0} does not exist
...
@@ -432,3 +405,4 @@ error.barcode.pnNotExist=x Component {0} does not exist
error.barcode.errorSize
=
x The reel has no size.
error.barcode.errorSize
=
x The reel has no size.
error.storage.noPosFind
=
No availble position is found.
error.storage.noPosFind
=
No availble position is found.
msg.line.putIn
=
Put [{0}] into [{1}]
msg.line.putIn
=
Put [{0}] into [{1}]
delete.confirm
=
Are you sure to delete?
\ No newline at end of file
\ No newline at end of file
myproject/src/main/resources/StorageResources_en.properties
查看文件 @
c833ac2
...
@@ -320,42 +320,6 @@ batch.btn.singleIn=Single In
...
@@ -320,42 +320,6 @@ batch.btn.singleIn=Single In
batch.btn.closeDoor
=
Close Door
batch.btn.closeDoor
=
Close Door
client.inSuddenStop
=
Emergency Stop
client.NoAIr
=
No air signal
client.PreConnectFail
=
Startup failure
\u
FF1Apress Axis connect failed.
client.CloseError
=
Lock failed
\u
FF1Athe put in device is not closed.
client.startFail
=
Startup failure: emergency stop is not opened
client.startFailAir
=
Startup failure: no air pressure signal
client.InoutAlarm
=
The in out axis is alarm!
client.OpenAxisFail
=
Failed to open axis {0}
client.AutoReset
=
Resetting
client.AxisAlarm
=
Motion axis {0} alarm
client.OutStoreError
=
Providing format error{0}
client.WaitSingleTimeOut
=
Wait signal {0}={1} timeout
client.AxisHomeMoveAlarm
=
The movement {0} axis {1} receives the origin completion signal, the current position [{2}], the error is too large
client.AxisMoveAlarm
=
Movement {0} axis {1} target position [{2}] current position {3} error is too large
client.MoveTimeOut
=
[{0}]Timeout{1}[{2}]
client.XiLiaoError
=
Sucker suction failure
client.InStoreError
=
put in format error[barcode:{0}] pos:[{1}]
client.InStoreNoPosition
=
no pos found
\u
FF1Abarcode:[{0}] pos:[{1}]
client.WaitInstoreTimeOut
=
[{0}] timeout [wait to store][{1} seconds]
client.HasWare
=
there is a reel on the fork
client.NoCodeMsg
=
No barcode is found, please check the reel
client.InStoreNoCode
=
No barcode is found, send the reel out
client.MoveTimeOut_01
=
[{0}][motion]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_02
=
[{0}][waiting IO signal]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_03
=
[{0}][waiting time]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_04
=
[{0}][target pos]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_05
=
[{0}][press axis motion]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_06
=
[{0}][origin signal]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_07
=
[{0}][get height]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_08
=
[{0}][waiting axis limit signal]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_09
=
[{0}][waiting axis positive limit signal]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_10
=
[{0}][loading axis stopping]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_11
=
[{0}][scanning]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_12
=
[{0}][putting/taking reel]timeout
\u
FF0C{1} seconds waited
client.MoveTimeOut_13
=
[{0}][send reel]timeout
\u
FF0C{1} seconds waited
settings.api.checkBarcode
=
Check Barcode
settings.api.checkBarcode
=
Check Barcode
settings.api.orderFileDir
=
Order File Folder
settings.api.orderFileDir
=
Order File Folder
user.cabinetAssign
=
Cabinet Assign
user.cabinetAssign
=
Cabinet Assign
...
@@ -428,3 +392,12 @@ error.barcode.errorSize=x The reel has no size.
...
@@ -428,3 +392,12 @@ error.barcode.errorSize=x The reel has no size.
error.storage.noStorage
=
There is no storage can use.
error.storage.noStorage
=
There is no storage can use.
error.storage.noPosFind
=
No availble position is found.
error.storage.noPosFind
=
No availble position is found.
msg.line.putIn
=
Put [{0}] into [{1}]
msg.line.putIn
=
Put [{0}] into [{1}]
shelf.msg.hasReel
=
There position [{0}] already has material
shelf.msg.tipScanReel
=
Please scan the material to put in [{0}]
shelf.msg.fastop
=
Barcode operate is too fast
shelf.msg.scanPos
=
Please scan the position code
shelf.nextPos.hasTask
=
Next Position [{0}] already has task, please scan a new position code.
shelf.nextPos.wrongSize
=
Next Position [{0}] size [{1}] is different from material size [{2}] please scan a new position code.
shelf.nextPos.hasReel
=
Next Position [{0}] already has material, please scan a new position code.
settings.remind.title
=
Remind Setting
settings.remind.deadday
=
days dead metiral remind
myproject/src/main/resources/StorageResources_jp.properties
0 → 100644
查看文件 @
c833ac2
此文件的差异被折叠,
点击展开。
myproject/src/main/resources/StorageResources_zh_CN.properties
查看文件 @
c833ac2
...
@@ -317,42 +317,6 @@ batch.btn.batchOut=\u6279\u91CF\u51FA\u5E93
...
@@ -317,42 +317,6 @@ batch.btn.batchOut=\u6279\u91CF\u51FA\u5E93
batch.btn.singleIn
=
\u5355\u
76D8
\u5165\u
5E93
batch.btn.singleIn
=
\u5355\u
76D8
\u5165\u
5E93
batch.btn.closeDoor
=
\u5173\u
95ED
\u
4ED3
\u
95E8
batch.btn.closeDoor
=
\u5173\u
95ED
\u
4ED3
\u
95E8
client.inSuddenStop
=
\u6536\u5230\u6025\u
505C
\u
4FE1
\u
53F7,
\u
62A5
\u
8B66
\u6025\u
505C
client.NoAIr
=
\u
672A
\u
68C0
\u
6D4B
\u5230\u
6C14
\u
538B
\u
4FE1
\u
53F7
client.PreConnectFail
=
\u
542F
\u
52A8
\u5931\u
8D25
\u
FF1A
\u
538B
\u
7D27
\u
8F74
\u
8FDE
\u
63A5
\u5931\u
8D25
client.CloseError
=
\u9501\u
95E8
\u5931\u
8D25
\u
FF1A
\u
8BF7
\u5148\u5173\u
95ED
\u
4E0A
\u6599\u
673A
\u6784
client.startFail
=
\u
542F
\u
52A8
\u5931\u
8D25
\u
FF1A
\u6025\u
505C
\u
672A
\u
5F00
client.startFailAir
=
\u
542F
\u
52A8
\u5931\u
8D25:
\u
6CA1
\u6709\u
6C14
\u
538B
\u
4FE1
\u
53F7
client.InoutAlarm
=
\u
8FDB
\u
51FA
\u
8F74
\u
62A5
\u
8B66
\u
FF01
\u
590D
\u
4F4D
\u5931\u
8D25
\u
FF0C
\u
8BF7
\u
68C0
\u
67E5!
client.OpenAxisFail
=
\u6253\u
5F00
\u
8F74{0}
\u5931\u
8D25
client.AutoReset
=
\u6536\u5230\u
590D
\u
4F4D
\u
4FE1
\u
53F7
\u
FF0C
\u
81EA
\u
52A8
\u
590D
\u
4F4D
client.AxisAlarm
=
\u
8FD0
\u
52A8
\u
8F74{0}
\u
62A5
\u
8B66
client.OutStoreError
=
\u
51FA
\u
5E93
\u
683C
\u
5F0F
\u9519\u
8BEF{0}
client.WaitSingleTimeOut
=
\u
7B49
\u
5F85
\u
4FE1
\u
53F7{0}={1}
\u
8D85
\u
65F6
client.AxisHomeMoveAlarm
=
\u
8FD0
\u
52A8{0}
\u
8F74{1}
\u6536\u5230\u
539F
\u
70B9
\u
5B8C
\u6210\u
4FE1
\u
53F7
\u
FF0C
\u
5F53
\u
524D
\u
4F4D
\u
7F6E[{2}]
\u
FF0C
\u
8BEF
\u
5DEE
\u
8FC7
\u5927\u
FF0C
\u9700\u8981\u
62A5
\u
8B66
client.AxisMoveAlarm
=
\u
8FD0
\u
52A8{0}
\u
8F74{1}
\u
76EE
\u6807\u
4F4D
\u
7F6E[{2}]
\u
5F53
\u
524D
\u
4F4D
\u
7F6E{3}
\u
8BEF
\u
5DEE
\u
8FC7
\u5927\u
FF0C
\u9700\u8981\u
62A5
\u
8B66
client.MoveTimeOut
=
[{0}]
\u
8D85
\u
65F6{1}[{2}]
\u
79D2
client.XiLiaoError
=
\u5438\u
76D8
\u5438\u6599\u5931\u
8D25
client.InStoreError
=
\u5165\u
5E93
\u
5E93
\u
4F4D
\u
683C
\u
5F0F
\u9519\u
8BEF
\u
FF1A
\u6761\u7801
[{0}]
\u
5E93
\u
4F4D
\u
53F7[{1}]
client.InStoreNoPosition
=
\u5165\u
5E93
\u
672A
\u
627E
\u5230\u
5E93
\u
4F4D
\u
FF1A
\u6761\u7801
[{0}]
\u
5E93
\u
4F4D
\u
53F7[{1}]
client.WaitInstoreTimeOut[{0}]\u8D85\u65F6[\u7B49\u5F85\u53EF\u4EE5\u5165\u5E93][{1}\u79D2]
client.HasWare
=
\u
53C9
\u
5B50
\u6599\u
76D8
\u
68C0
\u
6D4B
\u6709\u6599\u
FF0C
\u
8BF7
\u
68C0
\u
67E5
client.NoCodeMsg
=
\u
672A
\u
626B
\u5230\u
4E8C
\u
7EF4
\u7801\u
FF0C
\u
8BF7
\u
91CD
\u
65B0
\u
653E
\u5165\u6599\u
76D8
client.InStoreNoCode
=
\u
672A
\u
626B
\u5230\u
4E8C
\u
7EF4
\u7801\u
FF0C
\u9700\u8981\u
5C06
\u6599\u
76D8
\u9001\u
51FA
client.MoveTimeOut_01
=
[{0}][
\u
4F3A
\u
670D
\u
8FD0
\u
52A8]
\u
8D85
\u
65F6
\u
FF0C
\u
5DF2
\u
7B49
\u
5F85{1}
\u
79D2
client.MoveTimeOut_02
=
[{0}][IO
\u
4FE1
\u
53F7
\u
7B49
\u
5F85]
\u
8D85
\u
65F6
\u
FF0C
\u
5DF2
\u
7B49
\u
5F85{1}
\u
79D2
client.MoveTimeOut_03
=
[{0}][
\u
65F6
\u
95F4
\u
7B49
\u
5F85]
\u
8D85
\u
65F6
\u
FF0C
\u
5DF2
\u
7B49
\u
5F85{1}
\u
79D2
client.MoveTimeOut_04
=
[{0}][
\u7535\u
94A2
\u
76EE
\u6807\u
4F4D
\u
7F6E]
\u
8D85
\u
65F6
\u
FF0C
\u
5DF2
\u
7B49
\u
5F85{1}
\u
79D2
client.MoveTimeOut_05
=
[{0}][
\u
538B
\u
7D27
\u
8F74
\u
8FD0
\u
52A8]
\u
8D85
\u
65F6
\u
FF0C
\u
5DF2
\u
7B49
\u
5F85{1}
\u
79D2
client.MoveTimeOut_06
=
[{0}][
\u
8F74
\u
539F
\u
70B9
\u
4FE1
\u
53F7
\u
4EAE]
\u
8D85
\u
65F6
\u
FF0C
\u
5DF2
\u
7B49
\u
5F85{1}
\u
79D2
client.MoveTimeOut_07
=
[{0}][
\u
83B7
\u
53D6
\u6599\u
76D8
\u
9AD8
\u
5EA6]
\u
8D85
\u
65F6
\u
FF0C
\u
5DF2
\u
7B49
\u
5F85{1}
\u
79D2
client.MoveTimeOut_08
=
[{0}][
\u
7B49
\u
5F85
\u
4F3A
\u
670D
\u
8D1F
\u9650\u
4F4D]
\u
8D85
\u
65F6
\u
FF0C
\u
5DF2
\u
7B49
\u
5F85{1}
\u
79D2
client.MoveTimeOut_09
=
[{0}][
\u
7B49
\u
5F85
\u
4F3A
\u
670D
\u
6B63
\u9650\u
4F4D]
\u
8D85
\u
65F6
\u
FF0C
\u
5DF2
\u
7B49
\u
5F85{1}
\u
79D2
client.MoveTimeOut_10
=
[{0}][
\u
4E0A
\u6599\u
8F74
\u
8FD0
\u
52A8
\u
505C
\u
6B62]
\u
8D85
\u
65F6
\u
FF0C
\u
5DF2
\u
7B49
\u
5F85{1}
\u
79D2
client.MoveTimeOut_11
=
[{0}][
\u
626B
\u7801\u
7ED3
\u
675F]
\u
8D85
\u
65F6
\u
FF0C
\u
5DF2
\u
7B49
\u
5F85{1}
\u
79D2
client.MoveTimeOut_12
=
[{0}][
\u
64CD
\u
4F5C
\u
4EBA
\u5458\u
653E
\u5165
/
\u
62FF
\u
8D70
\u6599\u
76D8]
\u
8D85
\u
65F6
\u
FF0C
\u
5DF2
\u
7B49
\u
5F85{1}
\u
79D2
client.MoveTimeOut_13
=
[{0}][
\u
7B49
\u
5F85
\u9001\u6599\u
7ED3
\u
675F]
\u
8D85
\u
65F6
\u
FF0C
\u
5DF2
\u
7B49
\u
5F85{1}
\u
79D2
settings.api.checkBarcode
=
\u6761\u7801\u
68C0
\u
67E5 API
settings.api.checkBarcode
=
\u6761\u7801\u
68C0
\u
67E5 API
settings.api.orderFileDir
=
\ \u
5DE5
\u5355\u6587\u
4EF6
\u5939
settings.api.orderFileDir
=
\ \u
5DE5
\u5355\u6587\u
4EF6
\u5939
user.cabinetAssign
=
\u6599\u
67DC
\u5206\u
914D
user.cabinetAssign
=
\u6599\u
67DC
\u5206\u
914D
...
@@ -424,3 +388,12 @@ error.barcode.pnNotExist=x\u6863\u6848 {0} \u4E0D\u5B58\u5728
...
@@ -424,3 +388,12 @@ error.barcode.pnNotExist=x\u6863\u6848 {0} \u4E0D\u5B58\u5728
error.barcode.errorSize
=
x
\u6599\u
76D8
\u
672A
\u
8BBE
\u
7F6E
\u
5C3A
\u
5BF8
error.barcode.errorSize
=
x
\u6599\u
76D8
\u
672A
\u
8BBE
\u
7F6E
\u
5C3A
\u
5BF8
error.storage.noStorage
=
\u
65E0
\u
53EF
\u7528\u7684\u6599\u
4ED3
error.storage.noStorage
=
\u
65E0
\u
53EF
\u7528\u7684\u6599\u
4ED3
msg.line.putIn
=
[{0}]
\u
51C6
\u5907\u5165\u
5E93
\u5230
[{1}]
msg.line.putIn
=
[{0}]
\u
51C6
\u5907\u5165\u
5E93
\u5230
[{1}]
shelf.msg.hasReel
=
\u
5E93
\u
4F4D[{0}]
\u
4E2D
\u
5DF2
\u6709\u7269\u6599
shelf.msg.tipScanReel
=
\u
5E93
\u
4F4D[{0}]
\u
64CD
\u
4F5C
\u6210\u
529F,
\u
8BF7
\u
626B
\u
63CF
\u8981\u
653E
\u5165\u7684\u7269\u6599
shelf.msg.fastop
=
\u6761\u7801\u
64CD
\u
4F5C
\u9891\u
7E41,
\u
8BF7
\u
7A0D
\u
540E
\u
518D
\u
8BD5
shelf.msg.scanPos
=
\u
8BF7
\u5148\u
626B
\u
63CF
\u
5E93
\u
4F4D
\u7801
shelf.nextPos.hasTask
=
\u
4E0B
\u
4E00
\u
5E93
\u
4F4D[{0}]
\u
5DF2
\u6709\u
4EFB
\u
52A1,
\u
8BF7
\u
91CD
\u
65B0
\u
626B
\u
63CF
\u
5E93
\u
4F4D
\u7801
shelf.nextPos.wrongSize
=
\u
4E0B
\u
4E00
\u
5E93
\u
4F4D[{0}]
\u
5C3A
\u
5BF8[{1}]
\u
4E0E
\u6599\u
76D8
\u
5C3A
\u
5BF8[{2}]
\u
4E0D
\u
7B26,
\u
8BF7
\u
91CD
\u
65B0
\u
626B
\u
63CF
\u
5E93
\u
4F4D
\u7801
shelf.nextPos.hasReel
=
\u
4E0B
\u
4E00
\u
5E93
\u
4F4D[{0}]
\u
5DF2
\u6709\u7269\u6599
,
\u
8BF7
\u
91CD
\u
65B0
\u
626B
\u
63CF
\u
5E93
\u
4F4D
\u7801
settings.remind.title
=
\u
63D0
\u9192\u
8BBE
\u
7F6E
settings.remind.deadday
=
\u5929\u
524D
\u5446\u
6EDE
\u7269\u6599\u
63D0
\u9192
\ No newline at end of file
\ No newline at end of file
myproject/src/main/webapp/WEB-INF/pages/storage/allBoxView.jsp
查看文件 @
c833ac2
...
@@ -654,7 +654,7 @@
...
@@ -654,7 +654,7 @@
var options = {};
var options = {};
//入库
//入库
var showStr = partNumber + "
["+barcode+"]${in_label}"+
posStr;
var showStr = partNumber + "
["+barcode+"] ${in_label}" +
posStr;
var status = data[item].status.toLowerCase();
var status = data[item].status.toLowerCase();
...
@@ -667,7 +667,7 @@
...
@@ -667,7 +667,7 @@
options['icon']='fa fa-database';
options['icon']='fa fa-database';
if(data[item].type == 2){//出库
if(data[item].type == 2){//出库
options['icon']='fa fa-sign-out';
options['icon']='fa fa-sign-out';
showStr = partNumber + "["+barcode+"]${out_label}"
+
posStr;
showStr = partNumber + "["+barcode+"]${out_label}"
+
posStr;
}else{
}else{
options['onClick']= modifyClick;
options['onClick']= modifyClick;
}
}
...
@@ -701,7 +701,7 @@
...
@@ -701,7 +701,7 @@
if(data[item].sourceName){
if(data[item].sourceName){
sourceStr = "<br/>${source_label} " + data[item].sourceStr;
sourceStr = "<br/>${source_label} " + data[item].sourceStr;
}
}
options['msg']= showStr + statusMsg +
data[item].locInfo +
sourceStr;
options['msg']= showStr + statusMsg + sourceStr;
var task = cidTasks[taskId];
var task = cidTasks[taskId];
if(!task){
if(!task){
...
...
myproject/src/main/webapp/WEB-INF/pages/system/settings.jsp
查看文件 @
c833ac2
...
@@ -101,14 +101,14 @@
...
@@ -101,14 +101,14 @@
<div class="portlet-title">
<div class="portlet-title">
<div class="caption">
<div class="caption">
<i class="icon-bell font-green-haze"></i>
<i class="icon-bell font-green-haze"></i>
<span class="caption-subject bold uppercase font-green-haze"><fmt:message key="
提醒设置
"/></span>
<span class="caption-subject bold uppercase font-green-haze"><fmt:message key="
settings.remind.title
"/></span>
</div>
</div>
</div>
</div>
<div class="portlet-body" style="padding-left: 30px;">
<div class="portlet-body" style="padding-left: 30px;">
<div class="form-group form-inline">
<div class="form-group form-inline">
<div class="input-group margin-top-10">
<div class="input-group margin-top-10">
<form:input path="inactionDay" cssClass="form-control input-small"/>
<form:input path="inactionDay" cssClass="form-control input-small"/>
<span class="input-group-addon"><fmt:message key="
天前呆滞物料提醒
"/></span>
<span class="input-group-addon"><fmt:message key="
settings.remind.deadday
"/></span>
</div>
</div>
</div>
</div>
<%--<div class="form-group form-inline">--%>
<%--<div class="form-group form-inline">--%>
...
...
myproject/src/main/webapp/WEB-INF/pages/updateHistory.jsp
查看文件 @
c833ac2
...
@@ -12,67 +12,69 @@
...
@@ -12,67 +12,69 @@
<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-green">
<%--<li class="timeline-green">--%>
<div class="timeline-time">
<%--<div class="timeline-time">--%>
<span class="date">
<%--<span class="date">--%>
2017 </span>
<%--2020 </span>--%>
<span class="time">
<%--<span class="time">--%>
05-27 </span>
<%--06-24 </span>--%>
</div>
<%--</div>--%>
<div class="timeline-icon">
<%--<div class="timeline-icon">--%>
<i class="fa fa-clock-o"></i>
<%--<i class="fa fa-clock-o"></i>--%>
</div>
<%--</div>--%>
<div class="timeline-body">
<%--<div class="timeline-body">--%>
<div class="timeline-content">
<%--<div class="timeline-content">--%>
<ul>
<%--<ul>--%>
<li>二维码纸张大小系统设置</li>
<%--<li>版本 V20200624</li>--%>
<li>出库贵重物料(半自动仓中的物料和添加料件档案时勾选了贵重物料选项的料)时需输入授权码.用户是否有贵重物料出库权限需要在角色中配置,同一站位列表或批次只需输入一次授权</li>
<%--<li>尾料先出按数量计算尾料</li>--%>
</ul>
<%--<li>扫码料架会自动查找一下个库位,如果下一个库位已有物料或者尺寸不合适时,需要重新扫库位码</li>--%>
</div>
<%--<li>SISO料仓门口料盘信号提供给机器人</li>--%>
</div>
<%--</ul>--%>
</li>
<%--</div>--%>
<li class="timeline-blue">
<%--</div>--%>
<div class="timeline-time">
<%--</li>--%>
<span class="date">
<%--<li class="timeline-blue">--%>
2017 </span>
<%--<div class="timeline-time">--%>
<span class="time">
<%--<span class="date">--%>
05-11 </span>
<%--2017 </span>--%>
</div>
<%--<span class="time">--%>
<div class="timeline-icon">
<%--05-11 </span>--%>
<i class="fa fa-clock-o"></i>
<%--</div>--%>
</div>
<%--<div class="timeline-icon">--%>
<div class="timeline-body">
<%--<i class="fa fa-clock-o"></i>--%>
<div class="timeline-content">
<%--</div>--%>
<ul>
<%--<div class="timeline-body">--%>
<li>报警信息记录统计</li>
<%--<div class="timeline-content">--%>
<li>每日吞吐量统计图表</li>
<%--<ul>--%>
<li>增加出库方式的系统设置:效率优先/先进先出/尾料优先</li>
<%--<li>报警信息记录统计</li>--%>
</ul>
<%--<li>每日吞吐量统计图表</li>--%>
</div>
<%--<li>增加出库方式的系统设置:效率优先/先进先出/尾料优先</li>--%>
</div>
<%--</ul>--%>
</li>
<%--</div>--%>
<li class="timeline-yellow timeline-noline">
<%--</div>--%>
<div class="timeline-time">
<%--</li>--%>
<span class="date">
<%--<li class="timeline-yellow timeline-noline">--%>
2017 </span>
<%--<div class="timeline-time">--%>
<span class="time">
<%--<span class="date">--%>
04-20 </span>
<%--2017 </span>--%>
</div>
<%--<span class="time">--%>
<div class="timeline-icon">
<%--04-20 </span>--%>
<i class="fa fa-clock-o"></i>
<%--</div>--%>
</div>
<%--<div class="timeline-icon">--%>
<div class="timeline-body">
<%--<i class="fa fa-clock-o"></i>--%>
<div class="timeline-content">
<%--</div>--%>
<ul>
<%--<div class="timeline-body">--%>
<li>指定批次页面描述信息修改</li>
<%--<div class="timeline-content">--%>
<li>扫码显示站位列表时添加线体信息</li>
<%--<ul>--%>
<li>库存预警详情打印</li>
<%--<li>指定批次页面描述信息修改</li>--%>
<li>自动生成条码信息及条码打印优化</li>
<%--<li>扫码显示站位列表时添加线体信息</li>--%>
<li>云仓库监控页面扫码获取站位列表字体大小调整</li>
<%--<li>库存预警详情打印</li>--%>
</ul>
<%--<li>自动生成条码信息及条码打印优化</li>--%>
</div>
<%--<li>云仓库监控页面扫码获取站位列表字体大小调整</li>--%>
</div>
<%--</ul>--%>
</li>
<%--</div>--%>
<%--</div>--%>
<%--</li>--%>
<%--<li class="timeline-green">
<%--<li class="timeline-green">
<div class="timeline-time">
<div class="timeline-time">
<span class="date">
<span class="date">
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论