Browse Source

取消从IMEI清单取值

callm 11 months ago
parent
commit
b40f6412c6

+ 0 - 16
UAS_MES_YD/FunctionCode/Make/Make_ColorBoxLabelPrint.cs

@@ -172,22 +172,6 @@ namespace UAS_MES_NEW.Make
                         {
                             sncode.Text = dt.Rows[0]["ms_sncode"].ToString();
                         }
-                        else
-                        {
-                            dt = (DataTable)dh.ExecuteSql("select mil_sncode from makeimeilist where mil_imei1='" + sncode.Text + "' order by mil_id desc", "select");
-                            if (dt.Rows.Count > 0)
-                            {
-                                sncode.Text = dt.Rows[0]["mil_sncode"].ToString();
-                            }
-                            else
-                            {
-                                dt = (DataTable)dh.ExecuteSql("select mil_sncode from makeimeilist where mil_imei2='" + sncode.Text + "' order by mil_id desc", "select");
-                                if (dt.Rows.Count > 0)
-                                {
-                                    sncode.Text = dt.Rows[0]["mil_sncode"].ToString();
-                                }
-                            }
-                        }
                     }
                     LogicHandler.GetMakeInfo(sncode.Text, out oMakeCode, out status, out ErrorMessage);
                     if (LogicHandler.CheckStepSNAndMacode(oMakeCode, User.UserSourceCode, sncode.Text, User.UserCode, out oMakeCode, out oMsID, out ErrorMessage))

+ 0 - 16
UAS_MES_YD/FunctionCode/Make/Make_Decompose.cs

@@ -77,22 +77,6 @@ namespace UAS_MES_NEW.Make
                     {
                         sn_code.Text = dt.Rows[0]["ms_sncode"].ToString();
                     }
-                    else
-                    {
-                        dt = (DataTable)dh.ExecuteSql("select mil_sncode from makeimeilist where mil_imei1='" + sn_code.Text + "' order by mil_id desc", "select");
-                        if (dt.Rows.Count > 0)
-                        {
-                            sn_code.Text = dt.Rows[0]["mil_sncode"].ToString();
-                        }
-                        else
-                        {
-                            dt = (DataTable)dh.ExecuteSql("select mil_sncode from makeimeilist where mil_imei2='" + sn_code.Text + "' order by mil_id desc", "select");
-                            if (dt.Rows.Count > 0)
-                            {
-                                sn_code.Text = dt.Rows[0]["mil_sncode"].ToString();
-                            }
-                        }
-                    }
                 }
                 sql.Clear();
                 sql.Append("select max(ms_id) from makeserial where ms_sncode ='" + sn_code.Text + "' or ms_sncode = (select  max(SN)");

+ 0 - 16
UAS_MES_YD/FunctionCode/Make/Make_FeedingCollection.cs

@@ -276,22 +276,6 @@ namespace UAS_MES_NEW.Make
                 {
                     code.Text = dt.Rows[0]["ms_sncode"].ToString();
                 }
-                else
-                {
-                    dt = (DataTable)dh.ExecuteSql("select mil_sncode from makeimeilist where mil_imei1='" + code.Text + "' order by mil_id desc", "select");
-                    if (dt.Rows.Count > 0)
-                    {
-                        code.Text = dt.Rows[0]["mil_sncode"].ToString();
-                    }
-                    else
-                    {
-                        dt = (DataTable)dh.ExecuteSql("select mil_sncode from makeimeilist where mil_imei2='" + code.Text + "' order by mil_id desc", "select");
-                        if (dt.Rows.Count > 0)
-                        {
-                            code.Text = dt.Rows[0]["mil_sncode"].ToString();
-                        }
-                    }
-                }
             }
             if (LogicHandler.CheckStepSNAndMacode(oMakeCode, User.UserSourceCode, code.Text, User.UserCode, out oMakeCode, out oMsid, out ErrorMessage))
             {

+ 0 - 16
UAS_MES_YD/FunctionCode/Make/Make_FuselageLabelPrint.cs

@@ -132,22 +132,6 @@ namespace UAS_MES_NEW.Make
                         {
                             sncode.Text = dt.Rows[0]["ms_sncode"].ToString();
                         }
-                        else
-                        {
-                            dt = (DataTable)dh.ExecuteSql("select mil_sncode from makeimeilist where mil_imei1='" + sncode.Text + "' order by mil_id desc", "select");
-                            if (dt.Rows.Count > 0)
-                            {
-                                sncode.Text = dt.Rows[0]["mil_sncode"].ToString();
-                            }
-                            else
-                            {
-                                dt = (DataTable)dh.ExecuteSql("select mil_sncode from makeimeilist where mil_imei2='" + sncode.Text + "' order by mil_id desc", "select");
-                                if (dt.Rows.Count > 0)
-                                {
-                                    sncode.Text = dt.Rows[0]["mil_sncode"].ToString();
-                                }
-                            }
-                        }
                     }
                     LogicHandler.GetMakeInfo(sncode.Text, out oMakeCode, out status, out oErrorMessage);
                     if (oMakeCode == "" || oMakeCode == null)

+ 0 - 16
UAS_MES_YD/FunctionCode/Make/Make_ImeiCheck_ThreeLabel.cs

@@ -88,22 +88,6 @@ namespace UAS_MES_NEW.Make
                     {
                         sncode.Text = dt.Rows[0]["ms_sncode"].ToString();
                     }
-                    else
-                    {
-                        dt = (DataTable)dh.ExecuteSql("select mil_sncode from makeimeilist where mil_imei1='" + sncode.Text + "' order by mil_id desc", "select");
-                        if (dt.Rows.Count > 0)
-                        {
-                            sncode.Text = dt.Rows[0]["mil_sncode"].ToString();
-                        }
-                        else
-                        {
-                            dt = (DataTable)dh.ExecuteSql("select mil_sncode from makeimeilist where mil_imei2='" + sncode.Text + "' order by mil_id desc", "select");
-                            if (dt.Rows.Count > 0)
-                            {
-                                sncode.Text = dt.Rows[0]["mil_sncode"].ToString();
-                            }
-                        }
-                    }
                 }
                 if (LogicHandler.CheckStepSNAndMacode(ma_code.Text, User.UserSourceCode, sncode.Text, User.UserCode, out omakeCode, out oMsid, out oErrorMessage))
                 {

+ 0 - 16
UAS_MES_YD/FunctionCode/Make/Make_Repair.cs

@@ -171,22 +171,6 @@ namespace UAS_MES_NEW.Make
                     {
                         GetSNCode.Text = dt.Rows[0]["ms_sncode"].ToString();
                     }
-                    else
-                    {
-                        dt = (DataTable)dh.ExecuteSql("select mil_sncode from makeimeilist where mil_imei1='" + GetSNCode.Text + "' order by mil_id desc", "select");
-                        if (dt.Rows.Count > 0)
-                        {
-                            GetSNCode.Text = dt.Rows[0]["mil_sncode"].ToString();
-                        }
-                        else
-                        {
-                            dt = (DataTable)dh.ExecuteSql("select mil_sncode from makeimeilist where mil_imei2='" + GetSNCode.Text + "' order by mil_id desc", "select");
-                            if (dt.Rows.Count > 0)
-                            {
-                                GetSNCode.Text = dt.Rows[0]["mil_sncode"].ToString();
-                            }
-                        }
-                    }
                 }
                 sql.Clear();
                 sql.Append("select ms_status,ms_outboxcode,ms_paststep,ms_reworkstatus,nvl(ms_ifrework,0)ms_ifrework from makeserial left join make ");

+ 1 - 1
UAS_MES_YD/FunctionCode/Make/Make_TestCollection.cs

@@ -211,7 +211,7 @@ namespace UAS_MES_NEW.Make
                 ChoosedList.Clear();
                 if (LogicHandler.CheckStepAttribute(Tag.ToString(), User.UserSourceCode, out ErrorMessage))
                 {
-                    dt = (DataTable)dh.ExecuteSql("select ms_sncode from makeserial where   ms_imei1='" + ms_sncode.Text + "' order by ms_id desc", "select");
+                    dt = (DataTable)dh.ExecuteSql("select ms_sncode from makeserial where ms_imei1='" + ms_sncode.Text + "' order by ms_id desc", "select");
                     if (dt.Rows.Count > 0)
                     {
                         ms_sncode.Text = dt.Rows[0]["ms_sncode"].ToString();

+ 1 - 1
UAS_MES_YD/FunctionCode/Make/Make_TestCollection_DCW.Designer.cs

@@ -750,7 +750,7 @@
             this.BaudRate.Str1 = null;
             this.BaudRate.Str2 = null;
             this.BaudRate.TabIndex = 198;
-            this.BaudRate.Text = "115200";
+            this.BaudRate.Text = "115210";
             // 
             // SerialPortComBox_label
             // 

+ 0 - 16
UAS_MES_YD/FunctionCode/Packing/Packing_PackageCollection1.cs

@@ -220,22 +220,6 @@ namespace UAS_MES_NEW.Packing
                         {
                             sn_code.Text = dt.Rows[0]["ms_sncode"].ToString();
                         }
-                        else
-                        {
-                            dt = (DataTable)dh.ExecuteSql("select mil_sncode from makeimeilist where mil_imei1='" + sn_code.Text + "' order by mil_id desc", "select");
-                            if (dt.Rows.Count > 0)
-                            {
-                                sn_code.Text = dt.Rows[0]["mil_sncode"].ToString();
-                            }
-                            else
-                            {
-                                dt = (DataTable)dh.ExecuteSql("select mil_sncode from makeimeilist where mil_imei2='" + sn_code.Text + "' order by mil_id desc", "select");
-                                if (dt.Rows.Count > 0)
-                                {
-                                    sn_code.Text = dt.Rows[0]["mil_sncode"].ToString();
-                                }
-                            }
-                        }
                     }
                     dt = (DataTable)dh.ExecuteSql("select ms_status,ms_id,ms_makecode,ms_nextstepcode,ms_craftcode,ms_prodcode from makeserial where ms_sncode ='" + sn_code.Text + "' order by ms_id desc", "select");
                     if (LogicHandler.CheckStepSNAndMacode("", User.UserSourceCode, sn_code.Text, User.UserCode, out oMakeCode, out oMsID, out ErrorMessage) || (dt.Rows.Count > 0 && dt.Rows[0]["ms_status"].ToString() == "2"))

+ 0 - 16
UAS_MES_YD/FunctionCode/Packing/Packing_PackageCollectionWeigh.cs

@@ -287,22 +287,6 @@ namespace UAS_MES_NEW.Packing
                         {
                             sn_code.Text = dt.Rows[0]["ms_sncode"].ToString();
                         }
-                        else
-                        {
-                            dt = (DataTable)dh.ExecuteSql("select mil_sncode from makeimeilist where mil_imei1='" + sn_code.Text + "' order by mil_id desc", "select");
-                            if (dt.Rows.Count > 0)
-                            {
-                                sn_code.Text = dt.Rows[0]["mil_sncode"].ToString();
-                            }
-                            else
-                            {
-                                dt = (DataTable)dh.ExecuteSql("select mil_sncode from makeimeilist where mil_imei2='" + sn_code.Text + "' order by mil_id desc", "select");
-                                if (dt.Rows.Count > 0)
-                                {
-                                    sn_code.Text = dt.Rows[0]["mil_sncode"].ToString();
-                                }
-                            }
-                        }
                     }
                     dt = (DataTable)dh.ExecuteSql("select ms_status,ms_id,ms_makecode,ms_craftcode,ms_prodcode from makeserial where ms_sncode ='" + sn_code.Text + "'  order by ms_id desc", "select");
                     if (LogicHandler.CheckStepSNAndMacode("", User.UserSourceCode, sn_code.Text, User.UserCode, out oMakeCode, out oMsID, out ErrorMessage) || (dt.Rows.Count > 0 && dt.Rows[0]["ms_status"].ToString() == "2"))

+ 0 - 16
UAS_MES_YD/FunctionCode/Packing/Packing_PackageCollectionWeigh_HAOQ.cs

@@ -282,22 +282,6 @@ namespace UAS_MES_NEW.Packing
                         {
                             sn_code.Text = dt.Rows[0]["ms_sncode"].ToString();
                         }
-                        else
-                        {
-                            dt = (DataTable)dh.ExecuteSql("select mil_sncode from makeimeilist where mil_imei1='" + sn_code.Text + "' order by mil_id desc", "select");
-                            if (dt.Rows.Count > 0)
-                            {
-                                sn_code.Text = dt.Rows[0]["mil_sncode"].ToString();
-                            }
-                            else
-                            {
-                                dt = (DataTable)dh.ExecuteSql("select mil_sncode from makeimeilist where mil_imei2='" + sn_code.Text + "' order by mil_id desc", "select");
-                                if (dt.Rows.Count > 0)
-                                {
-                                    sn_code.Text = dt.Rows[0]["mil_sncode"].ToString();
-                                }
-                            }
-                        }
                     }
                     dt = (DataTable)dh.ExecuteSql("select ms_status,ms_id,ms_makecode,ms_craftcode,ms_prodcode from makeserial where ms_sncode ='" + sn_code.Text + "'  order by ms_id desc", "select");
                     if (LogicHandler.CheckStepSNAndMacode("", User.UserSourceCode, sn_code.Text, User.UserCode, out oMakeCode, out oMsID, out ErrorMessage) || (dt.Rows.Count > 0 && dt.Rows[0]["ms_status"].ToString() == "2"))

+ 0 - 16
UAS_MES_YD/FunctionCode/Packing/Packing_PackageCollectionWeigh_HUAGUAN.cs

@@ -275,22 +275,6 @@ namespace UAS_MES_NEW.Packing
                         {
                             sn_code.Text = dt.Rows[0]["ms_sncode"].ToString();
                         }
-                        else
-                        {
-                            dt = (DataTable)dh.ExecuteSql("select mil_sncode from makeimeilist where mil_imei1='" + sn_code.Text + "' order by mil_id desc", "select");
-                            if (dt.Rows.Count > 0)
-                            {
-                                sn_code.Text = dt.Rows[0]["mil_sncode"].ToString();
-                            }
-                            else
-                            {
-                                dt = (DataTable)dh.ExecuteSql("select mil_sncode from makeimeilist where mil_imei2='" + sn_code.Text + "' order by mil_id desc", "select");
-                                if (dt.Rows.Count > 0)
-                                {
-                                    sn_code.Text = dt.Rows[0]["mil_sncode"].ToString();
-                                }
-                            }
-                        }
                     }
                     dt = (DataTable)dh.ExecuteSql("select ms_status,ms_id,ms_makecode,ms_craftcode,ms_prodcode from makeserial where ms_sncode ='" + sn_code.Text + "'  order by ms_id desc", "select");
                     if (LogicHandler.CheckStepSNAndMacode("", User.UserSourceCode, sn_code.Text, User.UserCode, out oMakeCode, out oMsID, out ErrorMessage) || (dt.Rows.Count > 0 && dt.Rows[0]["ms_status"].ToString() == "2"))

+ 18 - 1
UAS_MES_YD/FunctionCode/Packing/Packing_PalletCollection.cs

@@ -223,7 +223,9 @@ namespace UAS_MES_NEW.Packing
                         {
                             return;
                         }
-                        dt = (DataTable)dh.ExecuteSql("select pa_id from  package where pa_outboxcode='" + pa_outboxcode.Text + "'", "select");
+                        sql.Clear();
+                        sql.Append("select pa_id,nvl(pa_iostatus,0) pa_iostatus,pa_outno,pa_type from package where pa_outboxcode='" + pa_outboxcode.Text + "'");
+                        dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
                         if (dt.Rows.Count == 0)
                         {
                             pa_id = dh.GetSEQ("package_seq");
@@ -235,6 +237,21 @@ namespace UAS_MES_NEW.Packing
                         else
                         {
                             pa_id = dt.Rows[0]["pa_id"].ToString();
+                            if (dt.Rows[0]["pa_type"].ToString() != "3")
+                            {
+                                OperateResult.AppendText(">>箱号" + pa_outboxcode.Text + "类型并非栈板,不允许操作\n", Color.Red);
+                                return;
+                            }
+                            if (dt.Rows[0]["pa_outno"].ToString() != "")
+                            {
+                                OperateResult.AppendText(">>栈板" + pa_outboxcode.Text + "已被出货单" + dt.Rows[0]["pa_outno"].ToString() + "采集,不允许操作\n", Color.Red);
+                                return;
+                            }
+                            if (dt.Rows[0]["pa_iostatus"].ToString() != "0")
+                            {
+                                OperateResult.AppendText(">>栈板" + pa_outboxcode.Text + "处于入库状态,不允许操作\n", Color.Red);
+                                return;
+                            }
                         }
                         palletcode_KeyDown(sender, e);
                         if (int.Parse(pa_totalqty.Text == "" ? "0" : pa_totalqty.Text) > 0)

+ 0 - 16
UAS_MES_YD/FunctionCode/Query/Query_ExeProgress.cs

@@ -76,22 +76,6 @@ namespace UAS_MES_NEW.Query
                     {
                         sn_code.Text = dt.Rows[0]["ms_sncode"].ToString();
                     }
-                    else
-                    {
-                        dt = (DataTable)dh.ExecuteSql("select mil_sncode from makeimeilist where mil_imei1='" + sn_code.Text + "' order by mil_id desc", "select");
-                        if (dt.Rows.Count > 0)
-                        {
-                            sn_code.Text = dt.Rows[0]["mil_sncode"].ToString();
-                        }
-                        else
-                        {
-                            dt = (DataTable)dh.ExecuteSql("select mil_sncode from makeimeilist where mil_imei2='" + sn_code.Text + "' order by mil_id desc", "select");
-                            if (dt.Rows.Count > 0)
-                            {
-                                sn_code.Text = dt.Rows[0]["mil_sncode"].ToString();
-                            }
-                        }
-                    }
                 }
                 ms_id = (DataTable)dh.ExecuteSql("select beforesn,sn from makesnrelation where beforesn='" + sn_code.Text + "' or sn='" + sn_code.Text + "'", "select");
                 if (ms_id.Rows.Count > 0)

+ 169 - 77
UAS_MES_YD/FunctionCode/Query/Query_SN.cs

@@ -209,7 +209,7 @@ namespace UAS_MES_NEW.Query
         private void SystemSetting_PrinterTest_Load(object sender, EventArgs e)
         {
             engine.Start();
-            msl_type.Text = "转号前";
+
 
             ma_code.TableName = " make left join product on ma_prodcode=pr_code";
             ma_code.SelectField = "ma_code # 工单编号,pr_code # 产品编号,pr_spec # 型号";
@@ -257,10 +257,10 @@ namespace UAS_MES_NEW.Query
                 MessageBox.Show("工单号" + ma_code.Text + "生产序列号超出工单数");
                 return;
             }
-            DataTable Nr = (DataTable)dh.ExecuteSql("select nrd_detno,nrd_name,nrd_type,nrd_radix,nrd_sql,nrd_length,nrd_content from NoRuleDetail left join norule on nrd_nrid=nr_id where nr_code='" + pr_exbarcode + "' order by nrd_detno", "select");
+            DataTable Nr = (DataTable)dh.ExecuteSql("select nrd_detno,nrd_name,nrd_type,nrd_radix,nrd_sql,nrd_length,nrd_content,nvl(nr_changenum,0)nr_changenum from NoRuleDetail left join norule on nrd_nrid=nr_id where nr_code='" + pr_exbarcode + "' order by nrd_detno", "select");
             //如果没有则取公共规则
             if (Nr.Rows.Count == 0)
-                Nr = (DataTable)dh.ExecuteSql("select nrd_detno,nrd_name,nrd_radix,nrd_type,nrd_sql,nrd_length,nrd_content from NoRuleDetail left join norule on nrd_nrid=nr_id where nr_custcode is null and nr_isdefault <> 0 order by nrd_detno", "select");
+                Nr = (DataTable)dh.ExecuteSql("select nrd_detno,nrd_name,nrd_radix,nrd_type,nrd_sql,nrd_length,nrd_content,nvl(nr_changenum,0)nr_changenum from NoRuleDetail left join norule on nrd_nrid=nr_id where nr_custcode is null and nr_isdefault <> 0 order by nrd_detno", "select");
             //用于过滤参数的正则表达式
             Regex match = new Regex("{\\w+}");
             //用于存放每一项的明细的数据
@@ -273,90 +273,182 @@ namespace UAS_MES_NEW.Query
             int Radix = 10;
             string PrefixFixed = "";
             string char_out = "";
-            for (int m = 0; m < Nr.Rows.Count; m++)
+            string nr_changenum = Nr.Rows[0]["nr_changenum"].ToString();
+            //如果是
+            if (nr_changenum != "-1")
             {
-                switch (Nr.Rows[m]["nrd_type"].ToString())
+                for (int m = 0; m < Nr.Rows.Count; m++)
                 {
-                    //常量直接进行拼接
-                    case "常量":
-                        NrData[m] = Nr.Rows[m]["nrd_sql"].ToString();
-                        Prefix += NrData[m];
-                        Suffix += NrData[m];
-                        break;
-                    case "SQL":
-                        string SQL = Nr.Rows[m]["nrd_sql"].ToString();
-                        DataTable Temp;
-                        //如果不包含参数替换
-                        if (SQL.IndexOf("{") == 0)
-                        {
-                            Temp = (DataTable)dh.ExecuteSql(SQL, "select");
-                        }
-                        else
-                        {
-                            //替换参数后重新执行SQL
-                            foreach (Match mch in match.Matches(SQL))
-                            {
-                                SQL = SQL.Replace(mch.Value.Trim(), "'" + ma_code.Text + "'");
-                            }
-                            Temp = (DataTable)dh.ExecuteSql(SQL, "select");
-                        }
-                        if (Temp.Rows.Count > 0)
-                        {
-                            NrData[m] = Temp.Rows[0][0].ToString();
-                            Prefix += NrData[m];
-                            Suffix += NrData[m];
-                        }
-                        else
-                        {
-                            NrData[m] = "";
+                    switch (Nr.Rows[m]["nrd_type"].ToString())
+                    {
+                        //常量直接进行拼接
+                        case "常量":
+                            NrData[m] = Nr.Rows[m]["nrd_sql"].ToString();
                             Prefix += NrData[m];
                             Suffix += NrData[m];
-                        }
-                        break;
-                    //流水需要通过MaxNumber去取
-                    case "流水":
-                        NrData[m] = dh.getFieldDataByCondition("RuleMaxNum", "rmn_maxnumber", "rmn_nrcode='" + pr_exbarcode + "'").ToString();
-                        Suffix = "";
-                        PrefixFixed = Prefix;
-                        //设置当前流水
-                        custserialnum = int.Parse(NrData[m] == "" ? "0" : NrData[m]);
-                        SerialNumIndex = m;
-                        SerialNumLength = int.Parse(Nr.Rows[m]["nrd_length"].ToString());
-                        Radix = int.Parse(Nr.Rows[m]["nrd_radix"].ToString());
-                        char_out = Nr.Rows[m]["nrd_content"].ToString();
-                        break;
-                    default:
-                        break;
+                            break;
+                        case "SQL":
+                            string SQL = Nr.Rows[m]["nrd_sql"].ToString();
+                            DataTable Temp;
+                            //如果不包含参数替换
+                            if (SQL.IndexOf("{") == 0)
+                            {
+                                Temp = (DataTable)dh.ExecuteSql(SQL, "select");
+                            }
+                            else
+                            {
+                                //替换参数后重新执行SQL
+                                foreach (Match mch in match.Matches(SQL))
+                                {
+                                    SQL = SQL.Replace(mch.Value.Trim(), "'" + ma_code.Text + "'");
+                                }
+                                Temp = (DataTable)dh.ExecuteSql(SQL, "select");
+                            }
+                            if (Temp.Rows.Count > 0)
+                            {
+                                NrData[m] = Temp.Rows[0][0].ToString();
+                                Prefix += NrData[m];
+                                Suffix += NrData[m];
+                            }
+                            else
+                            {
+                                NrData[m] = "";
+                                Prefix += NrData[m];
+                                Suffix += NrData[m];
+                            }
+                            break;
+                        //流水需要通过MaxNumber去取
+                        case "流水":
+                            NrData[m] = dh.getFieldDataByCondition("RuleMaxNum", "rmn_maxnumber", "rmn_nrcode='" + pr_exbarcode + "'").ToString();
+                            Suffix = "";
+                            PrefixFixed = Prefix;
+                            //设置当前流水
+                            custserialnum = int.Parse(NrData[m] == "" ? "0" : NrData[m]);
+                            SerialNumIndex = m;
+                            SerialNumLength = int.Parse(Nr.Rows[m]["nrd_length"].ToString());
+                            Radix = int.Parse(Nr.Rows[m]["nrd_radix"].ToString());
+                            char_out = Nr.Rows[m]["nrd_content"].ToString();
+                            break;
+                        default:
+                            break;
+                    }
                 }
+                //获取最大的流水号
+                string maxnum = dh.getFieldDataByCondition("RuleMaxNum", "rmn_maxnumber", "rmn_nrcode='" + pr_exbarcode + "' and rmn_prefix='" + Prefix + "'").ToString();
+                //如果流水号为空则插入一条新记录,从1开始取
+                if (maxnum == "")
+                {
+                    dh.ExecuteSql("insert into RuleMaxNum(rmn_id,rmn_nrcode,rmn_prefix,rmn_maxnumber) values(RuleMaxNum_seq.nextval,'" + pr_exbarcode + "','" + Prefix + "','1')", "insert");
+                    custserialnum = 1;
+                }
+                //如果流水号不为空则取当前流水
+                else
+                {
+                    custserialnum = int.Parse(maxnum);
+                }
+                //遍历整个Grid,勾选的项目全部进行条码生成
+                ArrayList<string> custbarcode = new ArrayList<string>();
+                for (int i = 0; i < int.Parse(ma_count.Text); i++)
+                {
+                    string data = BarcodeMethod1(PrefixFixed, Suffix, SerialNumIndex, SerialNumLength, Radix, char_out);
+                    if (!custbarcode.Contains(data))
+                        custbarcode.Add(data);
+                }
+                //插入条码
+                string sql = "insert into makesnlist(MSL_ID, MSL_INDATE, MSL_MAKECODE, MSL_SNCODE,msl_status,MSL_TYPE)" +
+                    "select makesnlist_seq.nextval,sysdate,'" + ma_code.Text + "',:custbarcode,0,'" + (msl_type.Text == "转号前" ? "before" : "after") + "' from dual where :custbarcode not in " +
+                  "(select msl_sncode from makesnlist)";
+                dh.BatchInsert(sql, new string[] { "custbarcode", "custbarcode" }, custbarcode.ToArray(), custbarcode.ToArray());
+                //更新最大流水号
+                dh.UpdateByCondition("RuleMaxNum", "rmn_maxnumber='" + custserialnum + "'", "rmn_nrcode='" + pr_exbarcode + "' and rmn_prefix='" + Prefix + "'");
             }
-            //获取最大的流水号
-            string maxnum = dh.getFieldDataByCondition("RuleMaxNum", "rmn_maxnumber", "rmn_nrcode='" + pr_exbarcode + "' and rmn_prefix='" + Prefix + "'").ToString();
-            //如果流水号为空则插入一条新记录,从1开始取
-            if (maxnum == "")
-            {
-                dh.ExecuteSql("insert into RuleMaxNum(rmn_id,rmn_nrcode,rmn_prefix,rmn_maxnumber) values(RuleMaxNum_seq.nextval,'" + pr_exbarcode + "','" + Prefix + "','1')", "insert");
-                custserialnum = 1;
-            }
-            //如果流水号不为空则取当前流水
             else
             {
-                custserialnum = int.Parse(maxnum);
-            }
-            //遍历整个Grid,勾选的项目全部进行条码生成
-            ArrayList<string> custbarcode = new ArrayList<string>();
-            for (int i = 0; i < int.Parse(ma_count.Text); i++)
-            {
-                string data = BarcodeMethod1(PrefixFixed, Suffix, SerialNumIndex, SerialNumLength, Radix, char_out);
-                if (!custbarcode.Contains(data))
-                    custbarcode.Add(data);
+                for (int m = 0; m < Nr.Rows.Count; m++)
+                {
+                    switch (Nr.Rows[m]["nrd_type"].ToString())
+                    {
+                        //常量直接进行拼接
+                        case "常量":
+                            NrData[m] = Nr.Rows[m]["nrd_sql"].ToString();
+                            Prefix += NrData[m];
+                            Suffix += NrData[m];
+                            break;
+                        case "SQL":
+                            string SQL = Nr.Rows[m]["nrd_sql"].ToString();
+                            DataTable Temp;
+                            //如果不包含参数替换
+                            if (SQL.IndexOf("{") == 0)
+                            {
+                                Temp = (DataTable)dh.ExecuteSql(SQL, "select");
+                            }
+                            else
+                            {
+                                //替换参数后重新执行SQL
+                                foreach (Match mch in match.Matches(SQL))
+                                {
+                                    SQL = SQL.Replace(mch.Value.Trim(), "'" + ma_code.Text + "'");
+                                }
+                                Temp = (DataTable)dh.ExecuteSql(SQL, "select");
+                            }
+                            if (Temp.Rows.Count > 0)
+                            {
+                                NrData[m] = Temp.Rows[0][0].ToString();
+                                Prefix += NrData[m];
+                                Suffix += NrData[m];
+                            }
+                            else
+                            {
+                                NrData[m] = "";
+                                Prefix += NrData[m];
+                                Suffix += NrData[m];
+                            }
+                            break;
+                        //流水需要通过MaxNumber去取
+                        case "流水":
+                            NrData[m] = dh.getFieldDataByCondition("RuleMaxNum", "rmn_maxnumber", "rmn_nrcode='" + pr_exbarcode + "'").ToString();
+                            Suffix = "";
+                            PrefixFixed = Prefix;
+                            //设置当前流水
+                            custserialnum = int.Parse(NrData[m] == "" ? "0" : NrData[m]);
+                            SerialNumIndex = m;
+                            SerialNumLength = int.Parse(Nr.Rows[m]["nrd_length"].ToString());
+                            Radix = int.Parse(Nr.Rows[m]["nrd_radix"].ToString());
+                            char_out = Nr.Rows[m]["nrd_content"].ToString();
+                            break;
+                        default:
+                            break;
+                    }
+                }
+                //获取最大的流水号
+                string maxnum = dh.getFieldDataByCondition("RuleMaxNum", "rmn_maxnumber", "rmn_nrcode='" + pr_exbarcode + "'").ToString();
+                //如果流水号为空则插入一条新记录,从1开始取
+                if (maxnum == "")
+                {
+                    dh.ExecuteSql("insert into RuleMaxNum(rmn_id,rmn_nrcode,rmn_maxnumber) values(RuleMaxNum_seq.nextval,'" + pr_exbarcode + "','1')", "insert");
+                    custserialnum = 1;
+                }
+                //如果流水号不为空则取当前流水
+                else
+                {
+                    custserialnum = int.Parse(maxnum);
+                }
+                //遍历整个Grid,勾选的项目全部进行条码生成
+                ArrayList<string> custbarcode = new ArrayList<string>();
+                for (int i = 0; i < int.Parse(ma_count.Text); i++)
+                {
+                    string data = BarcodeMethod1(PrefixFixed, Suffix, SerialNumIndex, SerialNumLength, Radix, char_out);
+                    if (!custbarcode.Contains(data))
+                        custbarcode.Add(data);
+                }
+                string sql = "insert into makesnlist(MSL_ID, MSL_INDATE, MSL_MAKECODE, MSL_SNCODE, MSL_TYPE,msl_status)" +
+              "select makesnlist_seq.nextval,sysdate,'" + ma_code.Text + "',:custbarcode,'before',0 from dual where :custbarcode not in " +
+              "(select msl_sncode from makesnlist)";
+                dh.BatchInsert(sql, new string[] { "custbarcode", "custbarcode" }, custbarcode.ToArray(), custbarcode.ToArray());
+                //更新最大流水号
+                dh.UpdateByCondition("RuleMaxNum", "rmn_maxnumber='" + custserialnum + "'", "rmn_nrcode='" + pr_exbarcode + "'");
             }
             //插入条码
-            string sql = "insert into makesnlist(MSL_ID, MSL_INDATE, MSL_MAKECODE, MSL_SNCODE,msl_status,MSL_TYPE)" +
-                "select makesnlist_seq.nextval,sysdate,'" + ma_code.Text + "',:custbarcode,0,'" + (msl_type.Text == "转号前" ? "before" : "after") + "' from dual where :custbarcode not in " +
-                "(select msl_sncode from makesnlist)";
-            dh.BatchInsert(sql, new string[] { "custbarcode", "custbarcode" }, custbarcode.ToArray(), custbarcode.ToArray());
-            //更新最大流水号
-            dh.UpdateByCondition("RuleMaxNum", "rmn_maxnumber='" + custserialnum + "'", "rmn_nrcode='" + pr_exbarcode + "' and rmn_prefix='" + Prefix + "'");
             MessageBox.Show("工单" + ma_code.Text + "生成SN清单成功");
         }
     }

+ 3 - 3
UAS_MES_YD/FunctionCode/Special/Special_CancelOQC.cs

@@ -64,10 +64,10 @@ namespace UAS_MES_NEW.Special
 
             dt = (DataTable)dh.ExecuteSql("select cd_id from craft left join craftdetail on cr_id=cd_crid where cr_prodcode='" + ms_prodcode + "' and cr_code='" + ms_craftcode + "' and cd_stepcode='" + cd_stepcode.Text + "'", "select");
             if (dt.Rows.Count == 0) { OperateResult.AppendText(">>工序不在所选途程中\n"); return; }
-
+            string stepno = dh.getFieldDataByCondition("craft left join craftdetail on cd_crid=cr_id", "cd_stepno", "cr_prodcode='" + ms_prodcode + "' and cr_code='" + ms_craftcode + "' and cd_stepcode='"+cd_stepcode.Text+"'").ToString();
             StringBuilder sql = new StringBuilder();
             sql.Append("update craftmaterial set cm_status=-1,CM_DROPMAN='" + User.UserName + "' where  cm_stepcode in (select cd_stepcode from craft left join ");
-            sql.Append("craftdetail on cd_crid = cr_id where cr_prodcode = '" + ms_prodcode + "'  and cd_detno >= " + cd_stepno.Text + ") ");
+            sql.Append("craftdetail on cd_crid = cr_id where cr_prodcode = '" + ms_prodcode + "'  and cd_detno >= " + stepno + ") ");
             sql.Append("and cm_firstsn='" + ms_firstsn + "' and cm_makecode='" + ms_makecode + "'");
             dh.ExecuteSql(sql.ToString(), "update");
 
@@ -77,7 +77,7 @@ namespace UAS_MES_NEW.Special
 
             dh.ExecuteSql("update makeserial set ms_nextstepcode='" + cd_stepcode.Text + "',ms_checkno='' where ms_id='" + ms_id + "'", "update");
 
-            LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ms_makecode, User.UserLineCode, User.UserSourceCode, "OQC回流", "回流成功" + cd_stepcode.Text + "产品:" + ms_prodcode + "序号:" + cd_stepno.Text, ms_sncode, ms_checkno);
+            LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ms_makecode, User.UserLineCode, User.UserSourceCode, "OQC回流", "回流成功" + cd_stepcode.Text + "产品:" + ms_prodcode + "序号:" + stepno, ms_sncode, ms_checkno);
             OperateResult.AppendText(">>" + SN.Text + "回流成功\n");
             //cr_code.Text = "";
             //cd_stepcode.Text = "";

+ 11 - 1
UAS_MES_YD/PublicMethod/LogicHandler.cs

@@ -1169,7 +1169,7 @@ namespace UAS_MES_NEW.PublicMethod
                                 if (iSN.Length > index1)
                                 {
                                     //先截取长度
-                                    if (pres[i] == "" ? true : iSN.Substring(index1-1).StartsWith(str))
+                                    if (pres[i] == "" ? true : iSN.Substring(index1 - 1).StartsWith(str))
                                     {
                                         //满足其中一条即可
                                         f = true;
@@ -1206,6 +1206,16 @@ namespace UAS_MES_NEW.PublicMethod
                     }
                     else ErrMessage = iSN + "前缀不匹配";
                     break;
+                case "IMPORT":
+                    if (!dh.CheckExist("craftmateriallist", "cml_makecode='" + iMakeCode + "' and cml_barcode='" + iSN + "'"))
+                    {
+                        ErrMessage = iSN + "不在上料清单中,不允许上料";
+                        return false;
+                    }
+                    else {
+                        return true;
+                    }
+                    break;
                 default:
                     break;
             }