123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- package net.lab1024.smartadmin.util;
- import net.lab1024.smartadmin.constant.BpmConst;
- import net.lab1024.smartadmin.module.system.employee.domain.bo.EmployeeBO;
- import net.lab1024.smartadmin.module.system.login.domain.RequestTokenBO;
- import org.apache.commons.beanutils.PropertyUtils;
- import org.springframework.beans.BeanUtils;
- import java.util.Collections;
- import java.util.Date;
- import java.util.List;
- import java.util.stream.Collectors;
- public class SmartBeanUtil {
- /**
- * 复制bean的属性
- *
- * @param source 源 要复制的对象
- * @param target 目标 复制到此对象
- */
- public static void copyProperties(Object source, Object target) {
- BeanUtils.copyProperties(source, target);
- }
- /**
- * 复制对象
- *
- * @param source 源 要复制的对象
- * @param target 目标 复制到此对象
- * @param <T>
- * @return
- */
- public static <T> T copy(Object source, Class<T> target) {
- if(source == null || target == null){
- return null;
- }
- try {
- T newInstance = target.newInstance();
- BeanUtils.copyProperties(source, newInstance);
- return newInstance;
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
- /**
- * 复制list
- *
- * @param source
- * @param target
- * @param <T>
- * @param <K>
- * @return
- */
- public static <T, K> List<K> copyList(List<T> source, Class<K> target) {
- if (null == source || source.isEmpty()) {
- return Collections.emptyList();
- }
- return source.stream().map(e -> copy(e, target)).collect(Collectors.toList());
- }
- /**
- * 复制对象(自动设置操作人员信息)
- *
- * @param source 源 要复制的对象
- * @param target 目标 复制到此对象
- * @param requestToken 登录对象
- * @param <T>
- * @return
- */
- public static <T> T copy(Object source, Class<T> target, RequestTokenBO requestToken) {
- return copy(source, target, requestToken.getEmployeeBO());
- }
- /**
- * 复制对象(自动设置操作人员信息)
- *
- * @param source 源 要复制的对象
- * @param target 目标 复制到此对象
- * @param employeeBO 登录用户
- * @param <T>
- * @return
- */
- public static <T> T copy(Object source, Class<T> target, EmployeeBO employeeBO) {
- if(source == null || target == null){
- return null;
- }
- try {
- T newInstance = target.newInstance();
- BeanUtils.copyProperties(source, newInstance);
- try {
- Object id = PropertyUtils.getProperty(newInstance, "id");
- if (id == null) {
- setInsertInfo(newInstance, employeeBO);
- }else {
- setUpdateInfo(newInstance, employeeBO);
- }
- //setUpdateInfo(newInstance, employeeBO);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return newInstance;
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
- /**
- * 设置默认新增信息
- * @return
- */
- public static void setInsertInfo(Object obj, EmployeeBO employeeBO) {
- if(obj == null){
- return;
- }
- Date date = SmartDateUtil.getDate();;
- try {
- Class type = PropertyUtils.getPropertyType(obj, "createBy");
- if (type == Integer.class) {
- PropertyUtils.setProperty(obj, "createBy", employeeBO.getId().intValue());
- } else if (type == Long.class) {
- PropertyUtils.setProperty(obj, "createBy", employeeBO.getId());
- }else{
- PropertyUtils.setProperty(obj, "createBy", employeeBO.getId().toString());
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- try {
- PropertyUtils.setProperty(obj, "createTime", date);
- } catch (Exception e) {
- e.printStackTrace();
- }
- try {
- PropertyUtils.setProperty(obj, "department", employeeBO.getDepartmentId().toString());
- } catch (Exception e) {
- e.printStackTrace();
- }
- try {
- PropertyUtils.setProperty(obj, "company", employeeBO.getCompanyId().toString());
- } catch (Exception e) {
- e.printStackTrace();
- }
- try {
- PropertyUtils.setProperty(obj, "delFlag", BpmConst.DEL_FLAG_0);
- } catch (Exception e) {
- e.printStackTrace();
- }
- setUpdateInfo(obj,employeeBO);
- }
- /**
- * 设置默认更新信息
- * @return
- */
- public static void setUpdateInfo(Object obj, EmployeeBO employeeBO) {
- if(obj == null){
- return;
- }
- Date date = SmartDateUtil.getDate();
- try {
- Class type = PropertyUtils.getPropertyType(obj, "updateBy");
- if (type == Integer.class) {
- PropertyUtils.setProperty(obj, "updateBy", employeeBO.getId().intValue());
- }else if (type == Long.class) {
- PropertyUtils.setProperty(obj, "updateBy", employeeBO.getId());
- } else {
- PropertyUtils.setProperty(obj, "updateBy", employeeBO.getId().toString());
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- try {
- PropertyUtils.setProperty(obj, "updateTime", date);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
|