using HH.WMS.BLL; using HH.WMS.BLL.Pda; using HH.WMS.Common; using HH.WMS.Entitys; using HH.WMS.Entitys.Dto; using System; using System.Collections.Generic; using System.Linq; using System.Timers; using System.Web; namespace HH.WMS.WebApi.Extension { public class ExecuteProductLine : IExecuteThreadTimed { public void Run(object source, ElapsedEventArgs elapsedEventArgs) { try { var execs = BLLCreator.CreateDapper().GetList(new { CN_S_STATE = Constants.State_Executing, }).OrderBy(o => o.CN_T_CREATE); foreach (var _exec in execs) { bool existsEmpty = _exec.CN_B_EXISTS_EMPTY && !_exec.CN_B_EMPTY_COMPLETE; var current = new YmLocationMapDto() { productionLineArea = _exec.CN_S_PRODUCTLINE_AREA, itemArea = _exec.CN_S_ITEM_AREA, itemCode = _exec.CN_S_ITEM_CODE, productionLine = _exec.CN_S_PRODUCT_LINE, location = new List() { _exec.CN_S_PRODUCT_LOCATION } }; var exec = _exec; //生成原料呼叫 var or = BLLCreator.Create().GenerateRawmateriaCall(existsEmpty, current, ref exec); //完成时 if (exec.CN_B_EMPTY_COMPLETE && exec.CN_B_FULL_COMPLETE) exec.CN_S_STATE = Constants.TaskState_Complete; var updateOr = BLLCreator.CreateDapper().Update(new { CN_B_EXISTS_EMPTY = exec.CN_B_EXISTS_EMPTY, CN_B_EMPTY_COMPLETE = exec.CN_B_EMPTY_COMPLETE, CN_S_EMPTY_LASTMSG = exec.CN_S_EMPTY_LASTMSG, CN_B_FULL_COMPLETE = exec.CN_B_FULL_COMPLETE, CN_S_FULL_LASTMSG = exec.CN_S_FULL_LASTMSG, CN_S_STATE = exec.CN_S_STATE, }, new { CN_GUID = exec.CN_GUID }); if (!updateOr.Success) Log.DomainInfo("ExecuteProductLine ERROR", updateOr.Msg); } } catch (Exception ex) { Log.DomainInfo("ExecuteProductLine ERROR", ex.Message); } } } }