using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using Commom.Utility; using Common; using Model; namespace BLL.DAL { public class DAL_TaskMonitor { /// /// 获取任务控制信息 /// /// /// /// public IList GetList(AjaxGetTaskList Json, ref PageInfo pageInfo) { try { StringBuilder strSql = new StringBuilder(); List para = new List(); // 0 未下发 1 已下发 2 ? 3已完成 strSql.Append("select Id,TaskNo,CASE Type when '0' then '入库' when '1' then '出库' when '2' then '移库' else Type end as Type,"); strSql.Append("Status,IsSuccess,Information,Origin,StartLocat,EndLocat,PalletNo,CancelDate,Levels,FinishDate,CreateTime "); strSql.Append(" from WCSTasks where IsDel = '0' "); if (!string.IsNullOrWhiteSpace(Json.TaskNo)) { strSql.Append(" and TaskNo like '%" + Json.TaskNo + "%' "); } if (!string.IsNullOrWhiteSpace(Json.TaskType)) { strSql.Append(" and Type = '" + Json.TaskType + "' "); } if (!string.IsNullOrWhiteSpace(Json.Status)) { strSql.Append(" and Status = '" + Json.Status + "' "); } if (!string.IsNullOrWhiteSpace(Json.StartLocat)) { strSql.Append(" and StartLocat like '%" + Json.StartLocat + "%' "); } if (!string.IsNullOrWhiteSpace(Json.PalletNo)) { strSql.Append(" and PalletNo like '%" + Json.PalletNo + "%' "); } if (!string.IsNullOrWhiteSpace(Json.EndLocat)) { strSql.Append(" and EndLocat like '%" + Json.EndLocat + "%' "); } // strSql.Append(" order by state ,TaskNo1 "); SqlParam[] param = null; if (para != null) { param = para.ToArray(); } DataTable dt = DataFactory.SqlDataBase().GetPageList(strSql.ToString(), param, "TaskNo", "desc", ref pageInfo); return ModelConvertHelper.DataTableToModel(dt); } catch { throw new NotImplementedException(); } } /// /// 获取任务控制信息明细 /// /// /// /// public IList GetDetailList(AjaxGetTaskDetailList Json, ref PageInfo pageInfo) { try { StringBuilder strSql = new StringBuilder(); List para = new List(); // strSql.Append("select Id,TaskNo,PlcId,PlcName,StartLocat,EndLocat,InteractiveMsg,ErrorMsg,IsDel,CreateTime,CreateUser,UpdateTime,UpdateUser from WCSTasksMonitor where IsDel = '0' "); if (!string.IsNullOrWhiteSpace(Json.TaskNo)) { strSql.Append(" and TaskNo like '%" + Json.TaskNo + "%' "); } if (!string.IsNullOrWhiteSpace(Json.StartLocat)) { strSql.Append(" and StartLocat like '%" + Json.StartLocat + "%' "); } if (!string.IsNullOrWhiteSpace(Json.EndLocat)) { strSql.Append(" and EndLocat like '%" + Json.EndLocat + "%' "); } DataTable dt = DataFactory.SqlDataBase().GetPageList(strSql.ToString(), null, "CreateTime", "desc", ref pageInfo); return ModelConvertHelper.DataTableToModel(dt); } catch { throw new NotImplementedException(); } } /// /// 手动添加任务 /// /// /// /// public bool Add(TaskMonitorModel model, string loginUser) { bool result = false; try { Hashtable ht = new Hashtable(); ht["TaskType"] = model.TaskType.AddQuotes(); ht["InitialAddre"] = "'" + model.InitialAddre + "'"; ht["Palno"] = "'" + model.Palno + "'"; ht["TargetAddre"] = "'" + model.TargetAddre + "'"; ht["State"] = "'0'"; ht["IsSucceed"] = "'" + model.IsSucceed + "'"; ht["ErrorStr"] = "'" + model.ErrorStr + "'"; ht["PriorityLevel"] = model.PriorityLevel; ht["Source"] = "'手动'"; ht["Demo"] = "'" + model.Demo + "'"; ht["CreateUser"] = "'" + loginUser + "'"; ht["CreateTime"] = "Getdate()"; int _ret = DataFactory.SqlDataBase().InsertByHashtableNullParam("TaskMonitor", ht); if (_ret == 1) result = true; return result; } catch { return result; } } /// /// 手动完成任务 /// /// /// public bool TaskMonitorComplete(string[] ID) { bool result = false; try { int dt = DataFactory.SqlDataBase().IsExist("TaskMonitor", "Guid", ID); if (dt >= ID.Length) { int i = 0; while (i < ID.Length) { StringBuilder sql = new StringBuilder(); // 获取当前任务详细信息 sql.Append("select * from TaskMonitor where guid = '" + ID[i] + "' and State != '3';"); DataTable monitorDt = DataFactory.SqlDataBase().GetDataTableBySQL(sql); if (monitorDt != null && monitorDt.Rows.Count > 0) { // 完成上架任务 DALWcsMessage wcsSql = new DALWcsMessage(); if (monitorDt.Rows[0]["TaskType"].ToString() == "out") // 出库任务 { wcsSql.WcsinWms(monitorDt.Rows[0]["Palno"].ToString(), monitorDt.Rows[0]["InitialAddre"].ToString(), "2"); // 更改储位状态 //StringBuilder hql = new StringBuilder(); //hql.Append("update DepotsLocation set TurnoverDemand ='01' where LocationCode = '" + monitorDt.Rows[0]["InitialAddre"].ToString() + "'"); //DataFactory.SqlDataBase().ExecuteBySql(hql); } else // 入库任务 { wcsSql.WcsinWms(monitorDt.Rows[0]["Palno"].ToString(), monitorDt.Rows[0]["TargetAddre"].ToString(), "1"); //// 更改储位状态 //StringBuilder hql = new StringBuilder(); //hql.Append("update DepotsLocation set TurnoverDemand ='03' where LocationCode = '" + monitorDt.Rows[0]["TargetAddre"].ToString() + "'"); //DataFactory.SqlDataBase().ExecuteBySql(hql); } // 修改任务状态 sql.Append("update TaskMonitor set State=3 where Guid='" + ID[i] + "'"); int _ret = DataFactory.SqlDataBase().ExecuteBySql(sql); if (_ret >= ID.Length) result = true; } i++; } } return result; } catch { return result; } } /// /// 取消任务 /// /// /// public bool TaskMonitorCancel(string[] ID) { bool result = false; try { int dt = DataFactory.SqlDataBase().IsExist("TaskMonitor", "Guid", ID); if (dt >= ID.Length) { int i = 0; while (i < ID.Length) { StringBuilder sql = new StringBuilder(); sql.Append("update TaskMonitor set IsDel=1 where Guid='" + ID[i] + "'"); int _ret = DataFactory.SqlDataBase().ExecuteBySql(sql); if (_ret >= ID.Length) result = true; i++; //// 更改储位状态 //sql.Clear(); //sql.Append("select * from TaskMonitor where Guid='" + ID[i] + "';"); //DataTable dtt = DataFactory.SqlDataBase().GetDataTableBySQL(sql); //if (dtt.Rows[0][""].ToString() == "in") //{ // // 将目标储位更改为 //} } } return result; } catch { return result; } } } }