Commit 09c282a7 sunke

感应料架优化

1 个父辈 9cb5f8a9
...@@ -389,6 +389,7 @@ public class DeviceController { ...@@ -389,6 +389,7 @@ public class DeviceController {
} }
pos.setEnabled(false); pos.setEnabled(false);
storagePosManager.save(pos); storagePosManager.save(pos);
dataCache.updateDisablePos(pos);
log.info("屏蔽库位:库位号[" + pos.getId() + "][" + pos.getPosName() + "]barcode[" + barcode + "]"); log.info("屏蔽库位:库位号[" + pos.getId() + "][" + pos.getPosName() + "]barcode[" + barcode + "]");
DeviceMessageUtil.addEnabledPosMessage(pos,""); DeviceMessageUtil.addEnabledPosMessage(pos,"");
......
...@@ -94,6 +94,11 @@ public class DataCache { ...@@ -94,6 +94,11 @@ public class DataCache {
*/ */
private static Map<String,List<String>> usedPosNameMap = new ConcurrentHashMap<>(); private static Map<String,List<String>> usedPosNameMap = new ConcurrentHashMap<>();
/**
* 禁用库位名称列表
*/
private static Set<String> disabledPosNameSet;
@PostConstruct @PostConstruct
public void initialize() { public void initialize() {
settings = getSettings(); settings = getSettings();
...@@ -382,6 +387,39 @@ public class DataCache { ...@@ -382,6 +387,39 @@ public class DataCache {
} }
} }
/**
* 获取禁用库位缓存
*/
public Set<String> getDisabledPosNameSet(){
initDisabledPosNameSet();
return disabledPosNameSet;
}
/**
* 初始化禁用库位缓存
*/
private synchronized void initDisabledPosNameSet(){
if(disabledPosNameSet == null){
disabledPosNameSet = new HashSet<>();
List<StoragePos> disabledPosList = storagePosManager.findDisabled();
for (StoragePos disabledPos : disabledPosList) {
disabledPosNameSet.add(disabledPos.getPosName());
}
log.info("加载禁用库位缓存,共" + disabledPosNameSet.size() + "个");
}
}
/**
* 更新禁用库位缓存
*/
public void updateDisablePos(StoragePos pos){
initDisabledPosNameSet();
if(pos.isEnabled()){
disabledPosNameSet.remove(pos.getPosName());
}else{
disabledPosNameSet.add(pos.getPosName());
}
}
/** /**
* 出库时清除使用库位列表 * 出库时清除使用库位列表
......
...@@ -225,6 +225,7 @@ public class StoragePosController { ...@@ -225,6 +225,7 @@ public class StoragePosController {
} }
pos.setEnabled(enabledDto.isEnabled()); pos.setEnabled(enabledDto.isEnabled());
storagePosManager.save(pos); storagePosManager.save(pos);
dataCache.updateDisablePos(pos);
log.info("启用禁用库位:库位号[" + pos.getId() + "][" + pos.getPosName() + "]=" + enabledDto.isEnabled()); log.info("启用禁用库位:库位号[" + pos.getId() + "][" + pos.getPosName() + "]=" + enabledDto.isEnabled());
DeviceMessageUtil.addEnabledPosMessage(pos,SecurityUtils.getCurrentUsername()); DeviceMessageUtil.addEnabledPosMessage(pos,SecurityUtils.getCurrentUsername());
...@@ -254,6 +255,7 @@ public class StoragePosController { ...@@ -254,6 +255,7 @@ public class StoragePosController {
String enabledStr=""; String enabledStr="";
if(pos.isEnabled()!= saveDto.isEnabled()){ if(pos.isEnabled()!= saveDto.isEnabled()){
pos.setEnabled(saveDto.isEnabled()); pos.setEnabled(saveDto.isEnabled());
dataCache.updateDisablePos(pos);
enabledStr=saveDto.isEnabled()?",启用库位":",禁用库位"; enabledStr=saveDto.isEnabled()?",启用库位":",禁用库位";
DeviceMessageUtil.addEnabledPosMessage(pos,SecurityUtils.getCurrentUsername()); DeviceMessageUtil.addEnabledPosMessage(pos,SecurityUtils.getCurrentUsername());
} }
......
...@@ -68,4 +68,6 @@ public interface IStoragePosManager extends IBaseManager<StoragePos> { ...@@ -68,4 +68,6 @@ public interface IStoragePosManager extends IBaseManager<StoragePos> {
List<StoragePos> getSameSizeContinuityEmptyPosList(Storage storage, Barcode barcode) throws ValidateException; List<StoragePos> getSameSizeContinuityEmptyPosList(Storage storage, Barcode barcode) throws ValidateException;
List<StoragePos> findByBarcodesAndPartNums(List<String> storageIds, List<String> partNums, List<String> reelIds); List<StoragePos> findByBarcodesAndPartNums(List<String> storageIds, List<String> partNums, List<String> reelIds);
List<StoragePos> findDisabled();
} }
...@@ -598,4 +598,11 @@ public class StoragePosManagerImpl implements IStoragePosManager { ...@@ -598,4 +598,11 @@ public class StoragePosManagerImpl implements IStoragePosManager {
return storagePosDao.findByQuery(query); return storagePosDao.findByQuery(query);
} }
@Override
public List<StoragePos> findDisabled(){
Criteria c = Criteria.where("enabled").is(false);//不可用;
Query query = new Query(c);
return storagePosDao.findByQuery(query);
}
} }
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!