Commit c4bea40f LN

韩华接口调试修改

1 个父辈 06d99ddb
......@@ -427,10 +427,13 @@ public class LiteOrderCache {
boolean singleOut = false;
return checkOutLiteOrder(orderNo,outBom,singleOut);
}
public synchronized String checkOutLiteOrder(String orderNo, boolean outBom,boolean singleOut ) {
return checkOutLiteOrder(orderNo,outBom,singleOut,false);
}
/**
* 执行工单出库
*/
public synchronized String checkOutLiteOrder(String orderNo, boolean outBom,boolean singleOut) {
public synchronized String checkOutLiteOrder(String orderNo, boolean outBom,boolean singleOut,boolean needCheck) {
LiteOrder cacheOrder = liteOrderMap.get(orderNo);
if (cacheOrder == null) {
......@@ -462,6 +465,7 @@ public class LiteOrderCache {
return checkOutOrder(cacheOrder).getMsgKey();
}
log.info("开始执行工单[" + orderNo + "] outBom=" + outBom);
cacheOrder.setTaskReelCount(0);
cacheOrder.setTaskFinishedTime(-1);
......@@ -474,9 +478,13 @@ public class LiteOrderCache {
//liteOrderMap.put(cacheOrder.getOrderNo(), cacheOrder);
int taskReelCount = 0;
CHECKOUT_TYPE checkoutType = dataCache.getCheckOutType();
List<String> availableStorageIds = dataCache.getAvailableStorageIds();
if(needCheck&&(shortageCheck(cacheOrder,outBom))) {
return "smfcore.order.out.noTask";
}
List<String> availableStorageIds = dataCache.getAvailableStorageIds();
//其他出库模式一次性全部生成任务
for (LiteOrderItem orderItem : cacheOrder.getOrderItems()) {
orderItem.setOutNum(0);
......@@ -570,6 +578,91 @@ public class LiteOrderCache {
}
return "";
}
public boolean shortageCheck(LiteOrder cacheOrder, boolean outBom) {
String orderNo = cacheOrder.getOrderNo();
boolean shortReel=false;
try {
List<String> availableStorageIds = dataCache.getAvailableStorageIds();
CHECKOUT_TYPE checkoutType = dataCache.getCheckOutType();
log.info("工单[" + orderNo + "]出库前需要进行缺料检查");
//其他出库模式一次性全部生成任务
List<LiteOrderItem> newItems = new ArrayList<>();
for (LiteOrderItem orderItem : cacheOrder.getOrderItems()) {
//剩余未出数量
Float totalNum = orderItem.getNeedNum() * cacheOrder.getOrderTimes();
int remainNum = totalNum.intValue() - orderItem.getTotalOutNum();
//剩余未出盘数
int remainReelCount = orderItem.getNeedReelCount() - orderItem.getTotalOutReelCount();
Collection<String> excludePosIds = excludeOutPosIds();
//此PN未完成
if (remainNum > 0 || remainReelCount > 0) {
if (outBom) {
//套料出库,设置剩余数量为1,这样就只会出一盘
remainNum = 1;
remainReelCount = 0;
}
int assignNum = 0;
int assignReelCount = 0;
while (assignNum < remainNum || assignReelCount < remainReelCount) {
String partNumber = orderItem.getPn();
String reelId = orderItem.getRi();
String mpn = orderItem.getMpn();
StoragePos pos = null;
if (!Strings.isNullOrEmpty(reelId)) {
//RI
pos = storagePosManager.getByBarcode(reelId);
if (pos == null) {
log.error("工单[" + orderNo + "]RI出库时,未找到料盘[" + reelId + "],返回缺料");
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());
}
if (pos == null) {
shortReel=true;
log.error("工单[" + orderNo + "]未找到可以出库的物料PN=[" + partNumber + "],返回缺料");
orderItem.addAppendDate("shortage","true");
liteOrderItemManager.save(orderItem);
break;
} else {
assignNum = assignNum + pos.getBarcode().getAmount();
assignReelCount = assignReelCount + 1;
excludePosIds.add(pos.getPosName());
}
}
}
newItems.add(orderItem);
}
} catch (Exception ex) {
log.info("工单[" + orderNo + "]缺料检查出错:" + ex.toString());
}
if(shortReel){
cacheOrder.setClosed(true);
cacheOrder.setStatus(LITEORDER_STATUS.CLOSED);
liteOrderManager.save(cacheOrder);
liteOrderMap.put(cacheOrder.getOrderNo(), cacheOrder);
log.info("工单[" + orderNo + "]缺料,直接关闭工单 ");
}
return shortReel;
}
/**
* 防止仓位任务重复,需要排除掉已经分配掉的出库仓位
*/
......
......@@ -103,6 +103,20 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li
*/
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 "";
}
/**
* 出库是否满足要求,已出库数量大于需求数量
*/
......
......@@ -31,7 +31,7 @@ public class MyWebSocketClient extends WebSocketClient {
@Override
public void onMessage(String s) {
log.info("onMessage: "+s);
// log.info("onMessage: "+s);
if(msgReceivedListener!=null){
msgReceivedListener.onMsgReceived(s);
}
......
......@@ -11,7 +11,6 @@ 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;
......@@ -55,7 +54,6 @@ public class HanwhaApiHandler extends BaseSmfApiListener {
@Override
public boolean isForThisApi(String apiName) {
return apiName != null && apiName.equalsIgnoreCase("hanwha") && TMSCommunicator.isEnable();
}
@Autowired
......@@ -104,6 +102,10 @@ public class HanwhaApiHandler extends BaseSmfApiListener {
if (result.size() > 0) {
String pn = result.get(0).getPartName();
String code = result.get(0).getReelCode();
// 2024-05-23 14:15:45.749 INFO [TMSApis.java:473] - PostJson, url=[http://192.168.101.96:8082/webservice/RequestGetPartInfo],
// send=[{"data":{"RequestID":0,"ReelCode":"20180710184319-001","Indate":"2024-05-23 14:15:45"}}],
// response=[{"RequestID":0,"Data":[{"PartName":"Z2203061201A","ReelCode":"20180710184319-001","Count":5000}],"error":null}]
boolean needS = false;
if (ObjectUtil.isNotEmpty(pn)) {
barcode.setPartNumber(pn);
......@@ -198,6 +200,7 @@ public class HanwhaApiHandler extends BaseSmfApiListener {
if (storage == null) {
continue;
}
storageIds.add(storage.getId());
String type = "Storage";
if (storage.isNLShelf() || storage.isNLPShelf() || storage.isNLMShelf() || storage.isShelf()) {
type = "Rack";
......
......@@ -4,7 +4,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.common.exception.ApiException;
import com.neotel.smfcore.common.utils.DateUtil;
import com.neotel.smfcore.common.utils.HttpHelper;
import com.neotel.smfcore.common.utils.JsonUtil;
import com.neotel.smfcore.common.utils.JsonUtil;
import com.neotel.smfcore.custom.hanwha.handler.bean.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
......@@ -33,7 +33,8 @@ public class TMSApis {
Map<String, Object> sendData = new HashMap<>();
sendData.put("data", dataMap);
String responseStr = PostJson(url, sendData);
if (!ObjectUtil.isNotEmpty(responseStr)) {
if (ObjectUtil.isNotEmpty(responseStr)) {
// {"RequestID":0,"Data":[{"PartName":"Z2203061201A","ReelCode":"20180710184319-001","Count":5000}],"error":null}
Map<String, Object> dataMap2 = JsonUtil.toMap(responseStr);
List<Object> jArray = (List<Object>) dataMap2.get("Data");
......@@ -142,7 +143,7 @@ public class TMSApis {
Map<String, Object> sendData = new HashMap<>();
sendData.put("data", dataMap);
String responseStr = PostJson(url, sendData);
if (!ObjectUtil.isNotEmpty(responseStr)) {
if (ObjectUtil.isNotEmpty(responseStr)) {
List<Object> resList = JsonUtil.toList(responseStr, Object.class);
for (Object obj : resList) {
Map<String, Object> map = JsonUtil.toMap(JsonUtil.toJsonStr(obj));
......@@ -473,4 +474,5 @@ public class TMSApis {
log.info("PostJson, url=["+url+"],send=["+JsonUtil.toJsonStr(sendData)+"],response=["+responseStr+"]");
return responseStr;
}
}
......@@ -71,9 +71,6 @@ public class TMSCommunicator implements WsMsgReceivedListener {
TMSCommunicator.configApiPort = configPort;
}
@Autowired
private TMSApis apis;
@Autowired
private DataCache dataCache;
......@@ -212,11 +209,11 @@ public class TMSCommunicator implements WsMsgReceivedListener {
SendData(map);
}
/**
* 权限验证API列表
*/
@Autowired
private SmfApi smfApi;
// /**
// * 权限验证API列表
// */
// @Autowired
// private SmfApi smfApi;
@Autowired
private TMSApis tmsApis;
......@@ -231,6 +228,9 @@ public class TMSCommunicator implements WsMsgReceivedListener {
SyncReelData(allUsedPoss);
SyncDeliveryReserveState( );
// List<TMSPart> result= tmsApis.RequestGetPartInfo(0,"20180126153040-001");
// onMsgReceived("{\"PartNames\":[\"Z2203021401A\",\"20180711092420-002\",\"20180710181845-001\"],\"Counts\":[5000,1,1],\"TowerLamp\":false,\"Topic\":\"RequestDeliveryOrder\",\"id\":2,\"uid\":439570}");
// onMsgReceived("{\"PartNames\":[\"Z2203021401A\",\"20180711092420-002\",\"20180710181845-001\"],\"Counts\":[5000,1,1],\"TowerLamp\":false,\"Topic\":\"RequestDeliveryOrder\",\"id\":1,\"uid\":472393}");
}
});
......@@ -243,33 +243,63 @@ public class TMSCommunicator implements WsMsgReceivedListener {
}
log.info("WebSocket 已连接,开始同步物料信息 RequestSyncPartReelPosInfo");
List<TMSPartReelPos> list = new ArrayList<>();
for (Map<String, StoragePos> map : allUsedPosList) {
// 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;
//// }
// }
// }
Map<String, Storage> allStorage = dataCache.getAllStorage();
for (Storage storage :
allStorage.values()) {
List<TMSPartReelPos> list = new ArrayList<>();
List<StoragePos> allPos = storagePosManager.findByStorage(storage.getId());
if (storage.isNLShelf() ) {
for (StoragePos pos :
allPos) {
if (pos.getBarcode() == null) {
TMSPartReelPos bean = TMSPartReelPos.newBean("", "", -1,
storage.getCid(), pos.getPosName(), 4, -1, -1);
list.add(bean);
} else {
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);
}
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;
// if(list.size()>=10){
// break;
// }
}
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);
log.info("RequestSyncPartReelPosInfo storageCID="+storage.getCid()+", count="+list.size());
}
}
List<TMSPart> result = tmsApis.RequestSyncPartReelPosInfo(0, list);
}
public void SyncStorageConnectionInfo(String[] cids,Integer[] statusList) {
if (!TMSCommunicator.isEnable()) {
......@@ -303,21 +333,24 @@ public class TMSCommunicator implements WsMsgReceivedListener {
status = bean.getStatus();
}
}
String conCode = TMS_Code.CODE_1020;
if (status <= 0) {
//初始化失败
conCode = TMS_Code.CODE_0002;
} else if (status == 1) {
conCode = TMS_Code.CODE_1020;
} else if (status <= 4) {
//报警
conCode = TMS_Code.CODE_1024;
} else if (status == 5) {
conCode = TMS_Code.CODE_1023;
} else {
//忙碌
conCode = TMS_Code.CODE_1010;
String conCode = "0";
// if (status <= 0) {
// //初始化失败
// conCode = TMS_Code.CODE_0002;
// } else if (status == 1) {
// conCode = TMS_Code.CODE_1020;
// } else if (status <= 4) {
// //报警
// conCode = TMS_Code.CODE_1024;
// } else if (status == 5) {
// conCode = TMS_Code.CODE_1023;
// } else {
// //忙碌
// conCode = TMS_Code.CODE_1010;
// }
if(status>=1){
conCode="2";
}
storageIds.add(storage.getCid());
storageTypes.add(type);
......@@ -366,24 +399,32 @@ public class TMSCommunicator implements WsMsgReceivedListener {
//查找工单的所有任务
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;//已完成
for (DataLog task :
dataLogs) {
// if(ObjectUtil.isNotEmpty(item.getPn())&&task.getPartNumber().equals(task.getPartNumber())){
//
// }else if(ObjectUtil.isNotEmpty(item.getRi())&&task.getBarcode().equals(task.getBarcode())){
//
// }else{
// continue;
// }
//是工单出库任务
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);
}
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);
......@@ -428,7 +469,7 @@ public class TMSCommunicator implements WsMsgReceivedListener {
String reelCode;
int count;
log.info("onMsgReceived: requestID=["+requestID+"],message:["+message+"],Topic=["+topic+"]");
log.info("onMsgReceived: requestID=["+requestID+"],Topic=["+topic+"],message:["+message+"],");
switch (topic) {
case "RequestDeliveryOrder":
......@@ -501,8 +542,9 @@ public class TMSCommunicator implements WsMsgReceivedListener {
case "NotifyLog":
break;
default:
// log.error("onMsgReceived:未找到对应的TOPIC: Topic=["+topic+"],requestID=["+requestID+"],message:["+message+"]");
log.error("onMsgReceived:未找到对应的TOPIC: Topic=["+topic+"],requestID=["+requestID+"],message:["+message+"]");
// log.error("onMsgReceived:未找到对应的TOPIC: Topic=["+topic+"] ");
return;
}
}
......@@ -546,7 +588,7 @@ public class TMSCommunicator implements WsMsgReceivedListener {
if (autoOut) {
try {
liteOrderCache.checkOutLiteOrder(liteOrder.getOrderNo(), false);
liteOrderCache.checkOutLiteOrder(liteOrder.getOrderNo(), false,false,true);
liteOrder = liteOrderCache.getLiteOrder(liteOrder.getOrderNo());
} catch (ValidateException ex) {
log.error("RequestDelivery 自动执行工单[" + liteOrder.getOrderNo() + "] error:" + ex.toString());
......@@ -589,6 +631,7 @@ public class TMSCommunicator implements WsMsgReceivedListener {
}
LiteOrder liteOrder = createOrder(requestID, liteOrderItems, soName, true);
//能够出库成功返回2010,库存不足范围2002 Out Of Part
liteOrder = liteOrderCache.getLiteOrder(liteOrder.getOrderNo());
if (liteOrder != null) {
List<DataLog> dataLogs = taskService.getAllTasks();
......@@ -613,19 +656,36 @@ public class TMSCommunicator implements WsMsgReceivedListener {
}
if (curroNum <= 0) {
//未出库
TMSPart p = TMSPart.newBean(item.getPn(), "", item.getNeedNum(), item.getOutNum(), TMS_Code.CODE_2019, "", "");
log.info("RequestDeliveryOrder pn="+item.getPn()+",出库失败:code="+TMS_Code.CODE_2019);
parts.add(p);
//如果缺料返回2002,否则还是返回2010
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, "", "");
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, "", "");
log.info("RequestDeliveryOrder pn="+item.getPn()+",未出库成功:code="+TMS_Code.CODE_2010);
parts.add(p);
}
}
}
ResponseDeliveryOrder(requestID, parts, liteOrder.getOrderNo());
tmsReserve=GetOrderInfo(liteOrder);
List<TMSReserve> tmsReserves=new ArrayList<>();
tmsReserves.add(tmsReserve);
ResponseUpdateDeliveryReserveState(requestID,tmsReserves,0);
//如果工单执行中,发送ResponseUpdateDeliveryReserveState,否则不需要
if(liteOrder.isClosed()){
log.info("RequestDeliveryOrder 工单已关闭,不需要发送 发送ResponseUpdateDeliveryReserveState");
}else{
tmsReserve=GetOrderInfo(liteOrder);
List<TMSReserve> tmsReserves=new ArrayList<>();
tmsReserves.add(tmsReserve);
ResponseUpdateDeliveryReserveState(requestID,tmsReserves,0);
}
}
......@@ -661,16 +721,16 @@ public class TMSCommunicator implements WsMsgReceivedListener {
String posName = tmsPos.getPosName();
if (storage == null || ObjectUtil.isEmpty(posName)) {
posResultMap.put("", TMS_Code.CODE_2019);
posResultMap.put("", TMS_Code.CODE_2002);
continue;
}
StoragePos pos = storagePosManager.getByPosName(posName);
if (pos == null) {
log.info("RequestDeliveryOrderByLocation : cid="+cid+", pos="+posName+",未找到库位号,出库结果:code="+TMS_Code.CODE_2019 );
posResultMap.put(posName, TMS_Code.CODE_2019);
log.info("RequestDeliveryOrderByLocation : cid="+cid+", pos="+posName+",未找到库位号,出库结果:code="+TMS_Code.CODE_2002 );
posResultMap.put(posName, TMS_Code.CODE_2002);
} else if (pos.getBarcode() == null) {
log.info("RequestDeliveryOrderByLocation : cid="+cid+", pos="+posName+",库位为空,出库失败,结果:code="+TMS_Code.CODE_2019 );
posResultMap.put(posName, TMS_Code.CODE_2041);
log.info("RequestDeliveryOrderByLocation : cid="+cid+", pos="+posName+",库位为空,出库失败,结果:code="+TMS_Code.CODE_2002 );
posResultMap.put(posName, TMS_Code.CODE_2002);
} else {
posResultMap.put(posName, TMS_Code.CODE_1011); //默认是开始送货时失败
......@@ -974,7 +1034,7 @@ public class TMSCommunicator implements WsMsgReceivedListener {
for (TMSReserve Reserve : ReserveList) {
Map<String, Object> dataMap2 = new HashMap<>();
dataMap2.put("ReserveCode", Reserve.getReserveCode());
dataMap2.put("ResultCode", Reserve.getReserveCode());
dataMap2.put("ResultCode", Reserve.getResultCode());
dataMap2.put("Date", Reserve.getDate());
List<Object> jArray2 = new ArrayList<>();
for (TMSPart part : Reserve.getPartList()) {
......
package com.neotel.smfcore.custom.hanwha.handler.bean;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
......@@ -44,39 +45,48 @@ public class TMSPos implements Serializable {
// setRowID(posName.substring(0,index-1));
// setColID(posName.substring(index+1,posName.length()-1));
// }
String rowId = proStr(posName);
String colId = "";
String spit = "_";
String[] posArray = posName.split(spit);
if (posArray.length >= 2) {
if (posArray.length >= 3) {
} else {
spit = "-";
posArray = posName.split(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());
}
if (posArray.length == 3) {
rowId = Convert.toInt(posArray[1]) + "";
colId = Convert.toInt(posArray[2]) + "";
}
setRowID(proStr(rowId));
setColID(proStr(colId));
} 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 ex) {
log.error("解析位置的行列失败 " + posName + "," + ex.toString());
} catch (Exception ex2) {
log.error("解析位置的行列失败 " + posName + "," + ex2.toString());
}
}
setRowID(proStr(rowId));
setColID(proStr(colId));
}
private String proStr(String input) {
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!