From 203223860baa19deb6860eb2ba3181910d662980 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期四, 17 四月 2025 14:22:59 +0800
Subject: [PATCH] 1. 轮灌组被终止时灌溉时长为实际数值。2. 计划历史表按照创建时间倒排序。3. 发布计划时判断是否同项目下未完成计划,是否其他项目下使用了本计划的轮灌组且计划未完成。4. 根据计划ID获取计划最新状态。

---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailablePool.java |   59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 59 insertions(+), 0 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailablePool.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailablePool.java
new file mode 100644
index 0000000..ba5b121
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailablePool.java
@@ -0,0 +1,59 @@
+package com.dy.common.mw.protocol;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+public class PrefixedDataAvailablePool {
+	
+	protected static HashMap<String, List<PrefixedDataAvailable>> pool = new HashMap<>() ;
+	
+	/**
+	 * 鐢熸垚瀵硅薄
+	 * 绾跨▼闈炲畨鍏ㄧ殑锛屾墍浠ョ敤鍒皊ynchronized
+	 * @param clazz 棰勫鐞嗙被
+	 * @return 棰勫鐞嗙被瀵硅薄
+	 */
+	public static synchronized PrefixedDataAvailable getInstance(Class<?> clazz)throws Exception {
+		if(pool == null){
+			pool = new HashMap<>() ;
+		}
+		String className = clazz.getName() ;
+		PrefixedDataAvailable obj = null ;
+		
+		List<PrefixedDataAvailable> list = pool.get(className) ;
+		if(list == null){
+			list = new ArrayList<>() ;
+			pool.put(className, list) ;
+		}else if(list.size() > 0){
+			obj = list.get(0) ;
+			list.remove(0) ;
+		}
+		
+		if(obj == null){
+			try {
+				obj = (PrefixedDataAvailable)clazz.getDeclaredConstructor().newInstance() ;
+				//obj = (PrefixedDataAvailable)clazz.newInstance();
+			} catch (Exception e) {
+				throw new Exception( "鐢�" + className + "鐢熸垚瀹炰緥澶辫触锛�");
+			}
+		}
+		return obj ;
+	}
+	
+	/**
+	 * 鎶婂璞℃斁鍥炴睜涓�
+	 * @param clazz 棰勫鐞嗙被
+	 * @param obj  棰勫鐞嗙被瀵硅薄
+	 */
+	public static void freeInstance(Class<?> clazz, PrefixedDataAvailable obj) {
+		if(pool != null){
+			String className = clazz.getName() ;
+			List<PrefixedDataAvailable> list = pool.get(className) ;
+			if(list != null){
+				list.add(obj) ;
+			}
+		}
+	}	
+	
+}

--
Gitblit v1.8.0