Browse Source

修改包装采集BUG

章政 8 years ago
parent
commit
0e0e3cf163

+ 0 - 273
UAS-MES/FunctionCode/Make/Make_ColorBoxWeigh.cs

@@ -1,273 +0,0 @@
-using Microsoft.Win32;
-using System;
-using System.Data;
-using System.IO;
-using System.IO.Ports;
-using System.Text;
-using System.Text.RegularExpressions;
-using System.Threading;
-using System.Windows.Forms;
-using UAS_MES.DataOperate;
-using UAS_MES.Entity;
-using UAS_MES.PublicMethod;
-using System.Drawing;
-using LabelManager2;
-using UAS_MES.PublicForm;
-
-namespace UAS_MES.Make
-{
-    public partial class Make_ColorBoxWeigh : Form
-    {
-        AutoSizeFormClass asc = new AutoSizeFormClass();
-        ApplicationClass lbl;
-        DataHelper dh;
-        DataTable dt;
-        LogStringBuilder sql = new LogStringBuilder();
-        //启用线程进行称重数据读取
-        Thread thread;
-        SerialPort serialPort1 = new SerialPort();
-        //称量的标准重量
-        Double Weight;
-        //最大重量
-        Double MaxWeight;
-        //最小重量
-        Double MinWeight;
-        //是否通过串口获取数据
-        bool GetData = true;
-
-        Thread InitPrint;
-
-        System.DateTime[] indate;
-
-        public Make_ColorBoxWeigh()
-        {
-            InitializeComponent();
-            CheckForIllegalCrossThreadCalls = false;
-        }
-
-        private void Make_ColorBoxWeigh_Load(object sender, EventArgs e)
-        {
-            asc.controllInitializeSize(this);
-            ComList.Text = BaseUtil.GetCacheData("PortName").ToString();
-            BaudRate.Text = BaseUtil.GetCacheData("BaudRate").ToString();
-            InitPrint = new Thread(InPrint);
-            SetLoadingWindow stw = new SetLoadingWindow(InitPrint, "初始化打印程序");
-            BaseUtil.SetFormCenter(stw);
-            stw.ShowDialog();
-            StartWeight.PerformClick();
-            dh = new DataHelper();
-        }
-
-        private void InPrint()
-        {
-            try
-            {
-                lbl = new ApplicationClass();
-                BaseUtil.WriteLbl(lbl);
-            }
-            catch (Exception ex)
-            {
-                OperateResult.AppendText("未正确安装CodeSoft软件\n", Color.Red);
-            }
-        }
-
-        private void sncode_KeyDown(object sender, KeyEventArgs e)
-        {
-            if (e.KeyCode == Keys.Enter)
-            {
-                sql.Clear();
-                sql.Append("select ms_makecode,mcd_inqty,ma_qty,ma_qty-mcd_inqty as mcd_waitqty,ma_salecode,pr_detail,pr_colorboxunit,pr_code,pr_colorboxgw,");
-                sql.Append("pr_colorboxunit,pr_colorboxmaxw,pr_colorboxminw from makeserial left join make on ms_makecode=ma_code left join product on ");
-                sql.Append("ms_prodcode=pr_code left join makecraftdetail on ms_makecode=mcd_macode where ms_sncode='" + sncode.Text + "' order by ms_id desc");
-                dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
-                if (dt.Rows.Count > 0)
-                {
-                    //重量的临时变量
-                    string _weight = dt.Rows[0]["pr_colorboxgw"].ToString();
-                    string _maxweight = dt.Rows[0]["pr_colorboxmaxw"].ToString();
-                    string _minweight = dt.Rows[0]["pr_colorboxminw"].ToString();
-                    //赋值重量单位
-                    Weight = double.Parse(_weight == "" ? "0" : _weight);
-                    MaxWeight = double.Parse(_maxweight == "" ? "0" : _maxweight);
-                    MinWeight = double.Parse(_minweight == "" ? "0" : _minweight);
-                    BaseUtil.SetFormValue(this.Controls, dt);
-                    if (Weight - MinWeight == MaxWeight - Weight)
-                        pr_colorboxgw.Text = Weight + "±" + (MaxWeight - Weight);
-                    else
-                        pr_colorboxgw.Text = MinWeight + "-" + MaxWeight;
-                    string ErrorMessage;
-                    string oMakeCode = "";
-                    string oMsID = "";
-                    if (LogicHandler.CheckStepSNAndMacode(ms_makecode.Text, User.UserSourceCode, sncode.Text, User.UserCode, out oMakeCode, out oMsID, out ErrorMessage))
-                    {
-                        string YN = dh.GetConfig("BatchNumber", "MESSetting").ToString();
-                        //表示需要验证判断md_qty 是否大于等于md_baseqty
-                        if (YN != "0")
-                        {
-                            sql.Clear();
-                            sql.Append("select wm_concat(md_prodcode) ,count(1) cn from makeprepare left join makepreparedetail ");
-                            sql.Append("on mp_id=md_mpid where mp_makecode='" + ms_makecode.Text + "' and md_qty<md_baseqty");
-                            dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
-                            if (dt.Rows[0]["CN"].ToString() != "0")
-                            {
-                                OperateResult.AppendText(">>物料:" + pr_code.Text + " ,岗位用料不足\n", Color.Red, sncode);
-                                return;
-                            }
-                        }
-                        //如果未打开串口设置为0
-                        int ActualWeight = int.Parse(weight.Text == "" ? "0" : weight.Text);
-                        if ((ActualWeight >= MinWeight) && (ActualWeight <= MaxWeight))
-                        {
-                            ListViewItem lsi = new ListViewItem();
-                            lsi.SubItems.Add(sncode.Text);
-                            lsi.SubItems.Add(ActualWeight.ToString());
-                            lsi.SubItems.Add(System.DateTime.Now.ToString());
-                            WeighRecord.Items.Add(lsi);
-                            //显示最近的三个称量记录
-                            if (LogicHandler.SetStepResult(ms_makecode.Text, User.UserSourceCode, sncode.Text, "彩盒称量", "称量合格", User.UserCode, out ErrorMessage))
-                            {
-                                OperateResult.AppendText(">>" + sncode.Text + "重量检测检测合格\n", Color.Green);
-                                if (AutoPrint.Checked)
-                                {
-                                    OperateResult.AppendText(">>打印条码号" + sncode.Text + "\n", Color.Green);
-                                    Confirm.PerformClick();
-                                }
-                                sncode.Text = "";
-                            }
-                            else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, sncode);
-                        }
-                        else OperateResult.AppendText(">>" + sncode.Text + "重量检测未通过\n", Color.Red);
-                        //称量是否通过都记录重量
-                        dh.ExecuteSql("update makeserial set ms_grossw='" + ActualWeight + "' where ms_sncode='" + sncode.Text + "' and ms_makecode='" + ms_makecode.Text + "'", "update");
-                        sncode.Clear();
-                    }
-                    else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, sncode);
-                }
-                else OperateResult.AppendText(">>序列号不存在\n", Color.Red, sncode);
-            }
-        }
-
-        private void getSerialData()
-        {
-            if (serialPort1.IsOpen)
-            {
-                if (!SystemInf.OpenPort.Contains(serialPort1.PortName))
-                {
-                    SystemInf.OpenPort.Add(serialPort1.PortName);
-                    try
-                    {
-                        while (GetData)
-                        {
-                            try
-                            {
-                                weight.Text = Regex.Replace(serialPort1.ReadLine(), "\\D+", "");
-                                if (pr_colorboxunit.Text == "kg")
-                                weight.Text = (float.Parse(weight.Text) / 1000).ToString();
-                            }
-                            catch (Exception)
-                            {
-                                GetData = false;
-                            }
-                        }
-                    }
-                    catch (IOException ex) { MessageBox.Show(ex.Message); }
-                }
-                else OperateResult.AppendText(">>端口已被占用,请关闭其他窗口\n", Color.Red);
-            }
-        }
-
-        private void 彩盒称重_SizeChanged(object sender, EventArgs e)
-        {
-            asc.controlAutoSize(this);
-        }
-
-        protected override void OnVisibleChanged(EventArgs e)
-        {
-            base.OnVisibleChanged(e);
-            if (!IsHandleCreated)
-            {
-                this.Close();
-            }
-        }
-
-        private void Clean_Click(object sender, EventArgs e)
-        {
-            OperateResult.Clear();
-        }
-
-        //关闭窗口的时候停止进程读取串口数据
-        private void 彩盒称重_FormClosing(object sender, FormClosingEventArgs e)
-        {
-            BaseUtil.ClosePrint(lbl);
-            StopWeight.PerformClick();
-            if (serialPort1.IsOpen)
-            {
-                GetData = false;
-                serialPort1.Close();
-                SystemInf.OpenPort.Remove(serialPort1.PortName);
-                thread.Interrupt();
-                thread.Join();
-            }
-        }
-
-        private void Confirm_Click(object sender, EventArgs e)
-        {
-            if (PrintLabel.Items.Count != 0)
-            {
-                Print.CodeSoft(lbl, PrintLabel.Text.Split(':')[1], PrintLabel.SelectedValue.ToString(), PrinterList.Text, sncode.Text, int.Parse(PrintNum.Text), indate[PrintLabel.SelectedIndex]);
-            }
-            else
-            {
-                OperateResult.AppendText(">>产品" + pr_code.Text + "未维护打印标签\n", Color.Red);
-            }
-        }
-
-        private void StartWeight_Click(object sender, EventArgs e)
-        {
-            thread = new Thread(getSerialData);
-            try
-            {
-                serialPort1.PortName = ComList.Text;
-                serialPort1.BaudRate = int.Parse(BaudRate.Text);
-                serialPort1.Open();
-                GetData = true;
-                thread.Start();
-            }
-            catch (Exception mes)
-            {
-                if (BaudRate.Text == "" || ComList.Text == "")
-                    OperateResult.AppendText(">>请先在电子秤调试界面维护波特率和串口\n", Color.Red);
-                else
-                    OperateResult.AppendText(">>" + mes.Message + "\n", Color.Red);
-            }
-        }
-
-        private void StopWeight_Click(object sender, EventArgs e)
-        {
-            GetData = false;
-            SystemInf.OpenPort.Remove(serialPort1.PortName);
-            serialPort1.Close();
-        }
-
-        private void pr_code_TextChanged(object sender, EventArgs e)
-        {
-            dt = (DataTable)dh.ExecuteSql("select pl_labelcode||':'||pl_labelname pl_laname,pl_labelname,pl_labelcode,pl_labelurl,pl_indate from productlabel where pl_prodcode='" + pr_code.Text + "' order by pl_isdefault desc ", "select");
-            PrintLabel.DataSource = dt;
-            PrintLabel.DisplayMember = "pl_laname";
-            PrintLabel.ValueMember = "pl_labelcode";
-            ftpOperater ftp = new ftpOperater();
-            indate = new System.DateTime[dt.Rows.Count];
-            for (int i = 0; i < dt.Rows.Count; i++)
-            {
-                BaseUtil.GetPrintLabel(dt.Rows[i]["pl_labelname"].ToString(), dt.Rows[i]["pl_labelurl"].ToString(), dt.Rows[i]["pl_indate"].ToString());
-                indate[i] = Convert.ToDateTime(dt.Rows[i]["pl_indate"].ToString());
-            }
-        }
-
-        private void LoadCollectNum()
-        {
-            DataTable dt = (DataTable)dh.ExecuteSql("select mcd_inqty,ma_qty-mcd_inqty mcd_waitqty from make left join makecraftdetail on mcd_macode=ma_code where ma_code='" + ms_makecode.Text + "' and mcd_stepcode='" + User.CurrentStepCode + "'", "select");
-            BaseUtil.SetFormValue(Controls, dt);
-        }
-    }
-}

+ 98 - 94
UAS-MES/FunctionCode/Make/Make_PackageCollection.cs

@@ -181,128 +181,132 @@ namespace UAS_MES.Make
             //当用户输入回车键的时候
             //当用户输入回车键的时候
             if (e.KeyCode == Keys.Enter)
             if (e.KeyCode == Keys.Enter)
             {
             {
-                if (LogicHandler.CheckStepSNAndMacode("", User.UserSourceCode, sn_code.Text, User.UserCode, out oMakeCode, out oMsID, out ErrorMessage))
+                if (LogicHandler.CheckStepAttribute(Tag.ToString(), User.UserSourceCode, out ErrorMessage))
                 {
                 {
-                    if (pa_outboxcode.Text == "")
+                    if (LogicHandler.CheckStepSNAndMacode("", User.UserSourceCode, sn_code.Text, User.UserCode, out oMakeCode, out oMsID, out ErrorMessage))
                     {
                     {
-                        if (dh.getFieldDataByCondition("makeserial", "ms_outboxcode", "ms_id='" + oMsID + "'").ToString() != "")
+                        if (pa_outboxcode.Text == "")
                         {
                         {
-                            LoadData();
-                            LoadGridData();
-                        }
-                        else
-                        {
-                            LoadData();
-                            pa_outboxcode.GeneratePaCode_Click(new object(), new EventArgs());
-                        }
-                    }
-                    //按工单核对装箱
-                    switch (pr_packrule.Text)
-                    {
-                        case "M":
-                            if (dh.getFieldDataByCondition("makeserial", "ms_makecode", "ms_id='" + oMsID + "'").ToString() != ms_makecode.Text)
+                            if (dh.getFieldDataByCondition("makeserial", "ms_outboxcode", "ms_id='" + oMsID + "'").ToString() != "")
                             {
                             {
-                                OperateResult.AppendText(">>序列号" + sn_code.Text + "所属工单和当前箱号工单不相等\n", Color.Red, sn_code);
-                                return;
+                                LoadData();
+                                LoadGridData();
                             }
                             }
-                            break;
-                        case "S":
-                            if (dh.CheckExist("package", "pa_outboxcode='" + pa_outboxcode.Text + "'"))
+                            else
                             {
                             {
-                                sql.Clear();
-                                sql.Append("select 1 from package left join make on pa_salecode=ma_salecode left join makeserial ");
-                                sql.Append("on ma_code=ms_makecode where pa_outboxcode='" + pa_outboxcode.Text + "' and ms_id='" + oMsID + "'");
-                                DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
-                                if (dt.Rows.Count == 0)
+                                LoadData();
+                                pa_outboxcode.GeneratePaCode_Click(new object(), new EventArgs());
+                            }
+                        }
+                        //按工单核对装箱
+                        switch (pr_packrule.Text)
+                        {
+                            case "M":
+                                if (dh.getFieldDataByCondition("makeserial", "ms_makecode", "ms_id='" + oMsID + "'").ToString() != ms_makecode.Text)
                                 {
                                 {
-                                    OperateResult.AppendText(">>序列号" + sn_code.Text + "所属订单号和当前箱号订单不相等\n", Color.Red, sn_code);
+                                    OperateResult.AppendText(">>序列号" + sn_code.Text + "所属工单和当前箱号工单不相等\n", Color.Red, sn_code);
                                     return;
                                     return;
                                 }
                                 }
-                            }
-                            break;
-                        case "P":
-                            if (dh.getFieldDataByCondition("makeserial", "ms_prodcode", "ms_id='" + oMsID + "'").ToString() != pr_code.Text)
-                            {
-                                OperateResult.AppendText(">>序列号" + sn_code.Text + "对应物料和该箱所装物料不同\n", Color.Red, sn_code);
-                                return;
-                            }
-                            break;
-                        default:
-                            break;
-                    }
-                    //判断箱内总数必须大于0
-                    if (pr_outboxinnerqty.Text == "" || pr_outboxinnerqty.Text == "0")
-                    {
-                        OperateResult.AppendText(">>箱内容量必须大于0\n", Color.Red);
-                        return;
-                    }
-                    //如果未勾选了取消录入
-                    if (!Cancel.Checked)
-                    {
-                        //判断序列号是否已经装箱
-                        if (dh.getFieldDataByCondition("makeserial", "ms_outboxcode", "ms_id='" + oMsID + "'").ToString() != "")
+                                break;
+                            case "S":
+                                if (dh.CheckExist("package", "pa_outboxcode='" + pa_outboxcode.Text + "'"))
+                                {
+                                    sql.Clear();
+                                    sql.Append("select 1 from package left join make on pa_salecode=ma_salecode left join makeserial ");
+                                    sql.Append("on ma_code=ms_makecode where pa_outboxcode='" + pa_outboxcode.Text + "' and ms_id='" + oMsID + "'");
+                                    DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                                    if (dt.Rows.Count == 0)
+                                    {
+                                        OperateResult.AppendText(">>序列号" + sn_code.Text + "所属订单号和当前箱号订单不相等\n", Color.Red, sn_code);
+                                        return;
+                                    }
+                                }
+                                break;
+                            case "P":
+                                if (dh.getFieldDataByCondition("makeserial", "ms_prodcode", "ms_id='" + oMsID + "'").ToString() != pr_code.Text)
+                                {
+                                    OperateResult.AppendText(">>序列号" + sn_code.Text + "对应物料和该箱所装物料不同\n", Color.Red, sn_code);
+                                    return;
+                                }
+                                break;
+                            default:
+                                break;
+                        }
+                        //判断箱内总数必须大于0
+                        if (pr_outboxinnerqty.Text == "" || pr_outboxinnerqty.Text == "0")
                         {
                         {
-                            OperateResult.AppendText(">>序列号" + sn_code.Text + "已经装箱!\n", Color.Red, sn_code);
+                            OperateResult.AppendText(">>箱内容量必须大于0\n", Color.Red);
+                            return;
                         }
                         }
-                        else
+                        //如果未勾选了取消录入
+                        if (!Cancel.Checked)
                         {
                         {
-                            //满箱之后采集下一个之前自动清除内容,生成新的箱号
-                            if ((AutoGenBoxCode.Checked && pa_currentqty.Text != "" && pr_outboxinnerqty.Text == pa_currentqty.Text) || pa_status.Text == "1")
-                            {
-                                pa_currentqty.Text = "";
-                                pa_outboxcode.Text = "";
-                                pa_status.Text = "0";
-                                BaseUtil.CleanDGVData(PackageDetail);
-                                pa_outboxcode.GeneratePaCode_Click(new object(), new EventArgs());
-                            }
-                            //箱号不存在的情况
-                            if (!dh.CheckExist("package", "pa_outboxcode='" + pa_outboxcode.Text + "'"))
+                            //判断序列号是否已经装箱
+                            if (dh.getFieldDataByCondition("makeserial", "ms_outboxcode", "ms_id='" + oMsID + "'").ToString() != "")
                             {
                             {
-                                //插入Package主表箱号信息
-                                sql.Clear();
-                                sql.Append("insert into package (pa_id,pa_outboxcode,pa_packageqty,pa_totalqty,pa_status,pa_indate,pa_makecode,pa_prodcode,pa_salecode,");
-                                sql.Append("pa_custcode,pa_type,pa_packtype) select package_seq.nextval,'" + pa_outboxcode.Text + "',0," + pr_outboxinnerqty.Text + ",0,");
-                                sql.Append("sysdate,'" + oMakeCode + "', ma_prodcode,ma_salecode,ma_custcode,1,'" + pr_packrule.Text + "' from make where ma_code = '" + oMakeCode + "'");
-                                dh.ExecuteSql(sql.GetString(), "insert");
-                                OperateResult.AppendText(">>箱号" + pa_outboxcode.Text + "采集成功!\n", Color.Green);
-                                InsertDetail();
+                                OperateResult.AppendText(">>序列号" + sn_code.Text + "已经装箱!\n", Color.Red, sn_code);
                             }
                             }
                             else
                             else
                             {
                             {
-                                if (dh.getRowCount("makeserial", "ms_sncode='" + sn_code.Text + "'") > 0)
+                                //满箱之后采集下一个之前自动清除内容,生成新的箱号
+                                if ((AutoGenBoxCode.Checked && pa_currentqty.Text != "" && pr_outboxinnerqty.Text == pa_currentqty.Text) || pa_status.Text == "1")
+                                {
+                                    pa_currentqty.Text = "";
+                                    pa_outboxcode.Text = "";
+                                    pa_status.Text = "0";
+                                    BaseUtil.CleanDGVData(PackageDetail);
+                                    pa_outboxcode.GeneratePaCode_Click(new object(), new EventArgs());
+                                }
+                                //箱号不存在的情况
+                                if (!dh.CheckExist("package", "pa_outboxcode='" + pa_outboxcode.Text + "'"))
+                                {
+                                    //插入Package主表箱号信息
+                                    sql.Clear();
+                                    sql.Append("insert into package (pa_id,pa_outboxcode,pa_packageqty,pa_totalqty,pa_status,pa_indate,pa_makecode,pa_prodcode,pa_salecode,");
+                                    sql.Append("pa_custcode,pa_type,pa_packtype) select package_seq.nextval,'" + pa_outboxcode.Text + "',0," + pr_outboxinnerqty.Text + ",0,");
+                                    sql.Append("sysdate,'" + oMakeCode + "', ma_prodcode,ma_salecode,ma_custcode,1,'" + pr_packrule.Text + "' from make where ma_code = '" + oMakeCode + "'");
+                                    dh.ExecuteSql(sql.GetString(), "insert");
+                                    OperateResult.AppendText(">>箱号" + pa_outboxcode.Text + "采集成功!\n", Color.Green);
                                     InsertDetail();
                                     InsertDetail();
+                                }
                                 else
                                 else
-                                    OperateResult.AppendText(">>序列号" + sn_code.Text + "不存在\n", Color.Red, sn_code);
+                                {
+                                    if (dh.getRowCount("makeserial", "ms_sncode='" + sn_code.Text + "'") > 0)
+                                        InsertDetail();
+                                    else
+                                        OperateResult.AppendText(">>序列号" + sn_code.Text + "不存在\n", Color.Red, sn_code);
+                                }
                             }
                             }
                         }
                         }
-                    }
-                    //勾选了取消箱号先验证箱号存不存在,存在的话移除掉,重新加载一次数据
-                    else
-                    {
-                        if (dh.getFieldDataByCondition("package", "pa_status", "pa_outboxcode='" + pa_outboxcode.Text + "'").ToString() != "1")
+                        //勾选了取消箱号先验证箱号存不存在,存在的话移除掉,重新加载一次数据
+                        else
                         {
                         {
-                            string outboxcode = dh.getFieldDataByCondition("makeserial", "ms_outboxcode", "ms_id='" + oMsID + "'").ToString();
-                            if (outboxcode != "")
+                            if (dh.getFieldDataByCondition("package", "pa_status", "pa_outboxcode='" + pa_outboxcode.Text + "'").ToString() != "1")
                             {
                             {
-                                if (outboxcode == pa_outboxcode.Text)
+                                string outboxcode = dh.getFieldDataByCondition("makeserial", "ms_outboxcode", "ms_id='" + oMsID + "'").ToString();
+                                if (outboxcode != "")
                                 {
                                 {
-                                    //删除明细行的数据
-                                    dh.ExecuteSql("delete from packagedetail where pd_barcode='" + sn_code.Text + "' and pd_paid=(select pa_id from package where pa_outboxcode='" + pa_outboxcode.Text + "')", "delete");
-                                    //更新已装数 
-                                    dh.UpdateByCondition("Package", "pa_packageqty=pa_packageqty-1,pa_currentqty=pa_currentqty-1", "pa_outboxcode='" + pa_outboxcode.Text + "'");
-                                    //清除序列号箱号
-                                    dh.UpdateByCondition("makeserial", "ms_outboxcode=''", "ms_id='" + oMsID + "'");
-                                    OperateResult.AppendText(">>已从该箱中移除序列号" + sn_code.Text + "\n", Color.Green);
-                                    LoadGridData();
+                                    if (outboxcode == pa_outboxcode.Text)
+                                    {
+                                        //删除明细行的数据
+                                        dh.ExecuteSql("delete from packagedetail where pd_barcode='" + sn_code.Text + "' and pd_paid=(select pa_id from package where pa_outboxcode='" + pa_outboxcode.Text + "')", "delete");
+                                        //更新已装数 
+                                        dh.UpdateByCondition("Package", "pa_packageqty=pa_packageqty-1,pa_currentqty=pa_currentqty-1", "pa_outboxcode='" + pa_outboxcode.Text + "'");
+                                        //清除序列号箱号
+                                        dh.UpdateByCondition("makeserial", "ms_outboxcode=''", "ms_id='" + oMsID + "'");
+                                        OperateResult.AppendText(">>已从该箱中移除序列号" + sn_code.Text + "\n", Color.Green);
+                                        LoadGridData();
+                                    }
+                                    else OperateResult.AppendText(">>序列号" + sn_code.Text + "不在箱" + pa_outboxcode.Text + "内\n", Color.Red);
                                 }
                                 }
-                                else OperateResult.AppendText(">>序列号" + sn_code.Text + "不在箱" + pa_outboxcode.Text + "内\n", Color.Red);
+                                else OperateResult.AppendText(">>序列号" + sn_code.Text + "尚未装箱\n", Color.Red);
                             }
                             }
-                            else OperateResult.AppendText(">>序列号" + sn_code.Text + "尚未装箱\n", Color.Red);
+                            else OperateResult.AppendText(">>箱号" + pa_outboxcode.Text + "已经封箱,不允许取消采集\n", Color.Red);
                         }
                         }
-                        else OperateResult.AppendText(">>箱号" + pa_outboxcode.Text + "已经封箱,不允许取消采集\n", Color.Red);
                     }
                     }
+                    else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red);
                 }
                 }
-                else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red);
+                else OperateResult.AppendText(">>"+ErrorMessage+"\n", Color.Red);
             }
             }
         }
         }
 
 

+ 2 - 2
UAS-MES/FunctionCode/Make/Make_PackageCollectionWeigh.Designer.cs

@@ -693,7 +693,7 @@
             // 
             // 
             this.pr_cartonunit.AutoSize = true;
             this.pr_cartonunit.AutoSize = true;
             this.pr_cartonunit.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.pr_cartonunit.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.pr_cartonunit.Location = new System.Drawing.Point(86, 45);
+            this.pr_cartonunit.Location = new System.Drawing.Point(85, 45);
             this.pr_cartonunit.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.pr_cartonunit.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.pr_cartonunit.Name = "pr_cartonunit";
             this.pr_cartonunit.Name = "pr_cartonunit";
             this.pr_cartonunit.Size = new System.Drawing.Size(25, 27);
             this.pr_cartonunit.Size = new System.Drawing.Size(25, 27);
@@ -714,7 +714,7 @@
             // 
             // 
             this.label4.AutoSize = true;
             this.label4.AutoSize = true;
             this.label4.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.label4.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.label4.Location = new System.Drawing.Point(36, 172);
+            this.label4.Location = new System.Drawing.Point(30, 172);
             this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.label4.Name = "label4";
             this.label4.Name = "label4";
             this.label4.Size = new System.Drawing.Size(92, 27);
             this.label4.Size = new System.Drawing.Size(92, 27);

+ 98 - 94
UAS-MES/FunctionCode/Make/Make_PackageCollectionWeigh.cs

@@ -251,126 +251,130 @@ namespace UAS_MES.Make
             //当用户输入回车键的时候
             //当用户输入回车键的时候
             if (e.KeyCode == Keys.Enter)
             if (e.KeyCode == Keys.Enter)
             {
             {
-                if (LogicHandler.CheckStepSNAndMacode("", User.UserSourceCode, sn_code.Text, User.UserCode, out oMakeCode, out oMsID, out ErrorMessage))
+                if (LogicHandler.CheckStepAttribute(Tag.ToString(), User.UserSourceCode, out ErrorMessage))
                 {
                 {
-                    if (pa_outboxcode.Text == "")
+                    if (LogicHandler.CheckStepSNAndMacode("", User.UserSourceCode, sn_code.Text, User.UserCode, out oMakeCode, out oMsID, out ErrorMessage))
                     {
                     {
-                        if (dh.getFieldDataByCondition("makeserial", "ms_outboxcode", "ms_id='" + oMsID + "'").ToString() != "")
+                        if (pa_outboxcode.Text == "")
                         {
                         {
-                            LoadData();
-                            LoadGridData();
-                        }
-                        else
-                        {
-                            LoadData();
-                            pa_outboxcode.GeneratePaCode_Click(new object(), new EventArgs());
-                        }
-                    }
-                    //按工单核对装箱
-                    switch (pr_packrule.Text)
-                    {
-                        case "M":
-                            if (dh.getFieldDataByCondition("makeserial", "ms_makecode", "ms_id='" + oMsID + "'").ToString() != ms_makecode.Text)
+                            if (dh.getFieldDataByCondition("makeserial", "ms_outboxcode", "ms_id='" + oMsID + "'").ToString() != "")
                             {
                             {
-                                OperateResult.AppendText(">>序列号" + sn_code.Text + "所属工单和当前箱号工单不相等\n", Color.Red, sn_code);
-                                return;
+                                LoadData();
+                                LoadGridData();
                             }
                             }
-                            break;
-                        case "S":
-                            if (dh.CheckExist("package", "pa_outboxcode='" + pa_outboxcode.Text + "'"))
+                            else
                             {
                             {
-                                sql.Clear();
-                                sql.Append("select 1 from package left join make on pa_salecode=ma_salecode left join makeserial ");
-                                sql.Append("on ma_code=ms_makecode where pa_outboxcode='" + pa_outboxcode.Text + "' and ms_id='" + oMsID + "'");
-                                DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
-                                if (dt.Rows.Count == 0)
+                                LoadData();
+                                pa_outboxcode.GeneratePaCode_Click(new object(), new EventArgs());
+                            }
+                        }
+                        //按工单核对装箱
+                        switch (pr_packrule.Text)
+                        {
+                            case "M":
+                                if (dh.getFieldDataByCondition("makeserial", "ms_makecode", "ms_id='" + oMsID + "'").ToString() != ms_makecode.Text)
                                 {
                                 {
-                                    OperateResult.AppendText(">>序列号" + sn_code.Text + "所属订单号和当前箱号订单不相等\n", Color.Red, sn_code);
+                                    OperateResult.AppendText(">>序列号" + sn_code.Text + "所属工单和当前箱号工单不相等\n", Color.Red, sn_code);
                                     return;
                                     return;
                                 }
                                 }
-                            }
-                            break;
-                        case "":
-                            if (dh.getFieldDataByCondition("makeserial", "ms_prodcode", "ms_id='" + oMsID + "'").ToString() != pr_code.Text)
-                            {
-                                OperateResult.AppendText(">>序列号" + sn_code.Text + "对应物料和该箱所装物料不同\n", Color.Red, sn_code);
-                                return;
-                            }
-                            break;
-                        default:
-                            break;
-                    }
-                    //判断箱内总数必须大于0
-                    if (pr_outboxinnerqty.Text == "" || pr_outboxinnerqty.Text == "0")
-                    {
-                        OperateResult.AppendText(">>箱内容量必须大于0\n", Color.Red);
-                        return;
-                    }
-                    //如果未勾选了取消录入
-                    if (!Cancel.Checked)
-                    {
-                        //判断序列号是否已经装箱
-                        if (dh.getFieldDataByCondition("makeserial", "ms_outboxcode", "ms_id='" + oMsID + "'").ToString() != "")
+                                break;
+                            case "S":
+                                if (dh.CheckExist("package", "pa_outboxcode='" + pa_outboxcode.Text + "'"))
+                                {
+                                    sql.Clear();
+                                    sql.Append("select 1 from package left join make on pa_salecode=ma_salecode left join makeserial ");
+                                    sql.Append("on ma_code=ms_makecode where pa_outboxcode='" + pa_outboxcode.Text + "' and ms_id='" + oMsID + "'");
+                                    DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                                    if (dt.Rows.Count == 0)
+                                    {
+                                        OperateResult.AppendText(">>序列号" + sn_code.Text + "所属订单号和当前箱号订单不相等\n", Color.Red, sn_code);
+                                        return;
+                                    }
+                                }
+                                break;
+                            case "":
+                                if (dh.getFieldDataByCondition("makeserial", "ms_prodcode", "ms_id='" + oMsID + "'").ToString() != pr_code.Text)
+                                {
+                                    OperateResult.AppendText(">>序列号" + sn_code.Text + "对应物料和该箱所装物料不同\n", Color.Red, sn_code);
+                                    return;
+                                }
+                                break;
+                            default:
+                                break;
+                        }
+                        //判断箱内总数必须大于0
+                        if (pr_outboxinnerqty.Text == "" || pr_outboxinnerqty.Text == "0")
                         {
                         {
-                            OperateResult.AppendText(">>序列号" + sn_code.Text + "已经装箱!\n", Color.Red, sn_code);
+                            OperateResult.AppendText(">>箱内容量必须大于0\n", Color.Red);
+                            return;
                         }
                         }
-                        else
+                        //如果未勾选了取消录入
+                        if (!Cancel.Checked)
                         {
                         {
-                            //满箱之后采集下一个之前自动清除内容,生成新的箱号
-                            if ((AutoGenBoxCode.Checked && pa_currentqty.Text != "" && pr_outboxinnerqty.Text == pa_currentqty.Text) || pa_status.Text == "1")
-                            {
-                                pa_currentqty.Text = "";
-                                pa_outboxcode.Text = "";
-                                pa_status.Text = "0";
-                                BaseUtil.CleanDGVData(PackageDetail);
-                                pa_outboxcode.GeneratePaCode_Click(new object(), new EventArgs());
-                            }
-                            //箱号不存在的情况
-                            if (!dh.CheckExist("package", "pa_outboxcode='" + pa_outboxcode.Text + "'"))
+                            //判断序列号是否已经装箱
+                            if (dh.getFieldDataByCondition("makeserial", "ms_outboxcode", "ms_id='" + oMsID + "'").ToString() != "")
                             {
                             {
-                                //插入Package主表箱号信息
-                                sql.Clear();
-                                sql.Append("insert into package (pa_id,pa_outboxcode,pa_packageqty,pa_totalqty,pa_status,pa_indate,pa_makecode,pa_prodcode,pa_salecode,");
-                                sql.Append("pa_custcode,pa_type,pa_packtype) select package_seq.nextval,'" + pa_outboxcode.Text + "',0," + pr_outboxinnerqty.Text + ",0,");
-                                sql.Append("sysdate,'" + ms_makecode.Text + "', ma_prodcode,ma_salecode,ma_custcode,1,'" + pr_packrule.Text + "' from make where ma_code = '" + ms_makecode.Text + "'");
-                                dh.ExecuteSql(sql.GetString(), "insert");
-                                OperateResult.AppendText(">>箱号" + pa_outboxcode.Text + "采集成功!\n", Color.Green);
-                                InsertDetail();
+                                OperateResult.AppendText(">>序列号" + sn_code.Text + "已经装箱!\n", Color.Red, sn_code);
                             }
                             }
                             else
                             else
                             {
                             {
-                                if (dh.getRowCount("makeserial", "ms_sncode='" + sn_code.Text + "'") > 0)
+                                //满箱之后采集下一个之前自动清除内容,生成新的箱号
+                                if ((AutoGenBoxCode.Checked && pa_currentqty.Text != "" && pr_outboxinnerqty.Text == pa_currentqty.Text) || pa_status.Text == "1")
+                                {
+                                    pa_currentqty.Text = "";
+                                    pa_outboxcode.Text = "";
+                                    pa_status.Text = "0";
+                                    BaseUtil.CleanDGVData(PackageDetail);
+                                    pa_outboxcode.GeneratePaCode_Click(new object(), new EventArgs());
+                                }
+                                //箱号不存在的情况
+                                if (!dh.CheckExist("package", "pa_outboxcode='" + pa_outboxcode.Text + "'"))
+                                {
+                                    //插入Package主表箱号信息
+                                    sql.Clear();
+                                    sql.Append("insert into package (pa_id,pa_outboxcode,pa_packageqty,pa_totalqty,pa_status,pa_indate,pa_makecode,pa_prodcode,pa_salecode,");
+                                    sql.Append("pa_custcode,pa_type,pa_packtype) select package_seq.nextval,'" + pa_outboxcode.Text + "',0," + pr_outboxinnerqty.Text + ",0,");
+                                    sql.Append("sysdate,'" + ms_makecode.Text + "', ma_prodcode,ma_salecode,ma_custcode,1,'" + pr_packrule.Text + "' from make where ma_code = '" + ms_makecode.Text + "'");
+                                    dh.ExecuteSql(sql.GetString(), "insert");
+                                    OperateResult.AppendText(">>箱号" + pa_outboxcode.Text + "采集成功!\n", Color.Green);
                                     InsertDetail();
                                     InsertDetail();
+                                }
                                 else
                                 else
-                                    OperateResult.AppendText(">>序列号" + sn_code.Text + "不存在\n", Color.Red, sn_code);
+                                {
+                                    if (dh.getRowCount("makeserial", "ms_sncode='" + sn_code.Text + "'") > 0)
+                                        InsertDetail();
+                                    else
+                                        OperateResult.AppendText(">>序列号" + sn_code.Text + "不存在\n", Color.Red, sn_code);
+                                }
                             }
                             }
                         }
                         }
-                    }
-                    //勾选了取消箱号先验证箱号存不存在,存在的话移除掉,重新加载一次数据
-                    else
-                    {
-                        if (dh.getFieldDataByCondition("package", "pa_status", "pa_outboxcode='" + pa_outboxcode.Text + "'").ToString() != "1")
+                        //勾选了取消箱号先验证箱号存不存在,存在的话移除掉,重新加载一次数据
+                        else
                         {
                         {
-                            string outboxcode = dh.getFieldDataByCondition("makeserial", "ms_outboxcode", "ms_id='" + oMsID + "'").ToString();
-                            if (outboxcode != "")
+                            if (dh.getFieldDataByCondition("package", "pa_status", "pa_outboxcode='" + pa_outboxcode.Text + "'").ToString() != "1")
                             {
                             {
-                                if (outboxcode == pa_outboxcode.Text)
+                                string outboxcode = dh.getFieldDataByCondition("makeserial", "ms_outboxcode", "ms_id='" + oMsID + "'").ToString();
+                                if (outboxcode != "")
                                 {
                                 {
-                                    //删除明细行的数据
-                                    dh.ExecuteSql("delete from packagedetail where pd_barcode='" + sn_code.Text + "' and pd_paid=(select pa_id from package where pa_outboxcode='" + pa_outboxcode.Text + "')", "delete");
-                                    //更新已装数 
-                                    dh.UpdateByCondition("Package", "pa_packageqty=pa_packageqty-1,pa_currentqty=pa_currentqty-1", "pa_outboxcode='" + pa_outboxcode.Text + "'");
-                                    //清除序列号箱号
-                                    dh.UpdateByCondition("makeserial", "ms_outboxcode=''", "ms_id='" + oMsID + "'");
-                                    OperateResult.AppendText(">>已从该箱中移除序列号" + sn_code.Text + "\n", Color.Green, sn_code);
-                                    LoadGridData();
+                                    if (outboxcode == pa_outboxcode.Text)
+                                    {
+                                        //删除明细行的数据
+                                        dh.ExecuteSql("delete from packagedetail where pd_barcode='" + sn_code.Text + "' and pd_paid=(select pa_id from package where pa_outboxcode='" + pa_outboxcode.Text + "')", "delete");
+                                        //更新已装数 
+                                        dh.UpdateByCondition("Package", "pa_packageqty=pa_packageqty-1,pa_currentqty=pa_currentqty-1", "pa_outboxcode='" + pa_outboxcode.Text + "'");
+                                        //清除序列号箱号
+                                        dh.UpdateByCondition("makeserial", "ms_outboxcode=''", "ms_id='" + oMsID + "'");
+                                        OperateResult.AppendText(">>已从该箱中移除序列号" + sn_code.Text + "\n", Color.Green, sn_code);
+                                        LoadGridData();
+                                    }
+                                    else OperateResult.AppendText(">>序列号" + sn_code.Text + "不在箱" + pa_outboxcode.Text + "内\n", Color.Red, sn_code);
                                 }
                                 }
-                                else OperateResult.AppendText(">>序列号" + sn_code.Text + "不在箱" + pa_outboxcode.Text + "内\n", Color.Red, sn_code);
+                                else OperateResult.AppendText(">>序列号" + sn_code.Text + "尚未装箱\n", Color.Red);
                             }
                             }
-                            else OperateResult.AppendText(">>序列号" + sn_code.Text + "尚未装箱\n", Color.Red);
+                            else OperateResult.AppendText(">>箱号" + pa_outboxcode.Text + "已经封箱,不允许取消采集\n", Color.Red);
                         }
                         }
-                        else OperateResult.AppendText(">>箱号" + pa_outboxcode.Text + "已经封箱,不允许取消采集\n", Color.Red);
                     }
                     }
+                    else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red);
                 }
                 }
                 else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red);
                 else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red);
             }
             }
@@ -441,7 +445,7 @@ namespace UAS_MES.Make
                 LogicHandler.DoCommandLog(User.UserCode, oMakeCode, User.UserLineCode, User.UserSourceCode, "手动送检", "手动送检成功", "", ob_checkno.Text);
                 LogicHandler.DoCommandLog(User.UserCode, oMakeCode, User.UserLineCode, User.UserSourceCode, "手动送检", "手动送检成功", "", ob_checkno.Text);
                 ob_checkno.Text = "";
                 ob_checkno.Text = "";
             }
             }
-            else OperateResult.AppendText(">>必须封箱才能送检\n",Color.Red);
+            else OperateResult.AppendText(">>必须封箱才能送检\n", Color.Red);
 
 
 
 
         }
         }

+ 15 - 0
UAS-MES/FunctionCode/Make/Make_PackageCollectionWeigh.resx

@@ -209,6 +209,21 @@
   <metadata name="pd_id.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
   <metadata name="pd_id.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
     <value>True</value>
   </metadata>
   </metadata>
+  <metadata name="pd_barcode.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="pa_outboxcode1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="pd_innerqty.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="pa_indate.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="pd_id.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
   <data name="SendCheck.DownImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
   <data name="SendCheck.DownImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
     <value>
         iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
         iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m