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.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.Func; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; /** * 新增时默认值属性赋值 * * @author ludc * @date 2023/5/6 */ public class DefaultAttrAssimtUtil { /** * 新增时填充默认值 * @param object 继承了BaseModel的实体对象 * @param 返回值的类型 * @param btmName 业务类型 * @return * @throws VciBaseException */ public static T addDefaultAttrAssimt(T object, String btmName) throws VciBaseException { BaseModel baseModel = object; try { baseModel.setOid(VciBaseUtil.getPk()); baseModel.setCreateTime(new Date()); baseModel.setNameOid(VciBaseUtil.getPk()); baseModel.setLastModifyTime(new Date()); baseModel.setTs(new Date()); baseModel.setRevisionOid(VciBaseUtil.getPk()); baseModel.setBtmname(btmName); baseModel.setCreator(AuthUtil.getUserAccount()); baseModel.setFirstR("1"); baseModel.setFirstV("1"); baseModel.setLastR("1"); baseModel.setLastV("1"); baseModel.setRevisionSeq(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.getUserAccount()); baseModel.setRevisionValue("1"); baseModel.setRevisionRule("1"); baseModel.setTenantId(AuthUtil.getTenantId()); }catch (VciBaseException e){ e.printStackTrace(); } return (T)baseModel; } /** * 修改时填充默认值 * @param object 继承了BaseModel的实体对象 * @param 返回值的类型 * @return * @throws VciBaseException */ public static 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(AuthUtil.getUserAccount()); }catch (VciBaseException e){ e.printStackTrace(); } return (T)baseModel; } /** * 新增时填充默认值 * @param object 继承了BaseModel的实体对象 * @param 返回值的类型 * @return * @throws VciBaseException */ public static T copplyDefaultAttrAssimt(Map dataMap, T object) throws VciBaseException { BaseModel baseModel = object; try { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); baseModel.setOid(dataMap.getOrDefault("OID","")); baseModel.setId(dataMap.getOrDefault("ID","")); Map 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("CREATETIME",""); if(createTimeObj!=null) { String createTime = createTimeObj.toString(); baseModel.setCreateTime(chageStringToDate(createTime)); } baseModel.setNameOid(dataMap.getOrDefault("NAMEOID","")); Object lastModifyTimeObj=dataMap.getOrDefault("LASTMODIFYTIME",""); if(lastModifyTimeObj!=null) { String lastModifyTime = lastModifyTimeObj.toString(); baseModel.setLastModifyTime(chageStringToDate(lastModifyTime)); } Object tsObj=dataMap.getOrDefault("TS",""); if(tsObj!=null) { String ts = tsObj.toString(); baseModel.setTs(chageStringToDate(ts)); } baseModel.setRevisionOid(dataMap.getOrDefault("REVISIONOID","")); //用户id ; 要求改成了账号 // String userId = AuthUtil.getUserId().toString(); baseModel.setBtmname(dataMap.getOrDefault("BTMNAME","")); baseModel.setCreator(dataMap.getOrDefault("CREATOR","")); baseModel.setFirstR(dataMap.getOrDefault("FIRSTR","")); baseModel.setFirstV(dataMap.getOrDefault("FIRSTV","")); baseModel.setLastR(dataMap.getOrDefault("LASTR","")); baseModel.setLastV(dataMap.getOrDefault("LASTV","")); Object revisionseq =dataMap.getOrDefault("REVISIONSEQ",""); if(revisionseq!=null){ baseModel.setRevisionSeq(chageStringToInt(revisionseq.toString())); } baseModel.setOwner(dataMap.getOrDefault("OWNER","")); Object versionseq =dataMap.getOrDefault("VERSIONSEQ",""); if(versionseq!=null){ baseModel.setVersionSeq(chageStringToInt(versionseq.toString())); } baseModel.setVersionRule(dataMap.getOrDefault("VERSIONRULE","")); baseModel.setVersionValue(dataMap.getOrDefault("VERSIONVALUE","")); baseModel.setRevisionOid(dataMap.getOrDefault("REVISIONOID","")); baseModel.setLastModifier(AuthUtil.getUser().getAccount()); baseModel.setLcStatus(dataMap.getOrDefault("LCSTATUS","")); baseModel.setName(dataMap.getOrDefault("NAME","")); baseModel.setTenantId(dataMap.getOrDefault("TENADTID","")); baseModel.setDescription(dataMap.getOrDefault("DESCRIOTION","")); baseModel.setCopyFromVersion(dataMap.getOrDefault("COPYFROMVERSION","")); Object secretgrade=dataMap.get("SECRETGRADE"); if(secretgrade!=null){ baseModel.setSecretGrade(chageStringToInt(secretgrade.toString())); } }catch (VciBaseException e){ e.printStackTrace(); } 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; } }