From 08dd2afd7a9614dad029e94918516b068d413cac Mon Sep 17 00:00:00 2001 From: huanghongfeng <huanghongfeng@hnkhzn.com> Date: 星期四, 04 七月 2024 17:46:41 +0800 Subject: [PATCH] 大屏 --- 代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/LargescreenController.cs | 100 +++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 79 insertions(+), 21 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/LargescreenController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/LargescreenController.cs" index e55686b..6f72987 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/LargescreenController.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/LargescreenController.cs" @@ -1,19 +1,24 @@ 锘縰sing Microsoft.AspNetCore.Mvc; +using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; +using OfficeOpenXml.FormulaParsing.Excel.Functions.Numeric; +using System; using System.Collections.Generic; using System.Linq; -using System; +using System.Security.Cryptography; +using System.Xml.Linq; using WIDESEA_Core.EFDbContext; +using WIDESEA_Entity.DomainModels; using WIDESEA_WMS.IRepositories; using WIDESEA_WMS.Repositories; -using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; namespace WIDESEA_WebApi.Controllers { + [Route("api/[controller]")] [ApiController] public class LargescreenController : Controller //澶у睆骞曟暟鎹� { - #region 绗竴鏉垮潡缁熻鍥� + #region 绗竴鏉垮潡缁熻鍥撅紝鏈娇鐢� /// <summary> /// 鏈堬紝鏃ュ嚭鍏ュ簱鏁伴噺缁熻 /// </summary> @@ -93,6 +98,8 @@ var data2 = db.Find(x => x.agv_createtime >= startDate && x.agv_createtime <= endDate); + var data3 = db.Find(x => x.agv_createtime >= today && x.agv_createtime < today.AddDays(1)).ToList(); + // 缁熻杩欐湀鐨勫叆搴撴暟閲� var monthlyInventory = data2.Where(x => x.agv_tasktype == "TaskType_Inbound").Sum(x => x.agv_qty); @@ -100,10 +107,10 @@ var monthlyOutbound = data2.Where(x => x.agv_tasktype == "TaskType_Outbound").Sum(x => x.agv_qty); // 缁熻浠婃棩鍏ュ簱鏁伴噺 - var dayInventory = data2.Where(x => x.agv_tasktype == "TaskType_Inbound").Sum(x => x.agv_qty); + var dayInventory = data3.Where(x => x.agv_tasktype == "TaskType_Inbound").Sum(x => x.agv_qty); // 缁熻浠婃棩鍑哄簱鏁伴噺 - var dayOutbound = data2.Where(x => x.agv_tasktype == "TaskType_Outbound").Sum(x => x.agv_qty); + var dayOutbound = data3.Where(x => x.agv_tasktype == "TaskType_Outbound").Sum(x => x.agv_qty); var data = new { @@ -125,8 +132,7 @@ [HttpPost("Outbound_inventory")] public object Outbound_inventory() { - - + #region 浣跨敤涓殑鍐呭 VOLContext volContext = new VOLContext(); Idt_agvtask_htyRepository db = new dt_agvtask_htyRepository(volContext); Idt_stationinfoRepository db2 = new dt_stationinfoRepository(volContext); @@ -147,11 +153,25 @@ //绌烘墭鏁伴噺 var dayTaskType_EmptyPallet = data2.Where(x => x.agv_tasktype == "TaskType_EmptyPallet").Sum(x => x.agv_qty); + //缁熻鏈堝叆搴撴�婚噺 + var startDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); + var endDate = startDate.AddMonths(1).AddDays(-1); + var data4 = db.Find(x => x.agv_createtime >= startDate && x.agv_createtime <= endDate); + // 缁熻杩欐湀鐨勫叆搴撴暟閲� + var monthlyInventory = data4.Where(x => x.agv_tasktype == "TaskType_Inbound").Sum(x => x.agv_qty); + // 缁熻杩欐湀鐨勫嚭搴撴暟閲� + var monthlyOutbound = data4.Where(x => x.agv_tasktype == "TaskType_Outbound").Sum(x => x.agv_qty); + // 缁熻浠婃棩鍏ュ簱鏁伴噺 + var dayInventory = data2.Where(x => x.agv_tasktype == "TaskType_Inbound").Sum(x => x.agv_qty); - var data3 = db2.Find(_ => true).ToList(); + // 缁熻浠婃棩鍑哄簱鏁伴噺 + var dayOutbound = data2.Where(x => x.agv_tasktype == "TaskType_Outbound").Sum(x => x.agv_qty); + + + var data3 = db2.Find(_ => true).Where(x => x.stationCode.Contains("A") || x.stationCode.Contains("B") || x.stationCode.Contains("C") || x.stationCode.Contains("D01")).ToList(); //搴撳尯鍥惧彿鏁伴噺,澶栧姞绌烘墭鏁伴噺 - var Number_wheels = data3.Where(_ => true) + var Number_wheels1 = data3.Where(_ => true) .GroupBy(s => new { stationType = string.IsNullOrEmpty(s.stationType) ? s.tray_type : s.stationType, @@ -163,6 +183,11 @@ tray_type = g.Key.tray_type }).ToList(); + var Number_wheels = Number_wheels1.Where(x => x.stationType != "LargeTray" && x.stationType != "SmallTray").ToList(); + #endregion + + + #region 鏈娇鐢ㄧ殑鍐呭 //缁熻涓嬫枡鍙e悎鏍肩巼涓庝笉鍚堟牸鐜�1鍗曞厓 var dayTaskType_Inbound2 = data2.Where(x => x.agv_tasktype == "TaskType_Inbound" && (x.agv_fromaddress == "X01001001" || x.agv_fromaddress == "X01001002") && x.agv_createtime >= today && x.agv_createtime < today.AddDays(1)).Sum(x => x.agv_qty); //澶栧崗搴撳叆搴�1鍗曞厓 @@ -184,6 +209,10 @@ var sumkw = data3.Where(a => a.stationCode.Contains("B") || a.stationCode.Contains("C") || a.stationCode.Contains("D01")).Count(); //鑾峰彇搴撳尯搴撲綅 var sumzy = data3.Where(a => (a.stationCode.Contains("B") || a.stationCode.Contains("C") || a.stationCode.Contains("D01")) && a.location_state == "Stroge").Count(); //鑾峰彇琚崰鐢ㄧ殑 var areaper = ((double)sumzy / sumkw).ToString("P0"); + #endregion + + + var data = new @@ -198,6 +227,10 @@ qualified2, areaper, Number_wheels, + monthlyInventory, + monthlyOutbound, + dayInventory, + dayOutbound, }; return Ok(data); } @@ -230,9 +263,23 @@ x.Key.stationType, combined_heatNumber = string.Join(", ", x.Select(y => y.heatNumber).Distinct()) }) - .Where(x => !string.IsNullOrEmpty(x.stationType) && !string.IsNullOrEmpty(x.combined_heatNumber)) .OrderBy(x => x.Area) .ThenBy(x => x.line) + .GroupBy(x => x.line) // 浣跨敤 GroupBy 鎸� Line 瀛楁鍒嗙粍 + .Select(group => + { + // 鎵惧埌姣忎釜鍒嗙粍涓涓�涓� stationType 涓嶄负绌虹殑鍏冪礌 + var firstWithStationType = group.FirstOrDefault(x => !string.IsNullOrEmpty(x.stationType)); + if (firstWithStationType != null) + { + return firstWithStationType; + } + else + { + // 濡傛灉鍒嗙粍涓兘鏄� stationType 涓虹┖锛屽垯杩斿洖绗竴涓厓绱狅紙姝ゆ椂鍗充负 stationType 涓虹┖鐨勶級 + return group.First(); + } + }) .ToList(); dataList = dataList.Concat(data).ToList(); @@ -243,7 +290,7 @@ #region 绗洓鏉垮潡 /// <summary> - /// 15鏃ュ唴鐨勫嚭鍏ュ簱 + /// 5鏃ュ唴鐨勫嚭鍏ュ簱 /// </summary> /// <returns></returns> [HttpPost("fifteenTotal_quantityndex")] @@ -251,9 +298,9 @@ { VOLContext volContext = new VOLContext(); Idt_agvtask_htyRepository db = new dt_agvtask_htyRepository(volContext); - var startDate = DateTime.Today.AddDays(-15); // 鑾峰彇褰撳墠鏃ユ湡涔嬪墠15澶╃殑鏃ユ湡 + var startDate = DateTime.Today.AddDays(-5); // 鑾峰彇褰撳墠鏃ユ湡涔嬪墠15澶╃殑鏃ユ湡 var today = DateTime.Today; - var dateRange = Enumerable.Range(0, 15).Select(offset => today.AddDays(-offset)); // 鑾峰彇鏈�杩�15澶╃殑鏃ユ湡鑼冨洿 + var dateRange = Enumerable.Range(0, 5).Select(offset => today.AddDays(-offset)); // 鑾峰彇鏈�杩�15澶╃殑鏃ユ湡鑼冨洿 var data2 = db.Find(x => x.agv_createtime >= startDate && x.agv_createtime < today.AddDays(1)).ToList(); @@ -281,7 +328,7 @@ } #endregion - #region 绗簲鏉垮潡 + #region 绗叚鏉垮潡 /// <summary> /// 褰撳墠agv浠诲姟 /// </summary> @@ -293,14 +340,10 @@ Idt_agvtaskRepository db = new dt_agvtaskRepository(volContext); var dataList = db.Find(_ => true).OrderByDescending(x => x.agv_createtime).ToList(); - var data = dataList.Where(x => x.agv_taskstate != "闃熷垪" && x.agv_taskstate != "Queue" && x.agv_taskstate != "浠诲姟鏆傚仠" && x.agv_taskstate != "Pause").ToList(); - - if (data.Count < 10) + var data = dataList.Where(x => x.agv_taskstate != "闃熷垪" && x.agv_taskstate != "Queue" && x.agv_taskstate != "鏆傚仠" && x.agv_taskstate != "Pause").ToList(); + if (data.Count <= 15) { - var additionalData = dataList.Where(x => x.agv_taskstate == "闃熷垪" || x.agv_taskstate == "Queue") - .Take(10 - data.Count) - .ToList(); - data.AddRange(additionalData); + data = dataList.Take(15).ToList(); } foreach (var item in data) { @@ -354,6 +397,9 @@ case "SendOut": item.agv_taskstate = "宸蹭笅鍙�"; break; + case "Pause": + item.agv_taskstate = "鏆傚仠"; + break; default: return "鏈煡浠诲姟鐘舵��"; } @@ -363,5 +409,17 @@ } #endregion + + #region 绗竷鏉垮潡锛堟柊澧炲唴瀹癸級 + /// <summary> + /// 宸ュ崟淇℃伅VV_Workinfo + /// </summary> + /// <returns></returns> + /*[HttpPost("Workinfo_information")] + public object Workinfo_information() + { + + }*/ + #endregion } } -- Gitblit v1.9.3