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 org.springblade.core.tool.utils.Func;
|
|
import java.lang.reflect.Field;
|
import java.math.BigDecimal;
|
import java.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.Locale;
|
import java.util.Map;
|
|
/**
|
* 新增时默认值属性赋值
|
*
|
* @author ludc
|
* @date 2023/5/6
|
*/
|
public class DefaultAttrAssimtUtil {
|
|
/**
|
* 新增时填充默认值
|
* @param object 继承了BaseModel的实体对象
|
* @param <T> 返回值的类型
|
* @param btmName 业务类型
|
* @return
|
* @throws VciBaseException
|
*/
|
public static <T extends BaseModel> 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());
|
// 用户id
|
// String userId = AuthUtil.getUserId().toString();
|
baseModel.setBtmname(btmName);
|
baseModel.setCreator(AuthUtil.getUser().getAccount());
|
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.getUser().getAccount());
|
baseModel.setRevisionValue("1");
|
baseModel.setRevisionRule("1");
|
baseModel.setTenantId(AuthUtil.getTenantId());
|
}catch (VciBaseException e){
|
e.printStackTrace();
|
}
|
return (T)baseModel;
|
}
|
|
/**
|
* 修改时填充默认值
|
* @param object 继承了BaseModel的实体对象
|
* @param <T> 返回值的类型
|
* @return
|
* @throws VciBaseException
|
*/
|
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();
|
// 要求改成账号
|
String account = AuthUtil.getUserAccount();
|
baseModel.setLastModifier(account);
|
}catch (VciBaseException e){
|
e.printStackTrace();
|
}
|
return (T)baseModel;
|
}
|
|
/**
|
* 新增时填充默认值
|
* @param object 继承了BaseModel的实体对象
|
* @param <T> 返回值的类型
|
* @return
|
* @throws VciBaseException
|
*/
|
public static <T extends BaseModel> T copplyDefaultAttrAssimt(Map<String,String> 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<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("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());
|
|
}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;
|
}
|
}
|