问题描述:进口部要完成一票进口报关单的增删改查,操作员张三登录只能增删改张三的报关单,操作员李四登录只能增删改李四的报关单,
部门主管王五登录能查看张三和李四的报关单,但不能修改删除。操作员能提交报关单至领导审批,部门主管能审批报关单。
已知条件:报关单主体信息(dec_main):进口日期(ie_date),合同协议号(contr_no),报关单号(entry_id),申报单位(agent_name),业务编号(client_no),收货人(trade_name),
收货人手机号(phone) ,邮箱(email);报关单表体商品信息(dec_list):商品编码(goods_code),商品中文名(goods_name),商品申报要素(goods_comment),数量(qty),
外键(fid)。其中主体和表体是一对多关系。
附加要求:业务状态包含待提交,待审核,已审核,审核不通过,默认待提交;收货人手机号是手机校验必填,邮箱是邮箱校验不必填,商品的数量是数量校验不必填;
部门主管无需看到收货人手机号与邮箱信息。
解决方案:1.启动项目并用admin登录。
2.在系统管理---->数据字典里,添加新的数据字典业务状态decstate,在查看类型里分别添加4个子类型待提交(1),待审核(2),已审核(3),审核不通过(4)如下图。
3.在在线开发------>online表单里创建表单,表名为dec_main,表类型为主表,增加数据库字段(默认的10个字段不需要修改),同时流程状态默认值赋1 ,在页面属性里,进口日期
的控件类型选择日期格式,在校验字典里,所属部门的字典Table填写t_s_depart,字典Code填写id,字典Text填写departname,流程状态的字典code输入decstate,同时手机
号码的验证规则为手机号码校验必填选中,邮箱的验证规则为电子邮件。提交表单确定并同步数据库。
4.在在线开发------>online表单里创建表单,表名为dec_list,表类型为附表,增加数据库字段,在外键里,增加外键字段的主表名(dec_main),主表字段(id)属性,提交表单确定并同步数据库。
5.在在线开发里,选中表名为dec_main的记录,然后选则按钮代码生成生成代码拷贝到项目里。
6.代码调整
6.1 新增提交审核功能
<t:dgToolBar title="提交审核" icon="icon-redo" url="decMainController.do?submitcheck" funname="submitcheck"></t:dgToolBar>
其他title为名字,icon为图标样式,可查看链接地址https://www.cnblogs.com/xujiating/p/12023617.html,url为后台的路径,funname为前端js方法。
前端js方法代码如下
function submitcheck(title,url,gname) { gridname=gname; var ids = []; var rows = $("#"+gname).datagrid('getSelections'); if (rows.length > 0) { $.dialog.setting.zIndex = getzIndex(true); $.dialog.confirm($.i18n.prop('是否提交审核'), function(r) { if (r) { for ( var i = 0; i < rows.length; i++) { ids.push(rows[i].id); } $.ajax({ url : url, type : 'post', data : { ids : ids.join(',') }, cache : false, success : function(data) { var d = $.parseJSON(data); if (d.success) { var msg = d.msg; tip(msg); reloadTable(); $("#"+gname).datagrid('unselectAll'); ids=''; } } }); } }); } else { tip($.i18n.prop('请选择需要审核的数据')); } }
后台submitcheck方法代码如下
@RequestMapping(params = "submitcheck") @ResponseBody public AjaxJson submitcheck(String ids,HttpServletRequest request){ AjaxJson j = new AjaxJson(); String message = "报关单提交审核成功"; try{ for(String id:ids.split(",")){ DecMainEntity decMain = systemService.getEntity(DecMainEntity.class, id ); decMain.setBpmStatus("1"); systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO); } }catch(Exception e){ e.printStackTrace(); message = "报关单提交审核失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; }
6.2新增审核功能同上
6.3界面权限设置:
在webpage--->com-jeecg-decmain的decMainList界面里,将收货人手机号和邮箱嵌在t:hasPermission标签下,代码如下:
<t:hasPermission code="phone_email"> <t:dgCol title="收货人手机号" field="phone" queryMode="single" width="120"></t:dgCol> <t:dgCol title="邮箱" field="email" queryMode="single" width="120"></t:dgCol> </t:hasPermission>
同时将删除,录入,编辑,查看,提交审核,审核加个operationCode属性,代码如下
<t:dgToolBar title="录入" icon="icon-add" url="decMainController.do?goAdd" operationCode="add" funname="add" width="100%" height="100%">
</t:dgToolBar>
在webpage--->com-jeecg-decmain的decMain-update界面里,将收货人手机号和邮箱嵌在t:hasPermission标签下,代码如下
<t:hasPermission code="phone_email"> <tr> <td align="right"> <label class="Validform_label">收货人手机号:</label> </td> <td class="value"> <input id="phone" name="phone" type="text" maxlength="32" style="width: 150px" class="inputxt" datatype="m" ignore="checked" value='${decMainPage.phone}'/> <span class="Validform_checktip"></span> <label class="Validform_label" style="display: none;">收货人手机号</label> </td> <td align="right"> <label class="Validform_label">邮箱:</label> </td> <td class="value"> <input id="email" name="email" type="text" maxlength="32" style="width: 150px" class="inputxt" datatype="e" ignore="ignore" value='${decMainPage.email}'/> <span class="Validform_checktip"></span> <label class="Validform_label" style="display: none;">邮箱</label> </td> </tr> </t:hasPermission>
6.在系统管理----菜单管理里新增菜单进口业务,在进口业务里新增子菜单业务查询,配置菜单地址decMainController.do?list,同时新增页面控件权限录入(add),编辑(update),删除(delete),
查看(detail),提交审核(submitcheck),审核(check);在里面新增权限菜单,路径为decMainController.do?datagrid,同时新增数据权限只能看到自己的createBy等于#{sys_user_code},
能看到本部门及以下的sysOrgCode模糊#{sys_org_code};新增业务查询查看权限菜单,路径为decMainController.do?goUpdate,同时新增页面控件名称看到手机号和邮箱(phone_email);
详细对应规则https://www.cnblogs.com/xujiating/p/11981875.html
7.在系统管理----->角色管理里新增两个角色,进口操作员和进口管理员,其中,进口操作员分配进口业务---业务查询的录入,编辑,删除,提交审核功能,进口业务----业务查询权限的只能
看到自己的功能;进口管理员分配进口业务---业务查询的查看功能,进口业务----业务查询权限的登录人看到下级的功能。
8.在系统管理---->组织机构管理里,新增进口部,同时在系统管理---->用户管理里,新增用户张三,李四,王五,张三,李四的角色是进口操作员,王五的角色是进口管理员,部门同属进口部。
博主微信xjt199561,欢迎技术交流!