|
|
@@ -83,102 +83,151 @@ namespace UAS_MES.Make
|
|
|
//bsncode为空,就说明是输入转换之前的序列号
|
|
|
if (bsncode == "")
|
|
|
{
|
|
|
- //用户填写了工单号,那么序列号必须要是该工单的,否则提示错误
|
|
|
- if (LogicHandler.CheckStepSNAndMacode("", User.UserSourceCode, sncode.Text, User.UserCode, out oMakeCode, out oMsId, out errorMessage))
|
|
|
+ if (!ChangeResult.Checked)
|
|
|
{
|
|
|
- //如果用户没有选择工单号
|
|
|
- if (ma_code.Text == "" || ma_code.Text != oMakeCode)
|
|
|
+ //用户填写了工单号,那么序列号必须要是该工单的,否则提示错误
|
|
|
+ if (!LogicHandler.CheckStepSNAndMacode("", User.UserSourceCode, sncode.Text, User.UserCode, out oMakeCode, out oMsId, out errorMessage))
|
|
|
+ {
|
|
|
+ OperateResult.AppendText(">>" + errorMessage + "\n", Color.Red, sncode);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else//勾选
|
|
|
+ {
|
|
|
+ oMsId = dh.getFieldDataByCondition("makeserial", "max(ms_id)", "ms_sncode in (select '" + sncode.Text + "' from dual union select sn from makesnrelation where beforesn='" + sncode.Text + "' and sn<>' ' union select beforesn from makesnrelation where sn='" + sncode.Text + "' and beforesn<>' ')").ToString();
|
|
|
+ if (oMsId == "")
|
|
|
+ {
|
|
|
+ OperateResult.AppendText(">>TSN号错误\n", Color.Red, sncode);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //根据ms_id查询
|
|
|
+ sql.Clear();
|
|
|
+ sql.Append("select 1 from makeserial where ms_id='" + oMsId + "' and ms_beforesn='" + sncode.Text + "' and ms_nextmacode is null and ms_outboxcode is null");
|
|
|
+ dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
|
|
|
+ //如果行数大于0则允许转号
|
|
|
+ if (dt.Rows.Count > 0)
|
|
|
{
|
|
|
- //按照out出的工单号查出工单相关信息,并赋值到相关控件
|
|
|
sql.Clear();
|
|
|
- sql.Append("select ma_code,ma_softversion,ma_prodcode,pr_detail,ma_qty,ma_qty-mcd_inqty as remain_qty ");
|
|
|
- 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);
|
|
|
+ sql.Append("select 1 from makeserial where ms_id='" + oMsId + "' and ms_stepcode='" + User.CurrentStepCode + "'");
|
|
|
+ dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
|
|
|
if (dt.Rows.Count > 0)
|
|
|
{
|
|
|
- //记录数量
|
|
|
- ma_qty = int.Parse(dt.Rows[0]["ma_qty"].ToString());
|
|
|
- BaseUtil.SetFormValue(this.Controls, dt);
|
|
|
- //ms_makecode_lock.Checked = true;
|
|
|
+ bsncode = sncode.Text;
|
|
|
+ //显示序列号
|
|
|
+ show_sncode.Text = bsncode;
|
|
|
+ ChangeResult.Enabled = false;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ OperateResult.AppendText(">>当前工序不允许重新转号\n", Color.Red, sncode);
|
|
|
+ return;
|
|
|
}
|
|
|
}
|
|
|
- //获取需要关联采集的信息,以及校验规则
|
|
|
- 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, sncode);
|
|
|
- OperateResult.AppendText("<<请输入TSN\n", Color.Black);
|
|
|
+ OperateResult.AppendText(">>TSN号" + sncode.Text + "当前状态不允许重新转号\n", Color.Red, sncode);
|
|
|
return;
|
|
|
}
|
|
|
- switch (ChangeResult.CheckState)
|
|
|
+ }
|
|
|
+ //如果用户没有选择工单号
|
|
|
+ if (ma_code.Text == "" || ma_code.Text != oMakeCode||ChangeResult.Checked)
|
|
|
+ {
|
|
|
+ //按照out出的工单号查出工单相关信息,并赋值到相关控件
|
|
|
+ sql.Clear();
|
|
|
+ sql.Append("select ma_code,ma_softversion,ma_prodcode,pr_detail,ma_qty,ma_qty-mcd_inqty as remain_qty ");
|
|
|
+ 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)
|
|
|
{
|
|
|
- //勾选是修改已转换的序列,矫正修改错了的序列号
|
|
|
- case CheckState.Checked:
|
|
|
- if (dh.CheckExist("MakeSerial", "ms_beforesn='" + sncode.Text + "' and ms_id='" + oMsId + "'"))
|
|
|
- {
|
|
|
- bsncode = sncode.Text;
|
|
|
- //显示序列号
|
|
|
- show_sncode.Text = bsncode;
|
|
|
- OperateResult.AppendText("<<请输入SN号\n", Color.Green, sncode);
|
|
|
- ChangeResult.Enabled = false;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- OperateResult.AppendText(">>不存在该已转序列号:" + sncode.Text + "\n", Color.Red, sncode);
|
|
|
- OperateResult.AppendText("<<请重新输入TSN号\n", Color.Black);
|
|
|
- }
|
|
|
- break;
|
|
|
- case CheckState.Unchecked:
|
|
|
+ //记录数量
|
|
|
+ ma_qty = int.Parse(dt.Rows[0]["ma_qty"].ToString());
|
|
|
+ BaseUtil.SetFormValue(this.Controls, dt);
|
|
|
+ //ms_makecode_lock.Checked = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //获取需要关联采集的信息,以及校验规则
|
|
|
+ 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, sncode);
|
|
|
+ OperateResult.AppendText("<<请输入TSN\n", Color.Black);
|
|
|
+ if (ChangeResult.Checked)
|
|
|
+ {
|
|
|
+ bsncode = "";
|
|
|
+ ChangeResult.Enabled = true;
|
|
|
+ flag = false;
|
|
|
+ show_sncode.Text = "";
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (ChangeResult.Checked)
|
|
|
+ {
|
|
|
+ OperateResult.AppendText("<<请输入SN号\n", Color.Green, sncode);
|
|
|
+ }
|
|
|
+ switch (ChangeResult.CheckState)
|
|
|
+ {
|
|
|
+ //勾选是修改已转换的序列,矫正修改错了的序列号
|
|
|
+ case CheckState.Checked:
|
|
|
+ //if (dh.CheckExist("MakeSerial", "ms_beforesn='" + sncode.Text + "' and ms_id='" + oMsId + "'"))
|
|
|
+ //{
|
|
|
+ // bsncode = sncode.Text;
|
|
|
+ // //显示序列号
|
|
|
+ // show_sncode.Text = bsncode;
|
|
|
+ // OperateResult.AppendText("<<请输入SN号\n", Color.Green, sncode);
|
|
|
+ // ChangeResult.Enabled = false;
|
|
|
+ //}
|
|
|
+ //else
|
|
|
+ //{
|
|
|
+ // OperateResult.AppendText(">>不存在该已转序列号:" + sncode.Text + "\n", Color.Red, sncode);
|
|
|
+ // OperateResult.AppendText("<<请重新输入TSN号\n", Color.Black);
|
|
|
+ //}
|
|
|
+ break;
|
|
|
+ case CheckState.Unchecked:
|
|
|
|
|
|
- //string beforesn = dh.getFieldDataByCondition("makeserial", "ms_beforesn", "ms_sncode='" + sncode.Text + "'").ToString().Trim();
|
|
|
- //为空,就说明,没有进行过序列号的转换
|
|
|
- if (dh.CheckExist("makeserial", "ms_sncode='" + sncode.Text + "' and ms_id='" + oMsId + "' and ms_beforesn is null"))
|
|
|
+ //string beforesn = dh.getFieldDataByCondition("makeserial", "ms_beforesn", "ms_sncode='" + sncode.Text + "'").ToString().Trim();
|
|
|
+ //为空,就说明,没有进行过序列号的转换
|
|
|
+ if (dh.CheckExist("makeserial", "ms_sncode='" + sncode.Text + "' and ms_id='" + oMsId + "' and ms_beforesn is null"))
|
|
|
+ {
|
|
|
+ //记录转换前的序列号
|
|
|
+ bsncode = sncode.Text;
|
|
|
+ //显示序列号
|
|
|
+ show_sncode.Text = bsncode;
|
|
|
+ OperateResult.AppendText("<<请输入SN号\n", Color.Green, sncode);
|
|
|
+ ChangeResult.Enabled = false;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ //不为空,进行过转换。不勾选修改结果,就不能再修改
|
|
|
+ {
|
|
|
+ //修改转换结果时,输入两次SN直接过站
|
|
|
+ if (dh.CheckExist("MakeSerial", "ms_sncode='" + sncode.Text + "' and ms_id='" + oMsId + "' and ms_beforesn is not null"))
|
|
|
{
|
|
|
- //记录转换前的序列号
|
|
|
bsncode = sncode.Text;
|
|
|
//显示序列号
|
|
|
show_sncode.Text = bsncode;
|
|
|
OperateResult.AppendText("<<请输入SN号\n", Color.Green, sncode);
|
|
|
ChangeResult.Enabled = false;
|
|
|
+ flag = true;
|
|
|
}
|
|
|
else
|
|
|
- //不为空,进行过转换。不勾选修改结果,就不能再修改
|
|
|
{
|
|
|
- //修改转换结果时,输入两次SN直接过站
|
|
|
- if (dh.CheckExist("MakeSerial", "ms_sncode='" + sncode.Text + "' and ms_id='" + oMsId + "' and ms_beforesn is not null"))
|
|
|
- {
|
|
|
- bsncode = sncode.Text;
|
|
|
- //显示序列号
|
|
|
- show_sncode.Text = bsncode;
|
|
|
- OperateResult.AppendText("<<请输入SN号\n", Color.Green, sncode);
|
|
|
- ChangeResult.Enabled = false;
|
|
|
- flag = true;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- OperateResult.AppendText(">>序列号:" + sncode.Text + "已转换过\n", Color.Red, sncode);
|
|
|
- OperateResult.AppendText("<<请重新输入TSN号\n", Color.Black);
|
|
|
- }
|
|
|
+ OperateResult.AppendText(">>序列号:" + sncode.Text + "已转换过\n", Color.Red, sncode);
|
|
|
+ OperateResult.AppendText("<<请重新输入TSN号\n", Color.Black);
|
|
|
}
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- OperateResult.AppendText(">>" + errorMessage + "\n", Color.Red, sncode);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
//bsncode不为空,说明输入的是转换后的序列号
|
|
|
else
|
|
|
{
|
|
|
//判断工单是否导入了序列号清单
|
|
|
- if (dh.CheckExist("makesnlist", "msl_makecode='" + oMakeCode + "' and msl_type='after'"))
|
|
|
+ if (dh.CheckExist("makesnlist", "msl_makecode='" + ma_code.Text + "' and msl_type='after'"))
|
|
|
{
|
|
|
- if (!dh.CheckExist("makesnlist", "msl_makecode='" + oMakeCode + "' and msl_sncode='" + sncode.Text + "' and msl_type='after'"))
|
|
|
+ if (!dh.CheckExist("makesnlist", "msl_makecode='" + ma_code.Text + "' and msl_sncode='" + sncode.Text + "' and msl_type='after'"))
|
|
|
{
|
|
|
//有序列号清单,输入的序列号却不在范围内
|
|
|
OperateResult.AppendText(">>SN号" + sncode.Text + "错误,不在工单设定的转换后序列号清单中\n", Color.Red, sncode);
|
|
|
@@ -207,7 +256,7 @@ namespace UAS_MES.Make
|
|
|
if (errorMessage.Contains("AFTERSUCCESS"))
|
|
|
OperateResult.AppendText(">>" + errorMessage + "\n");
|
|
|
//记录日志
|
|
|
- LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, oMakeCode, User.UserLineCode, User.UserSourceCode, "序列转换", "转换成功", sncode.Text, "");
|
|
|
+ LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ma_code.Text, User.UserLineCode, User.UserSourceCode, "序列转换", "转换成功", sncode.Text, "");
|
|
|
OperateResult.AppendText(">>转换成功\n", Color.Green, sncode);
|
|
|
flag = false;
|
|
|
ChangeResult.Enabled = true;
|
|
|
@@ -234,7 +283,7 @@ namespace UAS_MES.Make
|
|
|
//记录本次修改,存入makesnrelation表中
|
|
|
updateSql = "update makeserial set ms_sncode='" + sncode.Text + "' where ms_beforesn='" + bsncode + "' and ms_id='" + oMsId + "'";
|
|
|
//删除最近一条转换记录
|
|
|
- dh.ExecuteSql("delete from makesnrelation where BEFORESN='" + bsncode + "' and makecode='" + oMakeCode + "'", "delete");
|
|
|
+ dh.ExecuteSql("delete from makesnrelation where BEFORESN='" + bsncode + "' and makecode='" + ma_code.Text + "'", "delete");
|
|
|
}
|
|
|
//未勾选修改转换结果
|
|
|
else
|
|
|
@@ -248,7 +297,7 @@ namespace UAS_MES.Make
|
|
|
dh.ExecuteSQLTran(updateSql, insertSql);
|
|
|
OperateResult.AppendText(">>转换成功\n", Color.Green);
|
|
|
//记录日志
|
|
|
- LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, oMakeCode, User.UserLineCode, User.UserSourceCode, "序列转换", "转换成功", sncode.Text, "");
|
|
|
+ LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ma_code.Text, User.UserLineCode, User.UserSourceCode, "序列转换", "转换成功", sncode.Text, "");
|
|
|
LogManager.DoLog("修改序列号:" + bsncode + "为" + sncode.Text + "成功!" + "操作人:" + User.UserCode);
|
|
|
//写入日志
|
|
|
if (LogicHandler.SetStepResult(ma_code.Text, User.UserSourceCode, sncode.Text, "序列转换", "序列转换成功", User.UserCode, out errorMessage))
|
|
|
@@ -356,12 +405,12 @@ namespace UAS_MES.Make
|
|
|
afterTransSNPre_checkBox.Enabled = true;
|
|
|
afterTransSNLength_checkBox.Enabled = true;
|
|
|
//判断工单是否导入了序列号清单
|
|
|
- if (dh.CheckExist("makesnlist", "msl_makecode='" + oMakeCode + "' and msl_type='after'"))
|
|
|
+ if (dh.CheckExist("makesnlist", "msl_makecode='" + ma_code.Text + "' and msl_type='after'"))
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
//查询表工单序列号防呆规则表
|
|
|
- rules = (DataTable)dh.ExecuteSql("select msr_startno,msr_endno,msr_system,msr_type, msr_prefix ,msr_length from makesnrule where msr_makecode='" + oMakeCode + "'", "select");
|
|
|
+ rules = (DataTable)dh.ExecuteSql("select msr_startno,msr_endno,msr_system,msr_type, msr_prefix ,msr_length from makesnrule where msr_makecode='" + ma_code.Text + "'", "select");
|
|
|
if (rules.Rows.Count > 0)
|
|
|
{
|
|
|
foreach (DataRow dr in rules.Rows)
|