yangle
2025-04-07 0d59b3fd8050b0f0766be47ed5527d96bd4bf2f7
WFormSynchronizeData_SMR/WFormReadData_SMR/ReadyDataForm.cs
@@ -1,4 +1,7 @@
using Newtonsoft.Json;
using HslCommunication;
using HslCommunication.Profinet.Melsec;
using Microsoft.VisualBasic.FileIO;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
@@ -21,101 +24,33 @@
            InitializeComponent();
        }
         public static int num = 0;
        public static int SelectTime = 0;
        public static DateTime time = DateTime.Now.AddMinutes(-5);
        public static decimal hqty = 2;
        //读取数据
        private void btnReadData_Click(object sender, EventArgs e)
        {
            if (num == 0) {
                this.btnReadData.Text = "暂停";
                this.timer1.Enabled = true;
                num = 1;
            }else if (num == 1)
            if (this.HEmpCode.Text == "")
            {
                this.btnReadData.Text = "启动";
                this.timer1.Enabled = false;
                num = 0;
                MessageBox.Show("请输入员工编码");
            }
            //if (this.HEmpCode.Text == "")
            //{
            //    MessageBox.Show("请输入员工编码");
            //}
            //else
            //{
            //    int year = DateTime.Now.Year;
            //    string month = DateTime.Now.Month.ToString();
            //    string day = DateTime.Now.Day.ToString();
            //    string dataTime = DateTime.Now.ToString("yyyyMMdd");
            //    ////判断是否有这个文件
            //    //bool flag = File.Exists($@"D:\{year}\{month}\{day}\{dataTime}.txt");
            //    bool flag = File.Exists($@"C:\Users\admin\Desktop\新建文件夹 (2)\20231123.txt");
            //    if (flag)
            //    {
            //        //StreamReader stream = new StreamReader($@"D:\{year}\{month}\{day}\{dataTime}.txt", Encoding.GetEncoding("gb2312"));
            //        StreamReader stream = new StreamReader($@"C:\Users\admin\Desktop\新建文件夹 (2)\20231123.txt", Encoding.GetEncoding("gb2312"));
            //        string FileData = stream.ReadToEnd();
            //        stream.Close();
            //        FileData = FileData.Substring(0, FileData.Length - 1);
            //        FileData = "[" + FileData + "]";
            //        //JSON序列化转换字典集合
            //        List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
            //        List<object> DataList = JsonConvert.DeserializeObject<List<object>>(FileData);
            //        foreach (JObject item in DataList)
            //        {
            //            Dictionary<string, string> dic = new Dictionary<string, string>();
            //            foreach (var itm in item.Properties())
            //            {
            //                dic.Add(itm.Name, itm.Value.ToString());
            //            }
            //            list.Add(dic);
            //        }
            //        //获取当前时间
            //        DateTime ActionTime = DateTime.Parse(DateTime.Now.AddMinutes(-1).ToString("yyyy-MM-dd  HH:mm:ss"));
            //        DateTime EndTime = DateTime.Parse(DateTime.Now.AddMinutes(1).ToString("yyyy-MM-dd  HH:mm:00"));
            //        Xt_Gy_RoutBill();
            //        //循环集合
            //        for (int i = 0; i < list.Count; i++)
            //        {
            //            DateTime NowTime = DateTime.Parse(list[i]["HDate"].ToString());
            //            if (NowTime >= ActionTime && NowTime < EndTime)
            //            {
            //                string HSourceCode = list[i]["HSouceNumber"].ToString();
            //                string HEmpCode = this.HEmpCode.Text;
            //                //string HEmpCode = "";
            //                string HType = list[i]["HBadReason"].ToString();
            //                string HBarCode = list[i]["HBadCodeSN"].ToString();
            //                int HCount = 1;
            //                string HCreateTime = list[i]["HDate"].ToString();
            //                string HDate = DateTime.Parse(list[i]["HDate"].ToString()).ToString("yyyy-MM-dd");
            //                string HResult = list[i]["HResult"].ToString();
            //                string HProcNumber = list[i]["HProcNumber"].ToString();
            //                int HFlag = 0;
            //                DataSet ds = oCN.RunProcReturn(@"select * from Sb_EquipMentCollection_SN where HBarCode='" + HBarCode + "' and HCreateTime='" + HCreateTime + "'", "Sb_EquipMentCollection_SN");
            //                if (ds.Tables[0].Rows.Count == 0)
            //                {
            //                    string sql = $@"insert into Sb_EquipMentCollection_SN(HSourceCode,HEmpCode,HType,HBarCode,HCount,HCreateTime,HDate,HResult,HProcNumber,HFlag)
            //values('{HSourceCode}','{HEmpCode}','{HType}','{HBarCode}','{HCount}','{HCreateTime}','{HDate}','{HResult}','{HProcNumber}','{HFlag}')";
            //                    oCN.RunProc(sql);
            //                    ListSelect.Items.Add("条码:" + HBarCode + ",日期:" + HCreateTime + ",结果:" + HResult);
            //                }
            //            }
            //            else
            //            {
            //                //CustomWriteLog("时间不在保存范围内", DateTime.Now.ToString("yyyy-MM-dd"));
            //            }
            //        }
            //    }
            //}
            else
            {
                if (num == 0)
                {
                    this.btnReadData.Text = "暂停";
                    this.timer1.Enabled = true;
                    num = 1;
                    SelectTime = -4;
                }
                else if (num == 1)
                {
                    this.btnReadData.Text = "启动";
                    this.timer1.Enabled = false;
                    num = 0;
                }
            }
        }
        //员工编码回车
@@ -174,79 +109,50 @@
            }
            else
            {
                int year = DateTime.Now.Year;
                string month = DateTime.Now.Month.ToString();
                string day = DateTime.Now.Day.ToString();
                Read_Txt();
                string dataTime = DateTime.Now.ToString("yyyyMMdd");
                ////判断是否有这个文件
                bool flag = File.Exists($@"D:\{year}\{month}\{day}\{dataTime}.txt");
                //bool flag = File.Exists($@"C:\Users\admin\Desktop\新建文件夹 (2)\20231123.txt");
            }
        }
                if (flag)
        public static List<string> listData = new List<string>();
        //文本读取数据
        public void Read_Txt() {
            int year = DateTime.Now.Year;
            string month = DateTime.Now.Month.ToString();
            string day = DateTime.Now.Day.ToString();
            string dataTime = DateTime.Now.ToString("yyyyMMdd");
            ////判断是否有这个文件
            bool flag = File.Exists($@"D:\{year}\{month}\{day}\{dataTime}.txt");
            //bool flag = File.Exists($@"C:\Users\admin\Desktop\新建文件夹 (2)\20250403T拍照.txt");
            if (flag)
            {
                StreamReader stream = new StreamReader($@"D:\{year}\{month}\{day}\{dataTime}.txt", Encoding.GetEncoding("gb2312"));
                //StreamReader stream = new StreamReader($@"C:\Users\admin\Desktop\新建文件夹 (2)\20250403T拍照.txt", Encoding.GetEncoding("gb2312"));
                string FileData = stream.ReadToEnd();
                stream.Close();
                //获取条码信息
                Xt_ReadText(FileData);
                bool flag2 = File.Exists($@"D:\{year}\{month}\{day}\{dataTime}gy.txt");
                //bool flag2 = File.Exists($@"C:\Users\admin\Desktop\新建文件夹 (2)\20231123gy.txt");
                if (flag2)
                {
                    StreamReader stream = new StreamReader($@"D:\{year}\{month}\{day}\{dataTime}.txt", Encoding.GetEncoding("gb2312"));
                    //StreamReader stream = new StreamReader($@"C:\Users\admin\Desktop\新建文件夹 (2)\20231123.txt", Encoding.GetEncoding("gb2312"));
                    string FileData = stream.ReadToEnd();
                    stream.Close();
                    FileData = FileData.Substring(0, FileData.Length - 1);
                    FileData = "[" + FileData + "]";
                    //JSON序列化转换字典集合
                    List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
                    List<object> DataList = JsonConvert.DeserializeObject<List<object>>(FileData);
                    foreach (JObject item in DataList)
                    {
                        Dictionary<string, string> dic = new Dictionary<string, string>();
                        foreach (var itm in item.Properties())
                        {
                            dic.Add(itm.Name, itm.Value.ToString());
                        }
                        list.Add(dic);
                    }
                    //获取当前时间
                    DateTime ActionTime = DateTime.Parse(DateTime.Now.AddMinutes(-1).ToString("yyyy-MM-dd  HH:mm:ss"));
                    DateTime EndTime = DateTime.Parse(DateTime.Now.AddMinutes(1).ToString("yyyy-MM-dd  HH:mm:00"));
                    stream = new StreamReader($@"D:\{year}\{month}\{day}\{dataTime}gy.txt", Encoding.GetEncoding("gb2312"));
                    //stream = new StreamReader($@"C:\Users\admin\Desktop\新建文件夹 (2)\20231123gy.txt", Encoding.GetEncoding("gb2312"));
                    FileData = stream.ReadToEnd();
                    //获取系统参数
                    Xt_Gy_RoutBill();
                    //循环集合
                    for (int i = 0; i < list.Count; i++)
                    {
                        DateTime NowTime = DateTime.Parse(list[i]["HDate"].ToString());
                        if (NowTime >= ActionTime && NowTime < EndTime)
                        {
                            string HSourceCode = list[i]["HSouceNumber"].ToString();
                            string HEmpCode = this.HEmpCode.Text;
                            //string HEmpCode = "";
                            string HType = list[i]["HBadReason"].ToString();
                            string HBarCode = list[i]["HBadCodeSN"].ToString();
                            int HCount = 1;
                            string HCreateTime = list[i]["HDate"].ToString();
                            string HDate = DateTime.Parse(list[i]["HDate"].ToString()).ToString("yyyy-MM-dd");
                            string HResult = list[i]["HResult"].ToString();
                            string HProcNumber = list[i]["HProcNumber"].ToString();
                            int HFlag = 0;
                            DataSet ds = oCN.RunProcReturn(@"select * from Sb_EquipMentCollection_SN where HBarCode='" + HBarCode + "' and HCreateTime='" + HCreateTime + "'", "Sb_EquipMentCollection_SN");
                            if (ds.Tables[0].Rows.Count == 0)
                            {
                                string sql = $@"insert into Sb_EquipMentCollection_SN(HSourceCode,HEmpCode,HType,HBarCode,HCount,HCreateTime,HDate,HResult,HProcNumber,HFlag)
values('{HSourceCode}','{HEmpCode}','{HType}','{HBarCode}','{HCount}','{HCreateTime}','{HDate}','{HResult}','{HProcNumber}','{HFlag}')";
                                oCN.RunProc(sql);
                                ListSelect.Items.Add("条码:" + HBarCode + ",日期:" + HCreateTime + ",结果:" + HResult);
                            }
                        }
                        else
                        {
                            //CustomWriteLog("时间不在保存范围内", DateTime.Now.ToString("yyyy-MM-dd"));
                        }
                    }
                    Xt_Gy_RoutBill(FileData);
                }
            }
        }
        //生产资源回车
        private void HSouce_KeyDown(object sender, KeyEventArgs e)
@@ -282,75 +188,357 @@
            }
        }
        //读取系统参数
        public void Xt_Gy_RoutBill() {
            int year = DateTime.Now.Year;
            string month = DateTime.Now.Month.ToString();
            string day = DateTime.Now.Day.ToString();
        public static string AllBeginWork = "-1";
        public static string AllProcessExchange = "-1";
        public static string AllProcessExchangeHProcExchBillNo = "";
        public static string AllProcessExchangeHProcExchInterID = "";
            string dataTime = DateTime.Now.ToString("yyyyMMdd");
            ////判断是否有这个文件
            bool flag = File.Exists($@"D:\{year}\{month}\{day}\{dataTime}.txt");
            //bool flag = File.Exists($@"C:\Users\admin\Desktop\新建文件夹 (2)\20231123.txt");
            if (flag)
        public void Xt_ReadText(string FileData)
        {
            FileData = FileData.Substring(0, FileData.Length - 1);
            FileData = "[" + FileData + "]";
            //JSON序列化转换字典集合
            List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
            List<object> DataList = JsonConvert.DeserializeObject<List<object>>(FileData);
            foreach (JObject item in DataList)
            {
                StreamReader stream = new StreamReader($@"D:\{year}\{month}\{day}\{dataTime}.txt", Encoding.GetEncoding("gb2312"));
                //StreamReader stream = new StreamReader($@"C:\Users\admin\Desktop\新建文件夹 (2)\20231123.txt", Encoding.GetEncoding("gb2312"));
                string FileData = stream.ReadToEnd();
                stream.Close();
                FileData = FileData.Substring(0, FileData.Length - 1);
                FileData = "[" + FileData + "]";
                //JSON序列化转换字典集合
                List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
                List<object> DataList = JsonConvert.DeserializeObject<List<object>>(FileData);
                foreach (JObject item in DataList)
                Dictionary<string, string> dic = new Dictionary<string, string>();
                foreach (var itm in item.Properties())
                {
                    Dictionary<string, string> dic = new Dictionary<string, string>();
                    foreach (var itm in item.Properties())
                    {
                        dic.Add(itm.Name, itm.Value.ToString());
                    }
                    list.Add(dic);
                    dic.Add(itm.Name, itm.Value.ToString());
                }
                //获取当前时间
                DateTime ActionTime = DateTime.Parse(DateTime.Now.AddMinutes(-1).ToString("yyyy-MM-dd  HH:mm:ss"));
                DateTime EndTime = DateTime.Parse(DateTime.Now.AddMinutes(1).ToString("yyyy-MM-dd  HH:mm:00"));
                //循环集合
                for (int i = 0; i < list.Count; i++)
                list.Add(dic);
            }
            //获取当前时间
            DateTime ActionTime = DateTime.Parse(DateTime.Now.AddMinutes(SelectTime).ToString("yyyy-MM-dd  HH:mm:ss"));
            DateTime EndTime = DateTime.Parse(DateTime.Now.AddMinutes(1).ToString("yyyy-MM-dd  HH:mm:00"));
            bool flag_1 = false;
            bool flag_2 = false;
            //循环集合
            for (int i = 0; i < list.Count; i++)
            {
                string HBarCode = list[i]["HBadCodeSN"].ToString();
                DateTime NowTime = DateTime.Parse(list[i]["HDate"].ToString());
                if (NowTime >= ActionTime && NowTime < EndTime && list[i]["HBadCodeSN"].ToString() != "" && listData.Contains(HBarCode)==false)
                {
                    DateTime NowTime = DateTime.Parse(list[i]["HDate"].ToString());
                    if (NowTime >= ActionTime && NowTime < EndTime)
                    string HSourceCode = list[i]["HSouceNumber"].ToString();
                    string HEmpCode = this.HEmpCode.Text;
                    //string HEmpCode = "";
                    string HType = list[i]["HBadReason"].ToString();
                    int HCount = 1;
                    string HCreateTime = list[i]["HDate"].ToString();
                    string HDate = DateTime.Parse(list[i]["HDate"].ToString()).ToString("yyyy-MM-dd");
                    string HResult = list[i]["HResult"].ToString();
                    string HProcNumber = list[i]["HProcNumber"].ToString();
                    int HFlag = 0;
                    //DataSet ds = oCN.RunProcReturn(@"select * from Sb_EquipMentCollection_SN where HBarCode='" + HBarCode + "' and HCreateTime='" + HCreateTime + "'", "Sb_EquipMentCollection_SN");
                    if (true)
                    {
                        string HSourceCode = list[i]["HSouceNumber"].ToString();
                        string HEmpCode = this.HEmpCode.Text;
                        //string HEmpCode = "";
                        string HType = list[i]["HBadReason"].ToString();
                        string HBarCode = list[i]["HBadCodeSN"].ToString();
                        int HCount = 1;
                        string HCreateTime = list[i]["HDate"].ToString();
                        string HDate = DateTime.Parse(list[i]["HDate"].ToString()).ToString("yyyy-MM-dd");
                        string HResult = list[i]["HResult"].ToString();
                        string HProcNumber = list[i]["HProcNumber"].ToString();
                        int HFlag = 0;
                        DataSet dataSet;
                        string HProjectNum = HBarCode.Substring(18, 8);
                        if (HBarCode.Contains(AllProcessExchange)==false) {
                        DataSet ds = oCN.RunProcReturn(@"select * from Sb_EquipMentCollectionTechParam_SN where HBarCode='" + HBarCode + "' and HCreateTime='" + HCreateTime + "'", "Sb_EquipMentCollectionTechParam_SN");
                        if (ds.Tables[0].Rows.Count == 0)
                            dataSet = oCN.RunProcReturn("select HInterID,HBillNo from Sc_ProcessExchangeBillMain where HProjectNum='" + HProjectNum + "-1'", "Sc_ProcessExchangeBillMain");
                            if (dataSet.Tables[0].Rows.Count > 0) {
                                AllProcessExchangeHProcExchBillNo = dataSet.Tables[0].Rows[0]["HBillNo"].ToString();
                                AllProcessExchangeHProcExchInterID = dataSet.Tables[0].Rows[0]["HInterID"].ToString();
                                AllProcessExchange = HProjectNum;
                            }
                        }
                        if (AllProcessExchange == HProjectNum)
                        {
                            string sql = $@"insert into Sb_EquipMentCollectionTechParam_SN(HSourceCode,HEmpCode,HType,HBarCode,HCount,HCreateTime,HDate,HResult,HProcNumber,HFlag)
                            if (HBarCode.Contains(AllBeginWork) == false) {
                                dataSet = oCN.RunProcReturn("select  * from Sc_ICMOBillStatus_Tmp where HSourceBillNo='" + AllProcessExchangeHProcExchBillNo + "' and HICMOStatus<>'0'", "Sc_ICMOBillStatus_Tmp");
                                if (dataSet.Tables[0].Rows.Count > 0)
                                {
                                    AllBeginWork = HProjectNum;
                                }
                            }
                            if (AllBeginWork == HProjectNum)
                            {
                                if (Get_AllowLoadData(HBarCode, HProcNumber, flag_1, AllProcessExchangeHProcExchBillNo, AllProcessExchangeHProcExchInterID, out flag_2))
                                {
                                    string sql = $@"insert into Sb_EquipMentCollection_SN(HSourceCode,HEmpCode,HType,HBarCode,HCount,HCreateTime,HDate,HResult,HProcNumber,HFlag)
values('{HSourceCode}','{HEmpCode}','{HType}','{HBarCode}','{HCount}','{HCreateTime}','{HDate}','{HResult}','{HProcNumber}','{HFlag}')";
                            oCN.RunProc(sql);
                            //ListSelect.Items.Add("条码:" + HBarCode + ",日期:" + HCreateTime + ",结果:" + HResult);
                                    oCN.RunProc(sql);
                                    ListSelect.Items.Add("条码:" + HBarCode + ",当前日期;"+DateTime.Now.ToString()+",日期:" + HCreateTime + ",结果:" + HResult);
                                    listData.Add(HBarCode);
                                }
                                else
                                {
                                    flag_1 = flag_2;
                                }
                            }
                            else
                            {
                                if (!flag_1 && (DateTime.Now - time).Minutes > hqty)
                                {
                                    time = DateTime.Now;
                                    MessageBox.Show(new Form { TopMost = true }, "条码:" + HBarCode + ",对应的流转卡:" + AllProcessExchangeHProcExchBillNo + ",流转卡未开工!");
                                }
                                DBHelper.CustomWriteLog("条码:" + HBarCode + ",对应的流转卡:" + AllProcessExchangeHProcExchBillNo + ",流转卡未开工!", DateTime.Now.ToString("yyyy-MM-dd"));
                                flag_1 = true;
                            }
                        }
                        else
                        {
                            if (!flag_1 && (DateTime.Now - time).Minutes > hqty)
                            {
                                time = DateTime.Now;
                                MessageBox.Show(new Form { TopMost = true }, "条码:" + HBarCode + ",流转卡不存在!");
                            }
                            DBHelper.CustomWriteLog("条码:" + HBarCode + ",流转卡不存在!", DateTime.Now.ToString("yyyy-MM-dd"));
                            flag_1 = true;
                        }
                    }
                    else
                }
                else
                {
                    //CustomWriteLog("时间不在保存范围内", DateTime.Now.ToString("yyyy-MM-dd"));
                }
            }
        }
        //读取系统参数
        public void Xt_Gy_RoutBill(string FileData)
        {
            FileData = FileData.Substring(0, FileData.Length - 1);
            FileData = "[" + FileData + "]";
            //JSON序列化转换字典集合
            List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
            List<object> DataList = JsonConvert.DeserializeObject<List<object>>(FileData);
            foreach (JObject item in DataList)
            {
                Dictionary<string, string> dic = new Dictionary<string, string>();
                foreach (var itm in item.Properties())
                {
                    dic.Add(itm.Name, itm.Value.ToString());
                }
                list.Add(dic);
            }
            //获取当前时间
            DateTime ActionTime = DateTime.Parse(DateTime.Now.AddMinutes(-1).ToString("yyyy-MM-dd  HH:mm:ss"));
            DateTime EndTime = DateTime.Parse(DateTime.Now.AddMinutes(1).ToString("yyyy-MM-dd  HH:mm:00"));
            //循环集合
            for (int i = 0; i < list.Count; i++)
            {
                DateTime NowTime = DateTime.Parse(list[i]["HDate"].ToString());
                if (NowTime >= ActionTime && NowTime < EndTime)
                {
                    string HSourceCode = list[i]["HSouceNumber"].ToString();
                    string HEmpCode = this.HEmpCode.Text;
                    //string HEmpCode = "";
                    string HType = list[i]["HType"].ToString();
                    string HBarCode = list[i]["HBadCodeSN"].ToString();
                    double HCount = double.Parse(list[i]["HCount"].ToString());
                    string HCreateTime = list[i]["HDate"].ToString();
                    string HDate = DateTime.Parse(list[i]["HDate"].ToString()).ToString("yyyy-MM-dd");
                    string HResult = list[i]["HResult"].ToString();
                    string HProcNumber = list[i]["HProcNumber"].ToString();
                    int HFlag = 0;
                    DataSet ds = oCN.RunProcReturn(@"select * from Sb_EquipMentCollectionTechParam_SN where HBarCode='" + HBarCode + "' and HCreateTime='" + HCreateTime + "'", "Sb_EquipMentCollectionTechParam_SN");
                    if (ds.Tables[0].Rows.Count == 0)
                    {
                        //CustomWriteLog("时间不在保存范围内", DateTime.Now.ToString("yyyy-MM-dd"));
                        string sql = $@"insert into Sb_EquipMentCollectionTechParam_SN(HSourceCode,HEmpCode,HType,HBarCode,HCount,HCreateTime,HDate,HResult,HProcNumber,HFlag)
values('{HSourceCode}','{HEmpCode}','{HType}','{HBarCode}','{HCount}','{HCreateTime}','{HDate}','{HResult}','{HProcNumber}','{HFlag}')";
                        oCN.RunProc(sql);
                        //ListSelect.Items.Add("条码:" + HBarCode + ",日期:" + HCreateTime + ",结果:" + HResult);
                    }
                }
                else
                {
                    //CustomWriteLog("时间不在保存范围内", DateTime.Now.ToString("yyyy-MM-dd"));
                }
            }
        }
        public static string AllSNBarcodeProcCtrl = "";
        public static string AllHProcID = "0";
        public static string AllHProName = "";
        public static double AllHQty = 0;
        //根据条码 判断是否保存
        public bool Get_AllowLoadData(string HBarCode, string HProcNumber, bool flag_1,string HProcExchBillNo,string HProcExchInterID, out bool flag_2)
        {
            if (HBarCode.Length != 29 && HBarCode.Length != 50)
            {
                flag_2 = false;
                return false;
            }
            //判断长度是否为29位 无尘车间
            if (HBarCode.Length == 29)
            {
            }
            //判断长度是否为50位  15车间
            else if (HBarCode.Length == 50)
            {
                string str1 = HBarCode.Substring(42, 8);
                DataSet ds = oCN.RunProcReturn("select  HBillNo from Sc_ProcessExchangeBillMain where HProjectNum like'" + str1 + "-1%'", "Sc_ProcessExchangeBillMain");
                //判断是否能找到对应的流转卡
                if (ds.Tables[0].Rows.Count > 0)
                {
                    HProcExchBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString();
                }
                else
                {
                    if (!flag_1 && (DateTime.Now - time).Minutes > hqty)
                    {
                        time = DateTime.Now;
                        MessageBox.Show("条码:" + HBarCode + ",流转卡不存在!");
                    }
                    DBHelper.CustomWriteLog("条码:" + HBarCode + ",流转卡不存在!", DateTime.Now.ToString("yyyy-MM-dd"));
                    flag_2 = true;
                    return false;
                }
            }
            DataSet ds1;
            if ((HProcExchBillNo + HProcNumber) != AllSNBarcodeProcCtrl) {
                //查询工序
                ds1 = oCN.RunProcReturn(@"SELECT  HItemID,HName FROM Gy_Process WHERE HNumber='" + HProcNumber + "'", "Gy_Process");
                if (ds1.Tables[0].Rows.Count > 0)
                {
                    AllHProcID = ds1.Tables[0].Rows[0]["HItemID"].ToString();
                    AllHProName = ds1.Tables[0].Rows[0]["HName"].ToString();
                }
                //查询流转卡数量
                ds1 = oCN.RunProcReturn(@"SELECT  HQty FROM Sc_ProcessExchangeBillSub  where HInterID=" + HProcExchInterID + " and HProcID=" + AllHProcID, "Sc_ProcessExchangeBillSub");
                if (ds1.Tables[0].Rows.Count > 0)
                {
                    AllHQty = double.Parse(ds1.Tables[0].Rows[0]["HQty"].ToString());
                }
                AllSNBarcodeProcCtrl = HProcExchBillNo + HProcNumber;
            }
            if ((HProcExchBillNo + HProcNumber) == AllSNBarcodeProcCtrl)
            {
                //过站控制
                ds1 = oCN.RunProcReturn("exec h_p_Sc_SNBarcodeProcCtrl_S '" + HBarCode + "'," + AllHProcID, "h_p_Sc_SNBarcodeProcCtrl_S");
                if (ds1.Tables[0].Rows.Count == 0)
                {
                    if (!flag_1 && (DateTime.Now - time).Minutes > hqty)
                    {
                        time = DateTime.Now;
                        MessageBox.Show("条码:" + HBarCode + "工序:" + AllHProName + ",工序控制查无数据!");
                    }
                    DBHelper.CustomWriteLog("条码:" + HBarCode + "工序:" + AllHProName + ",工序控制查无数据!", DateTime.Now.ToString("yyyy-MM-dd"));
                    flag_2 = true;
                    return false;
                }
                else if (ds1.Tables[0].Rows[0]["HBack"].ToString() == "2")
                {
                    if (!flag_1 && (DateTime.Now - time).Minutes > hqty)
                    {
                        time = DateTime.Now;
                        MessageBox.Show("条码:" + HBarCode + "工序:" + AllHProcID + "," + ds1.Tables[0].Rows[0]["HBackRemark"].ToString() + "!");
                    }
                    DBHelper.CustomWriteLog("条码:" + HBarCode + "工序:" + AllHProcID + "," + ds1.Tables[0].Rows[0]["HBackRemark"].ToString() + "!", DateTime.Now.ToString("yyyy-MM-dd"));
                    flag_2 = true;
                    return false;
                }
            }
                //查询出站数量是否超过流转卡数量
                ds1 = oCN.RunProcReturn($@"select ({AllHQty}-sum(isnull(ou.HQty,0))-sum(isnull(ou.HBadCount,0))) HQty from Sc_StationOutBillMain ou WITH(NOLOCK)
where ou.HProcExchInterID={HProcExchInterID} and ou.HProcID={AllHProcID}
group by  ou.HProcExchInterID,ou.HProcExchEntryID,ou.HQty", "Sc_StationOutBillMain");
            double hqtyOut = AllHQty;
            if (ds1.Tables[0].Rows.Count > 0) {
                hqtyOut = double.Parse(ds1.Tables[0].Rows[0][0].ToString());
            }
            if (hqtyOut <= 0)
            {
                if (!flag_1 && (DateTime.Now - time).Minutes > hqty)
                {
                    time = DateTime.Now;
                    MessageBox.Show("流转卡:" + HProcExchBillNo + ",出站数量超过流转卡数量!");
                }
                DBHelper.CustomWriteLog("流转卡:" + HProcExchBillNo + ",出站数量超过流转卡数量!", DateTime.Now.ToString("yyyy-MM-dd"));
                flag_2 = true;
                return false;
            }
            //拍照工序除外
            if (HProcNumber != "013")
            {
                //增加产线组装追溯单
                DataSet dataSet = oCN.RunProcReturn("exec h_p_Gy_BarCodeBillBomList '" + HProcExchBillNo + "'," + AllHProcID, "h_p_Gy_BarCodeBillBomList");
                if (dataSet.Tables[0].Rows.Count > 0)
                {
                    //判配件数量是否等于0
                    for (int i = 0; i < dataSet.Tables[0].Rows.Count; i++)
                    {
                        double SYHQty = double.Parse(dataSet.Tables[0].Rows[i]["配件数量"].ToString());
                        string HMaterNamePJ = dataSet.Tables[0].Rows[i]["配件代码"].ToString();
                        string HMaterBarCode = dataSet.Tables[0].Rows[i]["HBarCode"].ToString();
                        if (SYHQty == 0)
                        {
                            if (!flag_1 && (DateTime.Now - time).Minutes > hqty)
                            {
                                time = DateTime.Now;
                                MessageBox.Show("流转卡:" + HProcExchBillNo + ",配件条码:" + HMaterBarCode + ",配件代码:" + HMaterNamePJ + ",数量为0!");
                            }
                            DBHelper.CustomWriteLog("流转卡:" + HProcExchBillNo + ",配件条码:" + HMaterBarCode + ",配件代码:" + HMaterNamePJ + ",数量为0!", DateTime.Now.ToString("yyyy-MM-dd"));
                            flag_2 = true;
                            return false;
                        }
                    }
                }
            }
            flag_2 = false;
            return true;
        }
        private void ReadyDataForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (num == 1) {
                MessageBox.Show("当前按钮未暂停,不允许关闭!");
                e.Cancel = true;
            }
            else if (MessageBox.Show("确定要关闭吗?", "确认", MessageBoxButtons.YesNo) == DialogResult.No)
            {
                e.Cancel = true;
            }
        }
        private void btnSelectAll_Click(object sender, EventArgs e)
        {
            if (num == 0)
            {
                if (MessageBox.Show("是否启用检索补漏?", "确认", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    SelectTime = -90;
                    Read_Txt();
                }
            }
            else if (num == 1)
            {
                MessageBox.Show("请先点击暂停按钮!");
            }
        }
    }
}