Explorar o código

维修界面修改

callm hai 1 ano
pai
achega
594574cd41

+ 2 - 1
UAS_MES_YDCY/FunctionCode/Make/Make_Repair.cs

@@ -189,12 +189,13 @@ namespace UAS_MES_NEW.Make
                     }
                 }
                 sql.Clear();
-                sql.Append("select ms_status,ms_outboxcode,ms_paststep,ms_reworkstatus,nvl(ms_ifrework,0)ms_ifrework from makeserial left join make ");
+                sql.Append("select ms_sncode,ms_status,ms_outboxcode,ms_paststep,ms_reworkstatus,nvl(ms_ifrework,0)ms_ifrework from makeserial left join make ");
                 sql.Append("on ms_makecode=ma_code where ms_sncode = '" + GetSNCode.Text + "' or ms_firstsn='"+GetSNCode.Text+"' order by ms_id desc");
                 dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
                 string ms_paststep = "";
                 if (dt.Rows.Count > 0)
                 {
+                    GetSNCode.Text = dt.Rows[0]["ms_sncode"].ToString();
                     string ms_status = dt.Rows[0]["ms_status"].ToString();
                     ms_paststep = dt.Rows[0]["ms_paststep"].ToString();
                     ifrework = dt.Rows[0]["ms_ifrework"].ToString();

+ 5 - 5
UAS_MES_YDCY/FunctionCode/Make/Make_TestCollection.cs

@@ -247,11 +247,11 @@ namespace UAS_MES_NEW.Make
                         string sncode = dt.Rows[0]["ms_sncode"].ToString();
                         string ms_prodcode = dt.Rows[0]["ms_prodcode"].ToString();
                         string ms_craftcode = dt.Rows[0]["ms_craftcode"].ToString();
-                        if (sncode != ms_sncode.Text)
-                        {
-                            OperateResult.AppendText(">>" + ms_sncode.Text + " 序列号已执行过转号,不允许使用TSN采集\n", Color.Red, ms_sncode);
-                            return;
-                        }
+                        //if (sncode != ms_sncode.Text)
+                        //{
+                        //    OperateResult.AppendText(">>" + ms_sncode.Text + " 序列号已执行过转号,不允许使用TSN采集\n", Color.Red, ms_sncode);
+                        //    return;
+                        //}
                         ifrework = dt.Rows[0]["ms_ifrework"].ToString();
                         if (GoodProduct.Checked)
                         {

+ 167 - 77
UAS_MES_YDCY/FunctionCode/Query/Query_SN.cs

@@ -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,180 @@ 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();
+                    switch (Nr.Rows[m]["nrd_type"].ToString())
+                    {
+                        //常量直接进行拼接
+                        case "常量":
+                            NrData[m] = Nr.Rows[m]["nrd_sql"].ToString();
                             Prefix += NrData[m];
                             Suffix += NrData[m];
-                        }
-                        else
-                        {
-                            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 + "' 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_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 + "' and rmn_prefix='" + Prefix + "'");
+            }
+            else {
+                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;
-                    //流水需要通过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 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_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 + "' and rmn_prefix='" + Prefix + "'");
             MessageBox.Show("工单" + ma_code.Text + "生成SN清单成功");
         }
     }