From 441b6f8d257a01b2998253ef0515a201777d7e68 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期五, 04 七月 2025 14:06:49 +0800
Subject: [PATCH] 修改入库、移库、出库逻辑
---
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Interface/LargeScreenController.cs | 179 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 167 insertions(+), 12 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Interface/LargeScreenController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Interface/LargeScreenController.cs"
index 848802a..cb1ea08 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Interface/LargeScreenController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Interface/LargeScreenController.cs"
@@ -3,11 +3,15 @@
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;
@@ -21,35 +25,186 @@
private readonly ILocationInfoService _locationInfoService;
private readonly ITaskRepository _taskRepository;
private readonly ITask_HtyRepository _taskHtyRepository;
+ private readonly IStockInfoDetailRepository _stockInfoDetailRepository;
private readonly IInboundOrderDetailRepository _inboundOrderDetailRepository;
- public LargeScreenController(ILocationInfoService locationInfoService, ITaskRepository taskRepository, ITask_HtyRepository taskHtyRepository, 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)
{
- List<Dt_Task_Hty> task_Hties = _taskHtyRepository.QueryData(x => x.TaskType == TaskInboundTypeEnum.Inbound.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()).ToList();
- List<Dt_InboundOrderDetail> inboundOrderDetails = _inboundOrderDetailRepository.QueryData(x => x.OrderDetailStatus <= OrderDetailStatusEnum.GroupAndInbound.ObjToInt()).ToList();
- return WebResponseContent.Instance.OK(data: new
+ WebResponseContent webResponseContent = new WebResponseContent();
+ var name = model.MainData["Name"].ToString();
+
+ List<Dt_Task_Hty> task_Hties = new List<Dt_Task_Hty>();
+ if (name != "鍏ュ簱")
{
- task_Htiesqty = task_Hties.Count,
- task_htysqty = task_htys.Count,
- tasksqty = tasks.Count,
- inboundOrderDetailsqty = inboundOrderDetails.Sum(x => x.OrderQuantity - x.OverInQuantity)
- });
+ 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;
}
}
}
--
Gitblit v1.9.3