Browse Source

召回工单上料限制

callm 2 days ago
parent
commit
4239a3a660

+ 9 - 2
UAS_MES_YDCY/FunctionCode/Make/Make_FeedingCollection.cs

@@ -31,6 +31,7 @@ namespace UAS_MES_NEW.Make
         //工艺路线编号
         //工艺路线编号
         //Bom版本
         //Bom版本
         string mabomversion;
         string mabomversion;
+        string ms_edistatus;
         string ErrorMessage = "";
         string ErrorMessage = "";
 
 
         List<string> TSN = new List<string>();
         List<string> TSN = new List<string>();
@@ -167,7 +168,7 @@ namespace UAS_MES_NEW.Make
                             string sp_subnum = dt1.Rows[RemainIndex]["sp_subnum"].ToString();
                             string sp_subnum = dt1.Rows[RemainIndex]["sp_subnum"].ToString();
                             string sp_subnumlength = dt1.Rows[RemainIndex]["sp_subnumlength"].ToString();
                             string sp_subnumlength = dt1.Rows[RemainIndex]["sp_subnumlength"].ToString();
                             string resultstr = "";
                             string resultstr = "";
-                            if (LogicHandler.CheckSNBeforeLoad(ma_code.Text, code.Text, sp_fsoncode, sp_soncode, sp_barcoderule, sp_prefix, length, sp_ifrepeat, sp_checksalecode, sp_subnum, sp_subnumlength, out resultstr, out ErrorMessage))
+                            if (LogicHandler.CheckSNBeforeLoad(ma_code.Text, sn_code.Text, code.Text, sp_fsoncode, sp_soncode, sp_barcoderule, sp_prefix, length, sp_ifrepeat, sp_checksalecode, sp_subnum, sp_subnumlength, "0", out resultstr, out ErrorMessage))
                             {
                             {
                                 //判断采集的条码和本次采集的也不能重复
                                 //判断采集的条码和本次采集的也不能重复
                                 if (CollectData.Contains(code.Text) && sp_ifrepeat != "-1")
                                 if (CollectData.Contains(code.Text) && sp_ifrepeat != "-1")
@@ -303,7 +304,7 @@ namespace UAS_MES_NEW.Make
                 //将录入框的值给序列号
                 //将录入框的值给序列号
                 sn_code.Text = code.Text;
                 sn_code.Text = code.Text;
                 sql.Clear();
                 sql.Clear();
-                sql.Append("select ma_prodcode,ms_bomversion,ma_ecncode,ms_sncode,ma_softversion,ms_firstsn,ma_bomversion,ma_qty,ma_code,pr_spec,ms_status,ms_id,ms_craftcode,ms_nextstepcode");
+                sql.Append("select ma_prodcode,nvl(ms_edistatus,0)ms_edistatus,ms_bomversion,ma_ecncode,ms_sncode,ma_softversion,ms_firstsn,ma_bomversion,ma_qty,ma_code,pr_spec,ms_status,ms_id,ms_craftcode,ms_nextstepcode");
                 sql.Append(",ms_prodcode,ms_makecode,ms_code,ms_stepname  from makeserial left join make on ma_code=ms_makecode ");
                 sql.Append(",ms_prodcode,ms_makecode,ms_code,ms_stepname  from makeserial left join make on ma_code=ms_makecode ");
                 sql.Append("left join product on ms_prodcode=pr_code where ms_sncode='" + code.Text + "' order by ms_id desc");
                 sql.Append("left join product on ms_prodcode=pr_code where ms_sncode='" + code.Text + "' order by ms_id desc");
                 dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
                 dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
@@ -315,6 +316,7 @@ namespace UAS_MES_NEW.Make
                     make_prodcode = dt.Rows[0]["ms_prodcode"].ToString();
                     make_prodcode = dt.Rows[0]["ms_prodcode"].ToString();
                     nextstepcode = dt.Rows[0]["ms_nextstepcode"].ToString();
                     nextstepcode = dt.Rows[0]["ms_nextstepcode"].ToString();
                     ms_status = dt.Rows[0]["ms_status"].ToString();
                     ms_status = dt.Rows[0]["ms_status"].ToString();
+                    ms_edistatus = dt.Rows[0]["ms_edistatus"].ToString();
                     ms_firstsn = dt.Rows[0]["ms_sncode"].ToString();
                     ms_firstsn = dt.Rows[0]["ms_sncode"].ToString();
                     BaseUtil.SetFormValue(this.Controls, dt);
                     BaseUtil.SetFormValue(this.Controls, dt);
                     string ifforsn = dh.getFieldDataByCondition("make left join stepbom on ma_prodcode=sb_prodcode left join stepproduct on sb_id=sp_sbid", "nvl(sp_ifforsn,0) sp_ifforsn", "ma_code='" + ma_code.Text + "' and sp_stepcode='" + User.CurrentStepCode + "'  and sp_craftcode='" + ms_craftcode.Text + "' and sb_bomversion='" + ma_bomversion.Text + "' order by sp_detno").ToString();
                     string ifforsn = dh.getFieldDataByCondition("make left join stepbom on ma_prodcode=sb_prodcode left join stepproduct on sb_id=sp_sbid", "nvl(sp_ifforsn,0) sp_ifforsn", "ma_code='" + ma_code.Text + "' and sp_stepcode='" + User.CurrentStepCode + "'  and sp_craftcode='" + ms_craftcode.Text + "' and sb_bomversion='" + ma_bomversion.Text + "' order by sp_detno").ToString();
@@ -323,6 +325,11 @@ namespace UAS_MES_NEW.Make
                     else
                     else
                         iflastsn.Checked = false;
                         iflastsn.Checked = false;
                     LockMakeCode.Checked = true;
                     LockMakeCode.Checked = true;
+                    if (ms_edistatus == "-1")
+                    {
+                        OperateResult.AppendText(">>序列号" + code.Text + "已被召回,当前界面不允许采集\n", Color.Red);
+                        return;
+                    }
                     //勾选了前一工单
                     //勾选了前一工单
                     if (iflastsn.Checked)
                     if (iflastsn.Checked)
                     {
                     {

+ 881 - 0
UAS_MES_YDCY/FunctionCode/Make/Make_FeedingCollectionReCall.Designer.cs

@@ -0,0 +1,881 @@
+namespace UAS_MES_NEW.Make
+{
+    partial class Make_FeedingCollectionReCall
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Make_FeedingCollection));
+            this.mcd_restqty_label = new System.Windows.Forms.Label();
+            this.mcd_inqty_label = new System.Windows.Forms.Label();
+            this.ma_qty_label = new System.Windows.Forms.Label();
+            this.ms_makecode_label = new System.Windows.Forms.Label();
+            this.pr_detail_label = new System.Windows.Forms.Label();
+            this.ma_prodcode_label = new System.Windows.Forms.Label();
+            this.Loading = new System.Windows.Forms.RadioButton();
+            this.UnLoading = new System.Windows.Forms.RadioButton();
+            this.sn_code_label = new System.Windows.Forms.Label();
+            this.code_label = new System.Windows.Forms.Label();
+            this.iflastsn = new System.Windows.Forms.CheckBox();
+            this.ma_softversion_label = new System.Windows.Forms.CheckBox();
+            this.ma_ecncode_label = new System.Windows.Forms.CheckBox();
+            this.ClearSn_code = new System.Windows.Forms.PictureBox();
+            this.ms_craftcode = new System.Windows.Forms.Label();
+            this.ma_bomversion = new System.Windows.Forms.Label();
+            this.ma_bomversion_label = new System.Windows.Forms.Label();
+            this.ma_craftcode = new System.Windows.Forms.Label();
+            this.sir_remark_label = new System.Windows.Forms.CheckBox();
+            this.NoteForChange = new System.Windows.Forms.CheckBox();
+            this.LabelDataGridView = new System.Windows.Forms.DataGridView();
+            this.序号 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.cm_makecode = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.pr_detail_ = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.cm_soncode = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.cm_barcode = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.BarCode = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.dataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.dataGridViewTextBoxColumn6 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.sir_remark = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.EnterTextBox();
+            this.StepCount = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.SourceStepCount();
+            this.ma_code = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.MaCodeSearchTextBox();
+            this.LockMakeCode = new UAS_MES_NEW.CustomControl.CustomCheckBox.LockCheckBox();
+            this.ma_prodcode = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.pr_detail = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.mcd_remainqty = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.mcd_inqty = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.ma_qty = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.OperateResult = new UAS_MES_NEW.CustomControl.RichText.RichTextAutoBottom();
+            this.Clean = new UAS_MES_NEW.CustomControl.ButtonUtil.NormalButton();
+            this.ma_softversion = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.EnterTextBox();
+            this.ma_ecncode = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.EnterTextBox();
+            this.Confirm = new UAS_MES_NEW.CustomControl.ButtonUtil.NormalButton();
+            this.code = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.SnCollectionBox();
+            this.sn_code = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.EnterTextBox();
+            this.serialPortCombox1 = new UAS_MES_NEW.CustomControl.ComBoxWithFocus.SerialPortCombox();
+            this.label1 = new System.Windows.Forms.Label();
+            this.OpenPort = new UAS_MES_NEW.CustomControl.ButtonUtil.NormalButton();
+            this.ms_bomversion = new System.Windows.Forms.Label();
+            ((System.ComponentModel.ISupportInitialize)(this.ClearSn_code)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.LabelDataGridView)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // mcd_restqty_label
+            // 
+            this.mcd_restqty_label.AutoSize = true;
+            this.mcd_restqty_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.mcd_restqty_label.Location = new System.Drawing.Point(1170, 122);
+            this.mcd_restqty_label.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.mcd_restqty_label.Name = "mcd_restqty_label";
+            this.mcd_restqty_label.Size = new System.Drawing.Size(146, 41);
+            this.mcd_restqty_label.TabIndex = 59;
+            this.mcd_restqty_label.Text = "待采集数";
+            // 
+            // mcd_inqty_label
+            // 
+            this.mcd_inqty_label.AutoSize = true;
+            this.mcd_inqty_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.mcd_inqty_label.Location = new System.Drawing.Point(622, 122);
+            this.mcd_inqty_label.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.mcd_inqty_label.Name = "mcd_inqty_label";
+            this.mcd_inqty_label.Size = new System.Drawing.Size(146, 41);
+            this.mcd_inqty_label.TabIndex = 56;
+            this.mcd_inqty_label.Text = "已采集数";
+            // 
+            // ma_qty_label
+            // 
+            this.ma_qty_label.AutoSize = true;
+            this.ma_qty_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ma_qty_label.Location = new System.Drawing.Point(18, 122);
+            this.ma_qty_label.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.ma_qty_label.Name = "ma_qty_label";
+            this.ma_qty_label.Size = new System.Drawing.Size(146, 41);
+            this.ma_qty_label.TabIndex = 53;
+            this.ma_qty_label.Text = "工单数量";
+            // 
+            // ms_makecode_label
+            // 
+            this.ms_makecode_label.AutoSize = true;
+            this.ms_makecode_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ms_makecode_label.Location = new System.Drawing.Point(18, 24);
+            this.ms_makecode_label.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.ms_makecode_label.Name = "ms_makecode_label";
+            this.ms_makecode_label.Size = new System.Drawing.Size(146, 41);
+            this.ms_makecode_label.TabIndex = 49;
+            this.ms_makecode_label.Text = "归属工单";
+            // 
+            // pr_detail_label
+            // 
+            this.pr_detail_label.AutoSize = true;
+            this.pr_detail_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.pr_detail_label.Location = new System.Drawing.Point(1170, 24);
+            this.pr_detail_label.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.pr_detail_label.Name = "pr_detail_label";
+            this.pr_detail_label.Size = new System.Drawing.Size(146, 41);
+            this.pr_detail_label.TabIndex = 50;
+            this.pr_detail_label.Text = "产品规格";
+            // 
+            // ma_prodcode_label
+            // 
+            this.ma_prodcode_label.AutoSize = true;
+            this.ma_prodcode_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ma_prodcode_label.Location = new System.Drawing.Point(622, 24);
+            this.ma_prodcode_label.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.ma_prodcode_label.Name = "ma_prodcode_label";
+            this.ma_prodcode_label.Size = new System.Drawing.Size(146, 41);
+            this.ma_prodcode_label.TabIndex = 51;
+            this.ma_prodcode_label.Text = "产品代码";
+            // 
+            // Loading
+            // 
+            this.Loading.AutoSize = true;
+            this.Loading.Checked = true;
+            this.Loading.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.Loading.ForeColor = System.Drawing.Color.Blue;
+            this.Loading.Location = new System.Drawing.Point(36, 720);
+            this.Loading.Margin = new System.Windows.Forms.Padding(6);
+            this.Loading.Name = "Loading";
+            this.Loading.Size = new System.Drawing.Size(113, 45);
+            this.Loading.TabIndex = 62;
+            this.Loading.TabStop = true;
+            this.Loading.Text = "上料";
+            this.Loading.UseVisualStyleBackColor = true;
+            // 
+            // UnLoading
+            // 
+            this.UnLoading.AutoSize = true;
+            this.UnLoading.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.UnLoading.ForeColor = System.Drawing.Color.Blue;
+            this.UnLoading.Location = new System.Drawing.Point(196, 720);
+            this.UnLoading.Margin = new System.Windows.Forms.Padding(6);
+            this.UnLoading.Name = "UnLoading";
+            this.UnLoading.Size = new System.Drawing.Size(113, 45);
+            this.UnLoading.TabIndex = 63;
+            this.UnLoading.Text = "下料";
+            this.UnLoading.UseVisualStyleBackColor = true;
+            // 
+            // sn_code_label
+            // 
+            this.sn_code_label.AutoSize = true;
+            this.sn_code_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.sn_code_label.Location = new System.Drawing.Point(28, 796);
+            this.sn_code_label.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.sn_code_label.Name = "sn_code_label";
+            this.sn_code_label.Size = new System.Drawing.Size(114, 41);
+            this.sn_code_label.TabIndex = 64;
+            this.sn_code_label.Text = "序列号";
+            // 
+            // code_label
+            // 
+            this.code_label.AutoSize = true;
+            this.code_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.code_label.Location = new System.Drawing.Point(28, 884);
+            this.code_label.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.code_label.Name = "code_label";
+            this.code_label.Size = new System.Drawing.Size(114, 41);
+            this.code_label.TabIndex = 66;
+            this.code_label.Text = "录入框";
+            // 
+            // iflastsn
+            // 
+            this.iflastsn.AutoSize = true;
+            this.iflastsn.Enabled = false;
+            this.iflastsn.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.iflastsn.Location = new System.Drawing.Point(578, 796);
+            this.iflastsn.Margin = new System.Windows.Forms.Padding(6);
+            this.iflastsn.Name = "iflastsn";
+            this.iflastsn.Size = new System.Drawing.Size(222, 45);
+            this.iflastsn.TabIndex = 72;
+            this.iflastsn.Text = "前一工单SN";
+            this.iflastsn.UseVisualStyleBackColor = true;
+            // 
+            // ma_softversion_label
+            // 
+            this.ma_softversion_label.AutoSize = true;
+            this.ma_softversion_label.Checked = true;
+            this.ma_softversion_label.CheckState = System.Windows.Forms.CheckState.Checked;
+            this.ma_softversion_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ma_softversion_label.Location = new System.Drawing.Point(1360, 357);
+            this.ma_softversion_label.Margin = new System.Windows.Forms.Padding(6);
+            this.ma_softversion_label.Name = "ma_softversion_label";
+            this.ma_softversion_label.Size = new System.Drawing.Size(178, 45);
+            this.ma_softversion_label.TabIndex = 74;
+            this.ma_softversion_label.Text = "软件版本";
+            this.ma_softversion_label.UseVisualStyleBackColor = true;
+            // 
+            // ma_ecncode_label
+            // 
+            this.ma_ecncode_label.AutoSize = true;
+            this.ma_ecncode_label.Checked = true;
+            this.ma_ecncode_label.CheckState = System.Windows.Forms.CheckState.Checked;
+            this.ma_ecncode_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ma_ecncode_label.Location = new System.Drawing.Point(1360, 420);
+            this.ma_ecncode_label.Margin = new System.Windows.Forms.Padding(6);
+            this.ma_ecncode_label.Name = "ma_ecncode_label";
+            this.ma_ecncode_label.Size = new System.Drawing.Size(147, 45);
+            this.ma_ecncode_label.TabIndex = 75;
+            this.ma_ecncode_label.Text = "ECN号";
+            this.ma_ecncode_label.UseVisualStyleBackColor = true;
+            // 
+            // ClearSn_code
+            // 
+            this.ClearSn_code.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.ClearSn_code.Image = global::UAS_MES_NEW.Properties.Resources.bindingNavigatorDeleteItem_Image;
+            this.ClearSn_code.Location = new System.Drawing.Point(526, 802);
+            this.ClearSn_code.Margin = new System.Windows.Forms.Padding(6);
+            this.ClearSn_code.Name = "ClearSn_code";
+            this.ClearSn_code.Size = new System.Drawing.Size(32, 32);
+            this.ClearSn_code.TabIndex = 138;
+            this.ClearSn_code.TabStop = false;
+            this.ClearSn_code.Click += new System.EventHandler(this.ClearSn_code_Click);
+            // 
+            // ms_craftcode
+            // 
+            this.ms_craftcode.AutoSize = true;
+            this.ms_craftcode.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ms_craftcode.Location = new System.Drawing.Point(1536, 30);
+            this.ms_craftcode.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.ms_craftcode.Name = "ms_craftcode";
+            this.ms_craftcode.Size = new System.Drawing.Size(0, 41);
+            this.ms_craftcode.TabIndex = 142;
+            this.ms_craftcode.Visible = false;
+            // 
+            // ma_bomversion
+            // 
+            this.ma_bomversion.AutoSize = true;
+            this.ma_bomversion.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ma_bomversion.Location = new System.Drawing.Point(1536, 298);
+            this.ma_bomversion.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.ma_bomversion.Name = "ma_bomversion";
+            this.ma_bomversion.Size = new System.Drawing.Size(0, 41);
+            this.ma_bomversion.TabIndex = 143;
+            // 
+            // ma_bomversion_label
+            // 
+            this.ma_bomversion_label.AutoSize = true;
+            this.ma_bomversion_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ma_bomversion_label.Location = new System.Drawing.Point(1364, 298);
+            this.ma_bomversion_label.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.ma_bomversion_label.Name = "ma_bomversion_label";
+            this.ma_bomversion_label.Size = new System.Drawing.Size(152, 41);
+            this.ma_bomversion_label.TabIndex = 144;
+            this.ma_bomversion_label.Text = "Bom版本";
+            // 
+            // ma_craftcode
+            // 
+            this.ma_craftcode.AutoSize = true;
+            this.ma_craftcode.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ma_craftcode.Location = new System.Drawing.Point(1508, 122);
+            this.ma_craftcode.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.ma_craftcode.Name = "ma_craftcode";
+            this.ma_craftcode.Size = new System.Drawing.Size(0, 41);
+            this.ma_craftcode.TabIndex = 145;
+            this.ma_craftcode.Visible = false;
+            // 
+            // sir_remark_label
+            // 
+            this.sir_remark_label.AutoSize = true;
+            this.sir_remark_label.Checked = true;
+            this.sir_remark_label.CheckState = System.Windows.Forms.CheckState.Checked;
+            this.sir_remark_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.sir_remark_label.Location = new System.Drawing.Point(1360, 481);
+            this.sir_remark_label.Margin = new System.Windows.Forms.Padding(6);
+            this.sir_remark_label.Name = "sir_remark_label";
+            this.sir_remark_label.Size = new System.Drawing.Size(178, 45);
+            this.sir_remark_label.TabIndex = 190;
+            this.sir_remark_label.Text = "备注信息";
+            this.sir_remark_label.UseVisualStyleBackColor = true;
+            // 
+            // NoteForChange
+            // 
+            this.NoteForChange.AutoSize = true;
+            this.NoteForChange.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.NoteForChange.Location = new System.Drawing.Point(22, 78);
+            this.NoteForChange.Margin = new System.Windows.Forms.Padding(4);
+            this.NoteForChange.Name = "NoteForChange";
+            this.NoteForChange.Size = new System.Drawing.Size(190, 35);
+            this.NoteForChange.TabIndex = 192;
+            this.NoteForChange.Text = "切换工单提示";
+            this.NoteForChange.UseVisualStyleBackColor = true;
+            // 
+            // LabelDataGridView
+            // 
+            this.LabelDataGridView.AllowUserToAddRows = false;
+            this.LabelDataGridView.AllowUserToResizeRows = false;
+            this.LabelDataGridView.BackgroundColor = System.Drawing.SystemColors.ButtonFace;
+            this.LabelDataGridView.ColumnHeadersHeight = 46;
+            this.LabelDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
+            this.序号,
+            this.cm_makecode,
+            this.pr_detail_,
+            this.cm_soncode,
+            this.cm_barcode,
+            this.BarCode});
+            this.LabelDataGridView.Location = new System.Drawing.Point(36, 216);
+            this.LabelDataGridView.Margin = new System.Windows.Forms.Padding(6);
+            this.LabelDataGridView.Name = "LabelDataGridView";
+            this.LabelDataGridView.RowHeadersVisible = false;
+            this.LabelDataGridView.RowHeadersWidth = 82;
+            this.LabelDataGridView.RowTemplate.Height = 23;
+            this.LabelDataGridView.Size = new System.Drawing.Size(1282, 454);
+            this.LabelDataGridView.TabIndex = 193;
+            // 
+            // 序号
+            // 
+            this.序号.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
+            this.序号.DataPropertyName = "sp_detno";
+            this.序号.HeaderText = "序号";
+            this.序号.MinimumWidth = 10;
+            this.序号.Name = "序号";
+            this.序号.ReadOnly = true;
+            this.序号.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
+            this.序号.Width = 70;
+            // 
+            // cm_makecode
+            // 
+            this.cm_makecode.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCellsExceptHeader;
+            this.cm_makecode.DataPropertyName = "sp_fsoncode";
+            this.cm_makecode.HeaderText = "上料料号";
+            this.cm_makecode.MinimumWidth = 10;
+            this.cm_makecode.Name = "cm_makecode";
+            this.cm_makecode.ReadOnly = true;
+            this.cm_makecode.Width = 10;
+            // 
+            // pr_detail_
+            // 
+            this.pr_detail_.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
+            this.pr_detail_.DataPropertyName = "pr_spec";
+            this.pr_detail_.HeaderText = "上料名称";
+            this.pr_detail_.MinimumWidth = 10;
+            this.pr_detail_.Name = "pr_detail_";
+            this.pr_detail_.ReadOnly = true;
+            this.pr_detail_.Width = 10;
+            // 
+            // cm_soncode
+            // 
+            this.cm_soncode.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
+            this.cm_soncode.DataPropertyName = "sp_prefix";
+            this.cm_soncode.HeaderText = "前缀";
+            this.cm_soncode.MinimumWidth = 10;
+            this.cm_soncode.Name = "cm_soncode";
+            this.cm_soncode.ReadOnly = true;
+            this.cm_soncode.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
+            this.cm_soncode.Width = 10;
+            // 
+            // cm_barcode
+            // 
+            this.cm_barcode.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.ColumnHeader;
+            this.cm_barcode.DataPropertyName = "sp_length";
+            this.cm_barcode.HeaderText = "长度";
+            this.cm_barcode.MinimumWidth = 10;
+            this.cm_barcode.Name = "cm_barcode";
+            this.cm_barcode.ReadOnly = true;
+            this.cm_barcode.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
+            this.cm_barcode.Width = 64;
+            // 
+            // BarCode
+            // 
+            this.BarCode.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
+            this.BarCode.HeaderText = "条码号";
+            this.BarCode.MinimumWidth = 300;
+            this.BarCode.Name = "BarCode";
+            this.BarCode.ReadOnly = true;
+            this.BarCode.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
+            this.BarCode.Width = 300;
+            // 
+            // dataGridViewTextBoxColumn1
+            // 
+            this.dataGridViewTextBoxColumn1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
+            this.dataGridViewTextBoxColumn1.DataPropertyName = "cm_makecode";
+            this.dataGridViewTextBoxColumn1.HeaderText = "上料料号";
+            this.dataGridViewTextBoxColumn1.MinimumWidth = 10;
+            this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1";
+            this.dataGridViewTextBoxColumn1.ReadOnly = true;
+            this.dataGridViewTextBoxColumn1.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
+            this.dataGridViewTextBoxColumn1.Width = 50;
+            // 
+            // dataGridViewTextBoxColumn2
+            // 
+            this.dataGridViewTextBoxColumn2.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;
+            this.dataGridViewTextBoxColumn2.DataPropertyName = "pr_detail";
+            this.dataGridViewTextBoxColumn2.HeaderText = "上料名称";
+            this.dataGridViewTextBoxColumn2.MinimumWidth = 10;
+            this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2";
+            this.dataGridViewTextBoxColumn2.ReadOnly = true;
+            this.dataGridViewTextBoxColumn2.Width = 200;
+            // 
+            // dataGridViewTextBoxColumn3
+            // 
+            this.dataGridViewTextBoxColumn3.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;
+            this.dataGridViewTextBoxColumn3.DataPropertyName = "cm_soncode";
+            this.dataGridViewTextBoxColumn3.HeaderText = "前缀";
+            this.dataGridViewTextBoxColumn3.MinimumWidth = 10;
+            this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3";
+            this.dataGridViewTextBoxColumn3.ReadOnly = true;
+            this.dataGridViewTextBoxColumn3.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
+            this.dataGridViewTextBoxColumn3.Width = 200;
+            // 
+            // dataGridViewTextBoxColumn4
+            // 
+            this.dataGridViewTextBoxColumn4.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;
+            this.dataGridViewTextBoxColumn4.DataPropertyName = "cm_barcode";
+            this.dataGridViewTextBoxColumn4.HeaderText = "长度";
+            this.dataGridViewTextBoxColumn4.MinimumWidth = 10;
+            this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4";
+            this.dataGridViewTextBoxColumn4.ReadOnly = true;
+            this.dataGridViewTextBoxColumn4.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
+            this.dataGridViewTextBoxColumn4.Width = 200;
+            // 
+            // dataGridViewTextBoxColumn5
+            // 
+            this.dataGridViewTextBoxColumn5.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;
+            this.dataGridViewTextBoxColumn5.DataPropertyName = "sp_length";
+            this.dataGridViewTextBoxColumn5.HeaderText = "条码号";
+            this.dataGridViewTextBoxColumn5.MinimumWidth = 300;
+            this.dataGridViewTextBoxColumn5.Name = "dataGridViewTextBoxColumn5";
+            this.dataGridViewTextBoxColumn5.ReadOnly = true;
+            this.dataGridViewTextBoxColumn5.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
+            this.dataGridViewTextBoxColumn5.Width = 200;
+            // 
+            // dataGridViewTextBoxColumn6
+            // 
+            this.dataGridViewTextBoxColumn6.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;
+            this.dataGridViewTextBoxColumn6.HeaderText = "条码号";
+            this.dataGridViewTextBoxColumn6.MinimumWidth = 300;
+            this.dataGridViewTextBoxColumn6.Name = "dataGridViewTextBoxColumn6";
+            this.dataGridViewTextBoxColumn6.ReadOnly = true;
+            this.dataGridViewTextBoxColumn6.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
+            this.dataGridViewTextBoxColumn6.Width = 200;
+            // 
+            // sir_remark
+            // 
+            this.sir_remark.AllPower = null;
+            this.sir_remark.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.sir_remark.BackColor = System.Drawing.Color.White;
+            this.sir_remark.ID = null;
+            this.sir_remark.Location = new System.Drawing.Point(1360, 534);
+            this.sir_remark.Margin = new System.Windows.Forms.Padding(6);
+            this.sir_remark.Multiline = true;
+            this.sir_remark.Name = "sir_remark";
+            this.sir_remark.Power = null;
+            this.sir_remark.Size = new System.Drawing.Size(392, 132);
+            this.sir_remark.Str = null;
+            this.sir_remark.Str1 = null;
+            this.sir_remark.Str2 = null;
+            this.sir_remark.TabIndex = 191;
+            // 
+            // StepCount
+            // 
+            this.StepCount.LineCode = null;
+            this.StepCount.Location = new System.Drawing.Point(920, 688);
+            this.StepCount.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+            this.StepCount.Name = "StepCount";
+            this.StepCount.Size = new System.Drawing.Size(160, 44);
+            this.StepCount.Source = null;
+            this.StepCount.StepCode = null;
+            this.StepCount.TabIndex = 189;
+            // 
+            // ma_code
+            // 
+            this.ma_code.AllPower = null;
+            this.ma_code.Caller = null;
+            this.ma_code.Condition = null;
+            this.ma_code.DBTitle = null;
+            this.ma_code.FormName = null;
+            this.ma_code.Location = new System.Drawing.Point(192, 26);
+            this.ma_code.Margin = new System.Windows.Forms.Padding(4);
+            this.ma_code.Name = "ma_code";
+            this.ma_code.Power = null;
+            this.ma_code.ReturnData = null;
+            this.ma_code.SelectField = null;
+            this.ma_code.SetValueField = null;
+            this.ma_code.Size = new System.Drawing.Size(296, 42);
+            this.ma_code.TabIndex = 141;
+            this.ma_code.TableName = null;
+            this.ma_code.Tag = "ma_code";
+            this.ma_code.TextBoxEnable = true;
+            this.ma_code.UserControlTextChanged += new UAS_MES_NEW.CustomControl.TextBoxWithIcon.MaCodeSearchTextBox.OnTextChange(this.ma_code_UserControlTextChanged);
+            // 
+            // LockMakeCode
+            // 
+            this.LockMakeCode.AutoSize = true;
+            this.LockMakeCode.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.LockMakeCode.LeaveEvent = false;
+            this.LockMakeCode.Location = new System.Drawing.Point(496, 30);
+            this.LockMakeCode.Margin = new System.Windows.Forms.Padding(4);
+            this.LockMakeCode.Name = "LockMakeCode";
+            this.LockMakeCode.Size = new System.Drawing.Size(94, 35);
+            this.LockMakeCode.TabIndex = 140;
+            this.LockMakeCode.Text = "锁定";
+            this.LockMakeCode.UseVisualStyleBackColor = true;
+            // 
+            // ma_prodcode
+            // 
+            this.ma_prodcode.AutoSize = true;
+            this.ma_prodcode.CutLength = null;
+            this.ma_prodcode.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ma_prodcode.Location = new System.Drawing.Point(802, 24);
+            this.ma_prodcode.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.ma_prodcode.MaximumSize = new System.Drawing.Size(300, 0);
+            this.ma_prodcode.Name = "ma_prodcode";
+            this.ma_prodcode.Size = new System.Drawing.Size(0, 41);
+            this.ma_prodcode.TabIndex = 99;
+            this.ma_prodcode.TextChanged += new System.EventHandler(this.ma_prodcode_TextChanged);
+            // 
+            // pr_detail
+            // 
+            this.pr_detail.AutoSize = true;
+            this.pr_detail.CutLength = null;
+            this.pr_detail.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.pr_detail.Location = new System.Drawing.Point(1350, 24);
+            this.pr_detail.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.pr_detail.MaximumSize = new System.Drawing.Size(300, 0);
+            this.pr_detail.Name = "pr_detail";
+            this.pr_detail.Size = new System.Drawing.Size(0, 41);
+            this.pr_detail.TabIndex = 98;
+            // 
+            // mcd_remainqty
+            // 
+            this.mcd_remainqty.AutoSize = true;
+            this.mcd_remainqty.CutLength = null;
+            this.mcd_remainqty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.mcd_remainqty.Location = new System.Drawing.Point(1348, 122);
+            this.mcd_remainqty.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.mcd_remainqty.MaximumSize = new System.Drawing.Size(300, 0);
+            this.mcd_remainqty.Name = "mcd_remainqty";
+            this.mcd_remainqty.Size = new System.Drawing.Size(0, 41);
+            this.mcd_remainqty.TabIndex = 97;
+            this.mcd_remainqty.Tag = "mcd_remainqty";
+            // 
+            // mcd_inqty
+            // 
+            this.mcd_inqty.AutoSize = true;
+            this.mcd_inqty.CutLength = null;
+            this.mcd_inqty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.mcd_inqty.Location = new System.Drawing.Point(802, 122);
+            this.mcd_inqty.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.mcd_inqty.MaximumSize = new System.Drawing.Size(300, 0);
+            this.mcd_inqty.Name = "mcd_inqty";
+            this.mcd_inqty.Size = new System.Drawing.Size(0, 41);
+            this.mcd_inqty.TabIndex = 96;
+            // 
+            // ma_qty
+            // 
+            this.ma_qty.AutoSize = true;
+            this.ma_qty.CutLength = null;
+            this.ma_qty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ma_qty.Location = new System.Drawing.Point(192, 122);
+            this.ma_qty.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.ma_qty.MaximumSize = new System.Drawing.Size(300, 0);
+            this.ma_qty.Name = "ma_qty";
+            this.ma_qty.Size = new System.Drawing.Size(0, 41);
+            this.ma_qty.TabIndex = 95;
+            // 
+            // OperateResult
+            // 
+            this.OperateResult.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.OperateResult.Location = new System.Drawing.Point(1090, 688);
+            this.OperateResult.Margin = new System.Windows.Forms.Padding(6);
+            this.OperateResult.Name = "OperateResult";
+            this.OperateResult.Size = new System.Drawing.Size(696, 238);
+            this.OperateResult.TabIndex = 94;
+            this.OperateResult.Text = "";
+            // 
+            // Clean
+            // 
+            this.Clean.AllPower = null;
+            this.Clean.BackColor = System.Drawing.Color.Transparent;
+            this.Clean.DownImage = ((System.Drawing.Image)(resources.GetObject("Clean.DownImage")));
+            this.Clean.Image = ((System.Drawing.Image)(resources.GetObject("Clean.Image")));
+            this.Clean.IsShowBorder = true;
+            this.Clean.Location = new System.Drawing.Point(920, 878);
+            this.Clean.Margin = new System.Windows.Forms.Padding(6);
+            this.Clean.MoveImage = ((System.Drawing.Image)(resources.GetObject("Clean.MoveImage")));
+            this.Clean.Name = "Clean";
+            this.Clean.NormalImage = ((System.Drawing.Image)(resources.GetObject("Clean.NormalImage")));
+            this.Clean.Power = null;
+            this.Clean.Size = new System.Drawing.Size(120, 48);
+            this.Clean.TabIndex = 80;
+            this.Clean.Text = "清除";
+            this.Clean.UseVisualStyleBackColor = true;
+            this.Clean.Click += new System.EventHandler(this.Clean_Click);
+            // 
+            // ma_softversion
+            // 
+            this.ma_softversion.AllPower = null;
+            this.ma_softversion.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.ma_softversion.BackColor = System.Drawing.Color.White;
+            this.ma_softversion.ID = null;
+            this.ma_softversion.Location = new System.Drawing.Point(1544, 357);
+            this.ma_softversion.Margin = new System.Windows.Forms.Padding(6);
+            this.ma_softversion.Name = "ma_softversion";
+            this.ma_softversion.Power = null;
+            this.ma_softversion.Size = new System.Drawing.Size(208, 35);
+            this.ma_softversion.Str = null;
+            this.ma_softversion.Str1 = null;
+            this.ma_softversion.Str2 = null;
+            this.ma_softversion.TabIndex = 78;
+            // 
+            // ma_ecncode
+            // 
+            this.ma_ecncode.AllPower = null;
+            this.ma_ecncode.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.ma_ecncode.BackColor = System.Drawing.Color.White;
+            this.ma_ecncode.ID = null;
+            this.ma_ecncode.Location = new System.Drawing.Point(1544, 428);
+            this.ma_ecncode.Margin = new System.Windows.Forms.Padding(6);
+            this.ma_ecncode.Name = "ma_ecncode";
+            this.ma_ecncode.Power = null;
+            this.ma_ecncode.Size = new System.Drawing.Size(208, 35);
+            this.ma_ecncode.Str = null;
+            this.ma_ecncode.Str1 = null;
+            this.ma_ecncode.Str2 = null;
+            this.ma_ecncode.TabIndex = 77;
+            // 
+            // Confirm
+            // 
+            this.Confirm.AllPower = "ifall";
+            this.Confirm.BackColor = System.Drawing.Color.Transparent;
+            this.Confirm.DownImage = ((System.Drawing.Image)(resources.GetObject("Confirm.DownImage")));
+            this.Confirm.Image = ((System.Drawing.Image)(resources.GetObject("Confirm.Image")));
+            this.Confirm.IsShowBorder = true;
+            this.Confirm.Location = new System.Drawing.Point(578, 880);
+            this.Confirm.Margin = new System.Windows.Forms.Padding(6);
+            this.Confirm.MoveImage = ((System.Drawing.Image)(resources.GetObject("Confirm.MoveImage")));
+            this.Confirm.Name = "Confirm";
+            this.Confirm.NormalImage = ((System.Drawing.Image)(resources.GetObject("Confirm.NormalImage")));
+            this.Confirm.Power = null;
+            this.Confirm.Size = new System.Drawing.Size(120, 48);
+            this.Confirm.TabIndex = 73;
+            this.Confirm.Tag = "IfRead";
+            this.Confirm.Text = "确认";
+            this.Confirm.UseVisualStyleBackColor = true;
+            this.Confirm.Click += new System.EventHandler(this.Confirm_Click);
+            // 
+            // code
+            // 
+            this.code.AllPower = "ifall";
+            this.code.BackColor = System.Drawing.Color.White;
+            this.code.ID = null;
+            this.code.Location = new System.Drawing.Point(196, 884);
+            this.code.Margin = new System.Windows.Forms.Padding(6);
+            this.code.Name = "code";
+            this.code.Power = null;
+            this.code.Size = new System.Drawing.Size(316, 35);
+            this.code.Str = null;
+            this.code.Str1 = null;
+            this.code.Str2 = null;
+            this.code.TabIndex = 0;
+            this.code.Tag = "IfRead";
+            this.code.KeyDown += new System.Windows.Forms.KeyEventHandler(this.code_KeyDown);
+            // 
+            // sn_code
+            // 
+            this.sn_code.AllPower = null;
+            this.sn_code.BackColor = System.Drawing.Color.White;
+            this.sn_code.Enabled = false;
+            this.sn_code.ID = null;
+            this.sn_code.Location = new System.Drawing.Point(196, 796);
+            this.sn_code.Margin = new System.Windows.Forms.Padding(6);
+            this.sn_code.Name = "sn_code";
+            this.sn_code.Power = null;
+            this.sn_code.Size = new System.Drawing.Size(316, 35);
+            this.sn_code.Str = null;
+            this.sn_code.Str1 = null;
+            this.sn_code.Str2 = null;
+            this.sn_code.TabIndex = 65;
+            // 
+            // serialPortCombox1
+            // 
+            this.serialPortCombox1.Location = new System.Drawing.Point(1543, 199);
+            this.serialPortCombox1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
+            this.serialPortCombox1.Name = "serialPortCombox1";
+            this.serialPortCombox1.Size = new System.Drawing.Size(209, 40);
+            this.serialPortCombox1.TabIndex = 194;
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label1.Location = new System.Drawing.Point(1425, 198);
+            this.label1.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(82, 41);
+            this.label1.TabIndex = 195;
+            this.label1.Text = "串口";
+            // 
+            // OpenPort
+            // 
+            this.OpenPort.AllPower = null;
+            this.OpenPort.BackColor = System.Drawing.Color.Transparent;
+            this.OpenPort.DownImage = ((System.Drawing.Image)(resources.GetObject("OpenPort.DownImage")));
+            this.OpenPort.Image = ((System.Drawing.Image)(resources.GetObject("OpenPort.Image")));
+            this.OpenPort.IsShowBorder = true;
+            this.OpenPort.Location = new System.Drawing.Point(1632, 250);
+            this.OpenPort.Margin = new System.Windows.Forms.Padding(6);
+            this.OpenPort.MoveImage = ((System.Drawing.Image)(resources.GetObject("OpenPort.MoveImage")));
+            this.OpenPort.Name = "OpenPort";
+            this.OpenPort.NormalImage = ((System.Drawing.Image)(resources.GetObject("OpenPort.NormalImage")));
+            this.OpenPort.Power = null;
+            this.OpenPort.Size = new System.Drawing.Size(120, 48);
+            this.OpenPort.TabIndex = 196;
+            this.OpenPort.Text = "打开";
+            this.OpenPort.UseVisualStyleBackColor = true;
+            this.OpenPort.Click += new System.EventHandler(this.OpenPort_Click);
+            // 
+            // ms_bomversion
+            // 
+            this.ms_bomversion.AutoSize = true;
+            this.ms_bomversion.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ms_bomversion.Location = new System.Drawing.Point(898, 467);
+            this.ms_bomversion.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.ms_bomversion.Name = "ms_bomversion";
+            this.ms_bomversion.Size = new System.Drawing.Size(0, 41);
+            this.ms_bomversion.TabIndex = 197;
+            this.ms_bomversion.Visible = false;
+            // 
+            // Make_FeedingCollection
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 24F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(1796, 974);
+            this.Controls.Add(this.ms_bomversion);
+            this.Controls.Add(this.OpenPort);
+            this.Controls.Add(this.label1);
+            this.Controls.Add(this.serialPortCombox1);
+            this.Controls.Add(this.LabelDataGridView);
+            this.Controls.Add(this.NoteForChange);
+            this.Controls.Add(this.sir_remark);
+            this.Controls.Add(this.sir_remark_label);
+            this.Controls.Add(this.StepCount);
+            this.Controls.Add(this.ma_craftcode);
+            this.Controls.Add(this.ma_bomversion_label);
+            this.Controls.Add(this.ma_bomversion);
+            this.Controls.Add(this.ms_craftcode);
+            this.Controls.Add(this.ma_code);
+            this.Controls.Add(this.LockMakeCode);
+            this.Controls.Add(this.ClearSn_code);
+            this.Controls.Add(this.ma_prodcode);
+            this.Controls.Add(this.pr_detail);
+            this.Controls.Add(this.mcd_remainqty);
+            this.Controls.Add(this.mcd_inqty);
+            this.Controls.Add(this.ma_qty);
+            this.Controls.Add(this.OperateResult);
+            this.Controls.Add(this.Clean);
+            this.Controls.Add(this.ma_softversion);
+            this.Controls.Add(this.ma_ecncode);
+            this.Controls.Add(this.ma_ecncode_label);
+            this.Controls.Add(this.ma_softversion_label);
+            this.Controls.Add(this.Confirm);
+            this.Controls.Add(this.iflastsn);
+            this.Controls.Add(this.code);
+            this.Controls.Add(this.code_label);
+            this.Controls.Add(this.sn_code);
+            this.Controls.Add(this.sn_code_label);
+            this.Controls.Add(this.UnLoading);
+            this.Controls.Add(this.Loading);
+            this.Controls.Add(this.mcd_restqty_label);
+            this.Controls.Add(this.mcd_inqty_label);
+            this.Controls.Add(this.ma_qty_label);
+            this.Controls.Add(this.ms_makecode_label);
+            this.Controls.Add(this.pr_detail_label);
+            this.Controls.Add(this.ma_prodcode_label);
+            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
+            this.Margin = new System.Windows.Forms.Padding(6);
+            this.Name = "Make_FeedingCollection";
+            this.Tag = "Make!FeedingCollection";
+            this.Text = "上料采集";
+            this.Load += new System.EventHandler(this.Make_FeedingCollection_Load);
+            this.SizeChanged += new System.EventHandler(this.Make_FeedingCollection_SizeChanged);
+            ((System.ComponentModel.ISupportInitialize)(this.ClearSn_code)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.LabelDataGridView)).EndInit();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+        private System.Windows.Forms.Label mcd_restqty_label;
+        private System.Windows.Forms.Label mcd_inqty_label;
+        private System.Windows.Forms.Label ma_qty_label;
+        private System.Windows.Forms.Label ms_makecode_label;
+        private System.Windows.Forms.Label pr_detail_label;
+        private System.Windows.Forms.Label ma_prodcode_label;
+        private System.Windows.Forms.RadioButton Loading;
+        private System.Windows.Forms.RadioButton UnLoading;
+        private CustomControl.TextBoxWithIcon.EnterTextBox sn_code;
+        private System.Windows.Forms.Label sn_code_label;
+        private System.Windows.Forms.Label code_label;
+        private CustomControl.TextBoxWithIcon.SnCollectionBox code;
+        private System.Windows.Forms.CheckBox iflastsn;
+        private CustomControl.ButtonUtil.NormalButton Confirm;
+        private System.Windows.Forms.CheckBox ma_softversion_label;
+        private System.Windows.Forms.CheckBox ma_ecncode_label;
+        private CustomControl.TextBoxWithIcon.EnterTextBox ma_ecncode;
+        private CustomControl.TextBoxWithIcon.EnterTextBox ma_softversion;
+        private CustomControl.ButtonUtil.NormalButton Clean;
+        private CustomControl.RichText.RichTextAutoBottom OperateResult;
+        private CustomControl.ValueLabel.ValueLabel ma_qty;
+        private CustomControl.ValueLabel.ValueLabel mcd_inqty;
+        private CustomControl.ValueLabel.ValueLabel mcd_remainqty;
+        private CustomControl.ValueLabel.ValueLabel pr_detail;
+        private CustomControl.ValueLabel.ValueLabel ma_prodcode;
+        private System.Windows.Forms.PictureBox ClearSn_code;
+        private CustomControl.CustomCheckBox.LockCheckBox LockMakeCode;
+        private CustomControl.TextBoxWithIcon.MaCodeSearchTextBox ma_code;
+        private System.Windows.Forms.Label ms_craftcode;
+        private System.Windows.Forms.Label ma_bomversion;
+        private System.Windows.Forms.Label ma_bomversion_label;
+        private System.Windows.Forms.Label ma_craftcode;
+        private CustomControl.TextBoxWithIcon.SourceStepCount StepCount;
+        private System.Windows.Forms.CheckBox sir_remark_label;
+        private CustomControl.TextBoxWithIcon.EnterTextBox sir_remark;
+        private System.Windows.Forms.CheckBox NoteForChange;
+        private System.Windows.Forms.DataGridView LabelDataGridView;
+        private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1;
+        private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2;
+        private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3;
+        private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4;
+        private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5;
+        private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn6;
+        private System.Windows.Forms.DataGridViewTextBoxColumn 序号;
+        private System.Windows.Forms.DataGridViewTextBoxColumn cm_makecode;
+        private System.Windows.Forms.DataGridViewTextBoxColumn pr_detail_;
+        private System.Windows.Forms.DataGridViewTextBoxColumn cm_soncode;
+        private System.Windows.Forms.DataGridViewTextBoxColumn cm_barcode;
+        private System.Windows.Forms.DataGridViewTextBoxColumn BarCode;
+        private CustomControl.ComBoxWithFocus.SerialPortCombox serialPortCombox1;
+        private System.Windows.Forms.Label label1;
+        private CustomControl.ButtonUtil.NormalButton OpenPort;
+        private System.Windows.Forms.Label ms_bomversion;
+    }
+}

+ 686 - 0
UAS_MES_YDCY/FunctionCode/Make/Make_FeedingCollectionReCall.cs

@@ -0,0 +1,686 @@
+using System;
+using System.Data;
+using System.Text;
+using System.Windows.Forms;
+using UAS_MES_NEW.CustomControl.TextBoxWithIcon;
+using UAS_MES_NEW.DataOperate;
+using UAS_MES_NEW.Entity;
+using UAS_MES_NEW.PublicMethod;
+using System.Drawing;
+using System.Text.RegularExpressions;
+using System.Collections.Generic;
+using UAS_MES_NEW.PublicForm;
+using System.IO.Ports;
+using DevExpress.XtraPrinting;
+using static System.Runtime.CompilerServices.RuntimeHelpers;
+
+namespace UAS_MES_NEW.Make
+{
+    public partial class Make_FeedingCollectionReCall : Form
+    {
+        //MakeSerial表主键
+        string ms_id;
+        //制造单号                                                                             
+        string make_code;
+        //产品编号
+        string make_prodcode;
+        //工序编号
+        string nextstepcode;
+        //完工状态
+        string ms_status;
+        //工艺路线编号
+        //Bom版本
+        string mabomversion;
+        string ms_edistatus;
+        string ErrorMessage = "";
+
+        List<string> TSN = new List<string>();
+
+        Dictionary<string, string> CheckBarcode = new Dictionary<string, string>();
+
+        //用于提醒的序列B
+        string[] RemainList = new string[0];
+        //提醒序列的索引
+        int RemainIndex = 0;
+
+        string oMakeCode = "";
+        string oMsid = "";
+
+        string ms_firstsn = "";
+
+        DataHelper dh;
+        LogStringBuilder sql = new LogStringBuilder();
+        DataTable DBFind;
+        DataTable dt;
+        //保存ListB中的数据
+        DataTable dt1;
+
+        AutoSizeFormClass asc = new AutoSizeFormClass();
+
+        List<string> CollectData = new List<string>();
+
+        List<string> ResultStr = new List<string>();
+
+        List<string> CollectDataSonCode = new List<string>();
+
+        List<string> SPID = new List<string>();
+
+        public Make_FeedingCollectionReCall()
+        {
+            InitializeComponent();
+        }
+
+        private void Make_FeedingCollection_Load(object sender, EventArgs e)
+        {
+            asc.controllInitializeSize(this);
+            LockMakeCode.GetMakeCodeCtl(ma_code);
+            ma_code.SetLockCheckBox(LockMakeCode);
+            //工单号放大镜配置
+            ma_code.TableName = "make left join product on ma_prodcode=pr_code";
+            ma_code.SelectField = "ma_code # 工单号,ma_prodcode # 产品编号,ma_qty # 工单数量,ma_craftcode # 途程编号,pr_spec # 产品名称,ma_bomversion # Bom版本,ma_softversion # 软件版本,ma_ecncode # ECN号";
+            ma_code.FormName = Name;
+            ma_code.DBTitle = "工单查询";
+            ma_code.SetValueField = new string[] { "ma_code", "ma_prodcode", "ma_qty", "pr_spec", "ma_craftcode", "ma_bomversion", "ma_softversion", "ma_ecncode" };
+            ma_code.Condition = "ma_statuscode='STARTED'";
+            ma_code.DbChange += Ma_code_DBChange;
+            code.Focus();
+            dh = SystemInf.dh;
+            StepCount.StepCode = User.CurrentStepCode;
+            StepCount.Source = User.UserSourceCode;
+            StepCount.LineCode = User.UserLineCode;
+            StepCount.Dh = dh;
+            StepCount.Start();
+        }
+
+        private void Ma_code_DBChange(object sender, EventArgs e)
+        {
+            DBFind = ma_code.ReturnData;
+            BaseUtil.SetFormValue(this.Controls, DBFind);
+            string ifforsn = dh.getFieldDataByCondition("make left join stepbom on ma_prodcode=sb_prodcode left join stepproduct on sb_id=sp_sbid", "nvl(sp_ifforsn,0) sp_ifforsn", "ma_code='" + ma_code.Text + "' and sp_craftcode='" + ma_craftcode.Text + "' and sp_stepcode='" + User.CurrentStepCode + "' and sb_bomversion='" + ma_bomversion.Text + "' order by sp_detno").ToString();
+            if (ifforsn != "" && ifforsn != "0")
+                iflastsn.Checked = true;
+            else
+                iflastsn.Checked = false;
+        }
+
+        private void Make_FeedingCollection_SizeChanged(object sender, EventArgs e)
+        {
+            asc.controlAutoSize(this);
+        }
+
+        private void Clean_Click(object sender, EventArgs e)
+        {
+            OperateResult.Clear();
+        }
+
+        private void Confirm_Click(object sender, EventArgs e)
+        {
+            KeyEventArgs e2 = new KeyEventArgs(Keys.Enter);
+            code_KeyDown(sender, e2);
+        }
+
+        private void code_KeyDown(object sender, KeyEventArgs e)
+        {
+            if (e.KeyCode == Keys.Enter)
+            {
+                if (LogicHandler.CheckStepAttribute(Tag.ToString(), User.UserSourceCode, out ErrorMessage))
+                {
+                    if (Loading.Checked)
+                    {
+                        if (code.Text.Replace(" ", "") == "")
+                        {
+                            OperateResult.AppendText(">>采集数据不可为空\n", Color.Red);
+                            return;
+                        }
+                        //如果录入框和工单号均有输入
+                        if (code.Text != "" && ma_code.Text != "" && sn_code.Text == "")
+                        {
+                            GetCollectItem();
+                            BaseUtil.FillDgvWithDataTable(LabelDataGridView, dt1);
+                        }
+                        //输入框有值但未选择工单号
+                        else if (code.Text != "" && ma_code.Text == "" && sn_code.Text == "")
+                        {
+                            GetCollectItem();
+                            BaseUtil.FillDgvWithDataTable(LabelDataGridView, dt1);
+                        }
+                        else if (sn_code.Text != "")
+                        {
+                            //索引超出长度表示内容均已提醒
+                            if (RemainIndex >= RemainList.Length)
+                            {
+                                OperateResult.AppendText(">>当前序列号" + sn_code.Text + "不在本道工序,请采集其它序列号\n", Color.Red);
+                                sn_code.Text = "";
+                                code.Text = "";
+                                return;
+                            }
+                            string sp_soncode = dt1.Rows[RemainIndex]["sp_soncode"].ToString();
+                            string sp_fsoncode = dt1.Rows[RemainIndex]["sp_fsoncode"].ToString();
+                            string sp_prefix = dt1.Rows[RemainIndex]["sp_prefix"].ToString();
+                            string sp_regex = dt1.Rows[RemainIndex]["sp_regex"].ToString();
+                            string length = dt1.Rows[RemainIndex]["sp_length"].ToString();
+                            string sp_id = dt1.Rows[RemainIndex]["sp_id"].ToString();
+                            string sp_ifrepeat = dt1.Rows[RemainIndex]["sp_ifrepeat"].ToString();
+                            string sp_ifforsn = dt1.Rows[RemainIndex]["sp_ifforsn"].ToString();
+                            string sp_barcoderule = dt1.Rows[RemainIndex]["sp_barcoderule"].ToString();
+                            string sp_checkbarcode = dt1.Rows[RemainIndex]["sp_checkbarcode"].ToString();
+                            string sp_checksalecode = dt1.Rows[RemainIndex]["sp_checksalecode"].ToString();
+                            string sp_subnum = dt1.Rows[RemainIndex]["sp_subnum"].ToString();
+                            string sp_subnumlength = dt1.Rows[RemainIndex]["sp_subnumlength"].ToString();
+                            string resultstr = "";
+                            if (LogicHandler.CheckSNBeforeLoad(ma_code.Text, sn_code.Text, code.Text, sp_fsoncode, sp_soncode, sp_barcoderule, sp_prefix, length, sp_ifrepeat, sp_checksalecode, sp_subnum, sp_subnumlength,ms_edistatus, out resultstr, out ErrorMessage))
+                            {
+                                //判断采集的条码和本次采集的也不能重复
+                                if (CollectData.Contains(code.Text) && sp_ifrepeat != "-1")
+                                {
+                                    OperateResult.AppendText(">>条码" + code.Text + "已经上料\n", Color.Red, code);
+                                    return;
+                                }
+                                if (sp_checkbarcode != "")
+                                {
+                                    if (CheckBarcode.ContainsKey(sp_checkbarcode))
+                                    {
+                                        if (CheckBarcode[sp_checkbarcode] != code.Text)
+                                        {
+                                            OperateResult.AppendText(">>条码" + code.Text + "需要检查物料,未匹配到之前上料数据\n", Color.Red, code);
+                                            return;
+                                        }
+                                    }
+                                    else
+                                    {
+                                        OperateResult.AppendText(">>条码" + code.Text + "需要检查物料,未匹配到之前上料数据\n", Color.Red, code);
+                                        return;
+                                    }
+                                }
+                                TSN.Add(code.Text);
+                                if (sp_barcoderule == "BARCODE")
+                                {
+                                    sp_soncode = ErrorMessage;
+                                }
+                                LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, oMakeCode, User.UserLineCode, User.UserSourceCode, "上物料", sn_code.Text + "上物料" + code.Text + "料号" + sp_fsoncode, sn_code.Text, "");
+                                Save_OtherCode(sp_fsoncode, sp_soncode, make_code, sn_code.Text, sp_id, resultstr);
+                            }
+                            else
+                            {
+                                OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, code);
+                                SetCheck set = new SetCheck("NG", Color.Red);
+                                BaseUtil.SetFormCenter(set);
+                                set.ShowDialog();
+                            }
+                        }
+                    }
+                    //勾选了下料的时候
+                    else if (UnLoading.Checked)
+                    {
+                        if (LogicHandler.CheckStepSNAndMacode(ma_code.Text, User.UserSourceCode, code.Text, User.UserCode, out oMakeCode, out oMsid, out ErrorMessage))
+                        {
+                            sql.Clear();
+                            sql.Append("select ms_firstsn,ms_sncode,cm_makecode,cm_craftcode,nvl(cm_status,0)cm_status,cm_id,cm_stepcode,");
+                            sql.Append("ms_makecode,cm_mccode,cm_materialtype from craftmaterial left join makeserial on cm_makecode");
+                            sql.Append("=ms_makecode and cm_sncode=ms_sncode where cm_sncode='" + code.Text + "' and cm_makecode='" + oMakeCode + "'");
+                            sql.Append("and cm_materialtype=1 and cm_stepcode='" + User.CurrentStepCode + "' ");
+                            dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                            if (dt.Rows.Count > 0)
+                            {
+                                string ms_macode = dt.Rows[0]["ms_makecode"].ToString();
+                                string ms_firstsn = dt.Rows[0]["ms_sncode"].ToString();
+                                string cm_stepcode = dt.Rows[0]["cm_stepcode"].ToString();
+                                string cm_mccode = dt.Rows[0]["cm_mccode"].ToString();
+                                string cm_materialtype = dt.Rows[0]["cm_materialtype"].ToString();
+                                string cm_status = dt.Rows[0]["cm_status"].ToString();
+                                string cm_makecode = dt.Rows[0]["cm_makecode"].ToString();
+                                string cm_craftcode = dt.Rows[0]["cm_craftcode"].ToString();
+                                //清除已被使用的序列号
+                                sql.Clear();
+                                sql.Append("update makeserial set ms_nextmacode='' where ms_sncode in(select cm_barcode from craftmaterial where ");
+                                sql.Append("cm_makecode='" + cm_makecode + "' and cm_sncode='" + code.Text + "' and cm_stepcode='" + cm_stepcode + "' and cm_craftcode='" + cm_craftcode + "' ");
+                                sql.Append("and cm_materialtype=1 and nvl(cm_status,0) =0) and ms_nextmacode='" + oMakeCode + "'");
+                                dh.ExecuteSql(sql.GetString(), "update");
+                                sql.Clear();
+                                sql.Append("update makeserial set ms_nextstepcode=ms_stepcode where ms_id='" + ms_id + "'");
+                                dh.ExecuteSql(sql.GetString(), "update");
+                                //进行下料
+                                sql.Clear();
+                                sql.Append("delete from craftmaterial where (cm_sncode in (select sn from makesnrelation where firstsn");
+                                sql.Append("='" + ms_firstsn + "') or cm_sncode = '" + ms_firstsn + "') and cm_makecode = '" + oMakeCode + "' ");
+                                sql.Append("and cm_status = 0 and cm_stepcode='" + User.CurrentStepCode + "' and cm_materialtype=1");
+                                dh.ExecuteSql(sql.GetString(), "delete");
+                                LogicHandler.InsertMakeProcess(ms_macode, code.Text, User.UserSourceCode, "上料采集操作", "下料成功", User.UserCode);
+                                //刷新界面值
+                                sql.Clear();
+                                sql.Append("select mcd_inqty,ma_qty-mcd_inqty mcd_remainqty ");
+                                sql.Append("from make left join makecraftdetail on mcd_macode=ma_code where ");
+                                sql.Append("ma_code='" + oMakeCode + "' and mcd_stepcode='" + User.CurrentStepCode + "'");
+                                dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                                BaseUtil.SetFormValue(Controls, dt);
+                                LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, oMakeCode, User.UserLineCode, User.UserSourceCode, "上料采集", "下料成功", code.Text, "");
+                                OperateResult.AppendText(">>序列号" + code.Text + "下料成功\n", Color.Green, code);
+                            }
+                            else OperateResult.AppendText(">>序列号" + code.Text + "未上料,无需下料\n", Color.Red, code);
+                        }
+                        else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, code);
+                    }
+                }
+                else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, code);
+            }
+        }
+
+        //获取采集的项目
+        private void GetCollectItem()
+        {
+            bool NoteAlready = LogicHandler.CheckDiffMakeCodeBeforeStepCheck(code.Text, ma_code.Text, NoteForChange.Checked, out oMakeCode, out ErrorMessage);
+            if (!NoteAlready)
+            {
+                OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, code);
+                return;
+            }
+            dt = (DataTable)dh.ExecuteSql("select ms_sncode from makeserial where ms_imei1='" + code.Text + "' order by ms_id desc", "select");
+            if (dt.Rows.Count > 0)
+            {
+                code.Text = dt.Rows[0]["ms_sncode"].ToString();
+            }
+            else
+            {
+                dt = (DataTable)dh.ExecuteSql("select ms_sncode from makeserial where ms_imei2='" + code.Text + "' order by ms_id desc", "select");
+                if (dt.Rows.Count > 0)
+                {
+                    code.Text = dt.Rows[0]["ms_sncode"].ToString();
+                }
+            }
+            if (LogicHandler.CheckStepSNAndMacode(oMakeCode, User.UserSourceCode, code.Text, User.UserCode, out oMakeCode, out oMsid, out ErrorMessage))
+            {
+                nextstepcode = dh.getFieldDataByCondition("makeserial", "ms_nextstepcode", "ms_id='" + oMsid + "'").ToString();
+                if (nextstepcode != User.CurrentStepCode)
+                {
+                    string stname = dh.getFieldDataByCondition("step", "st_name", "st_code='" + nextstepcode + "'").ToString();
+                    OperateResult.AppendText("<<序列号:" + code.Text + "下一工序是" + stname + ",不是当前岗位的工序\n", Color.Red, code);
+                    return;
+                }
+                if (!LogicHandler.CheckDiffMakeCodeAfterStepCheck(code.Text, oMakeCode, NoteForChange.Checked, NoteAlready, ma_code, out ErrorMessage))
+                {
+                    OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, code);
+                    return;
+                }
+                //将录入框的值给序列号
+                sn_code.Text = code.Text;
+                sql.Clear();
+                sql.Append("select ma_prodcode,nvl(ms_edistatus,0)ms_edistatus,ms_bomversion,ma_ecncode,ms_sncode,ma_softversion,ms_firstsn,ma_bomversion,ma_qty,ma_code,pr_spec,ms_status,ms_id,ms_craftcode,ms_nextstepcode");
+                sql.Append(",ms_prodcode,ms_makecode,ms_code,ms_stepname  from makeserial left join make on ma_code=ms_makecode ");
+                sql.Append("left join product on ms_prodcode=pr_code where ms_sncode='" + code.Text + "' order by ms_id desc");
+                dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                if (dt.Rows.Count > 0)
+                {
+                    ms_id = dt.Rows[0]["ms_id"].ToString();
+                    make_code = dt.Rows[0]["ma_code"].ToString();
+                    mabomversion = dt.Rows[0]["ma_bomversion"].ToString();
+                    make_prodcode = dt.Rows[0]["ms_prodcode"].ToString();
+                    nextstepcode = dt.Rows[0]["ms_nextstepcode"].ToString();
+                    ms_status = dt.Rows[0]["ms_status"].ToString();
+                    ms_edistatus = dt.Rows[0]["ms_edistatus"].ToString();
+                    ms_firstsn = dt.Rows[0]["ms_sncode"].ToString();
+                    BaseUtil.SetFormValue(this.Controls, dt);
+                    string ifforsn = dh.getFieldDataByCondition("make left join stepbom on ma_prodcode=sb_prodcode left join stepproduct on sb_id=sp_sbid", "nvl(sp_ifforsn,0) sp_ifforsn", "ma_code='" + ma_code.Text + "' and sp_stepcode='" + User.CurrentStepCode + "'  and sp_craftcode='" + ms_craftcode.Text + "' and sb_bomversion='" + ma_bomversion.Text + "' order by sp_detno").ToString();
+                    if (ifforsn != "" && ifforsn != "0")
+                        iflastsn.Checked = true;
+                    else
+                        iflastsn.Checked = false;
+                    LockMakeCode.Checked = true;
+                    if (ms_edistatus != "-1")
+                    {
+                        OperateResult.AppendText(">>序列号" + code.Text + "未召回,当前界面不允许采集\n", Color.Red);
+                        return;
+                    }
+                    //勾选了前一工单
+                    if (iflastsn.Checked)
+                    {
+                        dt = (DataTable)dh.ExecuteSql("select ms_id,ms_makecode,ms_craftcode,ms_status,ms_nextstepcode,ms_prodcode,ms_code from makeserial where ms_sncode='" + code.Text + "' and ms_makecode<>'" + ma_code.Text + "' order by ms_id desc", "select");
+                        string make_code = "";
+                        string make_prodcode = "";
+                        string nextstepcode = "";
+                        string ms_status = "";
+                        if (dt.Rows.Count > 0)
+                        {
+                            ms_id = dt.Rows[0]["ms_id"].ToString();
+                            make_code = dt.Rows[0]["ms_makecode"].ToString();
+                            make_prodcode = dt.Rows[0]["ms_prodcode"].ToString();
+                            nextstepcode = dt.Rows[0]["ms_nextstepcode"].ToString();
+                            ms_status = dt.Rows[0]["ms_status"].ToString();
+                            //判断序列号的前一工单是否已经完工
+                            if (dt.Rows[0]["ms_makecode"].ToString() != ma_code.Text && dt.Rows[0]["ms_status"].ToString() == "2")
+                            {
+                                sql.Clear();
+                                sql.Append("select sp_id,sp_soncode from make inner join stepbom on ma_prodcode=sb_prodcode and ma_bomversion=sb_bomversion left ");
+                                sql.Append("join stepproduct on sp_sbid=sb_id where ma_code='" + ma_code.Text + "' and sp_craftcode='" + ms_craftcode.Text + "' ");
+                                sql.Append("and sp_stepcode='" + User.CurrentStepCode + "' and nvl(sp_ifforsn,0)<>0");
+                                dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                                if (dt.Rows.Count > 0)
+                                {
+                                    string sp_id = dt.Rows[0]["sp_id"].ToString();
+                                    string sp_soncode = dt.Rows[0]["sp_soncode"].ToString();
+                                    if (!dh.CheckExist("Craftmaterial", "cm_makecode='" + ma_code.Text + "' and cm_soncode='" + make_prodcode + "' and cm_sncode='" + code.Text + "' and cm_status=0"))
+                                    {
+                                        CollectDataSonCode.Add(sp_soncode);
+                                        SPID.Add(sp_id);
+                                        CollectData.Add(code.Text);
+                                        sn_code.Text = code.Text;
+                                        OperateResult.AppendText(">>序列号" + code.Text + ",物料" + sp_soncode + "上料成功\n", Color.Green);
+                                        RemainIndex = RemainIndex + 1;
+                                        GetItem();
+                                        return;
+                                    }
+                                    else
+                                    {
+                                        GetItem();
+                                    }
+                                }
+                                else OperateResult.AppendText(">>序列号" + code.Text + "无生产信息\n", Color.Red, code);
+                            }
+                            else OperateResult.AppendText(">>序列号" + code.Text + "已被工单" + dt.Rows[0]["ms_makecode"].ToString() + "绑定,尚未完工\n", Color.Red, code);
+                        }
+                        else OperateResult.AppendText(">>序列号" + code.Text + "无生产信息\n", Color.Red, code);
+                    }
+                    else
+                    {
+                        dt = (DataTable)dh.ExecuteSql("select ms_status,ms_stepcode,ms_nextstepcode from makeserial where ms_sncode='" + code.Text + "' and ms_makecode='" + ma_code.Text + "' order by ms_id desc", "select");
+                        nextstepcode = dt.Rows[0]["ms_nextstepcode"].ToString();
+                        ms_status = dt.Rows[0]["ms_status"].ToString();
+                        sn_code.Text = code.Text;
+                        sql.Clear();
+                        sql.Append("select ma_code,ma_softversion,ma_ecncode,ma_prodcode,pr_spec,ma_qty from makeserial left join product ");
+                        sql.Append(" on ms_prodcode=pr_code left join make on ms_makecode=ma_code left join ");
+                        sql.Append("makecraftdetail on mcd_macode=ms_makecode where ms_id='" + oMsid + "' and mcd_stepcode='" + User.CurrentStepCode + "'");
+                        dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                        BaseUtil.SetFormValue(this.Controls, dt);
+                        OperateResult.AppendText(">>获取序列号" + code.Text + "成功\n", Color.Green);
+                        GetItem();
+                    }
+                }
+                else
+                {
+                    OperateResult.AppendText(">>序列号" + code.Text + "不存在\n", Color.Red, code);
+                    code.Text = "";
+                    sn_code.Text = "";
+                }
+            }
+            else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, code);
+        }
+
+        private void GetItem()
+        {
+            //单独用一个DataTable存储一个
+            dt1 = new DataTable();
+            sql.Clear();
+            sql.Append("select max(pr_lightbox)pr_lightbox,sp_id,max(nvl(sp_subnum,0))sp_subnum,max(nvl(sp_subnumlength,0))sp_subnumlength,max(sp_detno)sp_detno,min(sp_ifrepeat)sp_ifrepeat,max(sp_checkbarcode)sp_checkbarcode,min(sp_checksalecode)sp_checksalecode,");
+            sql.Append("sp_fsoncode,max(sp_barcoderule)sp_barcoderule,wm_concat(sp_soncode) sp_soncode,max(sp_ifuseregex)sp_ifuseregex,max(sp_ifforsn)");
+            sql.Append("sp_ifforsn,max(sp_length)sp_length,max(sp_type)sp_type,replace(wm_concat(sp_prefix),',','|')sp_prefix,max(sp_regex)");
+            sql.Append("sp_regex,max(pr_detail)pr_detail,max(substr(pr_spec,0,20))pr_spec from stepproduct left join product on pr_code=sp_fsoncode where ");
+            sql.Append("sp_bomversion='" + ms_bomversion.Text + "' and sp_craftcode='" + ms_craftcode.Text + "' and sp_stepcode='" + User.CurrentStepCode + "' ");
+            sql.Append("And sp_mothercode ='" + ma_prodcode.Text + "' and sp_tracekind=1 and not exists(select 1 from craftmaterial where ");
+            sql.Append("cm_sncode in (select '" + ms_firstsn + "' from dual union select sn from makesnrelation where firstsn='" + ms_firstsn + "') and cm_makecode='" + ma_code.Text + "' and cm_fsoncode=");
+            sql.Append("sp_fsoncode and cm_status=0 and cm_stepcode=sp_stepcode) group by sp_fsoncode,sp_id order by SP_DETNO asc");
+            dt1 = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+            code.Clear();
+            //用于记录提醒的数据长度
+            RemainList = new string[dt1.Rows.Count];
+            for (int i = 0; i < dt1.Rows.Count; i++)
+            {
+                string soncode = dt1.Rows[i]["sp_soncode"].ToString();
+                string prdetail = dt1.Rows[i]["pr_detail"].ToString();
+                string pr_lightbox = dt1.Rows[i]["pr_lightbox"].ToString();
+                if (port.IsOpen)
+                {
+                    byte[] t = new byte[2];
+                    t[0] = 0x00;
+                    switch (pr_lightbox)
+                    {
+                        case "01":
+                            t[1] = 0X01;
+                            break;
+                        case "02":
+                            t[1] = 0X02;
+                            break;
+                        case "03":
+                            t[1] = 0X03;
+                            break;
+                        case "04":
+                            t[1] = 0X04;
+                            break;
+                        case "05":
+                            t[1] = 0X05;
+                            break;
+                        case "06":
+                            t[1] = 0X06;
+                            break;
+                        case "07":
+                            t[1] = 0X07;
+                            break;
+                        case "08":
+                            t[1] = 0X08;
+                            break;
+                        case "09":
+                            t[1] = 0X09;
+                            break;
+                        case "10":
+                            t[1] = 0X10;
+                            break;
+                        case "11":
+                            t[1] = 0X11;
+                            break;
+                        case "0A":
+                            t[1] = 0X0A;
+                            break;
+                        case "12":
+                            t[1] = 0X12;
+                            break;
+                        case "13":
+                            t[1] = 0X13;
+                            break;
+                        case "14":
+                            t[1] = 0X14;
+                            break;
+                        case "15":
+                            t[1] = 0X15;
+                            break;
+                        case "16":
+                            t[1] = 0X16;
+                            break;
+                        case "17":
+                            t[1] = 0X17;
+                            break;
+                        case "18":
+                            t[1] = 0X18;
+                            break;
+                        case "19":
+                            t[1] = 0X19;
+                            break;
+                        case "1A":
+                            t[1] = 0X1A;
+                            break;
+                        case "1B":
+                            t[1] = 0X1B;
+                            break;
+                        default:
+                            break;
+                    }
+                    port.Write(t, 0, 2);
+                }
+                RemainList[i] = soncode + "(" + prdetail + ")";
+            }
+            if (dt1.Rows.Count > 0)
+            {
+                try
+                {
+                    string soncode = dt1.Rows[RemainIndex]["sp_soncode"].ToString();
+                    string prdetail = dt1.Rows[RemainIndex]["pr_detail"].ToString();
+                    OperateResult.AppendText("<<请采集" + soncode + "(" + prdetail + ")的物料数据\n", Color.Black);
+                }
+                catch (Exception)
+                {
+                    OperateResult.AppendText(">>序列号" + sn_code.Text + "上料采集完成!\n", Color.Green);
+                    code.Text = "";
+                    sn_code.Text = "";
+                }
+            }
+            else
+            {
+                OperateResult.AppendText(">>序列号" + sn_code.Text + "不在本道工序,请采集其它序列号\n", Color.Red);
+                if (!LogicHandler.SetStepResult(ma_code.Text, User.UserSourceCode, sn_code.Text, "上料采集", "上料成功", User.UserCode, out ErrorMessage))
+                    OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red);
+                else
+                {
+                    //提示正确返回时传递的信息
+                    if (ErrorMessage.Contains("AFTERSUCCESS"))
+                        OperateResult.AppendText(">>" + ErrorMessage + "\n");
+                    OperateResult.AppendText(">>序列号" + sn_code.Text + "采集成功!\n", Color.Green);
+                }
+                code.Text = "";
+                sn_code.Text = "";
+            }
+        }
+
+        //此类中通用的保存逻辑
+        private void Save_OtherCode(string sp_fsoncode, string sp_soncode, string ma_code, string ms_sncode, string sp_id, string resultstr)
+        {
+            CollectDataSonCode.Add(sp_soncode);
+            //采集成功提示
+            ResultStr.Add(resultstr);
+            CollectData.Add(code.Text);
+            if (!CheckBarcode.ContainsKey(sp_fsoncode))
+            {
+                CheckBarcode.Add(sp_fsoncode, code.Text);
+            }
+            SPID.Add(sp_id);
+            OperateResult.AppendText(">>物料" + sp_soncode + "采集成功,条码" + code.Text + "\n", Color.Green);
+            LabelDataGridView.Rows[RemainIndex].Cells["BarCode"].Value = code.Text;
+            if (code.Text.Length > 80)
+                OperateResult.AppendText(">>采集条码" + code.Text + "程度超过长度限制80,内容截取前80位进行采集\n", Color.Red);
+            code.Clear();
+            RemainIndex = RemainIndex + 1;
+            //如果+1后不小于B序列的长度,则已采集完成,不需要进行提示了
+            if (RemainIndex < RemainList.Length)
+            {
+                OperateResult.AppendText("<<请采集" + RemainList[RemainIndex] + "的物料数据\n", Color.Black);
+            }
+            else
+            {
+                sql.Clear();
+                sql.Append("insert into Craftmaterial (cm_id ,cm_prodtype,cm_makecode,cm_maid,cm_maprodcode, cm_soncode, cm_mscode, cm_sncode, cm_stepcode, cm_stepname,cm_fsoncode,");
+                sql.Append("cm_craftcode,cm_craftname,cm_barcode,cm_inqty,cm_indate,cm_inman,cm_linecode,cm_wccode,cm_sourcecode,cm_spid,cm_status,cm_materialtype,cm_firstsn,cm_substr)");
+                sql.Append("select Craftmaterial_seq.nextval,sp_prodtype, ma_code, ma_id, ma_prodcode,:soncode,ms_code,ms_sncode,mcd_stepcode,");
+                sql.Append("mcd_stepname,sp_fsoncode,ms_craftcode,ms_craftname,:barcode,1,sysdate,'" + User.UserCode + "','" + User.UserLineCode + "',ma_wccode,");
+                sql.Append("'" + User.UserSourceCode + "',:sp_id,0,1,ms_firstsn,:substr from make left join makecraftdetail on mcd_maid=ma_id  left join stepproduct on sp_stepcode=mcd_stepcode ");
+                sql.Append(" and sp_mothercode = ma_prodcode left join makeserial on ms_makecode=ma_code and sp_craftcode=ms_craftcode ");
+                sql.Append("where ma_code='" + make_code + "'and sp_id=:sp_id1 and mcd_stepcode = '" + User.CurrentStepCode + "' and ms_sncode='" + ms_sncode + "'");
+                dh.BatchInsert(sql.GetString(), new string[] { "soncode", "barcode", "sp_id", "substr", "sp_id1", }, CollectDataSonCode.ToArray(), CollectData.ToArray(), SPID.ToArray(), ResultStr.ToArray(), SPID.ToArray());
+                try
+                {
+                    string Log = "";
+                    for (int i = 0; i < CollectDataSonCode.Count; i++)
+                    {
+                        Log += CollectDataSonCode.ToArray()[i] + " " + CollectData.ToArray()[i] + " " + SPID.ToArray()[i];
+                    }
+                    LogManager.DoLog(Log);
+                }
+                catch (Exception)
+                {
+
+                }
+                //更新序列号半成品已被使用
+                dh.BatchInsert("update makeserial set ms_nextmacode='" + ma_code + "' where ms_id=(select max(ms_id) from makeserial where ms_sncode=:sncode and ms_nextmacode is null and ms_makecode<>'" + ma_code + "')", new string[] { "sncode" }, TSN.ToArray());
+                if (ma_ecncode_label.Checked || ma_softversion_label.Checked)
+                {
+                    string ecnText = ma_ecncode_label.Checked ? ma_ecncode.Text : "";
+                    string softversionText = ma_softversion_label.Checked ? ma_softversion.Text : "";
+                    string remark = sir_remark_label.Checked ? sir_remark.Text : "";
+                    sql.Clear();
+                    sql.Append("insert into SNRELATIONINFORECORD(SIR_ID,SIR_SNCODE,SIR_MSCODE,SIR_ECNCODE,SIR_SOFTVER,");
+                    sql.Append("SIR_LINECODE,SIR_SOURCECODE,SIR_STEPCODE,SIR_MACODE,SIR_PRODCODE,SIR_INMAN,SIR_INDATE,sir_firstsn,sir_remark) select ");
+                    sql.Append("SNRELATIONINFORECORD_SEQ.nextval,'" + sn_code.Text + "',ms_code,'" + ecnText + "','" + softversionText + "',");
+                    sql.Append("'" + User.UserLineCode + "','" + User.UserSourceCode + "','" + User.CurrentStepCode + "','" + ma_code + "','" + ma_prodcode.Text + "',");
+                    sql.Append("'" + User.UserCode + "',sysdate,ms_firstsn,'" + remark + "' from makeserial where ms_sncode='" + sn_code.Text + "' and ms_makecode='" + ma_code + "'");
+                    dh.ExecuteSql(sql.GetString(), "insert");
+                }
+                CollectData.Clear();
+                TSN.Clear();
+                SPID.Clear();
+                CheckBarcode.Clear();
+                CollectDataSonCode.Clear();
+                //采集成功,设置序列号栏目为空
+                RemainIndex = 0;
+                OperateResult.AppendText(">>序列号" + sn_code.Text + "上料采集完成!\n", Color.Green);
+                LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, oMakeCode, User.UserLineCode, User.UserSourceCode, "上料采集", "上料成功", sn_code.Text, "");
+                if (LogicHandler.SetStepResult(ma_code, User.UserSourceCode, sn_code.Text, "上料采集", "上料成功", User.UserCode, out ErrorMessage))
+                {
+                    if (port.IsOpen)
+                    {
+                        byte[] t = new byte[2];
+                        t[0] = 0X00;
+                        t[1] = 0XFF;
+                        port.Write(t, 0, 2);
+                    }
+                    //提示正确返回时传递的信息
+                    if (ErrorMessage.Contains("AFTERSUCCESS"))
+                        OperateResult.AppendText(">>" + ErrorMessage + "\n");
+                    sn_code.Text = "";
+                    //刷新数据
+                    EventArgs e = new EventArgs();
+                    object sender = null;
+                    ma_code_UserControlTextChanged(sender, e);
+                }
+                else
+                {
+                    OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, code);
+                }
+            }
+        }
+
+        private void ClearSn_code_Click(object sender, EventArgs e)
+        {
+            sn_code.Clear();
+            SPID.Clear();
+            TSN.Clear();
+            CheckBarcode.Clear();
+            CollectData.Clear();
+            CollectDataSonCode.Clear();
+            if (dt1 != null)
+                BaseUtil.CleanDataTableData(dt1);
+            RemainIndex = 0;
+            BaseUtil.CleanDGVData(LabelDataGridView);
+            OperateResult.AppendText(">>请采集序列号\n", Color.Black);
+        }
+
+        private void ma_code_UserControlTextChanged(object sender, EventArgs e)
+        {
+            if (ma_code.Text.Length > 5)
+            {
+                string ErrMessage = "";
+                if (LogicHandler.CheckMakeStatus(ma_code.Text, out ErrMessage))
+                {
+                    mcd_inqty.Text = "";
+                    mcd_remainqty.Text = "";
+                    sql.Clear();
+                    sql.Append("select mcd_inqty,ma_qty-mcd_inqty mcd_remainqty ");
+                    sql.Append("from make left join makecraftdetail_view on mcd_macode=ma_code where ");
+                    sql.Append("ma_code='" + ma_code.Text + "' and mcd_stepcode='" + User.CurrentStepCode + "'");
+                    DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                    if (dt.Rows.Count > 0)
+                        BaseUtil.SetFormValue(Controls, dt);
+                }
+            }
+        }
+        SerialPort port = new SerialPort();
+
+        private void OpenPort_Click(object sender, EventArgs e)
+        {
+            port.PortName = serialPortCombox1.Text;
+            port.BaudRate = 9600;
+            port.Open();
+            OperateResult.AppendText(">>串口打开成功\n");
+        }
+
+        private void ma_prodcode_TextChanged(object sender, EventArgs e)
+        {
+            code.Str = ma_prodcode.Text;
+        }
+    }
+}

+ 532 - 0
UAS_MES_YDCY/FunctionCode/Make/Make_FeedingCollectionReCall.resx

@@ -0,0 +1,532 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="序号.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="cm_makecode.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="pr_detail_.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="cm_soncode.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="cm_barcode.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="BarCode.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="Clean.DownImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFfSURBVFhH5dhNTsJgFIXhM2WiCxL2oAEHrJKhQSYM
+        JIgzjSLIX0sRKPSPtl+Lo2uOgVbWcJu8CzhP8nVwISIAUAFwA+AWQFNh3M39lZMHrgDUu91uyxjji8KP
+        u7mfDgCuiVLt958fkjSTie3I62iqLu7m/sHgpQ2gRpSG6/nmc2bL23imtuHMkp0f5ADuidIMoljev+bq
+        o8PpH4NmcIjlY7JQHx0KlPCQyHBqqY8OJUqcyGhuq48OBUoUJzJeLNVHhwLlkKQysRz10eECZbpcqe8C
+        JU6NzJ1v9dGhQElSI9Zqoz46lCgmE3u9VR8dCpTUZOJsXPXRoUTJclltd+qjQ4FislzW7l59dChR8lw2
+        e099dDijNA5xYnZBKFvPVxv3x0lanA5qT71eOzsexQsjcf1AXdzN/XQ4H5l4fqs/djqtIIzC/Pgj2uJu
+        7i/Okf8O11UAd6c3pS3u5v6/w/UvTaFspAxAMh4AAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="Clean.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+        YII=
+</value>
+  </data>
+  <data name="Clean.MoveImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF3SURBVFhH5djbSgJRFMbxHsP7wBfYT7jvu46QDIoI
+        C4QNQRAIgVBRSdpxpgZN83wYx5nZOjNqrvgEd73DGvhfzdX3g32ztohoS0iVElLtCakehVQdhmE39qfg
+        AZBtIdX70Y0TjsJ4SQw/7MZ+OAip0kDJnD3UdJAsyXIjKvWm7MJu7M+X6lpIlQWK3ZhEq8pgRvfdKdvK
+        /Rk1/XglpHKA0ulPF3Tb0eyDAzzWKL3pgq7bmn1wMChdPadiK2QfHAxKW8/pqhmwDw4GpRXOqdAI2AcH
+        g9IME7qs++yDg0H5DhK6qE3YBweD0vATOq967IODQfnyE1KOxz44GJTaJKb855h9cDAoVS+mU9tlHxwM
+        iuPFdGK57IPDH8o4ouO3EfvgYFA+xhEdvg7ZB4cNil3uhquc5dLBy5Bt2P/U0+Z0kN0tOhqHlpzt0v7z
+        gF3Yjf1w2ByZ0jjD7RSs8K7l/+Ant7Ab+8058t/hOiOkquBNMQy7sX99uP4F5D4U8hdr4uMAAAAASUVO
+        RK5CYII=
+</value>
+  </data>
+  <data name="Clean.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGpSURBVFhH5dg/ayJBGMfxB4YFXTARBAvBQhAsBEEQ
+        ZLnNzFu4I6aYV5kyF9tgbad1jrsYY9T4Z3fcnV2f45e38Sx8q6l+n2IWhpiZjDFVY8wPY8xPY4wVGHZj
+        fxUepLW+0Vrfz+fzR+fclgV+2I39cNBa31Icx/FisXi6XpnL8io27F8ul89xHN9RFEWTPM+ToihZet57
+        F0XRA43HYwsp7wvxwQEeNBqNbFmWnOW5+OAADxoOh7YoS3ZZJj44wIMGg4H1RcGpu4gPDvCgfr9vvfd8
+        TlPxwQEe1Ov1bO49H8+J+OAAD+p2uxaXzNfpJD44wIM6nY69ZDnvDkfxwQEe1G637SXLeLs/iA8O8KBW
+        q2XdJePNbi8+OMCDms2mxe9o/bkTHxzgQY1GwybO8WrzKT44wIPq9bpNUsdv64344AAPqtVq9pw6/vv+
+        IT44wIPCMJzsvg7Jv/UH/1m9iw3794ejC8PwgSqVyt3LbPZ8SpLvg9e3lbiwG/vhAA8KguA2CIL739Pp
+        42a73eNQWtiN/XCAB+GhVilVVUrFSqlfSikrMOzG/u+H6/+yQ4jdXN8e9AAAAABJRU5ErkJggg==
+</value>
+  </data>
+  <data name="Confirm.DownImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFfSURBVFhH5dhNTsJgFIXhM2WiCxL2oAEHrJKhQSYM
+        JIgzjSLIX0sRKPSPtl+Lo2uOgVbWcJu8CzhP8nVwISIAUAFwA+AWQFNh3M39lZMHrgDUu91uyxjji8KP
+        u7mfDgCuiVLt958fkjSTie3I62iqLu7m/sHgpQ2gRpSG6/nmc2bL23imtuHMkp0f5ADuidIMoljev+bq
+        o8PpH4NmcIjlY7JQHx0KlPCQyHBqqY8OJUqcyGhuq48OBUoUJzJeLNVHhwLlkKQysRz10eECZbpcqe8C
+        JU6NzJ1v9dGhQElSI9Zqoz46lCgmE3u9VR8dCpTUZOJsXPXRoUTJclltd+qjQ4FislzW7l59dChR8lw2
+        e099dDijNA5xYnZBKFvPVxv3x0lanA5qT71eOzsexQsjcf1AXdzN/XQ4H5l4fqs/djqtIIzC/Pgj2uJu
+        7i/Okf8O11UAd6c3pS3u5v6/w/UvTaFspAxAMh4AAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="Confirm.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+        YII=
+</value>
+  </data>
+  <data name="Confirm.MoveImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF3SURBVFhH5djbSgJRFMbxHsP7wBfYT7jvu46QDIoI
+        C4QNQRAIgVBRSdpxpgZN83wYx5nZOjNqrvgEd73DGvhfzdX3g32ztohoS0iVElLtCakehVQdhmE39qfg
+        AZBtIdX70Y0TjsJ4SQw/7MZ+OAip0kDJnD3UdJAsyXIjKvWm7MJu7M+X6lpIlQWK3ZhEq8pgRvfdKdvK
+        /Rk1/XglpHKA0ulPF3Tb0eyDAzzWKL3pgq7bmn1wMChdPadiK2QfHAxKW8/pqhmwDw4GpRXOqdAI2AcH
+        g9IME7qs++yDg0H5DhK6qE3YBweD0vATOq967IODQfnyE1KOxz44GJTaJKb855h9cDAoVS+mU9tlHxwM
+        iuPFdGK57IPDH8o4ouO3EfvgYFA+xhEdvg7ZB4cNil3uhquc5dLBy5Bt2P/U0+Z0kN0tOhqHlpzt0v7z
+        gF3Yjf1w2ByZ0jjD7RSs8K7l/+Ant7Ab+8058t/hOiOkquBNMQy7sX99uP4F5D4U8hdr4uMAAAAASUVO
+        RK5CYII=
+</value>
+  </data>
+  <data name="Confirm.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGpSURBVFhH5dg/ayJBGMfxB4YFXTARBAvBQhAsBEEQ
+        ZLnNzFu4I6aYV5kyF9tgbad1jrsYY9T4Z3fcnV2f45e38Sx8q6l+n2IWhpiZjDFVY8wPY8xPY4wVGHZj
+        fxUepLW+0Vrfz+fzR+fclgV+2I39cNBa31Icx/FisXi6XpnL8io27F8ul89xHN9RFEWTPM+ToihZet57
+        F0XRA43HYwsp7wvxwQEeNBqNbFmWnOW5+OAADxoOh7YoS3ZZJj44wIMGg4H1RcGpu4gPDvCgfr9vvfd8
+        TlPxwQEe1Ov1bO49H8+J+OAAD+p2uxaXzNfpJD44wIM6nY69ZDnvDkfxwQEe1G637SXLeLs/iA8O8KBW
+        q2XdJePNbi8+OMCDms2mxe9o/bkTHxzgQY1GwybO8WrzKT44wIPq9bpNUsdv64344AAPqtVq9pw6/vv+
+        IT44wIPCMJzsvg7Jv/UH/1m9iw3794ejC8PwgSqVyt3LbPZ8SpLvg9e3lbiwG/vhAA8KguA2CIL739Pp
+        42a73eNQWtiN/XCAB+GhVilVVUrFSqlfSikrMOzG/u+H6/+yQ4jdXN8e9AAAAABJRU5ErkJggg==
+</value>
+  </data>
+  <data name="OpenPort.DownImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFfSURBVFhH5dhNTsJgFIXhM2WiCxL2oAEHrJKhQSYM
+        JIgzjSLIX0sRKPSPtl+Lo2uOgVbWcJu8CzhP8nVwISIAUAFwA+AWQFNh3M39lZMHrgDUu91uyxjji8KP
+        u7mfDgCuiVLt958fkjSTie3I62iqLu7m/sHgpQ2gRpSG6/nmc2bL23imtuHMkp0f5ADuidIMoljev+bq
+        o8PpH4NmcIjlY7JQHx0KlPCQyHBqqY8OJUqcyGhuq48OBUoUJzJeLNVHhwLlkKQysRz10eECZbpcqe8C
+        JU6NzJ1v9dGhQElSI9Zqoz46lCgmE3u9VR8dCpTUZOJsXPXRoUTJclltd+qjQ4FislzW7l59dChR8lw2
+        e099dDijNA5xYnZBKFvPVxv3x0lanA5qT71eOzsexQsjcf1AXdzN/XQ4H5l4fqs/djqtIIzC/Pgj2uJu
+        7i/Okf8O11UAd6c3pS3u5v6/w/UvTaFspAxAMh4AAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="OpenPort.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+        YII=
+</value>
+  </data>
+  <data name="OpenPort.MoveImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF3SURBVFhH5djbSgJRFMbxHsP7wBfYT7jvu46QDIoI
+        C4QNQRAIgVBRSdpxpgZN83wYx5nZOjNqrvgEd73DGvhfzdX3g32ztohoS0iVElLtCakehVQdhmE39qfg
+        AZBtIdX70Y0TjsJ4SQw/7MZ+OAip0kDJnD3UdJAsyXIjKvWm7MJu7M+X6lpIlQWK3ZhEq8pgRvfdKdvK
+        /Rk1/XglpHKA0ulPF3Tb0eyDAzzWKL3pgq7bmn1wMChdPadiK2QfHAxKW8/pqhmwDw4GpRXOqdAI2AcH
+        g9IME7qs++yDg0H5DhK6qE3YBweD0vATOq967IODQfnyE1KOxz44GJTaJKb855h9cDAoVS+mU9tlHxwM
+        iuPFdGK57IPDH8o4ouO3EfvgYFA+xhEdvg7ZB4cNil3uhquc5dLBy5Bt2P/U0+Z0kN0tOhqHlpzt0v7z
+        gF3Yjf1w2ByZ0jjD7RSs8K7l/+Ant7Ab+8058t/hOiOkquBNMQy7sX99uP4F5D4U8hdr4uMAAAAASUVO
+        RK5CYII=
+</value>
+  </data>
+  <data name="OpenPort.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGpSURBVFhH5dg/ayJBGMfxB4YFXTARBAvBQhAsBEEQ
+        ZLnNzFu4I6aYV5kyF9tgbad1jrsYY9T4Z3fcnV2f45e38Sx8q6l+n2IWhpiZjDFVY8wPY8xPY4wVGHZj
+        fxUepLW+0Vrfz+fzR+fclgV+2I39cNBa31Icx/FisXi6XpnL8io27F8ul89xHN9RFEWTPM+ToihZet57
+        F0XRA43HYwsp7wvxwQEeNBqNbFmWnOW5+OAADxoOh7YoS3ZZJj44wIMGg4H1RcGpu4gPDvCgfr9vvfd8
+        TlPxwQEe1Ov1bO49H8+J+OAAD+p2uxaXzNfpJD44wIM6nY69ZDnvDkfxwQEe1G637SXLeLs/iA8O8KBW
+        q2XdJePNbi8+OMCDms2mxe9o/bkTHxzgQY1GwybO8WrzKT44wIPq9bpNUsdv64344AAPqtVq9pw6/vv+
+        IT44wIPCMJzsvg7Jv/UH/1m9iw3794ejC8PwgSqVyt3LbPZ8SpLvg9e3lbiwG/vhAA8KguA2CIL739Pp
+        42a73eNQWtiN/XCAB+GhVilVVUrFSqlfSikrMOzG/u+H6/+yQ4jdXN8e9AAAAABJRU5ErkJggg==
+</value>
+  </data>
+</root>

+ 7 - 1
UAS_MES_YDCY/FunctionCode/Make/Make_GetReMakeSN.cs

@@ -116,11 +116,12 @@ namespace UAS_MES_NEW.Make
                             {
                             {
                                 //序列号信息
                                 //序列号信息
                                 sql.Clear();
                                 sql.Clear();
-                                sql.Append("select ms_beforesn,ms_status,ms_makecode,ms_firstsn,ms_outboxcode,ms_nextmacode,ms_prodcode,ms_salecode,");
+                                sql.Append("select ms_beforesn,nvl(ms_outstatus,0)ms_outstatus,ms_status,ms_makecode,ms_firstsn,ms_outboxcode,ms_nextmacode,ms_prodcode,ms_salecode,");
                                 sql.Append("MS_IMEI1,MS_MAC,MS_NETCODE,MS_MEID,ms_imei2,ms_imei3,ms_othid1,ms_othid2,ms_othid3");
                                 sql.Append("MS_IMEI1,MS_MAC,MS_NETCODE,MS_MEID,ms_imei2,ms_imei3,ms_othid1,ms_othid2,ms_othid3");
                                 sql.Append(",MS_OTHCODE3,MS_OTHCODE2,MS_OTHCODE1,ms_bt from makeserial where ms_id='" + Msid + "'");
                                 sql.Append(",MS_OTHCODE3,MS_OTHCODE2,MS_OTHCODE1,ms_bt from makeserial where ms_id='" + Msid + "'");
                                 DataTable SnInf = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
                                 DataTable SnInf = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
                                 string ms_prodcode = SnInf.Rows[0]["ms_prodcode"].ToString();
                                 string ms_prodcode = SnInf.Rows[0]["ms_prodcode"].ToString();
+                                string ms_outstatus = SnInf.Rows[0]["ms_outstatus"].ToString();
                                 string ms_salecode = SnInf.Rows[0]["ms_salecode"].ToString();
                                 string ms_salecode = SnInf.Rows[0]["ms_salecode"].ToString();
                                 string ms_beforesn = SnInf.Rows[0]["ms_beforesn"].ToString();
                                 string ms_beforesn = SnInf.Rows[0]["ms_beforesn"].ToString();
                                 string ms_makecode = SnInf.Rows[0]["ms_makecode"].ToString();
                                 string ms_makecode = SnInf.Rows[0]["ms_makecode"].ToString();
@@ -132,6 +133,11 @@ namespace UAS_MES_NEW.Make
                                     OperateResult.AppendText(">>序列号已经被工单号:" + SnInf.Rows[0]["ms_nextmacode"].ToString() + "使用\n", Color.Red, sn_code);
                                     OperateResult.AppendText(">>序列号已经被工单号:" + SnInf.Rows[0]["ms_nextmacode"].ToString() + "使用\n", Color.Red, sn_code);
                                     return;
                                     return;
                                 }
                                 }
+                                if (ms_outstatus == "-1")
+                                {
+                                    OperateResult.AppendText(">>序列号" + sn_code.Text + "已出货,不允许采集到返工工单\n", Color.Red, sn_code);
+                                    return;
+                                }
                                 //工单信息
                                 //工单信息
                                 sql.Clear();
                                 sql.Clear();
                                 sql.Append("select ma_salecode,nvl(ma_checksacode,0)ma_checksacode,ma_prodcode,ma_craftname,ma_inqty,ma_craftcode,ma_qty,nvl(ma_inqty,0) ma_inqty,");
                                 sql.Append("select ma_salecode,nvl(ma_checksacode,0)ma_checksacode,ma_prodcode,ma_craftname,ma_inqty,ma_craftcode,ma_qty,nvl(ma_inqty,0) ma_inqty,");

+ 10 - 1
UAS_MES_YDCY/PublicMethod/LogicHandler.cs

@@ -1220,7 +1220,7 @@ namespace UAS_MES_NEW.PublicMethod
             return param[4];
             return param[4];
         }
         }
 
 
-        public static bool CheckSNBeforeLoad(string iMakeCode, string iSN, string iFSonCode, string iSonCode, string iRule, string iPrefix, string iLength, string iIfRepeat, string iChecksalecode, string iSubNum, string iSubNumLength, out string Resultstr, out string ErrMessage)
+        public static bool CheckSNBeforeLoad(string iMakeCode, string iMsSncode, string iSN, string iFSonCode, string iSonCode, string iRule, string iPrefix, string iLength, string iIfRepeat, string iChecksalecode, string iSubNum, string iSubNumLength, string iEdiStatus, out string Resultstr, out string ErrMessage)
         {
         {
             DataTable dt;
             DataTable dt;
             ErrMessage = "";
             ErrMessage = "";
@@ -1270,6 +1270,15 @@ namespace UAS_MES_NEW.PublicMethod
                             return false;
                             return false;
                         }
                         }
                     }
                     }
+                    if (iEdiStatus == "-1")
+                    {
+                        dt = (DataTable)dh.ExecuteSql("select cm_barcode from craftmaterial where cm_barcode='" + iSN + "' and cm_sncode='" + iMsSncode + "' and cm_status=-1", "select");
+                        if (dt.Rows.Count > 0)
+                        {
+                            ErrMessage = "条码" + iSN + "之前未上料,不允许绑定";
+                            return false;
+                        }
+                    }
                     dt = (DataTable)dh.ExecuteSql("select bar_prodcode,bar_code from barcode where bar_code='" + iSN + "'", "select");
                     dt = (DataTable)dh.ExecuteSql("select bar_prodcode,bar_code from barcode where bar_code='" + iSN + "'", "select");
                     if (dt.Rows.Count > 0)
                     if (dt.Rows.Count > 0)
                     {
                     {

+ 9 - 0
UAS_MES_YDCY/UAS_MES_YDCY.csproj

@@ -574,6 +574,12 @@
     <Compile Include="FunctionCode\Make\Make_DecomposeCJ.Designer.cs">
     <Compile Include="FunctionCode\Make\Make_DecomposeCJ.Designer.cs">
       <DependentUpon>Make_DecomposeCJ.cs</DependentUpon>
       <DependentUpon>Make_DecomposeCJ.cs</DependentUpon>
     </Compile>
     </Compile>
+    <Compile Include="FunctionCode\Make\Make_FeedingCollectionReCall.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="FunctionCode\Make\Make_FeedingCollectionReCall.Designer.cs">
+      <DependentUpon>Make_FeedingCollectionReCall.cs</DependentUpon>
+    </Compile>
     <Compile Include="FunctionCode\Make\Make_FeedingCollectionBadOnly.cs">
     <Compile Include="FunctionCode\Make\Make_FeedingCollectionBadOnly.cs">
       <SubType>Form</SubType>
       <SubType>Form</SubType>
     </Compile>
     </Compile>
@@ -1704,6 +1710,9 @@
     <EmbeddedResource Include="FunctionCode\Make\Make_DecomposeCJ.resx">
     <EmbeddedResource Include="FunctionCode\Make\Make_DecomposeCJ.resx">
       <DependentUpon>Make_DecomposeCJ.cs</DependentUpon>
       <DependentUpon>Make_DecomposeCJ.cs</DependentUpon>
     </EmbeddedResource>
     </EmbeddedResource>
+    <EmbeddedResource Include="FunctionCode\Make\Make_FeedingCollectionReCall.resx">
+      <DependentUpon>Make_FeedingCollectionReCall.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="FunctionCode\Make\Make_FeedingCollectionBadOnly.resx">
     <EmbeddedResource Include="FunctionCode\Make\Make_FeedingCollectionBadOnly.resx">
       <DependentUpon>Make_FeedingCollectionBadOnly.cs</DependentUpon>
       <DependentUpon>Make_FeedingCollectionBadOnly.cs</DependentUpon>
     </EmbeddedResource>
     </EmbeddedResource>