瀏覽代碼

针对SPI与X-RAY线外工序采集操作进行的SN过站方法修改

Hcsy 7 年之前
父節點
當前提交
6833e78d65
共有 2 個文件被更改,包括 36 次插入8 次删除
  1. 16 4
      UAS-MES/FunctionCode/Make/Make_SmtTestCollection.cs
  2. 20 4
      UAS-MES/PublicMethod/LogicHandler.cs

+ 16 - 4
UAS-MES/FunctionCode/Make/Make_SmtTestCollection.cs

@@ -48,6 +48,7 @@ namespace UAS_MES.Make
         bool AutoCut = false;
 
         bool LockSn = false;
+        string ms_nextstepcode;
 
         DataTable Dbfind;
 
@@ -247,6 +248,7 @@ namespace UAS_MES.Make
                             }
                         }
                         dt = (DataTable)dh.ExecuteSql("select ms_nextstepcode,ms_sncode,ms_reworkstatus,nvl(ms_ifrework,0)ms_ifrework,ms_stepcode,ms_status,nvl(st_ifrepair,0) st_ifrepair from makeserial left join step on ms_stepcode=st_code where ms_id='" + oMSID + "'", "select");
+                         ms_nextstepcode = dt.Rows[0]["ms_nextstepcode"].ToString();
                         string status = dt.Rows[0]["ms_status"].ToString();
                         reworkstatus = dt.Rows[0]["ms_reworkstatus"].ToString();
                         string stepcode = dt.Rows[0]["ms_stepcode"].ToString();
@@ -657,15 +659,25 @@ namespace UAS_MES.Make
                         }
                     }
                     dt = dh.getFieldsDataByCondition("makeserial", new string[] { "ms_id","nvl(ms_ifrework,0) ms_ifrework", "ms_paststep" }, "ms_sncode='" + ms_sncode.Text + "' and ms_makecode='" + ma_code.Text + "' ");
+                    string St_ifqccheck = dh.getFieldDataByCondition("source LEFT JOIN STEP on st_code=sc_stepcode", "nvl(St_ifqccheck,0)", "sc_code='" + User.UserSourceCode + "'").ToString();
                     List<string> SQLS = new List<string>();
                     if (dt.Rows.Count > 0)
                     {
                         string ms_id = dt.Rows[0]["ms_id"].ToString();
                         string ms_ifrework = dt.Rows[0]["ms_ifrework"].ToString();
-                        if (ms_ifrework == "0")
-                            SQLS.Add("update makeserial set ms_checkno='', ms_nextstepcode ='" + User.CurrentStepCode + "',ms_status=1,ms_stepcode='SMT_REPAIR' where ms_id='" + ms_id + "'");
-                        else
-                            SQLS.Add("update makeserial set ms_checkno='', ms_nextstepcode ='" + User.CurrentStepCode + "',ms_reworkstatus=1,ms_stepcode='SMT_REPAIR' where ms_id='" + ms_id + "'");
+                        if (St_ifqccheck != "-1")
+                        {
+                            if (ms_ifrework == "0")
+                                SQLS.Add("update makeserial set ms_checkno='', ms_nextstepcode ='" + User.CurrentStepCode + "',ms_status=1,ms_stepcode='SMT_REPAIR' where ms_id='" + ms_id + "'");
+                            else
+                                SQLS.Add("update makeserial set ms_checkno='', ms_nextstepcode ='" + User.CurrentStepCode + "',ms_reworkstatus=1,ms_stepcode='SMT_REPAIR' where ms_id='" + ms_id + "'");
+                        }
+                        else {
+                            if (ms_ifrework == "0")
+                                SQLS.Add("update makeserial set ms_checkno='', ms_nextstepcode ='" + ms_nextstepcode + "',ms_status=1,ms_stepcode='SMT_REPAIR',ms_paststep = REPLACE(ms_paststep,','||'"+ ms_nextstepcode + "') where ms_id='" + ms_id + "'");
+                            else
+                                SQLS.Add("update makeserial set ms_checkno='', ms_nextstepcode ='" + ms_nextstepcode + "',ms_reworkstatus=1,ms_stepcode='SMT_REPAIR',ms_paststep = REPLACE(ms_paststep,','||'" + ms_nextstepcode + "')  where ms_id='" + ms_id + "'");
+                        }
                     }
                     SQLS.Add("update makebad set mb_status=-1 where mb_sncode='" + ms_sncode.Text + "' and mb_makecode='" + ma_code.Text + "' and MB_STEPCODE = '" + User.CurrentStepCode + "'");
                     dh.ExecuteSQLTran(SQLS.ToArray());

+ 20 - 4
UAS-MES/PublicMethod/LogicHandler.cs

@@ -685,13 +685,17 @@ namespace UAS_MES.PublicMethod
             }
             else
             {
-                return CS_SetResult(iMakeCode, iSourceCode, iSN, iUserCode, iResult, out oErrorMessage);
+                return SetStepResult(iMakeCode, iSourceCode, iSN, iMPKind, iResult,iUserCode,out oErrorMessage);
             }
         }
 
         public static bool SetStepResult(string iMakeCode, string iSourceCode, string iSN, string iMPKind, string iResult, string iUserCode, out string oErrorMessage)
         {
-            return CS_SetResult(iMakeCode, iSourceCode, iSN, iUserCode, iResult, out oErrorMessage);
+            if (dh.getFieldDataByCondition("source LEFT JOIN STEP on st_code=sc_stepcode", "nvl(St_ifqccheck,0)", "sc_code='" + iSourceCode + "'").ToString() != "-1")
+            {
+                return CS_SetResult(iMakeCode, iSourceCode, iSN, iUserCode, iResult, out oErrorMessage);
+            }else
+                return CS_OQCSetResult(iMakeCode, iSourceCode, iSN, iUserCode, iResult, out oErrorMessage);
         }
 
         public static bool CS_SetResult(string iMakeCode, string iSourceCode, string iSN, string iUserCode, string iResult, out string oErrorMessage)
@@ -705,6 +709,18 @@ namespace UAS_MES.PublicMethod
             else
                 return false;
         }
+
+        public static bool CS_OQCSetResult(string iMakeCode, string iSourceCode, string iSN, string iUserCode, string iResult, out string oErrorMessage)
+        {
+            oErrorMessage = "";
+            string[] param = new string[] { iMakeCode, iSourceCode, iSN, iUserCode, iResult, oErrorMessage };
+            dh.CallProcedure("CS_QCCHECKSTEPRESULT", ref param);
+            oErrorMessage = param[5];
+            if (oErrorMessage == "" || oErrorMessage == null || oErrorMessage == "null" || oErrorMessage.Contains("AFTERSUCCESS"))
+                return true;
+            else
+                return false;
+        }
         /// <summary>
         /// 设置测试结果
         /// </summary>
@@ -798,9 +814,9 @@ namespace UAS_MES.PublicMethod
                 else
                 {
                     if (ifrework == "0")
-                        dh.UpdateByCondition("makeserial", "ms_nextstepcode='',ms_status=3", "ms_sncode='" + iSnCode + "' and ms_makecode='" + iMakeCode + "' ");
+                        dh.UpdateByCondition("makeserial", "ms_status=3", "ms_sncode='" + iSnCode + "' and ms_makecode='" + iMakeCode + "' ");
                     else
-                        dh.UpdateByCondition("makeserial", "ms_nextstepcode='',ms_paststep = ms_paststep ||'," + StepCode + "',ms_reworkstatus=3", "ms_sncode='" + iSnCode + "' and ms_makecode='" + iMakeCode + "'");
+                        dh.UpdateByCondition("makeserial", "ms_paststep = ms_paststep ||'," + StepCode + "',ms_reworkstatus=3", "ms_sncode='" + iSnCode + "' and ms_makecode='" + iMakeCode + "'");
                     SetTestResult(iMakeCode, iSourceCode, iSnCode, "不良采集", "NG", iUserCode, out oErrorMessage);
                 }
             }