schangxiang@126.com
2024-09-05 dc054fdab657fc1ed91be0c81cc5c1e8f76117f0
优化
已修改6个文件
213 ■■■■■ 文件已修改
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/SystemValue.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_01.cs 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/Special/DataCaptureHandler_OP1002.cs 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/Special/DataCaptureHandler_OP1003.cs 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Utils/MonitorHelper.cs 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Utils/SystemBussinessHelper.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/SystemValue.cs
@@ -446,11 +446,11 @@
        /// <summary>
        /// OP10工序测试完成标记值
        /// </summary>
        public static string value_OP1002 = string.Empty;
        public static string value_OP1002 = "FALSE";//注意:默认是FALSE 【Editby shaocx,2024-09-05】
        /// <summary>
        /// OP10工序推出标记值
        /// </summary>
        public static string value_OP1003 = string.Empty;
        public static string value_OP1003 = "FALSE";//注意:默认是FALSE 【Editby shaocx,2024-09-05】
        /// <summary>
        /// OP10工序SPC推出标记值
        /// </summary>
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_01.cs
@@ -106,7 +106,7 @@
                    //plcService.Close();
                    //plcService.OpenService();
                }
                string value_01 = "";
                string value_01 = "FALSE";//注意:默认是FALSE 【Editby shaocx,2024-09-05】
                while (true)
                {
                    threadStatusMonitor.ErrorMsg = "";
@@ -135,7 +135,9 @@
                            object value = plcService.ReadValuePoint(_dataCaptureConfig.DbNumber, _dataCaptureConfig.Offset, PLCManger.GetTypeForString(_dataCaptureConfig.DataCaptureColumnType));
                            WorkPieceLog wplog = null;
                            if (value.ToString().ToUpper().Equals("TRUE"))
                            var value_bool = value.ToString().ToUpper().Equals("TRUE");
                            if (value_bool)
                            {
                                wplog = new WorkPieceLog();
                                wplog.Id = Yitter.IdGenerator.YitIdHelper.NextId();
@@ -175,33 +177,42 @@
                                //监控上线
                                MonitorHelper.MonitorTestForLine(_dataCaptureConfig, value, colConfig, wplog.WorkPieceID);
                            }
                            if (wplog != null)
                            {
                                var isRight = SystemBussinessHelper.ValidateIsRightWorkPieceID(wplog.WorkPieceID);
                                if (isRight)
                                {
                                    #region 处理业务
                            if (value_01.ToUpper().Equals("FALSE") && value.ToString().ToUpper().Equals("TRUE"))
                            {//当上一标记位0,当前获取标记为1时,
                             //触发操作,  并给静态变量赋值为1
                             //业务代码
                                threadStatusMonitor.Threadlastmodifytime = DateTime.Now;
                                    if (value_01.ToUpper().Equals("FALSE") && value.ToString().ToUpper().Equals("TRUE"))
                                    {//当上一标记位0,当前获取标记为1时,
                                     //触发操作,  并给静态变量赋值为1
                                     //业务代码
                                        threadStatusMonitor.Threadlastmodifytime = DateTime.Now;
                                //特殊处理OP50 【Editby shaocx,2024-08-16】
                                string sideValue = GetSideForOP50(plcService, wplog);
                                wplog.MonitoringPoint += sideValue;
                                //wplog.CreatedUserName = wplog.MonitoringPoint;
                                SystemBussinessHelper.SetWorkPieceLogMiddleForCreatedUserName(ref wplog, wplog.MonitoringPoint, DataCapturePointCname);
                                        //特殊处理OP50 【Editby shaocx,2024-08-16】
                                        string sideValue = GetSideForOP50(plcService, wplog);
                                        wplog.MonitoringPoint += sideValue;
                                        //wplog.CreatedUserName = wplog.MonitoringPoint;
                                        SystemBussinessHelper.SetWorkPieceLogMiddleForCreatedUserName(ref wplog, wplog.MonitoringPoint, DataCapturePointCname);
                                //读取二维码后更新数据库
                                WorkPieceInfoManager.ReadQRcode(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), plcService, _dataCaptureConfig.IsFeedback);
                                        //读取二维码后更新数据库
                                        WorkPieceInfoManager.ReadQRcode(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), plcService, _dataCaptureConfig.IsFeedback);
                                threadStatusMonitor.Threadstatue = 1;
                                        threadStatusMonitor.Threadstatue = 1;
                                    }
                                    value_01 = value.ToString();
                                    #endregion
                                }
                            }
                            value_01 = value.ToString();
                        }
                        threadStatusMonitor.Remarks = $"abcdefg:{RandomHelper.GenerateRandomCode(4)}";
                        if (!_dataCaptureConfig.DataCaptureFrequency.HasValue || _dataCaptureConfig.DataCaptureFrequency < 10)
                        {
                            threadStatusMonitor.ThreadFrequency = 1000;
                            Thread.Sleep(1000);
                            threadStatusMonitor.ThreadFrequency = 700;
                            Thread.Sleep(700);
                        }
                        else
                        {
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/Special/DataCaptureHandler_OP1002.cs
@@ -93,7 +93,8 @@
                            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}工序测标记读取{DateTime.Now}*****01****{stopwatch.ElapsedMilliseconds}");
                            WorkPieceLogMiddle wplog = null;
                            if (value.ToString().ToUpper().Equals("TRUE"))
                            var value_bool = value.ToString().ToUpper().Equals("TRUE");
                            if (value_bool)
                            {
                                threadStatusMonitor.Threadlastmodifytime = DateTime.Now;
                                wplog = new WorkPieceLogMiddle();
@@ -142,43 +143,52 @@
                                //监控上线
                                MonitorHelper.MonitorTestForLine(_dataCaptureConfig, value, colConfig, wplog.WorkPieceID);
                            }
                            if (wplog != null)
                            {
                                var isRight = SystemBussinessHelper.ValidateIsRightWorkPieceID(wplog.WorkPieceID);
                                if (isRight)
                                {
                                    #region 业务处理
                            if (SystemValue.value_OP1002.ToUpper().Equals("FALSE") && value.ToString().ToUpper().Equals("TRUE"))
                            {//当上一标记位0,当前获取标记为1时,
                             //触发操作,  并给静态变量赋值为1
                             //业务代码
                                Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}工序测标记读取{DateTime.Now}***1****");
                                    if (SystemValue.value_OP1002.ToUpper().Equals("FALSE") && value.ToString().ToUpper().Equals("TRUE"))
                                    {//当上一标记位0,当前获取标记为1时,
                                     //触发操作,  并给静态变量赋值为1
                                     //业务代码
                                        Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}工序测标记读取{DateTime.Now}***1****");
                                //#region 工控机读取质量信息
                                        //#region 工控机读取质量信息
                                ////扫描共享目录并将新的文件扫描返回
                                //var newFiles = FileHelper.DetectNewFilesCSV("", 10, DateTimeHelper.GetDateTime(), DateTimeHelper.GetDateTime());
                                //foreach (System.IO.FileInfo file in newFiles)
                                //{
                                //    var datatable = CSVHelper.ReadCSV(file.FullName);
                                //}
                                        ////扫描共享目录并将新的文件扫描返回
                                        //var newFiles = FileHelper.DetectNewFilesCSV("", 10, DateTimeHelper.GetDateTime(), DateTimeHelper.GetDateTime());
                                        //foreach (System.IO.FileInfo file in newFiles)
                                        //{
                                        //    var datatable = CSVHelper.ReadCSV(file.FullName);
                                        //}
                                //#endregion
                                Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}工序测标记读取{DateTime.Now}***3****");
                                        //#endregion
                                        Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}工序测标记读取{DateTime.Now}***3****");
                                //更新WorkPieceInfo表以及插入WorkPieceLog表和WorkPieceInfoLog表
                                WorkPieceInfoManager.QualityInfoComplete(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure));
                                threadStatusMonitor.Threadstatue = 1;
                                        //更新WorkPieceInfo表以及插入WorkPieceLog表和WorkPieceInfoLog表
                                        WorkPieceInfoManager.QualityInfoComplete(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure));
                                        threadStatusMonitor.Threadstatue = 1;
                                    }
                                    SystemValue.value_OP1002 = value.ToString();
                                    #endregion
                                }
                            }
                            SystemValue.value_OP1002 = value.ToString();
                        }
                        SystemValue.lbl_Alert_OP1002 = $"abcdefg:{RandomHelper.GenerateRandomCode(4)}";
                        if (!_dataCaptureConfig.DataCaptureFrequency.HasValue || _dataCaptureConfig.DataCaptureFrequency < 10)
                        {
                            Thread.Sleep(5000);
                            Thread.Sleep(700);
                        }
                        else
                        {
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/Special/DataCaptureHandler_OP1003.cs
@@ -89,8 +89,10 @@
                            var value = plcService.ReadValuePoint(_dataCaptureConfig.DbNumber, _dataCaptureConfig.Offset, PLCManger.GetTypeForString(_dataCaptureConfig.DataCaptureColumnType));
                            stopwatch.Stop();
                            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}工序测标记读取{DateTime.Now}*****01****{stopwatch.ElapsedMilliseconds}*****{value.ToString().ToUpper()}**");
                            WorkPieceLogMiddle wplog = null;
                            if (value.ToString().ToUpper().Equals("TRUE"))
                            var value_bool = value.ToString().ToUpper().Equals("TRUE");
                            if (value_bool)
                            {
                                threadStatusMonitor.Threadlastmodifytime = DateTime.Now;
                                wplog = new WorkPieceLogMiddle();
@@ -136,42 +138,52 @@
                                //监控上线
                                MonitorHelper.MonitorTestForLine(_dataCaptureConfig, value, colConfig, wplog.WorkPieceID);
                            }
                            if (SystemValue.value_OP1003.ToUpper().Equals("FALSE") && value.ToString().ToUpper().Equals("TRUE"))
                            {//当上一标记位0,当前获取标记为1时,
                             //触发操作,  并给静态变量赋值为1
                             //业务代码
                            if (wplog != null)
                            {
                                var isRight = SystemBussinessHelper.ValidateIsRightWorkPieceID(wplog.WorkPieceID);
                                if (isRight)
                                {
                                    #region 业务处理
                                if (wplog.WorkPieceID.Length != 22)
                                {//获取到的工件号异常
                                    Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}工序监控读码标记 读取工件码数据时异常:");
                                    continue;
                                    if (SystemValue.value_OP1003.ToUpper().Equals("FALSE") && value.ToString().ToUpper().Equals("TRUE"))
                                    {//当上一标记位0,当前获取标记为1时,
                                     //触发操作,  并给静态变量赋值为1
                                     //业务代码
                                        if (wplog.WorkPieceID.Length != 22)
                                        {//获取到的工件号异常
                                            Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}工序监控读码标记 读取工件码数据时异常:");
                                            continue;
                                        }
                                        //#region 工控机读取质量信息
                                        ////扫描共享目录并将新的文件扫描返回
                                        //var newFiles = FileHelper.DetectNewFilesCSV("", 10, DateTimeHelper.GetDateTime(), DateTimeHelper.GetDateTime());
                                        //foreach (System.IO.FileInfo file in newFiles)
                                        //{
                                        //    var datatable = CSVHelper.ReadCSV(file.FullName);
                                        //}
                                        //#endregion
                                        //更新WorkPieceInfo表以及插入WorkPieceLog表和WorkPieceInfoLog表
                                        WorkPieceInfoManager.QualityInfoComplete(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure));
                                        threadStatusMonitor.Threadstatue = 1;
                                    }
                                    SystemValue.value_OP1003 = value.ToString();
                                    #endregion
                                }
                                //#region 工控机读取质量信息
                                ////扫描共享目录并将新的文件扫描返回
                                //var newFiles = FileHelper.DetectNewFilesCSV("", 10, DateTimeHelper.GetDateTime(), DateTimeHelper.GetDateTime());
                                //foreach (System.IO.FileInfo file in newFiles)
                                //{
                                //    var datatable = CSVHelper.ReadCSV(file.FullName);
                                //}
                                //#endregion
                                //更新WorkPieceInfo表以及插入WorkPieceLog表和WorkPieceInfoLog表
                                WorkPieceInfoManager.QualityInfoComplete(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure));
                                threadStatusMonitor.Threadstatue = 1;
                            }
                            SystemValue.value_OP1003 = value.ToString();
                        }
                        SystemValue.lbl_Alert_OP1003 = $"abcdefg:{RandomHelper.GenerateRandomCode(4)}";
                        if (!_dataCaptureConfig.DataCaptureFrequency.HasValue || _dataCaptureConfig.DataCaptureFrequency < 10)
                        {
                            Thread.Sleep(5000);
                            Thread.Sleep(700);
                        }
                        else
                        {
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Utils/MonitorHelper.cs
@@ -73,25 +73,27 @@
                    //不正常的码写入数据库
                    var isRight = SystemBussinessHelper.ValidateIsRightWorkPieceID(workPieceID);
                    PieceLogTypeEnum pieceLogTypeEnum = PieceLogTypeEnum.正常;
                    if (isRight == false)
                    {
                        WorkPieceLog workPieceLog = new WorkPieceLog()
                        {
                            Id = Yitter.IdGenerator.YitIdHelper.NextId(),
                            WorkPieceID = workPieceID,
                            WorkingProcedure = _dataCaptureConfig.WorkingProcedure,
                            CreatedTime = DateTime.Now,
                            CreatedUserName = _dataCaptureConfig.DataCapturePointCode,
                            MyRemarks = "读码值异常",
                            Remarks = "读码值异常",
                            PieceLogType = (int)PieceLogTypeEnum.读码值异常,
                            PieceLogTypeName = PieceLogTypeEnum.读码值异常.ToString()
                        };
                        using (DbModel db = new DbModel())
                        {
                            db.WorkPieceLog.Add(workPieceLog);
                            db.SaveChanges();
                        }
                        pieceLogTypeEnum = PieceLogTypeEnum.读码值异常;
                    }
                    WorkPieceLog workPieceLog = new WorkPieceLog()
                    {
                        Id = Yitter.IdGenerator.YitIdHelper.NextId(),
                        WorkPieceID = workPieceID,
                        WorkingProcedure = _dataCaptureConfig.WorkingProcedure,
                        CreatedTime = DateTime.Now,
                        CreatedUserName = _dataCaptureConfig.DataCapturePointCode,
                        MyRemarks = "",
                        Remarks = pieceLogTypeEnum.ToString(),
                        PieceLogType = (int)pieceLogTypeEnum,
                        PieceLogTypeName = pieceLogTypeEnum.ToString()
                    };
                    using (DbModel db = new DbModel())
                    {
                        db.WorkPieceLog.Add(workPieceLog);
                        db.SaveChanges();
                    }
                }
                catch (Exception ex)
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Utils/SystemBussinessHelper.cs
@@ -59,7 +59,7 @@
                var n_workPieceID = workPieceID.Trim();
                if (n_workPieceID.Length == 22)
                {
                    if (n_workPieceID.IndexOf("ERROR") > -1)
                    if (n_workPieceID.ToUpper().IndexOf("ERROR") > -1)
                    {
                        return false;
                    }