1 任务
1.背景
利用所学框架完成以下系统:
我公司需要对所有固定资产(包括电脑、桌椅、书籍等办公设备)分门别类进行登记管理。系统涉及角色包括:
系统管理员,固定资产管理员,办公室主任,普通员工,中层管理人员,高层管理人员。
2.功能
系统完成功能包括固定资产清单管理(可以按公司、部门、个人查看),
固定资产出借管理(可以按公司、部门、个人查看),
3.规则
固定资产净值管理(固定资产分5年分摊,每年递减最初的20%),
资产额度大于10000的出借需要办公室主任批准,其他出借只需资产管理员登记即可。普通员工借用数量不能大于5件,中层管理人员不能大于10件,高层管理人员无限制。
此处件数为累积数量
2 使用框架和环境
工具:
eclipse 3.2 + jdk 1.5 + Maven 2.0 + jetty-5.1 + Mysql 5.0
框架:
freemaker + webwork + spring + ibatis
3 数据库
1.数据库使用规范 V0.1 001
1. 数据库定义中所有标识符必须标识符以英文字母开头,由一个或多个英文单词构成,单词构成为名词或动宾结构,每个单词之间必须以"_"分隔(数字除外)。
如 field_name col_name1
2. 每一个数据库字段必须定义缺省值(Blob等大字段除外)。
如 product_name [VARCHAR] (100) NULL default ''
product_type [INTEGER] NULL default 0,
product_date [DATETIME] NULL default sysdate,
3. 所有数据表中必须有id字段,id字段长度为10个字符(用户帐号表除外),id字段是该表的主键,且需要对id字段作索引。id字段内容由数字字母串构成,区分大小写。
4. 所有数据表中必须有flag字段,flag字段为integer型,flag取值含义:0表示该记录未经审核,1表示已经审核通过,2表示该记录已经被锁定(审核未通过),3表示该记录当前还没有被激活,10表示该记录已经被删除。
5. 所有实体表(如用户表、产品表等表示具体事务属性的表)中必须包含以下字段(关联表可以不包含):
modifier_id [varchar] (50) NULL default '',
modify_date [datetime] NULL default sysdate,
creator_id [varchar] (50) NULL default '',
create_date [datetime] NULL default sysdate,
6. 所有实体表前必须加前缀tbl_,关联表前必须加前缀jnt_,索引加后缀_ndx,存储过程为sp_projectname_
CREATE INDEX fzpl.User_Corp__Corp_ID__ndx
ON fzpl.Jnt_User_Corp(Corp_ID)
TABLESPACE indx;
2.数据库设计
Mysql 区分大小写
全部小写
Create database goods;
1. 固定资产 tbl_goods
Create table tbl_goods(
Goods_id varchar (20) NOT NULL default '',
Goods_name varchar (100) NOT NULL default '',
Goods_value long ,
Goods_date
datetime,
Goods_number int default 1,
PRIMARY KEY (Goods_id
)
)
2.物品分类 jnt_goods_type
Create table jnt_goods_type(
Goods_type varchar (100) NOT NULL default '',
Goods_id varchar (20) NOT NULL default '',
)
3. 角色 tbl_role
Create table tbl_role(
role_id int //NOT NULL default 0,
role_name varchar (100) NOT NULL default '',
PRIMARY KEY (role_id
)
)
INSERT INTO tbl_role
(role_id
, role_name
) VALUES
(1,'系统管理员
'),
(2,’ 固定资产管理员
'),
(3,'办公室主任
'),
(4,'高层管理人员
'),
(5,'中层管理人员
'),
(6,'普通员工
')
;
4.用户 tbl_user
Create table tbl_
user(
User_id varchar (20) NOT NULL default '',
User_name varchar (20) NOT NULL default '',
PRIMARY KEY (`User_id`)
)
5.用户——角色 jnt_staff_manage
Create table jnt_
staff_manage(
User_id varchar (20) NOT NULL default '',
role_id int NOT NULL default 6,
User_company varchar (100) NOT NULL default '',
User_
department varchar (100) NOT NULL default '',
)
6.规则 tbl_rule
Create table tbl_
rule(
Rule_name varchar (50) NOT NULL default '',
Rule_value varchar (50) NOT NULL default ''
)
如:
固定资产净值管理(固定资产分5年分摊,每年递减最初的20%)
资产额度大于10000的出借需要办公室主任批准,其他出借只需资产管理员登记即可。
普通员工借用数量不能大于5件,中层管理人员不能大于10件,高层管理人员无限制。
7. 固定资产出借管理 jnt_goods_user
Create table jnt_goods_
user (
Goods_id varchar (20) NOT NULL default '',
User_id varchar (20) NOT NULL default '',
Lend_time
datetime,
Back_time
datetime,
Plan_time
datetime, //计划归还时间
Goods_number int default 1,
Back_number int , //default 0
Goods_status int //0:未归还 1:部分归还 2:全部归还
3
:等待办公室主任批准
)
*
此表作为记录
不能有删除动作!
7. 固定资产出借管理临时表 jnt_goods_user_wait
同jnt_goods_
user
,作为临时
记录使用
8.物品登记 jnt_goods_status (?)
Create table jnt_goods_status(
Goods_id varchar (20) NOT NULL default '',
Goods_status char NOT NULL default '0'
// Goods_status
//0 :没有借出
//1 :已全部借出
//2 :部分借出
)
9.固定资产所属(公司、部门、个人) jnt_goods_belong
Create table jnt_goods_belong(
Goods_id varchar (20) NOT NULL default '',
User_id varchar (20),
User_company varchar (100),
User_
department varchar (100),
)
//固定资产属于(公司、部门、个人),以最小单位记,
//如 个人优于部门,部门优于公司
10.部门tbl_department
Create table tbl_department(
//------联合主键
Department_name varchar (100) not null default ‘’,
Department_company varchar (100) not null default ‘’,
//other message
)
11.公司tbl_company
Create table tbl_company(
//------主键
Company_name varchar (100) not null default ‘’,
//other message
)
4 业务逻辑
1.资产登记:
所有固定资产(包括电脑、桌椅、书籍等办公设备)分门别类进行登记管理
逻辑
|
目标
|
优先级
|
查看
|
详细信息
|
1
|
增加
|
信息
|
2
|
修改
|
|
2
|
删除
|
信息
|
3
|
2.固定资产出借管理:
固定资产出借管理(可以按公司、部门、个人查看),
逻辑
|
目标
|
优先级
|
租借信息查看
|
详细信息
|
1
|
借
|
信息
|
2
|
归还
|
数量
|
2
|
规则限制的租借处理
|
|
3
|
5 设计(以主要业务逻辑为例)
1.资产登记
以GoodsService为主线
|