Эх сурвалжийг харах

彩盒打印增加TSN校验以及其他部分更改

Hcsy 8 жил өмнө
parent
commit
c04ac839e7

+ 21 - 4
UAS-MES/FunctionCode/Make/Make_ColorBoxLabelPrint.Designer.cs

@@ -49,6 +49,7 @@
             this.PrintNum = new UAS_MES.CustomControl.TextBoxWithIcon.NumOnlyTextBox();
             this.sncode = new UAS_MES.CustomControl.TextBoxWithIcon.EnterTextBox();
             this.OperateResult = new UAS_MES.CustomControl.RichText.RichTextAutoBottom();
+            this.CheckTSN = new System.Windows.Forms.CheckBox();
             this.SuspendLayout();
             // 
             // PrintLabel
@@ -97,11 +98,11 @@
             | System.Windows.Forms.AnchorStyles.Left)));
             this.sncode_label.AutoSize = true;
             this.sncode_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.sncode_label.Location = new System.Drawing.Point(10, 447);
+            this.sncode_label.Location = new System.Drawing.Point(262, 446);
             this.sncode_label.Name = "sncode_label";
-            this.sncode_label.Size = new System.Drawing.Size(58, 21);
+            this.sncode_label.Size = new System.Drawing.Size(70, 21);
             this.sncode_label.TabIndex = 170;
-            this.sncode_label.Text = "序列号";
+            this.sncode_label.Text = "TSN/SN";
             // 
             // label4
             // 
@@ -258,7 +259,7 @@
             | System.Windows.Forms.AnchorStyles.Left)));
             this.sncode.BackColor = System.Drawing.Color.White;
             this.sncode.ID = null;
-            this.sncode.Location = new System.Drawing.Point(99, 448);
+            this.sncode.Location = new System.Drawing.Point(351, 447);
             this.sncode.Name = "sncode";
             this.sncode.Power = null;
             this.sncode.Size = new System.Drawing.Size(196, 21);
@@ -278,11 +279,26 @@
             this.OperateResult.TabIndex = 168;
             this.OperateResult.Text = "";
             // 
+            // CheckTSN
+            // 
+            this.CheckTSN.AutoSize = true;
+            this.CheckTSN.Checked = true;
+            this.CheckTSN.CheckState = System.Windows.Forms.CheckState.Checked;
+            this.CheckTSN.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.CheckTSN.Location = new System.Drawing.Point(32, 445);
+            this.CheckTSN.Name = "CheckTSN";
+            this.CheckTSN.Size = new System.Drawing.Size(124, 25);
+            this.CheckTSN.TabIndex = 186;
+            this.CheckTSN.Text = "是否检查TSN";
+            this.CheckTSN.UseVisualStyleBackColor = true;
+            this.CheckTSN.CheckedChanged += new System.EventHandler(this.CheckTSN_CheckedChanged);
+            // 
             // Make_ColorBoxLabelPrint
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.ClientSize = new System.Drawing.Size(938, 480);
+            this.Controls.Add(this.CheckTSN);
             this.Controls.Add(this.LockMakeCode);
             this.Controls.Add(this.ma_code);
             this.Controls.Add(this.PrintLabel);
@@ -338,5 +354,6 @@
         private System.Windows.Forms.Label ms_makecode_label;
         private CustomControl.TextBoxWithIcon.MaCodeSearchTextBox ma_code;
         private CustomControl.CustomCheckBox.LockCheckBox LockMakeCode;
+        private System.Windows.Forms.CheckBox CheckTSN;
     }
 }

+ 166 - 60
UAS-MES/FunctionCode/Make/Make_ColorBoxLabelPrint.cs

@@ -35,6 +35,8 @@ namespace UAS_MES.Make
         string macode;
         //当前提示的索引
         int RemainIndex = 0;
+        //保存TSN编号
+        string ms_id = null;
 
         Thread InitPrint;
         ApplicationClass lbl;
@@ -67,12 +69,30 @@ namespace UAS_MES.Make
             ma_code.SetValueField = new string[] { "ma_code", "pr_code", "pr_detail" };
             ma_code.Condition = "ma_statuscode='STARTED'";
             ma_code.DbChange += Ma_code_DbChange;
+
+            OperateResult.AppendText(">>请输入TSN\n", Color.Green);
         }
 
         private void Ma_code_DbChange(object sender, EventArgs e)
         {
             Dbfind = ma_code.ReturnData;
             BaseUtil.SetFormValue(this.Controls, Dbfind);
+            //获取工单的其他信息
+            sql.Clear();
+            sql.Append("select ma_code,nvl(mcd_okqty,0) mcd_okqty,ma_prodcode as pr_code ,pr_detail,");
+            sql.Append("pr_spec,ma_qty - nvl(mcd_inqty, 0) mcd_remainqty from make left join makecraftdetail on ");
+            sql.Append("mcd_maid=ma_id left join product on pr_code=ma_prodcode where ma_code='" + ma_code.Text + "' and mcd_stepcode='" + User.CurrentStepCode + "'");
+            dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+            if (dt.Rows.Count > 0)
+            {
+                BaseUtil.SetFormValue(this.Controls, dt);
+            }
+            else
+            {
+                sncode.Text = "";
+                OperateResult.AppendText(">>无工单号" + ma_code.Text + "对应工单信息\n", Color.Red);
+                BaseUtil.CleanForm(this);
+            }
         }
 
         private void InPrint()
@@ -84,11 +104,55 @@ namespace UAS_MES.Make
         {
             if (e.KeyCode == Keys.Enter)
             {
+                if (CheckTSN.Checked == true && ms_id == null)
+                {
+                    if (sncode.Text == "")
+                    {
+                        OperateResult.AppendText(">>TSN不能为空\n", Color.Red);
+                        OperateResult.AppendText(">>请输入TSN\n", Color.Green);
+                        return;
+                    }
+                    sql.Clear();
+                    sql.Append("select max(ms_id) ms_id from makeserial where ms_sncode ='"+sncode.Text+"' or exists (select 1 from");
+                    sql.Append(" makesnrelation where beforesn= '"+ sncode.Text + "'and ms_makecode=makecode)");
+                    dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                    if (dt.Rows[0][0].ToString() != "")
+                    {
+                        ms_id = dt.Rows[0][0].ToString();
+                        sncode.Text = "";
+                        sncode.Focus();
+                        OperateResult.AppendText(">>请输入SN\n", Color.Green);
+                        return;
+                    }
+                    else {
+                        sncode.Text = "";
+                        OperateResult.AppendText(">>TSN错误,不存在\n", Color.Red);
+                        OperateResult.AppendText(">>请输入TSN\n", Color.Green);
+                        return;
+                    }
+                }
                 if (sncode.Text == "")
                 {
                     OperateResult.AppendText(">>序列号不能为空\n", Color.Red);
                     return;
                 }
+                if (CheckTSN.Checked == true && ms_id != null) {
+                    sql.Clear();
+                    sql.Append("select * from makeserial where ms_id='"+ms_id+"'  and  ms_sncode= '"+sncode.Text+"' ");
+                    dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                    if (dt.Rows.Count > 0)
+                    {
+                        OperateResult.AppendText(">>TSN和SN一致\n", Color.Green);
+                    }
+                    else
+                    {
+                        sncode.Text = "";
+                        OperateResult.AppendText(">>TSN和SN不一致\n", Color.Red);
+                        OperateResult.AppendText(">>请输入TSN\n", Color.Green);
+                        ms_id = null;
+                        return;
+                    }
+                }
                 string oMsID;
                 string ErrorMessage2;
                 string oMakeCode;
@@ -97,55 +161,55 @@ namespace UAS_MES.Make
                     // 获取工单归属工单下一工序是否正确
                     if (LogicHandler.CheckStepSNAndMacode(ma_code.Text, User.UserSourceCode, sncode.Text, User.UserCode, out oMakeCode, out oMsID, out ErrorMessage2))
                     {
-                        //获取工单的其他信息
-                        sql.Clear();
-                        sql.Append("select ma_code,nvl(mcd_okqty,0) mcd_okqty,ma_prodcode as pr_code ,pr_detail,");
-                        sql.Append("pr_spec,ma_qty - nvl(mcd_inqty, 0) mcd_remainqty from make left join makecraftdetail on ");
-                        sql.Append("mcd_maid=ma_id left join product on pr_code=ma_prodcode where ma_code='" + oMakeCode + "' and mcd_stepcode='" + User.CurrentStepCode + "'");
-                        dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
-                        if (dt.Rows.Count > 0)
-                        {
-                            BaseUtil.SetFormValue(this.Controls, dt);
-                            //提示用户“<<工单号:取ma_makecode”
-                            OperateResult.AppendText("<<工单号:" + ma_code.Text + "\n", Color.Green);
-                            //提示用户“<< 序列号:XXXX”
-                            OperateResult.AppendText("<<序列号:" + sncode.Text + "\n", Color.Green);
-                        }
-                        else
-                        {
-                            sncode.Text = "";
-                            OperateResult.AppendText(">>无序列号" + sncode.Text + "对应工单信息\n", Color.Red);
-                        }
-                        string ErrorMessage = "";
-                        string result = "";
-                        if (int.Parse(mcd_remainqty.Text) <= 0)
+                        if (LogicHandler.SetStepResult(oMakeCode, User.UserSourceCode, sncode.Text, "彩盒打印", "彩盒打印成功", User.UserCode, out ErrorMessage2))
                         {
-                            macode = ma_code.Text;
-                            BaseUtil.CleanForm(this);
-                            ErrorMessage = "工单" + macode + "打印结束>>>请输入SN";
-                            OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Green);
-                            sncode.Focus();
-                            return;
-                        }
-                        else
-                        {
-                            //所选标签不为空
-                            if (PrintLabel.SelectedValue != null)
+                            //获取工单的其他信息
+                            sql.Clear();
+                            sql.Append("select ma_code,nvl(mcd_okqty,0) mcd_okqty,ma_prodcode as pr_code ,pr_detail,");
+                            sql.Append("pr_spec,ma_qty - nvl(mcd_inqty, 0) mcd_remainqty from make left join makecraftdetail on ");
+                            sql.Append("mcd_maid=ma_id left join product on pr_code=ma_prodcode where ma_code='" + oMakeCode + "' and mcd_stepcode='" + User.CurrentStepCode + "'");
+                            dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                            if (dt.Rows.Count > 0)
                             {
-                                //如果打印张数为空,返回
-                                if (PrintNum.Text == "" || int.Parse(PrintNum.Text) == 0)
-                                {
-                                    OperateResult.AppendText(">>打印张数不可空或者为0\n", Color.Red);
-                                    //清空输入框的值,聚焦
-                                    sncode.Text = "";
-                                    sncode.Focus();
-                                    //提示用户“>>请输入SN”
-                                    OperateResult.AppendText(">>请输入SN\n", Color.Green);
-                                    return;
-                                }
-                                Print.CodeSoft(lbl, PrintLabel.Text.Split(':')[1], PrintLabel.SelectedValue.ToString(), Printer.Text, sncode.Text, int.Parse(PrintNum.Text), indate[PrintLabel.SelectedIndex]);                            
-                                if (LogicHandler.UpdateMakeMessage(sncode.Text, ma_code.Text, "彩盒打印", User.UserSourceCode, User.UserCode, "彩盒打印成功", out ErrorMessage))
+                                BaseUtil.SetFormValue(this.Controls, dt);
+                                //提示用户“<<工单号:取ma_makecode”
+                                OperateResult.AppendText("<<工单号:" + ma_code.Text + "\n", Color.Green);
+                                //提示用户“<< 序列号:XXXX”
+                                OperateResult.AppendText("<<序列号:" + sncode.Text + "\n", Color.Green);
+                            }
+                            else
+                            {
+                                sncode.Text = "";
+                                OperateResult.AppendText(">>无序列号" + sncode.Text + "对应工单信息\n", Color.Red);
+                            }
+                            string ErrorMessage = "";
+                            string result = "";
+                            if (int.Parse(mcd_remainqty.Text) <= 0)
+                            {
+                                macode = ma_code.Text;
+                                BaseUtil.CleanForm(this);
+                                ErrorMessage = "工单" + macode + "打印结束>>>请输入SN";
+                                OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Green);
+                                sncode.Focus();
+                                return;
+                            }
+                            else
+                            {
+                                //所选标签不为空
+                                if (PrintLabel.SelectedValue != null)
                                 {
+                                    //如果打印张数为空,返回
+                                    if (PrintNum.Text == "" || int.Parse(PrintNum.Text) == 0)
+                                    {
+                                        OperateResult.AppendText(">>打印张数不可空或者为0\n", Color.Red);
+                                        //清空输入框的值,聚焦
+                                        sncode.Text = "";
+                                        sncode.Focus();
+                                        //提示用户“>>请输入SN”
+                                        OperateResult.AppendText(">>请输入SN\n", Color.Green);
+                                        return;
+                                    }
+                                    Print.CodeSoft(lbl, PrintLabel.Text.Split(':')[1], PrintLabel.SelectedValue.ToString(), Printer.Text, sncode.Text, int.Parse(PrintNum.Text), indate[PrintLabel.SelectedIndex]);
                                     //提示用户打印成功
                                     OperateResult.AppendText(">>序列号:" + sncode.Text + "打印成功\n", Color.Green);
                                     //刷新打印数量和剩余数量
@@ -153,34 +217,58 @@ namespace UAS_MES.Make
                                     BaseUtil.SetFormValue(Controls, dt);
                                     mcd_okqty.Text = int.Parse(mcd_okqty.Text) + 1 + "";
                                     sncode.Text = "";
-                                    sncode.Focus();
+                                    ms_id = null;
+                                    sncode.Focus();                                  
                                 }
                                 else
                                 {
-                                    sncode.Text = "";
-                                    sncode.Focus();
-                                    OperateResult.AppendText(">>更新工序失败" + ErrorMessage + "\n", Color.Red);
+                                    OperateResult.AppendText(">>产品编号:" + pr_code.Text + "未维护机身标签\n", Color.Red);
+                                    OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red);
+                                    return;
                                 }
+                                if (CheckTSN.Checked == true)
+                                {
+                                    OperateResult.AppendText(">>请输入TSN\n", Color.Green);
+                                    ms_id = null;
+                                }else
+                                OperateResult.AppendText(">>请输入SN\n", Color.Green);
                             }
-                            else
-                            {
-                                OperateResult.AppendText(">>产品编号:" + pr_code.Text + "未维护机身标签\n", Color.Red);
-                                OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red);
-                                return;
+                        }
+                        else
+                        {
+                            sncode.Text = "";
+                            OperateResult.AppendText(ErrorMessage2 + "\n", Color.Red);
+                            if (CheckTSN.Checked == true) {
+                                OperateResult.AppendText(">>请输入TSN\n", Color.Green);
+                                ms_id = null;
                             }
-                            OperateResult.AppendText(">>请输入SN\n", Color.Green);
+                            else
+                                OperateResult.AppendText(">>请输入SN\n", Color.Green);
                         }
                     }
-                    else
-                    {
+                    else {
                         sncode.Text = "";
                         OperateResult.AppendText(ErrorMessage2 + "\n", Color.Red);
+                        if (CheckTSN.Checked == true)
+                        {
+                            OperateResult.AppendText(">>请输入TSN\n", Color.Green);
+                            ms_id = null;
+                        }
+                        else
+                            OperateResult.AppendText(">>请输入SN\n", Color.Green);
                     }
                 }
                 else
                 {
                     sncode.Text = "";
                     OperateResult.AppendText(ErrorMessage2 + "\n", Color.Red);
+                    if (CheckTSN.Checked == true)
+                    {
+                        OperateResult.AppendText(">>请输入TSN\n", Color.Green);
+                        ms_id = null;
+                    }
+                    else
+                        OperateResult.AppendText(">>请输入SN\n", Color.Green);
                 }
             }
         }
@@ -232,10 +320,28 @@ namespace UAS_MES.Make
                 }
                 else
                 {
-                    sncode.Text = "";
-                    OperateResult.AppendText(">>无工单号" + ma_code.Text + "对应工单信息\n", Color.Red);
+                    sncode.Text = "";            
                 }
             }
         }
+
+        private void CheckTSN_CheckedChanged(object sender, EventArgs e)
+        {
+            if (CheckTSN.Checked == true)
+            {
+                ms_id = null;
+                OperateResult.AppendText(">>切换至检查TSN\n", Color.Green);
+                OperateResult.AppendText(">>请输入TSN\n", Color.Green);
+                sncode.Text = "";
+                sncode.Focus();
+            }
+            else {
+                ms_id = null;
+                OperateResult.AppendText(">>切换至不检查TSN\n", Color.Green);
+                OperateResult.AppendText(">>请输入SN\n", Color.Green);
+                sncode.Text = "";
+                sncode.Focus();
+            }
+        }
     }
 }