浏览代码

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

Hcsy 8 年之前
父节点
当前提交
4427dad7c1
共有 1 个文件被更改,包括 121 次插入139 次删除
  1. 121 139
      UAS-MES/FunctionCode/Make/Make_FeedingCollection.cs

+ 121 - 139
UAS-MES/FunctionCode/Make/Make_FeedingCollection.cs

@@ -38,6 +38,8 @@ namespace UAS_MES.Make
         string oMakeCode = "";
         string oMsid = "";
 
+        string ms_firstsn = "";
+
         DataHelper dh;
         LogStringBuilder sql = new LogStringBuilder();
         DataTable DBFind;
@@ -114,76 +116,7 @@ namespace UAS_MES.Make
                         if (code.Text != "" && ma_code.Text != "" && sn_code.Text == "")
                         {
                             //根据序列号查出ma_code,ma_prodcode,stepcode
-                            dt = (DataTable)dh.ExecuteSql("select ms_id,ms_makecode,ms_craftcode,ms_status,ms_nextstepcode,ms_prodcode,ms_code from makeserial where ms_sncode='" + code.Text + "' and ms_makecode<>'" + ma_code.Text + "' order by ms_id desc", "select");
-                            if (dt.Rows.Count > 0)
-                            {
-                                ms_id = dt.Rows[0]["ms_id"].ToString();
-                                make_code = dt.Rows[0]["ms_makecode"].ToString();
-                                ms_craftcode = dt.Rows[0]["ms_craftcode"].ToString();
-                                make_prodcode = dt.Rows[0]["ms_prodcode"].ToString();
-                                nextstepcode = dt.Rows[0]["ms_nextstepcode"].ToString();
-                                ms_status = dt.Rows[0]["ms_status"].ToString();
-                            }
-                            //勾选了前一工单
-                            if (iflastsn.Checked)
-                            {
-                                if (dt.Rows.Count > 0)
-                                {
-                                    //判断序列号的前一工单是否已经完工
-                                    if (dt.Rows[0]["ms_makecode"].ToString() != ma_code.Text && dt.Rows[0]["ms_status"].ToString() == "2")
-                                    {
-                                        //验证当前工单是否存在序列号
-                                        if (LogicHandler.CheckStepSNAndMacode(ma_code.Text, User.UserSourceCode, code.Text, User.UserCode, out oMakeCode, out oMsid, out ErrorMessage))
-                                        {
-                                            sql.Clear();
-                                            sql.Append("select sp_id,sp_soncode from make inner join stepbom on ma_prodcode=sb_prodcode and ma_bomversion=sb_bomversion left ");
-                                            sql.Append("join stepproduct on sp_sbid=sb_id where ma_code='" + ma_code.Text + "' and sp_craftcode='" + ma_craftcode.Text + "' ");
-                                            sql.Append("and sp_stepcode='" + User.CurrentStepCode + "' and nvl(sp_ifforsn,0)<>0");
-                                            dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
-                                            if (dt.Rows.Count > 0)
-                                            {
-                                                string sp_id = dt.Rows[0]["sp_id"].ToString();
-                                                string sp_soncode = dt.Rows[0]["sp_soncode"].ToString();
-                                                if (!dh.CheckExist("Craftmaterial", "cm_makecode='" + ma_code.Text + "' and cm_sncode='" + code.Text + "'"))
-                                                {
-                                                    CollectDataSonCode.Add(sp_soncode);
-                                                    CollectData.Add(code.Text);
-                                                    sn_code.Text = code.Text;
-                                                    OperateResult.AppendText(">>序列号" + code.Text + "上料成功\n", Color.Green);
-                                                    RemainIndex = RemainIndex + 1;
-                                                    GetCollectItem();
-                                                }
-                                                else OperateResult.AppendText(">>序列号" + code.Text + "已经上料\n", Color.Red, code);
-                                            }
-                                            else OperateResult.AppendText(">>序列号" + code.Text + "不存在于其他工单\n", Color.Red, code);
-                                        }
-                                        else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, code);
-                                    }
-                                    else OperateResult.AppendText(">>序列号" + code.Text + "已被工单" + dt.Rows[0]["ms_makecode"].ToString() + "绑定,尚未完工\n", Color.Red, code);
-                                }
-                                else OperateResult.AppendText(">>序列号" + code.Text + "不存在于其他工单\n", Color.Red, code);
-                            }
-                            else
-                            {
-                                //未勾选上一工序
-                                if (LogicHandler.CheckStepSNAndMacode(ma_code.Text, User.UserSourceCode, code.Text, User.UserCode, out oMakeCode, out oMsid, out ErrorMessage))
-                                {
-                                    dt = (DataTable)dh.ExecuteSql("select ms_status,ms_stepcode,ms_nextstepcode from makeserial where ms_sncode='" + code.Text + "' and ms_makecode='" + ma_code.Text + "' order by ms_id desc", "select");
-                                    nextstepcode = dt.Rows[0]["ms_nextstepcode"].ToString();
-                                    ms_status = dt.Rows[0]["ms_status"].ToString();
-                                    sn_code.Text = code.Text;
-                                    sql.Clear();
-                                    sql.Append("select ma_code,ma_prodcode,pr_detail,ma_qty from makeserial left join product ");
-                                    sql.Append(" on ms_prodcode=pr_code left join make on ms_makecode=ma_code left join ");
-                                    sql.Append("makecraftdetail on mcd_macode=ms_makecode where ms_sncode='" + sn_code.Text + "'");
-                                    dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
-                                    BaseUtil.SetFormValue(this.Controls, dt);
-                                    OperateResult.AppendText(">>获取序列号" + code.Text + "成功\n", Color.Green);
-                                    GetCollectItem();
-                                    code.Text = "";
-                                }
-                                else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, code);
-                            }
+                            GetCollectItem();
                         }
                         //输入框有值但未选择工单号
                         else if (code.Text != "" && ma_code.Text == "" && sn_code.Text == "")
@@ -259,94 +192,143 @@ namespace UAS_MES.Make
         //获取采集的项目
         private void GetCollectItem()
         {
-            //将录入框的值给序列号
-            sn_code.Text = code.Text;
-            sql.Clear();
-            sql.Append("select ma_prodcode,ms_firstsn,ma_craftcode,ma_bomversion,ma_qty,ma_code,pr_detail,ms_status,ms_id,ms_craftcode,ms_nextstepcode");
-            sql.Append(",ms_prodcode,ms_makecode,ms_code,ms_stepname  from makeserial left join make on ma_code=ms_makecode ");
-            sql.Append("left join product on ms_prodcode=pr_code where ms_sncode='" + code.Text + "' order by ms_id desc");
-            dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
-            if (dt.Rows.Count > 0)
+            if (LogicHandler.CheckStepSNAndMacode(ma_code.Text, User.UserSourceCode, code.Text, User.UserCode, out oMakeCode, out oMsid, out ErrorMessage))
             {
-                ms_id = dt.Rows[0]["ms_id"].ToString();
-                ms_craftcode = dt.Rows[0]["ms_craftcode"].ToString();
-                make_code = dt.Rows[0]["ma_code"].ToString();
-                mabomversion = dt.Rows[0]["ma_bomversion"].ToString();
-                make_prodcode = dt.Rows[0]["ms_prodcode"].ToString();
-                nextstepcode = dt.Rows[0]["ms_nextstepcode"].ToString();
-                ms_status = dt.Rows[0]["ms_status"].ToString();
-                string ms_firstsn = dt.Rows[0]["ms_firstsn"].ToString();
-                BaseUtil.SetFormValue(this.Controls, dt);
-                string ifforsn = dh.getFieldDataByCondition("make left join stepbom on ma_prodcode=sb_prodcode left join stepproduct on sb_id=sp_sbid", "nvl(sp_ifforsn,0) sp_ifforsn", "ma_code='" + ma_code.Text + "' and sp_craftcode='" + ma_craftcode.Text + "' and sb_bomversion='" + ma_bomversion.Text + "' order by sp_detno").ToString();
-                if (ifforsn != "" && ifforsn != "0")
-                    iflastsn.Checked = true;
-                else
-                    iflastsn.Checked = false;
-                LockMakeCode.Checked = true;
-                string oMakeCode = "";
-                string oMsID = "";
-                if (LogicHandler.CheckStepAttribute(Tag.ToString(), User.UserSourceCode, out ErrorMessage))
+                //将录入框的值给序列号
+                sn_code.Text = code.Text;
+                sql.Clear();
+                sql.Append("select ma_prodcode,ms_firstsn,ma_craftcode,ma_bomversion,ma_qty,ma_code,pr_detail,ms_status,ms_id,ms_craftcode,ms_nextstepcode");
+                sql.Append(",ms_prodcode,ms_makecode,ms_code,ms_stepname  from makeserial left join make on ma_code=ms_makecode ");
+                sql.Append("left join product on ms_prodcode=pr_code where ms_sncode='" + code.Text + "' order by ms_id desc");
+                dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                if (dt.Rows.Count > 0)
                 {
-                    if (LogicHandler.CheckStepSNAndMacode(ma_code.Text, User.UserSourceCode, code.Text, User.UserCode, out oMakeCode, out oMsID, out ErrorMessage))
+                    ms_id = dt.Rows[0]["ms_id"].ToString();
+                    ms_craftcode = dt.Rows[0]["ms_craftcode"].ToString();
+                    make_code = dt.Rows[0]["ma_code"].ToString();
+                    mabomversion = dt.Rows[0]["ma_bomversion"].ToString();
+                    make_prodcode = dt.Rows[0]["ms_prodcode"].ToString();
+                    nextstepcode = dt.Rows[0]["ms_nextstepcode"].ToString();
+                    ms_status = dt.Rows[0]["ms_status"].ToString();
+                    ms_firstsn = dt.Rows[0]["ms_firstsn"].ToString();
+                    BaseUtil.SetFormValue(this.Controls, dt);
+                    string ifforsn = dh.getFieldDataByCondition("make left join stepbom on ma_prodcode=sb_prodcode left join stepproduct on sb_id=sp_sbid", "nvl(sp_ifforsn,0) sp_ifforsn", "ma_code='" + ma_code.Text + "' and sp_craftcode='" + ma_craftcode.Text + "' and sb_bomversion='" + ma_bomversion.Text + "' order by sp_detno").ToString();
+                    if (ifforsn != "" && ifforsn != "0")
+                        iflastsn.Checked = true;
+                    else
+                        iflastsn.Checked = false;
+                    LockMakeCode.Checked = true;
+                    //勾选了前一工单
+                    if (iflastsn.Checked)
                     {
-                        //单独用一个DataTable存储一个
-                        dt1 = new DataTable();
-                        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='" + mabomversion + "' and sp_craftcode='" + ms_craftcode + "' and sp_stepcode='" + User.CurrentStepCode + "'");
-                        sql.Append("And sp_mothercode ='" + make_prodcode + "' 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");
-                        dt1 = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
-                        sn_code.Text = code.Text;
-                        code.Clear();
-                        //用于记录提醒的数据长度
-                        RemainList = new string[dt1.Rows.Count];
-                        for (int i = 0; i < dt1.Rows.Count; i++)
-                            RemainList[i] = dt1.Rows[i]["sp_soncode"].ToString();
-                        if (dt1.Rows.Count > 0)
+                        dt = (DataTable)dh.ExecuteSql("select ms_id,ms_makecode,ms_craftcode,ms_status,ms_nextstepcode,ms_prodcode,ms_code from makeserial where ms_sncode='" + code.Text + "' and ms_makecode<>'" + ma_code.Text + "' order by ms_id desc", "select");
+                        string make_code = "";
+                        string ms_craftcode = "";
+                        string make_prodcode = "";
+                        string nextstepcode = "";
+                        string ms_status = "";
+                        if (dt.Rows.Count > 0)
                         {
-                            try
+                            ms_id = dt.Rows[0]["ms_id"].ToString();
+                            make_code = dt.Rows[0]["ms_makecode"].ToString();
+                            ms_craftcode = dt.Rows[0]["ms_craftcode"].ToString();
+                            make_prodcode = dt.Rows[0]["ms_prodcode"].ToString();
+                            nextstepcode = dt.Rows[0]["ms_nextstepcode"].ToString();
+                            ms_status = dt.Rows[0]["ms_status"].ToString();
+                            //判断序列号的前一工单是否已经完工
+                            if (dt.Rows[0]["ms_makecode"].ToString() != ma_code.Text && dt.Rows[0]["ms_status"].ToString() == "2")
                             {
-                                CollectDataSonCode.Add(dt1.Rows[RemainIndex]["sp_soncode"].ToString());
-                                OperateResult.AppendText("<<请采集" + dt1.Rows[RemainIndex]["sp_soncode"].ToString() + "的" + dt1.Rows[RemainIndex]["sp_type"].ToString() + "数据\n", Color.Black);
-                            }
-                            catch (Exception)
-                            {
-                                OperateResult.AppendText(">>序列号" + sn_code.Text + "上料采集完成!\n", Color.Green);
-                                code.Text = "";
-                                sn_code.Text = "";
+                                sql.Clear();
+                                sql.Append("select sp_id,sp_soncode from make inner join stepbom on ma_prodcode=sb_prodcode and ma_bomversion=sb_bomversion left ");
+                                sql.Append("join stepproduct on sp_sbid=sb_id where ma_code='" + ma_code.Text + "' and sp_craftcode='" + ma_craftcode.Text + "' ");
+                                sql.Append("and sp_stepcode='" + User.CurrentStepCode + "' and nvl(sp_ifforsn,0)<>0");
+                                dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                                if (dt.Rows.Count > 0)
+                                {
+                                    string sp_id = dt.Rows[0]["sp_id"].ToString();
+                                    string sp_soncode = dt.Rows[0]["sp_soncode"].ToString();
+                                    if (!dh.CheckExist("Craftmaterial", "cm_makecode='" + ma_code.Text + "' and cm_sncode='" + code.Text + "'"))
+                                    {
+                                        CollectDataSonCode.Add(sp_soncode);
+                                        CollectData.Add(code.Text);
+                                        sn_code.Text = code.Text;
+                                        OperateResult.AppendText(">>序列号" + code.Text + ",物料" + sp_soncode + "上料成功\n", Color.Green);
+                                        RemainIndex = RemainIndex + 1;
+                                        GetItem();
+                                        return;
+                                    }
+                                    else OperateResult.AppendText(">>序列号" + code.Text + "已经上料\n", Color.Red, code);
+                                }
+                                else OperateResult.AppendText(">>序列号" + code.Text + "不存在于其他工单\n", Color.Red, code);
                             }
+                            else OperateResult.AppendText(">>序列号" + code.Text + "已被工单" + dt.Rows[0]["ms_makecode"].ToString() + "绑定,尚未完工\n", Color.Red, code);
                         }
-                        else
-                        {
-                            OperateResult.AppendText(">>序列号" + sn_code.Text + "没有需要采集的内容,请采集其他序列号\n", Color.Red);
-                            if (!LogicHandler.SetStepResult(ma_code.Text, User.UserSourceCode, sn_code.Text, "上料采集", "上料成功", User.UserCode, out ErrorMessage))
-                                OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red);
-                            else
-                                OperateResult.AppendText(">>序列号" + sn_code.Text + "上料采集完成!\n", Color.Green);
-                            code.Text = "";
-                            sn_code.Text = "";
-                        }
+                        else OperateResult.AppendText(">>序列号" + code.Text + "不存在于其他工单\n", Color.Red, code);
                     }
                     else
                     {
-                        OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, code);
-                        code.Text = "";
-                        sn_code.Text = "";
+                        dt = (DataTable)dh.ExecuteSql("select ms_status,ms_stepcode,ms_nextstepcode from makeserial where ms_sncode='" + code.Text + "' and ms_makecode='" + ma_code.Text + "' order by ms_id desc", "select");
+                        nextstepcode = dt.Rows[0]["ms_nextstepcode"].ToString();
+                        ms_status = dt.Rows[0]["ms_status"].ToString();
+                        sn_code.Text = code.Text;
+                        sql.Clear();
+                        sql.Append("select ma_code,ma_prodcode,pr_detail,ma_qty from makeserial left join product ");
+                        sql.Append(" on ms_prodcode=pr_code left join make on ms_makecode=ma_code left join ");
+                        sql.Append("makecraftdetail on mcd_macode=ms_makecode where ms_sncode='" + sn_code.Text + "'");
+                        dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                        BaseUtil.SetFormValue(this.Controls, dt);
+                        OperateResult.AppendText(">>获取序列号" + code.Text + "成功\n", Color.Green);
+                        GetItem();
                     }
                 }
                 else
                 {
-                    OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, code);
+                    OperateResult.AppendText(">>序列号" + code.Text + "不存在\n", Color.Red, code);
+                    code.Text = "";
+                    sn_code.Text = "";
+                }
+            }
+            else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, code);
+        }
+
+        private void GetItem()
+        {
+            //单独用一个DataTable存储一个
+            dt1 = new DataTable();
+            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='" + mabomversion + "' and sp_craftcode='" + ms_craftcode + "' and sp_stepcode='" + User.CurrentStepCode + "'");
+            sql.Append("And sp_mothercode ='" + make_prodcode + "' 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");
+            dt1 = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+            code.Clear();
+            //用于记录提醒的数据长度
+            RemainList = new string[dt1.Rows.Count];
+            for (int i = 0; i < dt1.Rows.Count; i++)
+                RemainList[i] = dt1.Rows[i]["sp_soncode"].ToString();
+            if (dt1.Rows.Count > 0)
+            {
+                try
+                {
+                    CollectDataSonCode.Add(dt1.Rows[RemainIndex]["sp_soncode"].ToString());
+                    OperateResult.AppendText("<<请采集" + dt1.Rows[RemainIndex]["sp_soncode"].ToString() + "的" + dt1.Rows[RemainIndex]["sp_type"].ToString() + "数据\n", Color.Black);
+                }
+                catch (Exception)
+                {
+                    OperateResult.AppendText(">>序列号" + sn_code.Text + "上料采集完成!\n", Color.Green);
                     code.Text = "";
                     sn_code.Text = "";
                 }
             }
             else
             {
-                OperateResult.AppendText(">>序列号" + code.Text + "不存在\n", Color.Red, code);
+                OperateResult.AppendText(">>序列号" + sn_code.Text + "没有需要采集的内容,请采集其他序列号\n", Color.Red);
+                if (!LogicHandler.SetStepResult(ma_code.Text, User.UserSourceCode, sn_code.Text, "上料采集", "上料成功", User.UserCode, out ErrorMessage))
+                    OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red);
+                else
+                    OperateResult.AppendText(">>序列号" + sn_code.Text + "采集成功!\n", Color.Green);
                 code.Text = "";
                 sn_code.Text = "";
             }
@@ -431,7 +413,7 @@ namespace UAS_MES.Make
                     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='" + ma_code.Text + "' and mcd_stepcode='" + User.CurrentStepCode + "'");
-                    dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                    DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
                     if (dt.Rows.Count > 0)
                         BaseUtil.SetFormValue(Controls, dt);
                 }