using EnumType;
|
using IWareDataAccess.EF;
|
using IWareDataAccess.Entity.Task;
|
using IWareDataAccess.Helper;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace IWareDataAccess.Task.TASK
|
{
|
public static class TaskSqlFunc
|
{
|
/// <summary>
|
/// 搜索表
|
/// </summary>
|
/// <param name="keyValue"></param>
|
/// <param name="page"></param>
|
/// <returns></returns>
|
public static List<TASK_TASK> Search(TaskWebEntity webEntity, int page, int onePageNum, out string msg)
|
{
|
msg = "";
|
using (Model edm = new Model())
|
{
|
var f = PredicateBuilder.True<TASK_TASK>();
|
//便利所有属性
|
Type type = webEntity.GetType();
|
foreach (var i in type.GetProperties())
|
{
|
object v = Helper.Helper.GetFieldValueByName(webEntity, i.Name);
|
if (i.PropertyType == typeof(String))
|
{
|
string value;
|
if (v != null)
|
{
|
value = v.ToString();
|
f = f.And(x => Helper.Helper.GetFieldValueByName(x, i.Name) != null ? Helper.Helper.GetFieldValueByName(x, i.Name).ToString().Contains(value) : false);
|
}
|
}
|
else if (i.PropertyType == typeof(DateTime?))
|
{
|
if (v != null)
|
{
|
DateTime value = DateTime.Parse(v.ToString());
|
if (i.Name == "createTimeStart")
|
{
|
f = f.And(x => x.CREATETIME > value);
|
}
|
if (i.Name == "createTimeEnd")
|
{
|
f = f.And(x => x.CREATETIME < value);
|
}
|
}
|
}
|
else
|
{
|
if (v != null)
|
{
|
f = f.And(x => Object.Equals(Helper.Helper.GetFieldValueByName(x, i.Name), v));
|
}
|
}
|
}
|
List<TASK_TASK> list = edm.TASK_TASK.Where(f.Compile()).Skip((page - 1) * onePageNum).Take(onePageNum).ToList();
|
|
return list;
|
}
|
}
|
|
|
/// <summary>
|
/// 搜索视图
|
/// </summary>
|
/// <param name="keyValue"></param>
|
/// <param name="page"></param>
|
/// <returns></returns>
|
public static List<View_TASK_TASK> SearchView(TaskWebEntity webEntity, int page, int onePageNum, out string msg)
|
{
|
msg = "";
|
using (Model edm = new Model())
|
{
|
var f = PredicateBuilder.True<View_TASK_TASK>();
|
//便利所有属性
|
Type type = webEntity.GetType();
|
foreach (var i in type.GetProperties())
|
{
|
object v = Helper.Helper.GetFieldValueByName(webEntity, i.Name);
|
if (i.PropertyType == typeof(String))
|
{
|
string value;
|
if (v != null)
|
{
|
value = v.ToString();
|
f = f.And(x => Helper.Helper.GetFieldValueByName(x, i.Name) != null ? Helper.Helper.GetFieldValueByName(x, i.Name).ToString().Contains(value) : false);
|
}
|
}
|
else if (i.PropertyType == typeof(DateTime?))
|
{
|
if (v != null)
|
{
|
DateTime value = DateTime.Parse(v.ToString());
|
if (i.Name == "createTimeStart")
|
{
|
f = f.And(x => x.createTime > value);
|
}
|
if (i.Name == "createTimeEnd")
|
{
|
f = f.And(x => x.createTime < value);
|
}
|
}
|
}
|
else
|
{
|
if (v != null)
|
{
|
f = f.And(x => Object.Equals(Helper.Helper.GetFieldValueByName(x, i.Name), v));
|
}
|
}
|
}
|
|
List<View_TASK_TASK> list = edm.View_TASK_TASK.OrderByDescending(x=>x.createTime).Where(f.Compile()).Skip((page - 1) * onePageNum).Take(onePageNum).ToList();
|
|
return list;
|
}
|
}
|
|
|
/// <summary>
|
/// 根据指定条件获取所有的主任务信息
|
/// </summary>
|
/// <param name="webEntity"></param>
|
/// <returns></returns>
|
public static List<View_TASK_TASK> GetAllMainTask(TaskWebEntity webEntity)
|
{
|
|
using (Model edm = new Model())
|
{
|
var f = PredicateBuilder.True<View_TASK_TASK>();
|
//便利所有属性
|
Type type = webEntity.GetType();
|
foreach (var i in type.GetProperties())
|
{
|
object v = Helper.Helper.GetFieldValueByName(webEntity, i.Name);
|
if (i.PropertyType == typeof(String))
|
{
|
string value;
|
if (v != null)
|
{
|
value = v.ToString();
|
f = f.And(x => Helper.Helper.GetFieldValueByName(x, i.Name) != null ? Helper.Helper.GetFieldValueByName(x, i.Name).ToString().Contains(value) : false);
|
}
|
}
|
else if (i.PropertyType == typeof(DateTime?))
|
{
|
if (v != null)
|
{
|
DateTime value = DateTime.Parse(v.ToString());
|
if (i.Name == "createTimeStart")
|
{
|
f = f.And(x => x.createTime > value);
|
}
|
if (i.Name == "createTimeEnd")
|
{
|
f = f.And(x => x.createTime < value);
|
}
|
}
|
}
|
else
|
{
|
if (v != null)
|
{
|
f = f.And(x => Object.Equals(Helper.Helper.GetFieldValueByName(x, i.Name), v));
|
}
|
}
|
}
|
|
List<View_TASK_TASK> list = edm.View_TASK_TASK.OrderByDescending(x => x.createTime).Where(f.Compile()).ToList();
|
|
return list;
|
}
|
}
|
|
/// <summary>
|
/// 搜索视图
|
/// </summary>
|
/// <param name="keyValue"></param>
|
/// <param name="page"></param>
|
/// <returns></returns>
|
public static int SearchViewNum(TaskWebEntity webEntity)
|
{
|
using (Model edm = new Model())
|
{
|
var f = PredicateBuilder.True<View_TASK_TASK>();
|
//便利所有属性
|
Type type = webEntity.GetType();
|
foreach (var i in type.GetProperties())
|
{
|
object v = Helper.Helper.GetFieldValueByName(webEntity, i.Name);
|
if (i.PropertyType == typeof(String))
|
{
|
string value;
|
if (v != null)
|
{
|
value = v.ToString();
|
f = f.And(x => Helper.Helper.GetFieldValueByName(x, i.Name) != null ? Helper.Helper.GetFieldValueByName(x, i.Name).ToString().Contains(value) : false);
|
}
|
}
|
else if (i.PropertyType == typeof(DateTime?))
|
{
|
if (v != null)
|
{
|
DateTime value = DateTime.Parse(v.ToString());
|
if (i.Name == "createTimeStart")
|
{
|
f = f.And(x => x.createTime > value);
|
}
|
if (i.Name == "createTimeEnd")
|
{
|
f = f.And(x => x.createTime < value);
|
}
|
}
|
}
|
else
|
{
|
if (v != null)
|
{
|
f = f.And(x => Object.Equals(Helper.Helper.GetFieldValueByName(x, i.Name), v));
|
}
|
}
|
}
|
|
int num = edm.View_TASK_TASK.Where(f.Compile()).Count();
|
|
return num;
|
}
|
}
|
|
/// <summary>
|
/// 添加任务
|
/// </summary>
|
/// <param name="role"></param>
|
/// <returns></returns>
|
public static bool AddOrUpdate(TaskWebEntity webEntity, out string msg)
|
{
|
msg = "";
|
using (Model edm = new Model())
|
{
|
|
TASK_TASK task = new TASK_TASK();
|
task = edm.TASK_TASK.FirstOrDefault(x => x.ID == webEntity.id);
|
if (task == null)
|
{
|
task = new TASK_TASK();
|
task.HASFINISHED = 0;
|
}
|
//BASE_PLACE sourcePlace = edm.BASE_PLACE.FirstOrDefault(x => x.PLACE == webEntity.sourcePlace);
|
//if (sourcePlace != null)
|
//{
|
// task.SOURCEPLACE = webEntity.sourcePlace;
|
//}
|
//else
|
//{
|
// msg = "起始位有误";
|
// return false;
|
//}
|
//BASE_PLACE toPlace = edm.BASE_PLACE.FirstOrDefault(x => x.PLACE == webEntity.toPlace);
|
//if (toPlace != null)
|
//{
|
// task.TOPLACE = webEntity.toPlace;
|
//}
|
//else
|
//{
|
// msg = "目标位有误";
|
// return false;
|
//}
|
task.SOURCEPLACE = webEntity.sourcePlace ?? task.SOURCEPLACE;
|
task.TOPLACE = webEntity.toPlace ?? task.TOPLACE;
|
task.ORDERID = webEntity.orderId??task.ORDERID;
|
task.TASKTYPE = webEntity.taskType?? task.TASKTYPE ;
|
task.TASKSTATUS=webEntity.taskStatus??task.TASKSTATUS;
|
SYS_USER user = edm.SYS_USER.FirstOrDefault(x => x.USERNAME == webEntity.userName);
|
if (user != null)
|
{
|
task.CREATEUSERID = user.ID;
|
}
|
task.TASKLEVEL= webEntity.taskLevel??task.TASKLEVEL;
|
task.ISNEEDREDIRECT= webEntity.isNeedRedirect?? task.ISNEEDREDIRECT;
|
|
if (string.IsNullOrEmpty(webEntity.containerName))
|
{
|
var pvc = edm.BASE_PLACE_VS_CONTAINER.FirstOrDefault(x => x.BASE_PLACE.PLACE== webEntity.sourcePlace);
|
if (pvc != null)
|
{
|
task.BASE_CONTAINER = pvc.BASE_CONTAINER;
|
}
|
else
|
{
|
msg = "器具号有误";
|
return false;
|
}
|
}
|
else
|
{
|
BASE_CONTAINER container = edm.BASE_CONTAINER.FirstOrDefault(x => x.CONTAINERNAME == webEntity.containerName);
|
if (container != null)
|
{
|
task.BASE_CONTAINER = container;
|
}
|
else
|
{
|
msg = "器具号有误";
|
return false;
|
}
|
}
|
|
task.HASFINISHED = webEntity.hasFinish?? task.HASFINISHED ;
|
task.ERRORMSG= webEntity.errorMsg??task.ERRORMSG;
|
task.ERRORDEVICEID= webEntity.errorDeviceId?? task.ERRORDEVICEID;
|
task.ISERROR=webEntity.isError?? task.ISERROR;
|
task.HASREADED= webEntity.hasReaded?? task.HASREADED;
|
task.OUTTYPE= webEntity.outType??task.OUTTYPE;
|
task.ENABLE = webEntity.enable ?? task.ENABLE;
|
|
|
task.CREATETIME = DateTime.Now;
|
edm.TASK_TASK.AddOrUpdateExtension(task);
|
//出入库记录
|
if (task.BASE_CONTAINER.BASE_CONTAINER_VS_ITEM.Count != 0)
|
{
|
foreach (var i in task.BASE_CONTAINER.BASE_CONTAINER_VS_ITEM)
|
{
|
ORDER_OUTORDER order = edm.ORDER_OUTORDER.FirstOrDefault(x => x.ID == (task.ORDERID ?? 0));
|
TASK_RECORD taskRecord = new TASK_RECORD()
|
{
|
|
TYPE = task.TASKTYPE ?? 0,
|
CREATETIME = DateTime.Now,
|
ITEMID = i.BASE_ITEM.ID,
|
CONTAINERID = task.BASE_CONTAINER.ID,
|
TASKID = task.ID,
|
ENABLE = 1,
|
ITEMCOUNT = i.ITEMNUM ?? 0,
|
ISMAINOUT = 0
|
};
|
if (order != null)
|
{
|
taskRecord.OUTORDERCODE = order.OUTORDERCODE;
|
if (order.ITEMID == taskRecord.ITEMID)
|
{
|
taskRecord.ISMAINOUT = 1;//属于主要出库零件
|
}
|
}
|
edm.TASK_RECORD.Add(taskRecord);
|
}
|
}
|
else
|
{
|
ORDER_OUTORDER order = edm.ORDER_OUTORDER.FirstOrDefault(x => x.ID == (task.ORDERID ?? 0));
|
TASK_RECORD taskRecord = new TASK_RECORD()
|
{
|
|
TYPE = task.TASKTYPE ?? 0,
|
CREATETIME = DateTime.Now,
|
CONTAINERID = task.BASE_CONTAINER.ID,
|
TASKID = task.ID,
|
ENABLE = 1,
|
ISMAINOUT = 0
|
};
|
if (order != null)
|
{
|
taskRecord.OUTORDERCODE = order.OUTORDERCODE;
|
}
|
edm.TASK_RECORD.Add(taskRecord);
|
}
|
|
if (edm.SaveChanges() > 0)
|
{
|
return true;
|
}
|
else
|
{
|
msg = "保存失败";
|
return false;
|
}
|
}
|
}
|
|
/// <summary>
|
/// 提高优先级
|
/// </summary>
|
/// <param name="webEntity"></param>
|
/// <param name="msg"></param>
|
/// <returns></returns>
|
public static bool UpTaskLevel(TaskWebEntity webEntity, out string msg)
|
{
|
msg = "";
|
using (Model edm = new Model())
|
{
|
TASK_TASK task = edm.TASK_TASK.FirstOrDefault(x => x.ID == webEntity.id);
|
if (task == null)
|
{
|
//无此角色
|
msg = "无此任务";
|
return false;
|
}
|
else
|
{
|
task.TASKLEVEL = -1;
|
task.ISHURRY = 1;
|
edm.SaveChanges();
|
return true;
|
}
|
}
|
}
|
|
/// <summary>
|
/// 提高优先级(强)
|
/// </summary>
|
/// <param name="webEntity"></param>
|
/// <param name="msg"></param>
|
/// <returns></returns>
|
public static bool MustTask(TaskWebEntity webEntity, out string msg)
|
{
|
msg = "";
|
using (Model edm = new Model())
|
{
|
TASK_TASK task = edm.TASK_TASK.FirstOrDefault(x => x.ID == webEntity.id);
|
|
if (task == null)
|
{
|
//无此角色
|
msg = "无此任务";
|
return false;
|
}
|
else
|
{
|
if ((!task.SOURCEPLACE.Contains("-") && Convert.ToInt32(task.SOURCEPLACE) > 34) || (!task.TOPLACE.Contains("-") && Convert.ToInt32(task.TOPLACE) > 34))
|
{
|
TASK_TASK anotherTask = edm.TASK_TASK.FirstOrDefault(x => x.ENABLE == 1 && x.MUST == 1 && x.HASFINISHED == 0 && ((!x.SOURCEPLACE.Contains("-") && x.SOURCEPLACE.CompareTo("34") > 0) || (!x.TOPLACE.Contains("-") && x.TOPLACE.CompareTo("34") > 0)));
|
if (anotherTask != null)
|
{
|
msg = "此侧已存在强制任务";
|
return false;
|
}
|
}
|
else if ((!task.SOURCEPLACE.Contains("-") && Convert.ToInt32(task.SOURCEPLACE) <= 34) || (!task.TOPLACE.Contains("-") && Convert.ToInt32(task.TOPLACE) <= 34))
|
{
|
TASK_TASK anotherTask = edm.TASK_TASK.FirstOrDefault(x => x.ENABLE == 1 && x.MUST == 1 && x.HASFINISHED == 0 && ((!x.SOURCEPLACE.Contains("-") && x.SOURCEPLACE.CompareTo("34") <= 0) || (!x.TOPLACE.Contains("-") && x.TOPLACE.CompareTo("34") <= 0)));
|
if (anotherTask != null)
|
{
|
msg = "此侧已存在强制任务";
|
return false;
|
}
|
}
|
task.MUST = 1;
|
edm.SaveChanges();
|
return true;
|
}
|
}
|
}
|
|
/// <summary>
|
/// 删除
|
/// </summary>
|
/// <param name="webDevice"></param>
|
/// <returns></returns>
|
public static bool Delete(TaskWebEntity webEntity, out string msg)
|
{
|
msg = "";
|
using (Model edm = new Model())
|
{
|
|
TASK_TASK task = edm.TASK_TASK.FirstOrDefault(x => x.ID == webEntity.id);
|
if (task == null)
|
{
|
//无此角色
|
msg = "无此任务";
|
return false;
|
}
|
if (task.HASREADED == 1)
|
{
|
//已解析
|
msg = "已解析";
|
return false;
|
}
|
else
|
{
|
//删除记录
|
List<TASK_RECORD> recordList = edm.TASK_RECORD.Where(x => x.TASKID == task.ID).ToList();
|
edm.TASK_RECORD.RemoveRange(recordList);
|
////删组盘
|
//List<BASE_CONTAINER_VS_ITEM> cviList = edm.BASE_CONTAINER_VS_ITEM.Where(x => (x.ENABLE ?? 0) == 1 && x.CONTAINERID == task.CONTAINERID).ToList();
|
//edm.BASE_CONTAINER_VS_ITEM.RemoveRange(cviList);
|
//删任务
|
task.ENABLE = 0;
|
task.TASKSTATUS = "任务删除";
|
if (edm.SaveChanges() > 0)
|
{
|
WZ.Useful.Commons.LogTextHelper.WriteLine("TaskSqlFunc", "Delete", "删除成功"+task.ID);
|
return true;
|
}
|
else
|
{
|
msg = "保存失败";
|
return false;
|
}
|
}
|
}
|
}
|
|
/// <summary>
|
/// Pda出库库位下拉数据
|
/// </summary>
|
/// <param name="itemName"></param>
|
/// <param name="containerName"></param>
|
/// <param name="isStartPlace"></param>
|
/// <param name="msg"></param>
|
/// <returns></returns>
|
public static List<TaskCommonEntity> GetOutTaskPlace(string itemName, string containerName, int isStartPlace, out string msg)
|
{
|
msg = "";
|
try
|
{
|
using (Model edm = new Model())
|
{
|
List<TaskCommonEntity> tclst = new List<TaskCommonEntity>();
|
|
List<string> pvclst = new List<string>();
|
if (isStartPlace==1)
|
{
|
if (!string.IsNullOrEmpty(containerName))
|
{
|
pvclst = edm.View_BASE_PLACE_VS_CONTAINER.Where(x => x.containerName.Contains(containerName)).Select(x => x.place).Distinct().ToList();
|
}
|
else
|
{
|
if (!string.IsNullOrEmpty(itemName))
|
{
|
pvclst = edm.View_BASE_PLACE_VS_CONTAINER.Where(x => x.itemName.Contains(itemName)).Select(x => x.place).Distinct().ToList();
|
}
|
else
|
{
|
pvclst = edm.View_BASE_PLACE_VS_CONTAINER.Select(x => x.place).Distinct().ToList();
|
}
|
}
|
var conlst = edm.View_BASE_PLACE.Where(x => pvclst.Contains(x.place)).ToList();
|
var maintask = edm.View_TASK_TASK.Where(x => x.hasFinished == 0).ToList();
|
int id = 1;
|
conlst.ForEach(x =>
|
{
|
var task = maintask.FirstOrDefault(y => y.sourcePlace == x.place || y.toPlace == x.place);
|
if (task == null)
|
{
|
tclst.Add(new TaskCommonEntity() { id = id, lable = x.place, value = x.place });
|
id++;
|
}
|
});
|
}
|
else
|
{
|
var lst = edm.BASE_PRODUCTIONLINE.Where(x => x.ISDESTINATION == 0 && x.PRODUCTIONLINENAME.Contains("出口")).ToList();
|
if (lst != null && lst.Count > 0)
|
{
|
int id = 1;
|
lst.ForEach(x =>
|
{
|
tclst.Add(new TaskCommonEntity() { id = id, lable = x.PRODUCTIONLINENAME, value = x.PRODUCTIONLINECODE });
|
id++;
|
});
|
}
|
}
|
return tclst;
|
}
|
}
|
catch (Exception)
|
{
|
msg = "获取失败!";
|
return null;
|
}
|
}
|
/// <summary>
|
/// 出库下拉零件信息
|
/// </summary>
|
/// <param name="itemName"></param>
|
/// <param name="msg"></param>
|
/// <returns></returns>
|
public static List<TaskCommonEntity> GetOutTaskItem(string itemName, out string msg)
|
{
|
msg = "";
|
try
|
{
|
using (Model edm = new Model())
|
{
|
List<TaskCommonEntity> tclst = new List<TaskCommonEntity>();
|
List<string> pvclst = new List<string>();
|
if (!string.IsNullOrEmpty(itemName))
|
{
|
pvclst = edm.View_BASE_PLACE_VS_CONTAINER.Where(x => x.itemName.Contains(itemName)).Select(x => x.itemName).Distinct().ToList();
|
}
|
else
|
{
|
pvclst = edm.View_BASE_PLACE_VS_CONTAINER.Select(x => x.itemName).Distinct().ToList();
|
}
|
var itemlst = edm.View_BASE_ITEM.Where(x => pvclst.Contains(x.itemName)).ToList();
|
int id = 1;
|
itemlst.ForEach(x =>
|
{
|
tclst.Add(new TaskCommonEntity() { id = id, lable=x.itemName,value=x.itemDes });
|
id++;
|
});
|
return tclst;
|
}
|
}
|
catch (Exception)
|
{
|
msg = "获取失败!";
|
return null;
|
}
|
}
|
|
/// <summary>
|
/// 出库下拉托盘信息
|
/// </summary>
|
/// <param name="itemName"></param>
|
/// <param name="msg"></param>
|
/// <returns></returns>
|
public static List<TaskCommonEntity> GetOutTaskContainer(string itemName, out string msg)
|
{
|
msg = "";
|
try
|
{
|
using (Model edm = new Model())
|
{
|
List<TaskCommonEntity> tclst = new List<TaskCommonEntity>();
|
List<string> pvclst = new List<string>();
|
if (!string.IsNullOrEmpty(itemName))
|
{
|
pvclst = edm.View_BASE_PLACE_VS_CONTAINER.Where(x => x.itemName.Contains(itemName)).Select(x => x.containerName).Distinct().ToList();
|
}else
|
{
|
pvclst = edm.View_BASE_PLACE_VS_CONTAINER.Select(x => x.containerName).Distinct().ToList();
|
}
|
var conlst = edm.View_BASE_CONTAINER.Where(x => pvclst.Contains(x.containerName)).ToList();
|
var maintask = edm.View_TASK_TASK.Where(x => x.hasFinished == 0).Select(x => x.containerName).Distinct().ToList();
|
int id = 1;
|
conlst.ForEach(x =>
|
{
|
if (maintask == null ||!maintask.Contains(x.containerName))
|
{
|
tclst.Add(new TaskCommonEntity() { id = id, lable = x.containerName, value = x.containerName });
|
id++;
|
}
|
});
|
|
return tclst;
|
}
|
}
|
catch (Exception)
|
{
|
msg = "获取失败!";
|
return null;
|
}
|
}
|
|
/// <summary>
|
/// 统计出入口数量
|
/// </summary>
|
/// <param name="itemName"></param>
|
/// <param name="msg"></param>
|
/// <returns></returns>
|
public static List<TimeVsTaskNumWebEntity> GetOutTaskContainer(TaskWebEntity webEntity, out string msg)
|
{
|
Dictionary<int, int> InEnter = new Dictionary<int, int>()
|
{
|
{1,47},
|
{2,48},
|
{3,61},
|
{4,65},
|
{5,32},
|
{7,15}
|
};
|
Dictionary<int, int> OutEnter = new Dictionary<int, int>()
|
{
|
{1,68},
|
{2,51},
|
{3,64},
|
{4,67},
|
{5,34},
|
{6,30},
|
{7,19},
|
{8,12}
|
};
|
msg = "";
|
try
|
{
|
List<TimeVsTaskNumWebEntity> result = new List<TimeVsTaskNumWebEntity>();
|
|
|
webEntity.createTimeStart=webEntity.createTimeStart.Value.Date;
|
//webEntity.createTimeEnd = webEntity.createTimeEnd.Value.Date.AddDays(1);
|
|
List<View_TASK_TASK> taskList = SearchView(webEntity, 1, 99999999, out msg);
|
|
TimeVsTaskNumWebEntity allTimeVsTaskNumWebEntity = new TimeVsTaskNumWebEntity();
|
TaskNumAllEnterWebEntity allTaskNumAllEnterWebEntity = new TaskNumAllEnterWebEntity();
|
allTaskNumAllEnterWebEntity.inEnterVsNumList = new List<TaskNumOnEnterWebEntity>();
|
allTaskNumAllEnterWebEntity.outEnterVsNumList = new List<TaskNumOnEnterWebEntity>();
|
allTimeVsTaskNumWebEntity.time = "0:00 - " + "24:00";
|
for (var h = 0; h < 24; h++)//24小时
|
{
|
DateTime start=webEntity.createTimeStart.Value.AddHours(h);
|
DateTime end=webEntity.createTimeStart.Value.AddHours(h+1);
|
List<View_TASK_TASK> hourTaskList = taskList.Where(x => x.createTime > start && x.createTime < end).ToList();
|
TaskNumAllEnterWebEntity taskNumAllEnterWebEntity = new TaskNumAllEnterWebEntity();
|
taskNumAllEnterWebEntity.inEnterVsNumList = new List<TaskNumOnEnterWebEntity>();
|
taskNumAllEnterWebEntity.outEnterVsNumList = new List<TaskNumOnEnterWebEntity>();
|
taskNumAllEnterWebEntity.inNum = hourTaskList.Where(x => x.taskType == 1).Count();
|
taskNumAllEnterWebEntity.outNum = hourTaskList.Where(x => x.taskType == 2).Count();
|
taskNumAllEnterWebEntity.allNum = taskNumAllEnterWebEntity.inNum + taskNumAllEnterWebEntity.outNum;
|
taskNumAllEnterWebEntity.inExchange = hourTaskList.Where(x => x.taskType == 1 && x.isExchange == 1).Count();
|
taskNumAllEnterWebEntity.outExchange = hourTaskList.Where(x => x.taskType == 2 && x.isExchange == 1).Count();
|
|
allTaskNumAllEnterWebEntity.inNum += taskNumAllEnterWebEntity.inNum;
|
allTaskNumAllEnterWebEntity.outNum += taskNumAllEnterWebEntity.outNum;
|
allTaskNumAllEnterWebEntity.allNum = allTaskNumAllEnterWebEntity.inNum + allTaskNumAllEnterWebEntity.outNum;
|
allTaskNumAllEnterWebEntity.inExchange += taskNumAllEnterWebEntity.inExchange;
|
allTaskNumAllEnterWebEntity.outExchange += taskNumAllEnterWebEntity.outExchange;
|
|
for (int i = 1; i < 9; i++)
|
{
|
int enterNo = 0;
|
if (InEnter.TryGetValue(i, out enterNo))
|
{
|
TaskNumOnEnterWebEntity nve = new TaskNumOnEnterWebEntity();
|
nve.enter = enterNo;
|
nve.num = hourTaskList.Where(x => x.taskType == 1 && x.sourcePlace == enterNo.ToString()).Count();
|
taskNumAllEnterWebEntity.inEnterVsNumList.Add(nve);
|
//总计
|
if (allTaskNumAllEnterWebEntity.inEnterVsNumList.FirstOrDefault(x => x.enter == enterNo) == null)
|
{
|
TaskNumOnEnterWebEntity allNve = new TaskNumOnEnterWebEntity();
|
allNve.enter = enterNo;
|
allNve.num += nve.num;
|
allTaskNumAllEnterWebEntity.inEnterVsNumList.Add(allNve);
|
}
|
else
|
{
|
allTaskNumAllEnterWebEntity.inEnterVsNumList.FirstOrDefault(x => x.enter == enterNo).num += nve.num;
|
}
|
}
|
}
|
for (int i = 1; i < 9; i++)
|
{
|
int enterNo = 0;
|
if (OutEnter.TryGetValue(i, out enterNo))
|
{
|
TaskNumOnEnterWebEntity nve = new TaskNumOnEnterWebEntity();
|
nve.enter = enterNo;
|
nve.num = hourTaskList.Where(x => x.taskType == 2 && x.toPlace == enterNo.ToString()).Count();
|
taskNumAllEnterWebEntity.outEnterVsNumList.Add(nve);
|
|
//总计
|
if (allTaskNumAllEnterWebEntity.outEnterVsNumList.FirstOrDefault(x => x.enter == enterNo) == null)
|
{
|
TaskNumOnEnterWebEntity allNve = new TaskNumOnEnterWebEntity();
|
allNve.enter = enterNo;
|
allNve.num += nve.num;
|
allTaskNumAllEnterWebEntity.outEnterVsNumList.Add(allNve);
|
}
|
else
|
{
|
allTaskNumAllEnterWebEntity.outEnterVsNumList.FirstOrDefault(x => x.enter == enterNo).num += nve.num;
|
}
|
}
|
}
|
TimeVsTaskNumWebEntity timeVsTaskNumWebEntity = new TimeVsTaskNumWebEntity();
|
timeVsTaskNumWebEntity.data = taskNumAllEnterWebEntity;
|
timeVsTaskNumWebEntity.time = h + ":00 - " + (h + 1) + ":00";
|
result.Add(timeVsTaskNumWebEntity);
|
}
|
allTimeVsTaskNumWebEntity.data = allTaskNumAllEnterWebEntity;
|
result.Add(allTimeVsTaskNumWebEntity);
|
|
return result;
|
}
|
catch (Exception)
|
{
|
msg = "获取失败!";
|
return null;
|
}
|
}
|
}
|
}
|