From 76eef0389848065963a295c66163a630697054fa Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期日, 07 七月 2024 09:47:01 +0800
Subject: [PATCH] PDA
---
代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/LargescreenController.cs | 138 ++++++++++++++++++++++++++++++++-------------
1 files changed, 98 insertions(+), 40 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..ff8c896 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,26 @@
锘縰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_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>
@@ -91,19 +98,21 @@
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
{
@@ -125,8 +134,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);
@@ -135,23 +143,37 @@
//浠婃棩寰呮娴嬪叆搴�
- 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,
@@ -163,6 +185,11 @@
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 鏈娇鐢ㄧ殑鍐呭
//缁熻涓嬫枡鍙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 +211,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 +229,10 @@
qualified2,
areaper,
Number_wheels,
+ monthlyInventory,
+ monthlyOutbound,
+ dayInventory,
+ dayOutbound,
};
return Ok(data);
}
@@ -211,12 +246,10 @@
[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)
@@ -228,12 +261,26 @@
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();
}
@@ -243,7 +290,7 @@
#region 绗洓鏉垮潡
/// <summary>
- /// 15鏃ュ唴鐨勫嚭鍏ュ簱
+ /// 5鏃ュ唴鐨勫嚭鍏ュ簱
/// </summary>
/// <returns></returns>
[HttpPost("fifteenTotal_quantityndex")]
@@ -251,19 +298,19 @@
{
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
{
@@ -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