| | |
| | | * @return ApsMaterialStorageManagement 返回获取到的库存信息对象,如果没有找到,则返回null |
| | | */ |
| | | @Override |
| | | public ApsMaterialStorageManagement getRdsStorage(String plant, String itemCode){ |
| | | ApsMaterialStorageManagement ams=null; |
| | | public Optional<ApsMaterialStorageManagement> getRdsStorage(String plant, String itemCode){ |
| | | // 尝试从Redis中获取库存信息 |
| | | JSONObject materialStorage = (JSONObject)redisTemplate.opsForValue().get("MaterialStorage:Material_"+plant+"_"+itemCode); |
| | | String key = "MaterialStorage:Material_" + plant + "_" + itemCode; |
| | | JSONObject materialStorage = (JSONObject)redisTemplate.opsForValue().get(key); |
| | | if(materialStorage!=null){ |
| | | // 如果Redis中有缓存,将其转换为ApsMaterialStorageManagement对象并返回 |
| | | ams = materialStorage.toJavaObject(ApsMaterialStorageManagement.class); |
| | | return ams; |
| | | ApsMaterialStorageManagement ams= materialStorage.toJavaObject(ApsMaterialStorageManagement.class); |
| | | Optional<ApsMaterialStorageManagement> optional = Optional.ofNullable(ams); |
| | | return optional ; |
| | | }else { |
| | | // 如果Redis中没有缓存,创建查询参数对象 |
| | | ApsMaterialStorageManagement storageParam = new ApsMaterialStorageManagement(); |
| | | storageParam.setItemNumber(itemCode); |
| | | storageParam.setApplicableFactories(plant); |
| | | // 从数据库中查询库存信息 |
| | | Optional<ApsMaterialStorageManagement> first = apsMaterialStorageManagementMapper.selectApsMaterialStorageManagementList(storageParam).stream() |
| | | .findFirst(); |
| | | if (first.isPresent()){ |
| | | // 如果查询到库存信息,将其缓存到Redis中 |
| | | ams = first.get(); |
| | | redisTemplate.opsForValue().set("MaterialStorage:Material_"+plant+"_"+itemCode,JSONObject.parseObject(JSON.toJSONString(ams))); |
| | | } |
| | | Optional<ApsMaterialStorageManagement> first = getItemStorage( plant, itemCode); |
| | | first.ifPresent(apsMaterialStorageManagement -> |
| | | redisTemplate.opsForValue().set(key, JSONObject.parseObject(JSON.toJSONString(apsMaterialStorageManagement))) |
| | | ); |
| | | return first; |
| | | } |
| | | // 返回库存信息对象 |
| | | return ams; |
| | | } |
| | | |
| | | /** |