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 | 220 ++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 139 insertions(+), 81 deletions(-) diff --git a/WFormSynchronizeData_SMR/WFormReadData_SMR/ReadyDataForm.cs b/WFormSynchronizeData_SMR/WFormReadData_SMR/ReadyDataForm.cs index 362e59e..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)\20241128.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)\20241128.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,21 +210,21 @@ list.Add(dic); } //鑾峰彇褰撳墠鏃堕棿 - DateTime ActionTime = DateTime.Parse(DateTime.Now.AddMinutes(-4).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"); @@ -223,25 +232,43 @@ 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) { + DataSet dataSet; + string HProjectNum = HBarCode.Substring(18, 8); - DataSet dataSet = oCN.RunProcReturn("select HBillNo from Sc_ProcessExchangeBillMain where HProjectNum='" + HProjectNum + "-1'", "Sc_ProcessExchangeBillMain"); - if (dataSet.Tables[0].Rows.Count > 0) - { - string HBillNo = dataSet.Tables[0].Rows[0]["HBillNo"].ToString(); - dataSet = oCN.RunProcReturn("select * from Sc_ICMOBillStatus_Tmp where HSourceBillNo='" + HBillNo + "' and HICMOStatus<>'0'", "Sc_ICMOBillStatus_Tmp"); + if (HBarCode.Contains(AllProcessExchange)==false) { - if (dataSet.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) + { + 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, out flag_2)) + 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 + ",褰撳墠鏃ユ湡;"+DateTime.Now.ToString()+",鏃ユ湡:" + HCreateTime + ",缁撴灉:" + HResult); + listData.Add(HBarCode); } else { @@ -250,18 +277,20 @@ } else { - if (!flag_1) + if (!flag_1 && (DateTime.Now - time).Minutes > hqty) { - MessageBox.Show(new Form { TopMost = true }, "鏉$爜:" + HBarCode + ",瀵瑰簲鐨勬祦杞崱:" + HBillNo + ",娴佽浆鍗℃湭寮�宸�!"); + time = DateTime.Now; + MessageBox.Show(new Form { TopMost = true }, "鏉$爜:" + HBarCode + ",瀵瑰簲鐨勬祦杞崱:" + AllProcessExchangeHProcExchBillNo + ",娴佽浆鍗℃湭寮�宸�!"); } - DBHelper.CustomWriteLog("鏉$爜:" + HBarCode + ",瀵瑰簲鐨勬祦杞崱:" + HBillNo + ",娴佽浆鍗℃湭寮�宸�!", DateTime.Now.ToString("yyyy-MM-dd")); + DBHelper.CustomWriteLog("鏉$爜:" + HBarCode + ",瀵瑰簲鐨勬祦杞崱:" + AllProcessExchangeHProcExchBillNo + ",娴佽浆鍗℃湭寮�宸�!", DateTime.Now.ToString("yyyy-MM-dd")); flag_1 = true; } } else { - if (!flag_1) + 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")); @@ -332,8 +361,13 @@ } + 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) + 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) { @@ -342,30 +376,9 @@ } //鍒ゆ柇闀垮害鏄惁涓�29浣� 鏃犲皹杞﹂棿 - string HProcExchBillNo = ""; - string HProcExchInterID = ""; if (HBarCode.Length == 29) { - string str1 = HBarCode.Substring(18, 8); - string str2 = HBarCode.Substring(23, 3); - - DataSet ds = oCN.RunProcReturn("select HInterID,HBillNo from Sc_ProcessExchangeBillMain where HProjectNum like'" + str1 + "-1%' or HProjectNum like'" + str2 + "-1%' order by HMakeDate desc", "Sc_ProcessExchangeBillMain"); - //鍒ゆ柇鏄惁鑳芥壘鍒板搴旂殑娴佽浆鍗� - if (ds.Tables[0].Rows.Count > 0) - { - HProcExchBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString(); - HProcExchInterID = ds.Tables[0].Rows[0]["HInterID"].ToString(); - } - else - { - if (!flag_1) - { - MessageBox.Show(new Form { TopMost = true }, "鏉$爜:" + HBarCode + ",娴佽浆鍗′笉瀛樺湪!"); - } - DBHelper.CustomWriteLog("鏉$爜:" + HBarCode + ",娴佽浆鍗′笉瀛樺湪!", DateTime.Now.ToString("yyyy-MM-dd")); - flag_2 = true; - return false; - } + } //鍒ゆ柇闀垮害鏄惁涓�50浣� 15杞﹂棿 else if (HBarCode.Length == 50) @@ -379,8 +392,9 @@ } else { - if (!flag_1) + if (!flag_1 && (DateTime.Now - time).Minutes > hqty) { + time = DateTime.Now; MessageBox.Show("鏉$爜:" + HBarCode + ",娴佽浆鍗′笉瀛樺湪!"); } DBHelper.CustomWriteLog("鏉$爜:" + HBarCode + ",娴佽浆鍗′笉瀛樺湪!", DateTime.Now.ToString("yyyy-MM-dd")); @@ -389,55 +403,75 @@ 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; + } - //杩囩珯鎺у埗 - DataSet ds1 = oCN.RunProcReturn(@"select b.HProcNo,b.HProcID,p.HName from Sc_ProcessExchangeBillMain a WITH(NOLOCK) -inner join Sc_ProcessExchangeBillSub b WITH(NOLOCK) on a.HInterID=b.HInterID -left join Gy_Process p WITH(NOLOCK) on b.HProcID=p.HItemID -where a.HBillNo='" + HProcExchBillNo + "' and p.HNumber='" + HProcNumber + "'", "Sc_ProcessExchangeBillMain"); - string HProcID = "0"; - if (ds1.Tables[0].Rows.Count > 0) + if ((HProcExchBillNo + HProcNumber) == AllSNBarcodeProcCtrl) { - HProcID = ds1.Tables[0].Rows[0]["HProcID"].ToString(); - string HProName = ds1.Tables[0].Rows[0]["HName"].ToString(); - - ds1 = oCN.RunProcReturn("exec h_p_Sc_SNBarcodeProcCtrl_S '" + HBarCode + "'," + HProcID, "h_v_Gy_QualifiedRecordsList"); + //杩囩珯鎺у埗 + 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) + if (!flag_1 && (DateTime.Now - time).Minutes > hqty) { - MessageBox.Show("鏉$爜:" + HBarCode + "宸ュ簭:" + HProName + ",宸ュ簭鎺у埗鏌ユ棤鏁版嵁!"); + time = DateTime.Now; + MessageBox.Show("鏉$爜:" + HBarCode + "宸ュ簭:" + AllHProName + ",宸ュ簭鎺у埗鏌ユ棤鏁版嵁!"); } - DBHelper.CustomWriteLog("鏉$爜:" + HBarCode + "宸ュ簭:" + HProName + ",宸ュ簭鎺у埗鏌ユ棤鏁版嵁!", DateTime.Now.ToString("yyyy-MM-dd")); + 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) + if (!flag_1 && (DateTime.Now - time).Minutes > hqty) { - MessageBox.Show("鏉$爜:" + HBarCode + "宸ュ簭:" + HProcID + "," + ds1.Tables[0].Rows[0]["HBackRemark"].ToString() + "!"); + time = DateTime.Now; + MessageBox.Show("鏉$爜:" + HBarCode + "宸ュ簭:" + AllHProcID + "," + ds1.Tables[0].Rows[0]["HBackRemark"].ToString() + "!"); } - DBHelper.CustomWriteLog("鏉$爜:" + HBarCode + "宸ュ簭:" + HProcID + "," + ds1.Tables[0].Rows[0]["HBackRemark"].ToString() + "!", DateTime.Now.ToString("yyyy-MM-dd")); + 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 (b.HQty -sum(isnull(ou.HQty,0))-sum(isnull(ou.HBadCount,0))) HQty from Sc_ProcessExchangeBillSub b WITH(NOLOCK) -left join Sc_StationOutBillMain ou WITH(NOLOCK) on b.HInterID=ou.HProcExchInterID and b.HEntryID=ou.HProcExchEntryID -where b.HInterID={HProcExchInterID} and b.HProcID={HProcID} -group by b.HInterID,b.HEntryID,b.HQty", "Sc_ProcessExchangeBill_Out"); + //鏌ヨ鍑虹珯鏁伴噺鏄惁瓒呰繃娴佽浆鍗℃暟閲� + 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 (double.Parse(ds1.Tables[0].Rows[0][0].ToString()) < 0) + if (ds1.Tables[0].Rows.Count > 0) { + hqtyOut = double.Parse(ds1.Tables[0].Rows[0][0].ToString()); + } + + if (hqtyOut <= 0) { - if (!flag_1) + if (!flag_1 && (DateTime.Now - time).Minutes > hqty) { + time = DateTime.Now; MessageBox.Show("娴佽浆鍗�:" + HProcExchBillNo + ",鍑虹珯鏁伴噺瓒呰繃娴佽浆鍗℃暟閲�!"); } DBHelper.CustomWriteLog("娴佽浆鍗�:" + HProcExchBillNo + ",鍑虹珯鏁伴噺瓒呰繃娴佽浆鍗℃暟閲�!", DateTime.Now.ToString("yyyy-MM-dd")); @@ -445,28 +479,34 @@ return false; } - //澧炲姞浜х嚎缁勮杩芥函鍗� - DataSet dataSet = oCN.RunProcReturn("exec h_p_Gy_BarCodeBillBomList '" + HProcExchBillNo + "'," + HProcID, "h_p_Gy_BarCodeBillBomList"); - if (dataSet.Tables[0].Rows.Count > 0) + //鎷嶇収宸ュ簭闄ゅ + if (HProcNumber != "013") { - //鍒ら厤浠舵暟閲忔槸鍚︾瓑浜�0 - for (int i = 0; i < dataSet.Tables[0].Rows.Count; i++) + //澧炲姞浜х嚎缁勮杩芥函鍗� + DataSet dataSet = oCN.RunProcReturn("exec h_p_Gy_BarCodeBillBomList '" + HProcExchBillNo + "'," + AllHProcID, "h_p_Gy_BarCodeBillBomList"); + if (dataSet.Tables[0].Rows.Count > 0) { - 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) + //鍒ら厤浠舵暟閲忔槸鍚︾瓑浜�0 + for (int i = 0; i < dataSet.Tables[0].Rows.Count; i++) { - if (!flag_1) + 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) { - MessageBox.Show("娴佽浆鍗�:" + HProcExchBillNo + ",閰嶄欢鏉$爜:" + HMaterBarCode + ",閰嶄欢浠g爜:" + HMaterNamePJ + ",鏁伴噺涓�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; } - DBHelper.CustomWriteLog("娴佽浆鍗�:" + HProcExchBillNo + ",閰嶄欢鏉$爜:" + HMaterBarCode + ",閰嶄欢浠g爜:" + HMaterNamePJ + ",鏁伴噺涓�0!", DateTime.Now.ToString("yyyy-MM-dd")); - flag_2 = true; - return false; } } } + flag_2 = false; return true; } @@ -482,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