From c19de84fa332a00c651f28e3a52292fd14f143a1 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期二, 23 九月 2025 17:30:07 +0800
Subject: [PATCH] 陆常丽反应软件系统财务对账时而数据不准确,分析源码,找到bug原因是,财务对账统计只有用户点击后才会触发统计功能,把历史上及当天进行了统计,如果当天统计时未下班,例如是中午触发统计了,而下午又进行了充值售水,但下班后未再点击触发对账统计,那么今天的对账统计完成了但数据不对。编写自动任务,在下半夜进行对账统计。

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

--
Gitblit v1.8.0