using System;
using BP.DA;
using BP.En;
namespace BP.WF.DTS
{
///
/// 同步待办时间戳 的摘要说明
///
public class DTS_GenerWorkFlowTimeSpan : Method
{
///
/// 同步待办时间戳
///
public DTS_GenerWorkFlowTimeSpan()
{
this.Title = "同步待办时间戳,状态,流程注册表的时间段(本周,上周,2周以前,3其他。).";
this.Help = "该方法每周一自动执行,如果不能自动执行就手动执行";
this.GroupName = "流程自动执行定时任务";
}
///
/// 设置执行变量
///
///
public override void Init()
{
//this.Warning = "您确定要执行吗?";
//HisAttrs.AddTBString("P1", null, "原密码", true, false, 0, 10, 10);
//HisAttrs.AddTBString("P2", null, "新密码", true, false, 0, 10, 10);
//HisAttrs.AddTBString("P3", null, "确认", true, false, 0, 10, 10);
}
///
/// 当前的操纵员是否可以执行这个方法
///
public override bool IsCanDo
{
get
{
return true;
}
}
///
/// 执行
///
/// 返回执行结果
public override object Do()
{
//只能在周1执行.
DateTime dtNow = DateTime.Now;
//设置为开始的日期为周1.
DateTime dtBegin = DateTime.Now;
dtBegin = dtBegin.AddDays(-7);
for (int i = 0; i < 8; i++)
{
if (dtBegin.DayOfWeek == DayOfWeek.Monday)
break;
dtBegin = dtBegin.AddDays(-1);
}
//结束日期为当前.
DateTime dtEnd = dtBegin.AddDays(7);
//默认都设置为本周
string sql = "UPDATE WF_GenerWorkFlow SET TSpan=" + (int)TSpan.ThisWeek;
DBAccess.RunSQL(sql);
//设置为上周.
sql = "UPDATE WF_GenerWorkFlow SET TSpan=" + (int)TSpan.NextWeek + " WHERE RDT >= '" + DataType.SysDataFormat(dtBegin) + " 00:00' AND RDT <= '" +DataType.SysDataFormat(dtEnd) + " 00:00'";
DBAccess.RunSQL(sql);
dtBegin = dtBegin.AddDays(-7);
dtEnd = dtEnd.AddDays(-7);
//把上周的,设置为两个周以前.
sql = "UPDATE WF_GenerWorkFlow SET TSpan=" + (int)TSpan.TowWeekAgo + " WHERE RDT >= '" + DataType.SysDataFormat(dtBegin) + " 00:00' AND RDT <= '" + DataType.SysDataFormat(dtEnd) + " 00:00' ";
DBAccess.RunSQL(sql);
//把上周的,设置为更早.
sql = "UPDATE WF_GenerWorkFlow SET TSpan=" + (int)TSpan.More + " WHERE RDT <= '" + DataType.SysDataFormat(dtBegin) + " 00:00' ";
DBAccess.RunSQL(sql);
return "执行成功...";
}
}
}