商品条码业务逻辑以及商品条码的传输

今天进行了ERP系统批量更换条码的测试,这里来记录一下商品条码 的业务逻辑

条码,我们有大类码(统码)也就是多个商品共用同一个条码,这种商品不适合线上销售,在线上销售的时候要进行拆码。
我们还有唯一码,一个没一个商品都有自己对应的一个条码,普通商品和SKU商品一样都有自己唯一的条码,SKU商品还会多一个款式码条码,也就是同一种商品的多个款式共用一个条码。

在商品信息录入的时候,录入自己输入条码,可以是厂家给的条码,也可以是仓库的条码。

我们一般录入的是仓库的条码,便于售卖和盘点。

今天测试的是条码的批量更换,就来记录一下批量更换条码我收获的内容。

为什么要批量更换条码?

为什么要批量更换条码? 当然是录入员大面积录错了呀,其实不然。
(其实这个功能没怎么使用过,基本上是直接在单个商品里修改条码,商品信息定义保存,审核后,商品名称,条码是允许修改,重新传送到中台和物流系统的。)

在我们现用的ERP里,对于商品有两种管理口径:
1、普通商品;
2、SKU商品(款色规);

我们公司是搞线上线下两栖发展的(听着感觉很奈斯)

我们对于商品信息表有 SP_ID(商品ID)、SPCODE(商品编码)、BARCODE(商品条码)、KSMDM(款式码代码)、KSMBARCODE(款式码条码)
通过SP_ID(商品ID)、SPCODE(商品编码)中的随便一个信息都可以唯一确认一个商品。

但是今天只关注商品条码。

商品条码涉及到在商品售卖时扫入条码带出的商品信息跟ERP系统、WMS物流系统(盘点的时候是扫条码的)里的信息是否对应。

有时候,商品条码录入的时候是我们自己生成的条码,但是实际吊牌上打的是商家的条码或者其他的条码,所以是需要在系统里更换条码的。

业务逻辑

先讲讲数据表的设计,我们除了有一张商品信息的主表外,还有一张商品条码的辅表,关联关系为商品ID。

表结构
商品信息SPXX 表包含了商品的ID(唯一)、条码、核算方式,名称,供应商,产地,商标,货号,合同,单价,采购价,进项税率,款式码,款色规等商品信息.
这张表的唯一键是:SP_ID ,BARCODE||HSFS(商品条码||核算方式);

商品条码SPBARCODE 表就很简单,只有商品ID(不唯一)、条码,序号,核算方式。
这张表没有唯一键,就是用来记录某个商品曾经用过哪些条码的;

在商品信息SPXX 表里,对barcode(条码)进行去重,发现是有重复值的,
这就说明:SP_ID不同但是barcode相同的同种单品可以售卖
不同的商品居然是可以共用同一个条码的,那在售卖时,就需要前台进行控制,分店1的收银员只能卖分店1的东西和分店1某个柜的营业员只能卖分店1某个柜的商品。

再对barcode||hsfs(条码||核算方式)进行去重,发现没有重复值
这就说明:同种单品可以采取不同核算方式经营。

这就有问题了,像我们这种门店遍地的公司,同一门店是不允许同种单品通过不同核算方式同时经营的,但是我们的商品信息表里并没有fdbh(分店编号)字段,没法通过分店来管控商品。

这就会造成一个问题,如果业务不管控,系统是允许同一门店也可以售卖 核算方式 不一样的同种商品。

商品条码的传输

在ERP界面录入商品信息时录入商品条码,在审核后,由ERP系统传到中台,中台对数据不进行保存,直接由中台传输到WMS物流系统。

在传输后,系统会保存一个TM的最大值 eg:68,
当进行insert或updat时触发触发器累加更新商品的TM值 eg:69,下次传输时会自动传输TM>MAX(TM)eg:TM>68的数据(也就是69),这样就完成了数据的传输。

至于传输机制,可以是在审核时触发传输机制,或者用一个定时器,每隔一段时间自动传输。
为了实现各系统的完全同步,这两种方式我们同时在使用。

ERP业务逻辑-商品条码相关推荐

  1. ERP业务逻辑-进销存

    太痛了 今天给财务从商品进销存批次日出了份数据,万万没想到导致我们部门被投诉了. 经历如下: 程序员的思维逻辑跟财务的逻辑可能存在差异,比如说: 财务:"你给我出一份自营自采期初结存.购进. ...

  2. 精心设计的基于组件的C# Win Forms实践 一个框架数据库驱动多个业务逻辑数据库...

    设计一个灵活稳定的多层架构的程序不是件容易的事情.当有了成熟的模式和应用之后,还需要经历各种应用与需求考验,用直白的话说,就是要经得起折腾.最近在重构自己的EPN框架时,有了一些新的体会实践,与各位分 ...

  3. 你模型的变量符合业务逻辑了吗

    关注 "番茄风控大数据",获取更多数据分析与风控大数据的实用干货. 模型开发中,经常需要对变量做各种统计分析,而且在分析前还需要跟业务跟产品的同事碰一下变量的逻辑.刚从事模型开发的 ...

  4. 新闻发布项目——业务逻辑层(newsTbService)

    package bdqn.newsManageServlet.Service;import java.util.List;import bdqn.newsManageServlet.entity.ne ...

  5. 业务逻辑应该在哪里实现更为合理呢?

    请大牛们讨论下业务逻辑应该在哪实现较为合理 1.java业务逻辑层. 2.后台存储过程. 因为本人一直都在业务逻辑层实现.但新项目中领导要求将业务写到后台存储过程,java业务逻辑层不承载业务逻辑的实 ...

  6. 请不要将抛出异常作为业务逻辑使用!!!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:myfor www.cnblogs.com/myfor/p/ ...

  7. Servlet业务逻辑封装的试探

    最近使用MVC的理念架构了一个简单的新闻系统, 按照理念意志,自然是使用Servlet处理业务逻辑, 当我将函数封装在3个层次以内时,发现新闻系统的速度的确有所提高 可是封装到3个层次以上时,发现程序 ...

  8. 关于线程池运行过程中,业务逻辑出现未知异常导致线程中断问题反思

    最近在项目研发中的关于线程池应用过程中由于业务逻辑异常导致的线程中断,但程序未中断导致的脏数据问题  话不多说,在最近最新的一个版本发布过程中,业务需要,我们要定期去给客户预留出可用的资源数据,提供客 ...

  9. LINQ : 如何为LINQ TO SQL实现自定义业务逻辑

    LINQ TO SQL很好很强大,它几乎包含了我们能够想到的所有与数据库有关的操作,甚至也包含了一些我们可能都没有想到的. 但不管怎样,也许我们需要在LINQ TO SQL的操作中添加一个自定义业务逻 ...

最新文章

  1. R语言ggplot2可视化时间序列数据:ggplot2可视化在时间轴上添加按月的箱图(boxplot)
  2. java keytool 导入证书_java - Keytool无法导入证书 - SO中文参考 - www.soinside.com
  3. 成功解决 \tensorflow\…\datasets\mnist.py:290: DataSet.__init__ (from tensorflow.contrib.learn.python.lea
  4. 乐峰VS聚美,明星也要吃咸盐
  5. MySQL 服务器变量 数据操作DML-视图
  6. vue中通过js控制页面样式方法
  7. tf.TensorArray
  8. 简单编程代码表白_用简单代码实现抖音表白神器
  9. 【算法】算法求出2个超大正数相加
  10. 在Android关机中插入脚本
  11. Jquery截取中文字符串
  12. 学习英语,先记下留着后用
  13. Linux命令之passwd
  14. Tally项目笔记001
  15. WPS 2019 用户界面分析
  16. python快速移动文件内容到另一个文件夹
  17. 计算机图标在桌面右侧,怎样把桌面图标放到屏幕的右边??
  18. 未来的计算机 展望未来作文,展望未来作文素材_2020展望未来作文精选5篇
  19. [他山之玉]轮值董事长郭平 2019年新年致辞
  20. node-red实现MQTT通讯

热门文章

  1. 2021.7.15 jzoj题解与反思(2)
  2. el-upload使用http-request自定义上传和进度条实战
  3. 用Redis实现短链接点击统计
  4. 【事故致因】HFACS(人因分析与分类系统)
  5. 新型猪流感,人禽流感与普通流感的比较(视频)
  6. Vue项目中报错error Indentifier ‘attr_id‘ is not in camel case解决方法如下
  7. Android Studio 翻译插件Translation的安装
  8. 判断请假时间去除周末及节假日
  9. 易經大意(13) 三和 韓長庚 著
  10. 怎么按场景需求创建企微欢迎语?