Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 06d99ddb
由
LN
编写于
2024-05-22 17:46:40 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
韩华接口修改
1 个父辈
a258290f
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
460 行增加
和
298 行删除
src/main/java/com/neotel/smfcore/custom/hanwha/handler/HanwhaApiHandler.java
src/main/java/com/neotel/smfcore/custom/hanwha/handler/TMSApis.java
src/main/java/com/neotel/smfcore/custom/hanwha/handler/TMSCommunicator.java
src/main/java/com/neotel/smfcore/custom/hanwha/handler/bean/TMSPartReelStatus.java
src/main/java/com/neotel/smfcore/custom/hanwha/handler/bean/TMSPos.java
src/main/java/com/neotel/smfcore/custom/hanwha/handler/bean/TMSRackStatus.java
src/main/java/com/neotel/smfcore/custom/hanwha/handler/HanwhaApiHandler.java
查看文件 @
06d99dd
...
...
@@ -7,37 +7,54 @@ import com.neotel.smfcore.core.api.bean.CodeValidateParam;
import
com.neotel.smfcore.core.api.listener.BaseSmfApiListener
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
import
com.neotel.smfcore.core.device.bean.StatusBean
;
import
com.neotel.smfcore.core.order.service.po.LiteOrder
;
import
com.neotel.smfcore.core.storage.service.manager.IStoragePosManager
;
import
com.neotel.smfcore.core.storage.service.po.Storage
;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.core.system.service.manager.IDataLogManager
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.core.system.util.DevicesStatusUtil
;
import
com.neotel.smfcore.custom.hanwha.handler.bean.TMSPart
;
import
com.neotel.smfcore.custom.hanwha.handler.bean.TMSPartReelPos
;
import
com.neotel.smfcore.custom.hanwha.handler.bean.TMSRackStatus
;
import
com.neotel.smfcore.custom.hanwha.handler.bean.TMSReserve
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
@Service
@Slf4j
public
class
HanwhaApiHandler
extends
BaseSmfApiListener
{
//配置說明
// api:
// name: hanwha
// inCheckUrl:
webservice/RequestGetPartInfo
// inCheckUrl:
// outNotifyUrl: webservice/RequestSyncPartReelPosInfo
// inNotifyUrl: webservice/RequestSyncPartReelPosInfo
// deviceStatusUrl: webservice/RequestUpdateStorageConnectionInfo
//
// codeResolveUrl: webservice/RequestGetPartInfo
// orderNotifyUrl: webservice/ResponseUpdateDeliveryReserveState
//
// hanwha:
// host: 127.0.0.1
// webPort: 18189
// apiPort: 8374
// host: 3.39.76.183
// webPort: 1337
// apiPort: 8082
@Autowired
private
IStoragePosManager
storagePosManager
;
@Autowired
private
TMSCommunicator
tmsCommunicator
;
@Override
public
boolean
isForThisApi
(
String
apiName
)
{
return
apiName
!=
null
&&
apiName
.
equalsIgnoreCase
(
"hanwha"
)&&
TMSCommunicator
.
isEnable
();
return
apiName
!=
null
&&
apiName
.
equalsIgnoreCase
(
"hanwha"
)
&&
TMSCommunicator
.
isEnable
();
}
...
...
@@ -45,6 +62,71 @@ public class HanwhaApiHandler extends BaseSmfApiListener {
private
TMSApis
tmsApis
;
@Override
public
Barcode
canPutInBeforeResolve
(
String
codeResolveUrl
,
CodeValidateParam
params
)
throws
ValidateException
{
log
.
info
(
"barcode["
+
params
.
getCode
()
+
"] 解析条码,调用 RequestGetPartInfo"
);
List
<
TMSPart
>
result
=
tmsApis
.
RequestGetPartInfo
(
0
,
params
.
getCode
());
if
(
result
.
size
()
>
0
)
{
String
pn
=
result
.
get
(
0
).
getPartName
();
String
code
=
result
.
get
(
0
).
getReelCode
();
int
count
=
result
.
get
(
0
).
getResponseCount
();
boolean
needS
=
false
;
if
(
ObjectUtil
.
isEmpty
(
pn
))
{
log
.
info
(
"barcode["
+
params
.
getCode
()
+
"] RequestGetPartInfo ,PN为空"
);
return
null
;
}
if
(
ObjectUtil
.
isEmpty
(
code
))
{
log
.
info
(
"barcode["
+
params
.
getCode
()
+
"] RequestGetPartInfo ,唯一码为空"
);
return
null
;
}
if
(
count
<=
0
)
{
count
=
0
;
}
int
width
=
7
;
int
height
=
8
;
Barcode
barcode
=
new
Barcode
();
barcode
.
setFullCode
(
params
.
getCode
());
barcode
.
setAmount
(
count
);
barcode
.
setPartNumber
(
pn
);
barcode
.
setBarcode
(
code
);
barcode
.
setHeight
(
height
);
barcode
.
setPlateSize
(
width
);
barcode
=
barcodeManager
.
saveBarcode
(
barcode
);
log
.
info
(
"barcode["
+
params
.
getCode
()
+
"] RequestGetPartInfo ,PN=["
+
pn
+
"],code=["
+
code
+
"],count=["
+
count
+
"]新增条码准备入库"
);
return
barcode
;
}
return
null
;
}
@Override
public
Barcode
canPutInAfterResolve
(
String
inCheckUrl
,
CodeValidateParam
params
,
Barcode
barcode
)
throws
ValidateException
{
log
.
info
(
"barcode["
+
barcode
.
getBarcode
()
+
"] 准备入库,调用 RequestGetPartInfo"
);
List
<
TMSPart
>
result
=
tmsApis
.
RequestGetPartInfo
(
0
,
barcode
.
getFullCode
());
if
(
result
.
size
()
>
0
)
{
String
pn
=
result
.
get
(
0
).
getPartName
();
String
code
=
result
.
get
(
0
).
getReelCode
();
boolean
needS
=
false
;
if
(
ObjectUtil
.
isNotEmpty
(
pn
))
{
barcode
.
setPartNumber
(
pn
);
needS
=
true
;
}
if
(
ObjectUtil
.
isNotEmpty
(
code
))
{
barcode
.
setBarcode
(
code
);
needS
=
true
;
}
int
count
=
result
.
get
(
0
).
getResponseCount
();
if
(
count
>
0
)
{
barcode
.
setAmount
(
count
);
needS
=
true
;
}
if
(
needS
)
{
log
.
info
(
"barcode["
+
barcode
.
getBarcode
()
+
"] 准备入库,调用 RequestGetPartInfo ,更改pn=["
+
barcode
.
getPartNumber
()
+
"],code=["
+
barcode
.
getBarcode
()
+
"],count=["
+
barcode
.
getAmount
()
+
"]"
);
barcodeManager
.
saveBarcode
(
barcode
);
}
}
return
barcode
;
}
@Override
public
void
inTaskStatusChange
(
String
inNotifyUrl
,
DataLog
task
)
{
if
(!
task
.
isPutInTask
())
{
return
;
...
...
@@ -79,40 +161,87 @@ public class HanwhaApiHandler extends BaseSmfApiListener {
}
@Override
public
Barcode
canPutInAfterResolve
(
String
inCheckUrl
,
CodeValidateParam
params
,
Barcode
barcode
)
throws
ValidateException
{
log
.
info
(
"barcode["
+
barcode
.
getBarcode
()
+
"] 准备入库,调用 RequestGetPartInfo"
);
List
<
TMSPart
>
result
=
tmsApis
.
RequestGetPartInfo
(
0
,
barcode
.
getFullCode
());
if
(
result
.
size
()
>
0
)
{
String
pn
=
result
.
get
(
0
).
getPartName
();
String
code
=
result
.
get
(
0
).
getReelCode
();
boolean
needS
=
false
;
if
(
ObjectUtil
.
isNotEmpty
(
pn
))
{
barcode
.
setPartNumber
(
pn
);
needS
=
true
;
public
void
onOrderStatusChange
(
String
orderNotifyUrl
,
LiteOrder
liteOrder
)
{
//ResponseUpdateDeliveryReserveState-all work order
if
(
liteOrder
.
isClosed
())
{
TMSReserve
tmsReserve
=
tmsCommunicator
.
GetOrderInfo
(
liteOrder
);
List
<
TMSReserve
>
list
=
new
ArrayList
<>();
list
.
add
(
tmsReserve
);
tmsCommunicator
.
ResponseUpdateDeliveryReserveState
(
0
,
list
,
0
);
}
}
@Override
public
boolean
deviceStatusChanges
(
String
deviceStatusUrl
,
String
[]
cids
,
Integer
[]
statusList
)
{
log
.
info
(
"deviceStatusChanges ,设备状态变化["
+
JsonUtil
.
toJsonStr
(
cids
)
+
"],["
+
JsonUtil
.
toJsonStr
(
statusList
)
+
"],通知TMS"
);
// UpdateStorageConnectionInfo(cids,statusList);
RequestSyncRackStatusInfo
(
cids
,
statusList
);
return
true
;
}
public
void
RequestSyncRackStatusInfo
(
String
[]
cids
,
Integer
[]
statusList
)
{
SimpleDateFormat
formatter
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
String
dateString
=
formatter
.
format
(
new
Date
());
if
(!
TMSCommunicator
.
isEnable
())
{
return
;
}
List
<
TMSRackStatus
>
SyncRackStatusDatas
=
new
ArrayList
<>();
List
<
String
>
storageIds
=
new
ArrayList
<>();
int
i
=
0
;
for
(
String
cid
:
cids
)
{
Storage
storage
=
dataCache
.
getStorage
(
cid
);
if
(
storage
==
null
)
{
continue
;
}
if
(
ObjectUtil
.
isNotEmpty
(
code
))
{
barcode
.
setBarcode
(
code
);
needS
=
true
;
String
type
=
"Storage"
;
if
(
storage
.
isNLShelf
()
||
storage
.
isNLPShelf
()
||
storage
.
isNLMShelf
()
||
storage
.
isShelf
())
{
type
=
"Rack"
;
}
int
count
=
result
.
get
(
0
).
getResponseCount
();
if
(
count
>
0
)
{
barcode
.
setAmount
(
count
);
needS
=
true
;
int
status
=
-
1
;
if
(
statusList
!=
null
&&
statusList
.
length
>
i
)
{
status
=
statusList
[
i
];
}
else
{
StatusBean
bean
=
DevicesStatusUtil
.
getStatusBean
(
storage
.
getCid
());
if
(
bean
==
null
||
bean
.
timeOut
())
{
status
=
-
1
;
}
else
{
status
=
bean
.
getStatus
();
}
}
if
(
needS
)
{
log
.
info
(
"barcode["
+
barcode
.
getBarcode
()
+
"] 准备入库,调用 RequestGetPartInfo ,更改pn=["
+
barcode
.
getPartNumber
()
+
"],code=["
+
barcode
.
getBarcode
()
+
"],count=["
+
barcode
.
getAmount
()
+
"]"
);
barcodeManager
.
saveBarcode
(
barcode
);
int
flag
=
0
;
if
(
status
>=
1
)
{
flag
=
2
;
}
List
<
StoragePos
>
allStorage
=
storagePosManager
.
findByStorage
(
storage
.
getId
());
for
(
StoragePos
pos
:
allStorage
)
{
TMSRackStatus
st
=
new
TMSRackStatus
();
st
.
setPosName
(
pos
.
getPosName
());
st
.
setRackID
(
storage
.
getCid
());
st
.
setFlag
(
flag
);
st
.
setOutdate
(
""
);
st
.
setIndate
(
""
);
if
(
flag
==
2
)
{
st
.
setIndate
(
dateString
);
}
else
{
st
.
setOutdate
(
dateString
);
}
SyncRackStatusDatas
.
add
(
st
);
}
}
if
(
storageIds
.
size
()
>
0
)
{
tmsApis
.
RequestSyncRackStatusInfo
(
0
,
SyncRackStatusDatas
);
}
return
barcode
;
}
@Override
public
boolean
deviceStatusChanges
(
String
deviceStatusUrl
,
String
[]
cids
,
Integer
[]
statusList
)
{
log
.
info
(
"deviceStatusChanges ,设备状态变化["
+
JsonUtil
.
toJsonStr
(
cids
)
+
"],["
+
JsonUtil
.
toJsonStr
(
statusList
)
+
"],通知TMS"
);
UpdateStorageConnectionInfo
(
cids
,
statusList
);
return
true
;
}
public
void
UpdateStorageConnectionInfo
(
String
[]
cids
,
Integer
[]
statusList
)
{
public
void
UpdateStorageConnectionInfo
(
String
[]
cids
,
Integer
[]
statusList
)
{
if
(!
TMSCommunicator
.
isEnable
())
{
return
;
}
...
...
src/main/java/com/neotel/smfcore/custom/hanwha/handler/TMSApis.java
查看文件 @
06d99dd
...
...
@@ -117,7 +117,9 @@ public class TMSApis {
}
/**
* 3.18 RequestSyncRackStatusInfo
* 3.18 RequestSyncRackStatusInfo 不需要
* 3.19 不需要
*
* When Rack’ Status change, send to TMS about Rack’s Status.
* @param RequestID
* @param SyncRackStatusDatas
...
...
@@ -162,8 +164,10 @@ public class TMSApis {
}
return
result
;
}
////3.20 设备离线上线所有的库位信息上传
/**
*3.2
1
RequestUpdateStorageConnectionInfo
*3.2
3
RequestUpdateStorageConnectionInfo
* When Rack’s Connection Status changed, send to TMS about Rack Connection
* Status.
* @param RequestID
...
...
src/main/java/com/neotel/smfcore/custom/hanwha/handler/TMSCommunicator.java
查看文件 @
06d99dd
...
...
@@ -3,6 +3,7 @@ import java.lang.management.ManagementFactory;
import
java.net.InetAddress
;
import
java.net.URI
;
import
java.net.URISyntaxException
;
import
java.text.SimpleDateFormat
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.*
;
...
...
@@ -24,6 +25,7 @@ import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
import
com.neotel.smfcore.core.storage.service.manager.IStoragePosManager
;
import
com.neotel.smfcore.core.storage.service.po.Storage
;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.core.system.service.manager.IDataLogManager
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.core.system.util.DevicesStatusUtil
;
import
com.neotel.smfcore.core.system.util.TaskService
;
...
...
@@ -33,6 +35,9 @@ import com.neotel.smfcore.custom.hanwha.handler.bean.*;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.PostConstruct
;
...
...
@@ -84,6 +89,9 @@ public class TMSCommunicator implements WsMsgReceivedListener {
@Autowired
private
IStoragePosManager
storagePosManager
;
@Autowired
private
IDataLogManager
dataLogManager
;
private
static
int
gRequestID
=
1000
;
public
static
int
GetRequestID
()
{
...
...
@@ -154,13 +162,6 @@ public class TMSCommunicator implements WsMsgReceivedListener {
}
}
// public void send(String message) {
// if (websocket == null) {
// throw new NullPointerException();
// }
// websocket.send(message);
// }
public
void
SendData
(
Map
<
String
,
Object
>
messageMap
)
{
if
(
websocket
==
null
)
{
...
...
@@ -228,7 +229,7 @@ public class TMSCommunicator implements WsMsgReceivedListener {
SyncStorageConnectionInfo
(
cids
.
toArray
(
new
String
[
cids
.
size
()]),
new
Integer
[]{});
List
<
Map
<
String
,
StoragePos
>>
allUsedPoss
=
dataCache
.
getAllUsedPosMap
();
SyncReelData
(
allUsedPoss
);
SyncDeliveryReserveState
(
);
// List<TMSPart> result= tmsApis.RequestGetPartInfo(0,"20180126153040-001");
}
});
...
...
@@ -236,12 +237,46 @@ public class TMSCommunicator implements WsMsgReceivedListener {
thread
.
start
();
}
public
void
SyncReelData
(
List
<
Map
<
String
,
StoragePos
>>
allUsedPosList
)
{
if
(!
TMSCommunicator
.
isEnable
())
{
return
;
}
log
.
info
(
"WebSocket 已连接,开始同步物料信息 RequestSyncPartReelPosInfo"
);
List
<
TMSPartReelPos
>
list
=
new
ArrayList
<>();
for
(
Map
<
String
,
StoragePos
>
map
:
allUsedPosList
)
{
for
(
StoragePos
pos
:
map
.
values
())
{
if
(
pos
.
getBarcode
()
==
null
)
{
continue
;
}
Storage
storage
=
dataCache
.
getStorageById
(
pos
.
getStorageId
());
if
(
storage
==
null
){
log
.
error
(
"posName["
+
pos
.
getPosName
()+
"],storageId["
+
pos
.
getStorageId
()+
"]未找到料仓"
);
continue
;
}
Barcode
barcode
=
pos
.
getBarcode
();
TMSPartReelPos
bean
=
TMSPartReelPos
.
newBean
(
barcode
.
getPartNumber
(),
barcode
.
getBarcode
(),
barcode
.
getAmount
(),
storage
.
getCid
(),
pos
.
getPosName
(),
4
,
barcode
.
getPutInDate
().
getTime
(),
-
1
);
list
.
add
(
bean
);
if
(
list
.
size
()>=
10
){
break
;
}
}
}
List
<
TMSPart
>
result
=
tmsApis
.
RequestSyncPartReelPosInfo
(
0
,
list
);
}
public
void
SyncStorageConnectionInfo
(
String
[]
cids
,
Integer
[]
statusList
)
{
if
(!
TMSCommunicator
.
isEnable
())
{
return
;
}
log
.
info
(
"WebSocket 已连接,开始同步设备状态"
);
log
.
info
(
"WebSocket 已连接,开始同步设备状态
RequestUpdateStorageConnectionInfo
"
);
List
<
String
>
storageIds
=
new
ArrayList
<>();
List
<
String
>
storageTypes
=
new
ArrayList
<>();
List
<
Integer
>
isConns
=
new
ArrayList
<>();
...
...
@@ -294,42 +329,77 @@ public class TMSCommunicator implements WsMsgReceivedListener {
tmsApis
.
RequestUpdateStorageConnectionInfo
(
0
,
storageIds
,
storageTypes
,
isConns
);
}
}
public
void
SyncReelData
(
List
<
Map
<
String
,
StoragePos
>>
allUsedPosList
)
{
if
(!
TMSCommunicator
.
isEnable
())
{
return
;
public
void
SyncDeliveryReserveState
(
)
{
log
.
info
(
"WebSocket 已连接,开始同步工单出库信息 ResponseUpdateDeliveryReserveState"
);
//同步两天内的工单出库数据
Calendar
time
=
Calendar
.
getInstance
();
time
.
setTime
(
new
Date
());
time
.
add
(
Calendar
.
DAY_OF_MONTH
,
-
2
);
Date
start
=
time
.
getTime
();
Criteria
c
=
Criteria
.
where
(
"createDate"
).
gte
(
time
.
getTime
()).
lte
(
new
Date
());
Query
query
=
new
Query
(
c
);
query
.
with
(
Sort
.
by
(
Sort
.
Direction
.
ASC
,
"sourceId"
)
);
List
<
TMSReserve
>
tmsReserves
=
new
ArrayList
<>();
List
<
LiteOrder
>
orders
=
liteOrderManager
.
findByQuery
(
query
);
for
(
LiteOrder
order:
orders
)
{
tmsReserves
.
add
(
GetOrderInfo
(
order
));
}
log
.
info
(
"WebSocket 已连接,开始同步物料信息"
);
List
<
TMSPartReelPos
>
list
=
new
ArrayList
<>();
for
(
Map
<
String
,
StoragePos
>
map
:
allUsedPosList
)
{
ResponseUpdateDeliveryReserveState
(
0
,
tmsReserves
,
0
);
}
public
TMSReserve
GetOrderInfo
(
LiteOrder
liteOrder
)
{
for
(
StoragePos
pos
:
map
.
values
())
{
if
(
pos
.
getBarcode
()
==
null
)
{
continue
;
}
Storage
storage
=
dataCache
.
getStorageById
(
pos
.
getStorageId
());
if
(
storage
==
null
){
log
.
error
(
"posName["
+
pos
.
getPosName
()+
"],storageId["
+
pos
.
getStorageId
()+
"]未找到料仓"
);
continue
;
}
Barcode
barcode
=
pos
.
getBarcode
();
TMSPartReelPos
bean
=
TMSPartReelPos
.
newBean
(
barcode
.
getPartNumber
(),
barcode
.
getBarcode
(),
barcode
.
getAmount
(),
storage
.
getCid
(),
pos
.
getPosName
(),
4
,
barcode
.
getPutInDate
().
getTime
(),
-
1
);
TMSReserve
tmsReserve
=
new
TMSReserve
();
tmsReserve
.
setReserveCode
(
liteOrder
.
getOrderNo
());
list
.
add
(
bean
);
if
(
list
.
size
()>=
10
){
break
;
SimpleDateFormat
formatter
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
String
dateString
=
formatter
.
format
(
liteOrder
.
getCreateDate
());
tmsReserve
.
setDate
(
dateString
);
List
<
TMSPart
>
tmsParts
=
new
ArrayList
<>();
//查找工单的所有任务
Criteria
c
=
Criteria
.
where
(
"sourceName"
).
is
(
liteOrder
.
getOrderNo
()).
and
(
"type"
).
is
(
2
);
List
<
DataLog
>
dataLogs
=
dataLogManager
.
findByQuery
(
new
Query
(
c
));
for
(
DataLog
task
:
dataLogs
)
{
//是工单出库任务
if
(
task
.
isCheckOutTask
()
&&
task
.
getSourceName
().
equals
(
liteOrder
.
getOrderNo
()))
{
String
logCode
=
TMS_Code
.
CODE_2013
;
//默认已完成
if
(
task
.
isCancel
())
{
logCode
=
TMS_Code
.
CODE_2012
;
//取消成功
}
else
if
(
task
.
isExecuting
()
||
task
.
isWait
())
{
logCode
=
TMS_Code
.
CODE_2011
;
//出库中
}
else
{
logCode
=
TMS_Code
.
CODE_2013
;
//已完成
}
TMSPart
part
=
TMSPart
.
newBean
(
task
.
getPartNumber
(),
task
.
getBarcode
(),
task
.
getNum
(),
task
.
getNum
(),
logCode
,
task
.
getCid
(),
task
.
getPosName
());
tmsParts
.
add
(
part
);
}
}
if
(
liteOrder
.
isClosed
())
{
if
(
tmsParts
.
size
()
>
0
)
{
tmsReserve
.
setResultCode
(
TMS_Code
.
CODE_2013
);
}
else
{
tmsReserve
.
setResultCode
(
TMS_Code
.
CODE_2001
);
}
}
else
if
(
liteOrder
.
isOutOne
()
||
liteOrder
.
isOutTails
()
||
liteOrder
.
isOutOne
())
{
tmsReserve
.
setResultCode
(
TMS_Code
.
CODE_2011
);
}
List
<
TMSPart
>
result
=
tmsApis
.
RequestSyncPartReelPosInfo
(
0
,
list
);
tmsReserve
.
setPartList
(
tmsParts
);
return
tmsReserve
;
}
private
void
parseMessage
(
String
message
)
{
if
(
message
==
null
||
message
.
isEmpty
()
||
message
.
startsWith
(
"MOU"
))
{
return
;
...
...
@@ -361,12 +431,6 @@ public class TMSCommunicator implements WsMsgReceivedListener {
log
.
info
(
"onMsgReceived: requestID=["
+
requestID
+
"],message:["
+
message
+
"],Topic=["
+
topic
+
"]"
);
switch
(
topic
)
{
case
"RequestDeliveryReserve"
:
partItems
=
getMapValue
(
msgMap
,
"PartNames"
);
partCounts
=
getMapValue
(
msgMap
,
"Counts"
);
RequestDeliveryReserve
(
requestID
,
partItems
,
partCounts
);
break
;
case
"RequestDeliveryOrder"
:
partItems
=
getMapValue
(
msgMap
,
"PartNames"
);
partCounts
=
getMapValue
(
msgMap
,
"Counts"
);
...
...
@@ -384,13 +448,6 @@ public class TMSCommunicator implements WsMsgReceivedListener {
//3.12 RequestDeliveryOrderByReelCd
RequestDeliveryOrderByReelCd
(
requestID
,
reelCds
);
break
;
case
"RequestResultOfDeliveryReserve"
:
String
reserveCode
=
getMapValue
(
msgMap
,
"ReserveCode"
);
RequestResultOfDeliveryReserve
(
requestID
,
reserveCode
);
break
;
case
"RequestListOfDeliveryReserve"
:
RequestListOfDeliveryReserve
(
requestID
);
break
;
case
"RequestUpdateDeliveryReserveState"
:
List
<
String
>
reserveCodes
=
getMapValue
(
msgMap
,
"ReserveCodes"
);
List
<
Integer
>
resultCodes
=
getMapValue
(
msgMap
,
"ResultCodes"
);
...
...
@@ -398,36 +455,49 @@ public class TMSCommunicator implements WsMsgReceivedListener {
//3.14 RequestUpdateDeliveryReserveState
RequestUpdateDeliveryReserveState
(
requestID
,
reserveCodes
,
resultCodes
);
break
;
case
"RequestRegisterPartInfo"
:
String
partName
=
getMapValue
(
msgMap
,
"PartName"
);
reelCode
=
getMapValue
(
msgMap
,
"ReelCode"
);
count
=
getMapValue
(
msgMap
,
"Count"
);
int
flag
=
getMapValue
(
msgMap
,
"Flag"
);
registerID
=
getMapValue
(
msgMap
,
"RegisterID"
);
// case "RequestDeliveryReserve":
// partItems = getMapValue(msgMap, "PartNames");
// partCounts = getMapValue(msgMap, "Counts");
// RequestDeliveryReserve(requestID, partItems, partCounts);
//
RequestRegisterPartInfo
(
requestID
,
partName
,
reelCode
,
count
,
flag
,
registerID
);
break
;
case
"RequestGetStateOfTagRegister"
:
registerID
=
getMapValue
(
msgMap
,
"RegisterID"
);
RequestGetStateOfTagRegister
(
requestID
,
registerID
);
break
;
case
"RequestReStoreIn"
:
reelCode
=
getMapValue
(
msgMap
,
"ReelCode"
);
count
=
getMapValue
(
msgMap
,
"Count"
);
//RequestReStoreIn
RequestReStoreIn
(
requestID
,
reelCode
,
count
);
break
;
case
"UpdatedRegisterPartInfoEvent"
:
UpdatedRegisterPartInfoEvent
();
break
;
case
"RequestPrintLabelOrderCode"
:
TMSOrderCodeInfo
orderCodeInfo
=
getMapValue
(
msgMap
,
"OrderCodeInfo"
);
RequestPrintLabelOrderCode
(
requestID
,
orderCodeInfo
);
break
;
case
"RequestPrintLabelDockingCart"
:
TMSDockingCartInfo
dockingCartInfo
=
getMapValue
(
msgMap
,
"DockingCartInfo"
);
RequestPrintLabelDockingCart
(
requestID
,
dockingCartInfo
);
break
;
// break;
// case "RequestResultOfDeliveryReserve":
// String reserveCode = getMapValue(msgMap, "ReserveCode");
// RequestResultOfDeliveryReserve(requestID, reserveCode);
// break;
// case "RequestListOfDeliveryReserve":
// RequestListOfDeliveryReserve(requestID);
// break;
// case "RequestRegisterPartInfo":
// String partName = getMapValue(msgMap, "PartName");
// reelCode = getMapValue(msgMap, "ReelCode");
// count = getMapValue(msgMap, "Count");
// int flag = getMapValue(msgMap, "Flag");
// registerID = getMapValue(msgMap, "RegisterID");
////
// RequestRegisterPartInfo(requestID, partName, reelCode, count, flag, registerID);
// break;
// case "RequestGetStateOfTagRegister":
// registerID = getMapValue(msgMap, "RegisterID");
// RequestGetStateOfTagRegister(requestID, registerID);
// break;
// case "RequestReStoreIn":
// reelCode = getMapValue(msgMap, "ReelCode");
// count = getMapValue(msgMap, "Count");
// //RequestReStoreIn
// RequestReStoreIn(requestID, reelCode, count);
// break;
// case "UpdatedRegisterPartInfoEvent":
// UpdatedRegisterPartInfoEvent();
// break;
// case "RequestPrintLabelOrderCode":
// TMSOrderCodeInfo orderCodeInfo = getMapValue(msgMap, "OrderCodeInfo");
// RequestPrintLabelOrderCode(requestID, orderCodeInfo);
// break;
// case "RequestPrintLabelDockingCart":
// TMSDockingCartInfo dockingCartInfo = getMapValue(msgMap, "DockingCartInfo");
// RequestPrintLabelDockingCart(requestID, dockingCartInfo);
// break;
case
"NotifyLog"
:
break
;
default
:
...
...
@@ -494,6 +564,8 @@ public class TMSCommunicator implements WsMsgReceivedListener {
*/
private
void
RequestDeliveryOrder
(
int
requestID
,
List
<
String
>
partItem
,
List
<
Integer
>
partCount
,
boolean
towerLamp
)
{
// 3.9 ResponseDeliveryOrder
TMSReserve
tmsReserve
=
null
;
try
{
if
(
partItem
==
null
||
partCount
==
null
||
partItem
.
size
()
<=
0
||
partCount
.
size
()
<=
0
)
{
...
...
@@ -501,7 +573,8 @@ public class TMSCommunicator implements WsMsgReceivedListener {
ResponseDeliveryOrder
(
requestID
,
new
ArrayList
<>(),
""
);
return
;
}
String
soName
=
"DeliveryOrder-"
+
DateUtil
.
toDateString
(
new
Date
(),
"yyyyMMddHHmmss"
);
String
soName
=
"DO"
+
DateUtil
.
toDateString
(
new
Date
(),
"yyyyMMddHHmmss"
);
List
<
LiteOrderItem
>
liteOrderItems
=
new
ArrayList
<>();
int
index
=
0
;
for
(
String
pn
:
partItem
)
{
...
...
@@ -533,8 +606,8 @@ 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_201
1
,
task
.
getCid
(),
task
.
getPosName
());
log
.
info
(
"RequestDeliveryOrder pn="
+
task
.
getPartNumber
()+
",出库成功:code="
+
TMS_Code
.
CODE_201
1
+
",posName="
+
task
.
getPosName
()+
",barcode="
+
task
.
getBarcode
());
TMSPart
p
=
TMSPart
.
newBean
(
task
.
getPartNumber
(),
task
.
getBarcode
(),
requestNum
,
task
.
getNum
(),
TMS_Code
.
CODE_201
0
,
task
.
getCid
(),
task
.
getPosName
());
log
.
info
(
"RequestDeliveryOrder pn="
+
task
.
getPartNumber
()+
",出库成功:code="
+
TMS_Code
.
CODE_201
0
+
",posName="
+
task
.
getPosName
()+
",barcode="
+
task
.
getBarcode
());
parts
.
add
(
p
);
}
}
...
...
@@ -548,6 +621,11 @@ public class TMSCommunicator implements WsMsgReceivedListener {
}
ResponseDeliveryOrder
(
requestID
,
parts
,
liteOrder
.
getOrderNo
());
tmsReserve
=
GetOrderInfo
(
liteOrder
);
List
<
TMSReserve
>
tmsReserves
=
new
ArrayList
<>();
tmsReserves
.
add
(
tmsReserve
);
ResponseUpdateDeliveryReserveState
(
requestID
,
tmsReserves
,
0
);
}
...
...
@@ -570,7 +648,8 @@ public class TMSCommunicator implements WsMsgReceivedListener {
ResponseDeliveryOrderByLocation
(
requestID
,
new
ArrayList
<>(),
new
ArrayList
<>(),
""
);
return
;
}
String
soName
=
"DeliveryOrderByLocation-"
+
DateUtil
.
toDateString
(
new
Date
(),
"yyyyMMddHHmmss"
);
String
soName
=
"DOL"
+
DateUtil
.
toDateString
(
new
Date
(),
"yyyyMMddHHmmss"
);
List
<
LiteOrderItem
>
liteOrderItems
=
new
ArrayList
<>();
for
(
TMSPos
tmsPos
:
Locations
)
{
...
...
@@ -653,7 +732,7 @@ public class TMSCommunicator implements WsMsgReceivedListener {
ResponseDeliveryOrderByReelCd
(
requestID
,
new
ArrayList
<>(),
new
ArrayList
<>(),
""
);
return
;
}
String
soName
=
"D
eliveryOrderByReelCd-
"
+
DateUtil
.
toDateString
(
new
Date
(),
"yyyyMMddHHmmss"
);
String
soName
=
"D
OR
"
+
DateUtil
.
toDateString
(
new
Date
(),
"yyyyMMddHHmmss"
);
List
<
LiteOrderItem
>
liteOrderItems
=
new
ArrayList
<>();
for
(
String
ri
:
ReelCds
)
{
...
...
@@ -729,33 +808,8 @@ public class TMSCommunicator implements WsMsgReceivedListener {
for
(
int
i
=
0
;
i
<
reserveCodes
.
size
();
i
++){
String
reserveCode
=
reserveCodes
.
get
(
i
);
Integer
code
=
Convert
.
toInt
(
resultCodes
.
get
(
i
))
;
String
result
=
code
+
""
;
TMSReserve
tmsReserve
=
new
TMSReserve
();
tmsReserve
.
setReserveCode
(
reserveCode
);
tmsReserve
.
setPartList
(
new
ArrayList
<>());
//如果code=2012,取消对应的出库任务
if
(
code
.
equals
(
TMS_Code
.
CODE_2012
)){
result
=
TMS_Code
.
CODE_2014
;
//查找对应的出库任务
for
(
DataLog
task
:
dataLogCollections
)
{
if
(
task
.
isCheckOutTask
()&&
task
.
getBarcode
().
equals
(
reserveCode
)
){
//判断任务是否可取消
boolean
cancelResult
=
taskService
.
cancelTask
(
task
.
getId
());
if
(
cancelResult
){
result
=
TMS_Code
.
CODE_2020
;
}
log
.
info
(
"RequestUpdateDeliveryReserveState 取消出库任务barcode:"
+
task
.
getBarcode
()+
", taskID:"
+
task
.
getId
()+
"成功"
);
break
;
}
}
}
tmsReserve
.
setResultCode
(
result
);
TMSReserve
tmsReserve
=
ProcessOrder
(
reserveCode
,
code
+
""
);
ReserveList
.
add
(
tmsReserve
);
}
}
...
...
@@ -766,69 +820,69 @@ public class TMSCommunicator implements WsMsgReceivedListener {
}
/**
* 3.19 RequestReStoreIn
* @param requestID
* @param reelCode
* @param count
*/
private
void
RequestReStoreIn
(
int
requestID
,
String
reelCode
,
int
count
)
{
//3.20 ResponseReStoreIn
int
code
=
Integer
.
valueOf
(
TMS_Code
.
CODE_0001
);
try
{
log
.
info
(
"RequestReStoreIn reelcode="
+
reelCode
+
",reelCode="
+
reelCode
+
",count="
+
count
+
", 返回失败,code="
+
code
);
}
catch
(
Exception
exception
)
{
log
.
error
(
"RequestReStoreIn reelcode="
+
reelCode
+
",reelCode="
+
reelCode
+
",count="
+
count
+
", error:"
+
exception
.
toString
());
}
private
TMSReserve
ProcessOrder
(
String
reserveCode
,
String
resultCode
)
{
TMSReserve
tmsReserve
=
new
TMSReserve
();
tmsReserve
.
setReserveCode
(
reserveCode
);
tmsReserve
.
setResultCode
(
resultCode
);
tmsReserve
.
setPartList
(
new
ArrayList
<>());
List
<
TMSPart
>
tmsParts
=
new
ArrayList
<>();
if
(
resultCode
.
equals
(
TMS_Code
.
CODE_2012
))
{
tmsReserve
.
setResultCode
(
TMS_Code
.
CODE_2014
);
LiteOrder
order
=
liteOrderCache
.
getLiteOrder
(
reserveCode
);
if
(
order
!=
null
)
{
if
(
order
.
isOutBom
()
||
order
.
isOutTails
()
||
order
.
isOutOne
())
{
ResponseReStoreIn
(
requestID
,
reelCode
,
count
,
code
);
}
private
void
ChanagedMachineState
(
int
requestID
,
String
Line
,
String
Machine
,
String
data
)
{
}
private
void
RequestDeliveryReserve
(
int
requestID
,
List
<
String
>
PartItem
,
List
<
Integer
>
PartCount
)
{
}
private
void
RequestResultOfDeliveryReserve
(
int
requestID
,
String
ReserveCode
)
{
}
private
void
RequestListOfDeliveryReserve
(
int
requestID
)
{
}
private
void
UpdatedMessage
(
int
NewMessageID
)
{
}
log
.
error
(
"ProcessOrder 准备取消工单:"
+
reserveCode
+
",未开始或已结束"
);
//查找所有任务看是否能取消
Collection
<
DataLog
>
dataLogCollections
=
taskService
.
getQueueTasks
();
for
(
DataLog
task
:
dataLogCollections
)
{
//是工单出库任务
if
(
task
.
isCheckOutTask
()
&&
task
.
getSourceName
().
equals
(
order
.
getOrderNo
()))
{
boolean
cancelResult
=
false
;
String
logCode
=
TMS_Code
.
CODE_2014
;
//默认不能取消
if
(
task
.
isCancel
())
{
logCode
=
TMS_Code
.
CODE_2012
;
//取消成功
}
else
if
(
task
.
isExecuting
()
||
task
.
isWait
())
{
//判断任务是否可取消
cancelResult
=
taskService
.
cancelTask
(
task
.
getId
());
if
(
cancelResult
)
{
logCode
=
TMS_Code
.
CODE_2012
;
//取消成功
}
else
{
logCode
=
TMS_Code
.
CODE_2014
;
//取消失败
}
}
else
{
logCode
=
TMS_Code
.
CODE_2013
;
//已完成
}
log
.
info
(
"RequestUpdateDeliveryReserveState 取消出库任务,工单:"
+
order
.
getOrderNo
()
+
", barcode:"
+
task
.
getBarcode
()
+
", taskID:"
+
task
.
getId
()
+
"取消结果:"
+
cancelResult
);
private
void
RequestRegisterPartInfo
(
int
requestID
,
String
PartName
,
String
ReelCode
,
int
Count
,
int
Flag
,
String
RegisterID
)
{
}
TMSPart
part
=
TMSPart
.
newBean
(
task
.
getPartNumber
(),
task
.
getBarcode
(),
task
.
getNum
(),
task
.
getNum
(),
logCode
,
task
.
getCid
(),
task
.
getPosName
());
tmsParts
.
add
(
part
);
}
}
private
void
RequestGetStateOfTagRegister
(
int
requestID
,
String
RegisterID
)
{
}
private
void
UpdatedRegisterPartInfoEvent
()
{
//判断工单是否可以取消,
String
res
=
liteOrderCache
.
closeOrder
(
order
.
getOrderNo
());
if
(
res
.
equals
(
"smfcore.order.close.success"
))
{
tmsReserve
.
setResultCode
(
TMS_Code
.
CODE_2013
);
//取消成功
}
}
else
{
log
.
error
(
"ProcessOrder 无法取消工单:"
+
reserveCode
+
",未开始或已结束"
);
}
}
else
{
log
.
error
(
"ProcessOrder 未找到工单号:"
+
reserveCode
);
}
}
tmsReserve
.
setPartList
(
tmsParts
);
return
tmsReserve
;
}
// private void RequestGetRackList (int requestID){
// }
//
// private void RequestCalibration (int requestID, TMSCalibrationType CalibrationType, TMSCalibrationCommand CalibrationCommand){
// }
//
// private void RequestChangeFindOption(int requestID, TMSFindCountBaseOption CountBaseOption, TMSFindDateBaseOption DateBaseOption, TMSFindOptionPriority OptionPriority){
// }
//
// private void RequestAbnormalComplete(int requestID, String ReserveCode){
// }
//
// private void RequestReregistration(int requestID, String ReelCode){
// }
private
void
RequestPrintLabelOrderCode
(
int
requestID
,
TMSOrderCodeInfo
OrderCodeInfo
)
{
}
private
void
RequestPrintLabelDockingCart
(
int
requestID
,
TMSDockingCartInfo
DockingCartInfo
)
{
private
void
ChanagedMachineState
(
int
requestID
,
String
Line
,
String
Machine
,
String
data
)
{
}
...
...
@@ -945,97 +999,4 @@ public class TMSCommunicator implements WsMsgReceivedListener {
SendData
(
dataMap
);
}
public
void
ResponseDeliveryReserve
(
int
requestID
,
int
ResultCode
,
String
ReserveCode
)
{
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<>();
dataMap
.
put
(
"Topic"
,
"ResponseDeliveryReserve"
);
dataMap
.
put
(
"RequestID"
,
requestID
);
dataMap
.
put
(
"ResultCode"
,
ResultCode
);
dataMap
.
put
(
"ReserveCode"
,
ReserveCode
);
SendData
(
dataMap
);
}
public
void
ResponseListOfDeliveryReserve
(
int
requestID
,
List
<
String
>
Reserves
,
List
<
Integer
>
ResultCode
)
{
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<>();
dataMap
.
put
(
"Topic"
,
"ResponseListOfDeliveryReserve"
);
dataMap
.
put
(
"RequestID"
,
requestID
);
dataMap
.
put
(
"ReserveCodes"
,
Reserves
);
dataMap
.
put
(
"ResultCodes"
,
ResultCode
);
SendData
(
dataMap
);
}
public
void
ResponseResultOfDeliveryReserve
(
int
requestID
,
List
<
String
>
PartNames
,
List
<
Integer
>
PartCounts
,
List
<
Integer
>
ResultCodes
)
{
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<>();
dataMap
.
put
(
"Topic"
,
"ResponseResultOfDeliveryReserve"
);
dataMap
.
put
(
"RequestID"
,
requestID
);
dataMap
.
put
(
"PartNames"
,
PartNames
);
dataMap
.
put
(
"PartCounts"
,
PartCounts
);
dataMap
.
put
(
"ResultCodes"
,
ResultCodes
);
SendData
(
dataMap
);
}
public
void
ResponseReStoreIn
(
int
requestID
,
String
ReelCode
,
int
Count
,
int
ResultCode
)
{
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<>();
dataMap
.
put
(
"Topic"
,
"ResponseReStoreIn"
);
dataMap
.
put
(
"RequestID"
,
requestID
);
dataMap
.
put
(
"ReelCode"
,
ReelCode
);
dataMap
.
put
(
"Count"
,
Count
);
dataMap
.
put
(
"ResultCode"
,
ResultCode
);
SendData
(
dataMap
);
}
public
void
ResponseGetStateOfTagRegister
(
int
requestID
,
int
result
,
String
RegisterID
)
{
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<>();
dataMap
.
put
(
"Topic"
,
"ResponseGetStateOfTagRegister"
);
dataMap
.
put
(
"RequestID"
,
requestID
);
dataMap
.
put
(
"Result"
,
result
);
dataMap
.
put
(
"RegisterID"
,
RegisterID
);
SendData
(
dataMap
);
}
public
void
ResponseRegisterPartInfo
(
int
requestID
,
int
result
,
String
RegisterID
)
{
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<>();
dataMap
.
put
(
"Topic"
,
"ResponseRegisterPartInfo"
);
dataMap
.
put
(
"RequestID"
,
requestID
);
dataMap
.
put
(
"Result"
,
result
);
dataMap
.
put
(
"RegisterID"
,
RegisterID
);
SendData
(
dataMap
);
}
public
void
ResponseGetRackList
(
String
RequestID
)
{
}
public
void
ResponseReregistrationResult
(
String
RequestID
,
String
ReelCode
,
int
Result
)
{
}
public
void
ResponsePrintLabelOrderCode
(
int
requestID
,
int
Result
,
String
ResultMsg
)
{
try
{
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<>();
dataMap
.
put
(
"Topic"
,
"ResponsePrintLabelOrderCode"
);
dataMap
.
put
(
"RequestID"
,
requestID
);
dataMap
.
put
(
"result"
,
Result
);
dataMap
.
put
(
"resultMsg"
,
ResultMsg
);
SendData
(
dataMap
);
}
catch
(
Exception
ex
)
{
TMSResultMsg
tMSResultMsg
=
new
TMSResultMsg
(
1
,
ex
.
toString
());
log
.
error
(
"ResponsePrintLabelOrderCode error :"
+
ex
.
toString
());
}
}
public
void
ResponsePrintLabelDockingCart
(
int
requestID
,
int
Result
,
String
ResultMsg
)
{
try
{
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<>();
dataMap
.
put
(
"Topic"
,
"ResponsePrintLabelDockingCart"
);
dataMap
.
put
(
"RequestID"
,
requestID
);
dataMap
.
put
(
"result"
,
Result
);
dataMap
.
put
(
"resultMsg"
,
ResultMsg
);
SendData
(
dataMap
);
}
catch
(
Exception
ex
)
{
TMSResultMsg
tMSResultMsg
=
new
TMSResultMsg
(
1
,
ex
.
toString
());
log
.
error
(
"ResponsePrintLabelOrderCode error :"
+
ex
.
toString
());
}
}
}
src/main/java/com/neotel/smfcore/custom/hanwha/handler/bean/TMSPartReelStatus.java
查看文件 @
06d99dd
...
...
@@ -7,8 +7,18 @@ import java.util.HashMap;
import
java.util.Map
;
@Data
public
class
TMSPartReelStatus
extends
TMSPart
implements
Serializable
{
/**
* String ResultCode Result code (Refer 5. ResultCode)
* When the request (In : 0 / Out : 1)
* When the response (ok : 0 / ng : 1)
*/
private
String
ReserveCode
=
""
;
/**
* Bool TowerLamp Tower Lamp Status (true : on / false : off)
* When the request, (current tower lamp status)
* When the response, (tower lamp status to be changed)
*/
private
boolean
TowerLamp
=
false
;
@Override
...
...
src/main/java/com/neotel/smfcore/custom/hanwha/handler/bean/TMSPos.java
查看文件 @
06d99dd
...
...
@@ -7,6 +7,8 @@ import lombok.extern.slf4j.Slf4j;
import
java.io.Serializable
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
@Data
@Slf4j
...
...
@@ -28,9 +30,9 @@ public class TMSPos implements Serializable {
public
String
getPosName
(){
return
getRowID
()+
"_"
+
getColID
();
}
public
void
setPosName
(
String
posName
){
public
void
setPosName
(
String
posName
)
{
if
(
ObjectUtil
.
isEmpty
(
posName
))
{
if
(
ObjectUtil
.
isEmpty
(
posName
))
{
setColID
(
""
);
setRowID
(
""
);
return
;
...
...
@@ -43,14 +45,55 @@ public class TMSPos implements Serializable {
// setColID(posName.substring(index+1,posName.length()-1));
// }
String
[]
posArray
=
posName
.
split
(
"_"
);
String
spit
=
"_"
;
String
[]
posArray
=
posName
.
split
(
spit
);
if
(
posArray
.
length
>=
2
)
{
try
{
setColID
(
posArray
[
posArray
.
length
-
1
]);
setRowID
(
posArray
[
posArray
.
length
-
2
]);
}
catch
(
Exception
ex
)
{
log
.
error
(
"解析位置的行列失败 "
+
posName
+
","
+
ex
.
toString
());
}
else
{
spit
=
"-"
;
}
try
{
String
rowId
=
proStr
(
posName
)
;
String
colId
=
""
;
int
index
=
posName
.
lastIndexOf
(
spit
);
if
(
index
>
0
)
{
rowId
=
posName
.
substring
(
0
,
index
);
colId
=
posName
.
substring
(
index
+
1
,
posName
.
length
());
}
else
{
String
nPosName
=
proStr
(
posName
);
if
(
nPosName
.
length
()>
2
){
index
=
posName
.
length
()
-
2
;
rowId
=
posName
.
substring
(
0
,
index
);
colId
=
posName
.
substring
(
index
,
posName
.
length
());
}
}
setRowID
(
proStr
(
rowId
));
setColID
(
proStr
(
colId
));
// setColID(posArray[posArray.length - 1]);
// setRowID(posArray[posArray.length - 2]);
}
catch
(
Exception
ex
)
{
log
.
error
(
"解析位置的行列失败 "
+
posName
+
","
+
ex
.
toString
());
}
}
private
String
proStr
(
String
input
)
{
// 使用正则表达式匹配数字
String
regex
=
"\\d+"
;
Pattern
pattern
=
Pattern
.
compile
(
regex
);
Matcher
matcher
=
pattern
.
matcher
(
input
);
// 拼接匹配到的数字
StringBuilder
builder
=
new
StringBuilder
();
while
(
matcher
.
find
())
{
builder
.
append
(
matcher
.
group
());
}
// 输出结果
String
result
=
builder
.
toString
();
return
result
;
}
}
src/main/java/com/neotel/smfcore/custom/hanwha/handler/bean/TMSRackStatus.java
查看文件 @
06d99dd
...
...
@@ -8,10 +8,25 @@ import java.util.Map;
@Data
public
class
TMSRackStatus
extends
TMSPos
implements
Serializable
{
/**
* 0: Unconnected Rack(shelf ) / not available
* 1: Booting (not available)
* 2: Connected Rack(shelf) / ready ( available )
*/
private
int
Flag
=
0
;
/**
* Connected to the Rack(shelf)
* Format : “yyyy-MM-dd HH:mm:ss”
* Ex) April 5, 2019 PM 12:30:59 → “2019-04-05 12:30:59”
*/
private
String
Indate
;
/**
* Unconnected to the Rack(shelf)
* Format : “yyyy-MM-dd HH:mm:ss”
* Ex) April 5, 2019 PM 12:30:59 → “2019-04-05 12:30:59”
*/
private
String
Outdate
;
public
TMSRackStatus
()
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论