UpdateParameterUtils
/**
*
*/
package com.neptune.business.api.job;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.neptune.business.api.exception.BusinessErrorCode;
import com.neptune.business.api.exception.BusinessException;
import com.neptune.business.api.model.ParameterConfigurationModel;
import com.neptune.business.api.service.IParameterConfigurationService;
import com.neptune.business.api.utils.TimeAlgorithm;
import com.neptune.business.entity.ParameterConfiguration;
import com.neptune.business.enums.HistoryStatus;
/**
* @author Energizer.lai 定時更新配置表中的信息
*/
@Service
@Transactional
public class UpdateParameterUtils {
protected static Logger logger = Logger.getLogger(UpdateParameterUtils.class.getName());
@Autowired
private IParameterConfigurationService parameterConfigurationService;
/*
@Scheduled(cron = "0 1/3 * * * ?")
// 每小时的33分钟開始运行,每3分钟运行1次
*/ public void updateYearAndMoth() throws Exception {
try {
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mmss");
logger.info("开始進行UpdateParameter job" + sf.format(new Date()));
ParameterConfigurationModel pm = parameterConfigurationService.getParameterYearAndMothValue(null);
if (pm == null) {
logger.error(BusinessErrorCode.message3006 + BusinessErrorCode.code3006);
throw new BusinessException(BusinessErrorCode.message3006, BusinessErrorCode.code3006);
}
ParameterConfiguration update = parameterConfigurationService.findByPKId(ParameterConfiguration.class, pm.getId());
ParameterConfiguration pmEn = new ParameterConfiguration();
if (StringUtils.isNotEmpty(pm.getConsumptionDate())) {
}
if (StringUtils.isNotEmpty(pm.getConsumptionMonth())) {
}
if (StringUtils.isNotEmpty(pm.getConsumptionYear())) {
}
Integer date = Integer.valueOf(pm.getConsumptionDate()) + 1;
Integer moth = Integer.valueOf(pm.getConsumptionMonth());
Integer year = Integer.valueOf(pm.getConsumptionYear());
int size = 1000;
for (int i = 0; i < size; i++) {
// 是不是闰年
boolean isLeapYear = TimeAlgorithm.isLeapYear(year);
if (isLeapYear) {
// 2月份是29天
if (pm.getConsumptionMonth().equals("02")) {
if (date > 29) {
moth = moth + 1;
date = 1;
break;
}
}
} else {
if (pm.getConsumptionMonth().equals("02")) {
if (date > 28) {
moth = moth + 1;
date = 1;
break;
}
}
}
String[] mothArrays = { "1", "3", "5", "7", "9", "10", "12" };
boolean is31 = TimeAlgorithm.contains(mothArrays, pm.getConsumptionMonth());
if (is31) {
if (date >= 31) {
moth = moth + 1;
date = 1;
}
break;
} else {
if (date >= 30) {
moth = moth + 1;
date = 1;
}
break;
}
}
if (Integer.valueOf(pm.getConsumptionMonth()) > 12 && Integer.valueOf(pm.getConsumptionMonth()) > 0) {
moth = 1;
year += 1;
}
String mothStr =String.valueOf(moth);
String dateStr =String.valueOf(date);
if (mothStr.length()!=2) {
mothStr="0"+mothStr;
}
if (dateStr.length()!=2) {
dateStr="0"+dateStr;
}
pmEn.setConsumptionMonth(mothStr);
pmEn.setConsumptionYear(String.valueOf(year));
pmEn.setConsumptionDate(dateStr);
pmEn.setHistoryStatus(HistoryStatus.HISTORYCURRENTSTATE.getCode());
pmEn.setCreateTime(new Date());
pmEn.setCreateName("System.job");
parameterConfigurationService.insert(pmEn);
update.setHistoryStatus(HistoryStatus.HISTORYSTATE.getCode());
update.setUpdateName("System.job");
update.setUpdateTime(new Date());
parameterConfigurationService.update(update);
logger.info("UpdateParameter job結束" + sf.format(new Date()));
} catch (Exception e) {
e.printStackTrace();
logger.error(BusinessErrorCode.message3006 + BusinessErrorCode.code3006 + e.getMessage());
throw new BusinessException("job" + BusinessErrorCode.message3006, BusinessErrorCode.code3006);
}
}
}
UpdateParameterUtils的更多相关文章
随机推荐
- 20. Valid Parentheses[E]有效的括号
题目 Given a string containing just the characters '(',')','[',']','{' and '}',determine if the input ...
- Python的filter与map内置函数
简单的记录下这两个函数的功能: list(filter(lambda x : x % 2, range(10))) 上例是返回了0-10之间的所有基数组成的列表.filter()有2个参数,第一个参数 ...
- TYVJ 1427 线段树的基本操作
题意: 单点修改,区间最值 思路: 线段树 原题请戳这里 //By SiriusRen #include <cstdio> #include <cstring> #includ ...
- kindeditor文本编辑器乱码中乱码问题解决办法
这个问题我已经解决掉了,不是更改内容的编码格式,只要将lang/zh_CN.js 这个文件的编码转换成unicode即可 操作方法是 用记事本打开这个文件,另存为,然后更改文件的编码格式为unico ...
- jQuery基本选择器模块
选择器模块 1.获取元素的基本操作 案例:给页面中的div和p设置边框样式 1.1 传统方式 -获取元素并设置样式 实现思路 1 通过 标签名 获取元素 2 遍历循环 设置样式 var dvs = d ...
- poj3281 Dining 最大流(奇妙的构图)
我是按照图论500题的文档来刷题的,看了这题怎么也不觉得这是最大流的题目.这应该是题目做得太少的缘故. 什么是最大流问题?最大流有什么特点? 最大流的特点我觉得有一下几点: 1.只有一个起点.一个终点 ...
- Android PopupWindow使用方法小结
前几天要用到PopupWindow,一时竟想不起来怎么用,赶紧上网查了查,自己写了个demo,并在此记录一下PopupWindow的用法. 使用场景 PopupWindow,顾名思义,就是弹窗,在很多 ...
- Java数组操作工具
原文地址:http://blog.csdn.net/qq446282412/article/details/8913690 2013-05-11 10:27 看到网上的一段关于对数组操作的代码,觉 ...
- Bin文件
那什么是bin文件呢?为什么这么关键? bin (binary)既是:二进制, 里面存放的一般是可执行的二进制文件.二进制即是机器代码,汇编语言编译后的结果.我们编译的是高级语言,把高级语言翻译为机器 ...
- Win10 UWP Tile Generator
图标生成器 https://marketplace.visualstudio.com/items?itemName=shenchauhan.UWPTileGenerator 备份地址: http:// ...