Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 487e8abd
由
LN
编写于
2021-12-28 16:43:51 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
XLC料仓扫码入库BUG修改
1 个父辈
c3e77ded
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
89 行增加
和
7 行删除
src/main/java/com/neotel/smfcore/core/barcode/utils/CodeResolve.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/BaseDeviceHandler.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/XLCBoxHandler.java
src/main/java/com/neotel/smfcore/core/barcode/utils/CodeResolve.java
查看文件 @
487e8ab
...
@@ -174,6 +174,7 @@ public class CodeResolve {
...
@@ -174,6 +174,7 @@ public class CodeResolve {
component
.
setHeight
(
barcodeFromRule
.
getHeight
());
component
.
setHeight
(
barcodeFromRule
.
getHeight
());
component
.
setName
(
barcodeFromRule
.
getPartNumber
());
component
.
setName
(
barcodeFromRule
.
getPartNumber
());
component
.
setProvider
(
barcodeFromRule
.
getProvider
());
component
.
setProvider
(
barcodeFromRule
.
getProvider
());
component
.
setType
(
type
);
componentManager
.
save
(
component
);
componentManager
.
save
(
component
);
}
else
{
}
else
{
//如果 barcode 里的料盘信息比 Component 中的大,使用比较大的,防止放不进去撞击
//如果 barcode 里的料盘信息比 Component 中的大,使用比较大的,防止放不进去撞击
...
@@ -181,6 +182,7 @@ public class CodeResolve {
...
@@ -181,6 +182,7 @@ public class CodeResolve {
log
.
info
(
"更新物料["
+
component
.
getPartNumber
()+
"]档案尺寸["
+
component
.
getPlateSize
()+
"x"
+
component
.
getHeight
()+
"]为["
+
codeBeanFromRule
.
getReelWidth
()+
"x"
+
codeBeanFromRule
.
getReelHeight
()+
"]"
);
log
.
info
(
"更新物料["
+
component
.
getPartNumber
()+
"]档案尺寸["
+
component
.
getPlateSize
()+
"x"
+
component
.
getHeight
()+
"]为["
+
codeBeanFromRule
.
getReelWidth
()+
"x"
+
codeBeanFromRule
.
getReelHeight
()+
"]"
);
component
.
setPlateSize
(
barcodeFromRule
.
getPlateSize
());
component
.
setPlateSize
(
barcodeFromRule
.
getPlateSize
());
component
.
setHeight
(
barcodeFromRule
.
getHeight
());
component
.
setHeight
(
barcodeFromRule
.
getHeight
());
component
.
setType
(
type
);
componentManager
.
save
(
component
);
componentManager
.
save
(
component
);
}
}
codeBeanFromRule
.
setShowImg
(
component
.
getShowImg
());
codeBeanFromRule
.
setShowImg
(
component
.
getShowImg
());
...
@@ -259,7 +261,7 @@ public class CodeResolve {
...
@@ -259,7 +261,7 @@ public class CodeResolve {
return
null
;
return
null
;
}
}
p
ublic
Collection
<
CodeBean
>
resolveCodeStr
(
String
codeStr
){
p
rivate
Collection
<
CodeBean
>
resolveCodeStr
(
String
codeStr
,
int
type
){
List
<
CodeBean
>
codeBeans
=
Lists
.
newArrayList
();
List
<
CodeBean
>
codeBeans
=
Lists
.
newArrayList
();
//Map<String, CodeBean> codeBeanMap = Maps.newHashMap();
//Map<String, CodeBean> codeBeanMap = Maps.newHashMap();
if
(!
Strings
.
isNullOrEmpty
(
codeStr
)){
if
(!
Strings
.
isNullOrEmpty
(
codeStr
)){
...
@@ -267,7 +269,7 @@ public class CodeResolve {
...
@@ -267,7 +269,7 @@ public class CodeResolve {
String
[]
barcodeItemStrs
=
codeStr
.
split
(
"##"
);
String
[]
barcodeItemStrs
=
codeStr
.
split
(
"##"
);
for
(
String
barcodeItemStr
:
barcodeItemStrs
){
for
(
String
barcodeItemStr
:
barcodeItemStrs
){
CodeBean
codeBean
=
resolveSingleCode
(
barcodeItemStr
);
CodeBean
codeBean
=
resolveSingleCode
(
barcodeItemStr
,
type
);
if
(
codeBean
==
null
){
if
(
codeBean
==
null
){
continue
;
continue
;
}
}
...
@@ -314,17 +316,19 @@ public class CodeResolve {
...
@@ -314,17 +316,19 @@ public class CodeResolve {
//return codeBeanMap.values();
//return codeBeanMap.values();
return
codeBeans
;
return
codeBeans
;
}
}
public
Barcode
resolveOneValideBarcode
(
String
codeStr
)
throws
ValidateException
{
return
resolveOneValideBarcode
(
codeStr
,
COMPONENT_TYPE
.
COMPONENT
);
}
/**
/**
* 从条码信息中解析出一个有效条码
* 从条码信息中解析出一个有效条码
* @param codeStr
* @param codeStr
* @return
* @return
*/
*/
public
Barcode
resolveOneValideBarcode
(
String
codeStr
)
throws
ValidateException
{
public
Barcode
resolveOneValideBarcode
(
String
codeStr
,
int
type
)
throws
ValidateException
{
if
(
org
.
apache
.
logging
.
log4j
.
util
.
Strings
.
isBlank
(
codeStr
)){
if
(
org
.
apache
.
logging
.
log4j
.
util
.
Strings
.
isBlank
(
codeStr
)){
throw
new
ValidateException
(
"smfcore.error.barcode.empty"
,
"未扫到条码"
);
throw
new
ValidateException
(
"smfcore.error.barcode.empty"
,
"未扫到条码"
);
}
}
Collection
<
CodeBean
>
codeBeans
=
resolveCodeStr
(
codeStr
);
Collection
<
CodeBean
>
codeBeans
=
resolveCodeStr
(
codeStr
,
type
);
Barcode
barcode
=
null
;
Barcode
barcode
=
null
;
String
errorMsg
=
""
;
String
errorMsg
=
""
;
for
(
CodeBean
codeBean
:
codeBeans
)
{
for
(
CodeBean
codeBean
:
codeBeans
)
{
...
...
src/main/java/com/neotel/smfcore/core/device/handler/impl/BaseDeviceHandler.java
查看文件 @
487e8ab
...
@@ -23,6 +23,10 @@ import com.neotel.smfcore.core.device.enums.OP;
...
@@ -23,6 +23,10 @@ import com.neotel.smfcore.core.device.enums.OP;
import
com.neotel.smfcore.core.device.enums.OP_STATUS
;
import
com.neotel.smfcore.core.device.enums.OP_STATUS
;
import
com.neotel.smfcore.core.device.handler.IDeviceHandler
;
import
com.neotel.smfcore.core.device.handler.IDeviceHandler
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.order.LiteOrderCache
;
import
com.neotel.smfcore.core.order.enums.ORDER_COLOR
;
import
com.neotel.smfcore.core.order.service.po.LiteOrder
;
import
com.neotel.smfcore.core.order.service.po.LiteOrderItem
;
import
com.neotel.smfcore.core.storage.enums.DeviceType
;
import
com.neotel.smfcore.core.storage.enums.DeviceType
;
import
com.neotel.smfcore.core.device.bean.StatusBean
;
import
com.neotel.smfcore.core.device.bean.StatusBean
;
import
com.neotel.smfcore.core.storage.service.manager.IStoragePosManager
;
import
com.neotel.smfcore.core.storage.service.manager.IStoragePosManager
;
...
@@ -38,6 +42,7 @@ import com.neotel.smfcore.core.system.service.po.Humiture;
...
@@ -38,6 +42,7 @@ import com.neotel.smfcore.core.system.service.po.Humiture;
import
com.neotel.smfcore.core.system.util.DevicesStatusUtil
;
import
com.neotel.smfcore.core.system.util.DevicesStatusUtil
;
import
com.neotel.smfcore.core.system.util.TaskService
;
import
com.neotel.smfcore.core.system.util.TaskService
;
import
com.neotel.smfcore.security.service.manager.IGroupManager
;
import
com.neotel.smfcore.security.service.manager.IGroupManager
;
import
lombok.Data
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -82,6 +87,8 @@ public class BaseDeviceHandler implements IDeviceHandler {
...
@@ -82,6 +87,8 @@ public class BaseDeviceHandler implements IDeviceHandler {
* 权限验证API列表
* 权限验证API列表
*/
*/
protected
List
<
IOpAuthApi
>
opAuthApiList
=
Lists
.
newArrayList
();
protected
List
<
IOpAuthApi
>
opAuthApiList
=
Lists
.
newArrayList
();
@Autowired
protected
LiteOrderCache
liteOrderCache
;
/**
/**
* CID的服务器消息(key 为 cid)
* CID的服务器消息(key 为 cid)
...
@@ -225,15 +232,19 @@ public class BaseDeviceHandler implements IDeviceHandler {
...
@@ -225,15 +232,19 @@ public class BaseDeviceHandler implements IDeviceHandler {
*/
*/
protected
StatusBean
putInLine
(
Storage
storage
,
StatusBean
statusBean
)
{
protected
StatusBean
putInLine
(
Storage
storage
,
StatusBean
statusBean
)
{
try
{
try
{
int
type
=
COMPONENT_TYPE
.
COMPONENT
;
if
(
storage
.
isXLC
()){
type
=
COMPONENT_TYPE
.
FIXTURE
;
}
String
codeStr
=
statusBean
.
getCode
();
String
codeStr
=
statusBean
.
getCode
();
Barcode
barcodeSave
=
codeResolve
.
resolveOneValideBarcode
(
codeStr
);
Barcode
barcodeSave
=
codeResolve
.
resolveOneValideBarcode
(
codeStr
,
type
);
//本地难条码是否可以入库
//本地难条码是否可以入库
verifyBarcodePutIn
(
Lists
.<
Storage
>
newArrayList
(
storage
),
barcodeSave
);
verifyBarcodePutIn
(
Lists
.<
Storage
>
newArrayList
(
storage
),
barcodeSave
);
//从API验证
//从API验证
barcodeSave
=
verifyPutInFromApi
(
barcodeSave
);
barcodeSave
=
verifyPutInFromApi
(
barcodeSave
);
if
(
barcodeSave
==
null
)
{
if
(
barcodeSave
==
null
)
{
barcodeSave
=
codeResolve
.
resolveOneValideBarcode
(
codeStr
);
barcodeSave
=
codeResolve
.
resolveOneValideBarcode
(
codeStr
,
type
);
}
}
//查找库位,生成入库任务
//查找库位,生成入库任务
...
@@ -770,6 +781,60 @@ public class BaseDeviceHandler implements IDeviceHandler {
...
@@ -770,6 +781,60 @@ public class BaseDeviceHandler implements IDeviceHandler {
return
statusBean
;
return
statusBean
;
}
}
protected
List
<
DataLog
>
getLightGuideTask
(
Map
<
String
,
List
<
DataLog
>>
outMap
)
{
List
<
DataLog
>
dataLogs
=
Lists
.
newArrayList
();
if
(
outMap
.
size
()
<=
0
)
{
return
dataLogs
;
}
//先查找正在执行中的发过去
for
(
String
sourceId
:
outMap
.
keySet
())
{
List
<
DataLog
>
dataLogList
=
outMap
.
get
(
sourceId
);
boolean
isFind
=
false
;
for
(
DataLog
dataLog
:
dataLogList
)
{
if
(
dataLog
.
getStatus
().
equals
(
OP_STATUS
.
EXECUTING
))
{
dataLogs
.
add
(
dataLog
);
isFind
=
true
;
break
;
}
}
if
(
isFind
)
{
break
;
}
//排序
LiteOrder
order
=
liteOrderCache
.
getOrderSortItems
(
sourceId
);
if
(
order
==
null
)
{
log
.
error
(
"ACCSHELF: sourceId="
+
sourceId
+
"的工单号未找到"
);
break
;
}
for
(
LiteOrderItem
item
:
order
.
getOrderItems
()
)
{
for
(
DataLog
dataLog
:
dataLogList
)
{
if
(
dataLog
.
getStatus
().
equals
(
OP_STATUS
.
WAIT
))
{
if
((
ObjectUtil
.
isNotEmpty
(
item
.
getPn
())
&&
item
.
getPn
().
equals
(
dataLog
.
getPartNumber
()))
||
(
ObjectUtil
.
isNotEmpty
(
item
.
getRi
())
&&
item
.
getRi
().
equals
(
dataLog
.
getBarcode
()))
)
dataLog
.
setStatus
(
OP_STATUS
.
EXECUTING
.
name
());
taskService
.
updateQueueTask
(
dataLog
);
log
.
info
(
"ACCSHELF: sourceId="
+
sourceId
+
"的工单["
+
order
.
getOrderNo
()
+
"]开始执行任务:["
+
dataLog
.
getPosName
()
+
"]["
+
dataLog
.
getPartNumber
()
+
"]["
+
dataLog
.
getBarcode
()
+
"]"
);
dataLogs
.
add
(
dataLog
);
isFind
=
true
;
break
;
}
}
}
if
(
isFind
)
{
break
;
}
}
return
dataLogs
;
}
/**
/**
* 判断是否打开了亮灯指引功能
* 判断是否打开了亮灯指引功能
* @return
* @return
...
...
src/main/java/com/neotel/smfcore/core/device/handler/impl/XLCBoxHandler.java
查看文件 @
487e8ab
...
@@ -144,6 +144,12 @@ public class XLCBoxHandler extends BaseDeviceHandler {
...
@@ -144,6 +144,12 @@ public class XLCBoxHandler extends BaseDeviceHandler {
}
}
@Override
@Override
public
StatusBean
handleClientRequest
(
StatusBean
statusBean
,
HttpServletRequest
request
)
{
public
StatusBean
handleClientRequest
(
StatusBean
statusBean
,
HttpServletRequest
request
)
{
String
cid
=
statusBean
.
getCid
();
Storage
storage
=
dataCache
.
getStorage
(
cid
);
if
(
storage
==
null
)
{
log
.
error
(
"料仓cid: ["
+
cid
+
"]不存在"
);
return
null
;
}
handleMsg
(
statusBean
);
handleMsg
(
statusBean
);
statusBean
=
saveAlarmAndHumidity
(
statusBean
);
statusBean
=
saveAlarmAndHumidity
(
statusBean
);
statusBean
=
handleXLCStatusBean
(
statusBean
);
statusBean
=
handleXLCStatusBean
(
statusBean
);
...
@@ -152,6 +158,13 @@ public class XLCBoxHandler extends BaseDeviceHandler {
...
@@ -152,6 +158,13 @@ public class XLCBoxHandler extends BaseDeviceHandler {
if
(
humidityResult
!=
null
){
if
(
humidityResult
!=
null
){
return
humidityResult
;
return
humidityResult
;
}
}
if
(
statusBean
.
getOp
()
==
OP
.
PUT_IN
)
{
log
.
debug
(
"入库:"
+
statusBean
.
toString
());
statusBean
=
putInLine
(
storage
,
statusBean
);
}
else
{
//查看是否有要出库的操作
statusBean
=
taskService
.
checkOut
(
storage
,
statusBean
);
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论