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;
}
}
}
}