schangxiang@126.com
2024-09-06 2c53ddfdef7167fed7d777ee72e6e445c0ed91d3
优化 op05上线
已重命名2个文件
已修改3个文件
164 ■■■■■ 文件已修改
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501 - 新版.cs 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501 - 老版.cs 补丁 | 查看 | 原始文档 | blame | 历史
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501.cs 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/iWare_SCADA_BusinessLogical.csproj 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
@@ -190,6 +190,7 @@
                            info.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime();
                            info.WorkingProcedurePlan = ConfigHelper.GetConfigString("WorkingProcedureAllStr") ?? "OP05OP10OP20OP30OP35OP40OP50OP60OP70OP80";
                            info.CreatedUserName = loginfo.MonitoringPoint;
                            info.WorkingProcedureCurrent = loginfo.WorkingProcedure;//工序赋值
                            SystemBussinessHelper.SetWorkPieceInfoMiddleForCreatedUserName(ref info, loginfo.DataCapturePointCname);
                            info.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                            info = ParseQRCode(info);
@@ -197,14 +198,15 @@
                        }
                        else
                        {
                            if (info.WorkingProcedureCurrent.Equals("OP05"))
                            {
                                loginfo.Remarks = $"读取二维码{loginfo.WorkPieceID ?? "空"} OP05工序重复读取了";
                                return;
                            }
                            //存在 è¡¨ WorkPieceInfo有,但是 WorkPieceProcess这个工序不存在的情况 ã€Editby shaocx,2024-09-06】
                            //if (info.WorkingProcedureCurrent.Equals("OP05"))
                            //{
                            //    loginfo.Remarks = $"读取二维码{loginfo.WorkPieceID ?? "空"} OP05工序重复读取了";
                            //    return;
                            //}
                        }
                        if ((info.WorkingProcedureCurrent.Equals("OP05") && isAddWorkPieceInfo == false))
                        {
                        {//存在 è¡¨ WorkPieceInfo有,但是 WorkPieceProcess这个工序不存在的情况
                            //如果是OP05的,并且是 ä¸éœ€è¦æ–°å¢ž è¡¨WorkPieceInfo,那么就不需要更新表 WorkPieceInfo
                        }
                        else
@@ -222,30 +224,14 @@
                            info.WorkPieceCurrentPosition = loginfo.WorkingProcedure;
                            info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2;
                            info.WorkingProcedureCurrent = loginfo.WorkingProcedure;
                            info.WorkingProcedureCurrent = loginfo.WorkingProcedure;//工序赋值
                            info.Remarks = $"{info.WorkingProcedureCurrent}工件上线";
                        }
                        //修复下 op35 åŒä¸€ä¸ªä»¶ ä¸‹çº¿æ—¶é—´è·Ÿä¸‹ä¸€ä¸ªä¸Šçº¿æ—¶é—´ä¸€æ¨¡ä¸€æ ·çš„问题  ã€Editby shaocx,2024-08-27】
                        var isNeedAddNewProcess = true;
                        var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID && !o.OperationType.Equals("SPC") && (o.EndTime == null || o.EndTime <= DateTime.MinValue)).OrderByDescending(o => o.StartTime).FirstOrDefault();
                        if (pro != null && pro.WorkPieceID.Length > 1)
                        {
                            if (pro.WorkingProcedureCurrent == loginfo.WorkingProcedure)
                            {//表示工序相同
                                isNeedAddNewProcess = false;
                                pro.Remarks = "又一次上线,更新结束时间";
                            }
                            else
                            {
                                pro.EndTime = DateTimeHelper.GetDateTime();
                                pro.UpdatedUserName = loginfo.MonitoringPoint;
                                pro.UpdateDataCapturePointCname = loginfo.DataCapturePointCname;
                                pro.UpdatedTime = DateTimeHelper.GetDateTime();
                                pro.Remarks = "又一次上线,更新结束时间";
                            }
                        }
                        //特殊处理OP05上线,因为他是根据文本列表内容上线的 ã€Editby shaocx,2024-09-03】
                        if (loginfo.WorkingProcedure.Equals("OP05"))
                        {
@@ -253,6 +239,26 @@
                            if (op05Proccss != null)
                            {
                                isNeedAddNewProcess = false;//不需要新增了
                            }
                        }
                        else
                        {
                            var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID && !o.OperationType.Equals("SPC") && (o.EndTime == null || o.EndTime <= DateTime.MinValue)).OrderByDescending(o => o.StartTime).FirstOrDefault();
                            if (pro != null && pro.WorkPieceID.Length > 1)
                            {
                                if (pro.WorkingProcedureCurrent == loginfo.WorkingProcedure)
                                {//表示工序相同
                                    isNeedAddNewProcess = false;
                                    pro.Remarks = "又一次上线,更新结束时间";
                                }
                                else
                                {
                                    pro.EndTime = DateTimeHelper.GetDateTime();
                                    pro.UpdatedUserName = loginfo.MonitoringPoint;
                                    pro.UpdateDataCapturePointCname = loginfo.DataCapturePointCname;
                                    pro.UpdatedTime = DateTimeHelper.GetDateTime();
                                    pro.Remarks = "又一次上线,更新结束时间";
                                }
                            }
                        }
                        if (isNeedAddNewProcess)
@@ -310,6 +316,7 @@
                        }
                        #region åˆ¤æ–­æ˜¯å¦è·³åº,或质量不符合 ç„¶åŽåé¦ˆPLC
                        /*
                        if (IsFeedback.HasValue && IsFeedback.Value == (int)FeedbackMode.FeedbackPLC)
                        {
                            bool checkQualityInfoCompleteFlag = false;
@@ -323,43 +330,7 @@
                                message = !checkQualityInfoCompleteFlag ? "跳序," : "";
                                message += info.QualityState != (int)QualityStateEnum.OK ? "质量不符合" : "";
                            }
                            ////反馈给PLC,(写入点待定)
                            //MessageModel fr = null;
                            //fr = plcService.WriteValuePoint("", "", plcFlag, PLCManger.GetTypeForString("bool"));
                            //if (fr.result)
                            //{
                            //    Log4NetHelper.WriteInfoLog(type, $" å·¥ä»¶{info.WorkPieceID} {loginfo.WorkingProcedure}工序反馈给PLC æˆåŠŸï¼Œ å‡ºçް {message}");
                            //}
                            //else
                            //{
                            //    Log4NetHelper.WriteErrorLog(type, $" å·¥ä»¶{info.WorkPieceID} {loginfo.WorkingProcedure}工序反馈给PLC å¤±è´¥ï¼Œ å‡ºçް {message} ï¼Œå¤±è´¥åŽŸå› ï¼š{fr.resMsg}");
                            //}
                            //#region åé¦ˆPLC
                            //bool checkQualityInfoCompleteFlag = false;
                            //bool plcFlag = true;//反馈给PLC的标记
                            //string message = "";
                            //checkQualityInfoCompleteFlag = WorkPieceInfoManager.CheckQualityInfoComplete(info, wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure));
                            //if (!checkQualityInfoCompleteFlag || info.QualityState != (int)QualityState.OK)
                            //{
                            //    plcFlag = false;
                            //    message = !checkQualityInfoCompleteFlag ? "跳序," : "";
                            //message += info.QualityState != (int)QualityState.OK ? "质量不符合" : "";
                            //}
                            ////反馈给PLC,(写入点待定)
                            //MessageModel fr = null;
                            //fr = plcService.WriteValuePoint("", "", plcFlag, PLCManger.GetTypeForString("bool"));
                            //if (fr.result)
                            //{
                            //    Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" å·¥ä»¶{wplog.WorkPieceID} {WorkingProcedure}工序反馈给PLC æˆåŠŸï¼Œ å‡ºçް {message}");
                            //}
                            //else
                            //{
                            //    Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" å·¥ä»¶{wplog.WorkPieceID} {WorkingProcedure}工序反馈给PLC å¤±è´¥ï¼Œ å‡ºçް {message} ï¼Œå¤±è´¥åŽŸå› ï¼š{fr.resMsg}");
                            //}
                            //#endregion
                        }
                        else
                        {//读码完成若工件质量不符合或发生跳序,不用管设备是否把工件放过去,数采系统都不变更当前工序,反馈设备PLC工件不符合,
@@ -367,6 +338,7 @@
                            info.WorkingProcedureCurrent = loginfo.WorkingProcedure;
                        }
                        //*/
                        #endregion
                        #region æ›´æ–°è®¾å¤‡å®žæ—¶è¡¨
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501 - аæ.cs
ÎļþÃû´Ó DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501 - ¸´ÖÆ(2).cs ÐÞ¸Ä
@@ -296,21 +296,41 @@
//                                        wplog.KnifeToolEarlyWarningLife = 3;
//                                        wplog.KnifeToolSurplusLife = 10;
//                                        //快速处理
//                                        List<WorkPieceLog> wplogs = new List<WorkPieceLog>();
//                                        foreach (var item in filteredRows)
//                                        {
//                                            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure),
//                                                   $"{_dataCaptureConfig.WorkingProcedure}工序读取工控机中二维码信息,读取工件二维码:{item["打标内容"].ToString()}");
//                                            if (item == null) break;
//                                            wplog.Id = Yitter.IdGenerator.YitIdHelper.NextId();
//                                            wplog.WorkPieceID = item["打标内容"].ToString();
//                                            wplog.OfflineTime = Convert.ToDateTime(dataTime);
//                                            wplog.Remarks = item["时间"].ToString() + "|" + item["打标内容"].ToString() + "|" + item["打标内容"].ToString() + "|" + item["扫码等级"].ToString() + "|" + item["扫码结果"].ToString();
//                                            //转换
//                                            WorkPieceLog newLog = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLog>(wplog);
//                                            wplogs.Add(newLog);
//                                        }
//                                        //查询数据,过滤
//                                        var queryList = wplogs.Select(x => x.WorkPieceID).ToList();
//                                        List<WorkPieceProcess> new_exist_WorkPieceProcess = new List<WorkPieceProcess>();
//                                        using (DbModel db = new DbModel())
//                                        {
//                                            //找到数据库中已有这个工序的数据
//                                            new_exist_WorkPieceProcess = db.WorkPieceProcess.Where(o => queryList.Contains(o.WorkPieceID)
//                                            && o.WorkingProcedureCurrent == _dataCaptureConfig.WorkingProcedure).ToList();
//                                        }
//                                        var querynew__exist_WorkPieceProcessList = new_exist_WorkPieceProcess.Select(x => x.WorkPieceID).ToList();
//                                        //找到需要新增的数据
//                                        wplogs = wplogs.Where(x => !querynew__exist_WorkPieceProcessList.Contains(x.WorkPieceID)).ToList();
//                                        foreach (var item in wplogs)
//                                        {
//                                            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure),
//                                                   $"{_dataCaptureConfig.WorkingProcedure}工序读取工控机中二维码信息,读取工件二维码:{item.WorkPieceID.ToString()}");
//                                            WorkPieceInfoManager.ReadQRcode(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), null, _dataCaptureConfig.IsFeedback);
//                                            threadStatusMonitor.Threadstatue = 1;
//                                        }
//                                        //记录下最后一个码
//                                        lastHandlerWorkPileIDForOP0501 = Convert.ToString(dt.Rows[dt.Rows.Count - 1]["打标内容"]);
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501 - Àϰæ.cs
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501.cs
@@ -59,6 +59,8 @@
                //    plcService.OpenService();
                //}
                string lastHandlerWorkPileIDForOP0501 = "";//最后一次处理的工件号
                while (true)
                {
                    ThreadStatusMonitor threadStatusMonitor = new ThreadStatusMonitor();
@@ -189,7 +191,8 @@
                                                            }
                                                        }
                                                        var oldTime = DateTime.Now.AddMinutes(-10);
                                                        if (currrentTime <= oldTime)
                                                        // if (currrentTime <= oldTime)
                                                        if (lastHandlerWorkPileIDForOP0501 == Convert.ToString(dt.Rows[i]["打标内容"]))
                                                        {//如果excel里的时间要比 å½“前前10分钟时间要早,那么我就忽略不处理。
                                                            break;
                                                        }
@@ -198,7 +201,8 @@
                                                    else
                                                    {
                                                        var cacheTime = Convert.ToDateTime(cache);
                                                        if (currrentTime <= cacheTime)
                                                        //if (currrentTime <= cacheTime)
                                                        if (lastHandlerWorkPileIDForOP0501 == Convert.ToString(dt.Rows[i]["打标内容"]))
                                                        {//如果excel里的时间要比 æˆ‘缓存中的时间要早,那么我就忽略不处理。
                                                            break;
                                                        }
@@ -292,22 +296,44 @@
                                        wplog.KnifeToolEarlyWarningLife = 3;
                                        wplog.KnifeToolSurplusLife = 10;
                                        //快速处理
                                        List<WorkPieceLog> wplogs = new List<WorkPieceLog>();
                                        foreach (var item in filteredRows)
                                        {
                                            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure),
                                                   $"{_dataCaptureConfig.WorkingProcedure}工序读取工控机中二维码信息,读取工件二维码:{item["打标内容"].ToString()}");
                                            if (item == null) break;
                                            wplog.Id = Yitter.IdGenerator.YitIdHelper.NextId();
                                            wplog.WorkPieceID = item["打标内容"].ToString();
                                            wplog.OfflineTime = Convert.ToDateTime(dataTime);
                                            wplog.Remarks = item["时间"].ToString() + "|" + item["打标内容"].ToString() + "|" + item["打标内容"].ToString() + "|" + item["扫码等级"].ToString() + "|" + item["扫码结果"].ToString();
                                            //转换
                                            WorkPieceLog newLog = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLog>(wplog);
                                            wplogs.Add(newLog);
                                        }
                                        //查询数据,过滤
                                        var queryList = wplogs.Select(x => x.WorkPieceID).ToList();
                                        List<WorkPieceProcess> new_exist_WorkPieceProcess = new List<WorkPieceProcess>();
                                        using (DbModel db = new DbModel())
                                        {
                                            //找到数据库中已有这个工序的数据
                                            new_exist_WorkPieceProcess = db.WorkPieceProcess.Where(o => queryList.Contains(o.WorkPieceID)
                                            && o.WorkingProcedureCurrent == _dataCaptureConfig.WorkingProcedure).ToList();
                                        }
                                        var querynew__exist_WorkPieceProcessList = new_exist_WorkPieceProcess.Select(x => x.WorkPieceID).ToList();
                                        //找到需要新增的数据
                                        wplogs = wplogs.Where(x => !querynew__exist_WorkPieceProcessList.Contains(x.WorkPieceID)).ToList();
                                        foreach (var item in wplogs)
                                        {
                                            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure),
                                                   $"{_dataCaptureConfig.WorkingProcedure}工序读取工控机中二维码信息,读取工件二维码:{item.WorkPieceID.ToString()}");
                                            WorkPieceInfoManager.ReadQRcode(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), null, _dataCaptureConfig.IsFeedback);
                                            threadStatusMonitor.Threadstatue = 1;
                                        }
                                        //记录下最后一个码
                                        lastHandlerWorkPileIDForOP0501 = Convert.ToString(dt.Rows[dt.Rows.Count - 1]["打标内容"]);
                                    }
                                }
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/iWare_SCADA_BusinessLogical.csproj
@@ -83,8 +83,8 @@
    <Compile Include="BLL\SystemValue.cs" />
    <Compile Include="BLL\WorkPieceInfoManager.cs" />
    <Compile Include="BLL\WorkPieceLogManager.cs" />
    <Compile Include="DataCaptureHandlerV2\DataCaptureHandler_OP0501 - å¤åˆ¶%282%29.cs" />
    <Compile Include="DataCaptureHandlerV2\DataCaptureHandler_OP0501 - å¤åˆ¶.cs" />
    <Compile Include="DataCaptureHandlerV2\DataCaptureHandler_OP0501 - æ–°ç‰ˆ.cs" />
    <Compile Include="DataCaptureHandlerV2\DataCaptureHandler_OP0501 - è€ç‰ˆ.cs" />
    <Compile Include="DataCaptureHandlerV2\DeleteDataHandler.cs" />
    <Compile Include="DataCaptureHandlerV2\OP80QualityDataHandler.cs" />
    <Compile Include="DataCaptureHandlerV2\DataCaptureHandler_01.cs" />