schangxiang@126.com
2024-06-08 d8ae39b2bafce2556e61b1686358924d498be95a
iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceProcess/WorkPieceProcessService.cs
@@ -25,6 +25,7 @@
    /// </summary>
    [ApiDescriptionSettings("数据查询服务", Name = "WorkPieceProcess", Order = 100)]
    [Route("api/[Controller]")]
    [DisableOpLog]
    public class WorkPieceProcessService : IWorkPieceProcessService, IDynamicApiController, ITransient
    {
        private readonly IRepository<WorkPieceProcess,MasterDbContextLocator> _workPieceProcessRep;
@@ -75,13 +76,15 @@
            //                   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
                                           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)
@@ -94,6 +97,8 @@
                        WorkPieceID = process.WorkPieceID,
                        EquipmentID = process.EquipmentID,
                        EquipmentName = (baseinfo2 == null ? "" : baseinfo2.EquipmentName),
                                               OP80NewCode = workPiece2.OP80NewCode,
                        WorkingProcedureCurrent = process.WorkingProcedureCurrent,
                        StartTime = process.StartTime,
                        EndTime = process.EndTime,
@@ -174,17 +179,21 @@
                                                 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,
@@ -193,7 +202,7 @@
                                                     WorkingProcedureCurrent = process.WorkingProcedureCurrent,
                                                     StartTime = process.StartTime.ToString(),
                                                     EndTime = process.EndTime.ToString(),
                                                     QualityState = process.QualityState,
                                                     //QualityState = process.QualityState,
                                                     CreateUserName=process.CreatedUserName
                                                 }).OrderBy(o => o.StartTime).Distinct()
            .ProjectToType<WorkPieceProcessExcelOutput>()
@@ -255,6 +264,7 @@
               .Join(_sysDictTypeRep.DetachedEntities, g => g.f.TypeId, h => h.Id, (f, g) => new { f, g })
               .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(!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))
@@ -276,7 +286,8 @@
                   QualityState = s.f.e.a.QualityState,
                   EquipmentID = s.f.e.a.EquipmentID,
                   EquipmentName = s.f.e.b.EquipmentName,
                   OperationType = "正常"
                   OperationType = "正常",
                   OP80NewCode = s.f.e.a.OP80NewCode,
               })
               .OrderBy(PageInputOrder.OrderBuilder<WorkPieceProcessSearch>(input))
               .ProjectToType<WorkPieceInfoMachiningPageOutput>()
@@ -299,6 +310,7 @@
              .Join(_sysDictTypeRep.DetachedEntities, g => g.f.TypeId, h => h.Id, (f, g) => new { f, g })
              .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(!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))
@@ -315,7 +327,8 @@
                  WorkPieceLastOfflineTime = s.f.e.a.WorkPieceLastOfflineTime.ToString(),
                  WorkPieceStateName = s.f.f.Value,
                  EquipmentName = s.f.e.b.EquipmentName,
                  QualityState = s.f.e.a.QualityState,
                  //QualityState = s.f.e.a.QualityState,
                  OP80NewCode = s.f.e.a.OP80NewCode,
              })
              .Distinct()
              .OrderBy(PageInputOrder.OrderBuilder<WorkPieceProcessSearch>(input))