Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 612eb27a
由
LN
编写于
2024-12-12 16:20:21 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
韩华接口测试修改
1 个父辈
ce261dff
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
160 行增加
和
91 行删除
src/main/java/com/neotel/smfcore/core/device/util/DataCache.java
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/TMSUtil.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/device/util/DataCache.java
查看文件 @
612eb27
...
...
@@ -669,8 +669,21 @@ public class DataCache {
return
storageInventoryMap
;
}
public
List
<
InventoryItem
>
getInventoryByPN
(
String
pn
)
{
Map
<
String
,
InventoryItem
>
inventoryItemMap
=
getAllInventory
(
null
,
""
);
public
List
<
InventoryItem
>
getInventoryByPN
(
String
pn
,
List
<
String
>
cids
)
{
List
<
String
>
storageIds
=
new
ArrayList
<>();
if
(
cids
.
size
()>
0
){
for
(
String
cid
:
cids
)
{
Storage
storage
=
getStorage
(
cid
);
if
(
storage
!=
null
){
storageIds
.
add
(
storage
.
getId
());
}
}
}
if
(
storageIds
.
size
()<=
0
){
storageIds
=
null
;
}
Map
<
String
,
InventoryItem
>
inventoryItemMap
=
getAllInventory
(
storageIds
,
""
);
List
<
InventoryItem
>
list
=
Lists
.
newArrayList
(
inventoryItemMap
.
values
());
List
<
InventoryItem
>
resultList
=
new
ArrayList
<>();
...
...
@@ -816,7 +829,7 @@ public class DataCache {
}
List
<
String
>
availableStorageIds
=
new
ArrayList
<>();
for
(
Storage
storage
:
getAllStorage
().
values
())
{
if
(!
cidList
.
contains
(
storage
)){
if
(!
cidList
.
contains
(
storage
.
getCid
()
)){
continue
;
}
StatusBean
bean
=
DevicesStatusUtil
.
getStatusBean
(
storage
.
getCid
());
...
...
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
查看文件 @
612eb27
...
...
@@ -638,12 +638,21 @@ public class LiteOrderCache {
liteOrderItemManager
.
save
(
orderItem
);
break
;
}
else
{
excludePosIds
.
add
(
pos
.
getPosName
());
if
(
ObjectUtil
.
isNotEmpty
(
pos
.
getBarcode
().
getLockId
()))
{
log
.
info
(
"工单["
+
orderNo
+
"] RI=["
+
pos
.
getBarcode
().
getBarcode
()
+
"] 物料已被锁定,返回缺料"
);
shortReel
=
true
;
orderItem
.
addAppendDate
(
"shortage"
,
"true"
);
liteOrderItemManager
.
save
(
orderItem
);
break
;
}
else
{
excludePosIds
.
add
(
pos
.
getPosName
());
}
}
break
;
}
else
if
(
Strings
.
isNullOrEmpty
(
reelId
)
&&
!
Strings
.
isNullOrEmpty
(
partNumber
))
{
//PN
pos
=
storagePosManager
.
findPartNumberInStorages
(
availableStorageIds
,
""
,
partNumber
,
excludePosIds
,
checkoutType
,
orderItem
.
getAppendData
());
}
else
if
(
Strings
.
isNullOrEmpty
(
reelId
)
&&
Strings
.
isNullOrEmpty
(
partNumber
)
&&
!
Strings
.
isNullOrEmpty
(
mpn
))
{
pos
=
storagePosManager
.
findMpnInStorages
(
availableStorageIds
,
mpn
,
excludePosIds
,
checkoutType
,
orderItem
.
getAppendData
());
}
...
...
@@ -940,6 +949,10 @@ public class LiteOrderCache {
log
.
info
(
"工单["
+
orderNo
+
"]RI出库,任务数["
+
taskReelCount
+
"]出库位置仓位【"
+
pos
.
getPosName
()
+
"】RI=["
+
pos
.
getBarcode
().
getBarcode
()
+
"]已在操作队列中,跳过不处理"
);
break
;
}
if
(
ObjectUtil
.
isNotEmpty
(
pos
.
getBarcode
().
getLockId
())){
log
.
info
(
"工单["
+
orderNo
+
"]RI出库 RI=["
+
pos
.
getBarcode
().
getBarcode
()
+
"] 物料已被锁定,跳过"
);
break
;
}
}
else
{
log
.
info
(
"工单["
+
orderNo
+
"]RI出库时,库存中未找到料盘["
+
reelId
+
"]"
);
}
...
...
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrder.java
查看文件 @
612eb27
package
com
.
neotel
.
smfcore
.
core
.
order
.
service
.
po
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.neotel.smfcore.common.base.BasePo
;
import
com.neotel.smfcore.common.utils.StorageConstants
;
import
com.neotel.smfcore.common.utils.StringUtils
;
...
...
@@ -228,4 +229,28 @@ public class LiteOrder extends BasePo implements Serializable {
}
return
""
;
}
public
void
setCidList
(
List
<
String
>
rackList
){
String
cids
=
String
.
join
(
","
,
rackList
);
addAppendDate
(
"cids"
,
cids
);
}
public
List
<
String
>
getCidList
()
{
String
cids
=
getAppend
(
"cids"
);
if
(
ObjectUtil
.
isEmpty
(
cids
))
{
return
new
ArrayList
<>();
}
else
{
String
[]
cidList
=
cids
.
split
(
","
);
List
<
String
>
rackList
=
new
ArrayList
<>();
for
(
String
cid
:
cidList
)
{
rackList
.
add
(
cid
);
}
return
rackList
;
}
}
}
src/main/java/com/neotel/smfcore/custom/hanwha/handler/HanwhaApiHandler.java
查看文件 @
612eb27
...
...
@@ -113,6 +113,7 @@ public class HanwhaApiHandler extends BaseSmfApiListener {
barcode
.
setHeight
(
height
);
barcode
.
setPlateSize
(
width
);
Date
proDate
=
getDate
(
result
.
get
(
0
).
getProductionDate
());
if
(
proDate
!=
null
)
{
barcode
.
setProduceDate
(
proDate
);
...
...
@@ -123,6 +124,10 @@ public class HanwhaApiHandler extends BaseSmfApiListener {
barcode
.
setExpireDate
(
expDate
);
}
Date
lDate
=
getDate
(
result
.
get
(
0
).
getWarehousingDate
());
if
(
lDate
!=
null
){
barcode
.
setPutInDate
(
lDate
);
}
//判断Pn是否存在
Component
component
=
componentManager
.
findOneByPN
(
pn
);
...
...
src/main/java/com/neotel/smfcore/custom/hanwha/handler/TMSCommunicator.java
查看文件 @
612eb27
...
...
@@ -143,13 +143,13 @@ public class TMSCommunicator implements WsMsgReceivedListener {
log
.
info
(
"启动 webService 状态检查"
);
while
(
true
)
{
try
{
TimeUnit
.
SECONDS
.
sleep
(
4
);
if
(
needCheck
)
{
stateCheck
();
}
if
(
waitSync
&&
System
.
currentTimeMillis
()>
syncTime
){
SyncData
();
}
TimeUnit
.
SECONDS
.
sleep
(
6
);
if
(
needCheck
)
{
stateCheck
();
}
}
catch
(
Exception
e
)
{
log
.
error
(
"webService"
+
e
.
getMessage
());
}
...
...
@@ -720,7 +720,7 @@ public class TMSCommunicator implements WsMsgReceivedListener {
if
(
ObjectUtil
.
isNotEmpty
(
shortValue
)
&&
shortValue
.
equals
(
"true"
))
{
//查找库存中是否有此物料,如果数量不足返回2003,否则返回2002
TMSPart
p
=
tmsUtil
.
GetPnTMSPart
(
requestCmd
,
parts
,
item
);
TMSPart
p
=
tmsUtil
.
GetPnTMSPart
(
requestCmd
,
parts
,
item
,
rackList
);
// List<InventoryItem> itmes = dataCache.getInventoryByPN(item.getPn());
// TMSPart p;
// if (itmes.size() > 0) {
...
...
@@ -966,11 +966,12 @@ public class TMSCommunicator implements WsMsgReceivedListener {
List
<
StoragePos
>
lockPosList
=
storagePosManager
.
findLockPos
(
liteOrder
.
getOrderNo
());
//同步锁定物料状态
tmsUtil
.
SyncReelLockS
(
lockPosList
);
List
<
TMSPart
>
parts
=
tmsUtil
.
GetReserveList
(
requestCmd
,
liteOrder
,
lockPosList
);
List
<
TMSPart
>
parts
=
tmsUtil
.
GetReserveList
(
requestCmd
,
liteOrder
,
lockPosList
,
rackList
);
ResponseDeliveryReserve
(
responseCmd
,
requestID
,
parts
,
liteOrder
.
getOrderNo
(),
""
);
OrderProEndUpdateState
(
requestCmd
,
requestID
,
liteOrder
);
return
;
}
}
...
...
@@ -1057,6 +1058,7 @@ public class TMSCommunicator implements WsMsgReceivedListener {
ResponseDeliveryReserveByLocation
(
responseCmd
,
requestID
,
Locations
,
rCodes
,
liteOrder
.
getOrderNo
());
OrderProEndUpdateState
(
requestCmd
,
requestID
,
liteOrder
);
return
;
}
catch
(
Exception
exception
)
{
log
.
error
(
requestCmd
+
" error:"
+
exception
.
toString
());
...
...
@@ -1092,13 +1094,20 @@ public class TMSCommunicator implements WsMsgReceivedListener {
posResultMap
.
put
(
ri
,
TMS_Code
.
CODE_2041
);
log
.
info
(
requestCmd
+
" : ri="
+
ri
+
", 未找到物料,出库失败,code="
+
TMS_Code
.
CODE_2041
);
}
else
{
posResultMap
.
put
(
ri
,
TMS_Code
.
CODE_1011
);
//默认是开始送货时失败
//如果物料已被锁定,不能再次锁定
if
(
ObjectUtil
.
isNotEmpty
(
pos
.
getBarcode
().
getLockId
())){
posResultMap
.
put
(
ri
,
TMS_Code
.
CODE_2003
);
log
.
info
(
requestCmd
+
" : ri="
+
ri
+
", 已被锁定:"
+
pos
.
getBarcode
().
getLockId
()+
",无法再次锁定,code="
+
TMS_Code
.
CODE_2003
);
}
else
{
posResultMap
.
put
(
ri
,
TMS_Code
.
CODE_1011
);
//默认是开始送货时失败
LiteOrderItem
item
=
new
LiteOrderItem
();
item
.
setRi
(
pos
.
getBarcode
().
getBarcode
());
item
.
setNeedNum
(
1
);
liteOrderItems
.
add
(
item
);
log
.
info
(
requestCmd
+
" : ri="
+
ri
+
", 可出库,准备创建工单"
);
}
LiteOrderItem
item
=
new
LiteOrderItem
();
item
.
setRi
(
pos
.
getBarcode
().
getBarcode
());
item
.
setNeedNum
(
1
);
liteOrderItems
.
add
(
item
);
log
.
info
(
requestCmd
+
" : ri="
+
ri
+
", 可出库,准备创建工单"
);
}
}
...
...
@@ -1129,6 +1138,7 @@ public class TMSCommunicator implements WsMsgReceivedListener {
ResponseDeliveryReserveByReelCd
(
responseCmd
,
requestID
,
ReelCds
,
rCodes
,
liteOrder
.
getOrderNo
());
OrderProEndUpdateState
(
requestCmd
,
requestID
,
liteOrder
);
return
;
}
catch
(
Exception
exception
)
{
log
.
error
(
requestCmd
+
" error:"
+
exception
.
toString
());
...
...
@@ -1267,7 +1277,7 @@ public class TMSCommunicator implements WsMsgReceivedListener {
* @param OrderCode
*/
public
void
ResponseDeliveryReserveByLocation
(
String
topic
,
int
requestID
,
List
<
TMSPos
>
Locations
,
List
<
Integer
>
ResultCodes
,
String
OrderCode
)
{
ResponseDeliveryReserve
ByLocation
(
topic
,
requestID
,
Locations
,
ResultCodes
,
OrderCode
);
ResponseDeliveryOrder
ByLocation
(
topic
,
requestID
,
Locations
,
ResultCodes
,
OrderCode
);
// Map<String, Object> dataMap = new HashMap<>();
// dataMap.put("Topic", topic);
// dataMap.put("RequestID", requestID);
...
...
src/main/java/com/neotel/smfcore/custom/hanwha/handler/TMSUtil.java
查看文件 @
612eb27
...
...
@@ -160,7 +160,7 @@ public class TMSUtil {
}
LiteOrder
liteOrder
=
new
LiteOrder
(
orderNo
,
items
);
liteOrder
.
setSource
(
"DeliveryOrder"
);
liteOrder
.
setSource
(
requestCmd
);
LiteOrder
dbOrder
=
liteOrderManager
.
findByOrderNo
(
liteOrder
.
getOrderNo
());
if
(
dbOrder
!=
null
)
{
orderNo
=
orderNo
+
"-"
+
requestID
;
...
...
@@ -173,8 +173,10 @@ public class TMSUtil {
return
null
;
}
}
liteOrder
.
setCidList
(
rackList
);
log
.
info
(
requestCmd
+
":新建工单:"
+
liteOrder
.
getOrderNo
()
+
",共"
+
items
.
size
()
+
"条工单详情,自动执行:"
+
autoOut
);
liteOrder
=
liteOrderManager
.
createWithItems
(
liteOrder
);
liteOrderCache
.
addOrderToMap
(
liteOrder
);
if
(
autoOut
)
{
try
{
...
...
@@ -193,8 +195,10 @@ public class TMSUtil {
return
liteOrder
;
}
public
TMSPart
GetPnTMSPart
(
String
requestCmd
,
List
<
TMSPart
>
parts
,
LiteOrderItem
item
){
List
<
InventoryItem
>
items
=
dataCache
.
getInventoryByPN
(
item
.
getPn
());
public
TMSPart
GetPnTMSPart
(
String
requestCmd
,
List
<
TMSPart
>
parts
,
LiteOrderItem
item
,
List
<
String
>
rackIdS
){
List
<
InventoryItem
>
items
=
dataCache
.
getInventoryByPN
(
item
.
getPn
(),
rackIdS
);
TMSPart
p
;
if
(
items
.
size
()
>
0
)
{
...
...
@@ -226,7 +230,7 @@ public class TMSUtil {
}
return
p
;
}
public
List
<
TMSPart
>
GetReserveList
(
String
requestCmd
,
LiteOrder
liteOrder
,
List
<
StoragePos
>
lockPosList
)
{
public
List
<
TMSPart
>
GetReserveList
(
String
requestCmd
,
LiteOrder
liteOrder
,
List
<
StoragePos
>
lockPosList
,
List
<
String
>
rackIds
)
{
List
<
TMSPart
>
parts
=
new
ArrayList
<>();
...
...
@@ -254,40 +258,19 @@ public class TMSUtil {
}
if
(
curroNum
<=
0
)
{
//预留失败
// List<InventoryItem> items = dataCache.getInventoryByPN(item.getPn());
TMSPart
p
=
GetPnTMSPart
(
requestCmd
,
parts
,
item
);
// if (items.size() > 0 ) {
//
// //如果库存的料都是已锁定的,需要返回2003 .已锁定的需要更新缓存
// InventoryItem inventoryItem=items.get(0);
// if(inventoryItem.getLockReel()>=inventoryItem.getStockReel()) {
// //如果是有库存但是库存不足,发送2001
// p = TMSPart.newBean(parts.size(), item.getPn(), "", item.getNeedNum(), item.getOutNum(), TMS_Code.CODE_2003, "", "");
// log.info(requestCmd + " pn=" + item.getPn() + ",出库失败缺料,库存不足:code=" + TMS_Code.CODE_2003);
// }
// else {
// //如果是有库存但是库存不足,发送2001
// p = TMSPart.newBean(parts.size(), item.getPn(), "", item.getNeedNum(), item.getOutNum(), TMS_Code.CODE_2001, "", "");
// log.info(requestCmd + " pn=" + item.getPn() + ",出库失败缺料,库存不足:code=" + TMS_Code.CODE_2001);
// }
// } else {
//
// //判断pn是否存在,存在返回2002,否则返回2003
// Component component = componentManager.findOneByPN(item.getPn());
// if (component == null) {
// //pn不存在,返回2002
// p = TMSPart.newBean(parts.size(), item.getPn(), "", item.getNeedNum(), item.getOutNum(), TMS_Code.CODE_2002, "", "");
// log.info(requestCmd + " pn=" + item.getPn() + ",出库失败缺料,PN不存在:code=" + TMS_Code.CODE_2002);
// } else {
// //库存无此物料,发送2003
// p = TMSPart.newBean(parts.size(), item.getPn(), "", item.getNeedNum(), item.getOutNum(), TMS_Code.CODE_2003, "", "");
// log.info(requestCmd + " pn=" + item.getPn() + ",出库失败缺料,库存无此料:code=" + TMS_Code.CODE_2003);
// }
// }
parts
.
add
(
p
);
String
shortValue
=
item
.
getAppend
(
"shortage"
);
if
(
ObjectUtil
.
isEmpty
(
shortValue
))
{
shortValue
=
""
;
}
if
(
ObjectUtil
.
isNotEmpty
(
shortValue
)
&&
shortValue
.
equals
(
"true"
))
{
//查找库存中是否有此物料,如果数量不足返回2003,否则返回2002
TMSPart
p
=
GetPnTMSPart
(
requestCmd
,
parts
,
item
,
rackIds
);
parts
.
add
(
p
);
}
else
{
TMSPart
p
=
TMSPart
.
newBean
(
parts
.
size
(),
item
.
getPn
(),
""
,
item
.
getNeedNum
(),
item
.
getOutNum
(),
TMS_Code
.
CODE_2010
,
""
,
""
);
log
.
info
(
requestCmd
+
" pn="
+
item
.
getPn
()
+
",未出库成功:code="
+
TMS_Code
.
CODE_2010
);
parts
.
add
(
p
);
}
}
...
...
@@ -431,7 +414,7 @@ public class TMSUtil {
List
<
StoragePos
>
lockPosList
=
storagePosManager
.
findLockPos
(
order
.
getOrderNo
());
log
.
info
(
"ProcessOrder: 当前有未关闭的工单 ,工单出库失败"
);
tmsParts
=
GetReserveList
(
"ProcessOrder"
,
order
,
lockPosList
);
tmsParts
=
GetReserveList
(
"ProcessOrder"
,
order
,
lockPosList
,
order
.
getCidList
()
);
}
else
{
//工单出库
String
result
=
liteOrderCache
.
checkOutLiteOrder
(
order
.
getOrderNo
(),
false
,
false
,
true
);
...
...
src/main/java/com/neotel/smfcore/custom/hanwha/handler/bean/TMSPart.java
查看文件 @
612eb27
...
...
@@ -30,7 +30,7 @@ public class TMSPart extends TMSPos implements Serializable {
//过期日期
public
String
ExpiryDate
=
""
;
//登录韩华系统的日期。
TODO 需要保存下来
//登录韩华系统的日期。
需要保存下来,需要登录日期做先进先出。 已保存在最后一次入库时间中
public
String
WarehousingDate
=
""
;
public
static
TMSPart
newBean
(
int
index
,
String
pn
,
String
barcode
,
int
requestCount
,
int
responseCount
,
String
resultCode
,
String
cid
,
String
posName
)
{
...
...
src/main/java/com/neotel/smfcore/custom/hanwha/handler/bean/TMSPos.java
查看文件 @
612eb27
...
...
@@ -22,6 +22,8 @@ public class TMSPos implements Serializable {
private
String
PosId
;
public
Map
<
String
,
Object
>
getJson
()
{
Map
<
String
,
Object
>
jObject
=
new
HashMap
<>();
...
...
@@ -58,10 +60,14 @@ public class TMSPos implements Serializable {
}
public
String
getPosName
(){
return
getRowID
()+
"_"
+
getColID
();
return
getR
ackID
()+
"_"
+
getR
owID
()+
"_"
+
getColID
();
}
public
void
setPosName
(
String
posName
)
{
//如果库位是 01_01_11_05 , 01作为rackID, 01_11是 RowID, 05 是ColId
// 1284M02_01_11_01
//如果下划线分割只有三列,第一列是rackID, 第二列是rowID,第三列是colID
setPosId
(
posName
);
if
(
ObjectUtil
.
isEmpty
(
posName
))
{
setColID
(
""
);
...
...
@@ -69,57 +75,71 @@ public class TMSPos implements Serializable {
return
;
}
//posName=rowId_colId
// int index=posName.indexOf('_');
// if(index>0){
// setRowID(posName.substring(0,index-1));
// setColID(posName.substring(index+1,posName.length()-1));
// }
String
rowId
=
proStr
(
posName
)
;
String
rowId
=
""
;
String
colId
=
""
;
String
spit
=
"_"
;
String
[]
posArray
=
posName
.
split
(
spit
);
if
(
posArray
.
length
>=
3
)
{
if
(
posArray
.
length
==
4
)
{
rowId
=
posArray
[
1
]
+
spit
+
posArray
[
2
];
colId
=
posArray
[
3
];
}
else
if
(
posArray
.
length
==
3
)
{
rowId
=
posArray
[
1
];
colId
=
posArray
[
2
];
}
else
{
spit
=
"-"
;
posArray
=
posName
.
split
(
spit
);
}
try
{
if
(
posArray
.
length
==
3
)
{
rowId
=
Convert
.
toInt
(
proStr
(
posArray
[
1
]))
+
""
;
colId
=
Convert
.
toInt
(
posArray
[
2
])
+
""
;
}
else
if
(
posArray
.
length
==
4
){
rowId
=
Convert
.
toInt
(
proStr
(
posArray
[
1
]+
posArray
[
2
]))
+
""
;
colId
=
Convert
.
toInt
(
posArray
[
3
])
+
""
;
}
}
catch
(
Exception
ex
)
{
log
.
error
(
"解析出错:"
+
ex
.
toString
());
try
{
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
());
if
(
posArray
.
length
==
4
)
{
rowId
=
posArray
[
1
]
+
spit
+
posArray
[
2
];
colId
=
posArray
[
3
];
}
else
if
(
posArray
.
length
==
3
)
{
rowId
=
posArray
[
1
];
colId
=
posArray
[
2
];
}
else
{
try
{
if
(
posArray
.
length
==
3
)
{
rowId
=
Convert
.
toInt
(
proStr
(
posArray
[
1
]))
+
""
;
colId
=
Convert
.
toInt
(
posArray
[
2
])
+
""
;
}
else
if
(
posArray
.
length
==
4
)
{
rowId
=
Convert
.
toInt
(
proStr
(
posArray
[
1
]
+
posArray
[
2
]))
+
""
;
colId
=
Convert
.
toInt
(
posArray
[
3
])
+
""
;
}
}
}
catch
(
Exception
ex
)
{
log
.
error
(
"解析出错:"
+
ex
.
toString
());
try
{
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
());
}
}
// setColID(posArray[posArray.length - 1]);
// setRowID(posArray[posArray.length - 2]);
}
catch
(
Exception
ex2
)
{
log
.
error
(
"解析位置的行列失败 "
+
posName
+
","
+
ex2
.
toString
());
}
catch
(
Exception
ex2
)
{
log
.
error
(
"解析位置的行列失败 "
+
posName
+
","
+
ex2
.
toString
());
}
}
}
}
setRowID
(
proStr
(
rowId
));
setColID
(
proStr
(
colId
));
setRowID
(
rowId
);
setColID
(
colId
);
}
private
String
proStr
(
String
input
)
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论