搭建环境 sssdj(springmvc+spring+springdatajpa)
在spring+jpa环境上面引入
<jpa:repositories base-package="cn.itsource.aisell.repository"
transaction-manager-ref="transactionManager"
entity-manager-factory-ref="entityManagerFactory"
factory-class="cn.itsource.aisell.repository.impl.BaseRepositoryFactoryBean">
jpa:repositories>
<mvc:default-servlet-handler />
<context:component-scan base-package="cn.itsource.aisell.web.controller" />
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json; charset=UTF-8value>
<value>application/x-www-form-urlencoded; charset=UTF-8value>
list>
property>
<property name="objectMapper">
<bean class="cn.itsource.aisell.common.CustomMapper">bean>
property>
bean>
mvc:message-converters>
mvc:annotation-driven>
详情见https://blog.csdn.net/Java_pipixia/article/details/98363507
add:function(){
//清空表单
purchasebillForm.form('clear');
//清空表格
$("#gridItem").datagrid("loadData",[]);
//新增 --弹出一个对话框--装一个表单
purchasebillDialog.dialog('center').dialog('open');
}
edit:function(){
//选择一条数据进行修改
var row = purchasebillGrid.datagrid('getSelected');
if(row){
//弹出对话框
purchasebillDialog.dialog('center').dialog('open');
//供货商
if (row.supplier){
row["supplier.id"] = row.supplier.id;
}
//采购员
if (row.buyer){
row["buyer.id"] = row.buyer.id;
}
//明细表格回显
//加载相应的数据(要看product的名称是否可以对应上)
for (var i = 0; i < row.items.length; i++) {
var item = row.items[i];
item["productId"] = item.product;
}
var items = $.extend([], row.items);
$("#gridItem").datagrid("loadData", items);
//修改 -- 回显示数据
purchasebillForm.form('load',row);
}else{
//提示用户
$.messager.alert('温馨提示:','请选中一条数据进行修改','info');
return;
}
}
save:function(){
var url = "/purchasebill/save";
//获取隐藏域里面id值
var id = $("#purchasebillId").val();
if(id){
url = "/purchasebill/update?cmd=update"
}
//保存方法 --提交表单的数据到后台
purchasebillForm.form('submit', {
url:url,
onSubmit: function(param){
//提交 封装items
//得到明细表格里面的数据
var rows = $("#gridItem").datagrid("getRows");
for (var i = 0; i < rows.length; i++) {
var rowData = rows[i];
param["items["+i+"].descs"] = rowData.descs;
param["items["+i+"].price"] = rowData.price;
param["items["+i+"].num"] = rowData.num;
param["items["+i+"].product.id"] = rowData.productId.id;
}
// 提交之前的验证
return purchasebillForm.form('validate');
},
success:function(data){
//字符串 转换成json对象
var dataJson = $.parseJSON(data);
if(dataJson.success){
$.messager.alert('温馨提示:','操作成功','info');
//重新加载数据
purchasebillGrid.datagrid('reload');
//关闭对话框
purchasebillDialog.dialog('close');
}else{
$.messager.alert('温馨提示:','保存失败'+dataJson.msg,'error');
purchasebillDialog.dialog('close');
}
}
});
}
del:function(){
//判断表格里面是否选中得数据
var row = purchasebillGrid.datagrid('getSelected');
if(row){
//是否确认要删除数据
$.messager.confirm('温馨提示','你确定要删除吗?',function(value){
if(value){
//获取id值
//发送ajax到后台进行删除数据
$.get('/purchasebill/delete',{"id":row.id},function(data){
//返回json对象
if(data.success){
$.messager.alert('温馨提示:','删除成功','info');
//重新加载数据
purchasebillGrid.datagrid('reload');
}else{
$.messager.alert('温馨提示:','删除失败'+data.msg,'error');
}
});
}
})
}else{
//提示用户
$.messager.alert('温馨提示:','请选中一条数据进行删除','info');
return;
}
}
search:function(){
//怎么完成高级查询 jquery.jdirk.js 这个方法 这是jquery扩展方法
//该方法返回一个 JSON Object,返回对象中的每个数据都表示一个表单控件值。
var param = searchForm.serializeObject();
//发送查询数据库 --加载表格 发送请求 /purchasebill/page
purchasebillGrid.datagrid('load',param);
}
数据丢失 --ModelAttribute
n-to-n问题 --把关联对象设置为null
他是apache下面开源的安全方面的框架,可以完成身份认证和授权 以及会话管理和密码学
shiro.ini 配置 账号 密码 权限 —测试类去测试身份的认证和权限
详情见https://blog.csdn.net/Java_pipixia/article/details/98648890
登陆和角色:
登陆流程实现:–就是认证流程
详情见https://blog.csdn.net/Java_pipixia/article/details/98848707
权限处理
查询数据库权限放入shiro里面
map.put(url, “perm[sn]”)
访问需要权限的资源的时候,就会判断当前用户是否具备该权限(先数据库查询用户的所有权限)
详情见https://blog.csdn.net/Java_pipixia/article/details/98965788
导入导出
用easypoi去完成导入导出
导出:
ExcelExportUtil.exportExcel
导入:
ExcelImportUtil.importExcel
验证的处理
加入相应的验证包
验证NOTNULL MAX MIN
如果还不行可以自定义验证
详情见https://blog.csdn.net/Java_pipixia/article/details/99195684
产品模型
数据字典:一些数据库的初始化的数据
数据字典设计:只需要两个表
数据字典明细表
系统设计:写一个jpql就可以查询数据
@Query("select d from Systemdictionarydetail d join d.types t where t.sn=?1")
List<Systemdictionarydetail> findDetailsBySn(String sn);
产品的增删改查
图片上传 form表单 enctype属性
图片变大图 tooltip扩展组件
颜色选择 type=‘color’
上下级 easy组件
采购单 purchasebill
采购明细单 purchasebillitem
配置
domain的设计(设计双向)— 这是属于订单 在系统里面 凡是涉及到单据 都是使用组合关系来设计 使用强级联 CascadeType.ALL,配置孤儿删除 ,一方放弃管理 多方来维护
详情见https://blog.csdn.net/Java_pipixia/article/details/99607040
报表 reports charts
报表 :数据表格报表 – 组件 data-grid - groupview 分组视图表格
详情见https://blog.csdn.net/Java_pipixia/article/details/99650813
业务:
基础模块 (产品 员工 部门 数据字典)
权限模块(用户 角色 权限 资源)
核心业务:
采购单
销售单 (采购员修改成销售员 把供应商修改客户)
库存(入库 出库)
盘点单
预警 :qz框架
详情见https://blog.csdn.net/Java_pipixia/article/details/99686968