using System; using System.Collections.Generic; using System.Threading; using BWP.B3Frameworks; using BWP.B3Frameworks.BL; using BWP.B3Frameworks.BO; using BWP.B3Frameworks.Utils; using BWP.B3Sale.BL; using BWP.B3Sale.BO; using Forks.EnterpriseServices.BusinessInterfaces; using Forks.EnterpriseServices.DomainObjects2; using Forks.EnterpriseServices.DomainObjects2.DQuery; using TSingSoft.WebPluginFramework; using TSingSoft.WebPluginFramework.TimerTasks; namespace BWP.B3_YunKen.TimerTask { public class StoppedCarrierTask : ITimerTask { public string Name { get { return "耘垦停用【承运方】,当前时间超过合同结束时间自动停用"; } } volatile static object _lockObj = new object(); public void Execute() { if (!Monitor.TryEnter(_lockObj)) { throw new SameTaskNotFinishException(this); } try { DoExecute(); } finally { Monitor.Exit(_lockObj); } } private void DoExecute() { var mDmoTypeID = DmoTypeIDAttribute.GetID(typeof(Customer)); var dom = new DQUpdateDom(typeof(Carrier)); dom.Columns.Add(new DQUpdateColumn("Stopped", true)); dom.Columns.Add(new DQUpdateColumn("RowVersion",DQExpression.Add(DQExpression.Field("RowVersion"),DQExpression.Value(1)))); dom.Where.Conditions.Add(DQCondition.EQ("Stopped", false)); dom.Where.Conditions.Add(DQExpression.Snippet("cast(EndDateStr as datetime) < getdate()")); dom.EExecute(); } } }