From dff3b009e58b2452b1aa7ddd19b8aec35aff5ff8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=A2=E6=B1=9F=E6=B5=B7?= <18360817963@163.com> Date: Mon, 24 Mar 2025 15:14:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=80=E6=AC=A1=E5=90=88=E6=A0=BC=E5=93=81?= =?UTF-8?q?=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ZR.Service/mes/wms/WmOneTimeRecordService.cs | 152 ++++++++++++++++++- 1 file changed, 145 insertions(+), 7 deletions(-) diff --git a/ZR.Service/mes/wms/WmOneTimeRecordService.cs b/ZR.Service/mes/wms/WmOneTimeRecordService.cs index ef2e9282..c7960678 100644 --- a/ZR.Service/mes/wms/WmOneTimeRecordService.cs +++ b/ZR.Service/mes/wms/WmOneTimeRecordService.cs @@ -1,6 +1,10 @@ using Infrastructure.Attribute; using SqlSugar; +using System.Linq; +using System; using ZR.Model; +using ZR.Model.Business; +using ZR.Model.MES.qc; using ZR.Model.MES.wms; using ZR.Model.MES.wms.Dto; using ZR.Repository; @@ -115,18 +119,152 @@ namespace ZR.Service.mes.wms /// public int GenerateWmOneTimeRecord(WmOneTimeRecordGenerateDto parm) { - //TODO 入库条件1 产线合格品qc_quality_statistics_first,合格数,其中去除(倒车雷达) + + if (parm == null || parm.StartTime == null || parm.StartTime.Value == DateTime.MinValue) + { + return -1; + } + else + { + #region 查询需要的数据 + //TODO 入库条件1 产线合格品qc_quality_statistics_first,合格数,其中去除(倒车雷达) + List qcQualityStatisticsFirsts = Context + .Queryable() + .WhereIF( + !string.IsNullOrEmpty(parm.Partnumber), + it => it.FinishedPartNumber == parm.Partnumber + ) + .Where(it => !it.ProductDescription.Contains("倒车雷达")) + .Where(it => it.StartTime >= parm.StartTime) + .Where(it => it.PaoguangTotal > 0) + .ToList(); - //TODO 入库条件2 抛光合格品 wm_polish_work_quality_statistics 合格数 + //TODO 入库条件2 抛光合格品 wm_polish_work_quality_statistics 合格数 + List wmPolishWorkQualityStatistics = Context + .Queryable() + .WhereIF( + !string.IsNullOrEmpty(parm.Partnumber), + it => it.Partnumber == parm.Partnumber + ) + .Where(it => it.StartTime >= parm.StartTime) + .ToList(); - //TODO 出库条件1 GP12 (新) 触摸屏 qc_gp12_service_statistics 投入数 + //TODO 出库条件1 GP12 (新) 触摸屏 qc_gp12_service_statistics 投入数 + List qcGp12ServiceStatistics = Context + .Queryable() + .WhereIF( + !string.IsNullOrEmpty(parm.Partnumber), + it => it.PartNumber == parm.Partnumber + ) + .Where(it => it.StartTime >= parm.StartTime) + .Where(it => it.GroupSort == 1) + .Where(it => it.PolishNumber > 0) + .ToList(); - //TODO 出库条件2 后道 wm_polish_quality_statistics 投入数 + //TODO 出库条件2 后道 wm_polish_quality_statistics 投入数 + List wmPolishQualityStatistics = Context + .Queryable() + .WhereIF( + !string.IsNullOrEmpty(parm.Partnumber), + it => it.Partnumber == parm.Partnumber + ) + .Where(it => it.StartTime >= parm.StartTime) + .ToList(); - // wm_one_time_record + #endregion + #region 组装 WmOneTimeRecord 实体 + + List wmOneTimeRecords = new List(); - throw new global::System.NotImplementedException(); - } + foreach (var item in qcQualityStatisticsFirsts) + { + wmOneTimeRecords.Add( + new WmOneTimeRecord + { + Id = SnowFlakeSingle.Instance.NextId().ToString(), + FkInventoryId = item.Id, + Code = "自动", + Partnumber = item.FinishedPartNumber, + ChangeType = 1, + ChangeQuantity = item.PaoguangTotal, + ActionTime = item.StartTime, + Status = 1, + Remark = "产线合格品 合格数" + } + ); + } + + foreach (var item in wmPolishWorkQualityStatistics) + { + wmOneTimeRecords.Add( + new WmOneTimeRecord + { + Id = SnowFlakeSingle.Instance.NextId().ToString(), + FkInventoryId = item.Id, + Code = "自动", + Partnumber = item.Partnumber, + ChangeType = 1, + ChangeQuantity = item., + ActionTime = item.StartTime, + Status = 1, + Remark = "抛光合格品 合格数" + } + ); + } + + foreach (var item in qcGp12ServiceStatistics) + { + wmOneTimeRecords.Add( + new WmOneTimeRecord + { + Id = SnowFlakeSingle.Instance.NextId().ToString(), + FkInventoryId = item.Id, + Code = "自动", + Partnumber = item.PartNumber, + ChangeType = 2, + ChangeQuantity = item.PolishNumber, + ActionTime = item.StartTime, + Status = 1, + Remark = "触摸屏投入数" + } + ); + } + + foreach (var item in wmPolishQualityStatistics) + { + wmOneTimeRecords.Add( + new WmOneTimeRecord + { + Id = SnowFlakeSingle.Instance.NextId().ToString(), + FkInventoryId = item.Id, + Code = "自动", + Partnumber = item.Partnumber, + ChangeType = 2, + ChangeQuantity = item.PaoguangTotal, + ActionTime = item.StartTime, + Status = 1, + Remark = "后道投入数" + } + ); + } + + + #endregion + + //如果有这个时间段的数据,要删除 + List delwmOneTimeRecords = Context + .Queryable() + .Where(it => it.Code == "自动") + .Where(it => it.ActionTime >= parm.StartTime) + .ToList(); + Context.Deleteable(delwmOneTimeRecords).ExecuteCommand(); + if (delwmOneTimeRecords.Any()) + { + Context.Insertable(wmOneTimeRecords).ExecuteCommand(); + } + + return wmOneTimeRecords.Count; // 返回插入的记录数 + } } }