博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
阅读SSH的ERP项目【第二篇】
阅读量:6710 次
发布时间:2019-06-25

本文共 4603 字,大约阅读时间需要 15 分钟。


tags: SSH整合与阅读项目


权限控制菜单树

每个菜单树需要的权限可能是不一样的,要想用权限系统去管理菜单树,就要把菜单树写成是动态的。

菜单模型设计如下:

  • 菜单名称,菜单编号,所属父级菜单对象,菜单对应访问路径

在查询的时候用到了自关联


商品联动

在页面加载的时候,查询出**所有供应商的数据、查询第一个供应商商品的类别以及第一个商品类别对应的所有信息集合。**那么在页面上我们就可以将其展示出来了。

随后如果发生了改变的话,那么还是使用ajax来进行联动。

在添加新项的时候,对应的联动还是需要保持的,因此需要在外面套一层ajax来获取具体的数据!

//吐槽一下,这代码看得我贼鸡儿恶心,逻辑是这样子的:	//首先在新增的时候我们要新增出新行的页面。	//同时下拉框的数据需要与数据库后台进行联动	//并且只能动态添加不同名称的商品,类别下所有商品已经存在了,那么就不能选择该类别了。	//还要对其不能随便修改,否则相同类型相同名称的商品又存在了。	// HTML+Jquery的拼接看得十分蛋疼....复制代码
//添加新商品        $("#add").click(function () {            //设置不能修改供应商            $("#supplier").attr("disabled", "disabled");            //设置已存在的所有select全部不可点击            $(".goodsType").attr("disabled", "disabled");            $(".goods").attr("disabled", "disabled");            //发送ajax提交,将供应商id与当前已经使用的类别对应商品2个id传递到后台,并将其过滤,过滤完毕的数据传递回页面            var goodsTypeObjs = $(".goodsType");            var goodsObjs = $(".goods");            var jsonParam = {
"gm.goodsType.supplier.uuid": $("#supplier").val()}; var hasUuids = ""; for (i = 0; i < goodsTypeObjs.length; i++) { hasUuids = hasUuids + $(goodsTypeObjs[i]).val(); hasUuids = hasUuids + ":"; hasUuids = hasUuids + $(goodsObjs[i]).val(); if (i != goodsTypeObjs.length - 1) { hasUuids = hasUuids + ","; } } jsonParam["hasUuids"] = hasUuids; //动态添加一个tr行 //创建tr组件 var $tr = $(""); //创建td组件,生成商品类别select var typeSelectStr = ""; var $td1 = $("" + typeSelectStr + ""); $tr.append($td1); //创建td组件,生成商品select var goodsSelectStr = ""; var $td2 = $("" + goodsSelectStr + ""); $tr.append($td2); //创建td组件,生成商品数量input,默认值1 var $td3 = $(" "); $tr.append($td3); var $td4 = $(" 元"); $tr.append($td4); var $td5 = $("" + 222 + " 元"); $tr.append($td5); var $td6 = $("   删除"); $tr.append($td6); //在最后一个tr对象前添加该tr组件 $("#finalTr").before($tr); //注意:新添加的元素是否具有动态事件激活能力 //获取后台数据是否还有下一个可用的商品,判断添加按钮是否显示 if ("Y" == "N") { //将添加按钮设置为不可显示 $("#add").css("display", "none"); } total(); });复制代码

可以使用两种方式来进行控制数据:

SQL控制:

//获取商品类别信息,类别必须有商品,企业ID=1,过滤掉1,2商品select distinct	gt.*from	tbl_goodsType gt,	tbl_goods gwhere	gt.supplierUuid = 1and	g.goodsTypeUuid = gt.uuidand	g.uuid not in (1,2,3,4,5)//过滤使用过的商品,2号类别,过滤掉1,2,3,4商品select	*from 	tbl_goodswhere	goodsTypeUuid = 2and	uuid  not in (1,2,3,4)复制代码

程序控制:

//已经使用过的,需要过滤的商品uuid	public String used;			//'11','22','33','44',	//ajax根据供应商的uuid获取类别和商品信息(具有数据过滤功能)	public String ajaxGetGtmAndGm2(){		gtmList = goodsTypeEbi.getAllUnionBySm(supplierUuid);				//由于类别数据中第一个类别的所有商品已经使用完毕,而没有将其删除,导致该商品类别对应的商品集合在下面的迭代过程中没有商品,抛出索引越界异常		//解决方案:删除掉对应的商品类别即可		//过滤掉所有商品已经使用完毕的商品类别		Goods:		for(int i = gtmList.size()-1 ;i>=0;i--){			List
gmListTemp = goodsEbi.getAllByGtm(gtmList.get(i).getUuid()); for(GoodsModel gmTemp : gmListTemp){ if(!used.contains("'"+gmTemp.getUuid()+"'")){ //保留该类别,直接判断下一个类别 continue Goods; } } //循环执行完毕,执行到的此处,上述循环没有进入if语句,里面的商品都使用过 gtmList.remove(i); } //上述集合中的类别一定都存在没有使用过的商品 gmList = goodsEbi.getAllByGtm(gtmList.get(0).getUuid()); //当前获取的商品信息的uuid具有重复的,要对其进行过滤 //对集合进行迭代删除,怎么做?必须逆向进行 //从gmList中取出所有的元素,挨个迭代,与本次传递过来的used进行比对,比对完发现重复的,删除掉(逆序进行) for(int i = gmList.size()-1 ;i >=0 ;i--){ Long uuid = gmList.get(i).getUuid(); //判断该uuid是否出现在used中 if(used.contains("'"+uuid+"'")){ gmList.remove(i); } } gm = gmList.get(0); return "ajaxGetGtmAndGm"; } //ajax根据商品类别uuid获取商品信息 public String ajaxGetGm(){ gmList = goodsEbi.getAllByGtm(gtmUuid); //过滤数据 for(int i = gmList.size()-1 ;i >=0 ;i--){ Long uuid = gmList.get(i).getUuid(); //判断该uuid是否出现在used中 if(used.contains("'"+uuid+"'")){ gmList.remove(i); } } gm = gmList.get(0); return "ajaxGetGm"; }复制代码

Juqery未来对象

如果在生成的代码不是当前对象的,那么绑定的事件就无法被激活了。因此需要使用live去激活未来对象

订单设计

我们的订单可能分很多种:采购订单、销售订单、采购退货单、销售退货单

一般地,我们都不会将它们四种都用字段来表示出来,仅仅使用订订单状态字段进行了区分

如果您觉得这篇文章帮助到了您,可以给作者一点鼓励

转载地址:http://eoalo.baihongyu.com/

你可能感兴趣的文章
测试之道--阿里巴巴八年测试专家倾情奉献
查看>>
大数据助推新型智库建设
查看>>
新加坡欲重组通信和媒体管制机构
查看>>
微信公众号最新数据解读,三分之一停更成僵尸号
查看>>
软件自动化测试成功公式
查看>>
少走弯路,中小企业OA选型攻略
查看>>
万能的小苏打,知道的人太少了,赶紧收藏
查看>>
从MWC 2017看懂英特尔5G朋友圈
查看>>
Facebook 的移动端 A/B 测试框架
查看>>
《交互式程序设计 第2版》一2.3.4 运算符
查看>>
CYQ.Data V5 分布式缓存Redis应用开发及实现算法原理介绍
查看>>
论模式在领域驱动设计中的重要性
查看>>
一个创业公司的API网关落地实践
查看>>
国内需求疲弱 铅酸蓄电池新消费税将铅价承压
查看>>
Qt之网络编程
查看>>
《Adobe Acrobat X中文版经典教程》—第2章2.1节打开PDF文件
查看>>
FSF 活动人士呼吁就 DRM 致电 WWW 之父
查看>>
《UNIX环境高级编程(第3版)》——2.8 基本系统数据类型
查看>>
mysql导入报错MySQL server has gone away解决
查看>>
《CCNP ROUTE 300-101学习指南》——2.2节构建EIGRP拓扑表
查看>>