diff --git a/ZR.Admin.WebApi/Controllers/mes/qc/FQC/QCStatisticsController.cs b/ZR.Admin.WebApi/Controllers/mes/qc/FQC/QCStatisticsController.cs index f4cada1b..d6758774 100644 --- a/ZR.Admin.WebApi/Controllers/mes/qc/FQC/QCStatisticsController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/qc/FQC/QCStatisticsController.cs @@ -25,9 +25,9 @@ namespace ZR.Admin.WebApi.Controllers.mes.qc.FQC /// /// [HttpGet("queryQualityStatisticsTable_first")] - public IActionResult GetQualityStatisticsTable_first(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize) + public IActionResult GetQualityStatisticsTable_first(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize,int sortType) { - (List, int) list = qcStatistics.GetQualityStatisticsTable_first(starttime, endTime, workorderid, partnumber, product_description, team, pageNum, pageSize); + (List, int) list = qcStatistics.GetQualityStatisticsTable_first(starttime, endTime, workorderid, partnumber, product_description, team, pageNum, pageSize, sortType); return SUCCESS(list); } @@ -36,9 +36,9 @@ namespace ZR.Admin.WebApi.Controllers.mes.qc.FQC /// /// [HttpGet("queryQualityStatisticsTable_again")] - public IActionResult GetQualityStatisticsTable_again(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize) + public IActionResult GetQualityStatisticsTable_again(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize, int sortType) { - (List, int) list = qcStatistics.GetQualityStatisticsTable_again(starttime, endTime, workorderid, partnumber, product_description, team, pageNum, pageSize); + (List, int) list = qcStatistics.GetQualityStatisticsTable_again(starttime, endTime, workorderid, partnumber, product_description, team, pageNum, pageSize, sortType); return SUCCESS(list); } @@ -48,9 +48,9 @@ namespace ZR.Admin.WebApi.Controllers.mes.qc.FQC /// /// [HttpGet("queryQualityStatisticsTable_final")] - public IActionResult GetQualityStatisticsTable_final(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize) + public IActionResult GetQualityStatisticsTable_final(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize, int sortType) { - (List, int) list = qcStatistics.GetQualityStatisticsTable_final(starttime, endTime, workorderid, partnumber, product_description, team, pageNum, pageSize); + (List, int) list = qcStatistics.GetQualityStatisticsTable_final(starttime, endTime, workorderid, partnumber, product_description, team, pageNum, pageSize, sortType); return SUCCESS(list); } @@ -60,9 +60,9 @@ namespace ZR.Admin.WebApi.Controllers.mes.qc.FQC /// /// [HttpGet("queryQualityStatisticsTable_total")] - public IActionResult GetQualityStatisticsTable_total(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize) + public IActionResult GetQualityStatisticsTable_total(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize, int sortType) { - (List, int) list = qcStatistics.GetQualityStatisticsTable_total(starttime, endTime, workorderid, partnumber, product_description, team, pageNum, pageSize); + (List, int) list = qcStatistics.GetQualityStatisticsTable_total(starttime, endTime, workorderid, partnumber, product_description, team, pageNum, pageSize, sortType); return SUCCESS(list); } diff --git a/ZR.Admin.WebApi/appsettings.json b/ZR.Admin.WebApi/appsettings.json index 9e26dfee..0b55ff4e 100644 --- a/ZR.Admin.WebApi/appsettings.json +++ b/ZR.Admin.WebApi/appsettings.json @@ -1 +1,3 @@ -{} \ No newline at end of file +{ + //DOANtech123 +} \ No newline at end of file diff --git a/ZR.Service/Utils/MaterialUtils.cs b/ZR.Service/Utils/MaterialUtils.cs index f2816fda..9e7549be 100644 --- a/ZR.Service/Utils/MaterialUtils.cs +++ b/ZR.Service/Utils/MaterialUtils.cs @@ -1,6 +1,6 @@ -using Microsoft.AspNetCore.Http.HttpResults; -using System; +using System; using System.Text.RegularExpressions; +using Microsoft.AspNetCore.Http.HttpResults; using ZR.Model.MES.wms; using ZR.Model.MES.wms.Dto; @@ -34,7 +34,8 @@ namespace ZR.Service.Utils string quantity = ""; string batchCode = ""; // 判断解析是否成功 - if (!partnumberMatch.Success) { + if (!partnumberMatch.Success) + { throw new Exception("解析零件号失败"); } if (!quantityMatch.Success) @@ -52,16 +53,18 @@ namespace ZR.Service.Utils } catch (Exception e) { - throw new Exception("解析失败" + e.Message); } } - - //解析外箱标签码 public ResultionPackageCodeDto ResolutionPackage(string code) { + // 德国大众 + if (code.Contains("MX2D") && code.Contains("MLX")) + { + return ResolutionPackagecode3(code); + } if (code.Contains('^')) { // 初步进行解析检测,增加解析成功率 @@ -109,12 +112,18 @@ namespace ZR.Service.Utils string workoderidid = splitstr[2].Substring(7); resultionPackageCode.WorkoderID = workoderidid; // 解析生产时间 工单号生产时间提取 - resultionPackageCode.ProductionTime = string.Concat("20", workoderidid.AsSpan(0, 6)); + resultionPackageCode.ProductionTime = string.Concat( + "20", + workoderidid.AsSpan(0, 6) + ); // 解析箱子中产品数量 string product_num = splitstr[3].Substring(4); resultionPackageCode.Quantity = int.Parse(product_num); // 解析产品描述 partnumber 从物料列表抓取数据 - WmMaterial material = Context.Queryable().Where(it => it.Partnumber == partnumber).First(); + WmMaterial material = Context + .Queryable() + .Where(it => it.Partnumber == partnumber) + .First(); if (material == null) { resultionPackageCode.ProductionDescribe = "物料记录未录入此零件号信息!"; @@ -138,7 +147,12 @@ namespace ZR.Service.Utils return null; } } - // 2-解析门把手 + + /// + /// 2-解析门把手 + /// + /// + /// private ResultionPackageCodeDto ResolutionPackagecode2(string packagecode) { ResultionPackageCodeDto resultionPackageCode = new ResultionPackageCodeDto(); @@ -162,7 +176,10 @@ namespace ZR.Service.Utils string product_num = splitstr[4].Substring(3); resultionPackageCode.Quantity = int.Parse(product_num); // 解析产品描述 partnumber 从物料列表抓取数据 - WmMaterial material = Context.Queryable().Where(it => it.Partnumber == partnumber).First(); + WmMaterial material = Context + .Queryable() + .Where(it => it.Partnumber == partnumber) + .First(); if (material == null) { resultionPackageCode.ProductionDescribe = "物料记录未录入此零件号信息!"; @@ -191,5 +208,100 @@ namespace ZR.Service.Utils } } + /// + /// 3-解析德国大众标签 + /// + /// 原始标签码 + /// + private ResultionPackageCodeDto ResolutionPackagecode3(string packagecode) + { + try + { + // 定义正则表达式模式 + string partnumberPattern = @"1P(\d+)Q"; // 产品零件号 + string quantityPattern = @"Q(\d+)S"; // 产品数量 + string batchCodePattern = @"S(\d+)13Q"; // 批次号(工单号) + string serialNumberPattern = @"13Q(\d+)B"; // 流水号 + string productionTimePattern = @"12D(\d+)4L"; // 生产日期 + // 使用正则表达式进行匹配 + Match partnumberMatch = Regex.Match(packagecode, partnumberPattern); + Match quantityMatch = Regex.Match(packagecode, quantityPattern); + Match batchCodeMatch = Regex.Match(packagecode, batchCodePattern); + Match serialNumberMatch = Regex.Match(packagecode, serialNumberPattern); + Match productionTimeMatch = Regex.Match(packagecode, productionTimePattern); + // 创建接收 + string partnumber = ""; + string quantityStr = ""; + string batchCode = ""; + string serialNumber = ""; + string productionTime = ""; + // 判断解析是否成功 + if (!partnumberMatch.Success) + { + throw new Exception("解析零件号失败"); + } + if (!quantityMatch.Success) + { + throw new Exception("解析产品数量失败"); + } + if (!batchCodeMatch.Success) + { + throw new Exception("解析产品批次号失败"); + } + if (!serialNumberMatch.Success) + { + throw new Exception("解析产品流水号失败"); + } + if (!productionTimeMatch.Success) + { + throw new Exception("解析产品生产日期失败"); + } + partnumber = partnumberMatch.Groups[1].Value; + quantityStr = quantityMatch.Groups[1].Value.TrimStart('0'); + batchCode = batchCodeMatch.Groups[1].Value.TrimStart('0'); + serialNumber = serialNumberMatch.Groups[1].Value.TrimStart('0'); + productionTime = productionTimeMatch.Groups[1].Value; + string PatchCode = "BNW" + batchCode + '_' + serialNumber; + string WorkoderID = batchCode; + string ProductionTime = productionTime; + bool isSuccess1 = int.TryParse(quantityStr, out int quantity); + if (!isSuccess1) + { + quantity = 0; + } + // 产品描述 + string ProductionDescribe = ""; + WmMaterial material = Context + .Queryable() + .Where(it => it.Partnumber == partnumber) + .Where(it => it.Type == 1) + .Where(it => it.Status == 1) + .First(); + if (material != null) + { + ProductionDescribe = !string.IsNullOrEmpty(material.Description) + ? material.Description + : material.ProductName; + } + ResultionPackageCodeDto resultionPackageCode = + new() + { + originalCode = packagecode, + PatchCode = PatchCode, + WorkoderID = WorkoderID, + PartNumner = partnumber, + ProductionTime = ProductionTime, + Quantity = quantity, + Team = "", + ProductionDescribe = ProductionDescribe, + Remark = "德国大众", + }; + return resultionPackageCode; + } + catch (Exception e) + { + throw new Exception("解析失败" + e.Message); + } + } } } diff --git a/ZR.Service/mes/qc/FirstFQCService.cs b/ZR.Service/mes/qc/FirstFQCService.cs index 21104e22..442edef2 100644 --- a/ZR.Service/mes/qc/FirstFQCService.cs +++ b/ZR.Service/mes/qc/FirstFQCService.cs @@ -1509,6 +1509,7 @@ namespace ZR.Service.mes.qc { if (!string.IsNullOrEmpty(workorderID)) { + // 开始时间 ProWorkordertimeStep step = Context .Queryable() .Where(it => it.WorkoderId == workorderID) @@ -1538,6 +1539,10 @@ namespace ZR.Service.mes.qc first.StartTime = null; } } + else + { + throw new Exception("工单不存在!"); + } first.Team = team; first.EndTime = DateTime.Now; @@ -1723,8 +1728,6 @@ namespace ZR.Service.mes.qc first.UpdatedTime = DateTime.Now; #endregion - - #region 打磨 QcQualityStatisticsFirst first2 = new QcQualityStatisticsFirst(); first2.Id = SnowFlakeSingle.Instance.NextId().ToString(); @@ -1933,7 +1936,6 @@ namespace ZR.Service.mes.qc first2.UpdatedTime = DateTime.Now; #endregion - #region 报废 QcQualityStatisticsFirst first3 = new QcQualityStatisticsFirst(); first3.Id = SnowFlakeSingle.Instance.NextId().ToString(); @@ -2144,7 +2146,6 @@ namespace ZR.Service.mes.qc first3.UpdatedTime = DateTime.Now; #endregion - #region 计算汇总 int qualifiedNumber_No_all = paoguang_total + damo_total + baofei_total; @@ -2211,12 +2212,10 @@ namespace ZR.Service.mes.qc x3.AsInsertable.ExecuteCommand(); //不存在插入 x3.AsUpdateable.IgnoreColumns(z => z.CreatedTime).ExecuteCommand(); //存在更新 #endregion - - - #endregion - #region 二检 + + #region 二检 #region 打磨 QcQualityStatisticsAgain again2 = new QcQualityStatisticsAgain(); again2.Id = SnowFlakeSingle.Instance.NextId().ToString(); @@ -2427,6 +2426,7 @@ namespace ZR.Service.mes.qc again2.UpdatedTime = DateTime.Now; #endregion + #region 报废 QcQualityStatisticsAgain again3 = new QcQualityStatisticsAgain(); again3.Id = SnowFlakeSingle.Instance.NextId().ToString(); @@ -2666,6 +2666,7 @@ namespace ZR.Service.mes.qc again3.UpdatedTime = DateTime.Now; #endregion + #region 计算汇总 int qualifiedNumber_No_all_again = damo_total_again + baofei_total_again3; @@ -2712,11 +2713,190 @@ namespace ZR.Service.mes.qc x_again_3.AsUpdateable.IgnoreColumns(z => z.CreatedTime).ExecuteCommand(); //存在更新 #endregion - #endregion - #region 三检 + + #region 三检 + #region 三捡-抛光 + QcQualityStatisticsFinal final1 = new QcQualityStatisticsFinal(); + final1.Id = SnowFlakeSingle.Instance.NextId().ToString(); + final1.WorkorderId = workorderID; + if (workorder_item != null) + { + final1.Color = workorder_item?.Colour; + final1.FinishedPartNumber = workorder_item.FinishedPartNumber; + final1.ProductDescription = workorder_item.ProductDescription; + final1.RequireNumber = first.QualifiedNumber + again2.QualifiedNumber; + if (step != null) + { + final1.StartTime = step.FirstInspectTime; + } + else + { + final1.StartTime = null; + } + } + + final1.Team = team; + final1.EndTime = DateTime.Now; + final1.Remark = "抛光"; + final1.Remark2 = 1; + // 三检抛光总数 + int paoguang_final = 0; + List finalrecordList = Context + .Queryable() + .Where(it => it.FkWorkorderId == workorderID) + .Where(it => SqlFunc.Contains(it.FkInpectionId, "_1_")) + .ToList(); + paoguang_final = + Context + .Queryable() + .Where(it => it.FkWorkorderId == workorderID) + .Where(it => SqlFunc.Contains(it.FkInpectionId, "_1_")) + .Sum(it => it.Counter) ?? 0; + + if (finalrecordList != null && finalrecordList.Count > 0) + { + foreach (QcFinalinspectionRecord fianlRecord in finalrecordList) + { + if (fianlRecord.FkInpectionId == "111") + { + final1.PaintSuokong = fianlRecord.Counter; + } + + if (fianlRecord.FkInpectionId == "112") + { + final1.PaintZhengkong = fianlRecord.Counter; + } + + if (fianlRecord.FkInpectionId == "113") + { + final1.PaintShiguang = fianlRecord.Counter; + } + + if (fianlRecord.FkInpectionId == "114") + { + final1.PaintSecha = fianlRecord.Counter; + } + + if (fianlRecord.FkInpectionId == "115") + { + final1.PaintDianzi = fianlRecord.Counter; + } + + if (fianlRecord.FkInpectionId == "116") + { + final1.PaintOther = fianlRecord.Counter; + } + + if (fianlRecord.FkInpectionId == "211") + { + final1.DeviceShuiban = fianlRecord.Counter; + } + + if (fianlRecord.FkInpectionId == "212") + { + final1.DeviceZandian = fianlRecord.Counter; + } + if (fianlRecord.FkInpectionId == "213") + { + final1.DeviceBianxing = fianlRecord.Counter; + } + + if (fianlRecord.FkInpectionId == "214") + { + final1.DeviceYouzhu = fianlRecord.Counter; + } + + if (fianlRecord.FkInpectionId == "215") + { + final1.DeviceTuoluo = fianlRecord.Counter; + } + if (fianlRecord.FkInpectionId == "216") + { + final1.DeviceZhuangshang = fianlRecord.Counter; + } + if (fianlRecord.FkInpectionId == "217") + { + final1.DeviceOther = fianlRecord.Counter; + } + + if (fianlRecord.FkInpectionId == "311") + { + final1.BlankMaoci = fianlRecord.Counter; + } + if (fianlRecord.FkInpectionId == "312") + { + final1.BlankSuoyin = fianlRecord.Counter; + } + if (fianlRecord.FkInpectionId == "313") + { + final1.BlankCanshuang = fianlRecord.Counter; + } + if (fianlRecord.FkInpectionId == "314") + { + final1.BlankShaying = fianlRecord.Counter; + } + if (fianlRecord.FkInpectionId == "315") + { + final1.BlankZangdian = fianlRecord.Counter; + } + if (fianlRecord.FkInpectionId == "316") + { + final1.BlankDamo = fianlRecord.Counter; + } + if (fianlRecord.FkInpectionId == "411") + { + final1.ProgramLiuguang = fianlRecord.Counter; + } + if (fianlRecord.FkInpectionId == "412") + { + final1.ProgramSeqiqueqi = fianlRecord.Counter; + } + if (fianlRecord.FkInpectionId == "413") + { + final1.ProgramQingqiqueqi = fianlRecord.Counter; + } + if (fianlRecord.FkInpectionId == "414") + { + final1.ProgramJupi = fianlRecord.Counter; + } + if (fianlRecord.FkInpectionId == "415") + { + final1.ProgramOther = fianlRecord.Counter; + } + if (fianlRecord.FkInpectionId == "511") + { + final1.TeamTuoluocanshuang = fianlRecord.Counter; + } + if (fianlRecord.FkInpectionId == "512") + { + final1.TeamQingqiqikuai = fianlRecord.Counter; + } + if (fianlRecord.FkInpectionId == "513") + { + final1.TeamSeqiqikuai = fianlRecord.Counter; + } + if (fianlRecord.FkInpectionId == "514") + { + final1.TeamFahua = fianlRecord.Counter; + } + if (fianlRecord.FkInpectionId == "515") + { + final1.TeamLiangbang = fianlRecord.Counter; + } + if (fianlRecord.FkInpectionId == "516") + { + final1.TeamPenglou = fianlRecord.Counter; + } + } + } + final1.PaoguangTotal = paoguang_final; + final1.CreatedTime = DateTime.Now; + final1.UpdatedTime = DateTime.Now; + #endregion + #region 打磨 QcQualityStatisticsFinal final2 = new QcQualityStatisticsFinal(); final2.Id = SnowFlakeSingle.Instance.NextId().ToString(); @@ -2809,7 +2989,7 @@ namespace ZR.Service.mes.qc } if (finalrecordList2[i].FkInpectionId == "223") { - first2.DeviceBianxing = finalrecordList2[i].Counter; + final2.DeviceBianxing = finalrecordList2[i].Counter; damo_total_final = damo_total_final + (int)finalrecordList2[i].Counter; } @@ -2918,7 +3098,7 @@ namespace ZR.Service.mes.qc if (finalrecordList2[i].FkInpectionId == "526") { final2.TeamPenglou = finalrecordList2[i].Counter; - damo_total_again = damo_total_again + (int)finalrecordList2[i].Counter; + damo_total_final = damo_total_final + (int)finalrecordList2[i].Counter; } } } @@ -2927,6 +3107,7 @@ namespace ZR.Service.mes.qc final2.UpdatedTime = DateTime.Now; #endregion + #region 报废 QcQualityStatisticsFinal final3 = new QcQualityStatisticsFinal(); final3.Id = SnowFlakeSingle.Instance.NextId().ToString(); @@ -2959,11 +3140,10 @@ namespace ZR.Service.mes.qc final3.Remark = "报废"; final3.Remark2 = 3; int baofei_total_final = 0; - List finalrecordList3 = Context .Queryable() .Where(it => it.FkWorkorderId == workorderID) - .Where(it => SqlFunc.Contains(it.FkWorkorderId, "_3_")) + .Where(it => SqlFunc.Contains(it.FkInpectionId, "_3_")) .ToList(); if (finalrecordList3 != null && finalrecordList3.Count > 0) { @@ -3166,20 +3346,48 @@ namespace ZR.Service.mes.qc final3.UpdatedTime = DateTime.Now; #endregion + #region 计算汇总 int qualifiedNumber_No_all_final = baofei_total_final + damo_total_final; + // 抛光表格插入 + final1.QualifiedNumber = final1.RequireNumber - qualifiedNumber_No_all_final; + if (final1.RequireNumber == 0) + { + final1.QualifiedRate = 0; + } + else + { + final1.QualifiedRate = Math.Round( + ((decimal)final1.QualifiedNumber / (decimal)final1.RequireNumber) * 100, + 3 + ); + } + final1.PaoguangTotal = paoguang_final; + final1.DamoTotal = damo_total_final; + final1.BaofeiTotal = baofei_total_final; + + var x_final_1 = Context + .Storageable(final1) + .WhereColumns(it => new { it.WorkorderId, it.Remark2 }) + .ToStorage(); + x_final_1.AsInsertable.ExecuteCommand(); //不存在插入 + x_final_1.AsUpdateable.IgnoreColumns(z => z.CreatedTime).ExecuteCommand(); //存在更新 + // 打磨表格插入 final2.QualifiedNumber = final3.RequireNumber - qualifiedNumber_No_all_final; if (final2.RequireNumber == 0) { final2.QualifiedNumber = 0; } else + { final2.QualifiedRate = Math.Round( ((decimal)final2.QualifiedNumber / (decimal)final2.RequireNumber) * 100, 3 ); + } + final2.PaoguangTotal = paoguang_final; final2.DamoTotal = damo_total_final; final2.BaofeiTotal = baofei_total_final; @@ -3189,13 +3397,20 @@ namespace ZR.Service.mes.qc .ToStorage(); x_final_2.AsInsertable.ExecuteCommand(); //不存在插入 x_final_2.AsUpdateable.IgnoreColumns(z => z.CreatedTime).ExecuteCommand(); //存在更新 - + // 报废表格插入 final3.QualifiedNumber = final3.RequireNumber - qualifiedNumber_No_all_final; - final3.QualifiedRate = Math.Round( - ((decimal)final3.QualifiedNumber / (decimal)final3.RequireNumber) * 100, - 3 - ); - + if (final3.RequireNumber == 0) + { + final3.QualifiedNumber = 0; + } + else + { + final3.QualifiedRate = Math.Round( + ((decimal)final3.QualifiedNumber / (decimal)final3.RequireNumber) * 100, + 3 + ); + } + final3.PaoguangTotal = paoguang_final; final3.DamoTotal = damo_total_final; final3.BaofeiTotal = baofei_total_final; @@ -3206,17 +3421,80 @@ namespace ZR.Service.mes.qc x_final_3.AsInsertable.ExecuteCommand(); //不存在插入 x_final_3.AsUpdateable.IgnoreColumns(z => z.CreatedTime).ExecuteCommand(); //存在更新 #endregion - - #endregion #region 总报表 + + #region 抛光 将首检的抛光和包装三检的抛光合并 + QcQualityStatisticsTotal total1 = new QcQualityStatisticsTotal(); + total1.Id = SnowFlakeSingle.Instance.NextId().ToString(); + total1.WorkorderId = workorderID; + total1.FinishedPartNumber = workorder_item.FinishedPartNumber; + total1.ProductDescription = workorder_item.ProductDescription; + total1.Color = workorder_item.Colour; + //XXX:修改生产投入数为首检生产投入数 workorder_item + // total2.RequireNumber = again2.RequireNumber; + total1.RequireNumber = workorder_item.PreviousNumber; + if (step != null) + { + total1.StartTime = step.FirstInspectTime; + } + else + { + total1.StartTime = DateTime.Now; + } + total1.Team = team; + total1.EndTime = DateTime.Now; + total1.Remark = "抛光"; + total1.Remark2 = 1; + total1.PaintSuokong = (final1.PaintSuokong ?? 0) + (first.PaintSuokong ?? 0); + total1.PaintZhengkong = (final1.PaintZhengkong ?? 0) + (first.PaintZhengkong ?? 0); + total1.PaintShiguang = (final1.PaintShiguang ?? 0) + (first.PaintShiguang ?? 0); + total1.PaintSecha = (final1.PaintSecha ?? 0) + (first.PaintSecha ?? 0); + total1.PaintDianzi = (final1.PaintDianzi ?? 0) + (first.PaintDianzi ?? 0); + total1.DeviceShuiban = (final1.DeviceShuiban ?? 0) + (first.DeviceShuiban ?? 0); + total1.PaintOther = (final1.PaintOther ?? 0) + (first.PaintOther ?? 0); + total1.DeviceZandian = (final1.DeviceZandian ?? 0) + (first.DeviceZandian ?? 0); + total1.DeviceBianxing = (final1.DeviceBianxing ?? 0) + (first.DeviceBianxing ?? 0); + total1.DeviceYouzhu = (final1.DeviceYouzhu ?? 0) + (first.DeviceYouzhu ?? 0); + total1.DeviceTuoluo = (final1.DeviceTuoluo ?? 0) + (first.DeviceTuoluo ?? 0); + total1.DeviceZhuangshang = + (final1.DeviceZhuangshang ?? 0) + (first.DeviceZhuangshang ?? 0); + total1.DeviceOther = final1.DeviceOther ?? 0 + first.DeviceOther ?? 0; + total1.BlankMaoci = (final1.BlankMaoci ?? 0) + (first.BlankMaoci ?? 0); + total1.BlankSuoyin = (final1.BlankSuoyin ?? 0) + (first.BlankSuoyin ?? 0); + total1.BlankCanshuang = (final1.BlankCanshuang ?? 0) + (first.BlankCanshuang ?? 0); + total1.BlankShaying = (final1.BlankShaying ?? 0) + (first.BlankShaying ?? 0); + total1.BlankZangdian = (final1.BlankZangdian ?? 0) + (first.BlankZangdian ?? 0); + total1.BlankDamo = (final1.BlankDamo ?? 0) + (first.BlankDamo ?? 0); + total1.ProgramLiuguang = + (final1.ProgramLiuguang ?? 0) + (first.ProgramLiuguang ?? 0); + total1.ProgramSeqiqueqi = + (final1.ProgramSeqiqueqi ?? 0) + (first.ProgramSeqiqueqi ?? 0); + total1.ProgramQingqiqueqi = + (final1.ProgramQingqiqueqi ?? 0) + (first.ProgramQingqiqueqi ?? 0); + total1.ProgramJupi = (final1.ProgramJupi ?? 0) + (first.ProgramJupi ?? 0); + total1.TeamTuoluocanshuang = + (final1.TeamTuoluocanshuang ?? 0) + (first.TeamTuoluocanshuang ?? 0); + total1.ProgramOther = (final1.ProgramOther ?? 0) + (first.ProgramOther ?? 0); + total1.TeamQingqiqikuai = + (final1.TeamQingqiqikuai ?? 0) + (first.TeamQingqiqikuai ?? 0); + total1.TeamSeqiqikuai = (final1.TeamSeqiqikuai ?? 0) + (first.TeamSeqiqikuai ?? 0); + total1.TeamFahua = (final1.TeamFahua ?? 0) + (first.TeamFahua ?? 0); + total1.TeamLiangbang = (final1.TeamLiangbang ?? 0) + (first.TeamLiangbang ?? 0); + total1.TeamPenglou = (final1.TeamPenglou ?? 0) + (first.TeamPenglou ?? 0); + + total1.CreatedTime = DateTime.Now; + total1.UpdatedTime = DateTime.Now; + + #endregion + #region 打磨 将二检的打磨和三检的打磨合并 QcQualityStatisticsTotal total2 = new QcQualityStatisticsTotal(); total2.Id = SnowFlakeSingle.Instance.NextId().ToString(); total2.WorkorderId = workorderID; - - total2.FinishedPartNumber = again2.FinishedPartNumber; - total2.ProductDescription = again2.ProductDescription; + total2.FinishedPartNumber = workorder_item.FinishedPartNumber; + total2.ProductDescription = workorder_item.ProductDescription; + total2.Color = workorder_item.Colour; //XXX:修改生产投入数为首检生产投入数 workorder_item // total2.RequireNumber = again2.RequireNumber; total2.RequireNumber = workorder_item.PreviousNumber; @@ -3226,7 +3504,7 @@ namespace ZR.Service.mes.qc } else { - total2.StartTime = null; + total2.StartTime = DateTime.Now; } total2.Team = team; @@ -3364,7 +3642,7 @@ namespace ZR.Service.mes.qc } else { - total3.StartTime = null; + total3.StartTime = DateTime.Now; } total3.Team = team; @@ -3494,6 +3772,32 @@ namespace ZR.Service.mes.qc + qualifiedNumber_No_all_final; //XXX:修改合格数公式:包装数 // total2.QualifiedNumber = (again2.RequireNumber ?? 0) - qualifiedNumber_No_all_total; + + + // 总报表-抛光记录插入 + total1.QualifiedNumber = final1.QualifiedNumber; + if (total1.RequireNumber == 0) + { + total1.QualifiedRate = 0; + } + else + total1.QualifiedRate = Math.Round( + ((decimal)total1.QualifiedNumber / (decimal)total1.RequireNumber) * 100, + 3 + ); + // XXX:修改总报表打磨,报废数计算公式 + total1.PaoguangTotal = first.PaoguangTotal + final1.PaoguangTotal; + total1.DamoTotal = damo_total + damo_total_again + damo_total_final; + total1.BaofeiTotal = baofei_total + baofei_total_again3 + baofei_total_final; + var x_total_1 = Context + .Storageable(total1) + .WhereColumns(it => new { it.WorkorderId, it.Remark2 }) + .ToStorage(); + x_total_1.AsInsertable.ExecuteCommand(); //不存在插入 + x_total_1.AsUpdateable.IgnoreColumns(z => z.CreatedTime).ExecuteCommand(); //存在更新 + + // 总报表-打磨记录插入 + total2.QualifiedNumber = final2.QualifiedNumber; if (total2.RequireNumber == 0) { @@ -3505,6 +3809,7 @@ namespace ZR.Service.mes.qc 3 ); // XXX:修改总报表打磨,报废数计算公式 + total2.PaoguangTotal = first.PaoguangTotal + final1.PaoguangTotal; total2.DamoTotal = damo_total + damo_total_again + damo_total_final; total2.BaofeiTotal = baofei_total + baofei_total_again3 + baofei_total_final; // total2.DamoTotal = damo_total_again + damo_total_final; @@ -3517,6 +3822,8 @@ namespace ZR.Service.mes.qc .ToStorage(); x_total_2.AsInsertable.ExecuteCommand(); //不存在插入 x_total_2.AsUpdateable.IgnoreColumns(z => z.CreatedTime).ExecuteCommand(); //存在更新 + + // 总报表-报废记录插入 //XXX:修改合格数公式 // total3.QualifiedNumber = again3.RequireNumber ?? 0 - qualifiedNumber_No_all_total; total3.QualifiedNumber = final2.QualifiedNumber; @@ -3530,6 +3837,7 @@ namespace ZR.Service.mes.qc 3 ); // XXX:修改总报表打磨,报废数计算公式 + total3.PaoguangTotal = first.PaoguangTotal + final1.PaoguangTotal; total3.DamoTotal = damo_total + damo_total_again + damo_total_final; total3.BaofeiTotal = baofei_total + baofei_total_again3 + baofei_total_final; // total3.DamoTotal = damo_total_again + damo_total_final; @@ -3546,6 +3854,10 @@ namespace ZR.Service.mes.qc #endregion + + + + // 产线报表生成后自动化操作 try @@ -3558,7 +3870,7 @@ namespace ZR.Service.mes.qc Partnumber = workorder_item.FinishedPartNumber, WorkOrder = workorder_item.ClientWorkorder, Type = workorder_item.Remark1.Contains("返工") ? 2 : 1, - Quantity = paoguang_by_first, + Quantity = paoguang_by_first + paoguang_final, ActionTime = DateTime.Now.ToLocalTime(), CreatedBy = "包装" + team + "组", Remark = "首检抛光自动入库。来源工单号:[" + workorder_item.ClientWorkorder + "]" @@ -3568,7 +3880,8 @@ namespace ZR.Service.mes.qc // 合格品检查是否是门把手,是进入成品库(仅出库),不是进入一次合格品库 string[] checkStrArray = { - "门把手","面盖", + "门把手", + "面盖", "T22", "T26", "A58", diff --git a/ZR.Service/mes/qc/IService/IQCStatisticsService.cs b/ZR.Service/mes/qc/IService/IQCStatisticsService.cs index 61f98074..14d1e192 100644 --- a/ZR.Service/mes/qc/IService/IQCStatisticsService.cs +++ b/ZR.Service/mes/qc/IService/IQCStatisticsService.cs @@ -15,15 +15,57 @@ namespace ZR.Service.mes.qc.IService #region 获取统计表 //获取 首检 - (List, int) GetQualityStatisticsTable_first(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize); + (List, int) GetQualityStatisticsTable_first( + DateTime starttime, + DateTime endTime, + string workorderid, + string partnumber, + string product_description, + string team, + int pageNum, + int pageSize, + int sortType + ); //获取 二检 - (List, int) GetQualityStatisticsTable_again(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize); + (List, int) GetQualityStatisticsTable_again( + DateTime starttime, + DateTime endTime, + string workorderid, + string partnumber, + string product_description, + string team, + int pageNum, + int pageSize, + int sortType + ); + //获取 三检 - (List, int) GetQualityStatisticsTable_final(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize); + (List, int) GetQualityStatisticsTable_final( + DateTime starttime, + DateTime endTime, + string workorderid, + string partnumber, + string product_description, + string team, + int pageNum, + int pageSize, + int sortType + ); + //获取 总检 - (List, int) GetQualityStatisticsTable_total(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize); + (List, int) GetQualityStatisticsTable_total( + DateTime starttime, + DateTime endTime, + string workorderid, + string partnumber, + string product_description, + string team, + int pageNum, + int pageSize, + int sortType + ); #endregion public int DeleteStatisticsTable(string workorderid); @@ -41,6 +83,16 @@ namespace ZR.Service.mes.qc.IService /// /// /// - List DownloadStatisticsTableExcel(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize, int type); + List DownloadStatisticsTableExcel( + DateTime starttime, + DateTime endTime, + string workorderid, + string partnumber, + string product_description, + string team, + int pageNum, + int pageSize, + int type + ); } } diff --git a/ZR.Service/mes/qc/QCStatisticsService.cs b/ZR.Service/mes/qc/QCStatisticsService.cs index c24107c9..c7c2e9e3 100644 --- a/ZR.Service/mes/qc/QCStatisticsService.cs +++ b/ZR.Service/mes/qc/QCStatisticsService.cs @@ -1,7 +1,7 @@ -using Infrastructure.Attribute; -using SqlSugar; -using System; +using System; using System.Linq; +using Infrastructure.Attribute; +using SqlSugar; using ZR.Model.MES.qc; using ZR.Model.MES.qc.DTO; using ZR.Model.MES.wms; @@ -15,13 +15,6 @@ namespace ZR.Service.mes.qc [AppService(ServiceType = typeof(IQCStatisticsService), ServiceLifetime = LifeTime.Transient)] public class QCStatisticsService : BaseService, IQCStatisticsService { - - - - - - - /// /// 获取质量统计表 首检 /// @@ -35,44 +28,76 @@ namespace ZR.Service.mes.qc /// /// /// - public (List, int) GetQualityStatisticsTable_first(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize) + public (List, int) GetQualityStatisticsTable_first( + DateTime starttime, + DateTime endTime, + string workorderid, + string partnumber, + string product_description, + string team, + int pageNum, + int pageSize, + int sortType = 0 + ) { starttime = starttime.ToLocalTime(); endTime = endTime.ToLocalTime(); int totalNum = 0; - var predicate = Expressionable.Create() + var predicate = Expressionable + .Create() //XXX:修改查询日期查询的字段 - .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime.ToLocalTime()) - .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime <= endTime.ToLocalTime()) - .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Contains(workorderid)) - .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Contains(partnumber)) + .AndIF( + starttime > new DateTime(2023, 1, 1, 0, 0, 0), + it => it.StartTime >= starttime.ToLocalTime() + ) + .AndIF( + endTime > new DateTime(2023, 1, 1, 0, 0, 0), + it => it.StartTime <= endTime.ToLocalTime() + ) + .AndIF( + !string.IsNullOrEmpty(workorderid), + it => it.WorkorderId.Contains(workorderid) + ) + .AndIF( + !string.IsNullOrEmpty(partnumber), + it => it.FinishedPartNumber.Contains(partnumber) + ) .AndIF(!string.IsNullOrEmpty(team), it => it.Team.Equals(team)) - .AndIF(!string.IsNullOrEmpty(product_description), it => it.ProductDescription.Contains(product_description)) + .AndIF( + !string.IsNullOrEmpty(product_description), + it => it.ProductDescription.Contains(product_description) + ) .ToExpression(); - - List data = Context.Queryable() + List data = Context + .Queryable() .Where(predicate) - .OrderBy(it => it.StartTime) + .OrderByIF(sortType == 0, it => it.StartTime, OrderByType.Asc) + .OrderByIF(sortType == 1, it => it.QualifiedRate, OrderByType.Desc) + .OrderByIF(sortType == 2, it => it.ProductDescription, OrderByType.Asc) + .OrderByIF(sortType == 3, it => it.FinishedPartNumber, OrderByType.Asc) + .OrderBy(it => it.WorkorderId) .OrderBy(it => it.Remark2) .ToPageList(pageNum, pageSize, ref totalNum); foreach (QcQualityStatisticsFirst item in data) { - WmMaterial material = Context.Queryable() - .Where(it => it.Partnumber == item.FinishedPartNumber) - .First(); + WmMaterial material = Context + .Queryable() + .Where(it => it.Partnumber == item.FinishedPartNumber) + .First(); if (material == null) { item.ProductDescription = "此零件号不在物料清单内!"; continue; } - item.ProductDescription = !string.IsNullOrEmpty(material.Description) ? material.Description : material.ProductName; + item.ProductDescription = !string.IsNullOrEmpty(material.Description) + ? material.Description + : material.ProductName; } return (data, totalNum); } - /// /// 获取质量统计表 二检 /// @@ -86,34 +111,71 @@ namespace ZR.Service.mes.qc /// /// /// - public (List, int) GetQualityStatisticsTable_again(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize) + public (List, int) GetQualityStatisticsTable_again( + DateTime starttime, + DateTime endTime, + string workorderid, + string partnumber, + string product_description, + string team, + int pageNum, + int pageSize, + int sortType = 0 + ) { starttime = starttime.ToLocalTime(); endTime = endTime.ToLocalTime(); int totalNum = 0; - var predicate = Expressionable.Create() + var predicate = Expressionable + .Create() //XXX:修改查询日期查询的字段 - .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime.ToLocalTime()) - .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime <= endTime.ToLocalTime()) - .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Contains(workorderid)) - .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Contains(partnumber)) + .AndIF( + starttime > new DateTime(2023, 1, 1, 0, 0, 0), + it => it.StartTime >= starttime.ToLocalTime() + ) + .AndIF( + endTime > new DateTime(2023, 1, 1, 0, 0, 0), + it => it.StartTime <= endTime.ToLocalTime() + ) + .AndIF( + !string.IsNullOrEmpty(workorderid), + it => it.WorkorderId.Contains(workorderid) + ) + .AndIF( + !string.IsNullOrEmpty(partnumber), + it => it.FinishedPartNumber.Contains(partnumber) + ) .AndIF(!string.IsNullOrEmpty(team), it => it.Team.Equals(team)) - .AndIF(!string.IsNullOrEmpty(product_description), it => it.ProductDescription.Contains(product_description)) + .AndIF( + !string.IsNullOrEmpty(product_description), + it => it.ProductDescription.Contains(product_description) + ) .ToExpression(); - - List data = Context.Queryable().Where(predicate).OrderBy(it => it.WorkorderId).OrderBy(it => it.Remark2).ToPageList(pageNum, pageSize, ref totalNum); + List data = Context + .Queryable() + .Where(predicate) + .OrderByIF(sortType == 0, it => it.StartTime, OrderByType.Asc) + .OrderByIF(sortType == 1, it => it.QualifiedRate, OrderByType.Desc) + .OrderByIF(sortType == 2, it => it.ProductDescription, OrderByType.Asc) + .OrderByIF(sortType == 3, it => it.FinishedPartNumber, OrderByType.Asc) + .OrderBy(it => it.WorkorderId) + .OrderBy(it => it.Remark2) + .ToPageList(pageNum, pageSize, ref totalNum); foreach (QcQualityStatisticsAgain item in data) { - WmMaterial material = Context.Queryable() - .Where(it => it.Partnumber == item.FinishedPartNumber) - .First(); + WmMaterial material = Context + .Queryable() + .Where(it => it.Partnumber == item.FinishedPartNumber) + .First(); if (material == null) { item.ProductDescription = "此零件号不在物料清单内!"; continue; } - item.ProductDescription = !string.IsNullOrEmpty(material.Description) ? material.Description : material.ProductName; + item.ProductDescription = !string.IsNullOrEmpty(material.Description) + ? material.Description + : material.ProductName; } return (data, totalNum); @@ -132,40 +194,76 @@ namespace ZR.Service.mes.qc /// /// /// - public (List, int) GetQualityStatisticsTable_final(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize) + public (List, int) GetQualityStatisticsTable_final( + DateTime starttime, + DateTime endTime, + string workorderid, + string partnumber, + string product_description, + string team, + int pageNum, + int pageSize, + int sortType = 0 + ) { starttime = starttime.ToLocalTime(); endTime = endTime.ToLocalTime(); int totalNum = 0; - var predicate = Expressionable.Create() + var predicate = Expressionable + .Create() //XXX:修改查询日期查询的字段 - .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime.ToLocalTime()) - .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime <= endTime.ToLocalTime()) - .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Contains(workorderid)) - .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Contains(partnumber)) + .AndIF( + starttime > new DateTime(2023, 1, 1, 0, 0, 0), + it => it.StartTime >= starttime.ToLocalTime() + ) + .AndIF( + endTime > new DateTime(2023, 1, 1, 0, 0, 0), + it => it.StartTime <= endTime.ToLocalTime() + ) + .AndIF( + !string.IsNullOrEmpty(workorderid), + it => it.WorkorderId.Contains(workorderid) + ) + .AndIF( + !string.IsNullOrEmpty(partnumber), + it => it.FinishedPartNumber.Contains(partnumber) + ) .AndIF(!string.IsNullOrEmpty(team), it => it.Team.Equals(team)) - .AndIF(!string.IsNullOrEmpty(product_description), it => it.ProductDescription.Contains(product_description)) + .AndIF( + !string.IsNullOrEmpty(product_description), + it => it.ProductDescription.Contains(product_description) + ) .ToExpression(); - - List data = Context.Queryable().Where(predicate).OrderBy(it => it.WorkorderId).OrderBy(it => it.Remark2).ToPageList(pageNum, pageSize, ref totalNum); + List data = Context + .Queryable() + .Where(predicate) + .OrderByIF(sortType == 0, it => it.StartTime, OrderByType.Asc) + .OrderByIF(sortType == 1, it => it.QualifiedRate, OrderByType.Desc) + .OrderByIF(sortType == 2, it => it.ProductDescription, OrderByType.Asc) + .OrderByIF(sortType == 3, it => it.FinishedPartNumber, OrderByType.Asc) + .OrderBy(it => it.WorkorderId) + .OrderBy(it => it.Remark2) + .ToPageList(pageNum, pageSize, ref totalNum); foreach (QcQualityStatisticsFinal item in data) { - WmMaterial material = Context.Queryable() - .Where(it => it.Partnumber == item.FinishedPartNumber) - .First(); + WmMaterial material = Context + .Queryable() + .Where(it => it.Partnumber == item.FinishedPartNumber) + .First(); if (material == null) { item.ProductDescription = "此零件号不在物料清单内!"; continue; } - item.ProductDescription = !string.IsNullOrEmpty(material.Description) ? material.Description : material.ProductName; + item.ProductDescription = !string.IsNullOrEmpty(material.Description) + ? material.Description + : material.ProductName; } return (data, totalNum); } - /// /// 获取质量统计表 总表 /// @@ -179,33 +277,71 @@ namespace ZR.Service.mes.qc /// /// /// - public (List, int) GetQualityStatisticsTable_total(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize) + public (List, int) GetQualityStatisticsTable_total( + DateTime starttime, + DateTime endTime, + string workorderid, + string partnumber, + string product_description, + string team, + int pageNum, + int pageSize, + int sortType = 0 + ) { starttime = starttime.ToLocalTime(); endTime = endTime.ToLocalTime(); int totalNum = 0; - var predicate = Expressionable.Create() + var predicate = Expressionable + .Create() //XXX:修改查询日期查询的字段 - .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime.ToLocalTime()) - .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime <= endTime.ToLocalTime()) - .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Contains(workorderid)) - .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Contains(partnumber)) + .AndIF( + starttime > new DateTime(2023, 1, 1, 0, 0, 0), + it => it.StartTime >= starttime.ToLocalTime() + ) + .AndIF( + endTime > new DateTime(2023, 1, 1, 0, 0, 0), + it => it.StartTime <= endTime.ToLocalTime() + ) + .AndIF( + !string.IsNullOrEmpty(workorderid), + it => it.WorkorderId.Contains(workorderid) + ) + .AndIF( + !string.IsNullOrEmpty(partnumber), + it => it.FinishedPartNumber.Contains(partnumber) + ) .AndIF(!string.IsNullOrEmpty(team), it => it.Team.Equals(team)) - .AndIF(!string.IsNullOrEmpty(product_description), it => it.ProductDescription.Contains(product_description)) + .AndIF( + !string.IsNullOrEmpty(product_description), + it => it.ProductDescription.Contains(product_description) + ) .ToExpression(); - List data = Context.Queryable().Where(predicate).OrderBy(it => it.WorkorderId).OrderBy(it => it.Remark2).ToPageList(pageNum, pageSize, ref totalNum); + List data = Context + .Queryable() + .Where(predicate) + .OrderByIF(sortType == 0, it => it.StartTime, OrderByType.Asc) + .OrderByIF(sortType == 1, it => it.QualifiedRate, OrderByType.Desc) + .OrderByIF(sortType == 2, it => it.ProductDescription, OrderByType.Asc) + .OrderByIF(sortType == 3, it => it.FinishedPartNumber, OrderByType.Asc) + .OrderBy(it => it.WorkorderId) + .OrderBy(it => it.Remark2) + .ToPageList(pageNum, pageSize, ref totalNum); foreach (QcQualityStatisticsTotal item in data) { - WmMaterial material = Context.Queryable() - .Where(it => it.Partnumber == item.FinishedPartNumber) - .First(); + WmMaterial material = Context + .Queryable() + .Where(it => it.Partnumber == item.FinishedPartNumber) + .First(); if (material == null) { item.ProductDescription = "此零件号不在物料清单内!"; continue; } - item.ProductDescription = !string.IsNullOrEmpty(material.Description) ? material.Description : material.ProductName; + item.ProductDescription = !string.IsNullOrEmpty(material.Description) + ? material.Description + : material.ProductName; } return (data, totalNum); @@ -219,23 +355,48 @@ namespace ZR.Service.mes.qc public int DeleteStatisticsTable(string workorderid) { int num = 0; - num = num + Context.Deleteable() - .Where(it => it.WorkorderId == workorderid).ExecuteCommand(); + num = + num + + Context + .Deleteable() + .Where(it => it.WorkorderId == workorderid) + .ExecuteCommand(); + num = + num + + Context + .Deleteable() + .Where(it => it.WorkorderId == workorderid) + .ExecuteCommand(); - num = num + Context.Deleteable().Where(it => it.WorkorderId == workorderid).ExecuteCommand(); - - - num = num + Context.Deleteable().Where(it => it.WorkorderId == workorderid).ExecuteCommand(); - - - num = num + Context.Deleteable().Where(it => it.WorkorderId == workorderid).ExecuteCommand(); + num = + num + + Context + .Deleteable() + .Where(it => it.WorkorderId == workorderid) + .ExecuteCommand(); + num = + num + + Context + .Deleteable() + .Where(it => it.WorkorderId == workorderid) + .ExecuteCommand(); return num; - } - List IQCStatisticsService.DownloadStatisticsTableExcel(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize, int type) + + List IQCStatisticsService.DownloadStatisticsTableExcel( + DateTime starttime, + DateTime endTime, + string workorderid, + string partnumber, + string product_description, + string team, + int pageNum, + int pageSize, + int type + ) { try { @@ -244,13 +405,53 @@ namespace ZR.Service.mes.qc return type switch { // 首检 - 1 => DoFirstExcel(starttime, endTime, workorderid, partnumber, product_description, team, pageNum, pageSize), + 1 + => DoFirstExcel( + starttime, + endTime, + workorderid, + partnumber, + product_description, + team, + pageNum, + pageSize + ), // 抛光 - 2 => DoSecondExcel(starttime, endTime, workorderid, partnumber, product_description, team, pageNum, pageSize), + 2 + => DoSecondExcel( + starttime, + endTime, + workorderid, + partnumber, + product_description, + team, + pageNum, + pageSize + ), // 包装 - 3 => DoThirdExcel(starttime, endTime, workorderid, partnumber, product_description, team, pageNum, pageSize), + 3 + => DoThirdExcel( + starttime, + endTime, + workorderid, + partnumber, + product_description, + team, + pageNum, + pageSize + ), // 总表 - 4 => DoTotalExcel(starttime, endTime, workorderid, partnumber, product_description, team, pageNum, pageSize), + 4 + => DoTotalExcel( + starttime, + endTime, + workorderid, + partnumber, + product_description, + team, + pageNum, + pageSize + ), _ => throw new Exception("获取的报表类型错误!" + type), }; } @@ -258,236 +459,321 @@ namespace ZR.Service.mes.qc { throw new Exception(ex.Message); } - } - public List DoFirstExcel(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize) - { - List list = GetQualityStatisticsTable_first(starttime, endTime, workorderid, partnumber, product_description, team, pageNum, pageSize).Item1; - List newList = list.Select(item => new QcQualityStatisticsFirstDto() - { - WorkorderId = item.WorkorderId, - FinishedPartNumber = item.FinishedPartNumber, - ProductDescription = GetDescription(item.FinishedPartNumber), - Color = item.Color, - RequireNumber = item.RequireNumber, - Team = item.Team, - QualifiedNumber = item.QualifiedNumber, - QualifiedRate = item.QualifiedRate ?? 0, - PaoguangTotal = item.PaoguangTotal ?? 0, - DamoTotal = item.DamoTotal ?? 0, - BaofeiTotal = item.BaofeiTotal ?? 0, - StartTime = item.StartTime, - EndTime = item.EndTime, - Remark = item.Remark ?? "", - // 油漆(6) - PaintSuokong = item.PaintSuokong ?? 0, - PaintZhengkong = item.PaintZhengkong ?? 0, - PaintShiguang = item.PaintShiguang ?? 0, - PaintSecha = item.PaintSecha ?? 0, - PaintDianzi = item.PaintDianzi ?? 0, - PaintOther = item.PaintOther ?? 0, - // 设备(7) - DeviceShuiban = item.DeviceShuiban ?? 0, - DeviceZandian = item.DeviceZandian ?? 0, - DeviceBianxing = item.DeviceBianxing ?? 0, - DeviceYouzhu = item.DeviceYouzhu ?? 0, - DeviceTuoluo = item.DeviceTuoluo ?? 0, - DeviceZhuangshang = item.DeviceZhuangshang ?? 0, - DeviceOther = item.DeviceOther ?? 0, - // 毛坯(6) - BlankMaoci = item.BlankMaoci ?? 0, - BlankSuoyin = item.BlankSuoyin ?? 0, - BlankCanshuang = item.BlankCanshuang ?? 0, - BlankShaying = item.BlankShaying ?? 0, - BlankZangdian = item.BlankZangdian ?? 0, - BlankDamo = item.BlankDamo ?? 0, - // 程序(5) - ProgramLiuguang = item.ProgramLiuguang ?? 0, - ProgramSeqiqueqi = item.ProgramSeqiqueqi ?? 0, - ProgramQingqiqueqi = item.ProgramQingqiqueqi ?? 0, - ProgramJupi = item.ProgramJupi ?? 0, - ProgramOther = item.ProgramOther ?? 0, - // 班组操作(6) - TeamTuoluocanshuang = item.TeamTuoluocanshuang ?? 0, - TeamQingqiqikuai = item.TeamQingqiqikuai ?? 0, - TeamSeqiqikuai = item.TeamSeqiqikuai ?? 0, - TeamFahua = item.TeamFahua ?? 0, - TeamLiangbang = item.TeamLiangbang ?? 0, - TeamPenglou = item.TeamPenglou ?? 0, - }).ToList(); - return newList; - } - public List DoSecondExcel(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize) + public List DoFirstExcel( + DateTime starttime, + DateTime endTime, + string workorderid, + string partnumber, + string product_description, + string team, + int pageNum, + int pageSize + ) { - List list = GetQualityStatisticsTable_again(starttime, endTime, workorderid, partnumber, product_description, team, pageNum, pageSize).Item1; - List newList = list.Select(item => new QcQualityStatisticsFirstDto() - { - WorkorderId = item.WorkorderId, - FinishedPartNumber = item.FinishedPartNumber, - ProductDescription = GetDescription(item.FinishedPartNumber), - Color = item.Color, - RequireNumber = item.RequireNumber, - Team = item.Team, - QualifiedNumber = item.QualifiedNumber, - QualifiedRate = item.QualifiedRate ?? 0, - PaoguangTotal = item.PaoguangTotal ?? 0, - DamoTotal = item.DamoTotal ?? 0, - BaofeiTotal = item.BaofeiTotal ?? 0, - StartTime = item.StartTime, - EndTime = item.EndTime, - Remark = item.Remark ?? "", - // 油漆(6) - PaintSuokong = item.PaintSuokong ?? 0, - PaintZhengkong = item.PaintZhengkong ?? 0, - PaintShiguang = item.PaintShiguang ?? 0, - PaintSecha = item.PaintSecha ?? 0, - PaintDianzi = item.PaintDianzi ?? 0, - PaintOther = item.PaintOther ?? 0, - // 设备(7) - DeviceShuiban = item.DeviceShuiban ?? 0, - DeviceZandian = item.DeviceZandian ?? 0, - DeviceBianxing = item.DeviceBianxing ?? 0, - DeviceYouzhu = item.DeviceYouzhu ?? 0, - DeviceTuoluo = item.DeviceTuoluo ?? 0, - DeviceZhuangshang = item.DeviceZhuangshang ?? 0, - DeviceOther = item.DeviceOther ?? 0, - // 毛坯(6) - BlankMaoci = item.BlankMaoci ?? 0, - BlankSuoyin = item.BlankSuoyin ?? 0, - BlankCanshuang = item.BlankCanshuang ?? 0, - BlankShaying = item.BlankShaying ?? 0, - BlankZangdian = item.BlankZangdian ?? 0, - BlankDamo = item.BlankDamo ?? 0, - // 程序(5) - ProgramLiuguang = item.ProgramLiuguang ?? 0, - ProgramSeqiqueqi = item.ProgramSeqiqueqi ?? 0, - ProgramQingqiqueqi = item.ProgramQingqiqueqi ?? 0, - ProgramJupi = item.ProgramJupi ?? 0, - ProgramOther = item.ProgramOther ?? 0, - // 班组操作(6) - TeamTuoluocanshuang = item.TeamTuoluocanshuang ?? 0, - TeamQingqiqikuai = item.TeamQingqiqikuai ?? 0, - TeamSeqiqikuai = item.TeamSeqiqikuai ?? 0, - TeamFahua = item.TeamFahua ?? 0, - TeamLiangbang = item.TeamLiangbang ?? 0, - TeamPenglou = item.TeamPenglou ?? 0, - }).ToList(); + List list = GetQualityStatisticsTable_first( + starttime, + endTime, + workorderid, + partnumber, + product_description, + team, + pageNum, + pageSize + ).Item1; + List newList = list.Select( + item => new QcQualityStatisticsFirstDto() + { + WorkorderId = item.WorkorderId, + FinishedPartNumber = item.FinishedPartNumber, + ProductDescription = GetDescription(item.FinishedPartNumber), + Color = item.Color, + RequireNumber = item.RequireNumber, + Team = item.Team, + QualifiedNumber = item.QualifiedNumber, + QualifiedRate = item.QualifiedRate ?? 0, + PaoguangTotal = item.PaoguangTotal ?? 0, + DamoTotal = item.DamoTotal ?? 0, + BaofeiTotal = item.BaofeiTotal ?? 0, + StartTime = item.StartTime, + EndTime = item.EndTime, + Remark = item.Remark ?? "", + // 油漆(6) + PaintSuokong = item.PaintSuokong ?? 0, + PaintZhengkong = item.PaintZhengkong ?? 0, + PaintShiguang = item.PaintShiguang ?? 0, + PaintSecha = item.PaintSecha ?? 0, + PaintDianzi = item.PaintDianzi ?? 0, + PaintOther = item.PaintOther ?? 0, + // 设备(7) + DeviceShuiban = item.DeviceShuiban ?? 0, + DeviceZandian = item.DeviceZandian ?? 0, + DeviceBianxing = item.DeviceBianxing ?? 0, + DeviceYouzhu = item.DeviceYouzhu ?? 0, + DeviceTuoluo = item.DeviceTuoluo ?? 0, + DeviceZhuangshang = item.DeviceZhuangshang ?? 0, + DeviceOther = item.DeviceOther ?? 0, + // 毛坯(6) + BlankMaoci = item.BlankMaoci ?? 0, + BlankSuoyin = item.BlankSuoyin ?? 0, + BlankCanshuang = item.BlankCanshuang ?? 0, + BlankShaying = item.BlankShaying ?? 0, + BlankZangdian = item.BlankZangdian ?? 0, + BlankDamo = item.BlankDamo ?? 0, + // 程序(5) + ProgramLiuguang = item.ProgramLiuguang ?? 0, + ProgramSeqiqueqi = item.ProgramSeqiqueqi ?? 0, + ProgramQingqiqueqi = item.ProgramQingqiqueqi ?? 0, + ProgramJupi = item.ProgramJupi ?? 0, + ProgramOther = item.ProgramOther ?? 0, + // 班组操作(6) + TeamTuoluocanshuang = item.TeamTuoluocanshuang ?? 0, + TeamQingqiqikuai = item.TeamQingqiqikuai ?? 0, + TeamSeqiqikuai = item.TeamSeqiqikuai ?? 0, + TeamFahua = item.TeamFahua ?? 0, + TeamLiangbang = item.TeamLiangbang ?? 0, + TeamPenglou = item.TeamPenglou ?? 0, + } + ) + .ToList(); return newList; } - public List DoThirdExcel(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize) + public List DoSecondExcel( + DateTime starttime, + DateTime endTime, + string workorderid, + string partnumber, + string product_description, + string team, + int pageNum, + int pageSize + ) { - List list = GetQualityStatisticsTable_final(starttime, endTime, workorderid, partnumber, product_description, team, pageNum, pageSize).Item1; - List newList = list.Select(item => new QcQualityStatisticsFirstDto() - { - WorkorderId = item.WorkorderId, - FinishedPartNumber = item.FinishedPartNumber, - ProductDescription = GetDescription(item.FinishedPartNumber), - Color = item.Color, - RequireNumber = item.RequireNumber, - Team = item.Team, - QualifiedNumber = item.QualifiedNumber, - QualifiedRate = item.QualifiedRate ?? 0, - PaoguangTotal = item.PaoguangTotal ?? 0, - DamoTotal = item.DamoTotal ?? 0, - BaofeiTotal = item.BaofeiTotal ?? 0, - StartTime = item.StartTime, - EndTime = item.EndTime, - Remark = item.Remark ?? "", - // 油漆(6) - PaintSuokong = item.PaintSuokong ?? 0, - PaintZhengkong = item.PaintZhengkong ?? 0, - PaintShiguang = item.PaintShiguang ?? 0, - PaintSecha = item.PaintSecha ?? 0, - PaintDianzi = item.PaintDianzi ?? 0, - PaintOther = item.PaintOther ?? 0, - // 设备(7) - DeviceShuiban = item.DeviceShuiban ?? 0, - DeviceZandian = item.DeviceZandian ?? 0, - DeviceBianxing = item.DeviceBianxing ?? 0, - DeviceYouzhu = item.DeviceYouzhu ?? 0, - DeviceTuoluo = item.DeviceTuoluo ?? 0, - DeviceZhuangshang = item.DeviceZhuangshang ?? 0, - DeviceOther = item.DeviceOther ?? 0, - // 毛坯(6) - BlankMaoci = item.BlankMaoci ?? 0, - BlankSuoyin = item.BlankSuoyin ?? 0, - BlankCanshuang = item.BlankCanshuang ?? 0, - BlankShaying = item.BlankShaying ?? 0, - BlankZangdian = item.BlankZangdian ?? 0, - BlankDamo = item.BlankDamo ?? 0, - // 程序(5) - ProgramLiuguang = item.ProgramLiuguang ?? 0, - ProgramSeqiqueqi = item.ProgramSeqiqueqi ?? 0, - ProgramQingqiqueqi = item.ProgramQingqiqueqi ?? 0, - ProgramJupi = item.ProgramJupi ?? 0, - ProgramOther = item.ProgramOther ?? 0, - // 班组操作(6) - TeamTuoluocanshuang = item.TeamTuoluocanshuang ?? 0, - TeamQingqiqikuai = item.TeamQingqiqikuai ?? 0, - TeamSeqiqikuai = item.TeamSeqiqikuai ?? 0, - TeamFahua = item.TeamFahua ?? 0, - TeamLiangbang = item.TeamLiangbang ?? 0, - TeamPenglou = item.TeamPenglou ?? 0, - }).ToList(); + List list = GetQualityStatisticsTable_again( + starttime, + endTime, + workorderid, + partnumber, + product_description, + team, + pageNum, + pageSize + ).Item1; + List newList = list.Select( + item => new QcQualityStatisticsFirstDto() + { + WorkorderId = item.WorkorderId, + FinishedPartNumber = item.FinishedPartNumber, + ProductDescription = GetDescription(item.FinishedPartNumber), + Color = item.Color, + RequireNumber = item.RequireNumber, + Team = item.Team, + QualifiedNumber = item.QualifiedNumber, + QualifiedRate = item.QualifiedRate ?? 0, + PaoguangTotal = item.PaoguangTotal ?? 0, + DamoTotal = item.DamoTotal ?? 0, + BaofeiTotal = item.BaofeiTotal ?? 0, + StartTime = item.StartTime, + EndTime = item.EndTime, + Remark = item.Remark ?? "", + // 油漆(6) + PaintSuokong = item.PaintSuokong ?? 0, + PaintZhengkong = item.PaintZhengkong ?? 0, + PaintShiguang = item.PaintShiguang ?? 0, + PaintSecha = item.PaintSecha ?? 0, + PaintDianzi = item.PaintDianzi ?? 0, + PaintOther = item.PaintOther ?? 0, + // 设备(7) + DeviceShuiban = item.DeviceShuiban ?? 0, + DeviceZandian = item.DeviceZandian ?? 0, + DeviceBianxing = item.DeviceBianxing ?? 0, + DeviceYouzhu = item.DeviceYouzhu ?? 0, + DeviceTuoluo = item.DeviceTuoluo ?? 0, + DeviceZhuangshang = item.DeviceZhuangshang ?? 0, + DeviceOther = item.DeviceOther ?? 0, + // 毛坯(6) + BlankMaoci = item.BlankMaoci ?? 0, + BlankSuoyin = item.BlankSuoyin ?? 0, + BlankCanshuang = item.BlankCanshuang ?? 0, + BlankShaying = item.BlankShaying ?? 0, + BlankZangdian = item.BlankZangdian ?? 0, + BlankDamo = item.BlankDamo ?? 0, + // 程序(5) + ProgramLiuguang = item.ProgramLiuguang ?? 0, + ProgramSeqiqueqi = item.ProgramSeqiqueqi ?? 0, + ProgramQingqiqueqi = item.ProgramQingqiqueqi ?? 0, + ProgramJupi = item.ProgramJupi ?? 0, + ProgramOther = item.ProgramOther ?? 0, + // 班组操作(6) + TeamTuoluocanshuang = item.TeamTuoluocanshuang ?? 0, + TeamQingqiqikuai = item.TeamQingqiqikuai ?? 0, + TeamSeqiqikuai = item.TeamSeqiqikuai ?? 0, + TeamFahua = item.TeamFahua ?? 0, + TeamLiangbang = item.TeamLiangbang ?? 0, + TeamPenglou = item.TeamPenglou ?? 0, + } + ) + .ToList(); return newList; } - public List DoTotalExcel(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize) + + public List DoThirdExcel( + DateTime starttime, + DateTime endTime, + string workorderid, + string partnumber, + string product_description, + string team, + int pageNum, + int pageSize + ) { - List list = GetQualityStatisticsTable_total(starttime, endTime, workorderid, partnumber, product_description, team, pageNum, pageSize).Item1; - List newList = list.Select(item => new QcQualityStatisticsFirstDto() - { - WorkorderId = item.WorkorderId, - FinishedPartNumber = item.FinishedPartNumber, - ProductDescription = GetDescription(item.FinishedPartNumber), - Color = item.Color, - RequireNumber = item.RequireNumber, - Team = item.Team, - QualifiedNumber = item.QualifiedNumber, - QualifiedRate = item.QualifiedRate ?? 0, - PaoguangTotal = item.PaoguangTotal ?? 0, - DamoTotal = item.DamoTotal ?? 0, - BaofeiTotal = item.BaofeiTotal ?? 0, - StartTime = item.StartTime, - EndTime = item.EndTime, - Remark = item.Remark ?? "", - // 油漆(6) - PaintSuokong = item.PaintSuokong ?? 0, - PaintZhengkong = item.PaintZhengkong ?? 0, - PaintShiguang = item.PaintShiguang ?? 0, - PaintSecha = item.PaintSecha ?? 0, - PaintDianzi = item.PaintDianzi ?? 0, - PaintOther = item.PaintOther ?? 0, - // 设备(7) - DeviceShuiban = item.DeviceShuiban ?? 0, - DeviceZandian = item.DeviceZandian ?? 0, - DeviceBianxing = item.DeviceBianxing ?? 0, - DeviceYouzhu = item.DeviceYouzhu ?? 0, - DeviceTuoluo = item.DeviceTuoluo ?? 0, - DeviceZhuangshang = item.DeviceZhuangshang ?? 0, - DeviceOther = item.DeviceOther ?? 0, - // 毛坯(6) - BlankMaoci = item.BlankMaoci ?? 0, - BlankSuoyin = item.BlankSuoyin ?? 0, - BlankCanshuang = item.BlankCanshuang ?? 0, - BlankShaying = item.BlankShaying ?? 0, - BlankZangdian = item.BlankZangdian ?? 0, - BlankDamo = item.BlankDamo ?? 0, - // 程序(5) - ProgramLiuguang = item.ProgramLiuguang ?? 0, - ProgramSeqiqueqi = item.ProgramSeqiqueqi ?? 0, - ProgramQingqiqueqi = item.ProgramQingqiqueqi ?? 0, - ProgramJupi = item.ProgramJupi ?? 0, - ProgramOther = item.ProgramOther ?? 0, - // 班组操作(6) - TeamTuoluocanshuang = item.TeamTuoluocanshuang ?? 0, - TeamQingqiqikuai = item.TeamQingqiqikuai ?? 0, - TeamSeqiqikuai = item.TeamSeqiqikuai ?? 0, - TeamFahua = item.TeamFahua ?? 0, - TeamLiangbang = item.TeamLiangbang ?? 0, - TeamPenglou = item.TeamPenglou ?? 0, - }).ToList(); + List list = GetQualityStatisticsTable_final( + starttime, + endTime, + workorderid, + partnumber, + product_description, + team, + pageNum, + pageSize + ).Item1; + List newList = list.Select( + item => new QcQualityStatisticsFirstDto() + { + WorkorderId = item.WorkorderId, + FinishedPartNumber = item.FinishedPartNumber, + ProductDescription = GetDescription(item.FinishedPartNumber), + Color = item.Color, + RequireNumber = item.RequireNumber, + Team = item.Team, + QualifiedNumber = item.QualifiedNumber, + QualifiedRate = item.QualifiedRate ?? 0, + PaoguangTotal = item.PaoguangTotal ?? 0, + DamoTotal = item.DamoTotal ?? 0, + BaofeiTotal = item.BaofeiTotal ?? 0, + StartTime = item.StartTime, + EndTime = item.EndTime, + Remark = item.Remark ?? "", + // 油漆(6) + PaintSuokong = item.PaintSuokong ?? 0, + PaintZhengkong = item.PaintZhengkong ?? 0, + PaintShiguang = item.PaintShiguang ?? 0, + PaintSecha = item.PaintSecha ?? 0, + PaintDianzi = item.PaintDianzi ?? 0, + PaintOther = item.PaintOther ?? 0, + // 设备(7) + DeviceShuiban = item.DeviceShuiban ?? 0, + DeviceZandian = item.DeviceZandian ?? 0, + DeviceBianxing = item.DeviceBianxing ?? 0, + DeviceYouzhu = item.DeviceYouzhu ?? 0, + DeviceTuoluo = item.DeviceTuoluo ?? 0, + DeviceZhuangshang = item.DeviceZhuangshang ?? 0, + DeviceOther = item.DeviceOther ?? 0, + // 毛坯(6) + BlankMaoci = item.BlankMaoci ?? 0, + BlankSuoyin = item.BlankSuoyin ?? 0, + BlankCanshuang = item.BlankCanshuang ?? 0, + BlankShaying = item.BlankShaying ?? 0, + BlankZangdian = item.BlankZangdian ?? 0, + BlankDamo = item.BlankDamo ?? 0, + // 程序(5) + ProgramLiuguang = item.ProgramLiuguang ?? 0, + ProgramSeqiqueqi = item.ProgramSeqiqueqi ?? 0, + ProgramQingqiqueqi = item.ProgramQingqiqueqi ?? 0, + ProgramJupi = item.ProgramJupi ?? 0, + ProgramOther = item.ProgramOther ?? 0, + // 班组操作(6) + TeamTuoluocanshuang = item.TeamTuoluocanshuang ?? 0, + TeamQingqiqikuai = item.TeamQingqiqikuai ?? 0, + TeamSeqiqikuai = item.TeamSeqiqikuai ?? 0, + TeamFahua = item.TeamFahua ?? 0, + TeamLiangbang = item.TeamLiangbang ?? 0, + TeamPenglou = item.TeamPenglou ?? 0, + } + ) + .ToList(); + return newList; + } + + public List DoTotalExcel( + DateTime starttime, + DateTime endTime, + string workorderid, + string partnumber, + string product_description, + string team, + int pageNum, + int pageSize + ) + { + List list = GetQualityStatisticsTable_total( + starttime, + endTime, + workorderid, + partnumber, + product_description, + team, + pageNum, + pageSize + ).Item1; + List newList = list.Select( + item => new QcQualityStatisticsFirstDto() + { + WorkorderId = item.WorkorderId, + FinishedPartNumber = item.FinishedPartNumber, + ProductDescription = GetDescription(item.FinishedPartNumber), + Color = item.Color, + RequireNumber = item.RequireNumber, + Team = item.Team, + QualifiedNumber = item.QualifiedNumber, + QualifiedRate = item.QualifiedRate ?? 0, + PaoguangTotal = item.PaoguangTotal ?? 0, + DamoTotal = item.DamoTotal ?? 0, + BaofeiTotal = item.BaofeiTotal ?? 0, + StartTime = item.StartTime, + EndTime = item.EndTime, + Remark = item.Remark ?? "", + // 油漆(6) + PaintSuokong = item.PaintSuokong ?? 0, + PaintZhengkong = item.PaintZhengkong ?? 0, + PaintShiguang = item.PaintShiguang ?? 0, + PaintSecha = item.PaintSecha ?? 0, + PaintDianzi = item.PaintDianzi ?? 0, + PaintOther = item.PaintOther ?? 0, + // 设备(7) + DeviceShuiban = item.DeviceShuiban ?? 0, + DeviceZandian = item.DeviceZandian ?? 0, + DeviceBianxing = item.DeviceBianxing ?? 0, + DeviceYouzhu = item.DeviceYouzhu ?? 0, + DeviceTuoluo = item.DeviceTuoluo ?? 0, + DeviceZhuangshang = item.DeviceZhuangshang ?? 0, + DeviceOther = item.DeviceOther ?? 0, + // 毛坯(6) + BlankMaoci = item.BlankMaoci ?? 0, + BlankSuoyin = item.BlankSuoyin ?? 0, + BlankCanshuang = item.BlankCanshuang ?? 0, + BlankShaying = item.BlankShaying ?? 0, + BlankZangdian = item.BlankZangdian ?? 0, + BlankDamo = item.BlankDamo ?? 0, + // 程序(5) + ProgramLiuguang = item.ProgramLiuguang ?? 0, + ProgramSeqiqueqi = item.ProgramSeqiqueqi ?? 0, + ProgramQingqiqueqi = item.ProgramQingqiqueqi ?? 0, + ProgramJupi = item.ProgramJupi ?? 0, + ProgramOther = item.ProgramOther ?? 0, + // 班组操作(6) + TeamTuoluocanshuang = item.TeamTuoluocanshuang ?? 0, + TeamQingqiqikuai = item.TeamQingqiqikuai ?? 0, + TeamSeqiqikuai = item.TeamSeqiqikuai ?? 0, + TeamFahua = item.TeamFahua ?? 0, + TeamLiangbang = item.TeamLiangbang ?? 0, + TeamPenglou = item.TeamPenglou ?? 0, + } + ) + .ToList(); return newList; } @@ -495,18 +781,20 @@ namespace ZR.Service.mes.qc { try { - WmMaterial material = Context.Queryable() - .Where(it => it.Partnumber == partnumber) - .First(); + WmMaterial material = Context + .Queryable() + .Where(it => it.Partnumber == partnumber) + .First(); if (material == null) { return "此零件号不在物料清单内!"; } else { - return !string.IsNullOrEmpty(material.Description) ? material.Description : material.ProductName; + return !string.IsNullOrEmpty(material.Description) + ? material.Description + : material.ProductName; } - } catch (Exception ex) {