From 0f3232d32bdbd21e68c663ca88d37e3ced0674f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=AD=A3=E6=98=93?= Date: Thu, 24 Oct 2024 10:31:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=9B=E5=85=89=EF=BC=8C=E5=90=8E=E9=81=93?= =?UTF-8?q?=EF=BC=8CGP12=E8=B4=A8=E9=87=8F=E6=8A=A5=E8=A1=A8=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E5=8F=98=E5=8A=A8=EF=BC=8C=E7=9C=8B=E6=9D=BF=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E5=8F=98=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ZR.Model/MES/qc/DTO/QcCommonFqcDto.cs | 22 +++++++-- .../MES/wms/WmPolishWorkQualityStatistics.cs | 2 +- ZR.Service/mes/qc/CommonFQCService.cs | 49 ++++++++++++------- ZR.Service/mes/qc/FirstFQCService.cs | 6 +-- .../mes/wms/WmGp12QualityStatisticsService.cs | 16 ++++++ .../wms/WmPolishQualityStatisticsService.cs | 13 +++++ .../WmPolishWorkQualityStatisticsService.cs | 22 ++++++++- 7 files changed, 105 insertions(+), 25 deletions(-) diff --git a/ZR.Model/MES/qc/DTO/QcCommonFqcDto.cs b/ZR.Model/MES/qc/DTO/QcCommonFqcDto.cs index 3f3ba490..daea6aa2 100644 --- a/ZR.Model/MES/qc/DTO/QcCommonFqcDto.cs +++ b/ZR.Model/MES/qc/DTO/QcCommonFqcDto.cs @@ -230,7 +230,7 @@ public int ProductDoorknobQualifiedTotal { get; set; } = 0; /// - /// 产线倒车雷达合格数 + /// 产线倒车雷达 /// public int ProductParkingSensorbQualifiedTotal { get; set; } = 0; @@ -254,6 +254,8 @@ /// public int PolishWarehouseTotal { get; set; } = 0; + /// ========================== 抛光 ================================== + /// /// 抛光投入总数 /// @@ -275,7 +277,7 @@ public int PolishDoorknobQualifiedTotal { get; set; } = 0; /// - /// 抛光倒车雷达合格数 + /// 抛光倒车雷达数 /// public int PolishParkingSensorbQualifiedTotal { get; set; } = 0; @@ -289,6 +291,8 @@ /// public int PolishDiscardTotal { get; set; } = 0; + /// ========================== 后道 ================================== + /// /// ====== 后道检验零件投入总数 ====== /// @@ -310,7 +314,7 @@ public int AfterPolishDoorknobQualifiedTotal { get; set; } = 0; /// - /// 后道倒车雷达合格数 + /// 后道倒车雷达数 /// public int AfterPolishParkingSensorbQualifiedTotal { get; set; } = 0; @@ -329,6 +333,9 @@ /// public int AfterPolishDiscardTotal { get; set; } = 0; + + /// ========================== GP12 ================================== + /// /// ====== 一次合格品仓库零件总数 ====== /// @@ -396,6 +403,15 @@ /// ====== 二次统计数据 ====== + /// + /// 后道直接出库(后道跳过GP12投入数) + /// + public int AfterPolishOutTotal { get; set; } = 0; + + /// + /// 后道直接入库(后道跳过GP12合格数) + /// + public int AfterPolishInTotal { get; set; } = 0; /// /// 总抛光合格数 = GP12抛光合格数 + 后道抛光合格数 diff --git a/ZR.Model/MES/wms/WmPolishWorkQualityStatistics.cs b/ZR.Model/MES/wms/WmPolishWorkQualityStatistics.cs index 63e5920a..dab20215 100644 --- a/ZR.Model/MES/wms/WmPolishWorkQualityStatistics.cs +++ b/ZR.Model/MES/wms/WmPolishWorkQualityStatistics.cs @@ -72,7 +72,7 @@ namespace ZR.Model.MES.wms public DateTime? EndTime { get; set; } /// - /// 类别(0-默认 1-抛光 2-打磨 3-报废 4-合计) + /// 类别(0-默认 1-直接出库) /// public int? Type { get; set; } diff --git a/ZR.Service/mes/qc/CommonFQCService.cs b/ZR.Service/mes/qc/CommonFQCService.cs index e0d53243..760ca485 100644 --- a/ZR.Service/mes/qc/CommonFQCService.cs +++ b/ZR.Service/mes/qc/CommonFQCService.cs @@ -660,9 +660,9 @@ namespace ZR.Service.mes.qc boardData.ProductPolishTotal = boardData.ProductPolishTotal / 3; boardData.ProductSandingTotal = boardData.ProductSandingTotal / 3; boardData.ProductDiscardTotal = boardData.ProductDiscardTotal / 3; - // 合格数补正(合格数 = 总合格数 - 门把手 - 倒车雷达) - /*boardData.ProductQualifiedTotal = boardData.ProductQualifiedTotal - (boardData.ProductDoorknobQualifiedTotal + boardData.ProductParkingSensorbQualifiedTotal);*/ - + // 投入数,合格数补正(合格数 = 总合格数 - 倒车雷达)[倒车雷达不参与合格率统计] + boardData.ProductRequireTotal -= boardData.ProductParkingSensorbQualifiedTotal; + boardData.ProductQualifiedTotal -= boardData.ProductParkingSensorbQualifiedTotal; if (boardData.ProductRequireTotal > 0) { double passRate = @@ -896,12 +896,14 @@ namespace ZR.Service.mes.qc .Queryable() .Where(predicate2) .Sum(it => it.BaofeiTotal) ?? 0; - // 合格数修正 - boardData.PolishQualifiedTotal = - boardData.PolishQualifiedTotal - boardData.PolishParkingSensorbQualifiedTotal; - boardData.AfterPolishQualifiedTotal = - boardData.AfterPolishQualifiedTotal - - boardData.AfterPolishParkingSensorbQualifiedTotal; + // 合格数修正 去掉倒车雷达 + boardData.PolishRequireTotal -= boardData.PolishParkingSensorbQualifiedTotal; + boardData.PolishQualifiedTotal -= boardData.PolishParkingSensorbQualifiedTotal; + + boardData.AfterPolishQualifiedTotal -= + boardData.AfterPolishParkingSensorbQualifiedTotal; + boardData.AfterPolishRequireTotal -= boardData.AfterPolishParkingSensorbQualifiedTotal; + if (boardData.PolishRequireTotal > 0) { double passRate = @@ -911,7 +913,10 @@ namespace ZR.Service.mes.qc if (boardData.AfterPolishRequireTotal > 0) { double passRate = - ((double)boardData.AfterPolishQualifiedTotal / boardData.AfterPolishRequireTotal) * 100; + ( + (double)boardData.AfterPolishQualifiedTotal + / boardData.AfterPolishRequireTotal + ) * 100; boardData.AfterPolishQualifiePassRate = passRate.ToString("0") + "%"; } return boardData; @@ -1060,16 +1065,15 @@ namespace ZR.Service.mes.qc .Queryable() .Where(predicate2) .Sum(it => it.BaofeiTotal) ?? 0; - - boardData.GP12QualifiedTotal = - boardData.GP12QualifiedTotal - boardData.GP12ParkingSensorQualifiedTotal; + // 倒车雷达去除 + boardData.GP12QualifiedTotal -= boardData.GP12ParkingSensorQualifiedTotal; + boardData.GP12RequireTotal -= boardData.GP12ParkingSensorQualifiedTotal; if (boardData.GP12RequireTotal > 0) { double passRate = ((double)boardData.GP12QualifiedTotal / boardData.GP12RequireTotal) * 100; boardData.GP12QualifiePassRate = passRate.ToString("0") + "%"; } - return boardData; } @@ -1115,7 +1119,6 @@ namespace ZR.Service.mes.qc .Queryable() .Where(predicate1) .Count(); - boardData.FinishProductPartOutTotal = Context.Queryable().Where(predicate2).Sum(it => it.GoodsNumAction) ?? 0; @@ -1167,8 +1170,18 @@ namespace ZR.Service.mes.qc query.EndTime != null, it => it.StartTime <= query.EndTime.Value.ToLocalTime() ) - .And(it=>it.Type == 1) + .And(it => it.Type == 1) .ToExpression(); + boardData.AfterPolishInTotal = + Context + .Queryable() + .Where(predicate1) + .Sum(it => it.QualifiedNumber) ?? 0; + boardData.AfterPolishOutTotal = + Context + .Queryable() + .Where(predicate1) + .Sum(it => it.RequireNumber) ?? 0; boardData.StatisticsPolishQualifiedTotal = ( Context @@ -1182,7 +1195,9 @@ namespace ZR.Service.mes.qc .Where(predicate2) .Sum(it => it.QualifiedNumber) ?? 0 ); - boardData.StatisticsProductAndPolishQualifiedTotal = boardData.StatisticsPolishQualifiedTotal + boardData.ProductQualifiedTotal; + boardData.StatisticsProductAndPolishQualifiedTotal = + boardData.StatisticsPolishQualifiedTotal + boardData.ProductQualifiedTotal; + return boardData; } diff --git a/ZR.Service/mes/qc/FirstFQCService.cs b/ZR.Service/mes/qc/FirstFQCService.cs index 744bded0..d9bf3b4c 100644 --- a/ZR.Service/mes/qc/FirstFQCService.cs +++ b/ZR.Service/mes/qc/FirstFQCService.cs @@ -3856,8 +3856,8 @@ namespace ZR.Service.mes.qc - - + //TODO 20241023 不再变动抛光盘点后的数据 + return 1; // 产线报表生成后自动化操作 try @@ -3873,7 +3873,7 @@ namespace ZR.Service.mes.qc Quantity = paoguang_by_first + paoguang_final, ActionTime = DateTime.Now.ToLocalTime(), CreatedBy = "包装" + team + "组", - Remark = "首检抛光自动入库。来源工单号:[" + workorder_item.ClientWorkorder + "]" + Remark = "产线抛光件,自动入库。来源工单号:[" + workorder_item.ClientWorkorder + "]" }; wmPolishInventoryService.DoWmPolishWarehousing(warehousingInfo); // 2.成品入一次合格品库 diff --git a/ZR.Service/mes/wms/WmGp12QualityStatisticsService.cs b/ZR.Service/mes/wms/WmGp12QualityStatisticsService.cs index 795c6f2f..f86ca0ce 100644 --- a/ZR.Service/mes/wms/WmGp12QualityStatisticsService.cs +++ b/ZR.Service/mes/wms/WmGp12QualityStatisticsService.cs @@ -119,6 +119,8 @@ namespace ZR.Service.mes.wms throw new Exception("投入数与合格数,抛光总数,打磨数,报废数不符合,请检查"); } model.Id = SnowFlakeSingle.instance.NextId().ToString(); + + // 抛光品标记 if (model.IsPolish) { model.Type = 1; @@ -127,6 +129,7 @@ namespace ZR.Service.mes.wms { model.Type = 0; } + // 抛光合格率计算 decimal qualifiedRate = 0.0m; if (model.QualifiedNumber != 0) { @@ -140,6 +143,10 @@ namespace ZR.Service.mes.wms Context.Ado.RollbackTran(); throw new Exception("插入GP12检测结果记录失败"); } + // TODO 20241023 不再变动抛光仓库盘点数据 + Context.Ado.CommitTran(); + return res0; + WmOneTimeInventoryService oneTimeService = new(); WmPolishInventoryService inventoryService = new(); //抛光品重新进入抛光仓库 @@ -248,6 +255,15 @@ namespace ZR.Service.mes.wms (decimal)model.QualifiedNumber / model.RequireNumber * 100 ?? 0.0m; } model.QualifiedRate = qualifiedRate; + + if (model.IsPolish) + { + model.Type = 1; + } + else + { + model.Type = 0; + } return Update(model, true); } catch (Exception e) diff --git a/ZR.Service/mes/wms/WmPolishQualityStatisticsService.cs b/ZR.Service/mes/wms/WmPolishQualityStatisticsService.cs index 050328ba..8a8b93d2 100644 --- a/ZR.Service/mes/wms/WmPolishQualityStatisticsService.cs +++ b/ZR.Service/mes/wms/WmPolishQualityStatisticsService.cs @@ -145,6 +145,11 @@ namespace ZR.Service.mes.wms Context.Ado.RollbackTran(); throw new Exception("插入抛光质检记录失败"); } + // TODO 20241023 不再变动抛光仓库盘点数据 + Context.Ado.CommitTran(); + return res0; + + WmPolishInventoryService inventoryService = new(); WmOneTimeInventoryService oneTimeService = new(); // 合格品检查是否是门把手,是进入成品库(仅出库),不是进入一次合格品库 @@ -275,6 +280,14 @@ namespace ZR.Service.mes.wms (decimal)model.QualifiedNumber / model.RequireNumber * 100 ?? 0.0m; } model.QualifiedRate = qualifiedRate; + if (model.IsOver) + { + model.Type = 1; + } + else + { + model.Type = 0; + } return Update(model, true); } catch (Exception e) diff --git a/ZR.Service/mes/wms/WmPolishWorkQualityStatisticsService.cs b/ZR.Service/mes/wms/WmPolishWorkQualityStatisticsService.cs index e0fa874e..de8fcafb 100644 --- a/ZR.Service/mes/wms/WmPolishWorkQualityStatisticsService.cs +++ b/ZR.Service/mes/wms/WmPolishWorkQualityStatisticsService.cs @@ -118,7 +118,16 @@ namespace ZR.Service.mes.wms throw new Exception("投入数与合格数,打磨数,报废数不符合,请检查"); } model.Id = SnowFlakeSingle.instance.NextId().ToString(); - model.Type = 0; + + if(model.IsOutbound) + { + model.Type = 1; + model.Remark += "[直接出库]"; + } + else + { + model.Type = 0; + } decimal qualifiedRate = 0.0m; if (model.QualifiedNumber != 0) { @@ -134,6 +143,9 @@ namespace ZR.Service.mes.wms Context.Ado.RollbackTran(); throw new Exception("插入抛光操作记录失败"); } + // TODO 20241023 不再变动抛光仓库盘点数据 + Context.Ado.CommitTran(); + return res0; WmPolishInventoryService inventoryService = new(); WmOneTimeInventoryService oneTimeService = new(); //抛光品直接出库到GP12 @@ -248,6 +260,14 @@ namespace ZR.Service.mes.wms (decimal)model.QualifiedNumber / model.RequireNumber * 100 ?? 0.0m; } model.QualifiedRate = qualifiedRate; + if (model.IsOutbound) + { + model.Type = 1; + } + else + { + model.Type = 0; + } return Update(model, true); } catch (Exception e)