VoToucher

package com.isoftstone.pcis.policy.common.utils;

import com.isoftstone.pcis.policy.common.context.Operator;
import java.util.Date;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;

public class VoToucher
{
  private static final Logger logger = Logger.getLogger(VoToucher.class);

  public static void touchOnCreate(Object vo, String modifyUser, Date modifyTime)
  {
    try
    {
      PropertyUtils.setProperty(vo, "CCrtCde", modifyUser);
      PropertyUtils.setProperty(vo, "CUpdCde", modifyUser);
      PropertyUtils.setProperty(vo, "TCrtTm", modifyTime);
      PropertyUtils.setProperty(vo, "TUpdTm", modifyTime);
    } catch (Exception e) {
      logger.error("设置vo操作人/时间出错:" + vo.getClass().getName() + e.getMessage());
    }
  }

  public static void touchOnCreate(Object vo, String modifyUser) {
    touchOnCreate(vo, modifyUser, new Date());
  }

  public static void touchOnCreate(Object vo, Date modifyTime) {
    touchOnCreate(vo, Operator.getCurrentOperatorCde(), modifyTime);
  }

  public static void touchOnCreate(Object vo) {
    touchOnCreate(vo, Operator.getCurrentOperatorCde(), new Date());
  }

  public static void touch(Object vo, String modifyUser, Date modifyTime)
  {
    try
    {
      String crtCde = (String)PropertyUtils.getProperty(vo, "CCrtCde");
      Date crtTm = (Date)PropertyUtils.getProperty(vo, "TCrtTm");
      if (StringUtils.isEmpty(crtCde)) {
        PropertyUtils.setProperty(vo, "CCrtCde", modifyUser);
      }
      if (crtTm == null) {
        PropertyUtils.setProperty(vo, "TCrtTm", modifyTime);
      }
      PropertyUtils.setProperty(vo, "CUpdCde", modifyUser);
      PropertyUtils.setProperty(vo, "TUpdTm", modifyTime);
    } catch (Exception e) {
      logger.error("更新vo操作人/时间出错:" + vo.getClass().getName() + e.getMessage());
    }
  }

  public static void touch(Object vo, String modifyUser) {
    touch(vo, modifyUser, new Date());
  }

  public static void touch(Object vo, Date modifyTime) {
    touch(vo, Operator.getCurrentOperatorCde(), modifyTime);
  }

  public static void touch(Object vo) {
    touch(vo, Operator.getCurrentOperatorCde(), new Date());
  }

  public static void clearTouch(Object vo)
  {
    try
    {
      PropertyUtils.setProperty(vo, "CCrtCde", null);
      PropertyUtils.setProperty(vo, "TCrtTm", null);
      PropertyUtils.setProperty(vo, "CUpdCde", null);
      PropertyUtils.setProperty(vo, "TUpdTm", null);
    } catch (Exception e) {
      logger.error("清空vo操作人/时间出错:" + vo.getClass().getName() + e.getMessage());
    }
  }
}

VoToucher的更多相关文章

随机推荐

  1. sqlserver重命名字段名称

    EXEC sp_rename 'S2BASE_PRODUCT.[PRODUCT_ID]','TABTYPE_ID','COLUMN';

  2. HDU (线段树 单点更新) I Hate It

    和上一道题没什么变化,只不过把单点增减变成了单点替换,把区间求和变成了区间求最大值. #include <cstdio> #include <algorithm> using ...

  3. USACO全部测试数据

    链接:http://share.weiyun.com/8c37d26066ee9e63147d2af983f24290 密码:YyGL 请使用2345好压解压.

  4. wordpress plugins collection

    1/ simple page ordering 4.8星 wordpress的plugins唯一的好处就是命名简单易懂,这款插件从名称就可以看出来,用来对page页面排序的.只需要在后台page中拖拽 ...

  5. 插件svn简单使用

    首先安装服务器Server 傻瓜式样操作.下一步下一步就这样完成了,选择的是个人版. 然后打开Server的图形化界面:VisualSVN Server Manager Repositories:资源 ...

  6. SQLServer—系统中的内存配置

    前言: 本文讲述32位和64位系统中的内存配置,在SQLServer 2005/2008中,DBA们往往尝试开启AWE来限制内存.但是,在SQLServer2012以后,这个选项将被弃用,所以不能使用 ...

  7. Android init.rc文件格式解析

    /***************************************************************************** * Android init.rc文件格式 ...

  8. UVA 10061 How many zero's and how many digits ? (m进制,阶乘位数,阶乘后缀0)

    题意: 给出两个数字a和b,求a的阶乘转换成b进制后,输出 (1)后缀中有多少个连续的0? (2)数a的b进制表示法中有多少位? 思路:逐个问题解决. 设a!=k.  k暂时不用直接转成b进制. (1 ...

  9. wxWidgets简单的多线程

    #include <wx/wx.h> #include <wx/thread.h> #include <wx/event.h> #include <wx/pr ...

  10. 安装sass时,gem在国内不能安装的解决

    最近在安装SASS的时候,用到gem命令,但是运行出行如下错误!(先声明,安装sass前,要保证自己电脑安装了ruby:ruby -v可以测试下有没有装) 原因是ruby 的gem被和谐了,现在淘宝的 ...