供应链管理系统

  • 格式:doc
  • 大小:1.26 MB
  • 文档页数:33

下载文档原格式

  / 33
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
再利用hibernateTemplate的deleteAll方法删除list即可。
删除一个数据
service
把service层的crud的方法就可以封装在BaseService中
service
BaseService
BaseServiceImpl<T>
1、
public abstract BaseDao getBaseDao();这是一个抽象方法,谁继承,谁实现
com.itheima11.gyl.domain.xsgl
创建一个测试类,生成表
框架的搭建
dao
1、供应链的所有的模块都用到了查询
该查询是分页的
该查询还是按照条件
该查询是按照数据来查询的
2、删除的操作
1、有可能一次性删除很多行记录
2、有可能删除一行记录
3、根据id查询持久化对象
4、增加操作
5、修改操作
写一个通用的分页的处理
GylUtils.js
var GylUitls = {
//基本数据模块
basedata:{
//分页的处理
dispage:{
linkNextPage:function(){
/**
* this为当前的按钮
*/
var currentPage = $(this).attr("param");
}
得到了T的class形式
2、在init方法中
@PostConstruct
public void init(){//初始化方法
this.classMetadata = this.hibernateTemplate.getSessionFactory()
.getClassMetadata(this.classt);
例如:
public class BaseDao<T>{
}
BaseDao---->rawType
T--->actualTypeArguments
第一种传递参数的方式:
public class SubBaseDao<T> extends BaseDao<T>
public class DepartmentDao extends SubBaseDao<Department>
window.confirm的提示
2、绿色的表示对数据中的checkbox的控制
3、蓝色的表示对控制的checkbox的状态的控制
BaseAction
获取被选中的复选框的值,并且把值变成字符串的形式
DepartmentAction
删除
jquery-plugin-delete.js
BaseAction
或者
public class DepartmentDao<T>extends SubBaseDao<T>
DeparmentDao<Department> departmentDao = new DepartmentDao<Department>();
第二种传递的方式:
BaseDao<Department>baseDao= new BaseDao<Department>();
3、写js代码创建树
zNodes描述的是树上的节点
setting为整个树的特性
权限实现的详细步骤
权限的实现
1、准备持久化类和映射文件(Menuitem)
2、准备一个测试类MenuitemTest.java
3、把准备的数据存放在数据库表menuitem中
4、加载zTree:
1、准备js文件和样式文件
2、准备menuitem.jsp页面
PrivilegeInterceptor
struts
DepartmentAction
struts-department.xml
error.jsp
spring
业务
销售管理
销售预订单管理
需求
查询
当查询所有的主表和子表或者根据某一个条件进行查询的时候
主表的分页:
子表的分页:
当点击主表中的某一行的时候,出现相应的子表中的记录
项目开发
基础数据
department
创建
1、创建一个包
com.itheima11.gyl.basedata.action
2、创建一个DepartmentAction类
测试
准备
准备
准备

准备
list.jsp
显示
<s:iterator value="#departments.rows">
<tr align="center">
},
initEvent:function(){
}
}
};
填充事件
在initEvent方法中填充事件
设置权限的事件:
显示隐藏的div
给role_privilege .data中role赋值
动态的显示角色的名称
设置全选复选框的默认状态为不可选
加载权限树
角色配置
权限的控制
不同的用户访问不同的菜单
登录界面

struts2
action中的代码:
add.jsp
userAction:
修改
注意事项:
页面上的值的回显一般情况下是根据页面上的name属性,在后台的action中
必须把值放入到对象栈中。
注意事项
权限
概念
1、认证(authentication)
登录
用户名和密码的登录
2、授权
给用户权限
权限:
权限和资源是对应的
资源:
url
var url = $("body").data("url");
window.location.href = url+"?currentPage="+currentPage;
注意的事项:baseQuery.currentPage这种形式传递参数不行
}
}
//基本数据模块初始化事假
initEvent:function(){
配置文件
写RoleTest创建根节点
3、对于角色树:
1、创建角色树
2、右键菜单
3、增加角色、修改角色、删除角色
注意:
要创建角色树,必须访问role.jsp
所以必须转发才能访问到role.jsp,所以要建立ForwardAction
创建树
右键菜单

r
通过上述的代码添加右键事件
当鼠标移除
给添加角色、修改角色、删除角色添加事件
* spring(2.x和3.x)容器不支持带泛型的创建对象
*/
ParameterizedType type = (ParameterizedType)this.getClass().getGenericSuperclass();
//得到t的实现类型
this.classt = (Class)type.getActualTypeArguments()[0];
//初始化了分页的事件
}
}
};
动态的加载
删除
<input type="submit" value="删除">
或者是一个
<inputtype="button" value="删除">
jquery-plugin-delete.js
该插件描述了三个功能:
1、删除功能
如果没有选择checkbox,则提示选择
dao
查询的实现
PageResult
BaseQuery
BaseDao
BaseDaoImpl
1、在构造器中
public BaseDaoImpl(){
/**
* this代表子类
* this.getClass().getGenericSuperclass()就是父类:BaseDaoImpl<T>泛型
*如果不带T,this.getClass().getGenericSuperclass()返回的是class类型,而不是ParameterizedType
主表的分页的查询
子表的分页查询的功能
技术
因为页面上有两个分页,所以在BaseService层,泛型的参数应该有两个
因为在该类中没有办法实现
2、在spring的配置文件中,添加事务的注解解析器
3、其中的一个方法
action
把模型驱动进行封装
把得到session进行封装
把一些字符串封装
action
BaseAction<T>
泛型
概念
就是java语言中的一种类型
ParameterizedType就是泛型
ParameterizedType
3、准备menuitem的dao,service和action
4、准备struts2的配置文件
包的名称为:json-default
自定义的结果集:json
3、准备一个js文件
menuitem.js
角色
1、写持久化类和映射文件体现用户和角色之间的关系
2、创建一个角色树的根节点:CEO
创建根节点:
dao,service,action
<td><input type="checkbox" name="dids" value="${did}"/></td>
<td><s:property value="name"/></td>
<td><s:property value="description"/></td>
<td class="btn" align="center">
添加角色
思路:打开一个对话框,添加一个角色的名称,后台校验角色的名称是否可用(ajax来写)
ຫໍສະໝຸດ Baidu如果可用
1、发出ajax请求,在后台的数据库中添加相应的数据
2、在前台角色树中增加一个节点
如果不可用,提示
修改角色
删除角色
权限配置
需求:
当点击权限配置的时候
当点击设置权限的时候
点击上面的保存按钮
步骤
创建一个
role_privilege.jsp
与任何框架都没有关系
与web容器也没有关系
3、自己公司开发的权限框架
步骤
权限
菜单、功能、url这些元素,如果系统做完了,这些内容就确定了。
角色
相当于权限的集合,要以树的形式进行维护
给角色分配权限
给用户分配角色
控制访问权限
zTree
是jquery的一个树的插件
1、准备一个样式文件和两个js文件
2、在页面上准备树的容器
菜单控制
功能:页面上能够点击的元素
action中的方法控制注解的形式springAop struts2的拦截器
数据
权限框架
1、Spring Security
通过过滤器链的方式,内部通过aop的技术把这些过滤器联系在一起的
主要控制url
该权限必须建立在spring容器基础之上
该权限和web容器有关联
2、shiro
DepartmentAction
增加
list.jsp
DepartmentAction
add.jsp
修改
jquery-plugin-update.js
用户模块
持久化和映射文件
UserDao
UserDaoImpl
UserService
UserServiceImpl
UserQuery
增加
注意事项:
跳转到增加的页面:
struts-login.xml
struts-forward.xml
PrivilegeDaoImpl
不要把session放入到dao层,如果怎样,dao层和具体的容器就有关联了。
不用的用户点击超级链接或者按钮的权限的控制
LoginAction
@PrivilegeInfo
AnnotationParse
供应链
项目安排
搭建框架一天
基础数据模块和权限管理4天左右
应收应付和销售管理5天左右
涉及到的框架的知识点
dao的重用
service层的重用
js的继承机制的应用
jquery的插件开发
弹出div框
概念
一个供应链系统是一个公司通过供应商采购商品,把商品放入到仓库中,
该公司在销售该商品的时候,再把商品从仓库中提取出来,卖给客户的过程
}
得到了元数据的形式
3、getCount方法
方法的参数为BaseQuery,在该BaseQuery中有一个方法buildWhere,利用
该方法可以得到查询条件的map形式
拼接hql语句的where条件语句
动态的传入参数的值
4、findPageResult方法
同上
增加的实现
删除多个数据
根据ids--->字符串,利用hibernateTemplate的find方法得到一个list,


准备
role_privilege.js
框架结构
var role_privilege = {
data:{
role:{
rid:'',
name:''
}
zTreePlugin:''
},
opt:{
roleOpt:{}
divOpt:{},
roleTree:{}
},
init:{
initData:function(){
其中有三个订单:
采购订单
销售订单
调拨订单(公司内部仓库之间的商品的调拨)
关于供应链的大数据方面的内容
数据挖掘
ETL:数据抽取
BI:商业智能
dao
gyl
创建一个
添加
编辑
写持久化类和映射文件

该系统要创建的映射文件的包为:
com.itheima11.gyl.domain.basedata
com.itheima11.gyl.domain.privilege
<input type="button" value="修改"/>
<input type="button" value="删除"/>
</td>
</tr>
</s:iterator>
把分页的组件
说明:
1、每一个input元素中有一个param属性,根据该属性的值可以知道操作以后
要显示的页面是第几页
2、flag属性是用来标示哪个按钮