Эх сурвалжийг харах

Merge remote-tracking branch 'refs/remotes/origin/master'

shim 8 жил өмнө
parent
commit
d997de8898

+ 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);
         }
 

+ 27 - 5
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,7 +276,21 @@ namespace UAS_MES.Make
                     OperatResult.AppendText(">>回流工序不在回流工艺中\n", Color.Red);
                 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_status=1", "ms_sncode='" + ms_sncode.Text + "'");
+                    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)
+                    {
+                        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);
                     OperatResult.AppendText(">>" + ms_sncode.Text + " 序列号回流成功\n", Color.Green);
@@ -292,7 +306,7 @@ namespace UAS_MES.Make
             if (ms_sncode.Text != "")
             {
                 //判断是否有无法维修的记录
-                int ScrapNum = int.Parse(dh.getFieldDataByCondition("makebadreason left join makebad on mb_id=mbr_mbid", "count(0) cn", "mb_sncode='" + ms_sncode.Text + "'").ToString());
+                int ScrapNum = int.Parse(dh.getFieldDataByCondition("makebadreason left join makebad on mb_id=mbr_mbid", "count(0) cn", "mb_sncode='" + ms_sncode.Text + "' and mb_status=0").ToString());
                 if (ScrapNum == 0)
                     OperatResult.AppendText(">>" + ms_sncode.Text + "报废必须维护不良原因\n", Color.Red);
                 else
@@ -300,7 +314,15 @@ namespace UAS_MES.Make
                     string confirm = MessageBox.Show(this.ParentForm, "此操作不可撤销,是否确认报废", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk).ToString();
                     if (confirm == "Yes")
                     {
-                        dh.UpdateByCondition("makeserial", "ms_paststep = ms_paststep ||'," + User.CurrentStepCode + "',ms_status=4,ms_nextstepcode='',ms_stepcode='" + User.CurrentStepCode + "'", "ms_sncode='" + ms_sncode.Text + "' and ms_makecode='" + macode + "'");
+                        string ms_ifrework = dh.getFieldDataByCondition("makeserial", "nvl(ms_ifrework,0)", "ms_sncode='" + ms_sncode.Text + "' and ms_makecode='" + macode + "'").ToString();
+                        if (ms_ifrework == "0")
+                        {
+                            dh.UpdateByCondition("makeserial", "ms_paststep = ms_paststep ||'," + User.CurrentStepCode + "',ms_status=4,ms_nextstepcode='',ms_stepcode='" + User.CurrentStepCode + "'", "ms_sncode='" + ms_sncode.Text + "' and ms_makecode='" + macode + "'");
+                        }
+                        else
+                        {
+                            dh.UpdateByCondition("makeserial", "ms_paststep = ms_paststep ||'," + User.CurrentStepCode + "',ms_reworkstatus= 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 + "'");
                         LogicHandler.InsertMakeProcess(ms_sncode.Text, ms_makecode.Text, User.UserSourceCode, "报废", "序列号报废", User.UserCode);
                         OperatResult.AppendText(">>报废成功\n", Color.Green);

+ 3 - 1
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,8 +538,9 @@ 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.Red);
+            OperateResult.AppendText(">>批次" + ob_checkno.Text + "送检成功\n", Color.Green);
             ms_sncode.Focus();
             LogicHandler.InsertMakeProcess(LastSncode, ma_code.Text, User.UserSourceCode, "手动送检", "手动送检成功", User.UserCode);
         }

+ 40 - 40
UAS-MES/FunctionCode/OQC/OQC_BatchResultJudge.cs

@@ -306,46 +306,46 @@ namespace UAS_MES.OQC
             }
         }
 
-        //记录操作日志
-        private void DoLog(string Kind, string Result, string Type)
-        {
-            LogicHandler.InsertMessageLog(User.UserName, Kind, Result, "OQCBATCH|ob_id=" + ob_id.Text + "", ob_checkno.Text);
-            if (ob_source.Text == "工序")
-            {
-                //如果是撤销操作则更新回上一工序
-                if (Type == "撤销")
-                {
-                    List<string> sql = new List<string>();
-                    //该序列号的批次数量
-                    string batchqty = dh.getFieldDataByCondition("oqcbatch", "ob_nowcheckqty", "ob_checkno='" + ob_checkno.Text + "'").ToString();
-                    //撤销时如果没有下一工序表示工单已经完工了,此时撤销需要将完工数减掉一个批次
-                    if (dh.getFieldDataByCondition("makeserial", "ms_nextstepcode", "ms_sncode='" + ms_sncode.Text + "'").ToString() == "")
-                    {
-                        sql.Add("update make set ma_madeqty=ma_madeqty-" + batchqty + " where ma_code='" + ob_makecode.Text + "'");
-                    }
-                    //获取上一步执行的工序
-                    string PastCode = dh.getFieldDataByCondition("makeserial", "SUBSTR(ms_paststep,0,INSTR(ms_paststep,',', -1, 1)-1) ms_paststep", "ms_checkno='" + ob_checkno.Text + "' and ms_status<>3").ToString();
-                    string[] LastStepCode = PastCode.Split(',');
-                    sql.Add("update makeserial set ms_paststep=(select distinct SUBSTR(ms_paststep,0,INSTR(ms_paststep,',', -1, 1)-1)  from makeserial where ms_checkno='" + ob_checkno.Text + "' and ms_status<>3 and rownum=1) where ms_checkno='" + ob_checkno.Text + "' and ms_status<>3 ");
-                    sql.Add("update makeserial set ms_stepcode='" + LastStepCode[LastStepCode.Length - 1] + "',ms_nextstepcode='" + User.CurrentStepCode + "',ms_status=1 where ms_checkno='" + ob_checkno.Text + "'");
-                    sql.Add("update makecraftdetail set mcd_inqty=mcd_inqty-" + batchqty + ",mcd_outqty = mcd_outqty - " + batchqty + ",mcd_okqty = mcd_okqty -" + batchqty + " where mcd_macode='" + ob_makecode.Text + "' and mcd_stepcode='" + User.CurrentStepCode + "'");
-                    dh.ExecuteSQLTran(sql.ToArray());
-                }
-                else if (Type == "通过")
-                {
-                    //更新下一工序
-                    LogicHandler.UpdateOQCMessage(ms_sncode.Text, ob_checkno.Text, ob_makecode.Text, Kind, User.UserSourceCode, User.UserName, Result, out ErrorMessage);
-                    sql.Clear();
-                    sql.Append("insert into MakeProcess(mp_id,mp_makecode,mp_maid, mp_mscode,mp_sncode,mp_stepcode,mp_stepname,");
-                    sql.Append("mp_craftcode,mp_craftname,mp_kind,mp_result,mp_indate,mp_inman,mp_wccode,mp_linecode,mp_sourcecode,mp_snstatus,mp_sncheckno,mp_snoutboxcode)");
-                    sql.Append("select MakeProcess_seq.nextval, ma_code,ma_id,ms_code,ms_sncode,st_code,st_name,");
-                    sql.Append("ma_craftcode,ma_craftname,'" + Kind + "','" + Result + "',sysdate,'" + User.UserCode + "',ma_wccode,'" + User.UserLineCode + "','" + User.UserSourceCode + "',");
-                    sql.Append("ms_status,ms_checkno,ms_outboxcode from make left join makeserial on ms_makecode=ma_code left join step on st_code=ms_stepcode ");
-                    sql.Append("where  ms_checkno='" + ob_checkno.Text + "' and st_code='" + User.CurrentStepCode + "'");
-                    dh.ExecuteSql(sql.GetString(), "insert");
-                }
-            }
-        }
+        ////记录操作日志
+        //private void DoLog(string Kind, string Result, string Type)
+        //{
+        //    LogicHandler.InsertMessageLog(User.UserName, Kind, Result, "OQCBATCH|ob_id=" + ob_id.Text + "", ob_checkno.Text);
+        //    if (ob_source.Text == "工序")
+        //    {
+        //        //如果是撤销操作则更新回上一工序
+        //        if (Type == "撤销")
+        //        {
+        //            List<string> sql = new List<string>();
+        //            //该序列号的批次数量
+        //            string batchqty = dh.getFieldDataByCondition("oqcbatch", "ob_nowcheckqty", "ob_checkno='" + ob_checkno.Text + "'").ToString();
+        //            //撤销时如果没有下一工序表示工单已经完工了,此时撤销需要将完工数减掉一个批次
+        //            if (dh.getFieldDataByCondition("makeserial", "ms_nextstepcode", "ms_sncode='" + ms_sncode.Text + "'").ToString() == "")
+        //            {
+        //                sql.Add("update make set ma_madeqty=ma_madeqty-" + batchqty + " where ma_code='" + ob_makecode.Text + "'");
+        //            }
+        //            //获取上一步执行的工序
+        //            string PastCode = dh.getFieldDataByCondition("makeserial", "SUBSTR(ms_paststep,0,INSTR(ms_paststep,',', -1, 1)-1) ms_paststep", "ms_checkno='" + ob_checkno.Text + "' and ms_status<>3").ToString();
+        //            string[] LastStepCode = PastCode.Split(',');
+        //            sql.Add("update makeserial set ms_paststep=(select distinct SUBSTR(ms_paststep,0,INSTR(ms_paststep,',', -1, 1)-1)  from makeserial where ms_checkno='" + ob_checkno.Text + "' and ms_status<>3 and rownum=1) where ms_checkno='" + ob_checkno.Text + "' and ms_status<>3 ");
+        //            sql.Add("update makeserial set ms_stepcode='" + LastStepCode[LastStepCode.Length - 1] + "',ms_nextstepcode='" + User.CurrentStepCode + "',ms_status=1 where ms_checkno='" + ob_checkno.Text + "'");
+        //            sql.Add("update makecraftdetail set mcd_inqty=mcd_inqty-" + batchqty + ",mcd_outqty = mcd_outqty - " + batchqty + ",mcd_okqty = mcd_okqty -" + batchqty + " where mcd_macode='" + ob_makecode.Text + "' and mcd_stepcode='" + User.CurrentStepCode + "'");
+        //            dh.ExecuteSQLTran(sql.ToArray());
+        //        }
+        //        else if (Type == "通过")
+        //        {
+        //            //更新下一工序
+        //            LogicHandler.UpdateOQCMessage(ms_sncode.Text, ob_checkno.Text, ob_makecode.Text, Kind, User.UserSourceCode, User.UserName, Result, out ErrorMessage);
+        //            sql.Clear();
+        //            sql.Append("insert into MakeProcess(mp_id,mp_makecode,mp_maid, mp_mscode,mp_sncode,mp_stepcode,mp_stepname,");
+        //            sql.Append("mp_craftcode,mp_craftname,mp_kind,mp_result,mp_indate,mp_inman,mp_wccode,mp_linecode,mp_sourcecode,mp_snstatus,mp_sncheckno,mp_snoutboxcode)");
+        //            sql.Append("select MakeProcess_seq.nextval, ma_code,ma_id,ms_code,ms_sncode,st_code,st_name,");
+        //            sql.Append("ma_craftcode,ma_craftname,'" + Kind + "','" + Result + "',sysdate,'" + User.UserCode + "',ma_wccode,'" + User.UserLineCode + "','" + User.UserSourceCode + "',");
+        //            sql.Append("ms_status,ms_checkno,ms_outboxcode from make left join makeserial on ms_makecode=ma_code left join step on st_code=ms_stepcode ");
+        //            sql.Append("where  ms_checkno='" + ob_checkno.Text + "' and st_code='" + User.CurrentStepCode + "'");
+        //            dh.ExecuteSql(sql.GetString(), "insert");
+        //        }
+        //    }
+        //}
 
         private void 抽检批维护_SizeChanged(object sender, EventArgs e)
         {

+ 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;
     }
 }

+ 0 - 2
UAS-MES/FunctionCode/OQC/OQC_SamplingDataCollection.Designer.cs

@@ -462,7 +462,6 @@
             this.WaitChooseDGV.RowTemplate.Height = 23;
             this.WaitChooseDGV.Size = new System.Drawing.Size(357, 320);
             this.WaitChooseDGV.TabIndex = 204;
-            this.WaitChooseDGV.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.WaitChooseDGV_CellContentClick);
             this.WaitChooseDGV.DataError += new System.Windows.Forms.DataGridViewDataErrorEventHandler(this.WaitChooseDGV_DataError);
             // 
             // ChooseAll
@@ -551,7 +550,6 @@
             this.CheckTypeDGV.RowTemplate.Height = 23;
             this.CheckTypeDGV.Size = new System.Drawing.Size(589, 415);
             this.CheckTypeDGV.TabIndex = 198;
-            this.CheckTypeDGV.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.CheckTypeDGV_CellContentClick);
             this.CheckTypeDGV.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.CheckTypeDGV_CellValueChanged);
             this.CheckTypeDGV.DataError += new System.Windows.Forms.DataGridViewDataErrorEventHandler(this.CheckTypeDGV_DataError);
             // 

+ 0 - 9
UAS-MES/FunctionCode/OQC/OQC_SamplingDataCollection.cs

@@ -429,15 +429,6 @@ namespace UAS_MES.OQC
 
         private void WaitChooseDGV_DataError(object sender, DataGridViewDataErrorEventArgs e) { }
 
-        private void WaitChooseDGV_CellContentClick(object sender, DataGridViewCellEventArgs e)
-        {
-
-        }
-
-        private void CheckTypeDGV_CellContentClick(object sender, DataGridViewCellEventArgs e)
-        {
-        }
-
         private void bccode_KeyDown(object sender, KeyEventArgs e)
         {
             if (e.KeyCode == Keys.Enter)

+ 80 - 52
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");
@@ -1030,8 +1039,27 @@ namespace UAS_MES.PublicMethod
             //之前保存的不良就不再调用
             if (ms_status != "3")
             {
-                dh.UpdateByCondition("makeserial", "ms_paststep = ms_paststep ||'," + StepCode + "',ms_status=3", "ms_sncode='" + iSnCode + "'");
-                SetStepFinish(iMakeCode, iSourceCode, iSnCode, "不良采集", iResult, iUserCode, out oErrorMessage);
+                DataTable dt = dh.getFieldsDataByCondition("makeserial", new string[] { "ms_stepcode", "nvl(ms_ifrework,0)ms_ifrework" }, "ms_sncode='" + iSnCode + "'");
+                if (dt.Rows.Count > 0)
+                {
+                    string ifrework = dt.Rows[0]["ms_ifrework"].ToString();
+                    string ms_stepcode = dt.Rows[0]["ms_stepcode"].ToString();
+                    if (ms_stepcode == StepCode)
+                    {
+                        if (ifrework == "0")
+                            dh.UpdateByCondition("makeserial", "ms_status=3", "ms_sncode='" + iSnCode + "'");
+                        else
+                            dh.UpdateByCondition("makeserial", "ms_reworkstatus=3", "ms_sncode='" + iSnCode + "'");
+                    }
+                    else
+                    {
+                        if (ifrework == "0")
+                            dh.UpdateByCondition("makeserial", "ms_paststep = ms_paststep ||'," + StepCode + "',ms_status=3", "ms_sncode='" + iSnCode + "'");
+                        else
+                            dh.UpdateByCondition("makeserial", "ms_paststep = ms_paststep ||'," + StepCode + "',ms_reworkstatus=3", "ms_sncode='" + iSnCode + "'");
+                        SetStepFinish(iMakeCode, iSourceCode, iSnCode, "不良采集", iResult, iUserCode, out oErrorMessage);
+                    }
+                }
             }
             return true;
         }
@@ -1219,55 +1247,55 @@ namespace UAS_MES.PublicMethod
                 return false;
         }
 
-        public static bool UpdateOQCMessage(string iSnCode, string iCheckno, string iMakeCode, string iMPKind, string iSourceCode, string iUserCode, string iResult, out string oErrorMessage)
-        {
-            oErrorMessage = "";
-            string StepCode = "";
-            string StepName = "";
-            string LineCode = "";
-            if (iResult == "" || iResult == null)
-            {
-                iResult = "测试合格";
-            }
-            GetStepCodeAndNameAndLineBySource(iSourceCode, ref StepCode, ref StepName, ref LineCode);
-            //查询批次和批数量
-            string batchqty = dh.getFieldDataByCondition("oqcbatch", "ob_nowcheckqty", "ob_checkno='" + iCheckno + "'").ToString();
-            string nextstepcode = dh.getFieldDataByCondition("make left join craft on ma_craftcode=cr_code and ma_prodcode=cr_prodcode left join craftdetail on cr_id = cd_crid", "cd_nextstepcode", "ma_code='" + iMakeCode + "' and cd_stepcode='" + StepCode + "'").ToString();
-            if (iResult.Contains("批次通过"))
-            {
-                //更新执行的数量
-                sqls.Add("update makecraftdetail set mcd_inqty=mcd_inqty+" + batchqty + ",mcd_outqty = mcd_outqty + " + batchqty + ",mcd_okqty = mcd_okqty + " + batchqty + " where mcd_macode='" + iMakeCode + "' and mcd_stepcode='" + StepCode + "' ");
-                //更新makeSerial 的下一工序
-                sqls.Add("update makeserial set ms_paststep = ms_paststep || '," + StepCode + "',ms_stepcode='" + StepCode + "',ms_nextstepcode='" + nextstepcode + "' where ms_checkno='" + iCheckno + "' and ms_status<>3");
-            }
-            else
-            {
-                //更新执行的数量
-                sqls.Add("update makecraftdetail set mcd_inqty=mcd_inqty+1,mcd_outqty = mcd_outqty + 1,mcd_okqty = mcd_okqty + 1 where mcd_macode='" + iMakeCode + "' and mcd_stepcode='" + StepCode + "' ");
-                //更新makeSerial 的下一工序
-                sqls.Add("update makeserial set ms_paststep = ms_paststep || '," + StepCode + "',ms_stepcode='" + StepCode + "',ms_nextstepcode='" + nextstepcode + "' where ms_checkno='" + iCheckno + "' and ms_status<>3");
-            }
-            //更新序列号已经采集的工序 ms_paststep 已采集数据,更新下一工序
-            dh.ExecuteSQLTran(sqls.ToArray());
-            sqls.Clear();
-            //检测下道工序是否存在,不存在 更新状态为已完成
-            if (nextstepcode == null || nextstepcode == "")
-            {
-                if (iResult.Contains("批次通过"))
-                {
-                    sqls.Add("update make set ma_madeqty=ma_madeqty+" + batchqty + " where ma_code='" + iMakeCode + "'");
-                    sqls.Add("update makeserial set ms_status=2 where ms_checkno='" + iCheckno + "' and ms_status<>3");
-                }
-                else
-                {
-                    sqls.Add("update make set ma_madeqty=ma_madeqty+1  where ma_code='" + iMakeCode + "'");
-                    sqls.Add("update makeserial set ms_status=2 where ms_checkno='" + iCheckno + "' and ms_status<>3");
-                }
-                dh.ExecuteSQLTran(sqls.ToArray());
-                sqls.Clear();
-            }
-            return true;
-        }
+        //public static bool UpdateOQCMessage(string iSnCode, string iCheckno, string iMakeCode, string iMPKind, string iSourceCode, string iUserCode, string iResult, out string oErrorMessage)
+        //{
+        //    oErrorMessage = "";
+        //    string StepCode = "";
+        //    string StepName = "";
+        //    string LineCode = "";
+        //    if (iResult == "" || iResult == null)
+        //    {
+        //        iResult = "测试合格";
+        //    }
+        //    GetStepCodeAndNameAndLineBySource(iSourceCode, ref StepCode, ref StepName, ref LineCode);
+        //    //查询批次和批数量
+        //    string batchqty = dh.getFieldDataByCondition("oqcbatch", "ob_nowcheckqty", "ob_checkno='" + iCheckno + "'").ToString();
+        //    string nextstepcode = dh.getFieldDataByCondition("make left join craft on ma_craftcode=cr_code and ma_prodcode=cr_prodcode left join craftdetail on cr_id = cd_crid", "cd_nextstepcode", "ma_code='" + iMakeCode + "' and cd_stepcode='" + StepCode + "'").ToString();
+        //    if (iResult.Contains("批次通过"))
+        //    {
+        //        //更新执行的数量
+        //        sqls.Add("update makecraftdetail set mcd_inqty=mcd_inqty+" + batchqty + ",mcd_outqty = mcd_outqty + " + batchqty + ",mcd_okqty = mcd_okqty + " + batchqty + " where mcd_macode='" + iMakeCode + "' and mcd_stepcode='" + StepCode + "' ");
+        //        //更新makeSerial 的下一工序
+        //        sqls.Add("update makeserial set ms_paststep = ms_paststep || '," + StepCode + "',ms_stepcode='" + StepCode + "',ms_nextstepcode='" + nextstepcode + "' where ms_checkno='" + iCheckno + "' and ms_status<>3");
+        //    }
+        //    else
+        //    {
+        //        //更新执行的数量
+        //        sqls.Add("update makecraftdetail set mcd_inqty=mcd_inqty+1,mcd_outqty = mcd_outqty + 1,mcd_okqty = mcd_okqty + 1 where mcd_macode='" + iMakeCode + "' and mcd_stepcode='" + StepCode + "' ");
+        //        //更新makeSerial 的下一工序
+        //        sqls.Add("update makeserial set ms_paststep = ms_paststep || '," + StepCode + "',ms_stepcode='" + StepCode + "',ms_nextstepcode='" + nextstepcode + "' where ms_checkno='" + iCheckno + "' and ms_status<>3");
+        //    }
+        //    //更新序列号已经采集的工序 ms_paststep 已采集数据,更新下一工序
+        //    dh.ExecuteSQLTran(sqls.ToArray());
+        //    sqls.Clear();
+        //    //检测下道工序是否存在,不存在 更新状态为已完成
+        //    if (nextstepcode == null || nextstepcode == "")
+        //    {
+        //        if (iResult.Contains("批次通过"))
+        //        {
+        //            sqls.Add("update make set ma_madeqty=ma_madeqty+" + batchqty + " where ma_code='" + iMakeCode + "'");
+        //            sqls.Add("update makeserial set ms_status=2 where ms_checkno='" + iCheckno + "' and ms_status<>3");
+        //        }
+        //        else
+        //        {
+        //            sqls.Add("update make set ma_madeqty=ma_madeqty+1  where ma_code='" + iMakeCode + "'");
+        //            sqls.Add("update makeserial set ms_status=2 where ms_checkno='" + iCheckno + "' and ms_status<>3");
+        //        }
+        //        dh.ExecuteSQLTran(sqls.ToArray());
+        //        sqls.Clear();
+        //    }
+        //    return true;
+        //}
 
         /// <summary>
         /// 设置良品采集结果,iResult含有“批次通过”按抽检批次通过