using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Mvc;
|
using SqlSugar;
|
using SqlSugar.Extensions;
|
using System.Threading.Tasks;
|
using WIDESEA_Common.TaskEnum;
|
using WIDESEA_Core;
|
using WIDESEA_Core.Enums;
|
using WIDESEA_DTO.LargeScreen;
|
using WIDESEA_IBasicService;
|
using WIDESEA_IInboundRepository;
|
using WIDESEA_IOutboundRepository;
|
using WIDESEA_IStockRepository;
|
using WIDESEA_ITaskInfoRepository;
|
using WIDESEA_Model.Models;
|
using WIDESEAWCS_DTO.WCSInfo;
|
|
namespace WIDESEA_WMSServer.Controllers
|
{
|
[Route("api/LargeScreen")]
|
[ApiController, AllowAnonymous]
|
public class LargeScreenController : Controller
|
{
|
private readonly ILocationInfoService _locationInfoService;
|
private readonly ITaskRepository _taskRepository;
|
private readonly ITask_HtyRepository _taskHtyRepository;
|
private readonly IStockInfoDetailRepository _stockInfoDetailRepository;
|
private readonly IInboundOrderDetailRepository _inboundOrderDetailRepository;
|
private readonly IInboundOrderRepository _inboundOrderRepository;
|
private readonly IOutboundOrderDetailRepository _outboundOrderDetailRepository;
|
private readonly IOutboundOrderRepository _outboundOrderRepository;
|
public LargeScreenController(ILocationInfoService locationInfoService, ITaskRepository taskRepository, ITask_HtyRepository taskHtyRepository, IInboundOrderDetailRepository inboundOrderDetailRepository, IInboundOrderRepository inboundOrderRepository, IOutboundOrderDetailRepository outboundOrderDetailRepository, IOutboundOrderRepository outboundOrderRepository, IStockInfoDetailRepository stockInfoDetailRepository)
|
{
|
_locationInfoService = locationInfoService;
|
_taskRepository = taskRepository;
|
_taskHtyRepository = taskHtyRepository;
|
_inboundOrderDetailRepository = inboundOrderDetailRepository;
|
_inboundOrderRepository = inboundOrderRepository;
|
_outboundOrderDetailRepository = outboundOrderDetailRepository;
|
_outboundOrderRepository = outboundOrderRepository;
|
_stockInfoDetailRepository = stockInfoDetailRepository;
|
}
|
[HttpPost, Route("GetStockInfos")]
|
public WebResponseContent GetStockInfos()
|
{
|
WebResponseContent webResponseContent = new WebResponseContent();
|
List<Dt_StockInfoDetail> _StockInfoDetails = _stockInfoDetailRepository.QueryData(x => x.Status == StockStatusEmun.已入库.ObjToInt());
|
List<StockInfo> stocks = new List<StockInfo>();
|
foreach (var item in _StockInfoDetails.GroupBy(x => x.MaterielCode))
|
{
|
StockInfo stockInfo = new StockInfo()
|
{
|
Name = item.First().MaterielName,
|
Qty = item.ToList().Count()
|
};
|
stocks.Add(stockInfo);
|
}
|
return webResponseContent.OK(data: stocks.OrderByDescending(x => x.Qty));
|
}
|
public class StockInfo
|
{
|
public string Name { get; set; }
|
public int Qty { get; set; }
|
}
|
[HttpPost, Route("GetLocationInfo")]
|
public WebResponseContent GetLocationInfo([FromBody] SaveModel model)
|
{
|
return _locationInfoService.GetLocationInfo(model);
|
}
|
/// <summary>
|
/// 获取工单信息
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost, Route("GetBoundOrder")]
|
public WebResponseContent GetBoundOrder([FromBody] SaveModel model)
|
{
|
WebResponseContent webResponseContent = new WebResponseContent();
|
try
|
{
|
var name = model.MainData["Name"].ToString();
|
List<BoundOrderDTO> boundOrderDTOs = new List<BoundOrderDTO>();
|
if (name == "入库")
|
{
|
List<Dt_InboundOrder> inboundOrders = _inboundOrderRepository.QueryData(x => true);
|
List<Dt_InboundOrderDetail> inboundOrderDetails = _inboundOrderDetailRepository.QueryData(y => inboundOrders.Select(x => x.Id).ToList().Contains(y.OrderId));
|
foreach (var item in inboundOrderDetails)
|
{
|
Dt_InboundOrder _InboundOrder = inboundOrders.Where(x => x.Id == item.OrderId).First();
|
BoundOrderDTO boundOrderDTO = new BoundOrderDTO()
|
{
|
OrderNo = _InboundOrder.OrderNo,
|
BatchNo = item.BatchNo,
|
MaterielCode = item.MaterielCode,
|
MaterielName = item.MaterielName,
|
OrderDetailStatus = item.OrderDetailStatus,
|
OrderQuantity = item.OrderQuantity,
|
OrderType = _InboundOrder.OrderType,
|
OverInQuantity = item.OverInQuantity,
|
};
|
boundOrderDTOs.Add(boundOrderDTO);
|
}
|
}
|
else
|
{
|
List<Dt_OutboundOrder> outboundOrders = _outboundOrderRepository.QueryData(x => true);
|
List<Dt_OutboundOrderDetail> outboundOrderDetails = _outboundOrderDetailRepository.QueryData(y => outboundOrders.Select(x => x.Id).ToList().Contains(y.OrderId));
|
foreach (var item in outboundOrderDetails)
|
{
|
Dt_OutboundOrder _OutboundOrder = outboundOrders.Where(x => x.Id == item.OrderId).First();
|
BoundOrderDTO boundOrderDTO = new BoundOrderDTO()
|
{
|
OrderNo = _OutboundOrder.OrderNo,
|
BatchNo = item.BatchNo,
|
MaterielCode = item.MaterielCode,
|
MaterielName = item.MaterielName,
|
OrderDetailStatus = item.OrderDetailStatus,
|
OrderQuantity = item.OrderQuantity,
|
OrderType = _OutboundOrder.OrderType,
|
OverInQuantity = item.OverOutQuantity,
|
};
|
boundOrderDTOs.Add(boundOrderDTO);
|
}
|
}
|
webResponseContent.OK(data: boundOrderDTOs);
|
}
|
catch (Exception ex)
|
{
|
webResponseContent.Error(ex.Message);
|
}
|
return webResponseContent;
|
}
|
[HttpPost, Route("GetTaskInfos")]
|
public WebResponseContent GetTaskInfos()
|
{
|
WebResponseContent webResponseContent = new WebResponseContent();
|
var date = DateTime.Now;
|
var date1 = DateTime.Today.AddDays(-1);
|
List<Dt_Task_Hty> Task_YearHties = _taskHtyRepository.QueryData(x => x.InsertTime.Year == date.Year).ToList();
|
List<Dt_Task_Hty> Task_Hties = Task_YearHties.Where(x => x.InsertTime.Date == date.Date).ToList();
|
List<Dt_Task_Hty> ZTask_Hties = Task_YearHties.Where(x => x.InsertTime.Date == date1.Date).ToList();
|
|
List<Dt_Task_Hty> _Task_InYearHties = Task_YearHties.Where(x => x.TaskType == TaskInboundTypeEnum.Inbound.ObjToInt() || x.TaskType == TaskInboundTypeEnum.PalletInbound.ObjToInt()).ToList();
|
List<Dt_Task_Hty> _Task_OutYearHties = Task_YearHties.Where(x => x.TaskType == TaskOutboundTypeEnum.Outbound.ObjToInt() || x.TaskType == TaskOutboundTypeEnum.PalletOutbound.ObjToInt()).ToList();
|
|
List<Dt_Task_Hty> _Task_InMonthHties = _Task_InYearHties.Where(x => x.InsertTime.Month == date.Month).ToList();
|
List<Dt_Task_Hty> _Task_OutMonthHties = _Task_OutYearHties.Where(x => x.InsertTime.Month == date.Month).ToList();
|
|
List<Dt_Task_Hty> _Task_InHties = _Task_InMonthHties.Where(x => x.InsertTime.Day == date.Day).ToList();
|
List<Dt_Task_Hty> _Task_OutHties = _Task_OutMonthHties.Where(x => x.InsertTime.Day == date.Day).ToList();
|
List<Dt_Task_Hty> _Task_ZInHties = _Task_InMonthHties.Where(x => x.InsertTime.Day == date1.Day).ToList();
|
List<Dt_Task_Hty> _Task_ZOutHties = _Task_OutMonthHties.Where(x => x.InsertTime.Day == date1.Day).ToList();
|
webResponseContent.OK(data: new
|
{
|
InYearHties = _Task_InYearHties.Count,
|
OutYearHties = _Task_OutYearHties.Count,
|
InMonthHties = _Task_InMonthHties.Count,
|
OutMonthHties = _Task_OutMonthHties.Count,
|
InHties = _Task_InHties.Count,
|
OutHties = _Task_OutHties.Count,
|
Hties = Task_Hties.Count,
|
ZHties = ZTask_Hties.Count,
|
ZInHties = _Task_ZInHties.Count,
|
ZOutHties = _Task_ZOutHties.Count,
|
});
|
return webResponseContent;
|
}
|
|
[HttpPost, Route("GetTask")]
|
public WebResponseContent GetTask([FromBody] SaveModel model)
|
{
|
WebResponseContent webResponseContent = new WebResponseContent();
|
var name = model.MainData["Name"].ToString();
|
|
List<Dt_Task_Hty> task_Hties = new List<Dt_Task_Hty>();
|
if (name != "入库")
|
{
|
task_Hties = _taskHtyRepository.QueryData(x => x.TaskType == TaskOutboundTypeEnum.Outbound.ObjToInt() || x.TaskType == TaskOutboundTypeEnum.PalletOutbound.ObjToInt()).ToList();
|
var task_htys = task_Hties.Where(x => x.InsertTime.Date == DateTime.Now.Date).ToList();
|
var tasks = _taskRepository.QueryData(x => x.TaskType == TaskOutboundTypeEnum.Outbound.ObjToInt() || x.TaskType == TaskOutboundTypeEnum.PalletOutbound.ObjToInt()).ToList();
|
|
List<Dt_OutboundOrderDetail> outboundOrderDetails = _outboundOrderDetailRepository.QueryData(x => x.OrderDetailStatus < OrderDetailStatusEnum.Outbound.ObjToInt()).ToList();
|
webResponseContent.OK(data: new
|
{
|
task_Htiesqty = task_Hties.Count,
|
task_htysqty = task_htys.Count,
|
tasksqty = tasks.Count,
|
inboundOrderDetailsqty = outboundOrderDetails.Sum(x => x.OrderQuantity - x.OverOutQuantity)
|
});
|
}
|
else
|
{
|
task_Hties = _taskHtyRepository.QueryData(x => x.TaskType == TaskInboundTypeEnum.Inbound.ObjToInt() || x.TaskType == TaskInboundTypeEnum.PalletInbound.ObjToInt()).ToList();
|
var task_htys = task_Hties.Where(x => x.InsertTime.Date == DateTime.Now.Date).ToList();
|
var tasks = _taskRepository.QueryData(x => x.TaskType == TaskInboundTypeEnum.Inbound.ObjToInt() || x.TaskType == TaskInboundTypeEnum.PalletInbound.ObjToInt()).ToList();
|
|
List<Dt_InboundOrderDetail> inboundOrderDetails = _inboundOrderDetailRepository.QueryData(x => x.OrderDetailStatus <= OrderDetailStatusEnum.GroupAndInbound.ObjToInt()).ToList();
|
webResponseContent.OK(data: new
|
{
|
task_Htiesqty = task_Hties.Count,
|
task_htysqty = task_htys.Count,
|
tasksqty = tasks.Count,
|
inboundOrderDetailsqty = inboundOrderDetails.Sum(x => x.OrderQuantity - x.OverInQuantity)
|
});
|
}
|
return webResponseContent;
|
}
|
}
|
}
|