Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit d5b8a08d
由
zshaohui
编写于
2023-03-27 14:51:04 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1.查询库位是否有料或物料是否在库位中
2.获取库位时,已经锁定了库位,返回ng 3.修改锁定库位工具类
1 个父辈
ec308d19
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
62 行增加
和
5 行删除
src/main/java/com/neotel/smfcore/common/utils/ReelLockPosUtil.java
src/main/java/com/neotel/smfcore/core/device/rest/DeviceController.java
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
src/main/java/com/neotel/smfcore/common/utils/ReelLockPosUtil.java
查看文件 @
d5b8a08
...
@@ -37,6 +37,18 @@ public class ReelLockPosUtil {
...
@@ -37,6 +37,18 @@ public class ReelLockPosUtil {
}
}
}
}
private
static
ReelLockPosInfo
getFromMap
(
String
barcode
){
return
reelLocKPosMap
.
get
(
barcode
.
replace
(
"."
,
"-"
));
}
private
static
void
removeFromMap
(
String
barcode
){
reelLocKPosMap
.
remove
(
barcode
.
replace
(
"."
,
"-"
));
}
private
static
void
putToMap
(
String
barcode
,
ReelLockPosInfo
reelLockPosInfo
){
reelLocKPosMap
.
put
(
barcode
.
replace
(
"."
,
"-"
),
reelLockPosInfo
);
}
/**
/**
* 添加条码锁定库位信息
* 添加条码锁定库位信息
*
*
...
@@ -44,7 +56,8 @@ public class ReelLockPosUtil {
...
@@ -44,7 +56,8 @@ public class ReelLockPosUtil {
*/
*/
public
static
synchronized
ReelLockPosInfo
addReelLockPosInfo
(
ReelLockPosInfo
reelLockPosInfo
,
List
<
String
>
cidList
)
{
public
static
synchronized
ReelLockPosInfo
addReelLockPosInfo
(
ReelLockPosInfo
reelLockPosInfo
,
List
<
String
>
cidList
)
{
log
.
info
(
"为["
+
reelLockPosInfo
.
getBarcode
()
+
"]锁定库位["
+
reelLockPosInfo
.
getLockPosName
()
+
"]"
);
log
.
info
(
"为["
+
reelLockPosInfo
.
getBarcode
()
+
"]锁定库位["
+
reelLockPosInfo
.
getLockPosName
()
+
"]"
);
ReelLockPosInfo
oldLocInfo
=
reelLocKPosMap
.
get
(
reelLockPosInfo
.
getBarcode
());
//ReelLockPosInfo oldLocInfo = reelLocKPosMap.get(reelLockPosInfo.getBarcode());
ReelLockPosInfo
oldLocInfo
=
getFromMap
(
reelLockPosInfo
.
getBarcode
());
if
(
oldLocInfo
!=
null
&&
oldLocInfo
.
getLockPosName
()
!=
null
)
{
if
(
oldLocInfo
!=
null
&&
oldLocInfo
.
getLockPosName
()
!=
null
)
{
if
(
cidList
.
contains
(
oldLocInfo
.
getCid
())){
if
(
cidList
.
contains
(
oldLocInfo
.
getCid
())){
log
.
info
(
"["
+
oldLocInfo
.
getBarcode
()
+
"]已有锁定库位["
+
oldLocInfo
.
getLockPosName
()
+
"],返回之前锁定的库位"
);
log
.
info
(
"["
+
oldLocInfo
.
getBarcode
()
+
"]已有锁定库位["
+
oldLocInfo
.
getLockPosName
()
+
"],返回之前锁定的库位"
);
...
@@ -52,7 +65,8 @@ public class ReelLockPosUtil {
...
@@ -52,7 +65,8 @@ public class ReelLockPosUtil {
}
else
{
}
else
{
//锁定库位不在cid列表中
//锁定库位不在cid列表中
log
.
info
(
"["
+
oldLocInfo
.
getBarcode
()
+
"]已有锁定库位["
+
oldLocInfo
.
getLockPosName
()
+
"],Cid["
+
oldLocInfo
.
getCid
()+
"]不在["
+
String
.
join
(
","
,
cidList
)+
"]中,清理原有锁定库位"
);
log
.
info
(
"["
+
oldLocInfo
.
getBarcode
()
+
"]已有锁定库位["
+
oldLocInfo
.
getLockPosName
()
+
"],Cid["
+
oldLocInfo
.
getCid
()+
"]不在["
+
String
.
join
(
","
,
cidList
)+
"]中,清理原有锁定库位"
);
reelLocKPosMap
.
remove
(
reelLockPosInfo
.
getBarcode
());
//reelLocKPosMap.remove(reelLockPosInfo.getBarcode());
removeFromMap
(
reelLockPosInfo
.
getBarcode
());
}
}
}
}
for
(
ReelLockPosInfo
locInfo
:
reelLocKPosMap
.
values
())
{
for
(
ReelLockPosInfo
locInfo
:
reelLocKPosMap
.
values
())
{
...
@@ -61,7 +75,8 @@ public class ReelLockPosUtil {
...
@@ -61,7 +75,8 @@ public class ReelLockPosUtil {
return
null
;
return
null
;
}
}
}
}
reelLocKPosMap
.
put
(
reelLockPosInfo
.
getBarcode
(),
reelLockPosInfo
);
//reelLocKPosMap.put(reelLockPosInfo.getBarcode(), reelLockPosInfo);
putToMap
(
reelLockPosInfo
.
getBarcode
(),
reelLockPosInfo
);
dataCache
.
updateCache
(
REEL_LOCK_POS_MAP_KEY
,
reelLocKPosMap
);
dataCache
.
updateCache
(
REEL_LOCK_POS_MAP_KEY
,
reelLocKPosMap
);
return
reelLockPosInfo
;
return
reelLockPosInfo
;
}
}
...
@@ -69,6 +84,7 @@ public class ReelLockPosUtil {
...
@@ -69,6 +84,7 @@ public class ReelLockPosUtil {
public
static
ReelLockPosInfo
getLockPosInfoByCode
(
String
barcode
)
{
public
static
ReelLockPosInfo
getLockPosInfoByCode
(
String
barcode
)
{
if
(
org
.
apache
.
logging
.
log4j
.
util
.
Strings
.
isNotBlank
(
barcode
))
{
if
(
org
.
apache
.
logging
.
log4j
.
util
.
Strings
.
isNotBlank
(
barcode
))
{
barcode
=
barcode
.
replace
(
"."
,
"-"
);
for
(
ReelLockPosInfo
reelLockPosInfo
:
reelLocKPosMap
.
values
())
{
for
(
ReelLockPosInfo
reelLockPosInfo
:
reelLocKPosMap
.
values
())
{
String
lockBarcode
=
reelLockPosInfo
.
getBarcode
();
String
lockBarcode
=
reelLockPosInfo
.
getBarcode
();
...
@@ -88,7 +104,8 @@ public class ReelLockPosUtil {
...
@@ -88,7 +104,8 @@ public class ReelLockPosUtil {
* 清理条码锁定库位信息
* 清理条码锁定库位信息
*/
*/
public
static
void
removeReelLockPosInfo
(
String
barcode
)
{
public
static
void
removeReelLockPosInfo
(
String
barcode
)
{
reelLocKPosMap
.
remove
(
barcode
);
//reelLocKPosMap.remove(barcode);
removeFromMap
(
barcode
);
dataCache
.
updateCache
(
REEL_LOCK_POS_MAP_KEY
,
reelLocKPosMap
);
dataCache
.
updateCache
(
REEL_LOCK_POS_MAP_KEY
,
reelLocKPosMap
);
}
}
...
@@ -99,7 +116,8 @@ public class ReelLockPosUtil {
...
@@ -99,7 +116,8 @@ public class ReelLockPosUtil {
* @return
* @return
*/
*/
public
static
String
getReelLockPosId
(
String
barcode
)
{
public
static
String
getReelLockPosId
(
String
barcode
)
{
ReelLockPosInfo
lockPosInfo
=
reelLocKPosMap
.
get
(
barcode
);
//ReelLockPosInfo lockPosInfo = reelLocKPosMap.get(barcode);
ReelLockPosInfo
lockPosInfo
=
getFromMap
(
barcode
);
if
(
lockPosInfo
!=
null
)
{
if
(
lockPosInfo
!=
null
)
{
return
lockPosInfo
.
getLockPosId
();
return
lockPosInfo
.
getLockPosId
();
}
}
...
...
src/main/java/com/neotel/smfcore/core/device/rest/DeviceController.java
查看文件 @
d5b8a08
...
@@ -518,4 +518,42 @@ public class DeviceController {
...
@@ -518,4 +518,42 @@ public class DeviceController {
return
outTaskCount
;
return
outTaskCount
;
}
}
@ApiOperation
(
"查询库位是否有料或物料是否在库位中"
)
@RequestMapping
(
value
=
"/service/store/posQuery"
)
@ResponseBody
@AnonymousAccess
public
ResultBean
queryPos
(
HttpServletRequest
request
)
{
String
posName
=
request
.
getParameter
(
"posName"
);
String
barcode
=
request
.
getParameter
(
"barcode"
);
//参数:发送posName 或 barcode
//返回code=0,有料或在库位中,data中返回 posName,barcode,plateW,plateH
//返回code=101: 未找到库位号
//返回code=102:条码未找到库位
//返回code=100:库位中无料
StoragePos
pos
=
null
;
if
(
ObjectUtil
.
isNotEmpty
(
posName
))
{
//查询库位中是否有料
pos
=
storagePosManager
.
getByPosName
(
posName
);
if
(
pos
==
null
)
{
return
ResultBean
.
newErrorResult
(
101
,
"smfcore.queryPos.cannotFind"
,
"cannot find posName ["
+
posName
+
"]"
,
new
String
[]{
posName
});
}
else
if
(
pos
.
getBarcode
()
==
null
)
{
return
ResultBean
.
newErrorResult
(
100
,
"smfcore.queryPos.posIsEmpty"
,
"["
+
posName
+
"] is empty"
,
new
String
[]{
posName
});
}
}
else
if
(
ObjectUtil
.
isNotEmpty
(
barcode
))
{
pos
=
storagePosManager
.
getByBarcode
(
barcode
);
if
(
pos
==
null
)
{
return
ResultBean
.
newErrorResult
(
102
,
"smfcore.queryPos.cannotFindBarcode"
,
"cannot find barcode ["
+
barcode
+
"] In storage"
,
new
String
[]{
barcode
});
}
}
else
{
return
ResultBean
.
newErrorResult
(
101
,
"smfcore.queryPos.cannotFind"
,
"cannot find posName ["
+
posName
+
"]"
,
new
String
[]{
posName
});
}
Map
<
String
,
String
>
data
=
new
HashMap
<>();
data
.
put
(
"posName"
,
pos
.
getPosName
());
data
.
put
(
"barcode"
,
pos
.
getBarcode
().
getBarcode
());
data
.
put
(
"plateW"
,
pos
.
getBarcode
().
getPlateSize
()
+
""
);
data
.
put
(
"plateH"
,
pos
.
getBarcode
().
getHeight
()
+
""
);
return
ResultBean
.
newOkResult
(
data
);
}
}
}
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
查看文件 @
d5b8a08
...
@@ -624,6 +624,7 @@ public class TaskService {
...
@@ -624,6 +624,7 @@ public class TaskService {
Barcode
posBarcode
=
pos
.
getBarcode
();
Barcode
posBarcode
=
pos
.
getBarcode
();
if
(
posBarcode
==
null
)
{
if
(
posBarcode
==
null
)
{
log
.
info
(
"条码["
+
barcode
.
getBarcode
()
+
"]已锁定库位["
+
pos
.
getPosName
()
+
"],返回锁定中的库位"
);
log
.
info
(
"条码["
+
barcode
.
getBarcode
()
+
"]已锁定库位["
+
pos
.
getPosName
()
+
"],返回锁定中的库位"
);
throw
new
ValidateException
(
"smfcore.error.barcode.locked"
,
"库位[{0}]已被锁定"
,
new
String
[]{
pos
.
getPosName
()});
}
else
{
}
else
{
log
.
info
(
"条码["
+
barcode
.
getBarcode
()
+
"]已锁定库位["
+
pos
.
getPosName
()
+
"]中已有物料["
+
posBarcode
.
getBarcode
()
+
"],重新查找库位"
);
log
.
info
(
"条码["
+
barcode
.
getBarcode
()
+
"]已锁定库位["
+
pos
.
getPosName
()
+
"]中已有物料["
+
posBarcode
.
getBarcode
()
+
"],重新查找库位"
);
pos
=
null
;
pos
=
null
;
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论