From 5573ddf8f8b977d25561529b1ee912aca9b93801 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周五, 13 9月 2024 09:49:45 +0800
Subject: [PATCH] 1
---
iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceProcess/WorkPieceProcessService.cs | 315 +++++++++++++++++++++++++---------------------------
1 files changed, 151 insertions(+), 164 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 ca9e64d..edf7a6d 100644
--- a/iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceProcess/WorkPieceProcessService.cs
+++ b/iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceProcess/WorkPieceProcessService.cs
@@ -16,7 +16,9 @@
using System.Linq;
using System.Linq.Dynamic.Core;
using System.Text;
+using System.Text.RegularExpressions;
using System.Web;
+using static OfficeOpenXml.FormulaParsing.EpplusExcelDataProvider;
namespace iWare.Wms.Application
{
@@ -33,6 +35,7 @@
private readonly IRepository<EquipmentBaseInfo, MasterDbContextLocator> _equipmentBaseInfoRep;
private readonly IRepository<SysDictType, MasterDbContextLocator> _sysDictTypeRep;
private readonly IRepository<SysDictData, MasterDbContextLocator> _sysDictDataRep;
+ private readonly IRepository<WorkPieceLog, MasterDbContextLocator> _workPieceLogRep;
/// <summary>
@@ -44,6 +47,7 @@
/// <param name="sysDictTypeRep"></param>
/// <param name="sysDictDataRep"></param>
public WorkPieceProcessService(
+ IRepository<WorkPieceLog, MasterDbContextLocator> workPieceLogRep,
IRepository<WorkPieceProcess, MasterDbContextLocator> workPieceProcessRep,
IRepository<WorkPieceInfo, MasterDbContextLocator> workPieceInfoRep,
IRepository<EquipmentBaseInfo, MasterDbContextLocator> equipmentBaseInfoRep,
@@ -51,6 +55,7 @@
IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep
)
{
+ _workPieceLogRep = workPieceLogRep;
_workPieceInfoRep = workPieceInfoRep;
_workPieceProcessRep = workPieceProcessRep;
_equipmentBaseInfoRep = equipmentBaseInfoRep;
@@ -66,33 +71,44 @@
[HttpGet("workPieceProcessMachiningPage")]
public async Task<PageResult<WorkPieceProcessOutput>> WorkPieceProcessMachiningPage([FromQuery] WorkPieceProcessSearch input)
{
- //var LeftJoin = from emp in ListOfEmployees
- // join dept in ListOfDepartment
- // on emp.DeptID equals dept.ID into JoinedEmpDept
- // from dept in JoinedEmpDept.DefaultIfEmpty()
- // select new
- // {
- // EmployeeName = emp.Name,
- // DepartmentName = dept != null ? dept.Name : null
- // };
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.CreatedUserName.Contains(string.IsNullOrEmpty(input.createUserName) ? "" : input.createUserName)
+ && process.UpdatedUserName.Contains(string.IsNullOrEmpty(input.updatedUserName) ? "" : input.updatedUserName)
+
+ && (
+ (input.IsHaveOP80Code == "N" && string.IsNullOrEmpty(workPiece2.OP80NewCode))
+ || (input.IsHaveOP80Code == "Y" && !string.IsNullOrEmpty(workPiece2.OP80NewCode))
+ || (string.IsNullOrEmpty(input.IsHaveOP80Code) && 1 == 1)
+ )
+
&& 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
{
-
+ UpdatedUserName = process.UpdatedUserName,
+ DataCapturePointCname = process.DataCapturePointCname,
+ UpdateDataCapturePointCname = process.UpdateDataCapturePointCname,
+ QualityNoOk = process.QualityNoOk,
+ QualityNoOkReason = process.QualityNoOkReason,
Id = process.Id,
WorkPieceID = process.WorkPieceID,
EquipmentID = process.EquipmentID,
@@ -106,64 +122,10 @@
QualityDataInfoID = process.QualityDataInfoID,
OperationType = process.OperationType,
CreateUserName = process.CreatedUserName
- }).OrderBy(o => o.StartTime)
+ }).OrderByDescending(o => o.StartTime)
.ProjectToType<WorkPieceProcessOutput>()
.ToADPagedListAsync(input.PageNo, input.PageSize);
- // var workPieceProcesss1 = _workPieceProcessRep.DetachedEntities.GroupJoin(_equipmentBaseInfoRep.DetachedEntities
- // , process => process.EquipmentID
- //, baseinfo => baseinfo.EquipmentId
- //, (process, baseinfo) => new { a = process, b = baseinfo.FirstOrDefault() })
- // .Where(!string.IsNullOrEmpty(input.WorkPieceID), u => u.a.WorkPieceID.Contains(input.WorkPieceID))
- //.Where(!string.IsNullOrEmpty(input.QualityState.ToString()), u => u.a.QualityState == input.QualityState)
- //.Where(!string.IsNullOrEmpty(input.EquipmentID), u => u.a.EquipmentID.Equals(input.EquipmentID))
- //.Where(!string.IsNullOrEmpty(input.WorkingProcedureCurrent), u => u.a.WorkingProcedureCurrent.Equals(input.WorkingProcedureCurrent))
- //.Where(!string.IsNullOrEmpty(input.StartTime.ToString()), u => u.a.StartTime >= input.StartTime)
- //.Where(!string.IsNullOrEmpty(input.EndTime.ToString()), u => u.a.EndTime <= input.EndTime)
- //.Select(s => new WorkPieceProcessOutput
- //{
- // Id = s.a.Id,
- // WorkPieceID = s.a.WorkPieceID,
- // EquipmentID = s.a.EquipmentID,
- // EquipmentName = (s.b == null ? "" : s.b.EquipmentName),
- // WorkingProcedureCurrent = s.a.WorkingProcedureCurrent,
- // StartTime = s.a.StartTime,
- // EndTime = s.a.EndTime,
- // QualityState = s.a.QualityState,
- // QualityDataInfoID = s.a.QualityDataInfoID
- //}).ToList();
- // .OrderBy(PageInputOrder.OrderBuilder<WorkPieceProcessSearch>(input))
- //.ProjectToType<WorkPieceProcessOutput>()
- // .ToADPagedListAsync(input.PageNo, input.PageSize)
- ;
-
-
- //var workPieceProcesss = await _workPieceProcessRep.DetachedEntities
- // .Join(_equipmentBaseInfoRep.DetachedEntities, a => a.EquipmentID, b => b.EquipmentId, (a, b) => new { a, b })
- // .Join(_sysDictDataRep.DetachedEntities, e => e.a.QualityState.ToString(), f => f.Code, (e, f) => new { e, f })
- // .Join(_sysDictTypeRep.DetachedEntities, g => g.f.TypeId, h => h.Id, (f, g) => new { f, g })
- // .Where(x => (x.g.Code.Equals("quality_state")))
- // .Where(!string.IsNullOrEmpty(input.WorkPieceID), u => u.f.e.a.WorkPieceID.Contains(input.WorkPieceID))
- // .Where(!string.IsNullOrEmpty(input.EquipmentID), u => u.f.e.a.EquipmentID.Equals(input.EquipmentID))
- // .Where(!string.IsNullOrEmpty(input.QualityState.ToString()), u => u.f.e.a.QualityState == input.QualityState)
- // .Where(!string.IsNullOrEmpty(input.WorkingProcedureCurrent), u => u.f.e.a.WorkingProcedureCurrent.Equals(input.WorkingProcedureCurrent))
- // .Where(input.OnlineTimeBeginTime != null, u => u.f.e.a.StartTime >= input.OnlineTimeBeginTime)
- // .Where(input.OnlineTimeEndTime != null, u => u.f.e.a.StartTime <= input.OnlineTimeEndTime)
- // .Select(s => new WorkPieceProcessOutput
- // {
- // Id = s.f.e.a.Id,
- // WorkPieceID = s.f.e.a.WorkPieceID,
- // WorkingProcedureCurrent = s.f.e.a.WorkingProcedureCurrent,
- // EquipmentID = s.f.e.a.EquipmentID,
- // EquipmentName = s.f.e.b.EquipmentName,
- // StartTime = s.f.e.a.StartTime,
- // EndTime = s.f.e.a.EndTime,
- // QualityStateName = s.f.f.Value,
- // })
- // .Distinct()
- // .OrderBy(PageInputOrder.OrderBuilder<WorkPieceProcessSearch>(input))
- // .ProjectToType<WorkPieceProcessOutput>()
- // .ToADPagedListAsync(input.PageNo, input.PageSize);
return workPieceProcesss;
}
@@ -187,12 +149,24 @@
&& 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.CreatedUserName.Contains(string.IsNullOrEmpty(input.createUserName) ? "" : input.createUserName)
+ && process.UpdatedUserName.Contains(string.IsNullOrEmpty(input.updatedUserName) ? "" : input.updatedUserName)
+
+
+ && (
+ (input.IsHaveOP80Code == "N" && string.IsNullOrEmpty(workPiece2.OP80NewCode))
+ || (input.IsHaveOP80Code == "Y" && !string.IsNullOrEmpty(workPiece2.OP80NewCode))
+ || (string.IsNullOrEmpty(input.IsHaveOP80Code) && 1 == 1)
+ )
+
&& 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,
@@ -204,35 +178,10 @@
EndTime = process.EndTime.ToString(),
//QualityState = process.QualityState,
CreateUserName = process.CreatedUserName
- }).OrderBy(o => o.StartTime).Distinct()
+ }).OrderByDescending(o => o.StartTime).Distinct()
.ProjectToType<WorkPieceProcessExcelOutput>()
.ToListAsync();
- //var workPieceMachiningInfos = await _workPieceProcessRep.DetachedEntities
- // .Join(_equipmentBaseInfoRep.DetachedEntities, a => a.EquipmentID, b => b.EquipmentId, (a, b) => new { a, b })
- // .Join(_sysDictDataRep.DetachedEntities, e => e.a.QualityState.ToString(), f => f.Code, (e, f) => new { e, f })
- // .Join(_sysDictTypeRep.DetachedEntities, g => g.f.TypeId, h => h.Id, (f, g) => new { f, g })
- // .Where(x => (x.g.Code.Equals("quality_state")))
- // .Where(!string.IsNullOrEmpty(input.WorkPieceID), u => u.f.e.a.WorkPieceID.Contains(input.WorkPieceID))
- // .Where(!string.IsNullOrEmpty(input.EquipmentID), u => u.f.e.a.EquipmentID.Equals(input.EquipmentID))
- // .Where(!string.IsNullOrEmpty(input.QualityState.ToString()), u => u.f.e.a.QualityState == input.QualityState)
- // .Where(!string.IsNullOrEmpty(input.WorkingProcedureCurrent), u => u.f.e.a.WorkingProcedureCurrent.Equals(input.WorkingProcedureCurrent))
- // .Where(input.OnlineTimeBeginTime != null, u => u.f.e.a.StartTime >= input.OnlineTimeBeginTime)
- // .Where(input.OnlineTimeEndTime != null, u => u.f.e.a.StartTime <= input.OnlineTimeEndTime)
- // .Select(s => new WorkPieceProcessExcelOutput
- // {
- // Id = s.f.e.a.Id,
- // WorkPieceID = s.f.e.a.WorkPieceID,
- // WorkingProcedureCurrent = s.f.e.a.WorkingProcedureCurrent,
- // EquipmentName = s.f.e.b.EquipmentName,
- // StartTime = s.f.e.a.StartTime.ToString(),
- // EndTime = s.f.e.a.EndTime.ToString(),
- // QualityStateName = s.f.f.Value,
- // })
- // .Distinct()
- // .OrderBy(PageInputOrder.OrderBuilder<WorkPieceProcessSearch>(input))
- // .ProjectToType<WorkPieceProcessExcelOutput>()
- // .ToListAsync();
foreach (WorkPieceProcessExcelOutput item in workPieceMachiningInfos)
{
@@ -261,41 +210,44 @@
[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,
+ var workPieceProcesss2 = 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 QueryYieldOutput
+ {
+ //EquipmentID = process.EquipmentID,
+ //EquipmentName = baseinfo2.EquipmentName,
+ WorkingProcedureCurrent = process.WorkingProcedureCurrent,
+ WorkPieceID = process.WorkPieceID,
+ //StartTime = grouped.Key.StartTime,
+ YieldCount = 0
+ }).Distinct().ToListAsync();
- 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);
+
+ var workPieceProcesss = workPieceProcesss2.GroupBy(x => new { x.WorkingProcedureCurrent }).Select(y => new QueryYieldOutput
+ {
+ //EquipmentID = y.Key.EquipmentID,
+ //EquipmentName = y.Key.EquipmentName,
+ WorkingProcedureCurrent = y.Key.WorkingProcedureCurrent,
+ //StartTime = grouped.Key.StartTime,
+ YieldCount = y.ToList().Count
+ })
+ .OrderBy(x => x.WorkingProcedureCurrent)
+ .ToADPagedList(input.PageNo, input.PageSize);
+
return workPieceProcesss;
}
@@ -308,48 +260,72 @@
[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");
- }
+ input.PageNo = 1;
+ input.PageSize = 1000000;
+ var workPieceMachiningInfos2 = QueryYield(input);
+ var workPieceMachiningInfos = workPieceMachiningInfos2.Result.Rows.ToList();
+ var daList = workPieceMachiningInfos.Adapt<List<ExportYieldOutput>>();
MemoryStream ms = new();
- DataConvertUtil.ToExcelData(workPieceMachiningInfos, _sysDictTypeRep, _sysDictDataRep, out List<string> headers,
+ DataConvertUtil.ToExcelData(daList, _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
+
+
+
+ #region 閲囬泦鏃ュ織鏌ヨ [Editby shaocx,2024-06-08]
+
+ /// <summary>
+ /// 閲囬泦鏃ュ織鏌ヨ
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ [HttpGet("queryWorkPieceLogYield")]
+ public async Task<PageResult<QueryWorkPieceLogYieldOutput>> QueryWorkPieceLogYield([FromQuery] WorkPieceLogYieldInput input)
+ {
+
+ var resutlt = await _workPieceLogRep.DetachedEntities
+ .Where(!string.IsNullOrEmpty(input.WorkPieceID), u => u.WorkPieceID.Contains(input.WorkPieceID))
+ .Where(!string.IsNullOrEmpty(input.workingProcedure), u => u.WorkingProcedure.Contains(input.workingProcedure))
+ .Where(!string.IsNullOrEmpty(input.createdUserName), u => u.CreatedUserName.Contains(input.createdUserName))
+ .Where(!string.IsNullOrEmpty(input.DataCapturePointCname), u => u.DataCapturePointCname.Contains(input.DataCapturePointCname))
+ .Where(!string.IsNullOrEmpty(input.PieceLogTypeName), u => u.PieceLogTypeName.Contains(input.PieceLogTypeName))
+ .Where(input.PieceLogType != null, u => u.PieceLogType == input.PieceLogType)
+ .Where(!string.IsNullOrEmpty(input.remarks), u => u.Remarks.Contains(input.remarks))
+ .Where(!string.IsNullOrEmpty(input.StartTimeBeginTime.ToString()), u => u.CreatedTime >= input.StartTimeBeginTime)
+ .Where(!string.IsNullOrEmpty(input.StartTimeEndTime.ToString()), u => u.CreatedTime <= input.StartTimeEndTime)
+
+
+ .OrderBy(PageInputOrder.OrderBuilder<WorkPieceLogYieldInput>(input))
+ .ProjectToType<QueryWorkPieceLogYieldOutput>()
+ .ToADPagedListAsync(input.PageNo, input.PageSize);
+ return resutlt;
+
+ }
+
+ /// <summary>
+ /// 瀵煎嚭閲囬泦鏃ュ織鏌ヨ
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns>瀵煎嚭鐨凟xcel鏂囦欢</returns>
+ [HttpGet("exportWorkPieceLogYield")]
+ public async Task<IActionResult> ExportWorkPieceLogYield([FromQuery] WorkPieceLogYieldInput input)
+ {
+ input.PageNo = 1;
+ input.PageSize = 1000000;
+ var workPieceMachiningInfos2 = QueryWorkPieceLogYield(input);
+ var workPieceMachiningInfos = workPieceMachiningInfos2.Result.Rows.ToList();
+ var daList = workPieceMachiningInfos.Adapt<List<ExportYQueryWorkPieceLogYieldOutput>>();
+
+ MemoryStream ms = new();
+ DataConvertUtil.ToExcelData(daList, _sysDictTypeRep, _sysDictDataRep, out List<string> headers,
out List<List<object>> data, out string sheetName);
ExcelUtil.ToExcel(headers, data, sheetName, ms);
@@ -375,6 +351,10 @@
.Where(x => (x.g.Code.Equals("workpiece_state") && (string.IsNullOrEmpty(input.WorkPieceState.ToString()) ? true : x.f.f.Code.Equals(input.WorkPieceState.ToString()))))
.Where(!string.IsNullOrEmpty(input.WorkPieceID), u => u.f.e.a.WorkPieceID.Contains(input.WorkPieceID))
.Where(!string.IsNullOrEmpty(input.OP80NewCode), u => u.f.e.a.OP80NewCode.Contains(input.OP80NewCode))
+
+ .Where(input.IsHaveOP80Code == "Y", u => !string.IsNullOrEmpty(u.f.e.a.OP80NewCode))
+ .Where(input.IsHaveOP80Code == "N", u => string.IsNullOrEmpty(u.f.e.a.OP80NewCode))
+
.Where(!string.IsNullOrEmpty(input.WorkPieceState.ToString()), u => u.f.e.a.WorkPieceState == input.WorkPieceState)
.Where(!string.IsNullOrEmpty(input.EquipmentID), u => u.f.e.a.EquipmentID.Equals(input.EquipmentID))
.Where(!string.IsNullOrEmpty(input.WorkingProcedureCurrent), u => u.f.e.a.WorkingProcedureCurrent.Equals(input.WorkingProcedureCurrent))
@@ -384,7 +364,10 @@
.Where(o => o.f.e.a.QualityState == (input.QualityState.HasValue ? input.QualityState.Value : o.f.e.a.QualityState))
.Select(s => new WorkPieceInfoMachiningPageOutput
{
+ QualityNoOk = s.f.e.a.QualityNoOk,
+ QualityNoOkReason = s.f.e.a.QualityNoOkReason,
Id = s.f.e.a.Id,
+
WorkPieceID = s.f.e.a.WorkPieceID,
WorkPieceState = s.f.e.a.WorkPieceState,
WorkPieceStateName = s.f.f.Value,
@@ -421,6 +404,10 @@
.Where(x => (x.g.Code.Equals("workpiece_state") && (string.IsNullOrEmpty(input.WorkPieceState.ToString()) ? true : x.f.f.Code.Equals(input.WorkPieceState.ToString()))))
.Where(!string.IsNullOrEmpty(input.WorkPieceID), u => u.f.e.a.WorkPieceID.Contains(input.WorkPieceID))
.Where(!string.IsNullOrEmpty(input.OP80NewCode), u => u.f.e.a.OP80NewCode.Contains(input.OP80NewCode))
+
+ .Where(input.IsHaveOP80Code == "Y", u => !string.IsNullOrEmpty(u.f.e.a.OP80NewCode))
+ .Where(input.IsHaveOP80Code == "N", u => string.IsNullOrEmpty(u.f.e.a.OP80NewCode))
+
.Where(!string.IsNullOrEmpty(input.WorkPieceState.ToString()), u => u.f.e.a.WorkPieceState == input.WorkPieceState)
.Where(!string.IsNullOrEmpty(input.EquipmentID), u => u.f.e.a.EquipmentID.Equals(input.EquipmentID))
.Where(!string.IsNullOrEmpty(input.WorkingProcedureCurrent), u => u.f.e.a.WorkingProcedureCurrent.Equals(input.WorkingProcedureCurrent))
--
Gitblit v1.9.3