|
|
@@ -24,17 +24,23 @@ namespace UAS_MES.Make
|
|
|
|
|
|
DataTable info;
|
|
|
|
|
|
- string imei1 = "";
|
|
|
+ DataTable checkItemInfo;//存储需要核对的所有信息列表
|
|
|
|
|
|
- bool isImei1 = false;
|
|
|
+ string needCheckedInfo = "";
|
|
|
+
|
|
|
+ bool isCheckItem = false;
|
|
|
|
|
|
string oErrorMessage = "";
|
|
|
|
|
|
string SN = "";
|
|
|
|
|
|
+ string TSN = "";//存TSN
|
|
|
+
|
|
|
string omakeCode = "";
|
|
|
|
|
|
string oMsid = "";
|
|
|
+
|
|
|
+ int checkIndex = 0;//记录核对的当前位置,从0开始
|
|
|
public Make_LabelCheck()
|
|
|
{
|
|
|
InitializeComponent();
|
|
|
@@ -66,65 +72,60 @@ namespace UAS_MES.Make
|
|
|
return;
|
|
|
}
|
|
|
//输入的是SN
|
|
|
- if (!isImei1)
|
|
|
+ if (!isCheckItem)
|
|
|
{
|
|
|
OperateResult.AppendText("<<"+sncode.Text+"\n", Color.Black);
|
|
|
//查询是否存在该ms_id
|
|
|
sql.Clear();
|
|
|
- sql.Append("select max(MS_id) ms_id from makeserial where ms_sncode='"+sncode.Text+"' or ms_firstsn in (select firstsn from makesnrelation where beforesn='"+sncode.Text+"')");
|
|
|
+ sql.Append("select ms_id,ms_prodcode,ms_makecode,ms_craftcode,ms_beforesn from makeserial where ms_id in (select max(MS_id) ms_id from makeserial where ms_sncode='" + sncode.Text+"' or ms_firstsn in (select firstsn from makesnrelation where beforesn='"+sncode.Text+"'))");
|
|
|
dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
|
|
|
+
|
|
|
if (dt.Rows.Count == 0 || dt.Rows[0]["ms_id"].ToString() == "")
|
|
|
{
|
|
|
//SN错误,不存在
|
|
|
//请输入SN
|
|
|
OperateResult.AppendText("<<SN错误,序列号" + sncode.Text + "不存在\n", Color.Red, sncode);
|
|
|
OperateResult.AppendText(">>请输入SN\n", Color.Black);
|
|
|
+ return;
|
|
|
}
|
|
|
- //存在该SN号
|
|
|
- else
|
|
|
+ //存在该SN号,查询相关需要核对的信息
|
|
|
+ sql.Clear();
|
|
|
+ sql.Append("select checkitem,fsoncode,type,detno from (select psr_type checkitem ,'' fsoncode,'MS' type ,");
|
|
|
+ sql.Append("ROW_NUMBER() OVER (order by psr_detno asc )detno from productsnrelation where psr_prodcode='"+ dt.Rows[0]["ms_prodcode"].ToString() + "' and nvl(psr_iflabelcheck,0)<>0");
|
|
|
+ sql.Append(" UNION ALL select wm_concat(sp_soncode)checkitem,sp_fsoncode fsoncode ,'SP' type,");
|
|
|
+ sql.Append(" ROW_NUMBER()OVER(order by min(sp_detno)asc) detno from make inner join stepbom on sb_bomversion=ma_bomversion and sb_prodcode=ma_prodcode");
|
|
|
+ sql.Append(" inner join stepproduct on sp_sbid=sb_id where ma_code='"+ dt.Rows[0]["ms_makecode"].ToString() + "' and sb_craftcode='"+ dt.Rows[0]["ms_craftcode"].ToString() + "' and nvl(sp_iflabelcheck,0)<>0");
|
|
|
+ sql.Append(" GROUP BY sp_fsoncode) order by type,detno");
|
|
|
+ checkItemInfo = (DataTable)dh.ExecuteSql(sql.GetString(),"select");
|
|
|
+ //判断是否无需要核对的项
|
|
|
+ if (checkItemInfo.Rows.Count==0)
|
|
|
{
|
|
|
- //根据该ms_id查询ms_imei1,ms_makecode信息
|
|
|
- sql.Clear();
|
|
|
- sql.Append("select ms_imei1 from makeserial where ms_id='"+ dt.Rows[0]["ms_id"].ToString() + "'");
|
|
|
- info = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
|
|
|
- if (info.Rows.Count > 0)
|
|
|
- {
|
|
|
- //不为null 并且不为””才继续
|
|
|
- if (info.Rows[0]["ms_imei1"].ToString() == null || info.Rows[0]["ms_imei1"].ToString() == "")
|
|
|
- {
|
|
|
- // SN对应的IMEI不存在
|
|
|
- //>> 请输入SN
|
|
|
- OperateResult.AppendText("<<序列号" + sncode.Text + "对应的IMEI不存在\n", Color.Red, sncode);
|
|
|
- OperateResult.AppendText(">>请输入SN\n", Color.Black);
|
|
|
- }
|
|
|
- else
|
|
|
- //存在该imei信息
|
|
|
- {
|
|
|
- //用变量记录imei1和makecode
|
|
|
- imei1 = info.Rows[0]["ms_imei1"].ToString();
|
|
|
- SN = sncode.Text;
|
|
|
- //>>SN对应的IMEI号为:xxxxxxxxx
|
|
|
- //>> 请输入彩盒上的IMEI
|
|
|
- OperateResult.AppendText("<<序列号"+sncode.Text+"对应的IMEI号为:" + imei1 + "\n", Color.Green);
|
|
|
- OperateResult.AppendText(">>请输入彩盒上的IMEI\n", Color.Black, sncode);
|
|
|
- //设定要输入imei1
|
|
|
- isImei1 = true;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- OperateResult.AppendText("<<SN:" + sncode.Text + "对应的IMEI不存在\n", Color.Red, sncode);
|
|
|
- OperateResult.AppendText(">>请输入SN\n", Color.Black);
|
|
|
- }
|
|
|
+ OperateResult.AppendText("<<序列号" + sncode.Text + "没有需要核对的项\n", Color.Red, sncode);
|
|
|
+ OperateResult.AppendText(">>请输入SN\n", Color.Black);
|
|
|
+ return;
|
|
|
}
|
|
|
+ //记录SN
|
|
|
+ SN = sncode.Text;
|
|
|
+ TSN = dt.Rows[0]["ms_beforesn"].ToString();
|
|
|
+ //查询第一个需要核对的信息
|
|
|
+ getNextInfo(checkIndex);
|
|
|
+ //设定要输入核对信息
|
|
|
+ isCheckItem = true;
|
|
|
}
|
|
|
//输入的是imei1
|
|
|
else
|
|
|
{
|
|
|
OperateResult.AppendText("<<" + sncode.Text + "\n", Color.Black);
|
|
|
- if (imei1 == sncode.Text)
|
|
|
+ if (needCheckedInfo == sncode.Text)
|
|
|
{
|
|
|
- //说明输入的imei1对比一致
|
|
|
+ checkIndex += 1;//序号+1,进入下一步
|
|
|
+ //输入一致则进入下一个
|
|
|
+ getNextInfo(checkIndex);
|
|
|
+ if (checkIndex < checkItemInfo.Rows.Count-1)
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //说明输入的核对信息对比一致
|
|
|
//判断工序属性attribute
|
|
|
if (LogicHandler.CheckStepAttribute(Tag.ToString(), User.UserSourceCode, out oErrorMessage))
|
|
|
{
|
|
|
@@ -150,7 +151,7 @@ namespace UAS_MES.Make
|
|
|
LogicHandler.DoCommandLog(Tag.ToString(),User.UserCode,ma_code.Text,User.UserLineCode,User.UserSourceCode,"标签核对","标签核对成功",SN,"");
|
|
|
//IMEI核对成功
|
|
|
//>> 请输入SN
|
|
|
- OperateResult.AppendText("<<IMEI核对成功\n", Color.Green, sncode);
|
|
|
+ OperateResult.AppendText("<<核对成功\n", Color.Green, sncode);
|
|
|
OperateResult.AppendText(">>请输入SN\n", Color.Black);
|
|
|
}
|
|
|
else
|
|
|
@@ -177,15 +178,15 @@ namespace UAS_MES.Make
|
|
|
//说明比对不一致
|
|
|
else
|
|
|
{
|
|
|
- //清空imei1变量的值
|
|
|
- imei1 = "";
|
|
|
- //IMEI核对失败
|
|
|
+ //清空核对变量的值
|
|
|
+ needCheckedInfo = "";
|
|
|
+ //信息核对失败
|
|
|
//>> 请输入SN
|
|
|
- OperateResult.AppendText(">>IMEI核对失败,不一致\n", Color.Red, sncode);
|
|
|
+ OperateResult.AppendText(">>上料信息或序列号采集信息"+needCheckedInfo+"核对失败,不一致\n", Color.Red, sncode);
|
|
|
OperateResult.AppendText(">>请输入SN\n", Color.Black);
|
|
|
}
|
|
|
//imei1校对结束,下次输入的是SN
|
|
|
- isImei1 = false;
|
|
|
+ isCheckItem = false;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -210,7 +211,26 @@ namespace UAS_MES.Make
|
|
|
omakeCode = "";
|
|
|
oMsid = "";
|
|
|
SN = "";
|
|
|
- imei1 = "";
|
|
|
+ needCheckedInfo = "";
|
|
|
+ }
|
|
|
+ private void getNextInfo(int index)
|
|
|
+ {
|
|
|
+ //判断为上料或者采集信息
|
|
|
+ //为采集信息
|
|
|
+ if (checkItemInfo.Rows[index]["TYPE"].ToString() == "MS")
|
|
|
+ {
|
|
|
+ //从makeserial表中查询对应字段的值
|
|
|
+ needCheckedInfo = dh.getFieldDataByCondition("makeserial","ms_"+ checkItemInfo.Rows[index]["checkitem"].ToString(),"ms_id ='"+ dt.Rows[0]["ms_id"].ToString() + "'").ToString();
|
|
|
+ OperateResult.AppendText("<<序列号" + SN + "对应的"+ checkItemInfo.Rows[index]["checkitem"].ToString() + "为:" + needCheckedInfo + "\n", Color.Green);
|
|
|
+ OperateResult.AppendText(">>请输入"+ checkItemInfo.Rows[index]["checkitem"].ToString() + "\n", Color.Black, sncode);
|
|
|
+ }
|
|
|
+ else//为上料信息
|
|
|
+ {
|
|
|
+ //从craftmaterial中查询上料记录
|
|
|
+ needCheckedInfo = dh.getFieldDataByCondition("craftmaterial", "cm_barcode", "cm_makecode='"+ dt.Rows[0]["ms_makecode"].ToString() + "' and cm_sncode in ('"+SN+"'"+(TSN==""?"":(",'"+TSN+"'"))+") and cm_fsoncode='"+checkItemInfo.Rows[index]["fsoncode"].ToString()+"' and cm_status=0").ToString();
|
|
|
+ OperateResult.AppendText("<<序列号" + SN + "上料物料:"+ checkItemInfo.Rows[index]["checkitem"].ToString() + "的条码号为:" + needCheckedInfo + "\n", Color.Green);
|
|
|
+ OperateResult.AppendText(">>请输入物料"+ checkItemInfo.Rows[index]["checkitem"].ToString() + "条码\n", Color.Black, sncode);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|