北京安通林JIS系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

287 lines
12 KiB

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<String>();
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<String>();
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("获取导入数据失败!");
}
}
}
}