某店POS积分管理系统设计Word格式.docx
《某店POS积分管理系统设计Word格式.docx》由会员分享,可在线阅读,更多相关《某店POS积分管理系统设计Word格式.docx(48页珍藏版)》请在冰豆网上搜索。
1.3研究方法
作为以JAVA语言为基础的商务型软件,此次研究主要采用面向对象的方法进行软件开发。
尽可能模拟人类习惯的思维方式来分析和解决问题,保证软件系统的稳定性和可复用性以及良好的维护性。
在程序中,采用了JDBC—ODBC桥的方式,进行数据库连接。
另外,由于是商务软件,就要考虑到用户在使用该系统时有可能出现的各种错误,并针对这些错误制定出解决的方案。
整个开发过程分为四个部分,包括分析工程、设计工程、制造工程、测试工程。
下面将详细对上述过程进行细致的描述。
2分析工程
2.1需求分析
由于该百货店实行会员管理模式,每个会员都有代金消费点数,其中就存在部分会员在获得消费点后,因某些原因长期未能进行消费,但仍要对他们的消费点进行管理,这就给整个管理系统带来了负担,同时也占用了很多不必要的资源,无形中增大了管理的成本。
为了解决这个问题,就需要建立一个模块来定期检查会员消费情况,对限定时间内未消费的用户进行积分失效处理,以节约系统资源,同时,也在一定程度上刺激会员消费。
把握市场动向,提高销售利润是企业的最终目标。
在企业管理日趋科学化的今天,如何准确及时地进行生产经营决策是销售企业面临的严峻问题。
要求决策者准确及时地捕捉到销售信息,分析销售情况,随时根据历史的销售情况,对下一步的生产经营科学地进行决策。
销售分析需要大量的基础数据,但是如果将原始的销售信息直接用于分析又会给分析工作带来很大不便,是效率无法提高。
因此就需要将原始销售信息进行整理,处理成决策分析所需的数据资料,进行保存。
2.2系统分析
2.2.1系统构成
1硬件需求:
计算机一台
2操作系统:
Windows2000(日文)
3开发语言:
Java
4开发工具:
eclipse
5数据库:
MicrosoftSQLServer2000
6其他软件:
MicrosoftSQLServer2000DriverforJDBCService,Subversion(SVN)1.30
2.2.2系统模块
1积分失效
从会员信息表中,找出一年前注册,当前点数不为0,且一年内未进行消费的用户,对其积分进行清零处理。
2数据分析
对每日POS消费记录文件进行数据处理,生成用于外部数据分析的明细文件
2.2.3系统数据分析
会员数据:
包括会员的基本信息数据(入会日期,会员编码,姓名,住址,联系电话,出生年月日,会员种类,入会店铺编码等等);
积分数据:
包括积分卡基本信息数据(会员编码,现在积分点,累计积分点,输出累计积分点,增加累计积分点,基本累计积分点,购买次数,购买累计金额等等);
店铺数据:
包括店铺基本信息数据(店铺编码,店铺名称,DOMINANT编码,住址,联系电话等等);
用于进行数据分析处理的原始销售信息存放于一个名为FSP_EFI010.DAT的文件中,其数据格式如表1所示:
表1原始销售信息文件数据格式
数据名称
数据字段长度(位)
店铺CODE
6
TerminalNO
交易序列号
5
交易日期
8
交易时间
2
会员NO
13
JANCODE
商品名称
不定
消费点数
3
消费金额
会员价格
4
退货交易
1
折扣价
贴现价
按比例折扣价
按比例贴现价
按比例M&
M值
GPCODE
部门CODE
3设计工程
3.1外部设计(概要设计)
3.1.1数据库设计
数据库表结构的设计在每一个开发项目中都是非常重要的一个部分,数据库表设计的好坏直接关系到开发过程中代码实现的功能强大与否,是否包含齐备客户所需求的功能。
因此现在来介绍该模块所用到的数据库表的详细设计。
各数据表定义如表2所示
表2数据表定义
序号
表参数名
表名说明
FSPTB_MEMBER
记录会员基本信息
FSPTB_MEMBER_STATUS
记录会员状态信息
FSPTB_POINT
记录会员点数基本信息
FSPTB_POINT_JNL
记录会员点数更新履历
FSPTB_POINT_RIREKI
记录会员当日消费点数信息
表3FSPTB_MEMBER(会员)
主键
列(属性)名
中文名称
类型
宽度
是否允许为空
◎
MEMBER_CODE
会员编码
Char
NOTNULL
NYUKAI_YMD
入会年月日
NULL
SHIMEI_KANA_S
日语假名性
16
SHIMEI_KANA_N
日语假名名
SHIMEI_KANJI_S
中文姓
32
SHIMEI_KANJI_N
中文名
TEL_SHIGAI_1
电话1(市外)
TEL_SHINAI_1
电话1(市内)
TEL_BANGO_1
电话1(其它)
TEL_SHIGAI_2
电话2(市外)
TEL_SHINAI_2
电话2(市内)
TEL_BANGO_2
电话3(其它)
TEL_SHIGAI_3
电话3(市外)
TEL_SHINAI_3
电话3(市内)
TEL_BANGO_3
BIRTH_DAY
出生年月日
MEMBER_KBN
会员种类
FM_KBN
性别
MEMBER_ZIP
邮政编码
ADDR_1
地址1
ADDR_2
地址2
48
ADDR_3
地址3
ADDR_4
地址4
NYUKAI_TENPO
入会的店铺编码
MUKOU_KBN
起效种类
HOLD_CODE
家庭所属代码
ADD_YMDHMS
注册时间
14
ADD_TANTOU
注册负责人ID
UPD_YMDHMS
更新时间
UPD_TANTOU
更新负责人ID
表4FSPTB_MEMBER_STATUS(会员状态)
OLD_MEMBER_CODE
旧会员编码
DOMINANT_CODE
优先级别编码
TENPO_CODE
店铺号码
OLD_DOMINANT_CODE
旧优先级别编码
OLD_TENPO_CODE
旧店铺编码
UPD_KBN
更新种类
MSTS_AUTO_ID
记录番号
Numeric
15
表5FSPTB_POINT(积分)
YUTAI_RANK
优惠等级
NOW_POINT
现在积分点
9
RUIKEI_POINT
累计积分点
OUT_RUIKEI_POINT
支出的累计积分点
ADD_RUIKEI_POINT
增加的累计积分点
KIHON_RUIKEI_POINT
基本累计积分点
BONUS_RUIKEI_POINT
奖励累计积分点
KAIAGE_R
最后交易时间
TUKI_KAIAGE_M
每月交易金额
10
BEFORE_TUKI_KAIAGE_M
上月交易金额
KAIAGE_F
交易次数
KAIAGE_M
交易金额
MEMBER_WARIBIKI_M
打折累计金额
KOUNYU_M
购买金额
登陆时间
登陆负责人ID
SYSTEM_UPD_YMDHMS
系统更新时间
表6FSPTB_POINT_JNL(积分更新记录)
店舗CODE
会员CODE
CLIENT_NO
顾客NO
ADD_POINT_B
当日追加POINT(更新前)
OUT_POINT_B
当日支出POINT(更新前)
NOW_POINT_B
現在POINT(更新前)
BONUS_POINT_B
当日奖励POINT(更新前)
OUT_KAIAGE_M_B
当日減算金額(更新前)
ADD_KAIAGE_M_B
当日加算金額(更新前)
TUKI_KAIAGE_M_B
月购买金額(更新前)
ADD_POINT_A
当日追加POINT(更新后)
ADD_RIYU_CODE
追加理由CODE
OUT_POINT_A
当日支出POINT(更新后)
OUT_RIYU_CODE
支出理由CODE
NOW_POINT_A
現在POINT(更新后)
BONUS_POINT_A
当日奖励POINT(更新后)
OUT_KAIAGE_M_A
当日減算金額(更新后)
ADD_KAIAGE_M_A
当日加算金額(更新后)
TUKI_KAIAGE_M_A
月购买金額(更新后)
KURIKOSHI_POINT
转入POINT
TODAY_POINT
本日最終POINT
更新日期
担当者CODE
JNL_AUTO_ID
记录ID
表7FSPTB_POINT_RIREKI(积分当日消费记录)
YMD
日期
优待等级
KIHON_POINT
当日基本POINT
BONUS_POINT
当日奖励POINT
ADD_POINT
当日追加POINT
OUT_POINT
当日支出POINT
現在POINT
3.1.2数据流程图
图1积分失效处理流图
图2数据分析模块流图
图3注释图
3.2内部设计(详细设计)
3.2.1积分失效详细代码设计
1)程序初期设定。
如果出现错误,输出错误信息,程序结束。
2)输出开始日志记录。
(1)如果出现错误,程序结束。
(2)否则,取得系统前一年日期。
3)处理日期check。
(1)读入初始设定的会员信息数据文件。
1如果出现错误,输出错误信息,程序结束。
2否则,取得POINT实效日期。
(2)设定会员信息数据文件。
系统日期不是POINT实效处理日期的场合,输出信息,程序结束。
4)POINT实效处理。
1CSV文件读入。
(1)如果出现错误,输出错误信息,程序结束。
(2)取得文件名。
(3)打开CSV文件。
2POINT失效对象抽出
(1)
(1)从FSPTB_POINT中读取会员CODE。
条件:
最后购买日期在一年前&
&
现在POINT不为0。
失效区分有效。
(2)抽出失效区分有效数据。
3POINT失效对象抽出
(2)
(1)从FSPTB_POINT和FSPTB_MEMBER中读取会员CODE。
会员CODE匹配;
入会日期在一年以前;
失效区分有效;
买入次数为0;
(2)返回值不为空。
4各表的更新处理
(1)从FSPTB_POINT中取出匹配会员的数据。
条件:
会员编号是匹配会员编号。
(2)匹配会员的POINT信息更新。
参照“POINT信息项目移动表”。
(3)从FSPTB_MEMBER中取出匹配会员的数据。
会员编号是匹配会员编。
a)匹配用户数据的店铺CODE为NULL的场合。
输出信息,处理终止。
b)否则,取得店铺CODE。
(4)从FSPTB_POINT_RIREKI中取出匹配会员的POINT履历信息数据。
会员编号是匹配会员编号;
日期在系统日期之前。
a)如果出现错误,输出错误信息,程序结束。
(5)在FSPTB_POINT_JNL中追加数据。
a)匹配用户的POINT更新日志不存在。
参照“POINT更新日志新建项目移动表”。
b)匹配用户的POINT更新日志存在。
参照“POINT更新日志更新项目移动表”。
(6)FSPTB_POINT_RIREKI的追加更新。
a)通过(4)取得的POINT履历是EOF的情况,新追加POINT履历。
参照“POINT履历(追加)项目移动表”。
b)通过(4)取得的POINT履历不是EOF的情况,存储初始状态,并更新,参照“POINT履历(更新)项目移动表”。
(7)在FSPTB_POINT中检索匹配的用户数据。
用户CODE是匹配用户CODE;
(8)不是EOF的情况,程序结束。
(9)如果是EOF,在FSPTB_MEMBER追加新的数据。
参照“用户数据项目移动表”。
(10)CSV文件数据输出。
参照“CSV文件项目移动表”。
5)输出结束日志。
表8POINT信息项目移动表
移动表名称
移动操作地址名称
A
POINT信息项目移动表
B
C
D
编辑项目名称
原项目名称
移动方式
现在POINT
消费累计POINT
消费累计POINT+当前POINT
执行操作时系统时间
表9POINT更新日志新建项目移动表
POINT更新日志新建项目移动表
Y
FSPTB_MEMBER的店舗CODE的右3位数的值
1小于10的情况,该值加5个空格。
2小于100的情况,该值加4个空格。
3大于100的情况,该值加3个空格。
同项目
顾客NO
现在POINT(更新前)
当日获赠POINT(更新前)
当日减算金额(更新前)
当日加算金额(更新前)
月中购买金额(更新前)