Commit bdd22cb3 LN

BUG修改

1 个父辈 bb3bf610
...@@ -96,7 +96,8 @@ public class DataCache { ...@@ -96,7 +96,8 @@ public class DataCache {
/** /**
* 库位占用Map, key为cid,value为已使用的库位列表 * 库位占用Map, key为cid,value为已使用的库位列表
*/ */
private static Map<String, List<StoragePos>> usedPosMap = new ConcurrentHashMap<>(); private static Map<String, Map<String,StoragePos>> usedPosMap = new ConcurrentHashMap<>();
/** /**
* 锡膏料仓冷藏区和回温区使用库位数, key为cid, key为 WarmPos 时value表示回温区使用数量,key为 ColdingPos 时value为冷藏区使用数量 * 锡膏料仓冷藏区和回温区使用库位数, key为cid, key为 WarmPos 时value表示回温区使用数量,key为 ColdingPos 时value为冷藏区使用数量
...@@ -442,42 +443,34 @@ public class DataCache { ...@@ -442,42 +443,34 @@ public class DataCache {
* 出库时清除使用库位列表 * 出库时清除使用库位列表
*/ */
private void removeUsedPosList(String cid, StoragePos pos) { private void removeUsedPosList(String cid, StoragePos pos) {
List<StoragePos> usedPosNameList = getUsedPosList(cid); Map<String, StoragePos> usedPosNameList = getUsedPosList(cid);
usedPosNameList.remove(pos.getPosName());
usedPosMap.put(cid, usedPosNameList);
List<StoragePos> posList = new ArrayList<>();
// usedPosNameList.remove(posName);
Iterator<StoragePos> iterator = usedPosNameList.iterator();
while (iterator.hasNext()) {
StoragePos book = iterator.next();
if (book.getPosName() .equals(pos.getPosName())) {
iterator.remove();
break;
}
}
List<StoragePos> list=new ArrayList<>();
iterator.forEachRemaining(list::add);
usedPosMap.put(cid, list);
} }
/** /**
* 入库时增加使用库位列表 * 入库时增加使用库位列表
*/ */
private void addUsedPosList(String cid, StoragePos pos) { private void addUsedPosList(String cid, StoragePos pos) {
List<StoragePos> usedPosList = getUsedPosList(cid); Map<String,StoragePos> usedPosList = getUsedPosList(cid);
usedPosList.add(pos); usedPosList.put(pos.getPosName(),pos);
usedPosMap.put(cid, usedPosList); usedPosMap.put(cid, usedPosList);
}/** }/**
* 获取设备所有占用的库位名称列表 * 获取设备所有占用的库位名称列表
*/ */
public List<StoragePos> getUsedPosList(String cid) { public Map<String,StoragePos> getUsedPosList(String cid) {
List<StoragePos> allPos = usedPosMap.get(cid); Map<String,StoragePos> allPos = usedPosMap.get(cid);
if (allPos == null) { if (allPos == null) {
allPos=new HashMap<>();
Storage storage = getStorage(cid); Storage storage = getStorage(cid);
if (storage != null) { if (storage != null) {
log.info("加载[" + cid + "]所有已使用库位到缓存"); log.info("加载[" + cid + "]所有已使用库位到缓存");
allPos = storagePosManager.findUsedPosNameByStorageId(storage.getId()); List<StoragePos> posList = storagePosManager.findUsedPosNameByStorageId(storage.getId());
// for (StoragePos pos : allPos) { for (StoragePos pos : posList) {
// posNameList.add(pos.getPosName()); allPos.put(pos.getPosName(),pos);
// } }
usedPosMap.put(cid, allPos); usedPosMap.put(cid, allPos);
} }
} }
...@@ -488,28 +481,30 @@ public class DataCache { ...@@ -488,28 +481,30 @@ public class DataCache {
*/ */
public List<String> getUsedPosNameList(String cid) { public List<String> getUsedPosNameList(String cid) {
List<String> posNameList = new ArrayList<>(); List<String> posNameList = new ArrayList<>();
List<StoragePos> allPos = usedPosMap.get(cid); Map<String,StoragePos> allPos = getUsedPosList(cid);
if (allPos == null) {
Storage storage = getStorage(cid);
if (storage != null) {
log.info("加载[" + cid + "]所有已使用库位到缓存");
allPos = storagePosManager.findUsedPosNameByStorageId(storage.getId());
usedPosMap.put(cid, allPos); for (StoragePos pos : allPos.values()) {
}
}
for (StoragePos pos : allPos) {
posNameList.add(pos.getPosName()); posNameList.add(pos.getPosName());
} }
return posNameList; return posNameList;
} }
public List<List<StoragePos>> getAllUsedPosMap() { public List<Map<String,StoragePos>> getAllUsedPosMap() {
List<List<StoragePos>> posList = new ArrayList<>( ); List<Map<String,StoragePos>> posList = new ArrayList<>();
Set<String> keys = allStorage.keySet();
Set<String> mapKeys = usedPosMap.keySet();
for (String m:
mapKeys) {
if(!keys.contains(m)) {
keys.add(m);
log.error("getAllUsedPosMap CID ["+m+"] add");
}
}
for (String key : for (String key :
allStorage.keySet()) { keys) {
List<StoragePos> list=getUsedPosList(key); Map<String,StoragePos> list = getUsedPosList(key);
if(list.size()>0) { if (list.size() > 0) {
posList.add(list); posList.add(list);
} }
} }
......
...@@ -299,7 +299,7 @@ public class OrderController { ...@@ -299,7 +299,7 @@ public class OrderController {
OrderDto dto = orderMapper.toDto(liteOrder); OrderDto dto = orderMapper.toDto(liteOrder);
List<LiteOrderItem> orderItemDtos = liteOrder.getOrderItems(); List<LiteOrderItem> orderItemDtos = liteOrder.getOrderItems();
List<OrderItemDto> dtos = new ArrayList<>(); List<OrderItemDto> dtos = new ArrayList<>();
List<List<StoragePos>> allPosLists = null; List<Map<String,StoragePos>> allPosLists = null;
for (LiteOrderItem item : orderItemDtos for (LiteOrderItem item : orderItemDtos
) { ) {
OrderItemDto orderItemDto = orderItemMapper.toDto(item); OrderItemDto orderItemDto = orderItemMapper.toDto(item);
...@@ -321,9 +321,9 @@ public class OrderController { ...@@ -321,9 +321,9 @@ public class OrderController {
allPosLists = dataCache.getAllUsedPosMap(); allPosLists = dataCache.getAllUsedPosMap();
} }
try { try {
for (List<StoragePos> list : for (Map<String,StoragePos> list :
allPosLists) { allPosLists) {
for (StoragePos pos : list) { for (StoragePos pos : list.values()) {
boolean isItemPos = false; boolean isItemPos = false;
if (ObjectUtil.isNotEmpty(item.getRi())) { if (ObjectUtil.isNotEmpty(item.getRi())) {
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!