From 25b96182ecf21d325ce560a9b9d1f4f3e0ef55b2 Mon Sep 17 00:00:00 2001
From: 354798ggg <1074825718@qq.com>
Date: 星期日, 06 八月 2023 21:25:39 +0800
Subject: [PATCH] 材料信息调整

---
 product-server-project-base/src/main/java/com/product/base/service/MaterialManagerService.java |   30 +++++++++++++++++++++++++++++-
 1 files changed, 29 insertions(+), 1 deletions(-)

diff --git a/product-server-project-base/src/main/java/com/product/base/service/MaterialManagerService.java b/product-server-project-base/src/main/java/com/product/base/service/MaterialManagerService.java
index 281a158..482b519 100644
--- a/product-server-project-base/src/main/java/com/product/base/service/MaterialManagerService.java
+++ b/product-server-project-base/src/main/java/com/product/base/service/MaterialManagerService.java
@@ -33,10 +33,38 @@
 	 * @return
 	 */
 	public DataTableEntity getMaterialTypeTree() {
-		return baseDao.listTable(CmnConst.PRODUCT_SYS_DICT, "dict_name=?", new Object[] {CmnConst.MATERIAL_TYPE});
+		return baseDao.listTable(CmnConst.PRODUCT_PROJECT_BASE_MATERIAL_TYPE);
 	}
 	
 	/**
+	 * 	鏂板鏉愭枡绫诲瀷
+	 * @param fse
+	 * @return
+	 */
+	public String saveMaterialType(FieldSetEntity fse) {
+		if (BaseUtil.strIsNull(fse.getUUID())) {
+			FieldSetEntity fseMaxValue = baseDao.getFieldSetEntityBySQL("SELECT (MAX(material_type_value) + 1) material_type_value FROM product_project_base_material_type", new Object[] {}, false);
+			fse.setValue(CmnConst.MATERIAL_TYPE_VALUE, fseMaxValue.getString(CmnConst.MATERIAL_TYPE_VALUE));
+		} else {
+			if ("0".equals(fse.getString(CmnConst.IS_USED))) {
+				StringBuilder sb = new StringBuilder(256);
+				sb.append("SELECT SUM(num)num FROM ( ")
+				.append(" select COUNT(*)num from product_project_budget A  where a.material_type=? ")
+				.append(" UNION ALL ")
+				.append(" select COUNT(*)num from product_project_base_material WHERE  FIND_IN_SET (?,material_type)>0 ")
+				.append(" )A ");
+				FieldSetEntity fseCount = baseDao.getFieldSetEntityBySQL(sb.toString(), new Object[] { fse.getString("material_type_value"),fse.getString("material_type_value") }, false);
+				if (fseCount.getInteger("num")<1) {
+					baseDao.executeUpdate("DELETE FROM product_project_base_material_type WHERE uuid=?", new Object[] {fse.getUUID()});
+					return fse.getUUID();
+				}
+			}
+		}
+		baseDao.saveFieldSetEntity(fse);
+		return fse.getUUID();
+	} 
+	
+	/**
 	 * 	鍒嗛〉鑾峰彇鏉愭枡淇℃伅
 	 * @param fse
 	 * @return

--
Gitblit v1.9.2