<bean id="autoBuildJobTask"
class="com.wcis.util.AutoBuildJobTask">
</bean>
<!-- 2008-06-23 POLICE
-->
<bean id="tadyFrequency"
class="com.wcis.util.TadyFrequency">
</bean>
<bean id="scheduledTask"
class="org.springframework.scheduling.timer.ScheduledTimerTask">
<property name="delay"
value="10000"/>
<property name="period"
value="1800000"/>
<property name="timerTask" ref="autoBuildJobTask"
/>
</bean>
<bean id="scheduledTask2"
class="org.springframework.scheduling.timer.ScheduledTimerTask">
<property name="delay"
value="10000"/>
<property name="period"
value="18000"/>
<property name="timerTask" ref="tadyFrequency"
/>
</bean>
<bean id="timerFactory"
class="org.springframework.scheduling.timer.TimerFactoryBean">
<property
name="scheduledTimerTasks">
<list>
<ref bean="scheduledTask"
/>
<ref bean="scheduledTask2" />
<
st>
</property>
</bean>
package com.wcis.util;
import java.util.List;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.TimerTask;
import com.wcis.mytool.CmsConstant;
import com.wcis.persistent.Frequency;
import org.apache.struts.util.MessageResources;
public class TadyFrequency extends TimerTask {
@Override
public void run() {
Calendar cNow =
Calendar.getInstance();
int iHourOfDay =
cNow.get(Calendar.HOUR_OF_DAY);
String startTime =
MessageResources.getMessageResources(
"ApplicationResources").getMessage("AutoBuildJobTaskStartime2");
GetDate getdate = new
GetDate();
if (iHourOfDay
>= 5 && iHourOfDay
<= 6) {
int time =
0;
try {
time
= Integer.parseInt(getdate.getTaday3());
autoBuidJobTask();
getFrrequencyId();
} catch
(Exception e) {
e.printStackTrace();
System.out.println("------------------
今天是" + time + "号------ 自动排班 运行中
-----");
}
}
//
if (CmsConstant.FREQUENCY_ID ==
0 && iHourOfDay < 5)
{
try {
resetFrrequencyId();
} catch
(Exception e) {
e.printStackTrace();
}
}
//
//
if (CmsConstant.FREQUENCY_ID ==
0 && iHourOfDay > 6)
{
try {
autoBuidJobTask();
getFrrequencyId();
} catch
(Exception e) {
e.printStackTrace();
}
}
//
try {
getSamllFrequency();
} catch (Exception e) {
e.printStackTrace();
System.out.println("--------
小班次排班排班 运行中 -----");
}
}
public void resetFrrequencyId() throws Exception
{
GetDate getdate = new
GetDate();
int time =
Integer.parseInt(getdate.getTaday3());
time = time - 1;
String sql = "SELECT * FROM
Frequency WHERE frequencyType=0"
+
" AND startDate=" + time;
Collection coll = new
Collection();
ResultSet res = null;
res = coll.getCon(sql);
if (res.next()) {
CmsConstant.FREQUENCY_ID
= res.getInt(1);
CmsConstant.BIGFREQUENCY_NAME
= res.getString("FrequencyName");
} else {
autoBuidJobTask();
}
coll.closeCon();
}
public void getFrrequencyId() throws Exception
{
GetDate getdate = new
GetDate();
int time =
Integer.parseInt(getdate.getTaday3());
String sql = "SELECT * FROM
Frequency WHERE frequencyType=0"
+
" AND startDate=" + time;
Collection coll = new
Collection();
ResultSet res = null;
res = coll.getCon(sql);
if (res.next()) {
CmsConstant.FREQUENCY_ID
= res.getInt(1);
CmsConstant.BIGFREQUENCY_NAME
= res.getString("FrequencyName");
} else {
autoBuidJobTask();
}
coll.closeCon();
}
public int getSamllFrequency() throws Exception
{
GetDate getdate = new
GetDate();
String time =
getdate.getTaday5();
String sql = "SELECT * FROM
Frequency WHERE frequencyType=1 AND "
+
"fatherId=" + CmsConstant.FREQUENCY_ID + " AND "
+
"btimesign<"+time+" AND
etimesign>"+time;
System.out.println("得到的SQL语句是"
+ sql);
Collection coll = new
Collection();
ResultSet res = null;
res = coll.getCon(sql);
if (res.next()) {
CmsConstant.FREQUENCY_ZID
= res.getInt(1);
CmsConstant.FREQUENCY_NAME
= res.getString(5);
}
System.out.println("班次的名字是:
" + CmsConstant.FREQUENCY_NAME);
return 0;
}
public void autoBuidJobTask() throws Exception
{
GetDate getdate = new
GetDate();
int time =
Integer.parseInt(getdate.getTaday3());
String sql = "SELECT * FROM
Frequency WHERE frequencyType=0"
+
" AND startDate=" + time;
int id = 0;
Collection coll = new
Collection();
ResultSet res = null;
res = coll.getCon(sql);
if (res.next()) {
id =
res.getInt(1);
} else {
Initialization();
}
coll.closeCon();
List<Frequency>
after = new
ArrayList<Frequency>();
List<Frequency>
before = new
ArrayList<Frequency>();
if (id > 0)
{
String sql1 =
"SELECT * FROM Frequency WHERE frequencyType=0"
+
" AND id<" + id;
res =
coll.getCon(sql1);
while
(res.next()) {
Frequency
frequency = new Frequency();
frequency.setId(res.getInt(1));
frequency.setStartDate(res.getInt("startDate"));
before.add(frequency);
}
coll.closeCon();
}
if (id > 0)
{
String sql2 =
"SELECT * FROM Frequency WHERE frequencyType=0"
+
" AND id>" + id;
res =
coll.getCon(sql2);
while
(res.next()) {
Frequency
frequency = new Frequency();
frequency.setId(res.getInt(1));
frequency.setStartDate(res.getInt("startDate"));
after.add(frequency);
}
coll.closeCon();
}
int hou =
after.size();
int qian = before.size();
Frequency frequency = new
Frequency();
if (qian == 0
&& hou > 0) {
for (int i =
0; i < after.size(); i++) {
frequency
= after.get(i);
time
+= 1;
String
up = "UPDATE Frequency SET startDate=" + time
+
" WHERE id=" + frequency.getId();
coll.upobj(up);
}
coll.closeCon();
} else if (qian
> 0 && hou
> 0) {
int time2 =
time;
for (int i =
0; i < after.size(); i++) {
frequency
= after.get(i);
time2
+= 1;
String
up = "UPDATE Frequency SET startDate=" + time2
+
" WHERE id=" + frequency.getId();
System.out.println(up);
coll.upobj(up);
}
for (int i2 =
0; i2 < before.size(); i2++) {
frequency
= before.get(i2);
time2
+= 1;
String
up = "UPDATE Frequency SET startDate=" + time2
+
" WHERE id=" + frequency.getId();
System.out.println(up);
coll.upobj(up);
}
coll.closeCon();
} else if (qian
> 0 && hou == 0)
{
for (int i =
0; i < after.size(); i++) {
frequency
= after.get(i);
time
+= 1;
String
up = "UPDATE Frequency SET startDate=" + time
+
" WHERE id=" + frequency.getId();
coll.upobj(up);
}
coll.closeCon();
}
}
public void Initialization() throws Exception
{
List<Frequency>
flist = new
ArrayList<Frequency>();
Collection coll = new
Collection();
String sql = "SELECT * FROM
Frequency WHERE frequencyType=0";
ResultSet res = null;
res = coll.getCon(sql);
while (res.next()) {
Frequency
frequency = new Frequency();
frequency.setId(res.getInt(1));
frequency.setStartDate(res.getInt("startDate"));
flist.add(frequency);
}
coll.closeCon();
Frequency frequency = new
Frequency();
GetDate getdate = new
GetDate();
int time =
Integer.parseInt(getdate.getTaday3());
for (int i = 0; i
< flist.size(); i++) {
frequency =
flist.get(i);
time += (i ==
0) ? 0 : 1;
String up =
"UPDATE Frequency SET startDate=" + time + " WHERE id="
+
frequency.getId();
coll.upobj(up);
}
coll.closeCon();
}
}