Pārlūkot izejas kodu

修改采集不良未添加唯一验证

章政 8 gadi atpakaļ
vecāks
revīzija
d3d62afd5e

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

@@ -398,8 +398,6 @@ namespace UAS_MES.Make
                 if (LogicHandler.SetStepResult(ma_code, User.UserSourceCode, sn_code.Text, "上料采集", "上料成功", User.UserCode, out ErrorMessage))
                 {
                     sn_code.Text = "";
-                    if (mcd_remainqty.Text == "0")
-                        BaseUtil.CleanForm(this);
                     //刷新数据
                     EventArgs e = new EventArgs();
                     object sender = null;

+ 2 - 2
UAS-MES/FunctionCode/Make/Make_Repair.cs

@@ -654,7 +654,7 @@ namespace UAS_MES.Make
 
         private void cr_code_UserControlTextChanged(object sender, EventArgs e)
         {
-            cd_stepcode.Condition = "ST_STATUSCODE='AUDITED' and cr_code='" + cr_code.Text + "' and cr_prodcode='" + ms_prodcode.Text + "'";
+            cd_stepcode.Condition = "ST_STATUSCODE='AUDITED' and cr_code='" + cr_code.Text + "' and cr_prodcode='" + ms_prodcode.Text + "' order by cd_stepno";
         }
 
         private void Clean_Click(object sender, EventArgs e)
@@ -701,7 +701,7 @@ namespace UAS_MES.Make
                 cr_code.Condition = "";
             bd_soncode.Condition = "bd_mothercode='" + ms_prodcode.Text + "' and NVL(bd_usestatus,' ')<>'DISABLE'";
             //设置工序的条件
-            cd_stepcode.Condition = "ST_STATUSCODE='AUDITED' and cr_code='" + cr_code.Text + "' and cr_prodcode='" + ms_prodcode.Text + "'";
+            cd_stepcode.Condition = "ST_STATUSCODE='AUDITED' and cr_code='" + cr_code.Text + "' and cr_prodcode='" + ms_prodcode.Text + "' order by cd_stepno";
         }
     }
 }

+ 3 - 3
UAS-MES/FunctionCode/Make/Make_TestCollection.cs

@@ -441,7 +441,7 @@ namespace UAS_MES.Make
                     }
                 }
                 //如果之前是良品的
-                dt = dh.getFieldsDataByCondition("makeserial", new string[] { "ms_status", "ms_checkno" }, "ms_sncode='" + ms_sncode.Text + "' and ms_stepcode='" + User.CurrentStepCode + "'");
+                dt = dh.getFieldsDataByCondition("makeserial", new string[] { "ms_status", "ms_checkno" }, "ms_id='"+oMSID+"' and ms_stepcode='" + User.CurrentStepCode + "'");
                 if (dt.Rows.Count > 0)
                 {
                     string status = dt.Rows[0]["ms_status"].ToString();
@@ -449,14 +449,14 @@ namespace UAS_MES.Make
                     {
                         dh.UpdateByCondition("steppassed", "sp_result='不良品',sp_ifng=-1,sp_ymd=to_char(sysdate,'yyyymmdd'),sp_hm=to_char(sysdate,'hh24miss')", "sp_id=(select max(sp_id) from steppassed where sp_sncode='" + ms_sncode.Text + "')");
                         dh.UpdateByCondition("makecraftdetail", "mcd_okqty=mcd_okqty-1", "mcd_macode='" + ma_code.Text + "' and mcd_stepcode='" + User.CurrentStepCode + "'");
-                        dh.UpdateByCondition("makeserial", "ms_nextstepcode=''", "ms_sncode='" + ms_sncode.Text + "'");
+                        dh.UpdateByCondition("makeserial", "ms_nextstepcode=''", "ms_id='"+oMSID+"'");
                         LogicHandler.InsertMakeProcess(ms_sncode.Text, ma_code.Text, User.UserSourceCode, "良品采集成不良", "采集不良", User.UserCode);
                         LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ma_code.Text, User.UserLineCode, User.UserSourceCode, "采集不良", "采集不良成功", ms_sncode.Text, ob_checkno.Text);
                     }
                     string checkno = dt.Rows[0]["ms_checkno"].ToString();
                     //存在抽检批次更新为空
                     if (checkno != "")
-                        dh.UpdateByCondition("makeserial", "ms_checkno=''", "ms_sncode='" + ms_sncode.Text + "' and ms_makecode='" + ma_code.Text + "'");
+                        dh.UpdateByCondition("makeserial", "ms_checkno=''", "ms_id='"+oMSID+"'");
                 }
                 //不良信息采集,mb_status<>0的是之前维修保存的,不能删除
                 dh.ExecuteSql("delete from makebad where mb_sncode='" + ms_sncode.Text + "' and mb_makecode='" + ma_code.Text + "' and nvl(mb_status,0)=0", "delete");

+ 9 - 151
UAS-MES/PublicMethod/LogicHandler.cs

@@ -72,76 +72,6 @@ namespace UAS_MES.PublicMethod
             SerialNum = param[2];
         }
 
-        /// <summary>
-        /// 判断下一工序是否是送检工序
-        /// </summary>
-        /// <returns></returns>
-        public static bool CheckNextStepIfQC(string iSnCode, string iMakeCode, string iStepCode, string iCraftCode, string iUserName, out string oErrorMessage)
-        {
-            oErrorMessage = "";
-            string IfQC = dh.getFieldDataByCondition("craft left join  craftdetail on cd_crid=cr_id", "cd_ifoqc", "cr_code='" + iCraftCode + "' and cd_stepcode='" + iStepCode + "'").ToString();
-            if (IfQC != "0" && IfQC != "")
-            {
-                DataTable dt = dh.getFieldsDataByCondition("make left join product on ma_prodcode=pr_code", new string[] { "ma_nowcheckqty", "pr_qcbatchqty", "ma_checkno", "ma_prodcode", "pr_qualmethod" }, "ma_code='" + iMakeCode + "'");
-                if (dt.Rows.Count > 0)
-                {
-                    string ma_nowcheckqty = dt.Rows[0]["ma_nowcheckqty"].ToString();
-                    string pr_qcbatchqty = dt.Rows[0]["pr_qcbatchqty"].ToString();
-                    string ma_checkno = dt.Rows[0]["ma_checkno"].ToString();
-                    string ma_prodcode = dt.Rows[0]["ma_prodcode"].ToString();
-                    string pr_qualmethod = dt.Rows[0]["pr_qualmethod"].ToString();
-                    if (pr_qcbatchqty != "" && pr_qcbatchqty != "0")
-                    {
-                        //当前批次的送检批数量大于物料资料中的抽检批数或者当前批次编号为空
-                        string checkno = "";
-                        if (int.Parse(ma_nowcheckqty == "" ? "0" : ma_nowcheckqty) >= int.Parse(pr_qcbatchqty) || ma_checkno == "")
-                        {
-                            //原有的抽检批次插入OQCBatch
-                            string ob_id = dh.GetSEQ("OQCBatch_SEQ");
-                            checkno = dh.GetSerialNumberByCaller("Make!CheckQC");
-                            sql.Clear();
-                            sql.Append("insert into OQCBatch  (ob_id, ob_checkno,ob_makecode,ob_source,ob_indate,ob_checkman,ob_batchqty,ob_status,ob_prodcode,ob_projectcode)");
-                            sql.Append(" values('" + ob_id + "','" + checkno + "','" + iMakeCode + "', '工序',sysdate, '" + iUserName + "','" + ma_nowcheckqty + "','UNCHECK','" + ma_prodcode + "','" + pr_qualmethod + "')");
-                            sqls.Add(sql.ToString());
-                            sqls.Add("update makeserial set ms_checkno='" + checkno + "' where ms_makecode='" + iMakeCode + "' and ms_sncode='" + iSnCode + "'");
-                            sqls.Add("update make set ma_checkno='" + checkno + "',ma_nowcheckqty=1 where ma_code='" + iMakeCode + "'");
-                        }
-                        else
-                        {
-                            sqls.Add("update makeserial set ms_checkno='" + ma_checkno + "' where ms_makecode='" + iMakeCode + "' and ms_sncode='" + iSnCode + "'");
-                            sqls.Add("update make set ma_nowcheckqty= ma_nowcheckqty+1  where ma_code='" + iMakeCode + "'");
-                        }
-                        dh.ExecuteSQLTran(sqls.ToArray());
-                        sqls.Clear();
-                        //如果制造单的ma_checkno没有值则新加入一个值
-                        string checkno1 = checkno == "" ? ma_checkno : checkno;
-                        string obd_obid = dh.getFieldDataByCondition("oqcbatch", "ob_id", "ob_checkno='" + checkno1 + "'").ToString();
-                        //插入抽检批次明细表
-                        sql.Clear();
-                        sql.Append("insert into OQCBatchDetail (obd_id,obd_obid,obd_sncode,obd_outboxcode,obd_makecode,obd_checkno,obd_builddate) ");
-                        sql.Append("select OQCBatchDetail_SEQ.nextval,'" + obd_obid + "',ms_sncode,ms_outboxcode,ms_makecode,ms_checkno,");
-                        sql.Append("sysdate from makeserial where  ms_sncode='" + iSnCode + "' and ms_makecode='" + iMakeCode + "'");
-                        dh.ExecuteSql(sql.ToString(), "insert");
-                        return true;
-                    }
-                    else
-                    {
-                        oErrorMessage = "请维护物料资料的抽检批数";
-                        return false;
-                    }
-                }
-                else
-                {
-                    oErrorMessage = "制造单号不存在";
-                    return false;
-                }
-            }
-            else
-            {
-                oErrorMessage = "当前工序的下一工序不是OQC检测";
-                return false;
-            }
-        }
 
         /// <summary>
         /// 验证用户身份信息
@@ -443,76 +373,6 @@ namespace UAS_MES.PublicMethod
             }
         }
 
-        /// <summary>
-        /// 获取序列号的所有串号信息
-        /// </summary>
-        /// <param name="iSnCode"></param>
-        /// <param name="oIMEI1"></param>
-        /// <param name="oIMEI2"></param>
-        /// <param name="oIMEI3"></param>
-        /// <param name="oMEID"></param>
-        /// <param name="oNetCode"></param>
-        /// <param name="oPSN"></param>
-        /// <param name="oMac"></param>
-        /// <param name="oBT"></param>
-        /// <param name="oCode1"></param>
-        /// <param name="oCode2"></param>
-        /// <param name="oCode3"></param>
-        /// <param name="oErrorMessage"></param>
-        /// <returns></returns>
-        public static bool GetSNAllInfo(string iSnCode, out string oIMEI1, out string oIMEI2, out string oIMEI3, out string oMEID, out string oNetCode, out string oPSN, out string oMac, out string oBT, out string oCode1, out string oCode2, out string oCode3, out string oID1, out string oID2, out string oID3, out string oErrorMessage)
-        {
-            oBT = "";
-            oMEID = "";
-            oMac = "";
-            oPSN = "";
-            oNetCode = "";
-            oIMEI1 = "";
-            oIMEI2 = "";
-            oIMEI3 = "";
-            oCode1 = "";
-            oCode2 = "";
-            oCode3 = "";
-            oID1 = "";
-            oID2 = "";
-            oID3 = "";
-            //通过序列号获取最近操作的工单号
-            string ms_id = dh.getFieldDataByCondition("makeserial", "ms_id", "ms_sncode='" + iSnCode + "'").ToString();
-            if (ms_id != "")
-            {
-                DataTable dt = dh.getFieldsDataByCondition("MakeSerial", new string[] { "ms_id", "ms_mac", "ms_bt", "ms_meid", "ms_netcode", "ms_psn", "ms_imei1", "ms_imei2", "ms_imei3", "ms_othcode1", "ms_othcode2", "ms_othcode3", "ms_othid1", "ms_othid2", "ms_othid3" }, "ms_id='" + ms_id + "'");
-                if (dt.Rows.Count > 0)
-                {
-                    oMac = dt.Rows[0]["ms_mac"].ToString();
-                    oBT = dt.Rows[0]["ms_bt"].ToString();
-                    oPSN = dt.Rows[0]["ms_psn"].ToString();
-                    oNetCode = dt.Rows[0]["ms_netcode"].ToString();
-                    oMEID = dt.Rows[0]["ms_meid"].ToString();
-                    oIMEI1 = dt.Rows[0]["ms_imei1"].ToString();
-                    oIMEI2 = dt.Rows[0]["ms_imei2"].ToString();
-                    oIMEI3 = dt.Rows[0]["ms_imei3"].ToString();
-                    oCode1 = dt.Rows[0]["ms_othcode1"].ToString();
-                    oCode2 = dt.Rows[0]["ms_othcode2"].ToString();
-                    oCode3 = dt.Rows[0]["ms_othcode3"].ToString();
-                    oID1 = dt.Rows[0]["ms_othid3"].ToString();
-                    oID2 = dt.Rows[0]["ms_othid3"].ToString();
-                    oID3 = dt.Rows[0]["ms_othid3"].ToString();
-                    oErrorMessage = "";
-                    return true;
-                }
-                else
-                {
-                    oErrorMessage = "序列号" + iSnCode + "不存在";
-                    return false;
-                }
-            }
-            else
-            {
-                oErrorMessage = "序列号" + iSnCode + "不存在";
-                return false;
-            }
-        }
-
         /// <summary>
         /// 第一个是Form的主表信息,第二个是Grid的信息
         /// </summary>
@@ -713,7 +573,7 @@ namespace UAS_MES.PublicMethod
         public static bool SetStepFinish(string iMakeCode, string iSourceCode, string iSN, string iMPKind, string iResult, string iUserCode, out string oErrorMessage)
         {
             oErrorMessage = "";
-            string StepCode = dh.getFieldDataByCondition("Makeserial", "ms_stepcode", "ms_sncode='" + iSN + "'").ToString();
+            string StepCode = dh.getFieldDataByCondition("Makeserial", "ms_stepcode", "ms_sncode='" + iSN + "' and ms_makecode='"+iMakeCode+"'").ToString();
             string CurrentStep = GetStepCodeBySource(iSourceCode);
             if (StepCode == CurrentStep)
             {
@@ -849,13 +709,12 @@ namespace UAS_MES.PublicMethod
             if (iResult == "" || iResult == null)
                 iResult = "检查未通过";
             GetStepCodeAndNameBySource(iSourceCode, ref StepCode, ref StepName);
-            string ms_status = dh.getFieldDataByCondition("makeserial", "ms_status", "ms_sncode='" + iSnCode + "'").ToString();
             sql.Clear();
             sql.Append("insert into makebad(mb_id,mb_makecode,mb_mscode,mb_sncode,mb_inman,mb_indate,mb_stepcode");
             sql.Append(",mb_sourcecode,mb_badcode,mb_bgcode,mb_badtable,mb_soncode,mb_status,mb_badremark)");
             sql.Append("select makebad_seq.nextval,ma_code,ms_code,ms_sncode,'" + iUserCode + "',sysdate,'" + StepCode + "',ms_sourcecode,:bc_code,:bg_code,'',");
             sql.Append("sp_soncode,'0',:bc_remark from make left join makeSerial on ms_makecode=ma_code left join stepProduct on ");
-            sql.Append("sp_mothercode=ma_prodcode and sp_stepcode=ms_nextstepcode where ms_sncode='" + iSnCode + "'");
+            sql.Append("sp_mothercode=ma_prodcode and sp_stepcode=ms_nextstepcode where ms_sncode='" + iSnCode + "' and ms_makecode='" + iMakeCode + "'");
             dh.BatchInsert(sql.ToString(), new string[] { "bc_code", "bg_code", "bc_remark" }, iBadCode, iBadGroupCode, iBadRemark);
             //更新序列号已经采集的工序 ms_paststep 已采集数据,更新下一工序
             //如果存在送检批号则进行删除
@@ -866,8 +725,7 @@ namespace UAS_MES.PublicMethod
                 dh.ExecuteSql("update oqcbatch set ob_nowcheckqty=ob_nowcheckqty-1 where ob_checkno='" + checkno + "'", "update");
             }
             //之前保存的不良就不再调用
-
-            DataTable dt = dh.getFieldsDataByCondition("makeserial", new string[] { "ms_stepcode", "nvl(ms_ifrework,0)ms_ifrework" }, "ms_sncode='" + iSnCode + "'");
+            DataTable dt = dh.getFieldsDataByCondition("makeserial", new string[] { "ms_stepcode", "nvl(ms_ifrework,0)ms_ifrework" }, "ms_sncode='" + iSnCode + "' and ms_makecode='" + iMakeCode + "'");
             if (dt.Rows.Count > 0)
             {
                 string ifrework = dt.Rows[0]["ms_ifrework"].ToString();
@@ -875,17 +733,17 @@ namespace UAS_MES.PublicMethod
                 if (ms_stepcode == StepCode)
                 {
                     if (ifrework == "0")
-                        dh.UpdateByCondition("makeserial", "ms_status=3", "ms_sncode='" + iSnCode + "'");
+                        dh.UpdateByCondition("makeserial", "ms_status=3", "ms_sncode='" + iSnCode + "' and ms_makecode='" + iMakeCode + "'");
                     else
-                        dh.UpdateByCondition("makeserial", "ms_reworkstatus=3", "ms_sncode='" + iSnCode + "'");
+                        dh.UpdateByCondition("makeserial", "ms_reworkstatus=3", "ms_sncode='" + iSnCode + "' and ms_makecode='" + iMakeCode + "'");
                 }
                 else
                 {
                     if (ifrework == "0")
-                        dh.UpdateByCondition("makeserial", "ms_paststep = ms_paststep ||'," + StepCode + "',ms_status=3", "ms_sncode='" + iSnCode + "'");
+                        dh.UpdateByCondition("makeserial", "ms_nextstepcode='',ms_paststep = ms_paststep ||'," + StepCode + "',ms_status=3", "ms_sncode='" + iSnCode + "' and ms_makecode='" + iMakeCode + "' ");
                     else
-                        dh.UpdateByCondition("makeserial", "ms_paststep = ms_paststep ||'," + StepCode + "',ms_reworkstatus=3", "ms_sncode='" + iSnCode + "'");
-                    SetStepFinish(iMakeCode, iSourceCode, iSnCode, "不良采集", iResult, iUserCode, out oErrorMessage);
+                        dh.UpdateByCondition("makeserial", "ms_nextstepcode='',ms_paststep = ms_paststep ||'," + StepCode + "',ms_reworkstatus=3", "ms_sncode='" + iSnCode + "' and ms_makecode='" + iMakeCode + "'");
+                    SetTestResult(iMakeCode, iSourceCode, iSnCode, "不良采集", iResult, iUserCode, out oErrorMessage);
                 }
             }
             return true;
@@ -1153,7 +1011,7 @@ namespace UAS_MES.PublicMethod
             switch (iRule)
             {
                 case "TSN":
-                    dt = (DataTable)dh.ExecuteSql("select ms_id,ms_prodcode,ms_nextmacode,ms_salecode,ms_downstatus from makeserial where ms_sncode='" + iSN + "' and ms_status=2 order by ms_id desc", "select");
+                    dt = (DataTable)dh.ExecuteSql("select ms_id,ms_prodcode,ms_nextmacode,ms_salecode,ms_downstatus from makeserial where ms_sncode='" + iSN + "' and ms_makecode='"+iMakeCode+"' and ms_status=2 order by ms_id desc", "select");
                     if (dt.Rows.Count > 0)
                     {
                         if (dt.Rows[0]["ms_downstatus"].ToString() != "0")