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/ReadyDataForm.cs | 258 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 246 insertions(+), 12 deletions(-) diff --git a/WFormSynchronizeData_SMR/WFormReadData_SMR/ReadyDataForm.cs b/WFormSynchronizeData_SMR/WFormReadData_SMR/ReadyDataForm.cs index e432e06..5b24226 100644 --- a/WFormSynchronizeData_SMR/WFormReadData_SMR/ReadyDataForm.cs +++ b/WFormSynchronizeData_SMR/WFormReadData_SMR/ReadyDataForm.cs @@ -24,7 +24,9 @@ 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) { @@ -40,6 +42,7 @@ this.btnReadData.Text = "鏆傚仠"; this.timer1.Enabled = true; num = 1; + SelectTime = -4; } else if (num == 1) { @@ -111,6 +114,7 @@ } } + public static List<string> listData = new List<string>(); //鏂囨湰璇诲彇鏁版嵁 public void Read_Txt() { @@ -122,12 +126,12 @@ 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"); + //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)\20231123.txt", Encoding.GetEncoding("gb2312")); + //StreamReader stream = new StreamReader($@"C:\Users\admin\Desktop\鏂板缓鏂囦欢澶� (2)\20250403T鎷嶇収.txt", Encoding.GetEncoding("gb2312")); string FileData = stream.ReadToEnd(); stream.Close(); @@ -184,6 +188,11 @@ } } + public static string AllBeginWork = "-1"; + public static string AllProcessExchange = "-1"; + public static string AllProcessExchangeHProcExchBillNo = ""; + public static string AllProcessExchangeHProcExchInterID = ""; + public void Xt_ReadText(string FileData) { FileData = FileData.Substring(0, FileData.Length - 1); @@ -201,20 +210,21 @@ list.Add(dic); } //鑾峰彇褰撳墠鏃堕棿 - DateTime ActionTime = DateTime.Parse(DateTime.Now.AddMinutes(-1).ToString("yyyy-MM-dd HH:mm:ss")); + 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() != "") + if (NowTime >= ActionTime && NowTime < EndTime && list[i]["HBadCodeSN"].ToString() != "" && listData.Contains(HBarCode)==false) { 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"); @@ -222,14 +232,70 @@ 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"); + //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 (true) { - string sql = $@"insert into Sb_EquipMentCollection_SN(HSourceCode,HEmpCode,HType,HBarCode,HCount,HCreateTime,HDate,HResult,HProcNumber,HFlag) + DataSet dataSet; + + string HProjectNum = HBarCode.Substring(18, 8); + if (HBarCode.Contains(AllProcessExchange)==false) { + + 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) + { + 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 @@ -295,6 +361,156 @@ } + 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]["閰嶄欢浠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; + } + private void ReadyDataForm_FormClosing(object sender, FormClosingEventArgs e) { if (num == 1) { @@ -306,5 +522,23 @@ 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("璇峰厛鐐瑰嚮鏆傚仠鎸夐挳!"); + } + + + } } } -- Gitblit v1.9.1