package com.vci.ubcs.omd.wrapper; import com.vci.ubcs.omd.cache.EnumCache; import com.vci.ubcs.omd.constant.BtmTypeConstant; import com.vci.ubcs.omd.dto.AttributeDTO; import com.vci.ubcs.omd.entity.Attribute; import com.vci.ubcs.omd.vo.*; import com.vci.ubcs.starter.web.util.VciBaseUtil; import com.vci.ubcs.system.cache.DictBizCache; import org.springblade.core.mp.support.BaseEntityWrapper; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.StringUtil; import java.util.Date; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** * 元数据对象的包装类,返回视图层所需的字段 * * @author LiHang * @date 2023/4/3 */ public class AttributeWrapper extends BaseEntityWrapper { public static AttributeWrapper build() { return new AttributeWrapper(); } /** * do2vo * @param entity pojo * @return 显示对象 */ @Override public AttributeVO entityVO(Attribute entity) { AttributeVO vo = Objects.requireNonNull(BeanUtil.copy(entity, AttributeVO.class)); vo.setTypeValue(EnumCache.getValue(vo.getTypeCode(),vo.getTypeKey())); if (StringUtil.isNotBlank(vo.getReferTypeCode())){ vo.setReferTypeValue(EnumCache.getValue(vo.getReferTypeCode(),vo.getReferTypeKey())); } if (StringUtil.isNotBlank(vo.getDictCode())) { vo.setDictValue(EnumCache.getValue(vo.getDictCode(),vo.getDictKey())); } return vo; } /** * 批量转vo * @param list pojo集合 * @return 显示对象 */ public List listEntityVO(List list) { return list.stream().map(this::entityVO).collect(Collectors.toList()); } /** * 在保存之前要设置默认属性 * @param dto * @return */ public Attribute copyBeforeSave(AttributeDTO dto) { Attribute attribute = BeanUtil.copy(dto, Attribute.class); Objects.requireNonNull(attribute); String currentUser = AuthUtil.getUserAccount(); Date now = new Date(); if (StringUtil.isBlank(dto.getOid())) { attribute.setBtmName(BtmTypeConstant.ATTRIBUTE); attribute.setCreator(currentUser); attribute.setCreateTime(now); attribute.setOwner(currentUser); attribute.setOid(VciBaseUtil.getPk()); } attribute.setLastModifier(currentUser); attribute.setLastModifyTime(now); attribute.setTs(now); return attribute; } }