包裹称重

目前,电商管理综合平台,基本上都包括包裹称重环节,特别是一些食品类电商,系统的包裹称重功能模块的设计,能够保证包裹重量不出错,能顺利检测出错异常包裹,减少包裹错发。

包裹称重问题

一般情况下,包裹称重功能在食品类电商ERP里出现。因为客户购买的多个产品,规格不同,就只能通过电子秤称重来确定产品重量,避免捡货错误。如果包裹称重环节设计没有达到要求,必然会出现错发漏发情况,进一步影响售后服务。

包裹称重设计

  1. 所有产品必须进行称重,产品属性里应该包括净重量和总重量,净重量为规格重量,如果40g的巴西松子,净重量为0.04kg,而总重量必然是大于净重量的,总重量是商品加上外包装袋的重量。
  2. 对包裹纸箱进行称重,并登记记录每个规格的纸箱重量。纸箱也作为产品登记在系统的产品目录里。
  3. 包裹重量检测: 系统计算重量 = 纸箱重量+产品重量,实际称重重量减去系统计算重量应该控制在一个可控范围内,主要是因为一些散称的产品,一般都会比实际重量多几克。

包裹称重界面设计

包裹称重界面设计 包裹称重界面设计,数据项有称重人、物流单号、外箱条码、包裹重量、差重、标准重量、包含外箱总重量;称重界面打开后,将包裹放置电子秤,包裹重量自动显示,光标自动定位于物流单号文本框,扫描物流单号后,回车后,自动定位于外箱条码,输入实际外箱条码回车,系统自动计算差重、标准重量、包含外箱总重量。通过检查的包裹,将自动称重完成,并播放称重完成的声音提示。如果检查不通过,也同样会有声音提示。只要差重在我们设置的可控范围内,均能够顺利完成称重操作,如果差异较大,必然是捡货出现问题。

使用SerialPort实现读取COM口获取重量

开始称重主方法代码

private void beginWeight()
{
            try
            {
                timer1.Enabled = false;
                serialPort1.Close(); //关闭COM口
                GetSetComb();//设置Com口

                interfaceUpdataHandle = new HandleInterfaceUpdataDelegate(UpdateTextBox);//实例化委托对象 
                serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived); //接收COM口数据
                if (!serialPort1.IsOpen)
                {
                    serialPort1.Open();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return;
            }
            timer1.Enabled = true;
}

设置COM口主要参数

 private void GetSetComb()
 {
            try
            {
                serialPort1.PortName = GlobalSettings.Instance.DefaultCom;
                serialPort1.BaudRate = GlobalSettings.Instance.DefaultBaudRate;
                serialPort1.Parity = (Parity)Enum.Parse(typeof(Parity), "None");
                serialPort1.StopBits = (StopBits)Enum.Parse(typeof(StopBits), "1");
                serialPort1.DataBits = 8;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
}

DataReceived 和在TextBox实时显示重量的方法

private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
            int i = serialPort1.BytesToRead;
            if (i > 0)
            {
                string strTemp = serialPort1.ReadLine();
                this.Invoke(interfaceUpdataHandle, strTemp);
            }
        }

        private void UpdateTextBox(string text)
        {
            string[] zl = null;
            if (text.Length > 0)
            {
                zl=text.Split(',');
                if(zl.Length>=2)
                {
                    txtbgzl.Text = zl[2].Replace("+","").Replace("kg","").Trim();
                }
            }            
}

写在最后

本期分享了电商综合管理平台系统里,常用的电子秤称重模块的设计,有需要的朋友可以参考借鉴。