|
|
@@ -44,7 +44,7 @@ namespace UAS_MES.Make
|
|
|
//存放工单中数量
|
|
|
int ma_qty;
|
|
|
//存放第一步查询出来的工单号,判断是否更换了工单
|
|
|
- string makecode;
|
|
|
+ string makecode="";
|
|
|
//存放所有关联信息的类型和录入的值
|
|
|
Hashtable hs;
|
|
|
string startNo = "";//起始序列
|
|
|
@@ -95,109 +95,100 @@ namespace UAS_MES.Make
|
|
|
if (step == 0)
|
|
|
{
|
|
|
OperateResult.AppendText(">>TSN号" + code.Text + "\n", Color.Black);
|
|
|
-
|
|
|
- //记录当前序列号查出来的工单
|
|
|
- if (GetMakeInfo(code.Text, out makecode, out errorMessage))
|
|
|
+ //核对工序
|
|
|
+ if (LogicHandler.CheckStepSNAndMacode(makecode, User.UserSourceCode, code.Text, User.UserCode, out oMakecode, out oMsid, out errorMessage))
|
|
|
{
|
|
|
- //核对工序
|
|
|
- if (LogicHandler.CheckStepSNAndMacode(makecode, User.UserSourceCode, code.Text, User.UserCode, out oMakecode, out oMsid, out errorMessage))
|
|
|
+ //如果用户没有选择工单号
|
|
|
+ if (ms_macode.Text == "" || ms_macode.Text != makecode)
|
|
|
{
|
|
|
- //如果用户没有选择工单号
|
|
|
- if (ms_macode.Text == "" || ms_macode.Text != makecode)
|
|
|
+ //按照out出的工单号查出工单相关信息,并赋值到相关控件
|
|
|
+ sql.Clear();
|
|
|
+ sql.Append("select ma_code as ms_macode,ma_softversion,mcd_okqty,ma_qty,ma_qty-mcd_inqty as remain_qty,pr_detail,pr_code as ma_prodcode ");
|
|
|
+ sql.Append("from makeserial left join make on ms_makecode=ma_code left join product on ");
|
|
|
+ sql.Append("ms_prodcode=pr_code left join makecraftdetail on ms_makecode=mcd_macode where ms_id=:msid and mcd_stepcode='" + User.CurrentStepCode + "'");
|
|
|
+ dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select", oMsid);
|
|
|
+ if (dt.Rows.Count > 0)
|
|
|
{
|
|
|
- //按照out出的工单号查出工单相关信息,并赋值到相关控件
|
|
|
- sql.Clear();
|
|
|
- sql.Append("select ma_code as ms_macode,ma_softversion,mcd_okqty,ma_qty,ma_qty-mcd_inqty as remain_qty,pr_detail,pr_code as ma_prodcode ");
|
|
|
- sql.Append("from makeserial left join make on ms_makecode=ma_code left join product on ");
|
|
|
- sql.Append("ms_prodcode=pr_code left join makecraftdetail on ms_makecode=mcd_macode where ms_id=:msid and mcd_stepcode='" + User.CurrentStepCode + "'");
|
|
|
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select", oMsid);
|
|
|
- if (dt.Rows.Count > 0)
|
|
|
- {
|
|
|
- //记录数量
|
|
|
- ma_qty = int.Parse(dt.Rows[0]["ma_qty"].ToString());
|
|
|
- BaseUtil.SetFormValue(this.Controls, dt);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- OperateResult.AppendText(">>TSN号" + code.Text + "不存在\n", Color.Red, code);
|
|
|
- return;
|
|
|
- }
|
|
|
+ //记录数量
|
|
|
+ ma_qty = int.Parse(dt.Rows[0]["ma_qty"].ToString());
|
|
|
+ BaseUtil.SetFormValue(this.Controls, dt);
|
|
|
}
|
|
|
- //获取需要关联采集的信息,以及校验规则
|
|
|
- ListA = (DataTable)dh.ExecuteSql("select * from productsnrelation where psr_prodcode='" + ma_prodcode.Text + "' order by psr_detno", "select");
|
|
|
- //没有获取到就提示错误请维护产品对应的关联采集信息
|
|
|
- if (ListA.Rows.Count == 0)
|
|
|
+ else
|
|
|
{
|
|
|
- OperateResult.AppendText(">>请维护产品对应的关联采集信息\n", Color.Red,code);
|
|
|
- OperateResult.AppendText("<<请输入TSN\n", Color.Black);
|
|
|
+ OperateResult.AppendText(">>TSN号" + code.Text + "不存在\n", Color.Red, code);
|
|
|
return;
|
|
|
}
|
|
|
- //判断重新转换是否勾选了
|
|
|
- if (ChangeResult.Checked)
|
|
|
+ }
|
|
|
+ //获取需要关联采集的信息,以及校验规则
|
|
|
+ ListA = (DataTable)dh.ExecuteSql("select * from productsnrelation where psr_prodcode='" + ma_prodcode.Text + "' order by psr_detno", "select");
|
|
|
+ //没有获取到就提示错误请维护产品对应的关联采集信息
|
|
|
+ if (ListA.Rows.Count == 0)
|
|
|
+ {
|
|
|
+ OperateResult.AppendText(">>请维护产品对应的关联采集信息\n", Color.Red, code);
|
|
|
+ OperateResult.AppendText("<<请输入TSN\n", Color.Black);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //判断重新转换是否勾选了
|
|
|
+ if (ChangeResult.Checked)
|
|
|
+ {
|
|
|
+ //勾选了
|
|
|
+ if (dh.CheckExist("MakeSerial", "ms_beforesn='" + code.Text + "' and ms_id='" + oMsid + "'"))
|
|
|
{
|
|
|
- //勾选了
|
|
|
- if (dh.CheckExist("MakeSerial", "ms_beforesn='" + code.Text + "' and ms_id='" + oMsid + "'"))
|
|
|
- {
|
|
|
- step = 1;
|
|
|
+ step = 1;
|
|
|
|
|
|
- TSN = code.Text;
|
|
|
- //显示序列号
|
|
|
- show_sncode.Text = TSN;
|
|
|
- OperateResult.AppendText("<<请输入SN\n", Color.Green,code);
|
|
|
- ChangeResult.Enabled = false;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- OperateResult.AppendText(">>不存在该已转序列号:" + code.Text + "\n", Color.Red, code);
|
|
|
- OperateResult.AppendText("<<请重新输入TSN\n", Color.Black);
|
|
|
- }
|
|
|
+ TSN = code.Text;
|
|
|
+ //显示序列号
|
|
|
+ show_sncode.Text = TSN;
|
|
|
+ OperateResult.AppendText("<<请输入SN\n", Color.Green, code);
|
|
|
+ ChangeResult.Enabled = false;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ OperateResult.AppendText(">>不存在该已转序列号:" + code.Text + "\n", Color.Red, code);
|
|
|
+ OperateResult.AppendText("<<请重新输入TSN\n", Color.Black);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //没有勾选,只能修改一次
|
|
|
+ //核对TSN是否正确
|
|
|
+ //string beforesn = dh.getFieldDataByCondition("makeserial", "ms_beforesn", "ms_sncode='" + code.Text + "'").ToString().Trim();
|
|
|
+ if (dh.CheckExist("makeserial", "ms_sncode='" + code.Text + "' and ms_id='" + oMsid + "' and ms_beforesn is null"))
|
|
|
+ {
|
|
|
+ step = 1;
|
|
|
+
|
|
|
+ //记录转换前的序列号
|
|
|
+ TSN = code.Text;
|
|
|
+ //显示之前的序列号
|
|
|
+ show_sncode.Text = TSN;
|
|
|
+ OperateResult.AppendText("<<请输入SN\n", Color.Green, code);
|
|
|
+ ChangeResult.Enabled = false;
|
|
|
}
|
|
|
else
|
|
|
+ //不为空,进行过转换。不勾选修改结果,就不能再修改
|
|
|
{
|
|
|
- //没有勾选,只能修改一次
|
|
|
- //核对TSN是否正确
|
|
|
- //string beforesn = dh.getFieldDataByCondition("makeserial", "ms_beforesn", "ms_sncode='" + code.Text + "'").ToString().Trim();
|
|
|
- if (dh.CheckExist("makeserial", "ms_sncode='" + code.Text + "' and ms_id='" + oMsid + "' and ms_beforesn is null"))
|
|
|
+ //修改转换结果时,输入两次SN直接过站
|
|
|
+ if (dh.CheckExist("MakeSerial", "ms_sncode='" + code.Text + "' and ms_id='" + oMsid + "' and ms_beforesn is not null"))
|
|
|
{
|
|
|
step = 1;
|
|
|
-
|
|
|
- //记录转换前的序列号
|
|
|
TSN = code.Text;
|
|
|
- //显示之前的序列号
|
|
|
+ //显示序列号
|
|
|
show_sncode.Text = TSN;
|
|
|
- OperateResult.AppendText("<<请输入SN\n", Color.Green,code);
|
|
|
+ OperateResult.AppendText("<<请输入SN\n", Color.Green, code);
|
|
|
ChangeResult.Enabled = false;
|
|
|
+ onlyPass = true;
|
|
|
}
|
|
|
else
|
|
|
- //不为空,进行过转换。不勾选修改结果,就不能再修改
|
|
|
{
|
|
|
- //修改转换结果时,输入两次SN直接过站
|
|
|
- if (dh.CheckExist("MakeSerial", "ms_sncode='" + code.Text + "' and ms_id='" + oMsid + "' and ms_beforesn is not null"))
|
|
|
- {
|
|
|
- step = 1;
|
|
|
- TSN = code.Text;
|
|
|
- //显示序列号
|
|
|
- show_sncode.Text = TSN;
|
|
|
- OperateResult.AppendText("<<请输入SN\n", Color.Green, code);
|
|
|
- ChangeResult.Enabled = false;
|
|
|
- onlyPass = true;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- OperateResult.AppendText(">>序列号:" + code.Text + "已转换过\n", Color.Red, code);
|
|
|
- OperateResult.AppendText("<<请重新输入TSN\n", Color.Black);
|
|
|
- }
|
|
|
+ OperateResult.AppendText(">>序列号:" + code.Text + "已转换过\n", Color.Red, code);
|
|
|
+ OperateResult.AppendText("<<请重新输入TSN\n", Color.Black);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- OperateResult.AppendText(">>" + errorMessage + "\n", Color.Red,code);
|
|
|
- }
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- OperateResult.AppendText(">>" + errorMessage + "\n", Color.Red,code);
|
|
|
+ OperateResult.AppendText(">>" + errorMessage + "\n", Color.Red, code);
|
|
|
}
|
|
|
}
|
|
|
else if (step == 1)
|
|
|
@@ -236,23 +227,23 @@ namespace UAS_MES.Make
|
|
|
{
|
|
|
//写入日志
|
|
|
LogicHandler.SetStepResult(ms_macode.Text, User.UserSourceCode, code.Text, "序列转换", "序列转换成功", User.UserCode, out errorMessage);
|
|
|
- if(errorMessage.Contains("AFTERSUCCESS"))
|
|
|
- OperateResult.AppendText(">>"+ errorMessage + "\n");
|
|
|
+ if (errorMessage.Contains("AFTERSUCCESS"))
|
|
|
+ OperateResult.AppendText(">>" + errorMessage + "\n");
|
|
|
//记录日志
|
|
|
LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, oMakecode, User.UserLineCode, User.UserSourceCode, "序列转换", "转换成功", code.Text, "");
|
|
|
- OperateResult.AppendText(">>转换成功\n", Color.Green,code);
|
|
|
+ OperateResult.AppendText(">>转换成功\n", Color.Green, code);
|
|
|
onlyPass = false;
|
|
|
ChangeResult.Enabled = true;
|
|
|
step = 0;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- OperateResult.AppendText(">>输入一致才可过站\n", Color.Red,code);
|
|
|
+ OperateResult.AppendText(">>输入一致才可过站\n", Color.Red, code);
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
//开始录入SN
|
|
|
- if ((ChangeResult.Checked && dh.CheckExist("makeserial", "ms_sncode='" + code.Text + "' and ms_id='"+oMsid+"'"))||!dh.CheckExist("makeserial", "ms_sncode='" + code.Text + "'")||(!ChangeResult.Checked&&(TSN==code.Text)))
|
|
|
+ if ((ChangeResult.Checked && dh.CheckExist("makeserial", "ms_sncode='" + code.Text + "' and ms_id='" + oMsid + "'")) || !dh.CheckExist("makeserial", "ms_sncode='" + code.Text + "'") || (!ChangeResult.Checked && (TSN == code.Text)))
|
|
|
{
|
|
|
//SN校验成功,合法,记录下SN
|
|
|
SN = code.Text;
|
|
|
@@ -274,12 +265,12 @@ namespace UAS_MES.Make
|
|
|
else
|
|
|
{
|
|
|
OperateResult.AppendText(">>序列号" + code.Text + "已存在或无该转换后序列号\n", Color.Red);
|
|
|
- OperateResult.AppendText(">>请输入SN\n", Color.Black,code);
|
|
|
+ OperateResult.AppendText(">>请输入SN\n", Color.Black, code);
|
|
|
}
|
|
|
}
|
|
|
else if (step < ListA.Rows.Count + 2)
|
|
|
{
|
|
|
- OperateResult.AppendText(">>"+code.Text+"\n", Color.Black);
|
|
|
+ OperateResult.AppendText(">>" + code.Text + "\n", Color.Black);
|
|
|
//开始进行校验规则
|
|
|
if (checkRules(step))
|
|
|
{
|
|
|
@@ -289,7 +280,7 @@ namespace UAS_MES.Make
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- OperateResult.AppendText(">>" + errorMessage + "\n", Color.Red,code);
|
|
|
+ OperateResult.AppendText(">>" + errorMessage + "\n", Color.Red, code);
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
@@ -321,7 +312,7 @@ namespace UAS_MES.Make
|
|
|
if (code.Text.Trim().Length != int.Parse(textbox.Text))
|
|
|
{
|
|
|
//序列号校验错误,长度错误
|
|
|
- OperateResult.AppendText(">>" + TSNorSN + ":" + code.Text + "校验错误,长度错误\n", Color.Red,code);
|
|
|
+ OperateResult.AppendText(">>" + TSNorSN + ":" + code.Text + "校验错误,长度错误\n", Color.Red, code);
|
|
|
OperateResult.AppendText("<<请重新输入" + TSNorSN + "\n", Color.Black);
|
|
|
return false;
|
|
|
}
|
|
|
@@ -375,7 +366,8 @@ namespace UAS_MES.Make
|
|
|
string[] preFixs = ListA.Rows[step - 2]["psr_prefix"].ToString().Split('|');
|
|
|
//只要满足其中一个前缀条件即可
|
|
|
bool isfit = false;
|
|
|
- for (int i = 0; i < preFixs.Length; i++) {
|
|
|
+ for (int i = 0; i < preFixs.Length; i++)
|
|
|
+ {
|
|
|
if (preFixs[i] == "" ? true : code.Text.StartsWith(preFixs[i]))
|
|
|
{
|
|
|
//满足其中一条即可
|
|
|
@@ -488,7 +480,7 @@ namespace UAS_MES.Make
|
|
|
{
|
|
|
//校验已经完成,此时要再次校验之前的SN和关联采集信息
|
|
|
//再次校验SN
|
|
|
- if ((ChangeResult.Checked && dh.CheckExist("makeserial", "ms_sncode='" + SN + "' and ms_id='" + oMsid + "'"))||!dh.CheckExist("makeserial", "ms_sncode='" + SN + "'")||(!ChangeResult.Checked&&(TSN==SN)))
|
|
|
+ if ((ChangeResult.Checked && dh.CheckExist("makeserial", "ms_sncode='" + SN + "' and ms_id='" + oMsid + "'")) || !dh.CheckExist("makeserial", "ms_sncode='" + SN + "'") || (!ChangeResult.Checked && (TSN == SN)))
|
|
|
{
|
|
|
bool flag = true;
|
|
|
//遍历判断已采集的信息是否已存在
|
|
|
@@ -547,9 +539,9 @@ namespace UAS_MES.Make
|
|
|
//写入日志
|
|
|
LogManager.DoLog("修改序列号:" + TSN + "为" + SN + "成功!" + "操作人:" + User.UserCode);
|
|
|
//记录日志
|
|
|
- LogicHandler.DoCommandLog(Tag.ToString(),User.UserCode,oMakecode,User.UserLineCode,User.UserSourceCode,"序列烧录转换","转换成功",TSN,"");
|
|
|
+ LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, oMakecode, User.UserLineCode, User.UserSourceCode, "序列烧录转换", "转换成功", TSN, "");
|
|
|
//完成该道工序 setFinish
|
|
|
- LogicHandler.SetStepResult( ms_macode.Text, User.UserSourceCode, SN, "序列烧录转换", "序列烧录转换成功", User.UserCode, out errorMessage);
|
|
|
+ LogicHandler.SetStepResult(ms_macode.Text, User.UserSourceCode, SN, "序列烧录转换", "序列烧录转换成功", User.UserCode, out errorMessage);
|
|
|
//写入sninfo表
|
|
|
insert2Sninfo(TSN);
|
|
|
//输出提示用户“>>序列号转换成功”,“>>关联采集成功”
|
|
|
@@ -571,7 +563,7 @@ namespace UAS_MES.Make
|
|
|
else
|
|
|
{
|
|
|
OperateResult.AppendText(">>序列号" + SN + "已存在\n", Color.Red);
|
|
|
- OperateResult.AppendText(">>请重新输入TSN\n", Color.Black,code);
|
|
|
+ OperateResult.AppendText(">>请重新输入TSN\n", Color.Black, code);
|
|
|
//清空信息
|
|
|
clearInfo();
|
|
|
}
|
|
|
@@ -580,7 +572,7 @@ namespace UAS_MES.Make
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- OperateResult.AppendText("<<请输入" + ListA.Rows[step - 1]["psr_type"] + "\n", Color.Green,code);
|
|
|
+ OperateResult.AppendText("<<请输入" + ListA.Rows[step - 1]["psr_type"] + "\n", Color.Green, code);
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
@@ -697,7 +689,7 @@ namespace UAS_MES.Make
|
|
|
{
|
|
|
/* 如果转换前没有值,则取 select productsnrule where psr_prodcode=? 产品编号,
|
|
|
* 有值则赋值到 转换前,并且自动勾选不可编辑。*/
|
|
|
- rules = (DataTable)dh.ExecuteSql("select psr_prefix,psr_length from productsnrule where psr_prodcode ='"+ dt.Rows[0]["ma_prodcode"].ToString()+"' and psr_type='after'", "select");
|
|
|
+ rules = (DataTable)dh.ExecuteSql("select psr_prefix,psr_length from productsnrule where psr_prodcode ='" + dt.Rows[0]["ma_prodcode"].ToString() + "' and psr_type='after'", "select");
|
|
|
if (rules.Rows.Count > 0)
|
|
|
{
|
|
|
//将产品序列号防呆规则查出的数据填充
|
|
|
@@ -724,7 +716,7 @@ namespace UAS_MES.Make
|
|
|
/// <returns></returns>
|
|
|
private bool checkStartAndEnd()
|
|
|
{
|
|
|
- if (system=="")
|
|
|
+ if (system == "")
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
@@ -819,7 +811,7 @@ namespace UAS_MES.Make
|
|
|
//插入新的数据
|
|
|
sql.Clear();
|
|
|
sql.Append("insert into sninfo(si_id,si_sn," + insertSninfoFields.ToString().Substring(0, insertSninfoFields.ToString().Length - 1) + ") values ");
|
|
|
- sql.Append("(sninfo_seq.nextval,'"+sn+"'," + insertSninfoValues.ToString().Substring(0, insertSninfoValues.ToString().Length - 1) + ")");
|
|
|
+ sql.Append("(sninfo_seq.nextval,'" + sn + "'," + insertSninfoValues.ToString().Substring(0, insertSninfoValues.ToString().Length - 1) + ")");
|
|
|
dh.ExecuteSql(sql.GetString(), "insert");
|
|
|
}
|
|
|
else
|