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.utils.AuthUtil; import java.lang.reflect.Field; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; 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().toUpperCase()); baseModel.setCreateTime(new Date()); baseModel.setNameOid(VciBaseUtil.getPk()); baseModel.setLastModifyTime(new Date()); baseModel.setTs(new Date()); baseModel.setRevisionOid(VciBaseUtil.getPk()); //用户id String userId = AuthUtil.getUserId().toString(); baseModel.setBtmname(btmName); baseModel.setCreator(userId); baseModel.setFirstR("1"); baseModel.setFirstV("1"); baseModel.setLastR("1"); baseModel.setLastV("1"); baseModel.setRevisionSeq(1); baseModel.setOwner("1"); baseModel.setVersionSeq(1); baseModel.setVersionRule("0"); baseModel.setVersionValue("1"); baseModel.setRevisionOid(VciBaseUtil.getPk()); baseModel.setLastModifier(userId); }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(userId); }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","")); Object createTimeObj=dataMap.getOrDefault("CREATETIME",""); String createTime= createTimeObj.toString(); baseModel.setCreateTime(chageStringToDate(createTime)); baseModel.setNameOid(dataMap.getOrDefault("NAMEOID","")); Object lastModifyTimeObj=dataMap.getOrDefault("LASTMODIFYTIME",""); String lastModifyTime= lastModifyTimeObj.toString(); baseModel.setLastModifyTime(chageStringToDate(lastModifyTime)); Object tsObj=dataMap.getOrDefault("TS",""); 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","")); baseModel.setRevisionSeq(chageStringToInt(dataMap.getOrDefault("REVISIONSEQ",""))); baseModel.setOwner(dataMap.getOrDefault("OWNER","")); baseModel.setVersionSeq(chageStringToInt(dataMap.getOrDefault("VERSIONSEQ",""))); baseModel.setVersionRule(dataMap.getOrDefault("VERSIONRULE","")); baseModel.setVersionValue(dataMap.getOrDefault("VERSIONVALUE","")); baseModel.setRevisionOid(dataMap.getOrDefault("REVISIONOID","")); baseModel.setLastModifier(userId); }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; } }