HH SaaS电商系统的采购功能模块设计

文章目录

    • 如何生成采购单
    • 系统生成采购单的流程
      • 基本流程
      • 扩展流程
        • 找不到符合条件的供应商,要求部分退款(初次生成采购单时)
        • 找不到符合条件的供应商,要求全部退款(初次生成采购单时)
        • 指定供应商的库存不足,需要更换供应商(初次生成采购单时)
    • 取消采购单
    • 采购单结算
    • 采购单状态
    • 采购单实体图
    • 协议货款结算日期
    • 采购单的关联表
    • 重新生成采购单

如何生成采购单

采购业务说明
本系统的采购业务和正常采购业务不同,本系统的采购逻辑其实和分销系统的采购逻辑一样。
本系统的消费者下单付款后,系统才根据销售订单和商品的采购策略生成采购单(消费者购买,商品的采购方才向供货商发起采购单),也就是说实际采购单是依据销售单而产生的,之后采购方依据采购单与供货商对账和结算货款。

生成采购单的系统逻辑
本系统的采购单是由“订单中心”自动引发的,销售订单付款后,“订单中心”会将订单及商品数据发送给“调度中心”,“调度中心”根据商品的“采购策略”确定实际的供应商,再将订单、商品、供应商数据发送给“采购中心”,采购中心按供应商生成对应的采购单。

系统生成采购单的流程

基本流程

  1. 订单中心将订单状态更新为“等待商家发货”后,同步将 “未退款” 且“未确定供应商”的商品及订单数据发送给调度中心

  2. 调度中心根据“采购策略”确定最终的供应商,同步将商品、订单、供应商数据发送采购中心

  3. 采购中心生成有关供应商的采购单,并反馈信息给调度中心

  4. 调度中心收到反馈信息后,再将供应商信息反馈给订单中心

  5. 订单中心收到反馈信息后,将供应商信息保存在对应的销售子单上

扩展流程

找不到符合条件的供应商,要求部分退款(初次生成采购单时)

  1. 订单中心将“未退款”且“未确定供应商”的商品和订单数据发送给调度中心

  2. 调度中心根据“采购策略”确定供应商,有商品找不到符合条件的供应商

  3. 调度中心反馈给客服中心,并且把找不到供应商的商品信息传给客服中心,客服中心依此生成“采购”类型的工单给采购部门指定的人员

  4. 采购人员接收到工单后去查找其它的供应商,最后也没有找到其它符合条件的供应商,于是采购专员创建“售后”类型的工单给客服部门指定的人员

  5. 客服人员接收到工单后和买家协商部分退款,买家申请部分退款(即子单退款),客服中心生成退款单,退款成功后客服中心将商品退款信息反馈给订单中心

  6. 订单中心收到反馈信息后修改相关子单的状态,此时不需要自动通知“调度中心”锁定供应商,由采购专员手动重新生成采购单

  7. 接着采购人员需要回到“订单管理”模块,找到需要重新生成采购单的销售订单,点击“重新生成采购单”按钮,让系统重新生成采购单

找不到符合条件的供应商,要求全部退款(初次生成采购单时)

  1. 订单中心将“未退款”且“未确定供应商”的商品和订单数据发送给调度中心

  2. 调度中心根据“采购策略”确定供应商,有商品找不到符合条件的供应商

  3. 调度中心反馈给客服中心,并且把找不到供应商的商品信息传给客服中心,客服中心依此生成“采购”类型的工单给采购部门指定的人员

  4. 采购人员接收到工单后去查找其它的供应商,最后也没有找到其它符合条件的供应商,于是采购专员创建“售后”类型的工单给客服部门指定的人员

  5. 客服人员收到工单与买家协商部分退款,买家要求全部退款,买家执行退款操作,客服中心生成退款单,退款成功后客服中心反馈给订单中心,订单中心修改相关子单状态(全部子单的状态变成“退款成功”,主单状态变成“订单关闭”)后业务流程结束

指定供应商的库存不足,需要更换供应商(初次生成采购单时)

  1. 订单中心将“未退款”且“未确定供应商”的商品和订单数据发送给调度中心

  2. 调度中心根据“采购策略”确定供应商,有商品找不到符合条件的供应商

  3. 调度中心反馈给客服中心,并且把找不到供应商的商品信息传给客服中心,客服中心依此生成“采购”类型的工单给采购部门指定的人员

  4. 采购人员接收到工单后找到其他符合的供应商,于是修改“采购策略”

  5. 接着采购人员需要回到“订单管理”模块,找到需要重新生成采购单的销售订单,点击“重新生成采购单”按钮,让系统重新生成采购单

取消采购单

  1. 供应商主动取消出库单,仓储中心取消出库单后将取消出库的商品信息反馈给订单中心

  2. 订单中心收到反馈信息后,将相关商品修改为“未确定仓库”(实则就是把“发货仓库”字段置为空),接着订单中心要反馈给客服中心,把“未确定仓库”的商品信息传给客服中心

  3. 客服中心收到反馈信息后,生成“出库”类型的工单给仓储部门指定的人员

  4. 仓库人员接收到工单后检查其它仓库和供应商,发现其它供应商有货,接着仓库专员创建“采购”类型的工单给采购部门,要求他们取消相关的采购单,工单要说明取消采购单的相关情况

  5. 采购专员接收到工单后取消相关采购单,采购单取消成功后采购中心反馈给订单中心,订单中心将相关商品修改为“未确定供应商”(实则就是把“供应商”字段置为空

  6. 接着采购专员修改相关商品的采购策略,修改好之后采购专员再回到“订单管理”模块,找到需要重新生成采购单的销售订单,点击“重新生成采购单”按钮,让系统重新生成采购单

  7. 接着采购专员创建“出库”类型的工单给仓储部门指定的人员,通知他们采购单已经重新生成了,仓储部可以将有关商品重新生成出库单了,仓库人员收到工单后回到“订单管理”模块,找到需要重新生成出库单的销售订单,点击“重新生成出库单”按钮,让系统重新生成出库单

P.S. 发现供应商的商品实际库存不足,但是其他供应商有货,应该先取消出库单,再取消采购单。供应商没有直接取消采购单的权限,如果采购商直接取消采购单,系统必须判断采购单是否存在未确定发货仓库的商品,如果存在说明仓库人员已经先取消出库单或者根本没有生成出库单,所以可以直接取消采购单,如果不存在未确定发货仓的商品,则不允许取消采购单,系统提示:采购单内的商品都已经生成出库单,不允许直接取消采购单,若您确实要取消采购单,建议您先取消有关的出库单后再取消采购单~

采购单结算

点击查看结算系统设计方案

采购单状态

采购主单状态图
在这里插入图片描述

采购子单状态图
在这里插入图片描述

采购主单的状态需要新增归档状态,因为采购单后面也涉及到售后问题,分销商可以在采购单发起售后,参考天猫分销平台的设计

采购单实体图

在这里插入图片描述

协议货款结算日期

如果入驻供应商有协商货款结算日期,那么生成采购单时就保存该结算日期,如果没有则保存采购单归档日期作为结算日期

采购单的关联表

  • 采购单和销售单是多对一关系,采购主单保存销售主单ID,采购子单保存销售子单ID,一个销售单内的商品可能由不同的供应商供货,所以一个销售单会生成多个采购单

  • 采购单和采购货款结算单是一对一关系,采购货款结算单保存采购主单ID,采购货款结算单的商品保存采购子单ID,放弃多个采购单一起结算的方案,因为将来采购单可能会涉及到更多的结算单

  • 采购单和出库单是多对多关系,销售订单生成采购单后才生成出库单,在实际业务中会有查看采购单关联哪些出库单的需求,所以出库单不应该直接去关联销售订单,而是去关联采购单,如果要查看销售订单关联哪些出库单,可以通过关联的采购单找到相关的出库单,出库单和采购单是多对多的关系,采用中间表建立关联关系。
    P.S. 取消采购单和出库单的关联关系,如果采购单要查看相关的出库单,通过关联的销售订单查询

重新生成采购单

销售订单存在没有供应商的商品,销售订单则会出现“重新生成采购单”的按钮,采购专员点击按钮,将没有供应商且未退款的商品信息提交给“调度中心”根据“采购策略”锁定供应商,然后“调度中心”将订单信息、商品信息和供应商信息提交给“采购中心”,采购中心接收到相关数据后按供应商生成采购单,同步将商品的供应商信息反馈给调度中心,调度中心再将供应商信息反馈给订单中心,订单中心收到反馈后,将供应商信息保存在对应的销售子单上,此时不需要自动通知“调度中心”锁定发货仓库,由仓库专员手动重新生成出库单

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/335617.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

本地缓存防止缓存击穿_防止缓存爆炸的快速提示

本地缓存防止缓存击穿在很多情况下,您都可以从应用程序中的常用对象缓存中受益,特别是在面向Web和微服务的环境中。 您可以在Java中执行的最简单的缓存类型可能是引入一个私有HashMap,在计算对象之前先查询该哈希表,以确保您不会重…

php mysql导出csv文件_详解PHP导入导出CSV文件

我们先准备mysql数据表,假设项目中有一张记录学生信息的表student,并有id,name,sex,age分别记录学生的姓名、性别、年龄等信息。CREATE TABLE student (id int(11) NOT NULL auto_increment,name varchar(50) NOT NULL…

HH SaaS电商系统的入库功能模块设计

文章目录创建入库单的场景创建入库单的业务流程商品直接入库内部仓退货入库(内部仓)换货入库(内部仓)退货入库(外部仓)换货入库(外部仓)备货入库(内部仓)备货…

aws ecr_在ECR上推送Spring Boot Docker映像

aws ecr在先前的博客中,我们将Spring Boot应用程序与EC2集成在一起。 它是您可以在Amazon Web Services上进行的最原始的部署形式之一。 在本教程中,我们将使用我们的应用程序创建一个docker映像,该映像将存储到Amazon EC2容器注册表中 。 …

HH SaaS电商系统的商品营销角标功能模块设计

1、角标只属于商城,自营店铺共享商城的角标,第三方店铺可以申请角标 2、角标跟着素材模板走,关联素材模板id,一对多关系

python为什么这么小_同样是 Python,怎么区别这么大

发现问题上周,我的测试同事告诉我,你的用户名怎么还允许中文啊?当时我心里就想,你们测试肯定又搞错接口了,我用的是正则\w过滤了参数,怎么可能出错,除非Python正则系统出错了,那是不…

dynamodb容器使用_使用DynamoDBMapper扫描DynamoDB项目

dynamodb容器使用之前,我们介绍了如何使用DynamoDBMapper或底层Java api查询DynamoDB数据库。 除了发出查询之外,DynamoDB还提供扫描功能。 扫描的目的是获取您在DynamoDB表上可能拥有的所有项目。 因此,扫描不需要任何基于我们的分区键或…

HH SaaS电商系统的商品营销标签功能模块设计

1、营销标签只属于商城,自营店铺共享商城的营销标签,第三方店铺可以申请营销标签 2、营销标签跟着商品走,关联spu_ext_id,多对多关系 3、一个商品最多添加5个营销标签

python加减法计算题 代码_关于《剑指offer》中不用加减乘除做加法的Python代码的问题...

题目如下:写一个函数,求两个整数之和,要求在函数体内不得使用、-、*、/四则运算符号。题目不难,可以采用位操作来实现,利用异或运算来计算不带进位的加法结果,利用与运算计算进位的标志,然后将这…

接口方法javadoc注释_继承Javadoc方法注释

接口方法javadoc注释尽管用于javadoc工具的JDK工具和实用程序页面通过实现和继承方法来描述Javadoc方法注释重用的规则,但是当实际上不需要使用{inheritDoc}时,很容易不必要地显式描述注释继承,因为会使用相同的注释隐式继承。 Java 8 javado…

HH SaaS电商系统的商品销售管理标签功能模块设计

1、商城和店铺有各自的销售管理标签 2、商品管理标签跟着商品走,关联spu_ext_id或者sku_ext_id,多对多关系

redis java 监听_从零手写实现redis(四)添加监听器

前言java从零手写实现redis(一)如何实现固定大小的缓存?java从零手写实现redis(三)redis expire 过期原理java从零手写实现redis(三)内存数据如何重启不丢失?本节,让我们…

neo4j导入两个文件_Neo4j:找到两个纬度/经度之间的中点

neo4j导入两个文件在过去的两个周末中,我一直在处理一些运输数据,并且我想运行A *算法来查找两个车站之间的最快路线。 A *算法将EstimateEvaluator作为其参数之一,并且该评估器查看节点的经度/纬度,以确定一条路径是否值得遵循。…

HH SaaS电商系统的商品营销服务功能模块设计

商品营销服务 1、服务只属于商城,自营店铺共享商城的服务,第三方店铺可以申请服务 2、服务跟着素材模板走,关联素材模板id,多对多关系

drill apache_如何指南:Apache Drill入门

drill apacheApache Drill是一个引擎,可以连接到许多不同的数据源,并为它们提供SQL接口。 它不仅是遍历任何复杂事物SQL界面,而且是功能强大的界面, 其中包括对许多内置函数和窗口函数的支持。 尽管它可以连接到可以使用SQL进行查…

mac mysql 重设密码_Mac下忘记mysql密码重新设置密码的图文教程

MySQL 文件在路径/usr/local/mysql下1, 在系统偏好设置中关闭 mysql : Stop MySQL Server2 ,打开终端进入路径  /usr/local/mysql/bin输入命令 sudo su, 然后输入开机密码。然后输入命令:./mysqld_safe –skip-grant-…

HH SaaS电商系统的商品销售分区功能模块设计

商品销售分区 1、销售分区跟着商品走,关联spu_ext_id,多对多关系 2、商城和店铺有各自的销售分区

spring 安全编码_Spring安全性和密码编码

spring 安全编码在以前的文章中,我们深入探讨了Spring安全性。 我们实现了由jdbc支持的安全性,基于自定义 jdbc查询的安全性以及从nosql数据库检索安全性的信息。 通过足够小心,我们会发现密码为纯文本格式。 尽管这在实际环境中可以很好地用…

python网管系统_IT外包网管服务,Python密度聚类算法-DBSCAN实践

蓝盟 IT小贴士,来喽!可以看出,a点附近的点密度大,红色的圆按照一定的规则在这里滚动,最终收纳a点附近的5点,标记为红色是同一个簇。其他没有收纳的东西,按照相同的规则进行集群化。从图像上来看…

HH SaaS电商系统的商品物流模板的功能设计

商品物流模板 1、物流模板跟着商品走,关联spu_ext_id,一对多关系 2、商城和店铺有各自的物流模板