init中

WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);//创建 线程Timer timer = new Timer();timer.schedule(new ReinitializationSerialNumber(wac), getDayTime(),24 * 60 * 60 * 1000);
public Date getDayTime() {Calendar calendar = Calendar.getInstance();calendar.set(Calendar.HOUR_OF_DAY, 23);calendar.set(Calendar.MINUTE, 59);calendar.set(Calendar.SECOND, 59);return calendar.getTime();}

继承TimerTask创建类

package gts.erp.timer;import gts.erp.service.ERPUtilServiceImpl;import java.util.TimerTask;import org.springframework.web.context.WebApplicationContext;public class ReinitializationSerialNumber extends TimerTask{private WebApplicationContext wac;public ReinitializationSerialNumber(WebApplicationContext wac) {this.wac = wac;}public void run() {ERPUtilServiceImpl erpUtilServiceImpl = (ERPUtilServiceImpl)wac.getBean("erpUtilService");erpUtilServiceImpl.reinitializationSerialNumber();}}

执行的方法

public void reinitializationSerialNumber() {// 读取数据 --> TN_SERIAL_NUMBERTableBean serialNumberTablebean = new TableBean();serialNumberTablebean = this.getBaseDAO().queryForTableBean(new ClassPOJO("TN_SERIAL_NUMBER"));// CN_CYCLE_FLAG 是否    年boolean isYear = isYearStart();// CN_CYCLE_FLAG 是否    月boolean isMonth = isMonthStart();// CN_CYCLE_FLAG 是否    周boolean isWeek = isWeekStart();//定义 更新的TableBeanTableBean updateTableBean = new TableBean("TN_SERIAL_NUMBER");//说明该TableBean 是用于更新updateTableBean.setDbTableDataOperationId(TriangleDefinition.DATABASE_TABLE_DATA_OPERATION_UPDATE);for (int i = 0; i < serialNumberTablebean.size(); i++) {RowBean rowBean = serialNumberTablebean.get(i);String cycleFlag = rowBean.getCellBeanValue("CR_CYCLE_FLAG");//类型是年 且当前日期符合  将rowBean添加到TableBean中if (ERPDefinition.LOOKUP_SERIAL_NUMBER_CYCLE_YEAR.equals(cycleFlag) && isYear) {rowBean.setCellBeanValue("CN_SN", "0");updateTableBean.addRowBean(rowBean);} else if (ERPDefinition.LOOKUP_SERIAL_NUMBER_CYCLE_MONTH.equals(cycleFlag) && isMonth) {rowBean.setCellBeanValue("CN_SN", "0");updateTableBean.addRowBean(rowBean);} else if (ERPDefinition.LOOKUP_SERIAL_NUMBER_CYCLE_WEEK.equals(cycleFlag) && isWeek) {rowBean.setCellBeanValue("CN_SN", "0");updateTableBean.addRowBean(rowBean);} else if (ERPDefinition.LOOKUP_SERIAL_NUMBER_CYCLE_DAY.equals(cycleFlag)) {rowBean.setCellBeanValue("CN_SN", "0");updateTableBean.addRowBean(rowBean);}}this.getBaseDAO().saveOrUpdateTableBean(updateTableBean);}

应用

 * 根据key cycleFlag(周期标志) 查询流水号* 存在 根据key 更新流水号* 不存在 插入 * @param String key,String cycleFlag(周期性标志)* @return returnData 流水号*/public synchronized String getSerialNumber(String key, int cycleFlag) {String currentTime = String.valueOf(ERPBLHelper.getCurrentTime());String sn_default = "1";String returnData = sn_default;try {CondSetBean csb = new CondSetBeanJustAnd();csb.addCondBean(new CondBeanEqual("CN_NAME", key));csb.addCondBean(new CondBeanEqual("CR_CYCLE_FLAG", String.valueOf(cycleFlag)));FormBean serialNumberFB = this.getBaseDAO().queryForFormBean(new ClassPOJO("TN_SERIAL_NUMBER"), csb);if (serialNumberFB != null && serialNumberFB.size() > 0) {returnData = String.valueOf(Long.parseLong(serialNumberFB.getCellBeanValue("CN_SN")) + 1);serialNumberFB.setCellBeanValue("CN_SN", returnData);} else {// 得到一个默认管理员的IDCondSetBean csbUser = new CondSetBeanJustAnd();csbUser.addCondBean(new CondBeanEqual("CR_TYPE_ID", TriangleDefinition.USER_TYPE_ADMIN_META));TableBean userTableBean = this.getBaseDAO().queryForTableBean(new ClassPOJO("ST_USER"), csbUser);String userId = userTableBean.get(0).getCellBeanValue(TriangleDefinition.COLUMN_NAME_CN_ID);serialNumberFB = new FormBean("TN_SERIAL_NUMBER");serialNumberFB.addCellBean(new CellBean("CN_NAME", key));serialNumberFB.addCellBean(new CellBean("CR_CYCLE_FLAG", String.valueOf(cycleFlag)));serialNumberFB.addCellBean(new CellBean("CN_SN", sn_default));serialNumberFB.addCellBean(new CellBean("CR_CREATE_USER_ID", userId));serialNumberFB.addCellBean(new CellBean("CN_CREATE_DATETIME", currentTime));serialNumberFB.addCellBean(new CellBean("CR_MODIFY_USER_ID", userId));serialNumberFB.addCellBean(new CellBean("CN_MODIFY_DATETIME", currentTime));}this.getBaseDAO().saveOrUpdateFormBean(serialNumberFB);} catch (Exception e) {TriangleBLHelper.printExceptionLog(log, e);e.printStackTrace();throw new RuntimeException("**** Run time Exception!****");}return returnData;}

timer 公司内部用法相关推荐

  1. C#中timer类的用法

    C#中timer类的用法 关于C#中timer类  在C#里关于定时器类就有3个   1.定义在System.Windows.Forms里   2.定义在System.Threading.Timer类 ...

  2. 字符串 拼接方法,公司内部的方法,用集合转换成拼接的字符串

    <pre name="code" class="java"> nameSum += StringUtils.isEmpty(nameSum)?nam ...

  3. 【Android 异步操作】Timer 定时器 ( Timer 与 TimerTask 基本使用 | Timer 定时器常用用法 | Timer 源码分析 )

    文章目录 一.Timer 定时器基本使用 二.Timer 定时器常用用法 三.Timer 源码分析 四.Timer 部分源码注释 五.源码及资源下载 参考文档 : Timer 定时器 API 文档 T ...

  4. 从阿里孵化钉钉谈起,大公司内部创业到底有多难?

    近日,在华为内部论坛上,一则关于<为什么阿里出现了"钉钉",我们没有?>的帖子引起热议. 围绕该主题,一大批的华为员工在论坛上探讨了华为产品设计.创新氛围,以及大企业内 ...

  5. 一个老鸟发的公司内部整理的 Android 学习路线图 Markdown 版本

    jixiaohua发了一篇一个老鸟也发了一份他给公司内部小伙伴整理的路线图.另一份 Android 开发学习路线图.可惜不是MarkDown格式的,所以jixiaohua直接上传的截图,在jixiao ...

  6. IBM 计划在公司内部推行基于比特币的开源项目Hyperledger

    目前,比特币仍然会让人联想到地下毒品市场的形象,想象成无政府主义黑客一心想从金融公司中拿到资金.但是,世界上一些大型的公司正在拥抱这种加密货币背后的技术. 去年,一批科技和金融巨头,包括 IBM.英特 ...

  7. 你们公司内部有WiKi么

    Wiki 是一个协同著作平台或称开放编辑系统.我们可以用Wiki来建设帮助系统,知识库系统.国内公共wiki最著名就是百度百科:我这里要讨论的是公司的内部wiki. 内部wiki的作用 1.鼓励分享 ...

  8. 关于公司内部DNS的整改建议

    文章背景:由给leader的邮件而来,在文章末尾另加了一些补充(见FAQ).原主题:关于公司内网DNS服务器中的u-sooc.com域名调整建议 建议:将公司内部DNS服务器(Windows  Ser ...

  9. grafana授权公司内部邮箱登录 ldap配置

    vi /etc/grafana/grafana.ini    (文件不一定是这个噢,看自己启动服务的配置文件) 修改配置: [auth.ldap] enabled = true config_file ...

最新文章

  1. 【PAT (Basic Level) 】1025 反转链表 (25 分)
  2. 限制tomcat带宽_必看的Tomcat性能优化
  3. VC++打开、保存文件对话框和浏览文件夹对话框
  4. EasyUI实现工地领款单项目
  5. CSS Id 和 Class
  6. 如何设计一个权限系统
  7. 资深Linux 系统管理员常用的15个很好用的Cron工作示例
  8. 计算机在化学中的应用与探索,计算机在化学中的应用
  9. poj java 输入超时_Java:如何实现代码超时功能?
  10. java多线程-生产者消费者模式
  11. [ZJOI2013]K大数查询
  12. 研究生马上要毕业了,可是完全写不出论文,该退学吗?
  13. 机器学习—XGBoost实战与调参
  14. quartz配置参数说明
  15. 网吧操作系统制作与优化2007最终版(转)
  16. FPGA实现千兆以太网发送
  17. 让读书的人面上有光:亚马逊Kindle青春版上市
  18. 实验二 单管交流放大电路
  19. GitLab更换IP地址报错解决
  20. 广域网 —— HDLC协议

热门文章

  1. ms sql 索引(一)
  2. 彻底澄清:C#方法参数
  3. Could not find action or result
  4. 第十六节:语法总结(3)(C#6.0和C#7.0新语法)
  5. Anychat视频会议系统企业信息化的完美衔接
  6. IT十八掌作业_java基础第八天_多线程
  7. How to use tcpdump with examples
  8. 32.突然弹出很多IE窗口怎么办:
  9. Unity进阶技巧 - RectTransform详解
  10. xwiki[未完成]