Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 308cbb27
由
LN
编写于
2023-07-06 11:28:37 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
获取料架剩余库位修改。
1 个父辈
fbe3b960
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
81 行增加
和
24 行删除
src/main/java/com/neotel/smfcore/core/device/util/DataCache.java
src/main/java/com/neotel/smfcore/core/shelf/bean/ShelfInfo.java
src/main/java/com/neotel/smfcore/core/shelf/rest/TaskShelfController.java
src/main/java/com/neotel/smfcore/core/shelf/util/TaskShelfUtil.java
src/main/resources/messages.properties
src/main/java/com/neotel/smfcore/core/device/util/DataCache.java
查看文件 @
308cbb2
...
...
@@ -164,11 +164,13 @@ public class DataCache {
}
return
lanList
;
}
public
void
updateCache
(
String
cacheKey
,
Object
value
)
{
updateCache
(
cacheKey
,
value
,
true
);
}
/**
* 更新缓存信息
*/
public
void
updateCache
(
String
cacheKey
,
Object
value
)
{
public
void
updateCache
(
String
cacheKey
,
Object
value
,
boolean
needLog
)
{
cacheItemDao
.
updateCacheItem
(
cacheKey
,
value
);
cacheMap
.
put
(
cacheKey
,
value
);
if
(
cacheKey
.
equals
(
Constants
.
CACHE_CodeRule
))
{
...
...
@@ -178,8 +180,9 @@ public class DataCache {
if
(
cacheKey
.
equals
(
Constants
.
CACHE_ExpiresDay
))
{
codeResolve
.
updateExpiresDay
((
Integer
)
value
);
}
log
.
info
(
"updateCache ["
+
cacheKey
+
"]=["
+
value
+
"]"
);
if
(
needLog
)
{
log
.
info
(
"updateCache ["
+
cacheKey
+
"]=["
+
value
+
"]"
);
}
}
/**
...
...
src/main/java/com/neotel/smfcore/core/shelf/bean/ShelfInfo.java
查看文件 @
308cbb2
...
...
@@ -8,6 +8,8 @@ import lombok.Data;
import
lombok.NoArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
@Data
...
...
@@ -268,4 +270,31 @@ public class ShelfInfo {
}
return
false
;
}
/**
* 返回剩余的空库位,包含锁定和未锁定的
* @return
*/
public
List
<
Integer
>
getEmptySlot
()
{
List
<
Integer
>
result
=
new
ArrayList
<>();
int
smallEmpty
=
0
;
int
bigEmpty
=
0
;
for
(
int
i
=
1
;
i
<=
maxLocCount
;
i
++)
{
ShelfLoc
shelfLoc
=
locMap
.
get
(
i
);
if
(
shelfLoc
!=
null
)
{
if
(!
shelfLoc
.
isEmpty
())
{
continue
;
}
}
if
(
i
<=
MAX_F_SMALL_NUM
)
{
smallEmpty
++;
}
else
{
bigEmpty
++;
}
}
result
.
add
(
smallEmpty
);
result
.
add
(
bigEmpty
);
return
result
;
}
}
src/main/java/com/neotel/smfcore/core/shelf/rest/TaskShelfController.java
查看文件 @
308cbb2
此文件的差异被折叠,
点击展开。
src/main/java/com/neotel/smfcore/core/shelf/util/TaskShelfUtil.java
查看文件 @
308cbb2
...
...
@@ -30,13 +30,18 @@ public class TaskShelfUtil {
/**料架所在的产线位置
*key=rfid,value=位置
*/
public
static
Map
<
String
,
String
>
shelfLocMap
=
null
;
public
static
Map
<
String
,
String
>
lineShelfLocMap
=
null
;
public
static
Map
<
String
,
ShelfInfo
>
lineShelfMap
=
null
;
private
static
String
HSERIAL_SHELF_MAP_KEY
=
"HSERIAL_SHELF_MAP_KEY"
;
private
static
String
SHELF_LOC_MAP_KEY
=
"SHELF_LOC_MAP_KEY"
;
private
static
String
LINE_SHELF_LOC_MAP_KEY
=
"LINE_SHELF_LOC_MAP_KEY"
;
private
static
String
LINE_SHELF_MAP_KEY
=
"LINE_SHELF_MAP_KEY"
;
public
static
String
DEFAULT_ORDERNO
=
"1"
;
p
rivate
static
String
DEFAULT_ORDERNO
=
"1
"
;
p
ublic
static
String
ShelfSpilt
=
",
"
;
public
static
void
initData
(){
initShelfMap
();
...
...
@@ -45,16 +50,29 @@ public class TaskShelfUtil {
private
static
void
initShelfLocMap
()
{
if
(
s
helfLocMap
==
null
)
{
shelfLocMap
=
dataCache
.
getCache
(
SHELF_LOC_MAP_KEY
);
if
(
s
helfLocMap
==
null
){
s
helfLocMap
=
new
ConcurrentHashMap
<>();
if
(
lineS
helfLocMap
==
null
)
{
lineShelfLocMap
=
dataCache
.
getCache
(
LINE_
SHELF_LOC_MAP_KEY
);
if
(
lineS
helfLocMap
==
null
){
lineS
helfLocMap
=
new
ConcurrentHashMap
<>();
}
}
}
private
static
void
saveShelfLocMap
(
Map
<
String
,
String
>
map
)
{
dataCache
.
updateCache
(
SHELF_LOC_MAP_KEY
,
map
);
if
(
lineShelfMap
==
null
){
lineShelfMap
=
dataCache
.
getCache
(
LINE_SHELF_MAP_KEY
);
if
(
lineShelfMap
==
null
){
lineShelfMap
=
new
ConcurrentHashMap
<>();
}
}
}
private
static
void
saveLineShelfMap
(
Map
<
String
,
ShelfInfo
>
map
)
{
dataCache
.
updateCache
(
LINE_SHELF_MAP_KEY
,
map
);
}
private
static
void
AddShelfToLineMap
(
ShelfInfo
shelfInfo
){
lineShelfMap
.
put
(
shelfInfo
.
getRealRfid
(),
shelfInfo
);
saveLineShelfMap
(
lineShelfMap
);
}
private
static
void
saveLineShelfLocMap
(
Map
<
String
,
String
>
map
)
{
dataCache
.
updateCache
(
LINE_SHELF_LOC_MAP_KEY
,
map
);
}
...
...
@@ -66,23 +84,27 @@ public class TaskShelfUtil {
}
}
}
private
static
void
saveShelfMap
(
Map
<
String
,
Map
<
String
,
ShelfInfo
>>
map
)
{
dataCache
.
updateCache
(
HSERIAL_SHELF_MAP_KEY
,
map
);
private
static
void
saveShelfMap
(
Map
<
String
,
Map
<
String
,
ShelfInfo
>>
map
)
{
dataCache
.
updateCache
(
HSERIAL_SHELF_MAP_KEY
,
map
,
false
);
}
private
static
void
saveShelfMap
(
Map
<
String
,
Map
<
String
,
ShelfInfo
>>
map
,
boolean
needLog
)
{
dataCache
.
updateCache
(
HSERIAL_SHELF_MAP_KEY
,
map
,
needLog
);
}
/**
* 清理使用过的料架
*/
public
static
void
clearShelf
(
String
orderNo
)
{
public
static
boolean
clearShelf
(
String
orderNo
)
{
if
(
orderNo
!=
null
)
{
Map
<
String
,
ShelfInfo
>
shelfMap
=
taskShelfMap
.
get
(
orderNo
);
if
(
shelfMap
!=
null
)
{
log
.
info
(
"清理["
+
orderNo
+
"]使用过的料架"
);
log
.
info
(
"清理["
+
orderNo
+
"]使用过的料架
成功
"
);
taskShelfMap
.
remove
(
orderNo
);
saveShelfMap
(
taskShelfMap
);
saveShelfMap
(
taskShelfMap
,
true
);
return
true
;
}
}
return
false
;
}
public
static
boolean
clearShelf
(
String
orderNo
,
String
rfid
)
{
...
...
@@ -96,8 +118,9 @@ public class TaskShelfUtil {
String
tempRfid
=
shelfInfo
.
tempRfid
();
shelfMap
.
remove
(
tempRfid
);
taskShelfMap
.
put
(
orderNo
,
shelfMap
);
log
.
info
(
"清理["
+
orderNo
+
"]使用的过料架["
+
rfid
+
"]成功"
);
clearResult
=
true
;
saveShelfMap
(
taskShelfMap
);
saveShelfMap
(
taskShelfMap
,
true
);
}
}
}
...
...
@@ -260,7 +283,7 @@ public class TaskShelfUtil {
addLoc
(
task
);
}
ShelfInfo
shelfInfo
=
null
;
List
<
String
>
rfidList
=
Lists
.
newArrayList
(
rfidStr
.
split
(
";"
));
List
<
String
>
rfidList
=
Lists
.
newArrayList
(
rfidStr
.
split
(
ShelfSpilt
));
ShelfLoc
lockLoc
=
null
;
if
(
orderNo
!=
null
)
{
Map
<
String
,
ShelfInfo
>
shelfMap
=
taskShelfMap
.
get
(
orderNo
);
...
...
@@ -457,8 +480,9 @@ public class TaskShelfUtil {
public
static
void
updateShelfLoc
(
String
rfid
,
String
loc
){
shelfLocMap
.
put
(
rfid
,
loc
);
saveShelfLocMap
(
shelfLocMap
);
lineShelfLocMap
.
put
(
rfid
,
loc
);
saveLineShelfLocMap
(
lineShelfLocMap
);
}
...
...
src/main/resources/messages.properties
查看文件 @
308cbb2
...
...
@@ -350,6 +350,7 @@ smfcore.selfAudit.noPos=\u76D8\u70B9{0}\u672A\u627E\u5230\u5E93\u4F4D\u53F7
smfcore.mesApi.inCheck.error
=
MES
\u
9A8C
\u
8BC1
\u
51FA
\u9519\u
FF1A{0}
smfcore.mesApi.loginCheck.fail
=
MES
\u
767B
\u9646\u
9A8C
\u
8BC1
\u5931\u
8D25
smfcore.mesApi.loginCheck.error
=
MES
\u
767B
\u9646\u
9A8C
\u
8BC1
\u9519\u
8BEF
\u
FF1A{0}
smfcore.taskShelf.notExist
=
\u
672A
\u
627E
\u5230\u
5DE5
\u5355
[{0}]
\u7684
rfid[{1}]
#smfclient.nlp.onlyOneTray=\u4E0D\u53EF\u540C\u65F6\u653E\u5165\u591A\u76D8\u7269\u6599:{0}
#smfclient.nlp.cannotFindPos={0}\u672A\u627E\u5230\u5E93\u4F4D:{1}
#smfclient.nlp.inputOk={0}\u5165\u5E93\u5230{1}\u6210\u529F
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论