Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 0bb56f79
由
sunke
编写于
2022-08-03 13:29:22 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
MIMO料仓紧急出库不需要判断是否有入库任务
1 个父辈
388991f1
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
67 行增加
和
2 行删除
src/main/java/com/neotel/smfcore/core/device/handler/impl/MimoBoxHandler.java
src/main/java/com/neotel/smfcore/core/system/websocket/WebSocketConfig.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/MimoBoxHandler.java
查看文件 @
0bb56f7
...
@@ -4,14 +4,18 @@ import cn.hutool.core.util.ObjectUtil;
...
@@ -4,14 +4,18 @@ import cn.hutool.core.util.ObjectUtil;
import
com.google.common.base.Strings
;
import
com.google.common.base.Strings
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.common.utils.Constants
;
import
com.neotel.smfcore.common.utils.SecurityUtils
;
import
com.neotel.smfcore.common.utils.SecurityUtils
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
import
com.neotel.smfcore.core.device.bean.StatusBean
;
import
com.neotel.smfcore.core.device.bean.StatusBean
;
import
com.neotel.smfcore.core.device.enums.OP
;
import
com.neotel.smfcore.core.device.enums.OP
;
import
com.neotel.smfcore.core.device.enums.OP_STATUS
;
import
com.neotel.smfcore.core.storage.bean.InventoryItem
;
import
com.neotel.smfcore.core.storage.bean.InventoryItem
;
import
com.neotel.smfcore.core.storage.enums.CHECKOUT_TYPE
;
import
com.neotel.smfcore.core.storage.enums.CHECKOUT_TYPE
;
import
com.neotel.smfcore.core.storage.enums.DeviceType
;
import
com.neotel.smfcore.core.storage.enums.DeviceType
;
import
com.neotel.smfcore.core.storage.service.po.Storage
;
import
com.neotel.smfcore.core.storage.service.po.Storage
;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.core.system.util.DevicesStatusUtil
;
import
com.neotel.smfcore.core.system.util.DevicesStatusUtil
;
import
com.neotel.smfcore.security.annotation.AnonymousPostMapping
;
import
com.neotel.smfcore.security.annotation.AnonymousPostMapping
;
import
com.neotel.smfcore.custom.siemens.SiemensApi
;
import
com.neotel.smfcore.custom.siemens.SiemensApi
;
...
@@ -57,9 +61,15 @@ public class MimoBoxHandler extends BaseDeviceHandler {
...
@@ -57,9 +61,15 @@ public class MimoBoxHandler extends BaseDeviceHandler {
log
.
debug
(
"入库:"
+
statusBean
.
toString
());
log
.
debug
(
"入库:"
+
statusBean
.
toString
());
statusBean
=
putInLine
(
storage
,
statusBean
);
statusBean
=
putInLine
(
storage
,
statusBean
);
}
else
{
}
else
{
//先查找紧急出库的物料
StatusBean
outSingleTaskResult
=
outSingleOutTask
(
storage
,
statusBean
);
if
(
outSingleTaskResult
!=
null
){
statusBean
=
outSingleTaskResult
;
}
else
{
//查看是否有要出库的操作
//查看是否有要出库的操作
statusBean
=
taskService
.
checkOut
(
storage
,
statusBean
);
statusBean
=
taskService
.
checkOut
(
storage
,
statusBean
);
}
}
}
//获取操作
//获取操作
Map
<
String
,
String
>
opMap
=
DevicesStatusUtil
.
getAndRemoveOp
(
cid
);
Map
<
String
,
String
>
opMap
=
DevicesStatusUtil
.
getAndRemoveOp
(
cid
);
...
@@ -68,7 +78,62 @@ public class MimoBoxHandler extends BaseDeviceHandler {
...
@@ -68,7 +78,62 @@ public class MimoBoxHandler extends BaseDeviceHandler {
return
statusBean
;
return
statusBean
;
}
}
/**
* 出库紧急物料
*/
public
StatusBean
outSingleOutTask
(
Storage
storage
,
StatusBean
statusBean
)
{
try
{
//准备更新暂停出入库
if
(
dataCache
.
getCache
(
Constants
.
CACHE_StopOut
))
{
return
statusBean
;
}
String
cid
=
storage
.
getCid
();
//紧急出库任务不论是否有入库任务都发到客户端,由客户端在入库间隙进行出库
Collection
<
DataLog
>
queueTasks
=
taskService
.
getQueueTasks
();
int
excuttingOutTaskNum
=
0
;
DataLog
singleOutTask
=
null
;
for
(
DataLog
queueTask
:
queueTasks
)
{
if
(
queueTask
.
isCheckOutTask
()){
if
(
cid
.
equals
(
queueTask
.
getCid
())
&&
queueTask
.
isExecuting
())
{
excuttingOutTaskNum
++;
}
if
(
queueTask
.
isSingleOut
())
{
//单盘优先出库
if
(
singleOutTask
==
null
||
queueTask
.
getCreateDate
().
before
(
singleOutTask
.
getCreateDate
()))
{
singleOutTask
=
queueTask
;
}
}
}
}
//已经有2个出库任务在执行,不再发了
if
(
excuttingOutTaskNum
<
2
){
if
(
singleOutTask
!=
null
)
{
log
.
info
(
"MIMO料仓优先分配紧急出库任务"
+
singleOutTask
.
getBarcode
()
+
"["
+
singleOutTask
.
getPosName
()
+
"]到 "
+
cid
);
singleOutTask
.
setStatus
(
OP_STATUS
.
EXECUTING
.
name
());
taskService
.
updateQueueTask
(
singleOutTask
);
statusBean
.
setOp
(
OP
.
CHECKOUT
);
String
posName
=
singleOutTask
.
getPosName
();
Barcode
codeObj
=
barcodeManager
.
findByBarcode
(
singleOutTask
.
getBarcode
());
int
plateW
=
0
;
int
plateH
=
0
;
if
(
codeObj
!=
null
)
{
plateW
=
codeObj
.
getPlateSize
();
plateH
=
codeObj
.
getHeight
();
}
else
{
log
.
warn
(
"MIMO紧急出库无料仓位"
+
storage
.
getName
()
+
"["
+
posName
+
"]"
);
}
statusBean
.
addPosInfo
(
singleOutTask
.
getBarcode
(),
posName
,
plateW
,
plateH
,
true
);
log
.
info
(
"出库紧急物料"
+
storage
.
getName
()
+
"["
+
posName
+
"]物料["
+
singleOutTask
.
getBarcode
()
+
"]"
+
"发送到客户端"
+
cid
);
return
statusBean
;
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
"出库紧急物料出错"
,
e
);
}
return
null
;
}
@ApiOperation
(
"单盘出库获取库存的PN"
)
@ApiOperation
(
"单盘出库获取库存的PN"
)
@AnonymousPostMapping
(
"/api/mimo/getInventory"
)
@AnonymousPostMapping
(
"/api/mimo/getInventory"
)
...
...
src/main/java/com/neotel/smfcore/core/system/websocket/WebSocketConfig.java
查看文件 @
0bb56f7
...
@@ -20,7 +20,7 @@ import org.springframework.context.annotation.Bean;
...
@@ -20,7 +20,7 @@ import org.springframework.context.annotation.Bean;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.web.socket.server.standard.ServerEndpointExporter
;
import
org.springframework.web.socket.server.standard.ServerEndpointExporter
;
//
@ConditionalOnProperty(name = "spring.profiles.active", havingValue = "dev")
@ConditionalOnProperty
(
name
=
"spring.profiles.active"
,
havingValue
=
"dev"
)
@Configuration
@Configuration
public
class
WebSocketConfig
{
public
class
WebSocketConfig
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论