ESAP达摩院 思想有多远,我们就能走多远

使用 esap + vue 打造员工自助入库系统


通常,在生产企业中,一线员工按计件计算收入,入库作为关键环节,需要投入大量统计核对工作,本文记录了半年来我们在这一领域的新应用研发和突破。

为什么用esap + vue

  • esap是连接企业微信和ERP的后端利器,vue是简单小巧的mvvm前端框架,二者结合实现了敏捷开发,定制个性化。

方案概述

  • 改进前:传统的入库需要员工填报各种纸质单据,放到入库的成品中,然后由车间统计员根据纸质单据,核验数量(重量),填写电子入库单,检验、仓管依次做相关校验审核。

  • 改进后:员工通过手机(微信)扫码,自行核验数量上报,检验、仓管依次做相关校验审核。

  • 此方案预计可以节省统计人员若干,同时还能增加入库记录细节,可以记录每箱(筐)的数量(重量),员工甚至可以立即获知自己的计件工资收入情况。

方案细节

利器

  • 工欲善其事,必先利其器,首先,我们添置了一台特殊的电子秤,通过无线收发器与现场计算机进行通信。

  • 接下来用golang编写了一个(约100行)的采集程序,主入口代码如下:
func main() {
	// 打开配置文件
	fd, err := ioutil.ReadFile(filepath.Dir(os.Args[0]) + Confile)
	E(err, "打开配置出错")

	// 解析数据库连接信息
	E(json.Unmarshal(fd, &C), "解析配置出错")

	// 连接数据库
	dsn := fmt.Sprintf(C.Dsn)
	db, err = sql.Open("odbc", dsn)
	E(err, "打开数据库出错")
	defer db.Close()

	// 打开串口
	log.Printf("串口: %s 波特率: %d\n", C.COM, C.Baud)
	s, err := serial.OpenPort(&serial.Config{Name: C.COM, Baud: C.Baud})
	E(err, "打开串口出错")
	defer s.Close()

	// 循环扫描串口数据存入数据库,间隔500ms
	for range time.Tick(500 * time.Millisecond) {
		saveData(s)
	}
}
  • 这个程序会实时形成下列格式的数据,供后续提数使用。

派工

  • 像往常一样,对一线人员进行【派工】,这个工单包含了4个组件。

  • 派工后,一线员工的手机端就会收到【待入库】任务,前端界面用vue开发。

标准筐入库

  • 员工完成生产任务后,将产品装筐上称。

  • 进入【待入库】中对应的产品,选择【扫描标准筐】,对筐上二维码进行扫码。

  • 扫码后,筐数量(重量)完成提取和计算。

临时筐入库

  • 非专用周转箱入库时,选择【扫描临时筐】,这里临时筐主要是一些临时纸箱或塑料袋。

  • 扫描结果类似,筐号为临时流水号,筐重自填。

检验

  • 员工完成入库保存后,检验员对其进行检验。

收货

  • 检验完成后,仓管员对其进行现场抽检,收货确认。

  • 确认后,派工入库单上将同步呈现,由esap完成ERP数据对接同步。

方案后续

  • 员工可以通过app查询到自己的计件绩效。

  • 该方案适用于任意自研的ERP,例如聚表等ES平台。