using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using WIDESEA.Common;
|
using WIDESEA.Core.Utilities;
|
using WIDESEA.Entity.DomainModels;
|
using WIDESEA.Services.Repositories;
|
|
namespace WIDESEA.Services.Services
|
{
|
public partial class CommonFunction
|
{
|
public static string[] leftoutboundStation = new string[] { "70114", "70110", "70106", "70103" };
|
public static string[] rightoutboundStation = new string[] { "70113", "70109", "70104", "70101" };
|
public static WebResponseContent QueryHomeInfo(SaveModel saveModel)
|
{
|
WebResponseContent content = new WebResponseContent();
|
try
|
{
|
DateTime date = DateTime.Now.Date;
|
//空货位
|
int emptyCount = Dt_locationinfoRepository.Instance.Find(r => r.location_state == LocationState.LocationState_Empty.ToString() && !r.location_islocked).Count();
|
//异常货位
|
int errorCount = Dt_locationinfoRepository.Instance.Find(r => r.location_state == LocationState.LocationState_Error.ToString()).Count();
|
//入库任务
|
int inBoxCount = Dt_taskinfo_htyRepository.Instance.Find(r => r.task_type == TaskType.TaskType_Box_Pallet_Inbound.ToString()
|
&& r.task_createtime > date).Count();
|
//测量任务
|
int measureCount = Dt_taskinfo_htyRepository.Instance.Find(r => r.task_type == TaskType.TaskType_Box_Pallet_Measure_Back.ToString()
|
&& r.task_createtime > date).Count();
|
|
//库位使用率
|
List<int> locationCount = new List<int>();
|
for (int i = 1; i < 9; i++)
|
{
|
int lo = Dt_locationinfoRepository.Instance.Find(r => r.location_layer == i && (r.location_state != LocationState.LocationState_Empty.ToString() || r.location_islocked)).Count();
|
locationCount.Add(lo);
|
}
|
//库存统计
|
List<VV_ContainerInfo> listContainer = VV_ContainerInfoRepository.Instance.Find(r => r.location_state == LocationState.LocationState_Stored.ToString());
|
List<containerCount> containerCount = new List<containerCount>();
|
if (null != listContainer && listContainer.Count > 0)
|
{
|
foreach (var item in listContainer.GroupBy(r => new { r.materiel_id, r.containerdtl_type }))
|
{
|
// item.GroupBy(r => r.containerdtl_standard);
|
containerCount.Add(new containerCount()
|
{
|
materiel_id = item.Key.materiel_id,
|
containerdtl_type = item.Key.containerdtl_type,
|
newCount = item.Where(r => r.containerdtl_standard == "R0").Count(),
|
oldCount = item.Where(r => r.containerdtl_standard == "R1").Count(),
|
count = item.Count()
|
});
|
}
|
|
containerCount = containerCount.OrderByDescending(r => r.count).ToList();
|
}
|
List<object> leftCount = new List<object>();
|
List<object> rightCount = new List<object>();
|
foreach (var item in leftoutboundStation)
|
{
|
leftCount.Add(Dt_taskinfo_htyRepository.Instance.Find(r => r.task_type == TaskType.TaskType_Box_Pallet_Outbound.ToString() && r.task_endstation == item
|
&& r.task_createtime >= date).Count());
|
}
|
|
foreach (var item in rightoutboundStation)
|
{
|
rightCount.Add(Dt_taskinfo_htyRepository.Instance.Find(r => r.task_type == TaskType.TaskType_Box_Pallet_Outbound.ToString() && r.task_endstation == item
|
&& r.task_createtime >= date).Count());
|
}
|
|
//List<object> dateHty = new List<object>();
|
//List<object> outboundHty = new List<object>();
|
//List<object> inboundHty = new List<object>();
|
//List<object> measureHty = new List<object>();
|
//int z = -6;
|
//for (int i = 0; i < 7; i++)
|
//{
|
// DateTime dateTime = date.AddDays(z);
|
// dateHty.Add(dateTime.ToString("MM.dd"));
|
// outboundHty.Add(Dt_taskinfo_htyRepository.Instance.Find(r => r.task_createtime >= dateTime && r.task_createtime < dateTime.AddDays(1) && r.task_type == TaskType.TaskType_Box_Pallet_Outbound.ToString() && r.task_endstation != "20101")?.Count());
|
// inboundHty.Add(Dt_taskinfo_htyRepository.Instance.Find(r => r.task_createtime >= dateTime && r.task_createtime < dateTime.AddDays(1) && r.task_type == TaskType.TaskType_Box_Pallet_Inbound.ToString())?.Count());
|
// measureHty.Add(Dt_taskinfo_htyRepository.Instance.Find(r => r.task_createtime >= dateTime && r.task_createtime < dateTime.AddDays(1) && r.task_type == TaskType.TaskType_Box_Pallet_Measure_Back.ToString())?.Count());
|
// z += 1;
|
//}
|
|
int qty = listContainer.FindAll(r => r.containerdtl_text3 == "合格").Count();
|
int unqty = listContainer.FindAll(r => r.containerdtl_text3 == "不合格").Count();
|
int wiatqty = listContainer.FindAll(r => string.IsNullOrEmpty(r.containerdtl_text3)).Count();
|
List<int> containerTotol = new List<int>() { unqty, qty, wiatqty, listContainer.Count() };
|
content.OK(data: new
|
{
|
emptyCount = emptyCount,
|
errorCount = errorCount,
|
inBoxCount = inBoxCount,
|
measureCount = measureCount,
|
locationCount = locationCount,
|
leftCount = leftCount,
|
rightCount = rightCount,
|
//dateHty = dateHty,
|
//outboundHty = outboundHty,
|
//inboundHty = inboundHty,
|
//measureHty = measureHty,
|
containerCount = containerCount,
|
containerTotol = containerTotol
|
});
|
}
|
catch (Exception ex)
|
{
|
content.Error(ex.Message);
|
}
|
return content;
|
}
|
|
}
|
public class containerCount
|
{
|
public string materiel_id { get; set; }
|
public string containerdtl_type { get; set; }
|
public int newCount { get; set; }
|
public int oldCount { get; set; }
|
|
public int count { get; set; }
|
}
|
}
|