schangxiang@126.com
2024-09-02 15662d05c2e2a8620cdabf9038c94f7b64a106d2
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
@@ -23,32 +23,32 @@
{
    public class WorkPieceInfoManager
    {
        public static WorkPieceInfo GetWorkPieceInfo(string WorkPieceID)
        {
            using (DbModel db = new DbModel())
            {
                //查询所有
                var query = db.WorkPieceInfo.Where(o => o.WorkPieceID == WorkPieceID).FirstOrDefault();
                return query;
            }
        }
        //public static WorkPieceInfo GetWorkPieceInfo(string WorkPieceID)
        //{
        //    using (DbModel db = new DbModel())
        //    {
        //        //查询所有
        //        var query = db.WorkPieceInfo.Where(o => o.WorkPieceID == WorkPieceID).FirstOrDefault();
        //        return query;
        //    }
        //}
        public static long InsertWorkPieceInfo(WorkPieceInfo workPiece)
        {
            using (DbModel db = new DbModel())
            {
                db.WorkPieceInfo.Add(workPiece);
                db.SaveChanges();
                return workPiece.Id;
            }
        }
        //public static long InsertWorkPieceInfo(WorkPieceInfo workPiece)
        //{
        //    using (DbModel db = new DbModel())
        //    {
        //        db.WorkPieceInfo.Add(workPiece);
        //        db.SaveChanges();
        //        return workPiece.Id;
        //    }
        //}
        public static WorkPieceLogMiddle GetAddWorkPieceLog(WorkPieceLogMiddle loginfo)
        {
            loginfo.Id = Yitter.IdGenerator.YitIdHelper.NextId();
            return loginfo;
        }
        //public static WorkPieceLogMiddle GetAddWorkPieceLog(WorkPieceLogMiddle loginfo)
        //{
        //    loginfo.Id = Yitter.IdGenerator.YitIdHelper.NextId();
        //    return loginfo;
        //}
        /// <summary>
        /// 给WorkPieceLog主键等公共的的属性赋值
@@ -151,7 +151,7 @@
            }
            catch (Exception ex)
            {
                loginfo.Remarks = (loginfo.Remarks ?? "") + $"{loginfo.WorkPieceID ?? "空"}刀具寿命更新数据异常{ex.Message}";
                loginfo.Remarks = $"{loginfo.WorkPieceID ?? "空"}刀具寿命更新数据异常{ex.Message}";
            }
        }
@@ -198,7 +198,7 @@
                        {
                            if (info.WorkingProcedureCurrent.Equals("OP05"))
                            {
                                loginfo.Remarks = (loginfo.Remarks ?? "") + $"读取二维码{loginfo.WorkPieceID ?? "空"} OP05工序重复读取了";
                                loginfo.Remarks = $"读取二维码{loginfo.WorkPieceID ?? "空"} OP05工序重复读取了";
                                return;
                            }
                        }
@@ -214,7 +214,7 @@
                        info.WorkPieceCurrentPosition = loginfo.WorkingProcedure;
                        info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2;
                        info.WorkingProcedureCurrent = loginfo.WorkingProcedure;
                        info.Remarks = info.Remarks ?? "" + $"{info.WorkingProcedureCurrent}工件上线";
                        info.Remarks = $"{info.WorkingProcedureCurrent}工件上线";
                        //修复下 op35 同一个件 下线时间跟下一个上线时间一模一样的问题  【Editby shaocx,2024-08-27】
                        var isNeedAddNewProcess = true;
@@ -224,14 +224,15 @@
                            if (pro.WorkingProcedureCurrent == loginfo.WorkingProcedure)
                            {//表示工序相同
                                isNeedAddNewProcess = false;
                                pro.Remarks = (pro.Remarks ?? "") + "又一次上线,更新结束时间";
                                pro.Remarks = "又一次上线,更新结束时间";
                            }
                            else
                            {
                                pro.EndTime = DateTimeHelper.GetDateTime();
                                pro.UpdatedUserName = loginfo.MonitoringPoint;
                                pro.UpdateDataCapturePointCname = loginfo.DataCapturePointCname;
                                pro.UpdatedTime = DateTimeHelper.GetDateTime();
                                pro.Remarks = (pro.Remarks ?? "") + "又一次上线,更新结束时间";
                                pro.Remarks = "又一次上线,更新结束时间";
                            }
                        }
                        if (isNeedAddNewProcess)
@@ -253,8 +254,10 @@
                            new_process.Id = Yitter.IdGenerator.YitIdHelper.NextId();
                            new_process.CreatedUserName = loginfo.MonitoringPoint;
                            new_process.DataCapturePointCname = loginfo.DataCapturePointCname;
                            new_process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                            new_process.UpdatedUserName = loginfo.MonitoringPoint;
                            new_process.UpdateDataCapturePointCname = loginfo.DataCapturePointCname;
                            new_process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                            new_process.OperationType = OperationType.生产.ToString();
                            new_process.Remarks = "";
@@ -366,14 +369,14 @@
                    }
                    else
                    {
                        loginfo.Remarks = (loginfo.Remarks ?? "") + $"上线完成读取二维码{loginfo.WorkPieceID ?? "空"}异常";
                        loginfo.Remarks = $"上线完成读取二维码{loginfo.WorkPieceID ?? "空"}异常";
                        Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}上线监控读码标记 读取工件码数据[{loginfo.WorkPieceID ?? "空"}]时异常:");
                    }
                }
                catch (Exception e)
                {
                    loginfo.Remarks = (loginfo.Remarks ?? "") + $"读取二维码{loginfo.WorkPieceID ?? "空"}更新数据异常{e.Message}";
                    loginfo.Remarks = $"读取二维码{loginfo.WorkPieceID ?? "空"}更新数据异常{e.Message}";
                    Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}上线监控读码标记 读取工件码数据[{loginfo.WorkPieceID ?? "空"}]时异常:", e);
                }
                finally
@@ -560,7 +563,7 @@
                            }
                            else
                            {
                                loginfo2.Remarks = loginfo2.Remarks ?? "" + $"|工件{logMiddle.WorkPieceID} 质量检测完成工序{logMiddle.MonitoringPoint} 没有获取到工件信息不做更新";
                                loginfo2.Remarks = $"|工件{logMiddle.WorkPieceID} 质量检测完成工序{logMiddle.MonitoringPoint} 没有获取到工件信息不做更新";
                                Log4NetHelper.WriteErrorLog(type, $"工件{logMiddle.WorkPieceID} 质量检测完成工序{logMiddle.MonitoringPoint} 没有获取到工件信息不做更新");
                                return;
                            }
@@ -611,7 +614,7 @@
                        pieceInfo.QualityStateUpdateUser = logMiddle.UpdatedUserName;
                        pieceInfo.QualityStateUpdateTime = logMiddle.UpdatedTime.Value.LocalDateTime;
                        pieceInfo.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString();
                        pieceInfo.Remarks = pieceInfo.Remarks ?? "" + $"{logMiddle.WorkingProcedure}质量检测完成修改";
                        pieceInfo.Remarks = $"{logMiddle.WorkingProcedure}质量检测完成修改";
                        pieceInfo.UpdatedUserName = ResetUpdatedUserName(logMiddle);
                        pieceInfo.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                        if (!(pieceInfo.WorkingProcedureStartTime.HasValue && pieceInfo.WorkingProcedureStartTime > DateTime.Parse("1900/01/01")))
@@ -787,8 +790,10 @@
                            process.Id = Yitter.IdGenerator.YitIdHelper.NextId();
                            process.CreatedUserName = ResetUpdatedUserName(logMiddle);
                            process.DataCapturePointCname = logMiddle.DataCapturePointCname;
                            process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                            process.UpdatedUserName = ResetUpdatedUserName(logMiddle);
                            process.UpdateDataCapturePointCname = logMiddle.DataCapturePointCname;
                            process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                            process.OperationType = OperationType.生产.ToString();
                            process.QualityDataInfoID = qualityData.Id;
@@ -799,6 +804,7 @@
                        {//其他的都只是修改
                            pro.QualityDataInfoID = qualityData.Id;
                            pro.UpdatedUserName = ResetUpdatedUserName(logMiddle);
                            pro.UpdateDataCapturePointCname = logMiddle.DataCapturePointCname;
                            pro.UpdatedTime = DateTimeHelper.GetDateTime();
                            //不再默认赋值为合格 【Editby shaocx,2024-08-16】
@@ -812,7 +818,7 @@
                            if (logMiddle.WorkingProcedure == "OP60")
                            {
                                pro.CreatedUserName = ResetUpdatedUserName(logMiddle);
                                pro.DataCapturePointCname = logMiddle.DataCapturePointCname;
                            }
                        }
@@ -836,19 +842,19 @@
                    }
                    else
                    {
                        loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"质量检测完成读取二维码{logMiddle.WorkPieceID ?? "空"}异常";
                        loginfo2.Remarks = $"质量检测完成读取二维码{logMiddle.WorkPieceID ?? "空"}异常";
                        Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}工序监控读码标记 读取工件码数据[{logMiddle.WorkPieceID ?? "空"}]时异常:");
                    }
                }
                catch (Exception ex)
                {
                    loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"质量检测完成{logMiddle.WorkPieceID ?? "空"}更新数据异常{ex.Message}++{ex.StackTrace}";
                    loginfo2.Remarks = $"质量检测完成{logMiddle.WorkPieceID ?? "空"}更新数据异常{ex.Message}++{ex.StackTrace}";
                    Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}工序监控读码标记 读取工件码数据[{logMiddle.WorkPieceID ?? "空"}]时异常:");
                }
                finally
                {
                    loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"质量:{logMiddle.QualityStateStr ?? "空"}";
                    loginfo2.Remarks = $"质量:{logMiddle.QualityStateStr ?? "空"}";
                    db.WorkPieceLog.Add(GetAddWorkPieceLog(loginfo2));//插入工件采集日志表
                    db.SaveChanges();
                }
@@ -992,6 +998,7 @@
                            cur_db_info.UpdatedUserName = loginfo.MonitoringPoint;
                            cur_db_info.UpdatedTime = DateTime.Now;
                            cur_db_info.Remarks = "工件NOOK推出";
                            loginfo2.Remarks = cur_db_info.Remarks;
                            if (!(cur_db_info.WorkingProcedureStartTime.HasValue && cur_db_info.WorkingProcedureStartTime > DateTime.Parse("1900/01/01")))
                            {
                                cur_db_info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();
@@ -1004,7 +1011,7 @@
                        qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault();
                        if (loginfo.WorkingProcedure.Equals("OP35"))
                        {//为了解决OP35的采集到的质量信息是OK还NOOK的情况,OP35 NOOK时更新质量信息
                            loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"OP35NOOK原质量信息{(cur_db_info.QualityState.HasValue ? cur_db_info.QualityState.Value.ToString() : "空")}";
                            loginfo2.Remarks = $"OP35NOOK原质量信息{(cur_db_info.QualityState.HasValue ? cur_db_info.QualityState.Value.ToString() : "空")}";
                            cur_db_info.QualityState = (int)QualityState.NG;
                            if (!cur_db_info.QualityState.Equals(((int)QualityState.OK).ToString()))
                            {
@@ -1031,6 +1038,7 @@
                            pro.EndTime = DateTimeHelper.GetDateTime();
                            pro.Remarks = (pro.Remarks ?? "") + "NOOK结束";
                            pro.UpdatedUserName = loginfo.MonitoringPoint;
                            pro.UpdateDataCapturePointCname = loginfo.DataCapturePointCname;
                            pro.UpdatedTime = DateTimeHelper.GetDateTime();
                        }
@@ -1041,13 +1049,13 @@
                    }
                    else
                    {
                        loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"工件NOOK推出读取二维码{loginfo.WorkPieceID ?? "空"}异常";
                        loginfo2.Remarks = $"工件NOOK推出读取二维码{loginfo.WorkPieceID ?? "空"}异常";
                        Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}工件NOOK推出读码标记 读取工件码数据[{loginfo.WorkPieceID ?? "空"}]时异常:");
                    }
                }
                catch (Exception e)
                {
                    loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"读取二维码{loginfo.WorkPieceID ?? "空"}更新数据异常{e.Message}";
                    loginfo2.Remarks = $"读取二维码{loginfo.WorkPieceID ?? "空"}更新数据异常{e.Message}";
                }
@@ -1120,6 +1128,7 @@
                            cur_db_info.WorkPieceCurrentPositionOrder = cur_db_info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2;
                        }
                        cur_db_info.Remarks = "工件SPC抽检推出";
                        loginfo2.Remarks = cur_db_info.Remarks;
                        //更新上一工序的结束时间
                        var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID && o.WorkingProcedureCurrent == loginfo.WorkingProcedure
@@ -1129,6 +1138,7 @@
                            pro.EndTime = DateTimeHelper.GetDateTime();
                            pro.Remarks = (pro.Remarks ?? "") + "SPC抽检结束";
                            pro.UpdatedUserName = loginfo.MonitoringPoint;
                            pro.UpdateDataCapturePointCname = loginfo.DataCapturePointCname;
                            pro.UpdatedTime = DateTimeHelper.GetDateTime();
                        }
                        //每次SPC 都插入追溯表
@@ -1140,8 +1150,10 @@
                        process.QualityState = (int)QualityState.Suspected;
                        process.Id = Yitter.IdGenerator.YitIdHelper.NextId();
                        process.CreatedUserName = loginfo.MonitoringPoint;
                        process.DataCapturePointCname = loginfo.DataCapturePointCname;
                        process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                        process.UpdatedUserName = loginfo.MonitoringPoint;
                        process.UpdateDataCapturePointCname = loginfo.DataCapturePointCname;
                        process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                        process.Remarks = "工件SPC抽检推出";
                        db.WorkPieceProcess.Add(process);
@@ -1151,13 +1163,13 @@
                    }
                    else
                    {
                        loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"工件SPC抽检推出读取二维码{loginfo.WorkPieceID ?? "空"}异常";
                        loginfo2.Remarks = $"工件SPC抽检推出读取二维码{loginfo.WorkPieceID ?? "空"}异常";
                        Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}工件SPC抽检推出读码标记 读取工件码数据[{loginfo.WorkPieceID ?? "空"}]时异常:");
                    }
                }
                catch (Exception e)
                {
                    loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"读取二维码{loginfo.WorkPieceID ?? "空"}更新数据异常{e.Message}";
                    loginfo2.Remarks = $"读取二维码{loginfo.WorkPieceID ?? "空"}更新数据异常{e.Message}";
                }
                finally
                {
@@ -1384,8 +1396,10 @@
                                process.QualityState = WorkPieceInfoManager.GetQualityStateValue(logMiddle.QualityState);
                            }
                            process.CreatedUserName = logMiddle.MonitoringPoint;
                            process.DataCapturePointCname = logMiddle.DataCapturePointCname;
                            process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                            process.UpdatedUserName = logMiddle.MonitoringPoint;
                            process.UpdateDataCapturePointCname = logMiddle.DataCapturePointCname;
                            process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                            process.OperationType = OperationType.生产.ToString();
                            process.Remarks = "";
@@ -1412,6 +1426,7 @@
                            }
                            pro.EndTime = DateTimeHelper.GetDateTime();
                            pro.UpdatedUserName = logMiddle.MonitoringPoint;
                            pro.UpdateDataCapturePointCname = logMiddle.DataCapturePointCname;
                            pro.UpdatedTime = DateTimeHelper.GetDateTime();
                            if (logMiddle.WorkingProcedure.Equals("OP80"))
                            {
@@ -1431,14 +1446,14 @@
                    }
                    else
                    {
                        loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"下线完成读取二维码{logMiddle.WorkPieceID ?? "空"}异常";
                        loginfo2.Remarks = $"下线完成读取二维码{logMiddle.WorkPieceID ?? "空"}异常";
                        Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}工序下线 读取工件码数据[{logMiddle.WorkPieceID ?? "空"}]时异常:");
                    }
                }
                catch (Exception e)
                {
                    loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"读取二维码{logMiddle.WorkPieceID ?? "空"}更新数据异常{e.Message}";
                    loginfo2.Remarks = $"读取二维码{logMiddle.WorkPieceID ?? "空"}更新数据异常{e.Message}";
                }
                db.WorkPieceLog.Add(GetAddWorkPieceLog(loginfo2));//插入工件采集日志表
                db.SaveChanges();
@@ -2045,7 +2060,7 @@
                }
                catch (Exception e)
                {
                    loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"{loginfo2.MonitoringPoint}设备监控更新数据异常{e.Message}.{e.StackTrace}";
                    loginfo2.Remarks = $"{loginfo2.MonitoringPoint}设备监控更新数据异常{e.Message}.{e.StackTrace}";
                    Log4NetHelper.WriteErrorLog(type, $"{loginfo2.MonitoringPoint}设备监控更新数据异常{e.Message}.{e.StackTrace}");
                }