Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 0e7517cd
由
sunke
编写于
2022-08-11 08:46:07 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
增加出库放到门口失败的状态(同时屏蔽库位)
分配库位时,排除急停和报警的料仓
1 个父辈
11a719d7
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
50 行增加
和
11 行删除
src/main/java/com/neotel/smfcore/core/device/enums/OP_STATUS.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/RobotBoxHandler.java
src/main/java/com/neotel/smfcore/core/system/service/po/DataLog.java
src/main/java/com/neotel/smfcore/taizhi/TaiZhiApi.java
src/main/java/com/neotel/smfcore/core/device/enums/OP_STATUS.java
查看文件 @
0e7517c
...
...
@@ -46,5 +46,10 @@ public enum OP_STATUS {
* 已放到料仓门口
*/
BOXDOOR
,
/**
* 已放到料仓门口无料盘
*/
BOXDOOR_NOREEL
;
}
src/main/java/com/neotel/smfcore/core/device/handler/impl/RobotBoxHandler.java
查看文件 @
0e7517c
...
...
@@ -9,6 +9,7 @@ import com.neotel.smfcore.common.bean.ResultBean;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.common.utils.Constants
;
import
com.neotel.smfcore.common.utils.ReelLockPosUtil
;
import
com.neotel.smfcore.common.utils.SecurityUtils
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
import
com.neotel.smfcore.core.device.api.IOpAuthApi
;
import
com.neotel.smfcore.core.device.bean.BoxStatusBean
;
...
...
@@ -195,8 +196,25 @@ public class RobotBoxHandler extends BaseDeviceHandler {
}
log
.
error
(
posName
+
"出库放到门口时,未找到对应的出库任务"
);
}
else
if
(
BOX_STATUS
.
OUT_FAILED
==
status
){
log
.
error
(
posName
+
"出库放到门口时,未感应到料盘"
);
//通知
//更改出库状态为OUT_DOOR
List
<
DataLog
>
finishedTasks
=
taskService
.
getFinishedTasks
();
for
(
DataLog
finishedTask
:
finishedTasks
)
{
if
(
finishedTask
.
getCid
().
equals
(
statusBean
.
getCid
())
&&
finishedTask
.
isCheckOutTask
()
&&
finishedTask
.
isOutBox
()){
if
(
posName
.
equals
(
finishedTask
.
getPosName
())){
//已出仓但未放到门口,更改状态
finishedTask
.
setStatus
(
OP_STATUS
.
BOXDOOR_NOREEL
.
name
());
log
.
info
(
"物料"
+
finishedTask
.
getBarcode
()
+
"已从库位"
+
finishedTask
.
getPosName
()
+
"取出放到门口,但未感应到料盘,屏蔽库位"
);
StoragePos
pos
=
storagePosManager
.
getByPosName
(
finishedTask
.
getPosName
());
if
(
pos
!=
null
)
{
pos
.
setEnabled
(
false
);
storagePosManager
.
save
(
pos
);
DeviceMessageUtil
.
addEnabledPosMessage
(
pos
,
"SYSTEM"
);
}
taskService
.
updateFinishedTask
(
finishedTask
);
return
statusBean
;
}
}
}
}
}
...
...
@@ -242,12 +260,12 @@ public class RobotBoxHandler extends BaseDeviceHandler {
String
errorMsg
=
""
;
List
<
Storage
>
storageList
=
Lists
.
newArrayList
();
List
<
String
>
cidList
=
new
ArrayList
<>();
if
(
Strings
.
isNullOrEmpty
(
cids
))
{
//
if (Strings.isNullOrEmpty(cids)) {
//自动获取在线的料仓列表
cidList
=
dataCache
.
getAvailableStorageIds
(
this
.
getDeviceType
());
}
else
{
cidList
=
Lists
.
newArrayList
(
cids
.
split
(
","
));
}
//
} else {
//
cidList = Lists.newArrayList(cids.split(","));
//
}
for
(
String
cid
:
cidList
)
{
String
notIntoCids
=
dataCache
.
getSettings
().
getNotIntoCids
();
if
(
notIntoCids
!=
null
)
{
...
...
src/main/java/com/neotel/smfcore/core/system/service/po/DataLog.java
查看文件 @
0e7517c
...
...
@@ -266,7 +266,11 @@ public class DataLog extends BasePo implements Serializable {
}
public
boolean
isBoxdoor
(){
return
OP_STATUS
.
BOXDOOR
.
name
().
equals
(
status
);
return
OP_STATUS
.
BOXDOOR
.
name
().
equals
(
status
)
||
OP_STATUS
.
BOXDOOR_NOREEL
.
equals
(
status
);
}
public
boolean
isBoxDoorNoReel
(){
return
OP_STATUS
.
BOXDOOR_NOREEL
.
equals
(
status
);
}
...
...
src/main/java/com/neotel/smfcore/taizhi/TaiZhiApi.java
查看文件 @
0e7517c
...
...
@@ -34,28 +34,39 @@ public class TaiZhiApi implements ITaskListener, IOpAuthApi {
@Override
public
void
onTaskStatusChange
(
DataLog
task
)
{
if
(
task
.
isFinished
()
||
task
.
isOutBox
()){
if
(
task
.
isPutInTask
()){
if
(
task
.
isFinished
()
||
task
.
isOutBox
()){
inFinished
(
task
);
}
}
else
{
outFinished
(
task
);
}
}
}
/**
* 8、物料出库完成接口
* @param task
*/
private
void
outFinished
(
DataLog
task
)
{
String
outDoneUrl
=
config
.
outDoneUrl
;
if
(
Strings
.
isNotBlank
(
outDoneUrl
)){
try
{
String
status
=
""
;
//"status": "状态:R:开始出库,Y:出库成功,N:出库失败",
if
(
task
.
isOutBox
()){
status
=
"R"
;
}
else
if
(
task
.
isBoxdoor
()){
if
(
task
.
isBoxDoorNoReel
()){
status
=
"N"
;
}
else
{
status
=
"Y"
;
}
}
if
(
Strings
.
isNotBlank
(
status
)){
String
reelId
=
task
.
getBarcode
();
String
deviceId
=
task
.
getCid
();
String
location
=
task
.
getPosName
();
//"status": "状态:R:开始出库,Y:出库成功,N:出库失败",
String
status
=
"Y"
;
log
.
info
(
"调用物料出库完成接口deviceId="
+
deviceId
+
",reelId="
+
reelId
+
",location="
+
location
+
","
+
status
);
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
paramMap
.
put
(
"deviceId"
,
deviceId
);
...
...
@@ -66,6 +77,7 @@ public class TaiZhiApi implements ITaskListener, IOpAuthApi {
paramMap
.
put
(
"remark"
,
""
);
String
result
=
HttpHelper
.
postJson
(
outDoneUrl
,
paramMap
);
log
.
info
(
reelId
+
"物料出库完成接口返回:"
+
result
);
}
}
catch
(
ApiException
e
)
{
log
.
error
(
"调用物料出库完成接口"
,
e
);
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论