主要功能:完成人员部门管理,产品管理,供应商管理,产品类型管理,产品出入库订单的生成和采购报表生成
主要使用的框架和插件
框架使用主要使用了Spring+Spring MVC+SpringDateJpa框架
前端使用的是easyui框架
权限过滤器使用的是shiro框架
数据库查询加入了jpa-spec插件(分页加排序查询更方便)
在添加数据框中使用了easyui中的validatebox 插件来验证一个表单
使用了velocity模板生成技术 在ider中使用了EasyCode插件完成模板生成
权限使用了shiro框架,用户密码加密使用的是MD5加密方式
导入导出Excel模块使用了EasyPOI框架
采购订单图形报表处理使用的是HighChart框架
项目结构
共分四个大模块
一:组织机构模块
1员工管理 2部门管理
二:系统管理模块
1角色权限管理 2菜单管理 3权限管理 4导入管理
三:基础数据
1数据字典类型 2数据字典明细 3产品类型 4产品管理 5供应商管理
四:采购模块
1 采购管理 2采购报表
采购报表业务:
1需求部门提出申请,填入相应的需求提交申请单
2采购人员根据需求寻找供应商,价格,存入咨询表中
3管理人员查看咨询单进行选择评比确认需求
4管理人员填写采购订单,经理审核采购订单
5通过审核订单后下采购订单
6财务付款单
7准备采购入库单
采购管理:
设计了1交易时间 2交易总金额3交易总数量4供应商5录入人6采购员7单据状态共7个字段 可以供管理人员查看当前所有采购订单的详细情况
采购报表:
对所有采购订单作数据统计,采供报表中可以根据年,月,日,三种状态码(已审,待审,作废),供应商,采购员,月份进行不同需求的查询,查询结果显示有分类总数量,总金额,产品类型,交易时间,单价,个数,状态就行表格展示,也可以选择3D圆饼图进行展示
项目中遇到的问题解决
数据丢失问题:
员工类修改的时候,设计密码框被隐藏,不能修改,在将修改的值传递回后台的时候,会没有密码的值,导致密码数据丢失,解决办法三个:
(1)隐藏要传递的值,缺点是如果字段过多,代码量会比较大
(2)在丢失字段加上注解@Column(updatable = false)
(3)先查询数据库,获取持久状态的对象,然后把页面的数据set到对象里面
修改值得时候出现n-to-n错误:
解决办法:
在controller层将关联对象设置为空
shiro怎么解决ajax请求的问题?
写一个类继承PermissionsAuthorizationFilter重写AuthorizationFilter中的此方法,将响应头设置为springmvc中json响应头样式
查询的日期格式问题问题:
解决办法:加入注解
时间字段get方法加入@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”,timezone = “GMT+8”)
Set方法上@DateTimeFormat(pattern = “yyyy-MM-dd”)
前端传回日期和后台处理日期数据对应不上问题
解决方法:
1.直接计算:
if(endDate != null) {
Date date = new Date(endDate.getTime() + 24 * 60 * 60 * 1000);
System.out.println(“date:” + date.toLocaleString());
}
2.JDK实现
if(endDate != null) {
System.out.println(“endDate:”+this.endDate.toLocaleString());
Calendar calendar = Calendar.getInstance();
calendar.setTime(endDate);
calendar.add(Calendar.DAY_OF_MONTH, 1);
System.out.println(“endDate:”+calendar.getTime().toLocaleString());
}
3使用org.apache.commons.lang.time.DateUtils
if(endDate != null) {
Date date = DateUtils.addDays(endDate, 1);
}