Commit ba4afaed LN

库位锁定时key中的.替换为__

1 个父辈 85ee94db
package com.neotel.smfcore.common.utils;
import com.google.common.collect.Lists;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.collect.Maps;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.common.bean.ReelLockPosInfo;
......@@ -8,7 +8,6 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import java.util.*;
......@@ -44,26 +43,33 @@ public class ReelLockPosUtil {
* @param reelLockPosInfo
*/
public static synchronized ReelLockPosInfo addReelLockPosInfo(ReelLockPosInfo reelLockPosInfo , List<String> cidList) {
log.info("为[" + reelLockPosInfo.getBarcode() + "]锁定库位[" + reelLockPosInfo.getLockPosName() + "]");
ReelLockPosInfo oldLocInfo = reelLocKPosMap.get(reelLockPosInfo.getBarcode());
if (oldLocInfo != null && oldLocInfo.getLockPosName() != null) {
if(cidList.contains(oldLocInfo.getCid())){
log.info("[" + oldLocInfo.getBarcode() + "]已有锁定库位[" + oldLocInfo.getLockPosName() + "],返回之前锁定的库位");
return oldLocInfo;
}else{
//锁定库位不在cid列表中
log.info("[" + oldLocInfo.getBarcode() + "]已有锁定库位[" + oldLocInfo.getLockPosName() + "],Cid["+oldLocInfo.getCid()+"]不在["+String.join(",",cidList)+"]中,清理原有锁定库位");
reelLocKPosMap.remove(reelLockPosInfo.getBarcode());
String key = processBarcode(reelLockPosInfo.getBarcode());
log.info("为[" + reelLockPosInfo.getBarcode() + "]锁定库位[" + reelLockPosInfo.getLockPosName() + "],key=[" + key + "]");
ReelLockPosInfo oldLocInfo = reelLocKPosMap.get(key);
try {
if (oldLocInfo != null && oldLocInfo.getLockPosName() != null) {
if (cidList.contains(oldLocInfo.getCid())) {
log.info("[" + oldLocInfo.getBarcode() + "]已有锁定库位[" + oldLocInfo.getLockPosName() + "],返回之前锁定的库位");
return oldLocInfo;
} else {
//锁定库位不在cid列表中
log.info("[" + oldLocInfo.getBarcode() + "]已有锁定库位[" + oldLocInfo.getLockPosName() + "],Cid[" + oldLocInfo.getCid() + "]不在[" + String.join(",", cidList) + "]中,清理原有锁定库位");
reelLocKPosMap.remove(key);
}
}
}
for (ReelLockPosInfo locInfo : reelLocKPosMap.values()) {
if (locInfo.getLockPosId().equals(reelLockPosInfo.getLockPosId()) && !locInfo.getBarcode().equals(reelLockPosInfo.getBarcode())) {
log.info("为[" + reelLockPosInfo.getBarcode() + "]锁定库位[" + reelLockPosInfo.getLockPosName() + "]时,库位已被[" + locInfo.getBarcode() + "]锁定");
return null;
for (ReelLockPosInfo locInfo : reelLocKPosMap.values()) {
if (locInfo.getLockPosId().equals(reelLockPosInfo.getLockPosId()) && !locInfo.getBarcode().equals(key)) {
log.info("为[" + reelLockPosInfo.getBarcode() + "]锁定库位[" + reelLockPosInfo.getLockPosName() + "]时,库位已被[" + locInfo.getBarcode() + "]锁定");
return null;
}
}
reelLocKPosMap.put(key, reelLockPosInfo);
dataCache.updateCache(REEL_LOCK_POS_MAP_KEY, reelLocKPosMap);
} catch (Exception exception) {
log.error("为[" + reelLockPosInfo.getBarcode() + "]锁定库位[" + reelLockPosInfo.getLockPosName() + "],key=[" + key + "]出错:"+exception.toString());
}
reelLocKPosMap.put(reelLockPosInfo.getBarcode(), reelLockPosInfo);
dataCache.updateCache(REEL_LOCK_POS_MAP_KEY, reelLocKPosMap);
return reelLockPosInfo;
}
......@@ -74,7 +80,7 @@ public class ReelLockPosUtil {
String lockBarcode = reelLockPosInfo.getBarcode();
if (org.apache.logging.log4j.util.Strings.isNotBlank(lockBarcode)) {
if (lockBarcode.equals(barcode)) {
if (lockBarcode.equals(processBarcode(barcode) )) {
return reelLockPosInfo;
}
}
......@@ -89,7 +95,7 @@ public class ReelLockPosUtil {
* 清理条码锁定库位信息
*/
public static void removeReelLockPosInfo(String barcode) {
reelLocKPosMap.remove(barcode);
reelLocKPosMap.remove(processBarcode(barcode));
dataCache.updateCache(REEL_LOCK_POS_MAP_KEY, reelLocKPosMap);
}
......@@ -100,7 +106,7 @@ public class ReelLockPosUtil {
* @return
*/
public static String getReelLockPosId(String barcode) {
ReelLockPosInfo lockPosInfo = reelLocKPosMap.get(barcode);
ReelLockPosInfo lockPosInfo = reelLocKPosMap.get(processBarcode(barcode));
if (lockPosInfo != null) {
return lockPosInfo.getLockPosId();
}
......@@ -117,4 +123,18 @@ public class ReelLockPosUtil {
}
return lockPosIds;
}
private static String processBarcode(String str) {
if (ObjectUtil.isEmpty(str)) {
return str;
}
if (str.contains(".")) {
String res = str.replace(".", "__");
return res;
} else {
return str;
}
}
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!