Przeglądaj źródła

修改回流后重新执行测试工序的采集为良品的验证规则

章政 8 lat temu
rodzic
commit
18040015d2

+ 30 - 16
UAS-MES/FunctionCode/Make/Make_Repair.cs

@@ -101,6 +101,17 @@ namespace UAS_MES.Make
                     OperatResult.AppendText(">>序列号不允许为空\n", Color.Red);
                     return;
                 }
+                string ms_status = dh.getFieldDataByCondition("Makeserial", "ms_status", "ms_sncode='" + GetSNCode.Text + "'").ToString();
+                if (ms_status == "4")
+                {
+                    OperatResult.AppendText(">>序列号:" + GetSNCode.Text + "已处于报废状态\n", Color.Red);
+                    return;
+                }
+                if (ms_status != "3")
+                {
+                    OperatResult.AppendText(">>序列号:" + GetSNCode.Text + "不处于维修状态\n", Color.Red);
+                    return;
+                }
                 string ErrorMessage = "";
                 //验证工序是否正确
                 if (LogicHandler.CheckStepAttribute(Tag.ToString(), User.UserSourceCode, out ErrorMessage))
@@ -277,23 +288,26 @@ namespace UAS_MES.Make
 
         private void Scrap_Click(object sender, EventArgs e)
         {
-            //判断是否有无法维修的记录
-            int ScrapNum = int.Parse(dh.getFieldDataByCondition("makebad", "count(0) cn", "mb_sncode='" + ms_sncode.Text + "'").ToString());
-            if (ScrapNum == 0)
-                OperatResult.AppendText(">>" + ms_sncode.Text + "存在无法维修的记录才允许报废\n", Color.Red);
-            else
-            {
-                string confirm = MessageBox.Show(this.ParentForm, "此操作不可撤销,是否确认报废", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk).ToString();
-                if (confirm == "Yes")
+            if (ms_sncode.Text != "") {
+                //判断是否有无法维修的记录
+                int ScrapNum = int.Parse(dh.getFieldDataByCondition("makebad", "count(0) cn", "mb_sncode='" + ms_sncode.Text + "'").ToString());
+                if (ScrapNum == 0)
+                    OperatResult.AppendText(">>" + ms_sncode.Text + "存在无法维修的记录才允许报废\n", Color.Red);
+                else
                 {
-                    dh.UpdateByCondition("makeserial", "ms_status=4,ms_nextstepcode='',ms_stepcode='" + User.CurrentStepCode + "'", "ms_sncode='" + ms_sncode.Text + "' and ms_makecode='" + macode + "'");
-                    dh.UpdateByCondition("make", "MA_NGMADEQTY=nvl(MA_NGMADEQTY,0)+1", "ma_code='" + macode + "'");
-                    OperatResult.AppendText(">>报废成功\n", Color.Green);
-                    GetSNCode.Clear();
-                    BaseUtil.CleanForm(this);
-                    BadCodeTree.Nodes.Clear();
+                    string confirm = MessageBox.Show(this.ParentForm, "此操作不可撤销,是否确认报废", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk).ToString();
+                    if (confirm == "Yes")
+                    {
+                        dh.UpdateByCondition("makeserial", "ms_status=4,ms_nextstepcode='',ms_stepcode='" + User.CurrentStepCode + "'", "ms_sncode='" + ms_sncode.Text + "' and ms_makecode='" + macode + "'");
+                        dh.UpdateByCondition("make", "MA_NGMADEQTY=nvl(MA_NGMADEQTY,0)+1", "ma_code='" + macode + "'");
+                        OperatResult.AppendText(">>报废成功\n", Color.Green);
+                        GetSNCode.Clear();
+                        BaseUtil.CleanForm(this);
+                        BadCodeTree.Nodes.Clear();
+                    }
                 }
             }
+            else OperatResult.AppendText(">>序列号不允许为空\n", Color.Red);
         }
 
         private void NewBadCode_Click(object sender, EventArgs e)
@@ -316,7 +330,7 @@ namespace UAS_MES.Make
         {
             //保存不良零件
             DataTable dt = (DataTable)mbp_partdgv.DataSource;
-            if (dt != null &&dt.Rows.Count>0)
+            if (dt != null && dt.Rows.Count > 0)
             {
                 List<string> prodcode = new List<string>();
                 for (int i = 0; i < dt.Rows.Count; i++)
@@ -338,7 +352,7 @@ namespace UAS_MES.Make
             }
             //保存不良位置
             dt = (DataTable)mbl_locdgv.DataSource;
-            if (dt != null &&dt.Rows.Count>0)
+            if (dt != null && dt.Rows.Count > 0)
             {
                 List<string> location = new List<string>();
                 for (int i = 0; i < dt.Rows.Count; i++)

+ 11 - 4
UAS-MES/FunctionCode/Make/Make_TestCollection.cs

@@ -189,11 +189,12 @@ namespace UAS_MES.Make
                         }
                         if (GoodProduct.Checked)
                         {
-                            dt = (DataTable)dh.ExecuteSql("select ms_nextstepcode,ms_stepcode,ms_status from makeserial where ms_id='" + oMSID + "'", "select");
+                            dt = (DataTable)dh.ExecuteSql("select ms_nextstepcode,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");
                             string status = dt.Rows[0]["ms_status"].ToString();
                             string nextstepcode = dt.Rows[0]["ms_nextstepcode"].ToString();
                             string stepcode = dt.Rows[0]["ms_stepcode"].ToString();
-                            if (stepcode == User.CurrentStepCode && (status == "1" || status == "2"))
+                            string ifrepair = dt.Rows[0]["st_ifrepair"].ToString();
+                            if (nextstepcode == User.CurrentStepCode && (status == "1" || status == "2") && ifrepair == "0")
                             {
                                 OperateResult.AppendText(">>" + ms_sncode.Text + " 序列号已执行过" + User.CurrentStepCode + "工序,采集结果为良品\n", Color.Red, ms_sncode);
                                 return;
@@ -315,9 +316,15 @@ namespace UAS_MES.Make
 
         private void SetTestPass()
         {
-            string RejectRecordNum = dh.getFieldDataByCondition("makeBad", "count(1) cn", "mb_sncode='" + ms_sncode.Text + "' and mb_status not in (1,-1)").ToString();
+            DataTable dt = (DataTable)dh.ExecuteSql("select mb_id,bc_name,mbr_mbid from makebad left join makebadreason on mbr_mbid=mb_id left join badcode on mb_badcode=bc_code where mb_sncode='" + ms_sncode.Text + "'", "select");
+            string ErrorMessage = "";
+            for (int i = 0; i < dt.Rows.Count; i++)
+            {
+                if (dt.Rows[i]["mb_id"].ToString() != dt.Rows[i]["mbr_mbid"].ToString())
+                    ErrorMessage += "【" + dt.Rows[i]["bc_name"].ToString() + "】";
+            }
             //存在不良记录
-            if (int.Parse(RejectRecordNum) > 0)
+            if (ErrorMessage!="")
                 OperateResult.AppendText(">>序列号:" + ms_sncode.Text + " 已经判为不良品,不允许修改!\n", Color.Red);
             else
             {