Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 7d58d994
由
sunke
编写于
2022-08-10 13:59:27 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
转储入库不记录用户问题修正
1 个父辈
2f4317f0
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
53 行增加
和
83 行删除
src/main/java/com/neotel/smfcore/core/device/bean/StatusBean.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/NLPShelfHandler.java
src/main/java/com/neotel/smfcore/core/outList/util/OutListCache.java
src/main/java/com/neotel/smfcore/core/system/websocket/WebSocketServer.java
src/main/java/com/neotel/smfcore/core/device/bean/StatusBean.java
查看文件 @
7d58d99
...
@@ -242,7 +242,7 @@ public class StatusBean {
...
@@ -242,7 +242,7 @@ public class StatusBean {
public
void
addOp
(
Map
<
String
,
String
>
opMap
){
public
void
addOp
(
Map
<
String
,
String
>
opMap
){
if
(
opMap
!=
null
&&
!
opMap
.
isEmpty
()){
if
(
opMap
!=
null
&&
!
opMap
.
isEmpty
()){
for
(
Map
.
Entry
<
String
,
String
>
op
:
opMap
.
entrySet
())
{
for
(
Map
.
Entry
<
String
,
String
>
op
:
opMap
.
entrySet
())
{
data
.
put
(
op
.
getKey
(),
op
.
getValue
());
addData
(
op
.
getKey
(),
op
.
getValue
());
}
}
}
}
}
}
...
...
src/main/java/com/neotel/smfcore/core/device/handler/impl/NLPShelfHandler.java
查看文件 @
7d58d99
...
@@ -57,87 +57,30 @@ public class NLPShelfHandler extends BaseDeviceHandler{
...
@@ -57,87 +57,30 @@ public class NLPShelfHandler extends BaseDeviceHandler{
}
}
private
ResultBean
testPutIn
(
String
loginUser
,
String
groupId
,
String
storageId
,
Barcode
barcode
,
String
token
)
{
// CodeBean codeBean = codeResolve.resolveSingleCode(codeStr);
if
(
barcode
==
null
||
barcode
.
getBarcode
()
==
null
)
{
return
ResultBean
.
newErrorResult
(
1
,
"smfcore.error.barcode.noValidCode"
,
"无效的条码"
);
}
String
pn
=
barcode
.
getPartNumber
();
String
reelId
=
barcode
.
getBarcode
();
String
num
=
barcode
.
getAmount
()
+
""
;
Integer
qty
=
barcode
.
getAmount
();
String
msl
=
barcode
.
getMsl
();
try
{
//需要模拟一个库位
DataLog
dataLog
=
new
DataLog
();
dataLog
.
setBarcode
(
reelId
);
dataLog
.
setPartNumber
(
pn
);
dataLog
.
setType
(
OP
.
PUT_IN
);
barcode
.
setPutInTime
(
System
.
currentTimeMillis
());
barcode
.
updateSluggishTime
(
dataCache
.
getPNsluggishDay
(
barcode
.
getPartNumber
()));
barcodeManager
.
saveBarcode
(
barcode
);
dataLog
.
setNum
(
barcode
.
getAmount
());
dataLog
.
setStatus
(
OP_STATUS
.
WAIT
.
name
());
dataLog
.
setGroupId
(
groupId
);
dataLog
.
setStorageId
(
storageId
);
dataLog
.
setMemo
(
barcode
.
getMemo
());
dataLog
.
setOperator
(
loginUser
);
if
(
ObjectUtil
.
isNotEmpty
(
storageId
))
{
Storage
storage
=
dataCache
.
getStorageById
(
storageId
);
if
(
storage
!=
null
)
{
dataLog
.
setCid
(
storage
.
getCid
());
dataLog
.
setStorageName
(
storage
.
getName
());
}
}
try
{
taskService
.
addTaskToExecute
(
dataLog
);
}
catch
(
Exception
e
)
{
return
ResultBean
.
newErrorResult
(-
1
,
"smfclient.nlp.error"
,
"入库失败:"
+
e
.
getMessage
(),
new
String
[]{
e
.
getMessage
()});
}
}
catch
(
ValidateException
e
)
{
log
.
error
(
e
.
toString
());
return
ResultBean
.
newErrorResult
(
1
,
e
.
getMsgKey
(),
e
.
getDefaultMsg
());
}
return
ResultBean
.
newOkResult
(
""
);
}
/**
* 从API接口解析条码,通常料架使用(其他设备会有尺寸信息且会有多个条码所以不适用此方法)
*/
protected
Barcode
resolveBarcodeFromApiForShelf
(
CodeValidateParam
param
)
throws
ValidateException
{
for
(
IOpAuthApi
opAuthApi
:
opAuthApiList
)
{
Barcode
responseBarcode
=
opAuthApi
.
resolveBarcode
(
param
);
if
(
responseBarcode
!=
null
){
return
responseBarcode
;
}
}
return
null
;
}
@Override
@Override
public
StatusBean
handleClientRequest
(
StatusBean
statusBean
,
HttpServletRequest
request
)
{
public
StatusBean
handleClientRequest
(
StatusBean
statusBean
,
HttpServletRequest
request
)
{
statusBean
.
setClientIp
(
request
.
getRemoteHost
());
statusBean
.
setClientIp
(
request
.
getRemoteHost
());
handleMsg
(
statusBean
);
handleMsg
(
statusBean
);
statusBean
=
saveAlarmAndHumidity
(
statusBean
);
statusBean
=
saveAlarmAndHumidity
(
statusBean
);
if
(
statusBean
!=
null
)
{
String
cid
=
statusBean
.
getCid
();
List
<
DataLog
>
finishedTasks
=
taskService
.
getFinishedTasks
();
for
(
DataLog
finishedTask
:
finishedTasks
)
{
if
(
finishedTask
.
getCid
().
equals
(
cid
)
&&
finishedTask
.
isCheckOutTask
()
&&
finishedTask
.
isCancel
()){
//取消的任务,需要关灯
taskService
.
removeFinishedTask
(
finishedTask
);
statusBean
.
addData
(
"close"
,
finishedTask
.
getPosName
());
}
}
// OrderSetting orderSetting = dataCache.getOrderSetting(
);
Map
<
String
,
String
>
opMap
=
DevicesStatusUtil
.
getAndRemoveOp
(
statusBean
.
getCid
()
);
// boolean openZhiYin = orderSetting.getShelfLightType().equals(1
);
statusBean
.
addOp
(
opMap
);
// Map<String, List<DataLog>> outMap = new HashMap<>();
}
//亮灯
//亮灯
Collection
<
DataLog
>
queueTasks
=
taskService
.
getQueueTasks
(
statusBean
.
getCid
());
Collection
<
DataLog
>
queueTasks
=
taskService
.
getQueueTasks
(
statusBean
.
getCid
());
for
(
DataLog
queueTask
:
queueTasks
)
{
for
(
DataLog
queueTask
:
queueTasks
)
{
if
(
queueTask
.
isWait
())
{
if
(
queueTask
.
isWait
())
{
ORDER_COLOR
color
=
null
;
ORDER_COLOR
color
=
null
;
if
(
queueTask
.
isPutInTask
())
{
if
(
queueTask
.
isPutInTask
())
{
//入库默认深绿色 YELLOW
//入库默认深绿色 YELLOW
...
@@ -173,18 +116,7 @@ public class NLPShelfHandler extends BaseDeviceHandler{
...
@@ -173,18 +116,7 @@ public class NLPShelfHandler extends BaseDeviceHandler{
}
}
}
}
}
}
// else if(queueTask.isCancel()){
// if(queueTask.isCheckOutTask()){
//
// statusBean.addData("open",queueTask.getPosName()+"="+"orange" );
// log.info("库位["+queueTask.getPosName()+"]+取消:open=orange" );
// //从任务列表中删除
// taskService.removeFinishedTask(queueTask);
// }
// }
}
}
return
statusBean
;
return
statusBean
;
}
}
...
@@ -475,6 +407,43 @@ public class NLPShelfHandler extends BaseDeviceHandler{
...
@@ -475,6 +407,43 @@ public class NLPShelfHandler extends BaseDeviceHandler{
List
<
String
>
posList
=
dataCache
.
getUsedPosNameList
(
cid
);
List
<
String
>
posList
=
dataCache
.
getUsedPosNameList
(
cid
);
return
ResultBean
.
newOkResult
(
posList
);
return
ResultBean
.
newOkResult
(
posList
);
}
}
/**
* 手动出库
*/
@RequestMapping
(
"/api/material/manualOut"
)
@ResponseBody
@AnonymousAccess
public
ResultBean
manualOut
(
@RequestBody
Map
<
String
,
String
>
paramMap
,
HttpServletRequest
request
){
try
{
String
barcodeStr
=
paramMap
.
get
(
"barcode"
);
log
.
info
(
"手动出库条码:"
+
barcodeStr
);
Barcode
barcode
=
codeResolve
.
resolveOneValideBarcode
(
barcodeStr
);
StoragePos
pos
=
storagePosManager
.
getByBarcode
(
barcode
.
getBarcode
());
if
(
pos
==
null
){
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.manualOut.notFound"
,
"库存中未找到此料盘"
);
}
DataLog
outTask
=
null
;
for
(
DataLog
queueTask
:
taskService
.
getQueueTasks
())
{
if
(
queueTask
.
isCheckOutTask
()){
if
(
queueTask
.
getBarcode
().
equals
(
barcode
.
getBarcode
())){
outTask
=
queueTask
;
}
}
}
if
(
outTask
==
null
){
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.manualOut.noTask"
,
"未找到此料盘的出库任务"
);
}
super
.
finishedOutPos
(
outTask
.
getCid
(),
outTask
.
getPosName
());
//关闭库位灯
DevicesStatusUtil
.
appendOp
(
outTask
.
getCid
(),
"close"
,
outTask
.
getPosName
());
}
catch
(
Exception
e
){
log
.
info
(
"手动出库失败:"
+
e
.
getMessage
());
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.manualOut.failed"
,
"手动出库失败:"
+
e
.
getMessage
());
}
return
ResultBean
.
newOkResult
(
"出库成功"
);
}
@Override
@Override
public
DeviceType
getDeviceType
()
{
public
DeviceType
getDeviceType
()
{
return
DeviceType
.
NLP
;
return
DeviceType
.
NLP
;
...
...
src/main/java/com/neotel/smfcore/core/outList/util/OutListCache.java
查看文件 @
7d58d99
...
@@ -319,6 +319,7 @@ public class OutListCache implements ITaskListener {
...
@@ -319,6 +319,7 @@ public class OutListCache implements ITaskListener {
task
.
setSubSourceId
(
outListItem
.
getId
());
task
.
setSubSourceId
(
outListItem
.
getId
());
task
.
setSubSourceInfo
(
outListItem
.
getBaseCode
());
task
.
setSubSourceInfo
(
outListItem
.
getBaseCode
());
task
.
setType
(
OP
.
CHECKOUT
);
task
.
setType
(
OP
.
CHECKOUT
);
task
.
setOperator
(
userName
);
task
.
setStatus
(
OP_STATUS
.
WAIT
.
name
());
task
.
setStatus
(
OP_STATUS
.
WAIT
.
name
());
//判断出库类型
//判断出库类型
...
...
src/main/java/com/neotel/smfcore/core/system/websocket/WebSocketServer.java
查看文件 @
7d58d99
...
@@ -118,7 +118,7 @@ public class WebSocketServer {
...
@@ -118,7 +118,7 @@ public class WebSocketServer {
* 实现服务器主动推送
* 实现服务器主动推送
*/
*/
private
void
sendMessage
(
String
message
)
throws
IOException
{
private
void
sendMessage
(
String
message
)
throws
IOException
{
this
.
session
.
getBasicRemote
().
sendText
(
message
);
//
this.session.getBasicRemote().sendText(message);
}
}
// /**
// /**
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论