You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

89 lines
3.1 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System;
using BP.DA;
using BP.En;
namespace BP.WF.DTS
{
/// <summary>
/// 同步待办时间戳 的摘要说明
/// </summary>
public class DTS_GenerWorkFlowTimeSpan : Method
{
/// <summary>
/// 同步待办时间戳
/// </summary>
public DTS_GenerWorkFlowTimeSpan()
{
this.Title = "同步待办时间戳,状态,流程注册表的时间段(本周上周2周以前3其他。).";
this.Help = "该方法每周一自动执行,如果不能自动执行就手动执行";
this.GroupName = "流程自动执行定时任务";
}
/// <summary>
/// 设置执行变量
/// </summary>
/// <returns></returns>
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);
}
/// <summary>
/// 当前的操纵员是否可以执行这个方法
/// </summary>
public override bool IsCanDo
{
get
{
return true;
}
}
/// <summary>
/// 执行
/// </summary>
/// <returns>返回执行结果</returns>
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 >= '" + dtBegin.ToString(DataType.SysDataFormat) + " 00:00' AND RDT <= '" + dtEnd.ToString(DataType.SysDataFormat) + " 00:00'";
DBAccess.RunSQL(sql);
dtBegin = dtBegin.AddDays(-7);
dtEnd = dtEnd.AddDays(-7);
//把上周的,设置为两个周以前.
sql = "UPDATE WF_GenerWorkFlow SET TSpan=" + (int)TSpan.TowWeekAgo + " WHERE RDT >= '" + dtBegin.ToString(DataType.SysDataFormat) + " 00:00' AND RDT <= '" + dtEnd.ToString(DataType.SysDataFormat) + " 00:00' ";
DBAccess.RunSQL(sql);
//把上周的,设置为更早.
sql = "UPDATE WF_GenerWorkFlow SET TSpan=" + (int)TSpan.More + " WHERE RDT <= '" + dtBegin.ToString(DataType.SysDataFormat) + " 00:00' ";
DBAccess.RunSQL(sql);
return "执行成功...";
}
}
}