| | |
| | | using 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_Comm; |
| | | using WIDESEA_Common; |
| | | 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> |
| | |
| | | var endDate = startDate.AddMonths(1).AddDays(-1); |
| | | var today = DateTime.Today; |
| | | |
| | | var data2 = db.Find(x => x.agv_createtime >= startDate && x.agv_createtime <= endDate); |
| | | var data2 = db.Find(x => x.agv_finishedtime >= startDate && x.agv_finishedtime <= endDate); |
| | | |
| | | var data3 = db.Find(x => x.agv_finishedtime >= today && x.agv_finishedtime < today.AddDays(1)).ToList(); |
| | | |
| | | // ç»è®¡è¿æçå
¥åºæ°é |
| | | var monthlyInventory = data2.Where(x => x.agv_tasktype == "TaskType_Inbound").Sum(x => x.agv_qty); |
| | | var monthlyInventory = data2.Where(x => x.agv_tasktype == AGVTaskTypeEnum.TaskType_Inbound.ToString()).Sum(x => x.agv_qty); |
| | | |
| | | // ç»è®¡è¿æçåºåºæ°é |
| | | var monthlyOutbound = data2.Where(x => x.agv_tasktype == "TaskType_Outbound").Sum(x => x.agv_qty); |
| | | var monthlyOutbound = data2.Where(x => x.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || x.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString()).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 == AGVTaskTypeEnum.TaskType_Inbound.ToString()).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 == AGVTaskTypeEnum.TaskType_Outbound.ToString() || x.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString()).Sum(x => x.agv_qty); |
| | | |
| | | var data = new |
| | | { |
| | |
| | | [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); |
| | |
| | | |
| | | |
| | | //仿¥å¾
æ£æµå
¥åº |
| | | var dayTaskType_Inbound = data2.Where(x => x.agv_tasktype == "TaskType_Inbound").Sum(x => x.agv_qty); |
| | | var dayTaskType_Inbound = data2.Where(x => x.agv_tasktype == AGVTaskTypeEnum.TaskType_Inbound.ToString()).Sum(x => x.agv_qty); |
| | | //å¾
æ£æµåºåº |
| | | var dayTaskType_Outbound = data2.Where(x => x.agv_tasktype == "TaskType_Outbound").Sum(x => x.agv_qty); |
| | | var dayTaskType_Outbound = data2.Where(x => x.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString()).Sum(x => x.agv_qty); |
| | | //å¤ååºå
¥åº |
| | | var dayTaskType_OutsourceInbound = data2.Where(x => x.agv_tasktype == "TaskType_OutsourceInbound").Sum(x => x.agv_qty); |
| | | var dayTaskType_OutsourceInbound = data2.Where(x => x.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceInbound.ToString()).Sum(x => x.agv_qty); |
| | | //å¤ååºåºåº |
| | | var dayTaskType_OutsourceOutbound = data2.Where(x => x.agv_tasktype == "TaskType_OutsourceOutbound").Sum(x => x.agv_qty); |
| | | var dayTaskType_OutsourceOutbound = data2.Where(x => x.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceOutbound.ToString()).Sum(x => x.agv_qty); |
| | | //å¾
æ£ç§»åºå¤å |
| | | var dayTaskType_OutsourceCarry = data2.Where(x => x.agv_tasktype == "TaskType_OutsourceCarry").Sum(x => x.agv_qty); |
| | | var dayTaskType_OutsourceCarry = data2.Where(x => x.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString()).Sum(x => x.agv_qty); |
| | | //ç©ºææ°é |
| | | var dayTaskType_EmptyPallet = data2.Where(x => x.agv_tasktype == "TaskType_EmptyPallet").Sum(x => x.agv_qty); |
| | | var dayTaskType_EmptyPallet = data2.Where(x => x.agv_tasktype == AGVTaskTypeEnum.TaskType_EmptyPallet.ToString()).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 == AGVTaskTypeEnum.TaskType_Inbound.ToString()).Sum(x => x.agv_qty); |
| | | // ç»è®¡è¿æçåºåºæ°é |
| | | var monthlyOutbound = data4.Where(x => x.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || x.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString()).Sum(x => x.agv_qty); |
| | | // ç»è®¡ä»æ¥å
¥åºæ°é |
| | | var dayInventory = data2.Where(x => x.agv_tasktype == AGVTaskTypeEnum.TaskType_Inbound.ToString()).Sum(x => x.agv_qty); |
| | | |
| | | // ç»è®¡ä»æ¥åºåºæ°é |
| | | var dayOutbound = data2.Where(x => x.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || x.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString()).Sum(x => x.agv_qty); |
| | | |
| | | |
| | | var data3 = db2.Find(_ => true).ToList(); |
| | | 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, |
| | |
| | | tray_type = g.Key.tray_type |
| | | }).ToList(); |
| | | |
| | | var Number_wheels = Number_wheels1.Where(x => x.stationType != TrayTypeEnum.LargeTray.ToString() && x.stationType != TrayTypeEnum.SmallTray.ToString()).ToList(); |
| | | #endregion |
| | | |
| | | |
| | | #region æªä½¿ç¨çå
容 |
| | | //ç»è®¡ä¸æå£åæ ¼çä¸ä¸åæ ¼ç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åå
|
| | |
| | | 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 |
| | |
| | | qualified2, |
| | | areaper, |
| | | Number_wheels, |
| | | monthlyInventory, |
| | | monthlyOutbound, |
| | | dayInventory, |
| | | dayOutbound, |
| | | }; |
| | | return Ok(data); |
| | | } |
| | |
| | | [HttpPost("Warehouse_area")] |
| | | public object Warehouse_area() |
| | | { |
| | | |
| | | |
| | | VOLContext volContext = new VOLContext(); |
| | | Idt_stationinfoRepository db = new dt_stationinfoRepository(volContext); |
| | | string[] areas = { "2", "3", "4" }; |
| | | var data2 = db.Find(a => areas.Contains(a.area)).ToList(); |
| | | var data2 = db.Find(a => areas.Contains(a.area)).OrderBy(x => x.stationCode).ToList(); |
| | | var dataList = new List<dynamic>(); |
| | | |
| | | foreach (string area in areas) |
| | |
| | | Area = x.Key.area, |
| | | x.Key.line, |
| | | x.Key.stationType, |
| | | combined_heatNumber = string.Join(", ", x.Select(y => y.heatNumber).Distinct()) |
| | | 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) |
| | | .ToList(); |
| | | .OrderBy(x => x.line) |
| | | //.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(); |
| | | } |
| | |
| | | |
| | | #region ç¬¬åæ¿å |
| | | /// <summary> |
| | | /// 15æ¥å
çåºå
¥åº |
| | | /// 5æ¥å
çåºå
¥åº |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost("fifteenTotal_quantityndex")] |
| | |
| | | { |
| | | 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(); |
| | | var data2 = db.Find(x => x.agv_finishedtime >= startDate && x.agv_finishedtime < today.AddDays(1)).ToList(); |
| | | |
| | | var result = dateRange.Reverse().Select(date => |
| | | { |
| | | // ç»è®¡å½æ¥å
¥åºæ°é |
| | | var dayInventory = data2.Where(x => x.agv_createtime >= date && x.agv_createtime < date.AddDays(1) && x.agv_tasktype == "TaskType_Inbound").Sum(x => x.agv_qty); |
| | | var dayInventory = data2.Where(x => x.agv_finishedtime >= date && x.agv_finishedtime < date.AddDays(1) && x.agv_tasktype == AGVTaskTypeEnum.TaskType_Inbound.ToString()).Sum(x => x.agv_qty); |
| | | |
| | | // ç»è®¡å½æ¥åºåºæ°é |
| | | var dayOutbound = data2.Where(x => x.agv_createtime >= date && x.agv_createtime < date.AddDays(1) && x.agv_tasktype == "TaskType_Outbound").Sum(x => x.agv_qty); |
| | | var dayOutbound = data2.Where(x => x.agv_finishedtime >= date && x.agv_finishedtime < date.AddDays(1) && x.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || x.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString()).Sum(x => x.agv_qty); |
| | | |
| | | return new |
| | | { |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region ç¬¬äºæ¿å |
| | | #region 第å
æ¿å |
| | | /// <summary> |
| | | /// å½åagvä»»å¡ |
| | | /// </summary> |
| | |
| | | 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").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) |
| | | { |
| | |
| | | case "SendOut": |
| | | item.agv_taskstate = "å·²ä¸å"; |
| | | break; |
| | | case "Pause": |
| | | item.agv_taskstate = "æå"; |
| | | break; |
| | | default: |
| | | return "æªç¥ä»»å¡ç¶æ"; |
| | | } |
| | |
| | | |
| | | } |
| | | #endregion |
| | | |
| | | #region ç¬¬ä¸æ¿åï¼æ°å¢å
å®¹ï¼ |
| | | /// <summary> |
| | | /// å·¥åä¿¡æ¯VV_Workinfo |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | /*[HttpPost("Workinfo_information")] |
| | | public object Workinfo_information() |
| | | { |
| | | |
| | | }*/ |
| | | #endregion |
| | | } |
| | | } |