Jelajahi Sumber

修改彩盒上料下料时的BUG

章政 8 tahun lalu
induk
melakukan
700b1f3f4e

+ 54 - 60
UAS-MES/FunctionCode/Make/Make_ColorBoxLoadPrint.cs

@@ -32,6 +32,8 @@ namespace UAS_MES.Make
 
         System.DateTime[] indate;
 
+        string ms_firstsn = "";
+
         ApplicationClass lbl;
 
         Document doc;
@@ -102,11 +104,10 @@ namespace UAS_MES.Make
                 if (LogicHandler.CheckStepAttribute(Tag.ToString(), User.UserSourceCode, out ErrorMessage))
                 {
                     string Msid;
-                    if (ListA.Rows.Count == 0)
+                    if (ListA.Rows.Count == 0 && load.Checked)
                     {
                         if (LogicHandler.CheckStepSNAndMacode(ma_code.Text, User.UserSourceCode, code.Text, User.UserCode, out macode, out Msid, out ErrorMessage) || ListA.Rows.Count > 0)
                         {
-                            string ms_firstsn = "";
                             sql.Clear();
                             sql.Append("select ma_code,ma_craftcode,ms_sncode,ma_qty,pr_detail,pr_code,ma_bomversion,ms_firstsn from makeserial left join make on ");
                             sql.Append("ms_makecode=ma_code left join product on ms_prodcode=pr_code where ms_id='" + Msid + "'");
@@ -126,68 +127,61 @@ namespace UAS_MES.Make
                                 ms_sncode.Text = code.Text;
                                 code.Text = "";
                             }
-                            //判断当前的执行状态 ,Loading表示执行上料操作,UnLoading表示执行下料操作
-                            if (load.Checked == true)
+                            sql.Clear();
+                            sql.Append("select sp_id,sp_tracekind,sp_barcoderule,sp_ifuseregex,sp_ifforsn,sp_length,sp_soncode,sp_repcode");
+                            sql.Append(",pr_id,sp_type,sp_prefix,sp_regex from stepproduct left join product on pr_code=sp_soncode where ");
+                            sql.Append("sp_bomversion='" + ma_bomversion.Text + "' and sp_craftcode='" + ma_craftcode.Text + "' and sp_stepcode='" + User.CurrentStepCode + "'");
+                            sql.Append("And sp_mothercode ='" + pr_code.Text + "' and((sp_type = '物料' and( sp_tracekind <> 2 or sp_tracekind is null))or sp_type <> '物料')");
+                            sql.Append("and not exists(select 1 from craftmaterial where (cm_sncode='" + ms_firstsn + "' or cm_sncode in (select sn from makesnrelation where firstsn='" + ms_firstsn + "')) and cm_makecode='" + ma_code.Text + "' and cm_soncode=");
+                            sql.Append("sp_soncode and cm_status=0) order by SP_DETNO asc");
+                            ListA = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                            //获取对应 产品的机身标的打印模板
+                            if (ListA.Rows.Count > 0)
                             {
-                                sql.Clear();
-                                sql.Append("select sp_id,sp_tracekind,sp_barcoderule,sp_ifuseregex,sp_ifforsn,sp_length,sp_soncode,sp_repcode");
-                                sql.Append(",pr_id,sp_type,sp_prefix,sp_regex from stepproduct left join product on pr_code=sp_soncode where ");
-                                sql.Append("sp_bomversion='" + ma_bomversion.Text + "' and sp_craftcode='" + ma_craftcode.Text + "' and sp_stepcode='" + User.CurrentStepCode + "'");
-                                sql.Append("And sp_mothercode ='" + pr_code.Text + "' and((sp_type = '物料' and( sp_tracekind <> 2 or sp_tracekind is null))or sp_type <> '物料')");
-                                sql.Append("and not exists(select 1 from craftmaterial where (cm_sncode='" + ms_firstsn + "' or cm_sncode in (select sn from makesnrelation where firstsn='" + ms_firstsn + "')) and cm_makecode='" + ma_code.Text + "' and cm_soncode=");
-                                sql.Append("sp_soncode and cm_status=0) order by SP_DETNO asc");
-                                ListA = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
-                                //获取对应 产品的机身标的打印模板
-                                if (ListA.Rows.Count > 0)
-                                {
-                                    OperateResult.AppendText(">>请采集" + ListA.Rows[RemainIndex]["sp_soncode"].ToString() + "的条码\n");
-                                    code.Clear();
-                                }
+                                OperateResult.AppendText(">>请采集" + ListA.Rows[RemainIndex]["sp_soncode"].ToString() + "的条码\n");
+                                code.Clear();
+                            }
+                            else
+                            {
+                                OperateResult.AppendText(">>当前序列号" + ms_sncode.Text + "没有需要采集的内容,请采集其他序列号\n", Color.Red);
+                                if (!LogicHandler.SetStepResult(ma_code.Text, User.UserSourceCode, ms_sncode.Text, "上料采集", "上料成功", User.UserCode, out ErrorMessage))
+                                    OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red);
                                 else
-                                {
-                                    OperateResult.AppendText(">>当前序列号" + ms_sncode.Text + "没有需要采集的内容,请采集其他序列号\n", Color.Red);
-                                    if (!LogicHandler.SetStepResult(ma_code.Text, User.UserSourceCode, ms_sncode.Text, "上料采集", "上料成功", User.UserCode, out ErrorMessage))
-                                        OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red);
-                                    else
-                                        OperateResult.AppendText(">>序列号" + ms_sncode.Text + "上料采集完成!\n", Color.Green);
-                                    return;
-                                }
+                                    OperateResult.AppendText(">>序列号" + ms_sncode.Text + "上料采集完成!\n", Color.Green);
+                                return;
                             }
-                            else if (unload.Checked == true)
+                        }
+                        else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, code);
+                    }
+                    else if (unload.Checked == true)
+                    {
+                        if (LogicHandler.CheckStepSNAndMacode(ma_code.Text, User.UserSourceCode, code.Text, User.UserCode, out macode, out Msid, out ErrorMessage))
+                        {
+                            dt = (DataTable)dh.ExecuteSql("select ms_firstsn,cm_id,cm_stepcode,ms_makecode,cm_mccode,cm_makecode,cm_craftcode from craftmaterial left join makeserial on cm_makecode=ms_makecode and cm_sncode=ms_sncode where ms_sncode='" + code.Text + "' and cm_makecode='" + macode + "'", "select");
+                            if (dt.Rows.Count > 0)
                             {
-                                if (LogicHandler.CheckStepSNAndMacode(ma_code.Text, User.UserSourceCode, code.Text, User.UserCode, out macode, out Msid, out ErrorMessage))
-                                {
-                                    dt = (DataTable)dh.ExecuteSql("select ms_firstsn,cm_id,cm_stepcode,ms_makecode,cm_mccode,cm_makecode,cm_craftcode from craftmaterial left join makeserial on cm_makecode=ms_makecode and cm_sncode=ms_sncode where ms_sncode='" + code.Text + "' and cm_makecode='" + macode + "'", "select");
-                                    if (dt.Rows.Count > 0)
-                                    {
-                                        string ms_macode = dt.Rows[0]["ms_makecode"].ToString();
-                                        ms_firstsn = dt.Rows[0]["ms_firstsn"].ToString();
-                                        string cm_stepcode = dt.Rows[0]["cm_stepcode"].ToString();
-                                        string cm_mccode = dt.Rows[0]["cm_mccode"].ToString();
-                                        string cm_makecode = dt.Rows[0]["cm_makecode"].ToString();
-                                        string cm_craftcode = dt.Rows[0]["cm_craftcode"].ToString();
-                                        //进行下料
-                                        sql.Clear();
-                                        sql.Append("delete from craftmaterial where (cm_sncode in (select sn from makesnrelation where firstsn");
-                                        sql.Append("='" + ms_firstsn + "') or cm_sncode = '" + ms_firstsn + "') and cm_makecode = '" + ma_code.Text + "' ");
-                                        sql.Append("and cm_status = 0 and cm_stepcode='" + User.CurrentStepCode + "'");
-                                        dh.ExecuteSql(sql.GetString(), "delete");
-                                        LogicHandler.InsertMakeProcess(ms_macode, code.Text, User.UserSourceCode, "上料采集操作", "下料成功", User.UserCode);
-                                        int count = dh.getRowCount("craftMaterial", "cm_mccode='" + cm_mccode + "' and cm_stepcode='" + cm_stepcode + "' and cm_sncode='" + code.Text + "'");
-                                        if (count == 0)
-                                            dh.UpdateByCondition("makecraftdetail ", "mcd_inqty=mcd_inqty-1,mcd_outqty=mcd_outqty-1,mcd_okqty = mcd_okqty - 1", "mcd_mccode='" + cm_mccode + "' and mcd_stepcode='" + cm_stepcode + "'");
-                                        sql.Clear();
-                                        sql.Append("update makeserial set ms_nextmacode='' where ms_sncode in(select cm_barcode from craftmaterial where ");
-                                        sql.Append("cm_makecode='" + cm_makecode + "' and cm_stepcode='" + cm_stepcode + "' and cm_craftcode='" + cm_craftcode + "' ");
-                                        sql.Append("and cm_materialtype=1 and nvl(cm_status,0) =0) and ms_nextmacode='" + ma_code.Text + "'");
-                                        dh.ExecuteSql(sql.GetString(), "update");
-                                        LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ma_code.Text, User.UserLineCode, User.UserSourceCode, "上料采集", "下料成功", code.Text, "");
-                                        OperateResult.AppendText(">>序列号" + code.Text + "下料成功\n", Color.Green, code);
-                                    }
-                                    else OperateResult.AppendText(">>该序列号未上料,无需下料\n", Color.Red, code);
-                                }
-                                else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, code);
+                                string ms_macode = dt.Rows[0]["ms_makecode"].ToString();
+                                ms_firstsn = dt.Rows[0]["ms_firstsn"].ToString();
+                                string cm_stepcode = dt.Rows[0]["cm_stepcode"].ToString();
+                                string cm_mccode = dt.Rows[0]["cm_mccode"].ToString();
+                                string cm_makecode = dt.Rows[0]["cm_makecode"].ToString();
+                                string cm_craftcode = dt.Rows[0]["cm_craftcode"].ToString();
+                                //进行下料
+                                sql.Clear();
+                                sql.Append("delete from craftmaterial where (cm_sncode in (select sn from makesnrelation where firstsn");
+                                sql.Append("='" + ms_firstsn + "') or cm_sncode = '" + ms_firstsn + "') and cm_makecode = '" + macode + "' ");
+                                sql.Append("and cm_status = 0 and cm_stepcode='" + User.CurrentStepCode + "' and cm_materialtype=1");
+                                dh.ExecuteSql(sql.GetString(), "delete");
+                                LogicHandler.InsertMakeProcess(macode, code.Text, User.UserSourceCode, "上料采集操作", "下料成功", User.UserCode);
+                                sql.Clear();
+                                sql.Append("update makeserial set ms_nextmacode='' where ms_sncode in(select cm_barcode from craftmaterial where ");
+                                sql.Append("cm_makecode='" + cm_makecode + "' and cm_stepcode='" + cm_stepcode + "' and cm_craftcode='" + cm_craftcode + "' ");
+                                sql.Append("and cm_materialtype=1 and nvl(cm_status,0) =0) and ms_nextmacode='" + macode + "'");
+                                dh.ExecuteSql(sql.GetString(), "update");
+                                LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ma_code.Text, User.UserLineCode, User.UserSourceCode, "上料采集", "下料成功", code.Text, "");
+                                OperateResult.AppendText(">>序列号" + code.Text + "下料成功\n", Color.Green, code);
                             }
+                            else OperateResult.AppendText(">>该序列号未上料,无需下料\n", Color.Red, code);
                         }
                         else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, code);
                     }
@@ -231,7 +225,7 @@ namespace UAS_MES.Make
                             //更新半成品SN已被工单使用
                             dh.ExecuteSql("update makeserial set ms_nextmacode='" + ma_code.Text + "' where ms_id=(select max(ms_id) from makeserial where ms_sncode='" + ms_sncode.Text + "' and ms_makecode<>'" + ma_code.Text + "')", "update");
                             OperateResult.AppendText(">>序列号" + ms_sncode.Text + "对应的物料已经采集完成\n", Color.Green);
-                            doc = lbl.Documents.Open(ftpOperater.DownLoadTo+ PrintLabel.Text);
+                            doc = lbl.Documents.Open(ftpOperater.DownLoadTo + PrintLabel.Text);
                             Print.CodeSoft(Tag.ToString(), doc, PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, ms_sncode.Text, int.Parse(PrintNum.Text), indate[PrintLabel.SelectedIndex]);
                             RemainIndex = 0;
                             CollectData.Clear();

+ 9 - 5
UAS-MES/FunctionCode/Make/Make_FeedingCollection.cs

@@ -166,18 +166,22 @@ namespace UAS_MES.Make
                                 sql.Clear();
                                 sql.Append("delete from craftmaterial where (cm_sncode in (select sn from makesnrelation where firstsn");
                                 sql.Append("='" + ms_firstsn + "') or cm_sncode = '" + ms_firstsn + "') and cm_makecode = '" + oMakeCode + "' ");
-                                sql.Append("and cm_status = 0 and cm_stepcode='" + User.CurrentStepCode + "'");
+                                sql.Append("and cm_status = 0 and cm_stepcode='" + User.CurrentStepCode + "' and cm_materialtype=1");
                                 dh.ExecuteSql(sql.GetString(), "delete");
                                 LogicHandler.InsertMakeProcess(ms_macode, code.Text, User.UserSourceCode, "上料采集操作", "下料成功", User.UserCode);
-                                int count = dh.getRowCount("craftMaterial", "cm_mccode='" + cm_mccode + "' and cm_stepcode='" + cm_stepcode + "' and cm_sncode='" + code.Text + "'");
-                                if (count == 0)
-                                    dh.UpdateByCondition("makecraftdetail ", "mcd_inqty=mcd_inqty-1,mcd_outqty=mcd_outqty-1,mcd_okqty = mcd_okqty - 1", "mcd_mccode='" + cm_mccode + "' and mcd_stepcode='" + cm_stepcode + "'");
                                 //清除已被使用的序列号
                                 sql.Clear();
                                 sql.Append("update makeserial set ms_nextmacode='' where ms_sncode in(select cm_barcode from craftmaterial where ");
                                 sql.Append("cm_makecode='" + cm_makecode + "' and cm_stepcode='" + cm_stepcode + "' and cm_craftcode='" + cm_craftcode + "' ");
                                 sql.Append("and cm_materialtype=1 and nvl(cm_status,0) =0) and ms_nextmacode='" + oMakeCode + "'");
                                 dh.ExecuteSql(sql.GetString(), "update");
+                                //刷新界面值
+                                sql.Clear();
+                                sql.Append("select mcd_inqty,ma_qty-mcd_inqty mcd_remainqty ");
+                                sql.Append("from make left join makecraftdetail on mcd_macode=ma_code where ");
+                                sql.Append("ma_code='" + oMakeCode + "' and mcd_stepcode='" + User.CurrentStepCode + "'");
+                                dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                                BaseUtil.SetFormValue(Controls, dt);
                                 LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, oMakeCode, User.UserLineCode, User.UserSourceCode, "上料采集", "下料成功", code.Text, "");
                                 OperateResult.AppendText(">>序列号" + code.Text + "下料成功\n", Color.Green, code);
                             }
@@ -362,7 +366,7 @@ namespace UAS_MES.Make
                 sql.Append("where ma_code='" + make_code + "'and sp_id=" + sp_id + " and mcd_stepcode = '" + User.CurrentStepCode + "' and ms_sncode='" + ms_sncode + "'");
                 dh.BatchInsert(sql.GetString(), new string[] { "soncode", "barcode" }, CollectDataSonCode.ToArray(), CollectData.ToArray());
                 //更新序列号半成品已被使用
-                dh.ExecuteSql("update makeserial set ms_nextmacode='" + ma_code+"' where ms_id=(select max(ms_id) from makeserial where ms_sncode='"+sn_code.Text+"' and ms_makecode<>'"+ma_code+"')", "update");
+                dh.ExecuteSql("update makeserial set ms_nextmacode='" + ma_code + "' where ms_id=(select max(ms_id) from makeserial where ms_sncode='" + sn_code.Text + "' and ms_makecode<>'" + ma_code + "')", "update");
                 if (ecn_label.Checked || softwareversion_label.Checked)
                 {
                     string ecnText = ecn_label.Checked ? ecn.Text : "";