taskaction.java
来自「OBPM是一个开源」· Java 代码 · 共 197 行
JAVA
197 行
package cn.myapps.core.task.action;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import cn.myapps.base.action.BaseAction;
import cn.myapps.core.dynaform.dts.exp.mappingconfig.ejb.MappingConfig;
import cn.myapps.core.dynaform.dts.exp.mappingconfig.ejb.MappingConfigProcess;
import cn.myapps.core.task.ejb.Task;
import cn.myapps.core.task.ejb.TaskConstants;
import cn.myapps.core.task.ejb.TaskProcess;
import cn.myapps.util.DateUtil;
import cn.myapps.util.ProcessFactory;
import cn.myapps.util.timer.TimeRunnerAble;
import cn.myapps.util.timer.TimerRunner;
public class TaskAction extends BaseAction {
private String _time;
private Calendar calendar = Calendar.getInstance();
private static final long serialVersionUID = 2948439801638083317L;
private static Map _TASKTYPE = new TreeMap();
private static Map _STARTUPTYPE = new TreeMap();
private static Map _REAPETTYPE = new TreeMap();
static {
_TASKTYPE
.put(Integer.valueOf(TaskConstants.TASK_TYPE_SCRIPT), "Script");
_TASKTYPE.put(Integer.valueOf(TaskConstants.TASK_TYPE_EXPDATA),
"ExpData");
_STARTUPTYPE.put(Integer.valueOf(TaskConstants.STARTUP_TYPE_MANUAL),
"Manual");
_STARTUPTYPE.put(Integer.valueOf(TaskConstants.STARTUP_TYPE_AUTO),
"Auto");
_STARTUPTYPE.put(Integer.valueOf(TaskConstants.STARTUP_TYPE_BANNED),
"Banned");
_REAPETTYPE = TaskConstants.getREPEAT_TYPE_LIST();
}
public static Map get_TASKTYPE() {
return _TASKTYPE;
}
public static Map get_STARTUPTYPE() {
return _STARTUPTYPE;
}
public static Map get_REAPETTYPE() {
return _REAPETTYPE;
}
public TaskAction() throws ClassNotFoundException {
super(ProcessFactory.createProcess(TaskProcess.class), new Task());
}
public String doSave() throws Exception {
try {
setDate();
} catch (Exception e) {
return INPUT;
}
return super.doSave();
}
public String doStart() throws Exception {
try {
setDate();
} catch (Exception e) {
return INPUT;
}
boolean flag = false;
// 获取所有运行时列表
Collection runningList = TimerRunner.runningList.keySet();
int count = 0;
for (Iterator iter = runningList.iterator(); iter.hasNext();) {
Task task = (Task) iter.next();
if (!(task.getId()).equals(getTask().getId())) {
count++;
continue;
}
}
if (count == runningList.size() || runningList.size() == 0) {
flag = true;
}
if (flag
&& getTask().getStartupType() != TaskConstants.STARTUP_TYPE_BANNED) {
TimeRunnerAble job = TimerRunner.createTimeRunnerAble(getTask(),
(TaskProcess) this.proxy);
TimerRunner.registerTimerTask(job, new Date(), 60 * 1000);
TimerRunner.runningList.put(getTask(), job);
}
return SUCCESS;
}
public String doStop() throws Exception {
try {
setDate();
} catch (Exception e) {
return INPUT;
}
Set runningList = TimerRunner.runningList.keySet();
for (Iterator iter = runningList.iterator(); iter.hasNext();) {
Task task = (Task) iter.next();
// 以id判断runningList的task与当前task是否相等
if ((task.getId()).equals(getTask().getId())) {
Object obj = TimerRunner.runningList.get(task);
long delay = 1000L;
if (obj != null && delay > 0) {
TimerRunner.runningList.remove(task);
TimeRunnerAble job = (TimeRunnerAble) obj;
job.cancel(task, (TaskProcess) this.proxy);
break;
}
}
}
return SUCCESS;
}
public String get_time() throws Exception {
String timeStr = "";
if (getTask().getRunningTime() != null) {
Date dateTime = getTask().getRunningTime();
timeStr = DateUtil.format(dateTime, "HH:mm");
}
return timeStr;
}
public void set_time(String _time) {
this._time = _time;
}
// 设置日期
private void setDate() throws Exception {
Date date = new Date();
if (getTask().getRunningTime() != null) {
date = getTask().getRunningTime();
}
try {
String dateStr = DateUtil.format(date, "yyyy-MM-dd");
dateStr += " " + _time;
SimpleDateFormat formatter = new SimpleDateFormat(
"yyyy-MM-dd HH:mm");
date = formatter.parse(dateStr);
} catch (Exception e) {
addFieldError("", "Please choose time");
}
getTask().setRunningTime(date);
}
private Task getTask() {
return ((Task) this.getContent());
}
public Collection get_mappingconfigs() {
Task vo = (Task) getContent();
return vo != null ? vo.getMappingConfigs() : null;
}
public void set_mappingconfigs(Collection _mappingconfigs) throws Exception {
Collection maps = new HashSet();
MappingConfigProcess dp = (MappingConfigProcess) ProcessFactory
.createProcess((MappingConfigProcess.class));
for (Iterator iter = _mappingconfigs.iterator(); iter.hasNext();) {
String id = (String) iter.next();
MappingConfig mc = (MappingConfig) dp.doView(id);
maps.add(mc);
}
((Task) getContent()).setMappingConfigs(maps);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?