Переглянути джерело

Merge branch 'master' of ssh://10.10.101.21/source/mes-client

Hcsy 8 роки тому
батько
коміт
6a255b00c7

+ 1 - 1
UAS-MES/FunctionCode/Make/Make_NewMatainInf.cs

@@ -102,7 +102,7 @@ namespace UAS_MES.Make
             sql.Append("so_code=ps_socode where ps_kindcode='" + pk_code + "'");
             dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
             if (dt.Rows.Count == 0)
-                dt = (DataTable)dh.ExecuteSql("select so_code,so_name from solution", "select");
+                dt = (DataTable)dh.ExecuteSql("select so_code,so_name from solution order by so_id", "select");
             AddDataToListView(mbr_solutioncode_lsv, dt);
         }
 

+ 15 - 9
UAS-MES/FunctionCode/Make/Make_Repair.cs

@@ -109,10 +109,10 @@ namespace UAS_MES.Make
                     {
                         //验证makeserial或者ms_firstsn表序列号是否存在
                         sql.Clear();
-                        sql.Append("select max(ms_id) ms_id,ms_makecode,ms_prodcode,ms_sncode,pr_detail,ms_stepcode,ms_craftcode,ms_checkno ");
+                        sql.Append("select max(ms_id) ms_id,ms_makecode,ms_prodcode,ms_sncode,pr_detail,ms_stepcode,ms_craftcode,ms_checkno,ms_ifrework ");
                         sql.Append("from makeserial left join product on pr_code=ms_prodcode where ms_makecode ='" + macode + "' and(ms_sncode");
                         sql.Append("='" + GetSNCode.Text + "' or ms_firstsn in (select firstsn from makesnrelation where ");
-                        sql.Append("sn='" + GetSNCode.Text + "')) group by ms_makecode,ms_prodcode,ms_sncode,pr_detail,ms_stepcode,ms_craftcode,ms_checkno");
+                        sql.Append("sn='" + GetSNCode.Text + "')) group by ms_makecode,ms_prodcode,ms_sncode,pr_detail,ms_stepcode,ms_craftcode,ms_checkno,ms_ifrework");
                         dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
                         if (dt.Rows.Count > 0)
                         {
@@ -276,14 +276,20 @@ namespace UAS_MES.Make
                     OperatResult.AppendText(">>回流工序不在回流工艺中\n", Color.Red);
                 else
                 {
-                    string ms_ifrework = dh.getFieldDataByCondition("makeserial", "nvl(ms_ifrework,0)", "ms_sncode='" + ms_sncode.Text + "' and ms_makecode='" + macode + "'").ToString();
-                    if (ms_ifrework == "0")
+                    dt = dh.getFieldsDataByCondition("makeserial", new string[] { "nvl(ms_ifrework,0) ms_ifrework", "ms_paststep" }, "ms_sncode='" + ms_sncode.Text + "' and ms_makecode='" + macode + "'");
+                    if (dt.Rows.Count > 0)
                     {
-                        dh.UpdateByCondition("makeserial", "ms_paststep = ms_paststep ||'," + User.CurrentStepCode + "',ms_nextstepcode='" + cd_stepcode.Text + "',ms_craftcode='" + cr_code.Text + "',ms_stepcode='" + User.CurrentStepCode + "',ms_status=1", "ms_sncode='" + ms_sncode.Text + "'");
-                    }
-                    else
-                    {
-                        dh.UpdateByCondition("makeserial", "ms_paststep = ms_paststep ||'," + User.CurrentStepCode + "',ms_nextstepcode='" + cd_stepcode.Text + "',ms_craftcode='" + cr_code.Text + "',ms_stepcode='" + User.CurrentStepCode + "',ms_reworkstatus=1", "ms_sncode='" + ms_sncode.Text + "'");
+                        string ms_ifrework = dt.Rows[0]["ms_ifrework"].ToString();
+                        string ms_paststep = dt.Rows[0]["ms_paststep"].ToString();
+                        if (!ms_paststep.Contains(cd_stepcode.Text))
+                        {
+                            OperatResult.AppendText(">>不允许回流到未执行的工序\n", Color.Red);
+                            return;
+                        }
+                        if (ms_ifrework == "0")
+                            dh.UpdateByCondition("makeserial", "ms_paststep = ms_paststep ||'," + User.CurrentStepCode + "',ms_nextstepcode='" + cd_stepcode.Text + "',ms_craftcode='" + cr_code.Text + "',ms_stepcode='" + User.CurrentStepCode + "',ms_status=1", "ms_sncode='" + ms_sncode.Text + "'");
+                        else
+                            dh.UpdateByCondition("makeserial", "ms_paststep = ms_paststep ||'," + User.CurrentStepCode + "',ms_nextstepcode='" + cd_stepcode.Text + "',ms_craftcode='" + cr_code.Text + "',ms_stepcode='" + User.CurrentStepCode + "',ms_reworkstatus=1", "ms_sncode='" + ms_sncode.Text + "'");
                     }
                     dh.UpdateByCondition("makebad", "mb_status=-1", "mb_sncode='" + ms_sncode.Text + "'");
                     LogicHandler.InsertMakeProcess(ms_sncode.Text, ms_makecode.Text, User.UserSourceCode, "回流工序", "完成维修回流", User.UserCode);

+ 2 - 0
UAS-MES/FunctionCode/Make/Make_TestCollection.cs

@@ -487,6 +487,7 @@ namespace UAS_MES.Make
                 batchqty = int.Parse(ob_batchqty.Text == "" ? "0" : ob_batchqty.Text);
                 if (nowcheckqty > batchqty)
                 {
+                    ob_nowcheckqty.ForeColor = Color.Red;
                     OperateResult.AppendText(">>已采集批数已超过抽检批数\n", Color.Red);
                 }
             }
@@ -537,6 +538,7 @@ namespace UAS_MES.Make
             ob_checkno.Text = "";
             ob_nowcheckqty.Text = "";
             ob_batchqty.Text = "";
+            ob_nowcheckqty.ForeColor = Color.Black;
             SendCheck.Enabled = false;
             OperateResult.AppendText(">>批次" + ob_checkno.Text + "送检成功\n", Color.Green);
             ms_sncode.Focus();

+ 31 - 12
UAS-MES/FunctionCode/OQC/OQC_PlanMaintain.cs

@@ -61,6 +61,8 @@ namespace UAS_MES.OQC
                 {
                     if (ErrorMessage == "")
                     {
+                        ad_qty.Text = "";
+                        ob_maxngacceptqty.Text = "";
                         BaseUtil.SetFormValue(Controls, dt[0]);
                         BaseUtil.FillDgvWithDataTable(CheckTypeDGV, dt[1]);
                         ob_aqlcode.Text = "";
@@ -96,24 +98,39 @@ namespace UAS_MES.OQC
                 //更新的数据
                 List<string> ci_kind_update = new List<string>();
                 List<string> oi_sampleqty_update = new List<string>();
+                int ChooseCount = 0;
                 for (int i = 0; i < CheckTypeDGV.Rows.Count; i++)
                 {
                     //用户勾选的数据才进行操作
                     if (CheckTypeDGV.Rows[i].Cells["Choose"].FormattedValue.ToString() == "True")
                     {
-                        if (!(int.Parse(CheckTypeDGV.Rows[i].Cells["oi_sampleqty"].Value.ToString()) > int.Parse(ob_nowcheckqty.Text == "" ? "0" : ob_nowcheckqty.Text)))
+                        ChooseCount = ChooseCount + 1;
+                        if (int.Parse(CheckTypeDGV.Rows[i].Cells["oi_sampleqty"].Value.ToString()) > 0)
                         {
-                            oi_id.Add(CheckTypeDGV.Rows[i].Cells["oi_id"].Value.ToString());
-                            ci_kind.Add(CheckTypeDGV.Rows[i].Cells["ci_kind"].Value.ToString());
-                            oi_sampleqty.Add(CheckTypeDGV.Rows[i].Cells["oi_sampleqty"].Value.ToString());
+                            if (!(int.Parse(CheckTypeDGV.Rows[i].Cells["oi_sampleqty"].Value.ToString()) > int.Parse(ob_nowcheckqty.Text == "" ? "0" : ob_nowcheckqty.Text)))
+                            {
+                                oi_id.Add(CheckTypeDGV.Rows[i].Cells["oi_id"].Value.ToString());
+                                ci_kind.Add(CheckTypeDGV.Rows[i].Cells["ci_kind"].Value.ToString());
+                                oi_sampleqty.Add(CheckTypeDGV.Rows[i].Cells["oi_sampleqty"].Value.ToString());
+                            }
+                            else
+                            {
+                                OperateResult.AppendText(">>第" + (i + 1) + "行的数量大于送检批数量\n", Color.Red);
+                                return;
+                            }
                         }
                         else
                         {
-                            OperateResult.AppendText(">>第" + (i + 1) + "行的数量大于送检批数量\n", Color.Red);
+                            OperateResult.AppendText(">>第" + (i + 1) + "行的抽样数量必需大于0\n", Color.Red);
                             return;
                         }
                     }
                 }
+                if (ChooseCount == 0)
+                {
+                    OperateResult.AppendText(">>请勾选检验项目\n", Color.Red);
+                    return;
+                }
                 //如果ID为0的数组存在内容则进行插入操作
                 dh.ExecuteSql("delete from oqcitems where oi_checkno='" + ob_checkno.Text + "'", "delete");
                 if (oi_id.Count > 0)
@@ -125,6 +142,8 @@ namespace UAS_MES.OQC
                     sql.Append("LEFT JOIN QUA_CHECKITEM ON PD_CIID=CI_ID  where pr_code='" + ob_projectcode.Text + "' and ci_kind=:ci_kind1");
                     dh.BatchInsert(sql.GetString(), new string[] { "ci_kind", "oi_sampleqty", "ci_kind1" }, ci_kind.ToArray(), oi_sampleqty.ToArray(), ci_kind.ToArray());
                 }
+                GetBatch.PerformClick();
+                OperateResult.AppendText(">>保存成功\n", Color.Green);
             }
             else
                 OperateResult.AppendText(">>送检批次必须为待检验状态\n", Color.Red);
@@ -137,7 +156,6 @@ namespace UAS_MES.OQC
                 if (Checkob_maxngacceptqty())
                 {
                     SaveConfiguration_Click(sender, e);
-                    GetBatch.PerformClick();
                 }
             }
             else
@@ -147,7 +165,7 @@ namespace UAS_MES.OQC
         //对于最大不合格允通过数的校验
         private bool Checkob_maxngacceptqty()
         {
-            if (int.Parse(ob_maxngacceptqty.Text) < 0)
+            if (int.Parse(ob_maxngacceptqty.Text == "" ? "0" : ob_maxngacceptqty.Text) < 0)
             {
                 OperateResult.AppendText(">>最大不合格允通过数必须大于等于0\n", Color.Red);
                 ob_maxngacceptqty.Text = null;
@@ -158,12 +176,10 @@ namespace UAS_MES.OQC
                 int result = (int)dh.ExecuteSql("update OQCBatch set ob_projectcode='" + ob_projectcode.Text + "',ob_remark = '" + ob_remark.Text + "',ob_aqlcode='" + ob_aqlcode.Text + "',ob_maxngacceptqty='" + ob_maxngacceptqty.Text + "' where ob_checkno='" + ob_checkno.Text + "' ", "update");
                 if (result > 0)
                 {
-                    OperateResult.AppendText(">>保存成功\n", Color.Green);
                     return true;
                 }
                 else
                 {
-                    OperateResult.AppendText(">>保存失败\n", Color.Red);
                     return false;
                 }
             }
@@ -225,18 +241,21 @@ namespace UAS_MES.OQC
         {
             for (int i = 0; i < CheckTypeDGV.Rows.Count; i++)
             {
-                CheckTypeDGV.Rows[i].Cells["oi_sampleqty"].Value = ad_qty.Text;
+                if (CheckTypeDGV.Rows[i].Cells["oi_sampleqty"].Value.ToString() == "0")
+                {
+                    CheckTypeDGV.Rows[i].Cells["oi_sampleqty"].Value = ad_qty.Text;
+                }
             }
         }
 
         private void ob_projectcode_UserControlTextChanged(object sender, EventArgs e)
         {
             sql.Clear();
-            sql.Append("select nvl(max(oi_id),0)oi_id, ci_kind,nvl(max(oi_sampleqty),0) oi_sampleqty from QUA_PROJECT left join ");
+            sql.Append("select nvl(max(oi_id),0)oi_id,ci_kind,nvl(max(oi_sampleqty),0) oi_sampleqty from QUA_PROJECT left join ");
             sql.Append(" QUA_ProjectDetail on pd_prid=pr_id  left join QUA_CheckItem on pd_ciid=ci_id ");
             sql.Append("left join OQCITEMS on oi_checkno ='" + ob_checkno.Text + "' and oi_projectcode='" + ob_projectcode.Text + "' ");
             sql.Append("and oi_projectcode = pr_code and oi_checkkind = ci_kind where  pr_code='" + ob_projectcode.Text + "'  group by ci_kind");
-            DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(),"select");
+            DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
             BaseUtil.FillDgvWithDataTable(CheckTypeDGV, dt);
         }
     }

+ 19 - 12
UAS-MES/FunctionCode/OQC/OQC_PlanMaintain.designer.cs

@@ -45,7 +45,6 @@
             this.ad_qty = new UAS_MES.CustomControl.TextBoxWithIcon.TextBoxNumOnly();
             this.ad_qty_label = new System.Windows.Forms.Label();
             this.ob_remark = new UAS_MES.CustomControl.TextBoxWithIcon.EnterTextBox();
-            this.ob_maxngacceptqty = new UAS_MES.CustomControl.TextBoxWithIcon.TextBoxNumOnly();
             this.ob_aqlcode = new UAS_MES.CustomControl.TextBoxWithIcon.SearchTextBox();
             this.pr_detail = new UAS_MES.CustomControl.TextBoxWithIcon.EnterTextBox();
             this.ob_projectcode = new UAS_MES.CustomControl.TextBoxWithIcon.SearchTextBox();
@@ -66,6 +65,7 @@
             this.ob_checkno = new UAS_MES.CustomControl.TextBoxWithIcon.EnterTextBox();
             this.ms_sncode = new UAS_MES.CustomControl.TextBoxWithIcon.EnterTextBox();
             this.ChooseAll = new UAS_MES.CustomControl.ButtonUtil.ChooseAllButton();
+            this.ob_maxngacceptqty = new UAS_MES.CustomControl.TextBoxWithIcon.EnterTextBox();
             this.panel2.SuspendLayout();
             this.panel1.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)(this.CheckTypeDGV)).BeginInit();
@@ -208,10 +208,10 @@
             // panel1
             // 
             this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+            this.panel1.Controls.Add(this.ob_maxngacceptqty);
             this.panel1.Controls.Add(this.ad_qty);
             this.panel1.Controls.Add(this.ad_qty_label);
             this.panel1.Controls.Add(this.ob_remark);
-            this.panel1.Controls.Add(this.ob_maxngacceptqty);
             this.panel1.Controls.Add(this.ob_remark_label);
             this.panel1.Controls.Add(this.ob_aqlcode);
             this.panel1.Controls.Add(this.ob_aqlcode_label);
@@ -259,15 +259,6 @@
             this.ob_remark.TabIndex = 173;
             this.ob_remark.Tag = "NoAuto";
             // 
-            // ob_maxngacceptqty
-            // 
-            this.ob_maxngacceptqty.Location = new System.Drawing.Point(585, 22);
-            this.ob_maxngacceptqty.Margin = new System.Windows.Forms.Padding(4);
-            this.ob_maxngacceptqty.Name = "ob_maxngacceptqty";
-            this.ob_maxngacceptqty.Size = new System.Drawing.Size(224, 25);
-            this.ob_maxngacceptqty.TabIndex = 192;
-            this.ob_maxngacceptqty.Text = "0";
-            // 
             // ob_aqlcode
             // 
             this.ob_aqlcode.AllPower = null;
@@ -572,6 +563,22 @@
             this.ChooseAll.Text = "全选";
             this.ChooseAll.UseVisualStyleBackColor = true;
             // 
+            // ob_maxngacceptqty
+            // 
+            this.ob_maxngacceptqty.AllPower = null;
+            this.ob_maxngacceptqty.BackColor = System.Drawing.Color.White;
+            this.ob_maxngacceptqty.ID = null;
+            this.ob_maxngacceptqty.Location = new System.Drawing.Point(585, 22);
+            this.ob_maxngacceptqty.Margin = new System.Windows.Forms.Padding(4);
+            this.ob_maxngacceptqty.Name = "ob_maxngacceptqty";
+            this.ob_maxngacceptqty.Power = null;
+            this.ob_maxngacceptqty.Size = new System.Drawing.Size(224, 25);
+            this.ob_maxngacceptqty.Str = null;
+            this.ob_maxngacceptqty.Str1 = null;
+            this.ob_maxngacceptqty.Str2 = null;
+            this.ob_maxngacceptqty.TabIndex = 195;
+            this.ob_maxngacceptqty.Tag = "NoAuto";
+            // 
             // OQC_PlanMaintain
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
@@ -645,7 +652,6 @@
         private System.Windows.Forms.Label pr_detail_label;
         private CustomControl.TextBoxWithIcon.EnterTextBox pr_detail;
         private CustomControl.TextBoxWithIcon.SearchTextBox ob_aqlcode;
-        private CustomControl.TextBoxWithIcon.TextBoxNumOnly ob_maxngacceptqty;
         private CustomControl.TextBoxWithIcon.EnterTextBox ob_status;
         private System.Windows.Forms.Panel panel1;
         private System.Windows.Forms.Label ad_qty_label;
@@ -656,5 +662,6 @@
         private System.Windows.Forms.DataGridViewTextBoxColumn ci_kind;
         private System.Windows.Forms.DataGridViewTextBoxColumn oi_sampleqty;
         private CustomControl.ButtonUtil.ChooseAllButton ChooseAll;
+        private CustomControl.TextBoxWithIcon.EnterTextBox ob_maxngacceptqty;
     }
 }

+ 11 - 2
UAS-MES/PublicMethod/LogicHandler.cs

@@ -454,6 +454,15 @@ namespace UAS_MES.PublicMethod
                 return false;
         }
 
+        public static void DoCommandLog(string iUserCode,string iMakeCode,string iLineCode,string iSourceCode,string iOperate,string iResult,string iSncode,string iCheckno)
+        {
+            sql.Clear();
+            sql.Append("insert into commandlog(cl_id,cl_man,cl_date,cl_linecode,cl_sourcecode,cl_makecode,cl_operate,");
+            sql.Append("cl_result,cl_sncode,cl_code) values(commandlog_seq.nextval,'"+iUserCode+"',sysdate,'"+ iLineCode + "',");
+            sql.Append("'"+ iSourceCode + "','"+iMakeCode+"','"+iOperate+"','"+iResult+"','"+iSncode+"','"+ iCheckno + "')");
+            dh.ExecuteSql(sql.ToString(), "insert");
+        }
+
         /// <summary>
         /// 分配Mac地址和BT地址
         /// </summary>
@@ -733,7 +742,7 @@ namespace UAS_MES.PublicMethod
                     break;
                 case "OQCPLANMAINTAIN":
                     sql.Clear();
-                    sql.Append("select ob_prodcode,ob_id,ob_checkno,ob_projectcode,ob_nowcheckqty,ob_source,ob_remark,");
+                    sql.Append("select ob_prodcode,ob_maxngacceptqty,ob_id,ob_checkno,ob_projectcode,ob_nowcheckqty,ob_source,ob_remark,");
                     sql.Append("ob_status,pr_id,pr_detail,pr_kind,pr_manutype,pr_qualmethod,nvl(ob_aqlcode,pr_aql)ob_aqlcode from OQCBatch left join product on ");
                     sql.Append("pr_code=ob_prodcode where ob_checkno='" + iCheckNo + "'");
                     Form = (DataTable)dh.ExecuteSql(sql.ToString(), "select");
@@ -1046,7 +1055,7 @@ namespace UAS_MES.PublicMethod
                     {
                         if (ifrework == "0")
                             dh.UpdateByCondition("makeserial", "ms_paststep = ms_paststep ||'," + StepCode + "',ms_status=3", "ms_sncode='" + iSnCode + "'");
-                        else 
+                        else
                             dh.UpdateByCondition("makeserial", "ms_paststep = ms_paststep ||'," + StepCode + "',ms_reworkstatus=3", "ms_sncode='" + iSnCode + "'");
                         SetStepFinish(iMakeCode, iSourceCode, iSnCode, "不良采集", iResult, iUserCode, out oErrorMessage);
                     }