From 0d59b3fd8050b0f0766be47ed5527d96bd4bf2f7 Mon Sep 17 00:00:00 2001
From: yangle <admin@YINMOU>
Date: 星期一, 07 四月 2025 09:38:43 +0800
Subject: [PATCH] 斯莫尔插件优化

---
 WFormSynchronizeData_SMR/WFormReadData_SMR/ReadCSV.cs |  390 +++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 348 insertions(+), 42 deletions(-)

diff --git a/WFormSynchronizeData_SMR/WFormReadData_SMR/ReadCSV.cs b/WFormSynchronizeData_SMR/WFormReadData_SMR/ReadCSV.cs
index 0dda88a..e6ca6c0 100644
--- a/WFormSynchronizeData_SMR/WFormReadData_SMR/ReadCSV.cs
+++ b/WFormSynchronizeData_SMR/WFormReadData_SMR/ReadCSV.cs
@@ -6,6 +6,7 @@
 using System.Drawing;
 using System.IO;
 using System.Linq;
+using System.Runtime.InteropServices;
 using System.Text;
 using System.Threading.Tasks;
 using System.Windows.Forms;
@@ -21,8 +22,7 @@
             InitializeComponent();
         }
         public static int num = 0;
-
-
+        public static DateTime time = DateTime.Now.AddMinutes(-5);
 
         //鏇存崲鏉″舰鐮�
         private void btnGH_Click(object sender, EventArgs e)
@@ -44,9 +44,17 @@
                 }
                 else
                 {
-                    string HProjectNum = ds.Tables[0].Rows[0]["HProjectNum"].ToString();
-                    this.txtHBath.Text = HProjectNum.Split('-')[0];
-                    this.txtHBardCode.ReadOnly = true;
+                    DataSet dataSet= oCN.RunProcReturn("select  * from Sc_ICMOBillStatus_Tmp where HSourceBillNo='" + HBillNo + "' and HICMOStatus<>'0'", "Sc_ICMOBillStatus_Tmp");
+                    if (dataSet.Tables[0].Rows.Count > 0)
+                    {
+                        string HProjectNum = ds.Tables[0].Rows[0]["HProjectNum"].ToString();
+                        this.txtHBath.Text = HProjectNum.Split('-')[0];
+                        this.txtHBardCode.ReadOnly = true;
+                        list.Clear();
+                    }
+                    else {
+                        MessageBox.Show(HBillNo + ",娴佽浆鍗℃湭寮�宸�!");
+                    }
                 }
             }
             catch (Exception e)
@@ -128,6 +136,7 @@
                     this.btnGH.Enabled = false;
                     this.btnSelect.Enabled = false;
                     num = 1;
+                    //ReadCsv();
                 }
                 else if (num == 1)
                 {
@@ -151,6 +160,7 @@
                 ReadCsv();
             }
         }
+        public static List<string> list = new List<string>();
 
         //璇诲彇csv鏍煎紡鏂囦欢
         private void ReadCsv()
@@ -158,20 +168,37 @@
             string Date = DateTime.Now.ToString("yyMMdd");
             string HBath = this.txtHBath.Text;
 
+            string Year = DateTime.Now.Year.ToString();
+            Year = Year.Substring(Year.Length - 2, 2);
+            string Month = DateTime.Now.Month.ToString();
+            Month = Month.Length > 1 ? Month : "0" + Month;
+            string Day = DateTime.Now.Day.ToString();
+            Day = Day.Length > 1 ? Day : "0" + Day;
+
             //娉�:鏂帿灏旂粍瑁�3 鍦‥鐩�  _332009
             //鍏朵綑鍦―鐩� _C332001_2M
-            //string csv_file_path = $@"C:\Users\admin\Desktop\鏂板缓鏂囦欢澶� (2)\20231123.csv";
+            //string csv_file_path = $@"C:\Users\admin\Desktop\鏂板缓鏂囦欢澶� (2)\250933P9_250403_C332001_2M.csv";
             string csv_file_path = $@"D:\THLCR_Data\{HBath}\{HBath}_{Date}_C332001_2M.csv"; //缁勮1 缁勮2璺緞 
             //string csv_file_path = $@"E:\THLCR_Data\{HBath}\{HBath}_{Date}_332009.csv";  //缁勮3璺緞
+            //15杞﹂棿缂哄皯璺緞 D:\DATA SAVE\骞碶骞存湀\骞存湀鏃鎵规鍙穃鏁版嵁淇濆瓨.csv
+            //string csv_file_path = $@"D:\DATA SAVE\{Year}\{Year + Month}\{Year + Month + Day}\{HBath}\鏁版嵁淇濆瓨.csv";  
+
 
             bool flag = File.Exists(csv_file_path);
 
             if (flag)
             {
                 DataTable dt = new DataTable();
-                //string csv_file_path_Read = @"C:\Users\admin\Desktop\鏂板缓鏂囦欢澶� (2)\20231123_1.csv";
+                string HTypeName = "鏃犲皹";
+                //string csv_file_path_Read = @"C:\Users\admin\Desktop\鏂板缓鏂囦欢澶� (2)\250933P9_250403_C332001_2M_1.csv";
                 string csv_file_path_Read = $@"D:\THLCR_Data\{HBath}\{HBath}_{Date}_C332001_2M_Read.csv"; //缁勮1 缁勮2璺緞 
                 //string csv_file_path_Read = $@"E:\THLCR_Data\{HBath}\{HBath}_{Date}_332009_Read.csv";  //缁勮3璺緞
+
+                //string HTypeName = "15";
+                ////15杞﹂棿缂哄皯璺緞 D:\DATA SAVE\骞碶骞存湀\骞存湀鏃鎵规鍙穃鏁版嵁淇濆瓨.csv
+                ////string csv_file_path_Read = $@"C:\Users\admin\Desktop\鏂板缓鏂囦欢澶� (2)\DATA SAVE\鏁版嵁淇濆瓨_MES璇诲彇.csv";
+
+                //string csv_file_path_Read = $@"D:\DATA SAVE\{Year}\{Year + Month}\{Year + Month + Day}\{HBath}\鏁版嵁淇濆瓨_MES璇诲彇.csv";
 
                 File.Copy(csv_file_path, csv_file_path_Read, true);
 
@@ -203,63 +230,329 @@
                 parser.Close();
 
                 //鑾峰彇褰撳墠鏃堕棿
-                DateTime ActionTime = DateTime.Parse(DateTime.Now.AddMinutes(-1).ToString("yyyy-MM-dd  HH:mm:ss"));
+                DateTime ActionTime = DateTime.Parse(DateTime.Now.AddMinutes(-20).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;
                 foreach (DataRow item in dt.Rows)
                 {
-                    DateTime NowTime = DateTime.Parse(item["娴嬭瘯鏃堕棿"].ToString());
-                    string HBadCodeSN = item["搴忓彿"].ToString();
-
-                    if (((NowTime >= ActionTime && NowTime < EndTime) || dt.Rows.Count <= 20) && HBadCodeSN != "")
+                    if (HTypeName == "鏃犲皹")
                     {
+                        DateTime NowTime = DateTime.Parse(item["娴嬭瘯鏃堕棿"].ToString());
+                        string HBadCodeSN = item["搴忓彿"].ToString();
 
-                        string HSourceCode = this.HSouce.Text; //璁惧缂栧彿 缁勮1 9994 缁勮2 9995 缁勮3 9996
-                        string HEmpCode = this.HEmpCode.Text;
-                        string HBarCode = item["搴忓彿"].ToString();
-                        string HCreateTime = item["娴嬭瘯鏃堕棿"].ToString();
-                        string HDate = DateTime.Parse(item["娴嬭瘯鏃堕棿"].ToString()).ToString("yyyy-MM-dd");
-                        string HResult = item["鍒嗛��"].ToString() == "PASS" ? "OK" : "NG";
-                        string HProcNumber = "005";
-                        int HFlag = 0;
-                        //string HEmpCode = "";
-                        if (HBadCodeSN != "")
+                        if (((NowTime >= ActionTime && NowTime < EndTime) || dt.Rows.Count <= 20) && HBadCodeSN != "" && list.Contains(HBadCodeSN)==false)
                         {
-                            string HType = "";
-                            int HCount = 1;
 
-                            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 HSourceCode = this.HSouce.Text; //璁惧缂栧彿 缁勮1 9994 缁勮2 9995 缁勮3 9996
+                            string HEmpCode = this.HEmpCode.Text;
+                            string HBarCode = item["搴忓彿"].ToString();
+                            string HCreateTime = item["娴嬭瘯鏃堕棿"].ToString();
+                            string HDate = DateTime.Parse(item["娴嬭瘯鏃堕棿"].ToString()).ToString("yyyy-MM-dd");
+                            string HResult = item["鍒嗛��"].ToString() == "PASS" ? "OK" : "NG";
+                            string HProcNumber = "005"; //005
+                            int HFlag = 0;
+                            //string HEmpCode = "";
+                            if (HBadCodeSN != "")
                             {
-                                string sql = $@"insert into Sb_EquipMentCollection_SN(HSourceCode,HEmpCode,HType,HBarCode,HCount,HCreateTime,HDate,HResult,HProcNumber,HFlag)
+                                string HType = "";
+                                int HCount = 1;
+
+                                //DataSet ds = oCN.RunProcReturn(@"select * from Sb_EquipMentCollection_SN where HBarCode='" + HBarCode + "' and HCreateTime='" + HCreateTime + "'", "Sb_EquipMentCollection_SN");
+
+                                if (true)
+                                {
+                                    if (Get_AllowLoadData(HBarCode, HProcNumber, flag_1,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);
+                                        list.Add(HBarCode);
+
+                                        for (int i = 0; i < dt.Columns.Count; i++)
+                                        {
+                                            if (dt.Columns[i].ColumnName.Contains("Hz"))
+                                            {
+                                                HType = dt.Columns[i].ColumnName;
+                                                string HCount_1 = item[HType].ToString();
+
+                                                DataSet ds1 = oCN.RunProcReturn(@"select * from Sb_EquipMentCollectionTechParam_SN where HBarCode='" + HBarCode + "' and HType='" + HType + "'", "Sb_EquipMentCollectionTechParam_SN");
+
+                                                if (ds1.Tables[0].Rows.Count == 0)
+                                                {
+                                                    string sql1 = $@"insert into Sb_EquipMentCollectionTechParam_SN(HSourceCode,HEmpCode,HType,HBarCode,HCount,HCreateTime,HDate,HResult,HProcNumber,HFlag)
+values('{HSourceCode}','{HEmpCode}','{HType}','{HBarCode}','{HCount_1}','{HCreateTime}','{HDate}','{HResult}','{HProcNumber}','{HFlag}')";
+                                                    oCN.RunProc(sql1);
+                                                    //ListSelect.Items.Add("鏉$爜:" + HBarCode + ",鏃ユ湡:" + HCreateTime + ",缁撴灉:" + HResult);
+                                                }
+                                            }
+                                        }
+                                    }
+                                    else {
+                                        flag_1 = flag_2;
+                                    }
+                                }
                             }
                         }
+                    }
 
-                        for (int i = 0; i < dt.Columns.Count; i++)
+                    if (HTypeName == "15")
+                    {
+                        DateTime NowTime = DateTime.Parse(item["CS_鏃堕棿"].ToString());
+                        string HBadCodeSN = item["CS_DM鐮�"].ToString();
+
+                        if (((NowTime >= ActionTime && NowTime < EndTime) || dt.Rows.Count <= 20) && HBadCodeSN != "")
                         {
-                            if (dt.Columns[i].ColumnName.Contains("Hz"))
-                            {
-                                string HType = dt.Columns[i].ColumnName;
-                                string HCount = item[HType].ToString();
 
-                                DataSet ds = oCN.RunProcReturn(@"select * from Sb_EquipMentCollectionTechParam_SN where HBarCode='" + HBarCode + "' and HType='" + HType + "'", "Sb_EquipMentCollectionTechParam_SN");
+                            string HSourceCode = this.HSouce.Text; //璁惧缂栧彿 缁勮1 9994 缁勮2 9995 缁勮3 9996
+                            string HEmpCode = this.HEmpCode.Text;
+                            string HBarCode = item["CS_DM鐮�"].ToString();
+                            string HCreateTime = item["CS_鏃堕棿"].ToString();
+                            string HDate = DateTime.Parse(item["CS_鏃堕棿"].ToString()).ToString("yyyy-MM-dd");
+                            string HResult = item["CS_鎬荤粨鏋�"].ToString();
+                            string HProcNumber = "005";
+                            int HFlag = 0;
 
-                                if (ds.Tables[0].Rows.Count == 0)
+                            if (HResult != "") {
+                                if (HBadCodeSN != "")
                                 {
-                                    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);
+                                    string HType = "";
+                                    int HCount = 1;
+
+                                    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)
+                                    {
+                                        if (Get_AllowLoadData(HBarCode, HProcNumber, flag_1, 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);
+
+                                            for (int i = 0; i < dt.Columns.Count; i++)
+                                            {
+                                                if (dt.Columns[i].ColumnName.Contains("CS_"))
+                                                {
+                                                    HType = dt.Columns[i].ColumnName;
+                                                    string HCount_1 = item[HType].ToString();
+                                                    string HResult_TechParam = "";
+                                                    if (HType != "CS_鏃堕棿" && HType != "CS_DM鐮�" && HType != "CS_鎬荤粨鏋�")
+                                                    {
+                                                        HResult_TechParam = HCount_1;
+                                                        double number = 0;
+                                                        if (!Double.TryParse(HCount_1, out number))
+                                                        {
+                                                            HCount_1 = "0";
+                                                        }
+
+                                                        DataSet ds1 = oCN.RunProcReturn(@"select * from Sb_EquipMentCollectionTechParam_SN where HBarCode='" + HBarCode + "' and HType='" + HType + "'", "Sb_EquipMentCollectionTechParam_SN");
+
+                                                        if (ds1.Tables[0].Rows.Count == 0)
+                                                        {
+                                                            string sql1 = $@"insert into Sb_EquipMentCollectionTechParam_SN(HSourceCode,HEmpCode,HType,HBarCode,HCount,HCreateTime,HDate,HResult,HProcNumber,HFlag)
+values('{HSourceCode}','{HEmpCode}','{HType}','{HBarCode}','{(HCount_1 == "" ? " 0" : HCount_1)}','{HCreateTime}','{HDate}','{HResult_TechParam}','{HProcNumber}','{HFlag}')";
+                                                            oCN.RunProc(sql1);
+                                                            //ListSelect.Items.Add("鏉$爜:" + HBarCode + ",鏃ユ湡:" + HCreateTime + ",缁撴灉:" + HResult);
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                        }
+                                        else
+                                        {
+                                            flag_1 = flag_2;
+                                        }
+                                    }
                                 }
                             }
                         }
                     }
                 }
             }
+        }
+
+        public static string AllProcessExchange = "-1";
+        public static string AllProcessExchangeHProcExchBillNo = "";
+        public static string AllProcessExchangeHProcExchInterID = "";
+        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,out bool flag_2)
+        {
+            decimal hqty = 2;
+            if (HBarCode.Length != 29 && HBarCode.Length != 50)
+            {
+                flag_2 = false;
+                return false;
+            }
+
+            //鍒ゆ柇闀垮害鏄惁涓�29浣� 鏃犲皹杞﹂棿
+            string HProcExchBillNo = "";
+            string HProcExchInterID = "";
+            if (HBarCode.Length == 29)
+            {
+                string str1 = HBarCode.Substring(18, 8);
+                //string str2 = HBarCode.Substring(23, 3);
+                if (AllProcessExchange != str1) {
+                    DataSet ds = oCN.RunProcReturn("select  HInterID,HBillNo from Sc_ProcessExchangeBillMain where HProjectNum like'" + str1 + "-1%' order by HMakeDate desc", "Sc_ProcessExchangeBillMain");
+                    //鍒ゆ柇鏄惁鑳芥壘鍒板搴旂殑娴佽浆鍗�
+                    if (ds.Tables[0].Rows.Count > 0)
+                    {
+                        AllProcessExchangeHProcExchBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString();
+                        AllProcessExchangeHProcExchInterID = ds.Tables[0].Rows[0]["HInterID"].ToString();
+
+                    }
+                    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_2 = true;
+                        return false;
+                    }
+                    AllProcessExchange = str1;
+                }
+            }
+            //鍒ゆ柇闀垮害鏄惁涓�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)
+                {
+                    AllProcessExchangeHProcExchBillNo = 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;
+                }
+            }
+
+            //璧嬪��
+            HProcExchBillNo = AllProcessExchangeHProcExchBillNo;
+            HProcExchInterID = AllProcessExchangeHProcExchInterID;
+
+            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;
+            }
+               
+            string HProcID = AllHProcID;
+            string HProName = AllHProName;
+            if ((HProcExchBillNo + HProcNumber) == AllSNBarcodeProcCtrl)
+            {
+                ds1 = oCN.RunProcReturn("exec h_p_Sc_SNBarcodeProcCtrl_S '" + HBarCode + "'," + HProcID, "h_v_Gy_QualifiedRecordsList");
+
+                if (ds1.Tables[0].Rows.Count == 0)
+                {
+                    if (!flag_1 && (DateTime.Now - time).Minutes > hqty)
+                    {
+                        time = DateTime.Now;
+                        MessageBox.Show("鏉$爜:" + HBarCode + "宸ュ簭:" + HProName + ",宸ュ簭鎺у埗鏌ユ棤鏁版嵁!");
+                    }
+                    DBHelper.CustomWriteLog("鏉$爜:" + HBarCode + "宸ュ簭:" + HProName + ",宸ュ簭鎺у埗鏌ユ棤鏁版嵁!", 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 + "宸ュ簭:" + HProcID + "," + ds1.Tables[0].Rows[0]["HBackRemark"].ToString() + "!");
+                    }
+                    DBHelper.CustomWriteLog("鏉$爜:" + HBarCode + "宸ュ簭:" + HProcID + "," + 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 + "'," + HProcID, "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]["閰嶄欢浠g爜"].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 + ",閰嶄欢浠g爜:" + HMaterNamePJ + ",鏁伴噺涓�0!");
+                            }
+                            DBHelper.CustomWriteLog("娴佽浆鍗�:" + HProcExchBillNo + ",閰嶄欢鏉$爜:" + HMaterBarCode + ",閰嶄欢浠g爜:" + HMaterNamePJ + ",鏁伴噺涓�0!", DateTime.Now.ToString("yyyy-MM-dd"));
+                            flag_2 = true;
+                            return false;
+                        }
+                    }
+                }
+            }
+                
+            flag_2 = false;
+            return true;
         }
 
         //鐢熶骇璧勬簮鍥炶溅
@@ -295,5 +588,18 @@
                 MessageBox.Show(this, e.Message, "鎻愮ず");
             }
         }
+
+        private void ReadCSV_FormClosing(object sender, FormClosingEventArgs e)
+        {
+            if (num == 1)
+            {
+                MessageBox.Show("褰撳墠鎸夐挳鏈殏鍋�,涓嶅厑璁稿叧闂�!");
+                e.Cancel = true;
+            }
+            else if (MessageBox.Show("纭畾瑕佸叧闂悧锛�", "纭", MessageBoxButtons.YesNo) == DialogResult.No)
+            {
+                e.Cancel = true;
+            }
+        }
     }
 }

--
Gitblit v1.9.1