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. ArcGis Javascript API (V3.6)加载天地图

    Arcgis的Javascript api开发很活跃,不知不觉都发布了3.6的版本了.该版本基于dojo 1.8.3开发的. 从dojo 1.8开始,AMD机制用得越来越多了,而且require([& ...

  2. win8 iis安装及网站发布

    win8 iis安装及网站发布 系统:win8 环境:vs2012 一:安装IIS 比较win7的安装来说,多选了几个钩钩,不然会报错,偶就遇到这样的错误. 控制面板->程序和功能->启动 ...

  3. C#分页类

    using System.Linq; using System.Collections.Generic; namespace CommonLibrary { public class PagedLis ...

  4. MVC项目中应用富文本编辑器UEditor中的几个坑

    UEditor:百度出品 官网连接:http://ueditor.baidu.com/website/ 错误现象:在官网上复制到本地后,上传图片功能不能用, 控制台提示:“请求后台配置项http错误, ...

  5. UVa 10815 Andy's First Dictionary

    感觉这道题要比之前几个字符串处理的题目难度要大了一些. 题目大意:给若干行字符串,提取出所有单词并去掉重复的,最后按字典顺序输出. 对于输入大致有两种思路,一种是逐个读入字符,遇到字母的话就放到wor ...

  6. LA 3905 Meteor

    给出一些点的初始位置(x, y)及速度(a, b)和一个矩形框,求能同时出现在矩形框内部的点数的最大值. 把每个点进出矩形的时刻分别看做一个事件,则每个点可能对应两个事件,进入事件和离开事件. 按这些 ...

  7. scala学习笔记(6):闭包

    到本章这里,所有函数文本的例子仅参考了传入的参数.例如,(x: Int) => x > 0里,函数体用到的唯一变量,x > 0,是x,被定义为函数参数.然而也可以参考定义在其它地方的 ...

  8. T-SQL备忘(2):聚合函数运算和NULL

    我们看表的数据: 而select AVG(Age) from Member1的结果为27.自己算一下就知道136/6 =22.666.而不是27,因此知道实际上Age为NULL的行没有参与运算.即: ...

  9. JAVA虚拟机内存分配与回收机制

    Java虚拟机(Java Virtual Machine) 简称JVM Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现.Java虚拟机有自己想象中的硬件,如处理器.堆栈.寄存器等 ...

  10. AJax学习一

    1.Ajax的准备工作,就是要先准备好服务器环境. 这边可以有好几种方式,例如服务器工具: http://www.php100.com/html/plugin/ser/2013/0905/91.htm ...