Browse Source

执行进度查询加返工

shim 8 years ago
parent
commit
9a6e697bc6
1 changed files with 103 additions and 26 deletions
  1. 103 26
      UAS-MES/FunctionCode/Query/Query_ExeProgress.cs

+ 103 - 26
UAS-MES/FunctionCode/Query/Query_ExeProgress.cs

@@ -53,7 +53,7 @@ namespace UAS_MES.Query
         {
             if (e.KeyCode == Keys.Enter)
             {
-                dt = (DataTable)dh.ExecuteSql("select ms_status,ms_paststep,ms_stepcode from makeserial where ms_sncode='" + sn_code.Text + "'", "select");
+                dt = (DataTable)dh.ExecuteSql("select ms_status,ms_paststep,ms_stepcode,NVL(ms_ifrework, 0) ms_ifrework,NVL(ms_reworkstatus, 0) ms_reworkstatus from makeserial where ms_sncode='" + sn_code.Text + "'", "select");
                 if (dt.Rows.Count > 0)
                 {
                     if (Step != null && Step.Count > 0)
@@ -62,18 +62,38 @@ namespace UAS_MES.Query
                         SerialPanel.Controls.Clear();
                         PaintColor.Clear();
                     }
+                    string ifRework = dt.Rows[0]["ms_ifrework"].ToString();
                     //执行过的步骤
                     PastStep = dt.Rows[0]["ms_paststep"].ToString();
                     //如果为不良的时候
                     string BadStep = "";
                     string RejectStep = "";
-                    if (dt.Rows[0]["ms_status"].ToString() == "3")
+                    string reworkStep ="";
+                    //先判断是否是返工的
+                    if (ifRework!= "0")
                     {
-                        BadStep = dt.Rows[0]["ms_stepcode"].ToString();
+                        //是返工的
+                        if (dt.Rows[0]["ms_reworkstatus"].ToString() == "3")
+                        {
+                            BadStep = dt.Rows[0]["ms_stepcode"].ToString();
+                        }
+                        else if (dt.Rows[0]["ms_reworkstatus"].ToString() == "4")
+                        {
+                            RejectStep = dt.Rows[0]["ms_stepcode"].ToString();
+                        }
+                            reworkStep = dt.Rows[0]["ms_stepcode"].ToString();
                     }
-                    else if (dt.Rows[0]["ms_status"].ToString() == "4")
+                    else
                     {
-                        RejectStep = dt.Rows[0]["ms_stepcode"].ToString();
+                        //不是返工的
+                        if (dt.Rows[0]["ms_status"].ToString() == "3")
+                        {
+                            BadStep = dt.Rows[0]["ms_stepcode"].ToString();
+                        }
+                        else if (dt.Rows[0]["ms_status"].ToString() == "4")
+                        {
+                            RejectStep = dt.Rows[0]["ms_stepcode"].ToString();
+                        }
                     }
                     //查询执行过的步骤
                     sql.Clear();
@@ -93,44 +113,101 @@ namespace UAS_MES.Query
                     //添加开始节点绿色
                     PaintColor.Add(Brushes.Green);
                     //添加中间节点
+                    bool passed = true;
                     for (int i = 0; i < dt.Rows.Count; i++)
                     {
-                        //包含说明是线内工序
-                        if (PastStep.Contains(dt.Rows[i]["CD_STEPCODE"].ToString()))
+                        //如果是返工的,根据工序里的步骤判断,如果cd_detno大于当前步骤的cd_detno时候就显示白色
+                        if (ifRework != "0")
                         {
-                            if (BadStep == dt.Rows[i]["CD_STEPCODE"].ToString())
-                            {
-                                PaintColor.Add(Brushes.Red);
+                            //还未开始返工
+                            if (reworkStep=="") {
+                                passed = false;
                             }
-                            else
+                            //passed==true;说明经过了这一步
+                            if (passed)
                             {
-                                if (!PastStep.Contains(dt.Rows[i]["CD_STEPCODE"].ToString() + "," + RejectStep) || RejectStep == "")
-                                    PaintColor.Add(Brushes.Green);
+                                if (BadStep == dt.Rows[i]["CD_STEPCODE"].ToString())
+                                {
+                                    PaintColor.Add(Brushes.Red);
+                                }
                                 else
                                 {
-                                    //判断之前有没有添加过黑色
-                                    if (PaintColor.Contains(Brushes.Black))
+                                    if (!PastStep.Contains(dt.Rows[i]["CD_STEPCODE"].ToString() + "," + RejectStep) || RejectStep == "")
+                                        PaintColor.Add(Brushes.Green);
+                                    else
                                     {
-                                        //移除之前的,
-                                        int index = PaintColor.IndexOf(Brushes.Black);
-                                        PaintColor.RemoveAt(PaintColor.IndexOf(Brushes.Black));
-                                        PaintColor.Insert(index, Brushes.Green);
+                                        //判断之前有没有添加过黑色
+                                        if (PaintColor.Contains(Brushes.Black))
+                                        {
+                                            //移除之前的,
+                                            int index = PaintColor.IndexOf(Brushes.Black);
+                                            PaintColor.RemoveAt(PaintColor.IndexOf(Brushes.Black));
+                                            PaintColor.Insert(index, Brushes.Green);
+                                        }
+                                        PaintColor.Add(Brushes.Black);
                                     }
-                                    PaintColor.Add(Brushes.Black);
                                 }
                             }
+                            //还没经过
+                            else {
+                                PaintColor.Add(Brushes.White);
+                            }
+                            //如果返工执行到了当前步
+                            if (reworkStep == dt.Rows[i]["CD_STEPCODE"].ToString())
+                            {
+                                passed = false;
+                            }
                         }
-                        //不包含说明是线外工序
                         else
+                        //非返工,是正常
                         {
-                            PaintColor.Add(Brushes.White);
+                            //包含说明是线内工序
+                            if (PastStep.Contains(dt.Rows[i]["CD_STEPCODE"].ToString()))
+                            {
+                                if (BadStep == dt.Rows[i]["CD_STEPCODE"].ToString())
+                                {
+                                    PaintColor.Add(Brushes.Red);
+                                }
+                                else
+                                {
+                                    if (!PastStep.Contains(dt.Rows[i]["CD_STEPCODE"].ToString() + "," + RejectStep) || RejectStep == "")
+                                        PaintColor.Add(Brushes.Green);
+                                    else
+                                    {
+                                        //判断之前有没有添加过黑色
+                                        if (PaintColor.Contains(Brushes.Black))
+                                        {
+                                            //移除之前的,
+                                            int index = PaintColor.IndexOf(Brushes.Black);
+                                            PaintColor.RemoveAt(PaintColor.IndexOf(Brushes.Black));
+                                            PaintColor.Insert(index, Brushes.Green);
+                                        }
+                                        PaintColor.Add(Brushes.Black);
+                                    }
+                                }
+                            }
+                            //不包含说明是线外工序
+                            else
+                            {
+                                PaintColor.Add(Brushes.White);
+                            }
                         }
                     }
-                    //完工添加绿色,未完工添加红色
-                    if (dh.CheckExist("Makeserial", "ms_sncode='" + sn_code.Text + "' and ms_status=2"))
-                        PaintColor.Add(Brushes.Green);
+                    if (ifRework != "0") {
+                        //完工添加绿色,未完工添加红色
+                        if (dh.CheckExist("Makeserial", "ms_sncode='" + sn_code.Text + "' and ms_reworkstatus='2'"))
+                            PaintColor.Add(Brushes.Green);
+                        else
+                            PaintColor.Add(Brushes.White);
+                    }
                     else
-                        PaintColor.Add(Brushes.White);
+                    {
+                        //完工添加绿色,未完工添加红色
+                        if (dh.CheckExist("Makeserial", "ms_sncode='" + sn_code.Text + "' and ms_status='2'"))
+                            PaintColor.Add(Brushes.Green);
+                        else
+                            PaintColor.Add(Brushes.White);
+                    }
                     Refresh();
                     SerialPanel.Refresh();
                     sql.Clear();