时间段预约库存功能的实现

本文介绍了时间段库存模块的设计方案,包括预约功能的细节。同一产品按时间段购买,预约数量受限于库存,时间段需遵循特定规则。内容涵盖库存控制、表结构设计以及预约判断逻辑,如判断预约时间段是否可用,如何处理库存冲突等。

时间段库存模块


预约

1、同一产品分时间段进行购买;
2、同产品有库存的概念:同产品同时间点的预约数量不能超过产品库存数量;
3、预约时间段需符合指定规则;
4、时间段分为进行中和未进行:
5、未进行的时间段空留出【固定分钟(设置时间)】整备时间;
6、整备:进行中的时间段未进入回收流程正常空留出整备时间;已进入回收流程的产品以回收员设置的解冻时间点为准;


设计方案-PLAN-Alpha:
库存:不区分产品;通过时间段的占用数量与库存比较进行控制;
表结构:设置产品展示时间段表;登记每个产品的时间段占用明细;

表结构

table product_time_bucket:产品时间管理表:
bucket_id:id;
product_id:产品id;
freeze_begin_time:冻结开始时间;
freeze_end_time:冻结结束时间;
period_length:时间段长度(单位:分钟);
freeze_type : 1,reserve:预约冻结;2,reserveBuffer:预约预留冻结;3,manualMade:人工冻结;4,order:订单冻结;2,orderBuffer:订单预留冻结;
order_sn:关联订单号(人工冻结时也需要);
bucket_nstaus:时间状态;0:未执行;1:执行中;2:执行完毕;
begin_type:开始类型:1:自动开始;2:手动开始;
end_type:结束类型:1:自动结束;2:手动结束;

功能点:</

基于java的实验室网上预约系统设计与实现 技术:后端:java,前端:html+js+css 框架:springBoot SSM 运行工具:idea 数据库:mysql 源码:详见文章最后 1、    登录页面: 2、首页 3、用户管理  4、添加用户  5、角色管理  6、添加角色  7、编辑角色 8、预约管理  9、新增预约  10、数据统计 数据库脚本如下: CREATE TABLE `sys_user_t` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `role_id` VARCHAR(500) NULL DEFAULT NULL COMMENT '角色ID', `user_id` VARCHAR(50) NOT NULL COMMENT '用户ID', `user_name` VARCHAR(100) NOT NULL COMMENT '用户名', `status` VARCHAR(50) NOT NULL COMMENT '是否有效0:false\\\\\\\\1:true', `create_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `create_by` VARCHAR(100) NULL DEFAULT NULL, `last_update_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `last_update_by` VARCHAR(100) NULL DEFAULT NULL, `password` VARCHAR(128) NOT NULL, `tenantcode` VARCHAR(50) NOT NULL, `diskId` VARCHAR(500) NULL DEFAULT NULL, `remarks` VARCHAR(500) NULL DEFAULT NULL, PRIMARY KEY (`id`) ) COMMENT='系统用户表' COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=52 ; CREATE TABLE `sys_role_t` ( `role_id` INT(11) NOT NULL COMMENT '角色ID', `role_name` VARCHAR(200) NOT NULL COMMENT '权限名称', `status` INT(11) NOT NULL COMMENT '是否有效0:true\\\\1:false', `create_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `create_by` VARCHAR(100) NULL DEFAULT NULL, `last_update_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `last_update_by` VARCHAR(100) NULL DEFAULT NULL ) COMMENT='系统角色表' COLLATE='utf8_general_ci' ENGINE=InnoDB ; CREATE TABLE `sys_menu_t` ( `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '序列', `parent_id` VARCHAR(50) NOT NULL COMMENT '父节点ID', `menu_id` VARCHAR(50) NOT NULL COMMENT '菜单ID', `menu_name` VARCHAR(200) NOT NULL COMMENT '菜单名称', `menu_url` VARCHAR(200) NULL DEFAULT NULL COMMENT '菜单URL', `status` INT(11) NOT NULL COMMENT '有效(0有效,1失效)', `create_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `create_by` VARCHAR(200) NULL DEFAULT NULL, `last_update_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `last_update_by` VARCHAR(200) NULL DEFAULT NULL, PRIMARY KEY (`id`) ) COMMENT='菜单表' COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=33 ; CREATE TABLE `client_manager_t` ( `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '序列', `clientId` VARCHAR(50) NULL DEFAULT NULL COMMENT '客户编号', `clientName` VARCHAR(50) NULL DEFAULT NULL COMMENT '客户姓名', `address` VARCHAR(200) NULL DEFAULT NULL COMMENT '客户住址', `source` VARCHAR(200) NULL DEFAULT NULL COMMENT '客户所属公司', `sourceDate` VARCHAR(200) NULL DEFAULT NULL COMMENT '客户发展时间', `status` VARCHAR(200) NULL DEFAULT NULL COMMENT '客户级别', `clientNum` VARCHAR(200) NULL DEFAULT NULL COMMENT '拜访客户次数', `isTrue` VARCHAR(200) NULL DEFAULT NULL COMMENT '客户是否有效', PRIMARY KEY (`id`) ) COMMENT='客户人员信息表' COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=47 ;
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值