供应链管理系统,通过研究,做出了部分的设计,主要内容包含:供应主体的模型设计,业务链及商品链模型设计。
供应链管理系统
SCM(Supply Chain Management),供应链管理系统,由ERP发展起来的,它是对物流、信息流、资金流进行管理,计划和协调与物流、信息流、资金流的所有活动,使其成为一个无缝的过程。
SCM覆盖了供应链上所有环节,加强了对供应链上企业的协调和企业外部物流、资金流、信息流的集成,弥补了ERP的不足。
SCM系统需要解决的则是与特定生产供应和销售流通领域相关的一群企业的共性及个性化需求,满足上下游企业之间、物流服务委托和承包方之间的信息交共享与交流需求。
业务分析一般情况下,系统为了简单方便的权限控制,通常会使用业务树结构(业务系统)来组织业务主体:
1、业务主体,参与各个业务的机构、团体或企业,系统定义包含:组织者、参与者等的角色。
2、业务主体间的关系,是线下商务谈判后完成合同后形成的,通常只有上下游的关系。
3、业务主体间的商品,通过物流来完成,物流是可以自由选择的。
4、业务主体的关系是树形结构,商品的权限是通过授权层层传递。
5、业务主体间商品流通,商品必须满足价格要素。
数据库表结构设计E-R图(Entity Relationship Diagram)实体-联系图
业务主体表(business_org):
CREATE TABLE `business_org` (
`id` BIGINT(19) NOT NULL AUTO_INCREMENT COMMENT '100.主键ID',
`name` VARCHAR(50) NULL DEFAULT NULL COMMENT '200.主体名称' COLLATE 'utf8_unicode_ci',
`code` VARCHAR(50) NULL DEFAULT NULL COMMENT '300.主体编号' COLLATE 'utf8_unicode_ci',
`type` VARCHAR(10) NULL DEFAULT NULL COMMENT '400.主体类型' COLLATE 'utf8_unicode_ci',
`status` TINYINT(3) NULL DEFAULT NULL COMMENT '500.主体状态',
`parent_id` VARCHAR(10) NULL DEFAULT NULL COMMENT '600.父主体ID' COLLATE 'utf8_unicode_ci',
`tree_level` SMALLINT(5) NULL DEFAULT NULL COMMENT '700.主体级别',
`parent_full_path` VARCHAR(200) NULL DEFAULT NULL COMMENT '800.树形全路径' COLLATE 'utf8_unicode_ci',
`remarks` TEXT NULL DEFAULT NULL COMMENT '900.主体描述' COLLATE 'utf8_unicode_ci',
`contact` VARCHAR(50) NULL DEFAULT NULL COMMENT '1000.机构联系人' COLLATE 'utf8_unicode_ci',
`phone` VARCHAR(50) NULL DEFAULT NULL COMMENT '1100.机构联系电话' COLLATE 'utf8_unicode_ci',
`mobile` VARCHAR(50) NULL DEFAULT NULL COMMENT '1200.机构联系手机' COLLATE 'utf8_unicode_ci',
`email` VARCHAR(50) NULL DEFAULT NULL COMMENT '1300.机构联系邮箱' COLLATE 'utf8_unicode_ci',
`modified_version` BIGINT(19) NULL DEFAULT NULL COMMENT '9000.修改版本号,创建时都为:1',
`sync_version` BIGINT(19) NULL DEFAULT NULL COMMENT '9100.同步版本号,创建时都为:1',
`logical_deleted` BIT(1) NULL DEFAULT NULL COMMENT '10000.逻辑删除==>0:未删除,1:已删除',
`create_uid` BIGINT(19) NULL DEFAULT NULL COMMENT '20000.创建用户ID',
`create_user` VARCHAR(50) NULL DEFAULT NULL COMMENT '30000.创建用户' COLLATE 'utf8_unicode_ci',
`create_time` DATETIME NULL DEFAULT NULL COMMENT '40000.创建时间',
`modified_user` VARCHAR(50) NULL DEFAULT NULL COMMENT '50000.修改用户' COLLATE 'utf8_unicode_ci',
`modified_time` DATETIME NULL DEFAULT NULL COMMENT '60000.修改时间',
`deleted_user` VARCHAR(50) NULL DEFAULT NULL COMMENT '700000.删除用户' COLLATE 'utf8_unicode_ci',
`deleted_time` DATETIME NULL DEFAULT NULL COMMENT '80000.删除时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `code` (`code`) USING BTREE
)
COMMENT='业务主体表'
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB
;
供应商表(business_supplier):
CREATE TABLE `business_supplier` (
`org_id` BIGINT(19) NOT NULL COMMENT '100.主键ID',
`org_name` VARCHAR(50) NULL DEFAULT NULL COMMENT '200.供应商名称' COLLATE 'utf8_unicode_ci',
`business_license` VARCHAR(50) NULL DEFAULT NULL COMMENT '300.供应商营养执照' COLLATE 'utf8_unicode_ci',
`credit_code` VARCHAR(50) NULL DEFAULT NULL COMMENT '400.统一社会信用码' COLLATE 'utf8_unicode_ci',
`food_certificate` VARCHAR(50) NULL DEFAULT NULL COMMENT '500.食品资格证' COLLATE 'utf8_unicode_ci',
`medical_food_certificate` VARCHAR(50) NULL DEFAULT NULL COMMENT '600.特医食品资格证' COLLATE 'utf8_unicode_ci',
`bank_name` VARCHAR(50) NULL DEFAULT NULL COMMENT '700.收钱银行' COLLATE 'utf8_unicode_ci',
`account_name` VARCHAR(50) NULL DEFAULT NULL COMMENT '800.收钱户名' COLLATE 'utf8_unicode_ci',
`collect_account` VARCHAR(50) NULL DEFAULT NULL COMMENT '900.收钱账号' COLLATE 'utf8_unicode_ci',
`sub_branch` VARCHAR(50) NULL DEFAULT NULL COMMENT '1000.收款开户行支行' COLLATE 'utf8_unicode_ci',
PRIMARY KEY (`org_id`) USING BTREE
)
COMMENT='供应商表'
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB
;
分销商表(business_distributor):
CREATE TABLE `business_distributor` (
`org_id` BIGINT(19) NOT NULL COMMENT '100.主键ID',
`org_name` VARCHAR(50) NULL DEFAULT NULL COMMENT '200.分销商名称' COLLATE 'utf8_unicode_ci',
`distributor_ype` VARCHAR(50) NULL DEFAULT NULL COMMENT '300.分销商类型,1:个人,2:企业' COLLATE 'utf8_unicode_ci',
`distributor_nature` VARCHAR(50) NULL DEFAULT NULL COMMENT '400.分销商性质' COLLATE 'utf8_unicode_ci',
PRIMARY KEY (`org_id`) USING BTREE
)
COMMENT='分销商表'
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB;
零售商表(business_retailer):
CREATE TABLE `business_retailer` (
`org_id` BIGINT(19) NOT NULL COMMENT '100.主键ID',
`org_name` VARCHAR(50) NULL DEFAULT NULL COMMENT '200.消费端名称' COLLATE 'utf8_unicode_ci',
`consumer_type` VARCHAR(50) NULL DEFAULT NULL COMMENT '300.消费端类型' COLLATE 'utf8_unicode_ci',
`consumer_level` INT(10) NULL DEFAULT NULL COMMENT '400.消费者级别',
PRIMARY KEY (`org_id`) USING BTREE
)
COMMENT='零售商表'
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB
;
物流公司表(business_logistics):
CREATE TABLE `business_logistics` (
`org_id` BIGINT(19) NOT NULL COMMENT '100.主键ID',
`org_name` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '200.物流名称' COLLATE 'utf8_unicode_ci',
`logistics_type` VARCHAR(50) NULL DEFAULT NULL COMMENT '400.物流类型' COLLATE 'utf8_unicode_ci',
`company_code` VARCHAR(50) NULL DEFAULT NULL COMMENT '500.公司编号' COLLATE 'utf8_unicode_ci',
`company_name` VARCHAR(50) NULL DEFAULT NULL COMMENT '600.公司全名' COLLATE 'utf8_unicode_ci',
PRIMARY KEY (`org_id`) USING BTREE
)
COMMENT='物流公司'
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB
;
业务供应关系表(business_org_chain)
CREATE TABLE `business_org_chain` (
`id` BIGINT(19) NOT NULL COMMENT '100.主键ID',
`up_org_id` BIGINT(19) NULL DEFAULT NULL COMMENT '200.上游机构',
`up_org_type` VARCHAR(10) NULL DEFAULT NULL COMMENT '300.上游机构类型' COLLATE 'utf8_unicode_ci',
`down_org_id` BIGINT(19) NULL DEFAULT NULL COMMENT '400.下游机构',
`down_org_type` VARCHAR(10) NULL DEFAULT NULL COMMENT '500.下游机构类型' COLLATE 'utf8_unicode_ci',
`status` TINYINT(3) NULL DEFAULT NULL COMMENT '600.状态:1:初始,2:开始,3:终止',
`contract_code` VARCHAR(50) NULL DEFAULT NULL COMMENT '700.合同编号' COLLATE 'utf8_unicode_ci',
`contract_name` VARCHAR(50) NULL DEFAULT NULL COMMENT '800.合同名称' COLLATE 'utf8_unicode_ci',
`director_id` BIGINT(19) NULL DEFAULT NULL COMMENT '900.责任人ID',
`director_name` VARCHAR(50) NULL DEFAULT NULL COMMENT '1000.责任人名称' COLLATE 'utf8_unicode_ci',
`start_time` DATETIME NULL DEFAULT NULL COMMENT '1100.起始时间',
`end_time` DATETIME NULL DEFAULT NULL COMMENT '1200.终止时间',
`contract_desc` VARCHAR(255) NULL DEFAULT NULL COMMENT '1300.合作描述' COLLATE 'utf8_unicode_ci',
`logical_deleted` BIT(1) NULL DEFAULT NULL COMMENT '10000.逻辑删除==>0:未删除,1:已删除',
`create_uid` BIGINT(19) NULL DEFAULT NULL COMMENT '20000.创建用户ID',
`create_user` VARCHAR(255) NULL DEFAULT NULL COMMENT '30000.创建人' COLLATE 'utf8_unicode_ci',
`create_time` DATETIME NULL DEFAULT NULL COMMENT '40000.创建时间',
`deleted_user` VARCHAR(255) NULL DEFAULT NULL COMMENT '50000.删除人' COLLATE 'utf8_unicode_ci',
`deleted_time` DATETIME NULL DEFAULT NULL COMMENT '60000.删除时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `contract_code` (`contract_code`) USING BTREE,
INDEX `upstream_org_id` (`up_org_id`) USING BTREE,
INDEX `downstream_org_id` (`down_org_id`) USING BTREE
)
COMMENT='业务供应关系表'
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB
;
供应物流关系表(business_org_logistics):
CREATE TABLE `business_org_logistics` (
`id` BIGINT(19) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`org_id` BIGINT(19) NULL DEFAULT NULL COMMENT '机构ID',
`org_type` VARCHAR(50) NULL DEFAULT NULL COMMENT '机构类型' COLLATE 'utf8_unicode_ci',
`logistics_id` BIGINT(19) NULL DEFAULT NULL COMMENT '物流ID',
`logistics_type` VARCHAR(50) NULL DEFAULT NULL COMMENT '物流类型' COLLATE 'utf8_unicode_ci',
`sorted` INT(10) NULL DEFAULT NULL COMMENT '排序号',
`logical_deleted` BIT(1) NULL DEFAULT NULL COMMENT '10000.逻辑删除==>0:未删除,1:已删除',
`create_uid` BIGINT(19) NULL DEFAULT NULL COMMENT '20000.创建用户ID',
`create_user` VARCHAR(50) NULL DEFAULT NULL COMMENT '30000.创建人' COLLATE 'utf8_unicode_ci',
`create_time` DATETIME NULL DEFAULT NULL COMMENT '40000.创建时间',
`deleted_user` VARCHAR(50) NULL DEFAULT NULL COMMENT '50000.删除人' COLLATE 'utf8_unicode_ci',
`deleted_time` DATETIME NULL DEFAULT NULL COMMENT '60000.删除时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `org_id` (`org_id`) USING BTREE,
INDEX `logistics_id` (`logistics_id`) USING BTREE
)
COMMENT='供应物流关系表'
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB
;
供应授权商品表(business_org_goods):
CREATE TABLE `business_org_goods` (
`id` BIGINT(19) NOT NULL COMMENT '100.主键ID',
`org_id` BIGINT(19) NULL DEFAULT NULL COMMENT '200.业务机构ID',
`org_type` VARCHAR(10) NULL DEFAULT NULL COMMENT '300.业务机构类型' COLLATE 'utf8_unicode_ci',
`tree_level` TINYINT(3) NULL DEFAULT NULL COMMENT '400.业务树级别',
`goods_id` BIGINT(19) NULL DEFAULT NULL COMMENT '500.商品ID',
`logical_deleted` BIT(1) NULL DEFAULT NULL COMMENT '10000.逻辑删除==>0:未删除,1:已删除',
`create_uid` BIGINT(19) NULL DEFAULT NULL COMMENT '20000.创建用户ID',
`create_user` VARCHAR(50) NULL DEFAULT NULL COMMENT '30000.创建人' COLLATE 'utf8_unicode_ci',
`create_time` DATETIME NULL DEFAULT NULL COMMENT '40000.创建时间',
`deleted_user` VARCHAR(50) NULL DEFAULT NULL COMMENT '50000.删除人' COLLATE 'utf8_unicode_ci',
`deleted_time` DATETIME NULL DEFAULT NULL COMMENT '60000.删除时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `org_id` (`org_id`) USING BTREE,
INDEX `goods_id` (`goods_id`) USING BTREE
)
COMMENT='供应授权商品'
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB
;
供应授权商品价格分配表(trader_goods_price):
CREATE TABLE `trader_goods_price` (
`id` BIGINT(19) NOT NULL COMMENT '100.主键ID',
`org_id` BIGINT(19) NULL DEFAULT NULL COMMENT '200.机构ID',
`org_type` VARCHAR(10) NULL DEFAULT NULL COMMENT '300.机构类型' COLLATE 'utf8_unicode_ci',
`goods_id` BIGINT(19) NULL DEFAULT NULL COMMENT '400.商品ID',
`goods_sku_id` BIGINT(19) NULL DEFAULT NULL COMMENT '500.库存单位ID',
`is_default_unit` BIT(1) NULL DEFAULT NULL COMMENT '600.是否为默认的流通单位:1:默认,0:不默认',
`price_type` TINYINT(3) NULL DEFAULT NULL COMMENT '700.价格类型(1、采购,2、销售)',
`price` DECIMAL(10,2) NULL DEFAULT NULL COMMENT '800.价格',
`status` TINYINT(3) NULL DEFAULT NULL COMMENT '900.状态',
`remarks` VARCHAR(50) NULL DEFAULT NULL COMMENT '1000.备注' COLLATE 'utf8_unicode_ci',
`modified_version` BIGINT(19) NULL DEFAULT NULL COMMENT '9000.修改版本号,创建时都为:1',
`sync_version` BIGINT(19) NULL DEFAULT NULL COMMENT '9100.同步版本号,创建时都为:1',
`logical_deleted` BIT(1) NULL DEFAULT NULL COMMENT '10000.逻辑删除==>0:未删除,1:已删除',
`create_uid` BIGINT(19) NULL DEFAULT NULL COMMENT '20000.创建用户ID',
`create_user` VARCHAR(50) NULL DEFAULT NULL COMMENT '30000.创建人' COLLATE 'utf8_unicode_ci',
`create_time` DATETIME NULL DEFAULT NULL COMMENT '40000.创建时间',
`modified_user` VARCHAR(50) NULL DEFAULT NULL COMMENT '50000.修改用户' COLLATE 'utf8_unicode_ci',
`modified_time` DATETIME NULL DEFAULT NULL COMMENT '60000.修改时间',
`deleted_user` VARCHAR(50) NULL DEFAULT NULL COMMENT '70000.删除用户' COLLATE 'utf8_unicode_ci',
`deleted_time` DATETIME NULL DEFAULT NULL COMMENT '80000.删除时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `goods_id` (`goods_id`) USING BTREE,
INDEX `org_id` (`org_id`) USING BTREE,
INDEX `goods_sku_id` (`goods_sku_id`) USING BTREE
)
COMMENT='供应授权商品价格分配表'
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB
;
业务主体授权用户表(business_org_user):
CREATE TABLE `business_org_user` (
`id` BIGINT(19) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` BIGINT(19) NULL DEFAULT NULL COMMENT '用户ID',
`user_type` VARCHAR(50) NULL DEFAULT NULL COMMENT '用户类型' COLLATE 'utf8_unicode_ci',
`org_id` BIGINT(19) NULL DEFAULT NULL COMMENT '主体ID',
`org_type` VARCHAR(50) NULL DEFAULT NULL COMMENT '主体类型' COLLATE 'utf8_unicode_ci',
`create_user` VARCHAR(50) NULL DEFAULT NULL COMMENT '创建用户' COLLATE 'utf8_unicode_ci',
`create_time` DATETIME NULL DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `user_id` (`user_id`) USING BTREE,
INDEX `org_id` (`org_id`) USING BTREE
)
COMMENT='业务主体授权用户表'
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB
;