From 06a22e3d6d75e811affc35e12d00e8fd4259d869 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周日, 09 6月 2024 16:06:55 +0800 Subject: [PATCH] 222 --- iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceProcess/WorkPieceProcessService.cs | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 110 insertions(+), 0 deletions(-) diff --git a/iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceProcess/WorkPieceProcessService.cs b/iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceProcess/WorkPieceProcessService.cs index 035d7d3..ca9e64d 100644 --- a/iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceProcess/WorkPieceProcessService.cs +++ b/iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceProcess/WorkPieceProcessService.cs @@ -250,6 +250,116 @@ return new FileStreamResult(ms, "application/octet-stream") { FileDownloadName = fileName }; } + + #region 浜ч噺鏌ヨ [Editby shaocx,2024-06-08] + + /// <summary> + /// 浜ч噺鏌ヨ + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpGet("queryYield")] + public async Task<PageResult<QueryYieldOutput>> QueryYield([FromQuery] WorkPieceProcessSearch input) + { + + var workPieceProcesss = await (from process in _workPieceProcessRep.DetachedEntities + join baseinfo in _equipmentBaseInfoRep.DetachedEntities on process.EquipmentID equals baseinfo.EquipmentId into joinedEmpty + from baseinfo2 in joinedEmpty.DefaultIfEmpty() + join workPiece in _workPieceInfoRep.DetachedEntities on process.WorkPieceID equals workPiece.WorkPieceID into joined2Empty + from workPiece2 in joined2Empty.DefaultIfEmpty() + where process.IsDeleted == false && process.WorkPieceID.Contains(string.IsNullOrEmpty(input.WorkPieceID) ? "" : input.WorkPieceID) + && process.QualityState == (input.QualityState.HasValue ? input.QualityState.Value : process.QualityState) + && process.EquipmentID == (string.IsNullOrEmpty(input.EquipmentID) ? process.EquipmentID : input.EquipmentID) + && process.WorkingProcedureCurrent == (string.IsNullOrEmpty(input.WorkingProcedureCurrent) ? process.WorkingProcedureCurrent : input.WorkingProcedureCurrent) + && workPiece2.OP80NewCode == (string.IsNullOrEmpty(input.OP80NewCode) ? workPiece2.OP80NewCode : input.OP80NewCode) + && process.EquipmentID == (string.IsNullOrEmpty(input.EquipmentID) ? process.EquipmentID : input.EquipmentID) + && process.OperationType == (string.IsNullOrEmpty(input.OperationType) ? process.OperationType : input.OperationType) + && !string.IsNullOrEmpty(process.WorkPieceID) + && process.StartTime >= (input.StartTimeBeginTime.HasValue ? input.StartTimeBeginTime : DateTime.MinValue) + && process.StartTime <= (input.StartTimeEndTime.HasValue ? input.StartTimeEndTime : DateTime.MaxValue) + select new WorkPieceProcessOutput + { + + Id = process.Id, + WorkPieceID = process.WorkPieceID, + EquipmentID = process.EquipmentID, + EquipmentName = (baseinfo2 == null ? "" : baseinfo2.EquipmentName), + OP80NewCode = workPiece2.OP80NewCode, + + WorkingProcedureCurrent = process.WorkingProcedureCurrent, + StartTime = process.StartTime, + EndTime = process.EndTime, + QualityState = process.QualityState, + QualityDataInfoID = process.QualityDataInfoID, + OperationType = process.OperationType, + CreateUserName = process.CreatedUserName + }).OrderBy(o => o.StartTime) + .ProjectToType<QueryYieldOutput>() + .ToADPagedListAsync(input.PageNo, input.PageSize); + + return workPieceProcesss; + } + + /// <summary> + /// 瀵煎嚭浜ч噺鏌ヨ + /// </summary> + /// <param name="input"></param> + /// <returns>瀵煎嚭鐨凟xcel鏂囦欢</returns> + [HttpGet("exportYield")] + public async Task<IActionResult> ExportYield([FromQuery] WorkPieceProcessSearch input) + { + var workPieceMachiningInfos = await (from process in _workPieceProcessRep.DetachedEntities + join baseinfo in _equipmentBaseInfoRep.DetachedEntities + on process.EquipmentID equals baseinfo.EquipmentId into joinedEmpty + from baseinfo2 in joinedEmpty.DefaultIfEmpty() + join workPiece in _workPieceInfoRep.DetachedEntities on process.WorkPieceID equals workPiece.WorkPieceID into joined2Empty + from workPiece2 in joined2Empty.DefaultIfEmpty() + where process.IsDeleted == false && process.WorkPieceID.Contains(string.IsNullOrEmpty(input.WorkPieceID) ? "" : input.WorkPieceID) + && process.QualityState == (input.QualityState.HasValue ? input.QualityState.Value : process.QualityState) + && process.EquipmentID == (string.IsNullOrEmpty(input.EquipmentID) ? process.EquipmentID : input.EquipmentID) + && process.WorkingProcedureCurrent == (string.IsNullOrEmpty(input.WorkingProcedureCurrent) ? process.WorkingProcedureCurrent : input.WorkingProcedureCurrent) + && process.EquipmentID == (string.IsNullOrEmpty(input.EquipmentID) ? process.EquipmentID : input.EquipmentID) + && workPiece2.OP80NewCode == (string.IsNullOrEmpty(input.OP80NewCode) ? workPiece2.OP80NewCode : input.OP80NewCode) + && process.OperationType == (string.IsNullOrEmpty(input.OperationType) ? process.OperationType : input.OperationType) + && !string.IsNullOrEmpty(process.WorkPieceID) + && process.StartTime >= (input.StartTimeBeginTime.HasValue ? input.StartTimeBeginTime : DateTime.MinValue) + && process.StartTime <= (input.StartTimeEndTime.HasValue ? input.StartTimeEndTime : DateTime.MaxValue) + select new WorkPieceProcessExcelOutput + { + OP80NewCode = workPiece2.OP80NewCode, + + Id = process.Id, + WorkPieceID = process.WorkPieceID, + //EquipmentID = process.EquipmentID, + EquipmentName = (baseinfo2 == null ? "" : baseinfo2.EquipmentName), + WorkingProcedureCurrent = process.WorkingProcedureCurrent, + StartTime = process.StartTime.ToString(), + EndTime = process.EndTime.ToString(), + //QualityState = process.QualityState, + CreateUserName = process.CreatedUserName + }).OrderBy(o => o.StartTime).Distinct() + .ProjectToType<WorkPieceProcessExcelOutput>() + .ToListAsync(); + + + foreach (WorkPieceProcessExcelOutput item in workPieceMachiningInfos) + { + item.StartTime = string.IsNullOrEmpty(item.StartTime) ? "" : Convert.ToDateTime(item.StartTime).ToString("yyyy-MM-dd hh:mm:ss"); + item.EndTime = string.IsNullOrEmpty(item.EndTime) ? "" : Convert.ToDateTime(item.EndTime).ToString("yyyy-MM-dd hh:mm:ss"); + } + + MemoryStream ms = new(); + DataConvertUtil.ToExcelData(workPieceMachiningInfos, _sysDictTypeRep, _sysDictDataRep, out List<string> headers, + out List<List<object>> data, out string sheetName); + + ExcelUtil.ToExcel(headers, data, sheetName, ms); + ms.Position = 0; + var fileName = HttpUtility.UrlEncode($"{sheetName}[{DateTimeOffset.Now:yyyy-MM-dd}].xlsx", Encoding.GetEncoding("UTF-8")); + return new FileStreamResult(ms, "application/octet-stream") { FileDownloadName = fileName }; + } + + #endregion + /// <summary> /// 鍒嗛〉鏌ヨ宸ヤ欢鍔犲伐(宸ヤ欢淇℃伅琛�) /// </summary> -- Gitblit v1.9.3