From 7ca9651f81d7b84f054194d3d46fdbd1d9c8b922 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期三, 09 七月 2025 22:55:27 +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