You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
5.1 KiB
121 lines
5.1 KiB
using Euro.Transfer.Base;
|
|
using System;
|
|
using System.Linq;
|
|
using System.Windows.Forms;
|
|
|
|
namespace Euro.Transfer.Jobs.Transfer
|
|
{
|
|
public class Job : ServiceTask
|
|
{
|
|
/// <summary>
|
|
/// 任务开始
|
|
/// </summary>
|
|
protected override void Start()
|
|
{
|
|
try
|
|
{
|
|
var sCurrTime = DateTime.Now.ToString("HH:mm");
|
|
var sCurrWeekDay = DateTime.Now.DayOfWeek.ToString("d");
|
|
var sTransferWeeks = Common.ConfigGetValue("", "TransferWeeks");
|
|
var sTransferTime = Common.ConfigGetValue("", "TransferTime");
|
|
var sIsAuto = Common.ConfigGetValue("", "IsAuto");
|
|
//ServiceTools.WriteLog("", "sCurrTime:" + sCurrTime + "sCurrWeekDay:" + sCurrWeekDay + "sTransferWeeks:" + sTransferWeeks + "sTransferTime:" + sTransferTime, true);
|
|
if (sIsAuto == "true" || (sTransferWeeks.IndexOf(sCurrWeekDay) > -1 && sCurrTime == sTransferTime))
|
|
{
|
|
//运行中
|
|
this.mIsRunning = true;
|
|
//执行工作项
|
|
this.RunTransfer();
|
|
}
|
|
}
|
|
catch (Exception error)
|
|
{
|
|
//异常日志
|
|
ServiceTools.WriteLog(Errorlog_Path + @"Transfer\" + DateTime.Now.ToString("yyyyMMdd"), error.ToString(), true);
|
|
}
|
|
finally
|
|
{
|
|
//空闲
|
|
this.mIsRunning = false;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 任务停止
|
|
/// </summary>
|
|
protected override void Stop()
|
|
{
|
|
this.mIsRunning = false;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 执行代辦提醒邏輯
|
|
/// </summary>
|
|
protected void RunTransfer()
|
|
{
|
|
try
|
|
{
|
|
do
|
|
{
|
|
var sOrgID = Common.ConfigGetValue("", "TransferOrgID");
|
|
var sUserID = Common.ConfigGetValue("", "TransferUserID");
|
|
var user = hubClient.OnlineUsers.FirstOrDefault(u => (u.OrgId == sOrgID && u.UserId == sUserID));
|
|
if (user != null)
|
|
{
|
|
var sIsTest = Common.ConfigGetValue("", "IsTest");//是否為測試
|
|
if (sIsTest == "true")
|
|
{
|
|
ServiceTools.WriteLog(Debuglog_Path, "Euro.Transfer.Jobs.Transfer:" + user.OrgId + "-" + user.UserId + " " + hubClient.connection.State + " ConnectionId:" + hubClient.connection.ConnectionId, true);
|
|
}
|
|
if (hubClient.connection.State == Microsoft.AspNet.SignalR.Client.ConnectionState.Connected)
|
|
{
|
|
var sRegisterOrgID = Common.ConfigGetValue("", "RegisterOrgs");
|
|
var saRegisterOrgs = sRegisterOrgID.Split(',');
|
|
foreach (string org in saRegisterOrgs)
|
|
{
|
|
hubClient.msgProxy.Invoke("pushTransfer", org, user.UserId, "", 1);
|
|
hubClient.msgProxy.Invoke("pushTransfer", org, user.UserId, "", 2);
|
|
hubClient.msgProxy.Invoke("pushTransfer", org, user.UserId, "", 3);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
hubClient.connection.Start().ContinueWith(t =>
|
|
{
|
|
if (!t.IsFaulted)
|
|
{
|
|
//连接成功,调用Register方法
|
|
hubClient.msgProxy.Invoke("Register", hubClient.clientOrgId, hubClient.clientId, hubClient.clientName, true);
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("通訊連接失敗!! 請檢查Tracking後臺系統是否正常運行");
|
|
}
|
|
});
|
|
}
|
|
}
|
|
else
|
|
{
|
|
hubClient.connection.Start().ContinueWith(t =>
|
|
{
|
|
if (!t.IsFaulted)
|
|
{
|
|
//连接成功,调用Register方法
|
|
hubClient.msgProxy.Invoke("Register", hubClient.clientOrgId, hubClient.clientId, hubClient.clientName, true);
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("通訊連接失敗!! 請檢查Tracking後臺系統是否正常運行");
|
|
}
|
|
});
|
|
}
|
|
} while (false);
|
|
}
|
|
catch (Exception error)
|
|
{
|
|
//写错误日志
|
|
ServiceTools.WriteLog(Errorlog_Path + @"Transfer\" + DateTime.Now.ToString("yyyyMMdd"), error.ToString(), true);
|
|
}
|
|
}
|
|
}
|
|
}
|