diff --git a/ZR.Admin.WebApi/Extensions/EntityExtension.cs b/ZR.Admin.WebApi/Extensions/EntityExtension.cs
index 5cb646de..622879fd 100644
--- a/ZR.Admin.WebApi/Extensions/EntityExtension.cs
+++ b/ZR.Admin.WebApi/Extensions/EntityExtension.cs
@@ -18,9 +18,6 @@ namespace ZR.Admin.WebApi.Extensions
types.GetProperty("Create_by", flag)?.SetValue(source, context.GetName(), null);
types.GetProperty("CreatedBy", flag)?.SetValue(source, context.GetName(), null);
types.GetProperty("UserId", flag)?.SetValue(source, context.GetUId(), null);
-
-
-
return source;
}
diff --git a/ZR.Admin.WebApi/Hubs/MessageHub.cs b/ZR.Admin.WebApi/Hubs/MessageHub.cs
index 40ab34b5..e55b318a 100644
--- a/ZR.Admin.WebApi/Hubs/MessageHub.cs
+++ b/ZR.Admin.WebApi/Hubs/MessageHub.cs
@@ -110,13 +110,14 @@ namespace ZR.Admin.WebApi.Hubs
}
///
- /// 保存油漆缺陷采集累加信息
+ /// 保存油漆缺陷采集累加信息 首检
///
/// 工单id
/// 检测项
///
- public async Task SaveCacheInformation(string workorderid, string Moudle, string checkid)
+ public async Task SaveCacheInformation_v1(string workorderid, string Moudle, string checkid)
{
+ checkid = checkid + "_v1";
if (CacheHelper.Exists(checkid))
{
@@ -124,15 +125,72 @@ namespace ZR.Admin.WebApi.Hubs
logger.Info($"当前保存工单号{workorderid},检测项{checkid},累加的数为{sum}");
CacheHelper.SetCache(checkid, sum);
//SaveinspectItem
- await firstFQCService.SaveinspectItem(workorderid,Moudle, checkid,sum);
- await Clients.All.SendAsync("GetCache", Moudle,checkid, sum);
+ await firstFQCService.SaveinspectItem_v1(workorderid,Moudle, checkid,sum);
+ await Clients.All.SendAsync("GetCache_v1", Moudle,checkid, sum);
}
else
{
CacheHelper.SetCache(checkid, 1);
logger.Info($"当前保存工单号{workorderid},检测项{checkid},累加的数为1");
- await firstFQCService.SaveinspectItem(workorderid, Moudle, checkid, 1);
- await Clients.All.SendAsync("GetCache", Moudle, checkid, 1);
+ await firstFQCService.SaveinspectItem_v1(workorderid, Moudle, checkid, 1);
+ await Clients.All.SendAsync("GetCache_v1", Moudle, checkid, 1);
+ }
+ }
+
+
+ ///
+ /// 保存油漆缺陷采集累加信息 二检
+ ///
+ /// 工单id
+ /// 检测项
+ ///
+ public async Task SaveCacheInformation_v2(string workorderid, string Moudle, string checkid)
+ {
+ checkid = checkid + "_v2";
+
+ if (CacheHelper.Exists(checkid))
+ {
+ int sum = Convert.ToInt32(CacheHelper.GetCache(checkid)) + 1;
+ logger.Info($"当前保存工单号{workorderid},检测项{checkid},累加的数为{sum}");
+ CacheHelper.SetCache(checkid, sum);
+ //SaveinspectItem
+ await firstFQCService.SaveinspectItem_v2(workorderid, Moudle, checkid, sum);
+ await Clients.All.SendAsync("GetCache_v2", Moudle, checkid, sum);
+ }
+ else
+ {
+ CacheHelper.SetCache(checkid, 1);
+ logger.Info($"当前保存工单号{workorderid},检测项{checkid},累加的数为1");
+ await firstFQCService.SaveinspectItem_v2(workorderid, Moudle, checkid, 1);
+ await Clients.All.SendAsync("GetCache_v2", Moudle, checkid, 1);
+ }
+ }
+
+ ///
+ /// 保存油漆缺陷采集累加信息 三检
+ ///
+ /// 工单id
+ /// 检测项
+ ///
+ public async Task SaveCacheInformation_v3(string workorderid, string Moudle, string checkid)
+ {
+ checkid = checkid + "_v3";
+
+ if (CacheHelper.Exists(checkid))
+ {
+ int sum = Convert.ToInt32(CacheHelper.GetCache(checkid)) + 1;
+ logger.Info($"当前保存工单号{workorderid},检测项{checkid},累加的数为{sum}");
+ CacheHelper.SetCache(checkid, sum);
+ //SaveinspectItem
+ await firstFQCService.SaveinspectItem_v3(workorderid, Moudle, checkid, sum);
+ await Clients.All.SendAsync("GetCache_v3", Moudle, checkid, sum);
+ }
+ else
+ {
+ CacheHelper.SetCache(checkid, 1);
+ logger.Info($"当前保存工单号{workorderid},检测项{checkid},累加的数为1");
+ await firstFQCService.SaveinspectItem_v3(workorderid, Moudle, checkid, 1);
+ await Clients.All.SendAsync("GetCache_v3", Moudle, checkid, 1);
}
}
}
diff --git a/ZR.Model/MES/op/DTO/QcFqcDTO.cs b/ZR.Model/MES/op/DTO/QcFqcDTO.cs
index f2893d81..f81bbd48 100644
--- a/ZR.Model/MES/op/DTO/QcFqcDTO.cs
+++ b/ZR.Model/MES/op/DTO/QcFqcDTO.cs
@@ -6,7 +6,7 @@ using System.Threading.Tasks;
namespace ZR.Model.MES.op.DTO
{
- public class QcFqcDTO
+ public class QcFqcDTO
{
public int? Year { get; set; }
@@ -52,15 +52,15 @@ namespace ZR.Model.MES.op.DTO
///
/// 首检打磨数量
///
- public string PolishNum01 { get; set; }
+ public int? PolishNum01 { get; set; }
///
/// 首检报废数量
///
- public string ScrapNum01 { get; set; }
+ public int? ScrapNum01 { get; set; }
///
/// 二检合格数量
///
- public string QualifiedNum02 { get; set; }
+ public int? QualifiedNum02 { get; set; }
///
/// 二检打磨数量
///
@@ -72,14 +72,44 @@ namespace ZR.Model.MES.op.DTO
///
/// 三检合格数量
///
- public string QualifiedNum03 { get; set; }
+ public int? QualifiedNum03 { get; set; }
///
/// 三检打磨数量
///
- public string PolishNum03 { get; set; }
+ public int? PolishNum03 { get; set; }
///
/// 三检报废数量
///
- public string ScrapNum03 { get; set; }
+ public int? ScrapNum03 { get; set; }
+
+ ///
+ /// 一次合格数量
+ ///
+
+ public int? FirstgoodNum { get; set; }
+ ///
+ /// 一次合格率80
+ ///
+
+ public double? FirstgoodRate { get; set; }
+ ///
+ /// 最终合格数量
+ ///
+
+ public int? FinalgoodNum { get; set; }
+ ///
+ /// 最终合格率70
+ ///
+
+ public double? FinalgoodRate { get; set; }
+ ///
+ /// 报废数
+ ///
+
+ public int? ScrapNum { get; set; }
+ ///
+ /// 报废率70
+ ///
+ public double? ScrapRate { get; set; }
}
}
diff --git a/ZR.Model/MES/qc/QcAgaininspectionRecord.cs b/ZR.Model/MES/qc/QcAgaininspectionRecord.cs
new file mode 100644
index 00000000..a22fa900
--- /dev/null
+++ b/ZR.Model/MES/qc/QcAgaininspectionRecord.cs
@@ -0,0 +1,61 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ZR.Model.MES.qc
+{
+ ///
+ /// 二检实时记录表
+ ///
+ [SugarTable("qc_againinspection_record")]
+ public class QcAgaininspectionRecord
+ {
+ ///
+ /// 流水号
+ ///
+ [SugarColumn(ColumnName = "id", IsPrimaryKey = true)]
+ public string Id { get; set; }
+ ///
+ /// 工单id
+ ///
+ [SugarColumn(ColumnName = "fk_workorder_id")]
+ public string FkWorkorderId { get; set; }
+ ///
+ /// 检测项id
+ ///
+ [SugarColumn(ColumnName = "fk_inpection_id")]
+ public string FkInpectionId { get; set; }
+ ///
+ /// 模块
+ ///
+ [SugarColumn(ColumnName = "InspectionModule")]
+ public string InspectionModule { get; set; }
+ ///
+ /// 数值
+ ///
+ [SugarColumn(ColumnName = "counter")]
+ public int? Counter { get; set; }
+ ///
+ /// 创建人
+ ///
+ [SugarColumn(ColumnName = "CREATED_BY")]
+ public string CreatedBy { get; set; }
+ ///
+ /// 创建时间
+ ///
+ [SugarColumn(ColumnName = "CREATED_TIME")]
+ public DateTime? CreatedTime { get; set; }
+ ///
+ /// 更新人
+ ///
+ [SugarColumn(ColumnName = "UPDATED_BY")]
+ public string UpdatedBy { get; set; }
+ ///
+ /// 更新时间
+ ///
+ [SugarColumn(ColumnName = "UPDATED_TIME")]
+ public DateTime? UpdatedTime { get; set; }
+ }
+}
diff --git a/ZR.Model/MES/qc/QcFinalinspectionRecord.cs b/ZR.Model/MES/qc/QcFinalinspectionRecord.cs
new file mode 100644
index 00000000..c412b7b0
--- /dev/null
+++ b/ZR.Model/MES/qc/QcFinalinspectionRecord.cs
@@ -0,0 +1,61 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ZR.Model.MES.qc
+{
+ ///
+ /// 三检实时记录表
+ ///
+ [SugarTable("qc_finalinspection_record")]
+ public class QcFinalinspectionRecord
+ {
+ ///
+ /// 流水号
+ ///
+ [SugarColumn(ColumnName = "id", IsPrimaryKey = true)]
+ public string Id { get; set; }
+ ///
+ /// 工单id
+ ///
+ [SugarColumn(ColumnName = "fk_workorder_id")]
+ public string FkWorkorderId { get; set; }
+ ///
+ /// 检测项id
+ ///
+ [SugarColumn(ColumnName = "fk_inpection_id")]
+ public string FkInpectionId { get; set; }
+ ///
+ /// 模块
+ ///
+ [SugarColumn(ColumnName = "InspectionModule")]
+ public string InspectionModule { get; set; }
+ ///
+ /// 数值
+ ///
+ [SugarColumn(ColumnName = "counter")]
+ public int? Counter { get; set; }
+ ///
+ /// 创建人
+ ///
+ [SugarColumn(ColumnName = "CREATED_BY")]
+ public string CreatedBy { get; set; }
+ ///
+ /// 创建时间
+ ///
+ [SugarColumn(ColumnName = "CREATED_TIME")]
+ public DateTime? CreatedTime { get; set; }
+ ///
+ /// 更新人
+ ///
+ [SugarColumn(ColumnName = "UPDATED_BY")]
+ public string UpdatedBy { get; set; }
+ ///
+ /// 更新时间
+ ///
+ [SugarColumn(ColumnName = "UPDATED_TIME")]
+ public DateTime? UpdatedTime { get; set; }
+ }
+}
diff --git a/ZR.Model/MES/qc/QcFqc.cs b/ZR.Model/MES/qc/QcFqc.cs
index e8db4b48..cf8238d3 100644
--- a/ZR.Model/MES/qc/QcFqc.cs
+++ b/ZR.Model/MES/qc/QcFqc.cs
@@ -62,17 +62,17 @@ namespace ZR.Model.MES.qc
/// 首检打磨数量
///
[SugarColumn(ColumnName = "polishNum01")]
- public string PolishNum01 { get; set; }
+ public int? PolishNum01 { get; set; }
///
/// 首检报废数量
///
[SugarColumn(ColumnName = "scrapNum01")]
- public string ScrapNum01 { get; set; }
+ public int? ScrapNum01 { get; set; }
///
/// 二检合格数量
///
[SugarColumn(ColumnName = "qualifiedNum02")]
- public string QualifiedNum02 { get; set; }
+ public int? QualifiedNum02 { get; set; }
///
/// 二检打磨数量
///
@@ -87,17 +87,17 @@ namespace ZR.Model.MES.qc
/// 三检合格数量
///
[SugarColumn(ColumnName = "qualifiedNum03")]
- public string QualifiedNum03 { get; set; }
+ public int? QualifiedNum03 { get; set; }
///
/// 三检打磨数量
///
[SugarColumn(ColumnName = "polishNum03")]
- public string PolishNum03 { get; set; }
+ public int? PolishNum03 { get; set; }
///
/// 三检报废数量
///
[SugarColumn(ColumnName = "scrapNum03")]
- public string ScrapNum03 { get; set; }
+ public int? ScrapNum03 { get; set; }
///
/// 一次合格数量
@@ -108,7 +108,7 @@ namespace ZR.Model.MES.qc
/// 一次合格率80
///
[SugarColumn(ColumnName = "firstgoodRate")]
- public int? FirstgoodRate { get; set; }
+ public double? FirstgoodRate { get; set; }
///
/// 最终合格数量
///
@@ -118,17 +118,17 @@ namespace ZR.Model.MES.qc
/// 最终合格率70
///
[SugarColumn(ColumnName = "finalgoodRate")]
- public int? FinalgoodRate { get; set; }
+ public double? FinalgoodRate { get; set; }
///
/// 报废数
///
- [SugarColumn(ColumnName = "polishNum")]
- public int? PolishNum { get; set; }
+ [SugarColumn(ColumnName = "scrapNum")]
+ public int? ScrapNum { get; set; }
///
/// 报废率70
///
- [SugarColumn(ColumnName = "polishRate")]
- public int? PolishRate { get; set; }
+ [SugarColumn(ColumnName = "scrapRate")]
+ public double? ScrapRate { get; set; }
///
/// 创建人
///
diff --git a/ZR.Service/mes/op/OperationService.cs b/ZR.Service/mes/op/OperationService.cs
index a2c71913..58a54438 100644
--- a/ZR.Service/mes/op/OperationService.cs
+++ b/ZR.Service/mes/op/OperationService.cs
@@ -71,7 +71,16 @@ namespace ZR.Service.MES.op
return OpStatisticsDTOList;
}
-
+ ///
+ /// 质量统计分析表和工单关联一下
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public (List,int) GueryQualityStatistics(string workorderid ,int pageNum, int pageSize, int year = -1, int week = -1, int date = -1)
{
var predicate = Expressionable.Create()
@@ -79,6 +88,8 @@ namespace ZR.Service.MES.op
.AndIF(week > 0, p => p.Week == week)
.AndIF(date > 0, p => p.Date == date)
.ToExpression();
+
+
var predicate2 = Expressionable.Create()
.AndIF(!string.IsNullOrEmpty(workorderid),q=>q.FkWorkorderId== workorderid)
.ToExpression();
@@ -109,6 +120,11 @@ namespace ZR.Service.MES.op
QualifiedNum03 = q.QualifiedNum03,
PolishNum03 = q.PolishNum03,
ScrapNum03 = q.ScrapNum03,
+ FirstgoodNum=q.FirstgoodNum,
+ FirstgoodRate=q.FirstgoodRate,
+ FinalgoodRate=q.FinalgoodRate,
+ FinalgoodNum=q.FinalgoodNum,
+
}).MergeTable();
List QcFqcDTOList = query5.Where(predicate).ToPageList(pageNum, pageSize,ref totalCount);
diff --git a/ZR.Service/mes/qc/FirstFQCService.cs b/ZR.Service/mes/qc/FirstFQCService.cs
index cf457ec7..0f299609 100644
--- a/ZR.Service/mes/qc/FirstFQCService.cs
+++ b/ZR.Service/mes/qc/FirstFQCService.cs
@@ -1,5 +1,6 @@
using Infrastructure.Attribute;
using Microsoft.Extensions.DependencyInjection;
+using SqlSugar;
using System;
using System.Collections;
using System.Collections.Generic;
@@ -12,6 +13,7 @@ using ZR.Model.MES.qc.DTO;
using ZR.Model.MES.qu;
using ZR.Service.mes.qc.IService;
using ZR.Service.mes.qu.IService;
+using static Microsoft.Extensions.Logging.EventSource.LoggingEventSource;
namespace ZR.Service.mes.qc
{
@@ -25,7 +27,6 @@ namespace ZR.Service.mes.qc
checkItem.Paint = Queryable().Where(it => it.InspectionModule == "油漆").OrderBy(it => it.Id).ToList();
-
checkItem.device = Queryable().Where(it => it.InspectionModule == "设备").OrderBy(it => it.Id).ToList();
checkItem.Blank = Queryable().Where(it => it.InspectionModule == "毛坯").OrderBy(it => it.Id).ToList();
checkItem.program = Queryable().Where(it => it.InspectionModule == "程序").OrderBy(it => it.Id).ToList();
@@ -36,28 +37,29 @@ namespace ZR.Service.mes.qc
}
///
- /// 保存检测结果
+ /// 保存首次检测结果
///
- ///
- ///
- ///
- ///
+ /// 工单
+ /// 模块
+ /// 检测项
+ /// 数量
///
- public async Task SaveinspectItem(string workorder_id, string InspectionModule, string checkid, int counter)
+ public async Task SaveinspectItem_v1(string workorder_id, string InspectionModule, string checkid, int counter)
{
//更新实时记录表
QcFirstinspectionRecord record = new QcFirstinspectionRecord();
record.Id = DateTime.Now.ToString("MMddHHmmss");
record.InspectionModule = InspectionModule;
record.FKWorkorderId = workorder_id;
- record.FKInpectionId = checkid;
+ record.FKInpectionId = checkid.Substring(0, 3);
record.Counter = counter;
+ record.UpdatedTime = DateTime.Now;
var x = Context.Storageable(record)
- .WhereColumns(it => new {it.FKInpectionId,it.FKWorkorderId,it.InspectionModule })
+ .WhereColumns(it => new { it.FKInpectionId, it.FKWorkorderId, it.InspectionModule })
.ToStorage();
- x.AsInsertable.ExecuteCommandAsync(); //执行插入
- x.AsUpdateable.ExecuteCommandAsync(); //执行更新
+ x.AsInsertable.ExecuteCommandAsync(); //执行插入
+ x.AsUpdateable.ExecuteCommandAsync(); //执行更新
////更新初检报废表
//if (Convert.ToInt32(checkid) / 10 % 10==3)
@@ -83,10 +85,265 @@ namespace ZR.Service.mes.qc
}
-
-
-
+
+ ///
+ /// 保存二次检测结果
+ ///
+ /// 工单
+ /// 模块
+ /// 检测项
+ /// 数量
+ ///
+ public async Task SaveinspectItem_v2(string workorder_id, string InspectionModule, string checkid, int counter)
+ {
+ //更新实时记录表
+ QcAgaininspectionRecord record = new QcAgaininspectionRecord();
+ record.Id = DateTime.Now.ToString("MMddHHmmss");
+ record.InspectionModule = InspectionModule;
+ record.FkWorkorderId = workorder_id;
+ record.FkInpectionId = checkid.Substring(0, 3);
+ record.Counter = counter;
+ record.UpdatedTime = DateTime.Now;
+ var x = Context.Storageable(record)
+ .WhereColumns(it => new { it.FkInpectionId, it.FkWorkorderId, it.InspectionModule })
+ .ToStorage();
+
+ x.AsInsertable.ExecuteCommandAsync(); //执行插入
+ x.AsUpdateable.ExecuteCommandAsync(); //执行更新
+
+ ////更新初检报废表
+ //if (Convert.ToInt32(checkid) / 10 % 10==3)
+ //{
+ // QcAgaininspectionUselessnum scrap =new QcAgaininspectionUselessnum();
+ // scrap.Id = "scrap" + DateTime.Now.ToString("MMddHHmmss");
+ // scrap.FkInspectionitemId = checkid;
+ // scrap.FkFqcId = "";
+ // scrap.ProductName = "";
+ // scrap.Number= 1;
+
+
+
+ //}
+
+ ////更新初检xiazi表
+ //if (Convert.ToInt32(checkid) / 10 % 10 == 1)
+ //{
+
+ //}
+
+
+
+
+ }
+
+ ///
+ /// 保存最终检测结果
+ ///
+ /// 工单
+ /// 模块
+ /// 检测项
+ /// 数量
+ ///
+ public async Task SaveinspectItem_v3(string workorder_id, string InspectionModule, string checkid, int counter)
+ {
+ //更新实时记录表
+ QcFinalinspectionRecord record = new QcFinalinspectionRecord();
+ record.Id = DateTime.Now.ToString("MMddHHmmss");
+ record.InspectionModule = InspectionModule;
+ record.FkWorkorderId = workorder_id;
+ record.FkInpectionId = checkid.Substring(0, 3);
+ record.Counter = counter;
+ record.UpdatedTime = DateTime.Now;
+ var x = Context.Storageable(record)
+ .WhereColumns(it => new { it.FkInpectionId, it.FkWorkorderId, it.InspectionModule })
+ .ToStorage();
+
+ x.AsInsertable.ExecuteCommandAsync(); //执行插入
+ x.AsUpdateable.ExecuteCommandAsync(); //执行更新
+
+ ////更新初检报废表
+ //if (Convert.ToInt32(checkid) / 10 % 10==3)
+ //{
+ // QcAgaininspectionUselessnum scrap =new QcAgaininspectionUselessnum();
+ // scrap.Id = "scrap" + DateTime.Now.ToString("MMddHHmmss");
+ // scrap.FkInspectionitemId = checkid;
+ // scrap.FkFqcId = "";
+ // scrap.ProductName = "";
+ // scrap.Number= 1;
+
+
+
+ //}
+
+ ////更新初检xiazi表
+ //if (Convert.ToInt32(checkid) / 10 % 10 == 1)
+ //{
+
+ //}
+
+
+
+
+ }
+
+ ///
+ /// 当产品切换时,完成质量统计分析
+ ///
+ /// 工单
+ /// 产品名称
+ /// 左右
+ /// 颜色
+ /// 班组
+ /// 投入数
+ public void quailtyStatics(string workorderid, string productName, string leftRight, string color, string team, int inputNum)
+ {
+ QcFqc record = new QcFqc();
+ record.Id = DateTime.Now.ToString("MMddHHmmss");
+ record.ProductName = productName;
+ record.LeftRight = leftRight;
+ record.Color = color;
+ record.Team = team;
+
+ //TODO 1. 处理首检
+
+
+ //1.1 首检合格数=投入数-抛光数-打磨数-报废数
+ List qcFirstinspections = Context.Queryable().Where(it => it.FKWorkorderId == workorderid).ToList();
+
+ int NoQualifiedNum01 = 0;
+ qcFirstinspections.ForEach(it =>
+ {
+ NoQualifiedNum01 += (int)it.Counter;
+
+ });
+ record.QualifiedNum01 = inputNum - NoQualifiedNum01;
+
+
+ //1.2 首检抛光数
+ List defectNum01RecordList = Context.Queryable().Where(it => it.FKWorkorderId == workorderid).Where("FKInpectionId like @FKInpectionId", new { FKInpectionId = "_" + 1 + "_" }).ToList();
+ int defectNum01RecordSum = 0;
+ defectNum01RecordList.ForEach(it =>
+ {
+ defectNum01RecordSum += (int)it.Counter;
+ });
+ record.DefectNum01 = defectNum01RecordSum;
+
+ //1.3 首检打磨数
+ List polishNum01RecordList = Context.Queryable().Where(it => it.FKWorkorderId == workorderid).Where("FKInpectionId like @FKInpectionId", new { FKInpectionId = "_" + 2 + "_" }).ToList();
+ int polishNum01RecordSum = 0;
+ polishNum01RecordList.ForEach(it =>
+ {
+ polishNum01RecordSum += (int)it.Counter;
+ });
+ record.PolishNum01 = polishNum01RecordSum;
+
+ //1.4 首检报废数
+ List scrapNum01RecordList = Context.Queryable().Where(it => it.FKWorkorderId == workorderid).Where("FKInpectionId like @FKInpectionId", new { FKInpectionId = "_" + 3 + "_" }).ToList();
+ int scrapNum01RecordSum = 0;
+ scrapNum01RecordList.ForEach(it =>
+ {
+ scrapNum01RecordSum += (int)it.Counter;
+ });
+ record.PolishNum01 = scrapNum01RecordSum;
+
+
+ //TODO 2. 处理二检
+
+ //2.1 二检的合格数 = 首检的抛光数 - 二检打磨 - 二检报废
+ List qcAgaininspections = Context.Queryable().Where(it => it.FkWorkorderId == workorderid).ToList();
+
+ int NoQualifiedNum02 = 0;
+ qcAgaininspections.ForEach(it =>
+ {
+ NoQualifiedNum02 += (int)it.Counter;
+
+ });
+ record.QualifiedNum02 = defectNum01RecordSum - NoQualifiedNum02;
+
+ //2.2 二检打磨数
+ List polishNum02RecordList = Context.Queryable().Where(it => it.FkWorkorderId == workorderid).Where("FKInpectionId like @FKInpectionId", new { FKInpectionId = "_" + 2 + "_" }).ToList();
+ int polishNum02RecordSum = 0;
+
+ polishNum02RecordList.ForEach(it =>
+ {
+ polishNum02RecordSum += (int)it.Counter;
+ });
+ record.PolishNum02 = polishNum02RecordSum;
+
+
+ //2.3 二检报废
+ List scrapNum02RecordList = Context.Queryable().Where(it => it.FkWorkorderId == workorderid).Where("FKInpectionId like @FKInpectionId", new { FKInpectionId = "_" + 3 + "_" }).ToList();
+ int scrapNum02RecordSum = 0;
+ scrapNum02RecordList.ForEach(it =>
+ {
+ scrapNum02RecordSum += (int)it.Counter;
+ });
+ record.ScrapNum02 = scrapNum02RecordSum;
+
+
+ //TODO 3. 处理三检
+ // 3.1 三检合格数=(一检合格数 + 二检合格数) - (三检打磨数+三检报废数)
+
+ List qcFinalinspections = Context.Queryable().Where(it => it.FkWorkorderId == workorderid).ToList();
+
+ int NoQualifiedNum03 = 0;
+ qcAgaininspections.ForEach(it =>
+ {
+ NoQualifiedNum03 += (int)it.Counter;
+
+ });
+
+ record.QualifiedNum03 = (record.QualifiedNum01 + record.QualifiedNum02) - NoQualifiedNum03;
+
+ //3.2 三检打磨数
+ List polishNum03RecordList = Context.Queryable().Where(it => it.FkWorkorderId == workorderid).Where("FKInpectionId like @FKInpectionId", new { FKInpectionId = "_" + 2 + "_" }).ToList();
+ int polishNum03RecordSum = 0;
+
+ polishNum03RecordList.ForEach(it =>
+ {
+ polishNum03RecordSum += (int)it.Counter;
+ });
+ record.PolishNum03 = polishNum03RecordSum;
+
+ //3.3 三检报废数
+
+ List scrapNum03RecordList = Context.Queryable().Where(it => it.FkWorkorderId == workorderid).Where("FKInpectionId like @FKInpectionId", new { FKInpectionId = "_" + 3 + "_" }).ToList();
+ int scrapNum03RecordSum = 0;
+ scrapNum03RecordList.ForEach(it =>
+ {
+ scrapNum03RecordSum += (int)it.Counter;
+ });
+ record.ScrapNum03 = scrapNum03RecordSum;
+
+ //TODO 4 统计分析
+
+ // 4.1 一次合格率
+ record.FirstgoodNum = record.QualifiedNum01;
+ record.FirstgoodRate = CalculatePercentage((int)record.FirstgoodNum, inputNum);
+ // 4.2 最终合格率
+ record.FinalgoodNum = record.QualifiedNum03 / inputNum;
+ record.FinalgoodRate = CalculatePercentage((int)record.FinalgoodNum, inputNum);
+ // 4.3 报废率
+ record.ScrapNum = record.ScrapNum01 + record.ScrapNum02 + record.ScrapNum03;
+ record.ScrapRate = CalculatePercentage((int)record.ScrapNum, inputNum);
+
+ record.CreatedTime = DateTime.Now;
+ Context.Insertable(record).ExecuteCommand();
+
+ }
+ ///
+ /// 计算百分比
+ ///
+ ///
+ ///
+ ///
+
+ static double CalculatePercentage(int num1, int num2)
+ {
+ double percentage = ((double)num1 / num2) * 100;
+ return Math.Round(percentage, 2);
+ }
}
}
diff --git a/ZR.Service/mes/qc/IService/IFirstFQCService.cs b/ZR.Service/mes/qc/IService/IFirstFQCService.cs
index 71fd70e9..379d6834 100644
--- a/ZR.Service/mes/qc/IService/IFirstFQCService.cs
+++ b/ZR.Service/mes/qc/IService/IFirstFQCService.cs
@@ -10,6 +10,8 @@ namespace ZR.Service.mes.qc.IService
public interface IFirstFQCService
{
public CheckItemTableDTO GetCheckItemTable();
- public Task SaveinspectItem(string workorder_id, string InspectionModule, string checkid, int counter);
+ public Task SaveinspectItem_v1(string workorder_id, string InspectionModule, string checkid, int counter);
+ public Task SaveinspectItem_v2(string workorder_id, string InspectionModule, string checkid, int counter);
+ public Task SaveinspectItem_v3(string workorder_id, string InspectionModule, string checkid, int counter);
}
}