From d02571d59633367ac76b7f58ab38584698b1aa1b Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期四, 17 十月 2024 09:55:37 +0800
Subject: [PATCH] 高级查询中增加范围查询功能

---
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java |  230 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 214 insertions(+), 16 deletions(-)

diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java
index d070f14..9522cb8 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java
@@ -1,14 +1,15 @@
 package com.vci.ubcs.starter.util;
 
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.vci.ubcs.starter.exception.VciBaseException;
 import com.vci.ubcs.starter.revision.model.BaseModel;
 import com.vci.ubcs.starter.web.util.VciBaseUtil;
-import org.apache.poi.ss.formula.functions.T;
+import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
-
-import java.lang.reflect.Field;
-import java.math.BigDecimal;
-import java.util.Date;
+import org.springblade.core.tool.utils.Func;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 /**
  * 鏂板鏃堕粯璁ゅ�煎睘鎬ц祴鍊�
@@ -26,7 +27,7 @@
 	 * @return
 	 * @throws VciBaseException
 	 */
-	public static <T extends BaseModel> T addDefaultAttrAssimt(T object,String btmName) throws VciBaseException {
+	public static <T extends BaseModel> T addDefaultAttrAssimt(T object, String btmName) throws VciBaseException {
 		BaseModel baseModel = object;
 		try {
 			baseModel.setOid(VciBaseUtil.getPk());
@@ -34,21 +35,72 @@
 			baseModel.setNameOid(VciBaseUtil.getPk());
 			baseModel.setLastModifyTime(new Date());
 			baseModel.setTs(new Date());
-			//鐢ㄦ埛id
-			String userId = AuthUtil.getUserId().toString();
+			baseModel.setRevisionOid(VciBaseUtil.getPk());
 			baseModel.setBtmname(btmName);
-			baseModel.setCreator(userId);
+			baseModel.setCreator(AuthUtil.getUser().getAccount());
 			baseModel.setFirstR("1");
 			baseModel.setFirstV("1");
 			baseModel.setLastR("1");
 			baseModel.setLastV("1");
 			baseModel.setRevisionSeq(1);
-			baseModel.setOwner("1");
+			// TODO:鐩墠鍙湁缂栫爜瑙勫垯涓湁鐢ㄥ埌锛屽悗鏈熼渶瑕佸幓鎺夎繖娈典唬鐮佺殑璇濓紝灏辨妸浠栧姞鍦ㄧ紪鐮佽鍒欐柊澧炰腑鍘�
+			if(Func.isBlank(baseModel.getOwner())){
+				// 璁剧疆鎵�鏈夎��
+				baseModel.setOwner(AuthUtil.getUserId().toString());
+			}
 			baseModel.setVersionSeq(1);
 			baseModel.setVersionRule("0");
 			baseModel.setVersionValue("1");
+			baseModel.setRevisionOid(VciBaseUtil.getPk());
+			baseModel.setLastModifier(AuthUtil.getUser().getAccount());
+			baseModel.setRevisionValue("1");
+			baseModel.setRevisionRule("1");
+			baseModel.setTenantId(AuthUtil.getTenantId());
+		}catch (VciBaseException e){
+			e.printStackTrace();
+		}
+		return (T)baseModel;
+	}
+
+	/**
+	 * 褰撳湪澶氱嚎绋嬫祦涓皟鐢ㄦ椂锛岃幏鍙栦笉鍒拌姹傚ご淇℃伅锛�
+	 * 鎵�浠ュ緱鍦ㄥ绾跨▼娴佸闈㈣幏鍙栧埌request
+	 * @param object 缁ф壙浜咮aseModel鐨勫疄浣撳璞�
+	 * @param <T>   杩斿洖鍊肩殑绫诲瀷
+	 * @param btmName  涓氬姟绫诲瀷
+	 * @return
+	 * @throws VciBaseException
+	 */
+	public static <T extends BaseModel> T addDefaultAttrAssimt(T object, String btmName, BladeUser user) throws VciBaseException {
+		BaseModel baseModel = object;
+		try {
+			baseModel.setOid(VciBaseUtil.getPk());
+			baseModel.setCreateTime(new Date());
 			baseModel.setNameOid(VciBaseUtil.getPk());
-			baseModel.setLastModifier(userId);
+			baseModel.setLastModifyTime(new Date());
+			baseModel.setTs(new Date());
+			baseModel.setRevisionOid(VciBaseUtil.getPk());
+			baseModel.setBtmname(btmName);
+			String account = Func.isNotEmpty(user) ? user.getAccount():AuthUtil.getUser().getAccount();
+			baseModel.setCreator(account);
+			baseModel.setFirstR("1");
+			baseModel.setFirstV("1");
+			baseModel.setLastR("1");
+			baseModel.setLastV("1");
+			// TODO:鐩墠鍙湁缂栫爜瑙勫垯涓湁鐢ㄥ埌锛屽悗鏈熼渶瑕佸幓鎺夎繖娈典唬鐮佺殑璇濓紝灏辨妸浠栧姞鍦ㄧ紪鐮佽鍒欐柊澧炰腑鍘�
+			if(Func.isBlank(baseModel.getOwner())){
+				// 璁剧疆鎵�鏈夎��
+				baseModel.setOwner(Func.isNotEmpty(user) ? user.getUserId().toString():AuthUtil.getUserId().toString());
+			}
+			baseModel.setVersionSeq(1);
+			baseModel.setVersionValue("1");
+			baseModel.setVersionRule("0");
+			baseModel.setRevisionSeq(1);
+			baseModel.setRevisionValue("1");
+			baseModel.setRevisionRule("1");
+			baseModel.setRevisionOid(VciBaseUtil.getPk());
+			baseModel.setLastModifier(account);
+			baseModel.setTenantId(Func.isNotEmpty(user) ? user.getTenantId():AuthUtil.getTenantId());
 		}catch (VciBaseException e){
 			e.printStackTrace();
 		}
@@ -65,15 +117,161 @@
 	public static <T extends BaseModel> T updateDefaultAttrAssimt(T object) throws VciBaseException {
 		BaseModel baseModel = object;
 		try {
-			baseModel.setLastModifyTime(new Date());
-			baseModel.setTs(new Date());
-			//鐢ㄦ埛id
-			String userId = AuthUtil.getUserId().toString();
-			baseModel.setLastModifier(userId);
+			Date date = new Date();
+			baseModel.setLastModifyTime(date);
+			baseModel.setTs(date);
+			// 鐢ㄦ埛id
+			// String userId = AuthUtil.getUserId().toString();
+			// 瑕佹眰鏀规垚璐﹀彿
+			baseModel.setLastModifier(AuthUtil.getUser().getAccount());
 		}catch (VciBaseException e){
 			e.printStackTrace();
 		}
 		return (T)baseModel;
 	}
 
+	/**
+	 * 淇敼鏃跺~鍏呴粯璁ゅ�硷細澶氱嚎绋嬫祦涓皟鐢�
+	 * @param object 缁ф壙浜咮aseModel鐨勫疄浣撳璞�
+	 * @param <T>   杩斿洖鍊肩殑绫诲瀷
+	 * @return
+	 * @throws VciBaseException
+	 */
+	public static <T extends BaseModel> T updateDefaultAttrAssimt(T object, BladeUser user) throws VciBaseException {
+		BaseModel baseModel = object;
+		try {
+			baseModel.setLastModifyTime(new Date());
+			baseModel.setTs(new Date());
+			// 鐢ㄦ埛id
+			// String userId = AuthUtil.getUserId().toString();
+			// 瑕佹眰鏀规垚璐﹀彿
+			baseModel.setLastModifier(Func.isNotEmpty(user) ? user.getAccount():AuthUtil.getUser().getAccount());
+		}catch (VciBaseException e){
+			e.printStackTrace();
+		}
+		return (T)baseModel;
+	}
+
+	/**
+	 * 鏂板鏃跺~鍏呴粯璁ゅ�硷細澶氱嚎绋嬫祦涓皟鐢�
+	 * @param object 缁ф壙浜咮aseModel鐨勫疄浣撳璞�
+	 * @param <T>   杩斿洖鍊肩殑绫诲瀷
+	 * @return
+	 * @throws VciBaseException
+	 */
+	public static <T extends BaseModel> T copplyDefaultAttrAssimt(Map<String,String> dataMap, T object,boolean isCase, BladeUser user) throws VciBaseException {
+		BaseModel baseModel = object;
+		baseModel.getData().putAll(dataMap);
+		try {
+			SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+			baseModel.setOid(dataMap.getOrDefault(isCase?"OID":"oid",""));
+			baseModel.setId(dataMap.getOrDefault(isCase?"ID":"id",""));
+			Map<String,Object> newDataMap=new HashMap<>();
+			/*for (String key:dataMap.keySet()){
+				Object value=dataMap.get(key);
+				newDataMap.put(key.toLowerCase(Locale.ROOT),value);
+			}*/
+			/*	dataMap.forEach((key,value)->{
+				newDataMap.put(key.toLowerCase(Locale.ROOT),value);
+			});*/
+			//baseModel.setData((Map)newDataMap);
+			Object createTimeObj=dataMap.getOrDefault(isCase?"CREATETIME":"createtime","");
+			if(createTimeObj!=null) {
+				String createTime = createTimeObj.toString();
+				baseModel.setCreateTime(chageStringToDate(createTime));
+			}
+			baseModel.setNameOid(dataMap.getOrDefault(isCase?"NAMEOID":"nameoid",""));
+
+			Object lastModifyTimeObj=dataMap.getOrDefault(isCase?"LASTMODIFYTIME":"lastmodifytime","");
+			if(lastModifyTimeObj!=null) {
+				String lastModifyTime = lastModifyTimeObj.toString();
+				baseModel.setLastModifyTime(chageStringToDate(lastModifyTime));
+			}
+			Object tsObj=dataMap.getOrDefault(isCase?"TS":"ts","");
+			if(tsObj!=null) {
+				String ts = tsObj.toString();
+				baseModel.setTs(chageStringToDate(ts));
+			}
+			baseModel.setRevisionOid(dataMap.getOrDefault(isCase?"REVISIONOID":"revisionoid",""));
+			//鐢ㄦ埛id ; 瑕佹眰鏀规垚浜嗚处鍙�
+			// String userId = AuthUtil.getUserId().toString();
+			baseModel.setBtmname(dataMap.getOrDefault(isCase?"BTMNAME":"btmname",""));
+			baseModel.setCreator(dataMap.getOrDefault(isCase?"CREATOR":"creator",""));
+			baseModel.setFirstR(dataMap.getOrDefault(isCase?"FIRSTR":"firstr",""));
+			baseModel.setFirstV(dataMap.getOrDefault(isCase?"FIRSTV":"firstv",""));
+			baseModel.setLastR(dataMap.getOrDefault(isCase?"LASTR":"lastr",""));
+			baseModel.setLastV(dataMap.getOrDefault(isCase?"LASTV":"lastv",""));
+			Object revisionseq =dataMap.getOrDefault(isCase?"REVISIONSEQ":"revisionseq","");
+			if(revisionseq!=null){
+				baseModel.setRevisionSeq(chageStringToInt(revisionseq.toString()));
+			}
+
+			baseModel.setOwner(dataMap.getOrDefault(isCase?"OWNER":"owner",""));
+			Object versionseq =dataMap.getOrDefault(isCase?"VERSIONSEQ":"versionseq","");
+			if(versionseq!=null){
+				baseModel.setVersionSeq(chageStringToInt(versionseq.toString()));
+			}
+			baseModel.setVersionRule(dataMap.getOrDefault(isCase?"VERSIONRULE":"versionrule",""));
+			baseModel.setVersionValue(dataMap.getOrDefault(isCase?"VERSIONVALUE":"versionvalue",""));
+
+			baseModel.setRevisionRule(dataMap.getOrDefault(isCase?"REVISIONRULE":"revisionrule",""));
+
+			baseModel.setRevisionOid(dataMap.getOrDefault(isCase?"REVISIONOID":"revisionoid",""));
+			baseModel.setRevisionValue(dataMap.getOrDefault(isCase?"REVISIONVALUE":"revisionvalue",""));
+			baseModel.setLastModifier(Func.isNotEmpty(user) ? user.getAccount():AuthUtil.getUser().getAccount());
+			baseModel.setLcStatus(dataMap.getOrDefault(isCase?"LCSTATUS":"lcstatus",""));
+			baseModel.setName(dataMap.getOrDefault(isCase?"NAME":"name",""));
+			baseModel.setTenantId(dataMap.getOrDefault(isCase?"TENANT_ID":"tenant_id",""));
+			baseModel.setDescription(dataMap.getOrDefault(isCase?"DESCRIPTION":"description",""));
+			baseModel.setCopyFromVersion(dataMap.getOrDefault(isCase?"COPYFROMVERSION":"copyfromversion",""));
+			Object secretgrade=dataMap.get(isCase?"SECRETGRADE":"secretgrade");
+			if(secretgrade!=null){
+				baseModel.setSecretGrade(chageStringToInt(secretgrade.toString()));
+			}
+		}catch (VciBaseException e){
+			e.printStackTrace();
+			throw e;
+		}
+		return (T)baseModel;
+	}
+
+	private static int chageStringToInt(String value){
+		int newValue=0;
+		if(StringUtils.isNotBlank(value)){
+			newValue = Integer.parseInt(value);
+		}
+		return newValue;
+	}
+
+	private static Date chageStringToDate(String value){
+		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+		Date date=new Date();
+		if(StringUtils.isNotBlank(value)){
+			try {
+				date = format.parse(value);
+			} catch (ParseException e) {
+				e.printStackTrace();
+			}
+		}
+		return date;
+	}
+
+	/**
+	 * map瀵硅薄杞崲涓哄皬鍐�
+	 * @param dataMapList
+	 * @param isLowerCase
+	 */
+	public static void mapToLowerCase(List<Map<String,String>> dataMapList, boolean isLowerCase){
+		// 閬嶅巻List涓殑姣忎釜Map
+		for (Map<String, String> map : dataMapList) {
+			Map<String, String> newMap = new HashMap<>();
+			// 閬嶅巻姣忎釜Map涓殑key锛屽苟灏嗗叾杞崲涓哄皬鍐�
+			for (String key : map.keySet()) {
+				newMap.put(isLowerCase ? key.toLowerCase():key.toLowerCase(Locale.ROOT), map.get(key));
+			}
+			// 鐢ㄦ柊鐨凪ap鏇挎崲鏃х殑Map
+			dataMapList.set(dataMapList.indexOf(map), newMap);
+		}
+	}
+
 }

--
Gitblit v1.9.3