Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 0c7ced91
由
LN
编写于
2024-05-24 16:40:37 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
韩华接口调试修改
1 个父辈
c4bea40f
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
90 行增加
和
28 行删除
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrder.java
src/main/java/com/neotel/smfcore/custom/hanwha/handler/HanwhaApiHandler.java
src/main/java/com/neotel/smfcore/custom/hanwha/handler/TMSCommunicator.java
src/main/java/com/neotel/smfcore/custom/hanwha/handler/bean/TMSPart.java
src/main/java/com/neotel/smfcore/custom/hanwha/handler/bean/TMSPos.java
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
查看文件 @
0c7ced9
...
...
@@ -706,6 +706,9 @@ public class LiteOrderCache {
List
<
DataLog
>
allTask
=
taskService
.
getAllTasks
();
for
(
DataLog
task:
allTask
)
{
if
(
task
.
isFinished
()||
task
.
isCancel
()){
continue
;
}
if
(
OP
.
CHECKOUT
==
task
.
getType
()&&(!
task
.
isEnd
()))
{
//更新工单状态
String
taskSourceName
=
task
.
getSourceName
();
...
...
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrder.java
查看文件 @
0c7ced9
...
...
@@ -9,9 +9,7 @@ import org.springframework.data.annotation.Transient;
import
org.springframework.data.mongodb.core.mapping.Document
;
import
java.io.Serializable
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.*
;
@Data
@Document
...
...
@@ -204,5 +202,22 @@ public class LiteOrder extends BasePo implements Serializable {
}
orderItems
.
add
(
item
);
}
/**
* 自定义的附加字段,key=字段名,value=值
*/
public
Map
<
String
,
String
>
appendData
=
new
HashMap
<>();
public
void
addAppendDate
(
String
key
,
String
value
){
if
(
appendData
==
null
){
appendData
=
new
HashMap
<>();
}
appendData
.
put
(
key
,
value
);
}
public
String
getAppend
(
String
key
)
{
if
(
appendData
!=
null
&&
appendData
.
containsKey
(
key
))
{
return
appendData
.
get
(
key
);
}
return
""
;
}
}
src/main/java/com/neotel/smfcore/custom/hanwha/handler/HanwhaApiHandler.java
查看文件 @
0c7ced9
...
...
@@ -133,7 +133,7 @@ public class HanwhaApiHandler extends BaseSmfApiListener {
if
(!
task
.
isPutInTask
())
{
return
;
}
if
(
task
.
isFinished
())
{
if
(
task
.
isFinished
()
||
task
.
isEnd
()
)
{
List
<
TMSPartReelPos
>
list
=
new
ArrayList
<>();
TMSPartReelPos
bean
=
TMSPartReelPos
.
newBean
(
task
.
getPartNumber
(),
task
.
getBarcode
(),
task
.
getNum
(),
task
.
getCid
(),
task
.
getPosName
(),
1
,
task
.
getUpdateDate
().
getTime
(),
-
1
);
list
.
add
(
bean
);
...
...
@@ -148,7 +148,7 @@ public class HanwhaApiHandler extends BaseSmfApiListener {
if
(!
task
.
isCheckOutTask
())
{
return
;
}
if
(
task
.
isFinished
())
{
if
(
task
.
isFinished
()
||
task
.
isEnd
()
)
{
List
<
TMSPartReelPos
>
list
=
new
ArrayList
<>();
TMSPartReelPos
bean
=
TMSPartReelPos
.
newBean
(
task
.
getPartNumber
(),
task
.
getBarcode
(),
task
.
getNum
(),
task
.
getCid
(),
task
.
getPosName
(),
2
,
-
1
,
task
.
getUpdateDate
().
getTime
());
list
.
add
(
bean
);
...
...
@@ -168,10 +168,17 @@ public class HanwhaApiHandler extends BaseSmfApiListener {
if
(
liteOrder
.
isClosed
())
{
TMSReserve
tmsReserve
=
tmsCommunicator
.
GetOrderInfo
(
liteOrder
);
List
<
TMSReserve
>
list
=
new
ArrayList
<>();
list
.
add
(
tmsReserve
);
tmsCommunicator
.
ResponseUpdateDeliveryReserveState
(
0
,
list
,
0
);
String
isCancel
=
liteOrder
.
getAppend
(
"cancel"
);
if
(
isCancel
.
equals
(
"true"
)){
log
.
info
(
"工单取消处理中,此处不通知TMS"
);
}
else
{
log
.
info
(
"工单关闭,通知TMS"
);
TMSReserve
tmsReserve
=
tmsCommunicator
.
GetOrderInfo
(
liteOrder
);
List
<
TMSReserve
>
list
=
new
ArrayList
<>();
list
.
add
(
tmsReserve
);
tmsCommunicator
.
ResponseUpdateDeliveryReserveState
(
0
,
list
,
0
);
}
}
}
...
...
src/main/java/com/neotel/smfcore/custom/hanwha/handler/TMSCommunicator.java
查看文件 @
0c7ced9
...
...
@@ -107,7 +107,19 @@ public class TMSCommunicator implements WsMsgReceivedListener {
String
apiName
=
dataCache
.
getConfigCache
(
"api.name"
,
""
);
if
(
apiName
!=
null
&&
apiName
.
equalsIgnoreCase
(
"hanwha"
))
{
updateServerInfo
(
host
,
webPort
,
apiPort
);
start
();
Thread
closeTask
=
new
Thread
(
new
Runnable
()
{
@Override
public
void
run
()
{
try
{
Thread
.
sleep
(
20000
);
start
();
}
catch
(
Exception
e
){
log
.
error
(
"自动关闭库位灯出错:"
+
e
.
getMessage
());
}
}
});
closeTask
.
start
();
// start();
}
}
}
...
...
@@ -270,7 +282,7 @@ public class TMSCommunicator implements WsMsgReceivedListener {
allStorage
.
values
())
{
List
<
TMSPartReelPos
>
list
=
new
ArrayList
<>();
List
<
StoragePos
>
allPos
=
storagePosManager
.
findByStorage
(
storage
.
getId
());
if
(
storage
.
isNLShelf
()
)
{
if
(
storage
.
isNLShelf
()
||
storage
.
isMimoG2
()
)
{
for
(
StoragePos
pos
:
allPos
)
{
...
...
@@ -322,6 +334,7 @@ public class TMSCommunicator implements WsMsgReceivedListener {
if
(
storage
.
isNLShelf
()
||
storage
.
isNLPShelf
()
||
storage
.
isNLMShelf
()
||
storage
.
isShelf
())
{
type
=
"Rack"
;
}
int
status
=
-
1
;
if
(
statusList
!=
null
&&
statusList
.
length
>
i
)
{
status
=
statusList
[
i
];
...
...
@@ -379,10 +392,13 @@ public class TMSCommunicator implements WsMsgReceivedListener {
List
<
LiteOrder
>
orders
=
liteOrderManager
.
findByQuery
(
query
);
for
(
LiteOrder
order:
orders
)
{
tmsReserves
.
add
(
GetOrderInfo
(
order
));
TMSReserve
tmsReserve
=
GetOrderInfo
(
order
);
if
(
tmsReserve
!=
null
&&
tmsReserve
.
getPartList
().
size
()>
0
){
tmsReserves
.
add
(
tmsReserve
);
}
}
ResponseUpdateDeliveryReserveState
(
0
,
tmsReserves
,
0
);
ResponseUpdateDeliveryReserveState
(
0
,
tmsReserves
,
1
);
}
...
...
@@ -420,7 +436,7 @@ public class TMSCommunicator implements WsMsgReceivedListener {
}
else
{
logCode
=
TMS_Code
.
CODE_2013
;
//已完成
}
TMSPart
part
=
TMSPart
.
newBean
(
task
.
getPartNumber
(),
task
.
getBarcode
(),
task
.
getNum
(),
task
.
getNum
(),
logCode
,
task
.
getCid
(),
task
.
getPosName
());
TMSPart
part
=
TMSPart
.
newBean
(
t
msParts
.
size
(),
t
ask
.
getPartNumber
(),
task
.
getBarcode
(),
task
.
getNum
(),
task
.
getNum
(),
logCode
,
task
.
getCid
(),
task
.
getPosName
());
tmsParts
.
add
(
part
);
}
}
...
...
@@ -649,7 +665,7 @@ public class TMSCommunicator implements WsMsgReceivedListener {
if
(
curroNum
>
item
.
getNeedNum
())
{
requestNum
=
task
.
getNum
()
-
(
curroNum
-
item
.
getNeedNum
());
}
TMSPart
p
=
TMSPart
.
newBean
(
task
.
getPartNumber
(),
task
.
getBarcode
(),
requestNum
,
task
.
getNum
(),
TMS_Code
.
CODE_2010
,
task
.
getCid
(),
task
.
getPosName
());
TMSPart
p
=
TMSPart
.
newBean
(
parts
.
size
(),
task
.
getPartNumber
(),
task
.
getBarcode
(),
requestNum
,
task
.
getNum
(),
TMS_Code
.
CODE_2010
,
task
.
getCid
(),
task
.
getPosName
());
log
.
info
(
"RequestDeliveryOrder pn="
+
task
.
getPartNumber
()+
",出库成功:code="
+
TMS_Code
.
CODE_2010
+
",posName="
+
task
.
getPosName
()+
",barcode="
+
task
.
getBarcode
());
parts
.
add
(
p
);
}
...
...
@@ -661,11 +677,11 @@ public class TMSCommunicator implements WsMsgReceivedListener {
String
shortValue
=
item
.
getAppend
(
"shortage"
);
if
(
ObjectUtil
.
isNotEmpty
(
shortValue
)&&
shortValue
.
equals
(
"true"
)){
//未出库
TMSPart
p
=
TMSPart
.
newBean
(
item
.
getPn
(),
""
,
item
.
getNeedNum
(),
item
.
getOutNum
(),
TMS_Code
.
CODE_2002
,
""
,
""
);
TMSPart
p
=
TMSPart
.
newBean
(
parts
.
size
(),
item
.
getPn
(),
""
,
item
.
getNeedNum
(),
item
.
getOutNum
(),
TMS_Code
.
CODE_2002
,
""
,
""
);
log
.
info
(
"RequestDeliveryOrder pn="
+
item
.
getPn
()+
",出库失败缺料:code="
+
TMS_Code
.
CODE_2002
);
parts
.
add
(
p
);
}
else
{
TMSPart
p
=
TMSPart
.
newBean
(
item
.
getPn
(),
""
,
item
.
getNeedNum
(),
item
.
getOutNum
(),
TMS_Code
.
CODE_2010
,
""
,
""
);
TMSPart
p
=
TMSPart
.
newBean
(
parts
.
size
(),
item
.
getPn
(),
""
,
item
.
getNeedNum
(),
item
.
getOutNum
(),
TMS_Code
.
CODE_2010
,
""
,
""
);
log
.
info
(
"RequestDeliveryOrder pn="
+
item
.
getPn
()+
",未出库成功:code="
+
TMS_Code
.
CODE_2010
);
parts
.
add
(
p
);
}
...
...
@@ -673,6 +689,10 @@ public class TMSCommunicator implements WsMsgReceivedListener {
}
}
// TMSPart part = TMSPart.newBean("PN1", "Barcode1", 999, 999, TMS_Code.CODE_2002, "", "");
// parts.add(part);
ResponseDeliveryOrder
(
requestID
,
parts
,
liteOrder
.
getOrderNo
());
...
...
@@ -861,7 +881,7 @@ public class TMSCommunicator implements WsMsgReceivedListener {
List
<
TMSReserve
>
ReserveList
=
new
ArrayList
<>();
int
state
=
0
;
try
{
log
.
info
(
"RequestUpdateDeliveryReserveState : reserveCodes="
+
JsonUtil
.
toJsonStr
(
reserveCodes
)+
",resultCodes="
+
JsonUtil
.
toJsonStr
(
resultCodes
)+
"
返回结果
"
);
log
.
info
(
"RequestUpdateDeliveryReserveState : reserveCodes="
+
JsonUtil
.
toJsonStr
(
reserveCodes
)+
",resultCodes="
+
JsonUtil
.
toJsonStr
(
resultCodes
)+
" "
);
if
(
reserveCodes
!=
null
&&
resultCodes
!=
null
&&
reserveCodes
.
size
()==
resultCodes
.
size
())
{
Collection
<
DataLog
>
dataLogCollections
=
taskService
.
getQueueTasks
();
...
...
@@ -890,13 +910,20 @@ public class TMSCommunicator implements WsMsgReceivedListener {
tmsReserve
.
setResultCode
(
TMS_Code
.
CODE_2014
);
LiteOrder
order
=
liteOrderCache
.
getLiteOrder
(
reserveCode
);
if
(
order
!=
null
)
{
if
(
order
.
isOutBom
()
||
order
.
isOutTails
()
||
order
.
isOutOne
())
{
log
.
error
(
"ProcessOrder 准备取消工单:"
+
reserveCode
+
",未开始或已结束"
);
//查找所有任务看是否能取消
Collection
<
DataLog
>
dataLogCollections
=
taskService
.
getQueueTasks
();
log
.
info
(
"ProcessOrder 准备取消工单:"
+
reserveCode
+
",设置取消标记"
);
order
.
addAppendDate
(
"cancel"
,
"true"
);
liteOrderManager
.
save
(
order
);
liteOrderCache
.
addOrderToMap
(
order
);
//查找工单的所有任务
Criteria
c
=
Criteria
.
where
(
"sourceName"
).
is
(
order
.
getOrderNo
()).
and
(
"type"
).
is
(
2
);
List
<
DataLog
>
dataLogs
=
dataLogManager
.
findByQuery
(
new
Query
(
c
));
for
(
DataLog
task
:
dataLog
Collection
s
)
{
dataLogs
)
{
//是工单出库任务
if
(
task
.
isCheckOutTask
()
&&
task
.
getSourceName
().
equals
(
order
.
getOrderNo
()))
{
boolean
cancelResult
=
false
;
...
...
@@ -917,17 +944,23 @@ public class TMSCommunicator implements WsMsgReceivedListener {
}
log
.
info
(
"RequestUpdateDeliveryReserveState 取消出库任务,工单:"
+
order
.
getOrderNo
()
+
", barcode:"
+
task
.
getBarcode
()
+
", taskID:"
+
task
.
getId
()
+
"取消结果:"
+
cancelResult
);
TMSPart
part
=
TMSPart
.
newBean
(
task
.
getPartNumber
(),
task
.
getBarcode
(),
task
.
getNum
(),
task
.
getNum
(),
logCode
,
task
.
getCid
(),
task
.
getPosName
());
TMSPart
part
=
TMSPart
.
newBean
(
tmsParts
.
size
(),
task
.
getPartNumber
(),
task
.
getBarcode
(),
task
.
getNum
(),
task
.
getNum
(),
logCode
,
task
.
getCid
(),
task
.
getPosName
());
tmsParts
.
add
(
part
);
}
}
//判断工单是否可以取消,
String
res
=
liteOrderCache
.
closeOrder
(
order
.
getOrderNo
());
if
(
res
.
equals
(
"smfcore.order.close.success"
))
{
tmsReserve
.
setResultCode
(
TMS_Code
.
CODE_2013
);
//取消成功
liteOrderCache
.
closeOrder
(
order
.
getOrderNo
());
if
(
order
.
isClosed
())
{
tmsReserve
.
setResultCode
(
TMS_Code
.
CODE_2012
);
//取消成功
}
else
{
order
.
addAppendDate
(
"cancel"
,
""
);
liteOrderManager
.
save
(
order
);
liteOrderCache
.
addOrderToMap
(
order
);
log
.
info
(
"ProcessOrder 取消工单失败,清空取消标记 "
);
}
}
else
{
log
.
error
(
"ProcessOrder 无法取消工单:"
+
reserveCode
+
",未开始或已结束"
);
}
...
...
src/main/java/com/neotel/smfcore/custom/hanwha/handler/bean/TMSPart.java
查看文件 @
0c7ced9
...
...
@@ -24,8 +24,9 @@ public class TMSPart extends TMSPos implements Serializable {
private
int
responseCount
=
0
;
private
String
resultCode
=
""
;
public
static
TMSPart
newBean
(
String
pn
,
String
barcode
,
int
requestCount
,
int
responseCount
,
String
resultCode
,
String
cid
,
String
posName
)
{
public
static
TMSPart
newBean
(
int
index
,
String
pn
,
String
barcode
,
int
requestCount
,
int
responseCount
,
String
resultCode
,
String
cid
,
String
posName
)
{
TMSPart
bean
=
new
TMSPart
();
bean
.
setIndex
(
index
);
bean
.
setPartName
(
pn
);
bean
.
setReelCode
(
barcode
);
bean
.
setRequestCount
(
requestCount
);
...
...
src/main/java/com/neotel/smfcore/custom/hanwha/handler/bean/TMSPos.java
查看文件 @
0c7ced9
...
...
@@ -59,6 +59,9 @@ public class TMSPos implements Serializable {
if
(
posArray
.
length
==
3
)
{
rowId
=
Convert
.
toInt
(
posArray
[
1
])
+
""
;
colId
=
Convert
.
toInt
(
posArray
[
2
])
+
""
;
}
else
if
(
posArray
.
length
==
4
){
rowId
=
Convert
.
toInt
(
posArray
[
1
]+
posArray
[
2
])
+
""
;
colId
=
Convert
.
toInt
(
posArray
[
3
])
+
""
;
}
}
catch
(
Exception
ex
)
{
log
.
error
(
"解析出错:"
+
ex
.
toString
());
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论