using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Gm_WMS.DataAccess.DataService; using Stone.Common; using Stone.Entity; using Stone.WinBiz.JisData; namespace Stone.WinModule.JisData { public partial class frmSequenceNo : Stone.WinModule.BasicData.frmBaseMain { private ToolStripButton btnCheck = null; private ToolStripButton btnCheckCarpet = null; public frmSequenceNo() { InitializeComponent(); this.tlbAdd.Visible = false; this.tlbEdit.Visible = false; this.tlbAddCopy.Visible = false; this.tlbView.Visible = false; btnCheck = base.CreateButton("门板比对", 1, 0); btnCheck.Click += btnPrint_Click; btnCheckCarpet = base.CreateButton("地毯比对", 1, 1); btnCheckCarpet.Click += btnCheckCarpet_Click; } private void frmSequenceNo_Load(object sender, EventArgs e) { } public override void Search(string code) { if(code != "") { strWhere = $"[ProductionNo]='{code}'"; strWhere += $" or [Model] = '{code}'"; strWhere += $" or [SequenceNo] = '{code}'"; } else { strWhere = "1=1"; } } private void btnPrint_Click(object sender, EventArgs e) { var db = new LocalDBService(); EntityBase t_SequenceNo = null; EntityBase t_AJIS = null; EntityBase t_AJISCarpet = null; t_SequenceNo = new Entity_t_SequenceNo(db); t_AJIS = new Entity_t_AJIS(db); t_AJISCarpet = new Entity_t_AJISCarpet(db); string strOrder = "id desc"; var dsSeq = t_SequenceNo.GetDataLimit(0, 1, "", " 1 =1 ", strOrder); var lastBatch = dsSeq.Tables[0].Rows[0]["ImportBatch"].ToString(); // lastBatch = "2206020626"; var lastSeq = dsSeq.Tables[0].Rows[0]["SequenceNo"].ToString(); var strFac = lastSeq.Substring(0,2); //获取AJIS中的最后一条记录 var dsAjis = t_AJIS.GetDataLimit(0, 1, "", " 1 =1 and SequenceNo like '" + strFac + "%'", strOrder); var lastAJISSequenceNo = dsAjis.Tables[0].Rows[0]["SequenceNo"].ToString(); var dsAjisCarpet = t_AJISCarpet.GetDataLimit(0, 1, "", " 1 =1 and SequenceNo like '" + strFac + "%'", strOrder); var lastAJISCarpetSequenceNo = dsAjis.Tables[0].Rows[0]["SequenceNo"].ToString(); var n = string.Compare(lastAJISSequenceNo, lastAJISCarpetSequenceNo,true); var maxSeq = ""; if (n == 1) { maxSeq = lastAJISSequenceNo; } else { maxSeq = lastAJISCarpetSequenceNo; } strOrder = "SequenceNo desc"; var DrData = t_SequenceNo.GetData("", " ImportBatch = '" + lastBatch + "' and SequenceNo <= '" + maxSeq + "'", strOrder); if (DrData.Tables[0].Rows.Count > 0) { var strsql = ""; strsql = "select * from t_SequenceNo where 1 =1 " + " and ImportBatch = '" + lastBatch + "'" + " and SequenceNo <= '" + maxSeq + "'" + " and SequenceNo not in (select top 10000 SequenceNo from t_AJIS where SequenceNo like '" + strFac + "%' order by id desc )" + " and SequenceNo not in ( select top 10000 SequenceNo from t_AJISCarpet where SequenceNo like '" + strFac + "%' order by id desc)"; var errData = db.Exec_DataSet(strsql).Tables[0]; if (errData.Rows.Count > 0) { //继续获取地毯信息 var strPrintNo = ""; foreach (DataRow drPintNo in errData.Rows) { strPrintNo += drPintNo["SequenceNo"].ToString() + ","; } if (strPrintNo != "") { strPrintNo = strPrintNo.Substring(0, strPrintNo.Length - 1); MyMessageBox.ShowErrorMessage($"以下订单漏打印:\r\n{strPrintNo}"); } } else { //校验顺序是否一致 //顺义地毯不排序 var dtSeq = t_SequenceNo.GetData("", " ImportBatch = '" + lastBatch + "'", "SequenceNo"); var dtAJIS = t_AJIS.GetData("", " isPost = 1 and SequenceNo in (select SequenceNo from t_SequenceNo where ImportBatch = '" + lastBatch + "')", "TaskNo,RunningNo"); int NG = 0; var lstErrSeq = new List(); for (int i = 0; i < dtAJIS.Tables[0].Rows.Count; i++) { var seq1 = dtSeq.Tables[0].Rows[i]["SequenceNo"].ToString(); var seq2 = dtAJIS.Tables[0].Rows[i-NG]["SequenceNo"].ToString(); if (seq1 != seq2) { if (lstErrSeq.Any(p => p.Contains(seq2))) { NG--; i--; } else { NG++; lstErrSeq.Add(seq1); } } } if (lstErrSeq.Count > 0) { var strMsg = ""; foreach (var errSeq in lstErrSeq) { strMsg += errSeq + ";"; } MyMessageBox.ShowErrorMessage("SequenceNo " + strMsg + " 有断号或跳号!"); } else { MyMessageBox.ShowInfoMessage("最新的10000条打印数据正常!"); } } } else { MyMessageBox.ShowErrorMessage("获取导入数据失败!"); } } private void btnCheckCarpet_Click(object sender, EventArgs e) { var db = new LocalDBService(); EntityBase t_SequenceNo = null; EntityBase t_AJIS = null; EntityBase t_AJISCarpet = null; t_SequenceNo = new Entity_t_SequenceNo(db); t_AJIS = new Entity_t_AJIS(db); t_AJISCarpet = new Entity_t_AJISCarpet(db); string strOrder = "id desc"; var dsSeq = t_SequenceNo.GetDataLimit(0, 1, "", " 1 =1 ", strOrder); var lastBatch = dsSeq.Tables[0].Rows[0]["ImportBatch"].ToString(); var lastSeq = dsSeq.Tables[0].Rows[0]["SequenceNo"].ToString(); var strFac = lastSeq.Substring(0, 2); //获取AJIS中的最后一条记录 var dsAjis = t_AJIS.GetDataLimit(0, 1, "", " 1 =1 and SequenceNo like '" + strFac + "%'", strOrder); var lastAJISSequenceNo = dsAjis.Tables[0].Rows[0]["SequenceNo"].ToString(); var dsAjisCarpet = t_AJISCarpet.GetDataLimit(0, 1, "", " 1 =1 and SequenceNo like '" + strFac + "%'", strOrder); var lastAJISCarpetSequenceNo = dsAjis.Tables[0].Rows[0]["SequenceNo"].ToString(); var n = string.Compare(lastAJISSequenceNo, lastAJISCarpetSequenceNo, true); var maxSeq = ""; if (n == 1) { maxSeq = lastAJISSequenceNo; } else { maxSeq = lastAJISCarpetSequenceNo; } strOrder = "SequenceNo desc"; var DrData = t_SequenceNo.GetData("", " ImportBatch = '" + lastBatch + "' and SequenceNo <= '" + maxSeq + "'", strOrder); if (DrData.Tables[0].Rows.Count > 0) { var strsql = ""; strsql = "select * from t_SequenceNo where 1 =1 " + " and ImportBatch = '" + lastBatch + "'" + " and SequenceNo <= '" + maxSeq + "'" + " and SequenceNo not in (select top 10000 SequenceNo from t_AJIS where SequenceNo like '" + strFac + "%' order by id desc )" + " and SequenceNo not in ( select top 10000 SequenceNo from t_AJISCarpet where SequenceNo like '" + strFac + "%' order by id desc)"; var errData = db.Exec_DataSet(strsql).Tables[0]; if (errData.Rows.Count > 0) { //继续获取地毯信息 var strPrintNo = ""; foreach (DataRow drPintNo in errData.Rows) { strPrintNo += drPintNo["SequenceNo"].ToString() + ","; } if (strPrintNo != "") { strPrintNo = strPrintNo.Substring(0, strPrintNo.Length - 1); MyMessageBox.ShowErrorMessage($"以下订单漏打印:\r\n{strPrintNo}"); } } else { //校验顺序是否一致 //顺义地毯不排序 var lstErrSeq = new List(); if (strFac != "SY") { var dtSeq = t_SequenceNo.GetData("", " ImportBatch = '" + lastBatch + "'", "SequenceNo"); var dtAJISCarpet = t_AJISCarpet.GetData("", " isPost = 1 and SequenceNo in (select SequenceNo from t_SequenceNo where ImportBatch = '" + lastBatch + "')", "TaskNo,RunningNo"); int NG = 0; for (int i = 0; i < dtAJISCarpet.Tables[0].Rows.Count; i++) { var seq1 = dtSeq.Tables[0].Rows[i]["SequenceNo"].ToString(); var seq2 = dtAJISCarpet.Tables[0].Rows[i - NG]["SequenceNo"].ToString(); if (seq1 != seq2) { if (lstErrSeq.Any(p => p.Contains(seq2))) { NG--; i--; } else { NG++; lstErrSeq.Add(seq1); } } } } if (lstErrSeq.Count > 0) { var strMsg = ""; foreach (var errSeq in lstErrSeq) { strMsg += errSeq + ";"; } MyMessageBox.ShowErrorMessage("SequenceNo " + strMsg + " 有断号或跳号!"); } else { MyMessageBox.ShowInfoMessage("最新的10000条打印数据正常!"); } } } else { MyMessageBox.ShowErrorMessage("获取导入数据失败!"); } } } }