Ver código fonte

大箱栈板线外采集

章政 8 anos atrás
pai
commit
b428504590

+ 48 - 9
UAS-MES/FunctionCode/Make/Make_BigBoxCollection.cs

@@ -44,6 +44,8 @@ namespace UAS_MES.Make
 
         string ErrorMessage = "";
 
+        string pa_nextstep = "";
+
         public Make_BigBoxCollection()
         {
             InitializeComponent();
@@ -118,11 +120,32 @@ namespace UAS_MES.Make
                         OperateResult.AppendText(">>卡通箱号不能为空\n", Color.Red);
                         return;
                     }
-                    if (dh.getFieldDataByCondition("package", "pa_nextstep", "pa_outboxcode='" + outboxcode.Text + "'").ToString() != User.CurrentStepCode)
+                    pa_nextstep = dh.getFieldDataByCondition("package", "pa_nextstep", "pa_outboxcode='" + outboxcode.Text + "'").ToString();
+                    if (pa_nextstep != User.CurrentStepCode && pa_nextstep != "")
                     {
                         OperateResult.AppendText(">>箱号" + outboxcode.Text + "的下一工序不是当前岗位资源对应工序\n", Color.Red, outboxcode);
                         return;
                     }
+                    else
+                    {
+                        //判断线外,必须已完工并且未入库
+                        dt = (DataTable)dh.ExecuteSql("select wm_concat(ms_sncode) from mes_package_view  left join makeserial on v_barcode=ms_sncode where  v_outboxcode='" + outboxcode.Text + "' and ms_status<>2", "select");
+                        if (dt.Rows[0][0].ToString() == "")
+                        {
+                            //判断箱未入库
+                            dt = (DataTable)dh.ExecuteSql("select count(1) from package where pa_outboxcode='" + outboxcode.Text + "' and nvl(pa_iostatus,0)<>0", "select");
+                            if (dt.Rows[0][0].ToString() != "0")
+                            {
+                                OperateResult.AppendText(">>序列号" + dt.Rows[0][0].ToString() + "已入库,不允许装箱\n", Color.Red);
+                                return;
+                            }
+                        }
+                        else
+                        {
+                            OperateResult.AppendText(">>序列号" + dt.Rows[0][0].ToString() + "尚未完工\n", Color.Red);
+                            return;
+                        }
+                    }
                     if (!dh.CheckExist("package", "pa_outboxcode='" + bigoutboxcode.Text + "' and pa_type=2"))
                     {
                         OperateResult.AppendText(">>大箱号不存在\n", Color.Red);
@@ -198,7 +221,10 @@ namespace UAS_MES.Make
                         }
                         LogicHandler.DoCommandLog(Tag.ToString(), User.UserSourceCode, pa_makecode.Text, User.UserLineCode, User.UserSourceCode, "大箱采集", "卡通箱" + outboxcode.Text + "采集成功", outboxcode.Text, "");
                         //记录卡通箱所有序列号操作日志
-                        LogicHandler.OutBoxStepPass(outboxcode.Text, pa_makecode.Text, User.UserSourceCode, User.UserCode, "大箱采集成功,大箱号:" + bigoutboxcode.Text, "大箱采集");
+                        if (pa_nextstep != "")
+                        {
+                            LogicHandler.OutBoxStepPass(outboxcode.Text, pa_makecode.Text, User.UserSourceCode, User.UserCode, "大箱采集成功,大箱号:" + bigoutboxcode.Text, "大箱采集");
+                        }
                         LoadGridData();
                         LoadCollectNum();
                         //更新箱号的NextStepCode
@@ -278,15 +304,28 @@ namespace UAS_MES.Make
 
         private void ReleasePallet_Click(object sender, EventArgs e)
         {
-            if (dh.getFieldDataByCondition("package", "pa_mothercode", "pa_outboxcode='" + bigoutboxcode.Text + "'").ToString() == "")
+            if (dh.getRowCount("packagedetail", "pd_outboxcode='" + bigoutboxcode.Text + "'") > 0)
             {
-                LogicHandler.OutBoxDrawStepPass(bigoutboxcode.Text, pa_makecode.Text, User.UserSourceCode);
-                //将子箱的母箱编号置成空
-                OperateResult.AppendText(">>箱号" + bigoutboxcode.Text + "解除成功\n", Color.Green);
-                LogicHandler.DoCommandLog(Tag.ToString(), User.UserSourceCode, pa_makecode.Text, User.UserLineCode, User.UserSourceCode, "大箱采集", "解除大箱" + bigoutboxcode.Text + "成功", bigoutboxcode.Text, "");
-                palletcode_KeyDown(new object(), new KeyEventArgs(Keys.Enter));
+                if (dh.getFieldDataByCondition("package", "pa_mothercode", "pa_outboxcode='" + bigoutboxcode.Text + "'").ToString() == "")
+                {
+                    if (dh.getFieldDataByCondition("package", "pa_nextstep", "pa_mothercode='" + bigoutboxcode.Text + "'").ToString() != "")
+                        LogicHandler.OutBoxDrawStepPass(bigoutboxcode.Text, pa_makecode.Text, User.UserSourceCode);
+                    else
+                    {
+                        //删除明细
+                        dh.ExecuteSql("delete from packagedetail where pd_outboxcode='" + bigoutboxcode.Text + "'", "delete");
+                        sql.Clear();
+                        sql.Append("update set package pa_packageqty=0,pa_totalqty=0,pa_currentqty=0,pa_status=0 where pa_outboxcode='" + bigoutboxcode.Text + "'");
+                        dh.ExecuteSql(sql.GetString(), "select");
+                    }
+                    //将子箱的母箱编号置成空
+                    OperateResult.AppendText(">>箱号" + bigoutboxcode.Text + "解除成功\n", Color.Green);
+                    LogicHandler.DoCommandLog(Tag.ToString(), User.UserSourceCode, pa_makecode.Text, User.UserLineCode, User.UserSourceCode, "大箱采集", "解除大箱" + bigoutboxcode.Text + "成功", bigoutboxcode.Text, "");
+                    palletcode_KeyDown(new object(), new KeyEventArgs(Keys.Enter));
+                }
+                else OperateResult.AppendText(">>箱号" + bigoutboxcode.Text + "已装箱,不能取消解除装箱\n", Color.Red);
             }
-            else OperateResult.AppendText(">>箱号" + bigoutboxcode.Text + "已装箱,不能取消解除装箱\n", Color.Green);
+            else OperateResult.AppendText(">>箱号" + bigoutboxcode.Text + "未采集箱\n", Color.Red);
         }
 
         private void Make_BigBoxCollection_FormClosed(object sender, FormClosedEventArgs e)

+ 20 - 6
UAS-MES/FunctionCode/Make/Make_PalletCollection.cs

@@ -117,7 +117,8 @@ namespace UAS_MES.Make
                         OperateResult.AppendText(">>箱号不能为空\n", Color.Red);
                         return;
                     }
-                    if (dh.getFieldDataByCondition("package", "pa_nextstep", "pa_outboxcode='" + outboxcode.Text + "'").ToString() != User.CurrentStepCode)
+                    string pa_nextstep = dh.getFieldDataByCondition("package", "pa_nextstep", "pa_outboxcode='" + outboxcode.Text + "'").ToString();
+                    if (pa_nextstep != User.CurrentStepCode && pa_nextstep != "")
                     {
                         OperateResult.AppendText(">>箱号" + outboxcode.Text + "的下一工序不是当前岗位资源对应工序\n", Color.Red, outboxcode);
                         return;
@@ -234,11 +235,24 @@ namespace UAS_MES.Make
 
         private void ReleasePallet_Click(object sender, EventArgs e)
         {
-            //将子箱的母箱编号置成空
-            LogicHandler.OutBoxDrawStepPass(palletcode.Text, pa_makecode.Text, User.UserSourceCode);
-            LogicHandler.DoCommandLog(Tag.ToString(), User.UserSourceCode, pa_makecode.Text, User.UserLineCode, User.UserSourceCode, "栈板采集", "解除栈板" + palletcode.Text + "成功", palletcode.Text, "");
-            OperateResult.AppendText(">>栈板号" + outboxcode.Text + "解除成功\n", Color.Green);
-            palletcode_KeyDown(new object(), new KeyEventArgs(Keys.Enter));
+            if (dh.getRowCount("packagedetail", "pd_outboxcode='" + palletcode.Text + "'") > 0)
+            {
+                //如果含有下一执行步骤的撤销过站,否则直接删除
+                if (dh.getFieldDataByCondition("package", "pa_nextstep", "pa_mothercode='" + palletcode.Text + "'").ToString() != "")
+                    LogicHandler.OutBoxDrawStepPass(palletcode.Text, pa_makecode.Text, User.UserSourceCode);
+                else
+                {
+                    //删除明细
+                    dh.ExecuteSql("delete from packagedetail where pd_outboxcode='" + palletcode.Text + "'", "delete");
+                    sql.Clear();
+                    sql.Append("update set package pa_packageqty=0,pa_totalqty=0,pa_currentqty=0,pa_status=0 where pa_outboxcode='" + palletcode.Text + "'");
+                    dh.ExecuteSql(sql.GetString(), "select");
+                }
+                LogicHandler.DoCommandLog(Tag.ToString(), User.UserSourceCode, pa_makecode.Text, User.UserLineCode, User.UserSourceCode, "栈板采集", "解除栈板" + palletcode.Text + "成功", palletcode.Text, "");
+                OperateResult.AppendText(">>栈板号" + outboxcode.Text + "解除成功\n", Color.Green);
+                palletcode_KeyDown(new object(), new KeyEventArgs(Keys.Enter));
+            }
+            OperateResult.AppendText(">>栈板号" + outboxcode.Text + "未采集箱\n", Color.Red);
         }
 
         private void Make_PalletCollection_FormClosing(object sender, FormClosingEventArgs e)