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