From 564295458c720206db9b5194b90481b711f4b010 Mon Sep 17 00:00:00 2001
From: CZT <czt18638530771@163.com>
Date: 星期三, 11 十月 2023 12:09:22 +0800
Subject: [PATCH] 更改配置及筒仓偏移量

---
 igds-core/src/main/java/com/ld/igds/view/service/BuildingService.java |   42 ++++++++++++++++++++++++++++++++----------
 1 files changed, 32 insertions(+), 10 deletions(-)

diff --git a/igds-core/src/main/java/com/ld/igds/view/service/BuildingService.java b/igds-core/src/main/java/com/ld/igds/view/service/BuildingService.java
index 11ae2f6..f3c0ec2 100644
--- a/igds-core/src/main/java/com/ld/igds/view/service/BuildingService.java
+++ b/igds-core/src/main/java/com/ld/igds/view/service/BuildingService.java
@@ -3,13 +3,10 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.stream.Collectors;
-
 import org.apache.commons.lang3.StringUtils;
 import org.hibernate.Session;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
-
 import com.bstek.bdf2.core.orm.hibernate.HibernateDao;
 import com.bstek.dorado.data.entity.EntityState;
 import com.bstek.dorado.data.entity.EntityUtils;
@@ -25,6 +22,8 @@
  */
 @Component
 public class BuildingService extends HibernateDao {
+
+	String BEAN_ID = "core.buildingService";
 
 	@Autowired
     private RedisUtil redisUtil;
@@ -62,7 +61,7 @@
 			}
 			data.setCompanyId(ContextUtil.getCompanyId());
 			session.saveOrUpdate(data);
-			refreshCache(data.getCompanyId());
+			refreshCache(data.getCompanyId(), data.getDeptId());
 		} finally {
 			session.flush();
 			session.close();
@@ -102,7 +101,7 @@
 				}
 			}
 			
-			refreshCache(items.get(0).getCompanyId());
+			refreshCache(items.get(0).getCompanyId(), items.get(0).getDeptId());
 		} finally {
 			session.flush();
 			session.close();
@@ -121,23 +120,46 @@
 		List<Building> result = (List<Building>) redisUtil.get(key);
 
 		if (null == result) {
-			refreshCache(companyId);
+			refreshCache(companyId, deptId);
 			
 			return null;
 		}
 
 		if(null == deptId) return result;
 		
-		return result.stream().filter(item -> item.getDeptId().equals(deptId))
-				.collect(Collectors.toList());
+		return result;
+	}
+
+	@SuppressWarnings("unchecked")
+	public Building getCacheBuilding(String companyId, String deptId, String buildingId) {
+		if(StringUtils.isEmpty(companyId)){
+			companyId = ContextUtil.getCompanyId();
+		}
+
+		String key = RedisConst.buildKey(companyId, RedisConst.KEY_BUILDING_LIST);
+
+		List<Building> result = (List<Building>) redisUtil.get(key);
+
+		if (null == result) {
+			refreshCache(companyId, deptId);
+
+			return null;
+		}
+		for (Building building : result) {
+			if(buildingId.equals(building.getId())){
+				return building;
+			}
+		}
+		return null;
 	}
 	
 	
-	public void refreshCache(String companyId) {
+	public void refreshCache(String companyId, String deptId) {
 		Map<String, Object> parameter = new HashMap<String, Object>();
 		parameter.put("companyId", companyId);
+		parameter.put("deptId", deptId);
 		List<Building> list = this.loadData(parameter);
 		
-		redisUtil.set(RedisConst.buildKey(companyId, RedisConst.KEY_BUILDING_LIST),list);
+		redisUtil.set(RedisConst.buildKey(companyId, deptId, RedisConst.KEY_BUILDING_LIST),list);
 	}
 }

--
Gitblit v1.9.3