Browse Source

去除TSN判断

章政 8 years ago
parent
commit
19ddbc5fcb
1 changed files with 88 additions and 96 deletions
  1. 88 96
      UAS-MES/FunctionCode/Make/Make_SeqProgramTransform.cs

+ 88 - 96
UAS-MES/FunctionCode/Make/Make_SeqProgramTransform.cs

@@ -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