| | |
| | | using DocumentFormat.OpenXml.Office.CustomUI; |
| | | using Microsoft.CodeAnalysis.Operations; |
| | | using Admin.NET.Application.Service.WmsTask.WmsRbLineTask.Dto; |
| | | using Admin.NET.Application.Service.WmsCommonnQuery.Dto; |
| | | using System.Collections.Generic; |
| | | |
| | | namespace Admin.NET.Application; |
| | | /// <summary> |
| | |
| | | private readonly SqlSugarRepository<SysConfig> _sysConfigRep; |
| | | private readonly SqlSugarRepository<Mes_BatchOrderUPI_New> _mesBatchOrderUpiRep; |
| | | private readonly SqlSugarRepository<Mes_Order_Gather> _mesOrderGatherRep; |
| | | private readonly SqlSugarRepository<Mes_Package_UnLine_Record> _mesPackage_UnLine_RecordRep; |
| | | private readonly SqlSugarRepository<Mes_Package_LineQueue> _mesPackage_LineQueueRep; |
| | | |
| | | public WmsCommonnQueryService(SqlSugarRepository<WmsRbLineTask> rep, SqlSugarRepository<WmsStockQuan> wmsStockQuanRep |
| | | , SqlSugarRepository<Mes_Package_Gather> mesPackageGatherRep |
| | | , SqlSugarRepository<SysConfig> sysConfigRep |
| | | , SqlSugarRepository<Mes_BatchOrderUPI_New> mesBatchOrderUpiRep |
| | | , SqlSugarRepository<Mes_Order_Gather> mesOrderGatherRep |
| | | , SqlSugarRepository<Mes_Package_UnLine_Record> mesPackage_UnLine_RecordRep |
| | | , SqlSugarRepository<Mes_Package_LineQueue> mesPackage_LineQueueRep |
| | | ) |
| | | { |
| | | _sysConfigRep = sysConfigRep; |
| | |
| | | _wmsStockQuanRep = wmsStockQuanRep; |
| | | _mesBatchOrderUpiRep = mesBatchOrderUpiRep; |
| | | _mesOrderGatherRep = mesOrderGatherRep; |
| | | _mesPackage_UnLine_RecordRep = mesPackage_UnLine_RecordRep; |
| | | _mesPackage_LineQueueRep = mesPackage_LineQueueRep; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | return list; // 结果 |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 查询 计划生产订单记录 (大屏使用) |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | [ApiDescriptionSettings(Name = "QueryPlanOrderList")] |
| | | [Description("WmsCommonnQuery/QueryPlanOrderList")] |
| | | public async Task<List<Mes_Order_Gather>> QueryPlanOrderList() |
| | | { |
| | | var list = await _mesPackage_LineQueueRep.AsQueryable() |
| | | .OrderBy(g => g.Id) |
| | | .ToListAsync(); // 确保获取结果为 List |
| | | List<Mes_Order_Gather> resultList = new List<Mes_Order_Gather>(); |
| | | foreach (var item in list) |
| | | { |
| | | if (resultList.Select(x => x.Info5).ToList().Contains(item.Info5)) |
| | | { |
| | | |
| | | } |
| | | else |
| | | { |
| | | var mesOrderGather = await _mesOrderGatherRep.GetFirstAsync(x => x.Info5 == item.Info5); |
| | | if (mesOrderGather != null) |
| | | { |
| | | resultList.Add(mesOrderGather); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return resultList; // 结果 |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 查询 历史生产订单记录 (大屏使用) |
| | |
| | | public async Task<Mes_Order_Gather> QueryCurrentOrder() |
| | | { |
| | | //获取上班时间。 |
| | | var sysConfig_wms_wms_unline_oper = await _sysConfigRep.GetFirstAsync(x => x.Code == CommonConst.wms_unline_oper); |
| | | var sysConfig_wms_wms_unline_oper = await _sysConfigRep.GetFirstAsync(x => x.Code == CommonConst.WmsBZ30_QiTao); |
| | | if (sysConfig_wms_wms_unline_oper == null || sysConfig_wms_wms_unline_oper.Value == "无") |
| | | { |
| | | return null; |
| | |
| | | { |
| | | LoginUser = null, |
| | | TimeLogin = null, |
| | | List = null |
| | | }; |
| | | } |
| | | // 获取 wms_bz30_qitao 对应的值 |
| | | var param = list.FirstOrDefault(x => x.Code == "wms_bz30_qitao")?.Value; |
| | | // 获取包裹代码 |
| | | var PackageCode = string.IsNullOrEmpty(param) ? "" : param.Split("|")[0]; |
| | | // 获取包裹信息 |
| | | var packageGather = await _mesPackageGatherRep.GetFirstAsync(w => w.PackageCode == PackageCode); |
| | | |
| | | //获取上班时间。 |
| | | DateTime unLineTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")); |
| | | var sysConfig_wms_unline_time = await _sysConfigRep.GetFirstAsync(x => x.Code == CommonConst.wms_unline_time); |
| | | if (sysConfig_wms_unline_time == null || sysConfig_wms_unline_time.Value == "无") |
| | | { |
| | | |
| | | } |
| | | else |
| | | { |
| | | unLineTime = Convert.ToDateTime(sysConfig_wms_unline_time.Value); |
| | | } |
| | | |
| | | |
| | | var recordList = await _mesPackage_UnLine_RecordRep.AsQueryable() |
| | | .Where(x => x.CreateTime >= unLineTime) |
| | | .ToListAsync(); // 确保获取结果为 List |
| | | //汇总数据 |
| | | |
| | | |
| | | TimeSpan ts = DateTime.Now - unLineTime; |
| | | |
| | | // 返回结果 |
| | | return new ScreenLoginUserOutput |
| | | { |
| | | LoginUser = list.FirstOrDefault(x => x.Code == "wms_unline_oper")?.Value, |
| | | TimeLogin = list.FirstOrDefault(x => x.Code == "wms_unline_time")?.Value, |
| | | List = packageGather // 确保这里是一个有效的 Mes_Package_Gather 实例 |
| | | AllOrderNum = recordList.GroupBy(x => x.Info5).Count(), |
| | | AllPackageArea = recordList.Sum(x => Convert.ToDecimal((x.Info13))), |
| | | PackageNum = recordList.GroupBy(x => x.PackageCode).Count(), |
| | | WorkTime = ts.TotalHours |
| | | }; |
| | | } |
| | | |
| | | |
| | | public class ScreenLoginUserOutput |
| | | { |
| | | public string LoginUser { get; set; } // 分组的键 |
| | | public string TimeLogin { get; set; } // 登录时间(示例用) |
| | | public Mes_Package_Gather List { get; set; } // 包裹信息 |
| | | } |
| | | |
| | | |
| | | } |
| | | |