From 08d3490a5f92cf64d1c41dae95d4ce5ee75eb191 Mon Sep 17 00:00:00 2001 From: qiankunpingtai Date: Thu, 14 Mar 2019 11:09:38 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- erp_web/js/easyui-1.3.5/themes/icon.css | 3 + erp_web/js/easyui-1.3.5/themes/icons/user.png | Bin 0 -> 741 bytes erp_web/pages/manage/depot.html | 29 +++++- erp_web/pages/manage/user_forselect.html | 54 ++++++++++ sql/华夏ERP数据库设计汇总.xlsx | Bin 83374 -> 83404 bytes .../jsh/erp/controller/UserController.java | 16 +++ .../erp/datasource/mappers/UserMapperEx.java | 5 + .../jsh/erp/datasource/vo/NodeAttributes.java | 30 ++++++ .../com/jsh/erp/datasource/vo/TreeNodeEx.java | 96 ++++++++++++++++++ .../com/jsh/erp/service/user/UserService.java | 5 + .../resources/mapper_xml/UserMapperEx.xml | 52 ++++++++++ 11 files changed, 286 insertions(+), 4 deletions(-) create mode 100644 erp_web/js/easyui-1.3.5/themes/icons/user.png create mode 100644 erp_web/pages/manage/user_forselect.html create mode 100644 src/main/java/com/jsh/erp/datasource/vo/NodeAttributes.java create mode 100644 src/main/java/com/jsh/erp/datasource/vo/TreeNodeEx.java diff --git a/erp_web/js/easyui-1.3.5/themes/icon.css b/erp_web/js/easyui-1.3.5/themes/icon.css index fbe4ffe8..59e59fee 100644 --- a/erp_web/js/easyui-1.3.5/themes/icon.css +++ b/erp_web/js/easyui-1.3.5/themes/icon.css @@ -99,4 +99,7 @@ } .icon-basket_add{ background:url('icons/basket_add.png') no-repeat center center; +} +.icon-user{ + background:url('icons/user.png') no-repeat center center; } \ No newline at end of file diff --git a/erp_web/js/easyui-1.3.5/themes/icons/user.png b/erp_web/js/easyui-1.3.5/themes/icons/user.png new file mode 100644 index 0000000000000000000000000000000000000000..79f35ccbdad44489dbf07d1bf688c411aa3b612c GIT binary patch literal 741 zcmVz1iyEv%?$mbQ(# zwJpuiQJP8?X_`#S8b+U_G6=ziYB!xPAcq{)ZJ0bECH@ zYx#`n8^Wzn^J!4>=q^bltNO15ry?0ecSLkjpT@vlid!jk)Fjf7&)q_V5zGs#3N%6* zbW~7Hg=&P0&~Y(|g>$hC9FL?;ttzPDZbpZu9OLb33^e2;FNTGJxScp1&q4M+y2ntQ z?C(=hpU$3~`Thx0eHwi0x`q+!d5k@|0_WHe%sG3e-s^MM`xM-ig!VcIA7H}X1ot~L zg=MLB4w-Q;Bi!!u2|I+Qb;0{{4Q53YX6+4_aXena{nmt*!YG7ua~`qc>o=?@U?rOU znS7%>klzi*muXnbM6i@4FR@s^8vTjDgy&%J?w?`u>NYMDFa_2%0SQ(qJE<3=<8Bzo zfdU60e*y(^$RF%r$kl)p7=7tlCDa$+J7w>}DU(O#~fk>pYuRvHi1E9^msg{tLeV XM&GIRvfA7%00000NkvXXu0mjf&%8>| literal 0 HcmV?d00001 diff --git a/erp_web/pages/manage/depot.html b/erp_web/pages/manage/depot.html index 2dc19289..baebe71b 100644 --- a/erp_web/pages/manage/depot.html +++ b/erp_web/pages/manage/depot.html @@ -80,8 +80,11 @@ 负责人 + style="width: 175px;height: 20px" readonly="readonly"/> + + + @@ -104,6 +107,9 @@ 取消 +
+
\ No newline at end of file diff --git a/erp_web/pages/manage/user_forselect.html b/erp_web/pages/manage/user_forselect.html new file mode 100644 index 00000000..3e17f540 --- /dev/null +++ b/erp_web/pages/manage/user_forselect.html @@ -0,0 +1,54 @@ + + + + 机构选择 + + + + + + + + + + + + + + +
+
    +
    + + + + \ No newline at end of file diff --git a/sql/华夏ERP数据库设计汇总.xlsx b/sql/华夏ERP数据库设计汇总.xlsx index ff0ead0cb66afcfbd419ce887d990158ae5c2c8c..c6aa38c370381eaccdd06c57b9a19ee8e94d323f 100644 GIT binary patch delta 27621 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 delta 27617 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 diff --git a/src/main/java/com/jsh/erp/controller/UserController.java b/src/main/java/com/jsh/erp/controller/UserController.java index 390552fc..a79e3f86 100644 --- a/src/main/java/com/jsh/erp/controller/UserController.java +++ b/src/main/java/com/jsh/erp/controller/UserController.java @@ -1,6 +1,7 @@ package com.jsh.erp.controller; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -10,6 +11,8 @@ import com.jsh.erp.datasource.entities.DepotEx; import com.jsh.erp.datasource.entities.SerialNumberEx; import com.jsh.erp.datasource.entities.User; import com.jsh.erp.datasource.entities.UserEx; +import com.jsh.erp.datasource.vo.TreeNode; +import com.jsh.erp.datasource.vo.TreeNodeEx; import com.jsh.erp.service.user.UserService; import com.jsh.erp.utils.*; import org.slf4j.Logger; @@ -311,5 +314,18 @@ public class UserController { userService.batDeleteUser(ids); return result; } + @RequestMapping("/getOrganizationUserTree") + public JSONArray getOrganizationUserTree()throws Exception{ + JSONArray arr=new JSONArray(); + List organizationUserTree= userService.getOrganizationUserTree(); + if(organizationUserTree!=null&&organizationUserTree.size()>0){ + for(TreeNodeEx node:organizationUserTree){ + String str=JSON.toJSONString(node); + JSONObject obj=JSON.parseObject(str); + arr.add(obj) ; + } + } + return arr; + } } diff --git a/src/main/java/com/jsh/erp/datasource/mappers/UserMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/UserMapperEx.java index 30ad71ee..a589d240 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/UserMapperEx.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/UserMapperEx.java @@ -3,6 +3,8 @@ package com.jsh.erp.datasource.mappers; import com.jsh.erp.datasource.entities.User; import com.jsh.erp.datasource.entities.UserEx; import com.jsh.erp.datasource.entities.UserExample; +import com.jsh.erp.datasource.vo.TreeNode; +import com.jsh.erp.datasource.vo.TreeNodeEx; import org.apache.ibatis.annotations.Param; import java.util.Date; @@ -31,4 +33,7 @@ public interface UserMapperEx { @Param("loginame") String loginame); int batDeleteOrUpdateUser(@Param("ids") String ids[], @Param("status") byte status); + + List getNodeTree(); + List getNextNodeTree(Map parameterMap); } \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/datasource/vo/NodeAttributes.java b/src/main/java/com/jsh/erp/datasource/vo/NodeAttributes.java new file mode 100644 index 00000000..6b3d4a94 --- /dev/null +++ b/src/main/java/com/jsh/erp/datasource/vo/NodeAttributes.java @@ -0,0 +1,30 @@ +package com.jsh.erp.datasource.vo; + +/** + * Description + * + * @Author: qiankunpingtai + * @Date: 2019/3/13 18:11 + */ +public class NodeAttributes { + //编号 + private String no; + //类型 + private Integer type; + + public String getNo() { + return no; + } + + public void setNo(String no) { + this.no = no; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } +} diff --git a/src/main/java/com/jsh/erp/datasource/vo/TreeNodeEx.java b/src/main/java/com/jsh/erp/datasource/vo/TreeNodeEx.java new file mode 100644 index 00000000..8c938a53 --- /dev/null +++ b/src/main/java/com/jsh/erp/datasource/vo/TreeNodeEx.java @@ -0,0 +1,96 @@ +package com.jsh.erp.datasource.vo; + +import java.util.List; + +/** + * Description + * + * @Author: qiankunpingtai + * @Date: 2019/3/13 18:10 + */ +public class TreeNodeEx { + /** + * id主键 + * */ + private Long id; + /** + * text显示的文本 + * */ + private String text; + /** + *state节点状态,'open' 或 'closed',默认:'open'。如果为'closed'的时候,将不自动展开该节点。 + * */ + private String state="open"; + /** + *iconCls 节点图标id + * */ + private String iconCls; + /** + * checked 是否被选中 + * */ + private boolean checked; + /** + *attributes 自定义属性 + * */ + private NodeAttributes attributes; + /** + * children 子节点 + * */ + private List children; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public String getIconCls() { + return iconCls; + } + + public void setIconCls(String iconCls) { + this.iconCls = iconCls; + } + + public boolean isChecked() { + return checked; + } + + public void setChecked(boolean checked) { + this.checked = checked; + } + + public NodeAttributes getAttributes() { + return attributes; + } + + public void setAttributes(NodeAttributes attributes) { + this.attributes = attributes; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } +} diff --git a/src/main/java/com/jsh/erp/service/user/UserService.java b/src/main/java/com/jsh/erp/service/user/UserService.java index 4464a9d3..24c53abc 100644 --- a/src/main/java/com/jsh/erp/service/user/UserService.java +++ b/src/main/java/com/jsh/erp/service/user/UserService.java @@ -10,6 +10,8 @@ import com.jsh.erp.datasource.entities.UserEx; import com.jsh.erp.datasource.entities.UserExample; import com.jsh.erp.datasource.mappers.UserMapper; import com.jsh.erp.datasource.mappers.UserMapperEx; +import com.jsh.erp.datasource.vo.TreeNode; +import com.jsh.erp.datasource.vo.TreeNodeEx; import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.service.orgaUserRel.OrgaUserRelService; import com.jsh.erp.utils.ExceptionCodeConstants; @@ -398,4 +400,7 @@ public class UserService { } } + public List getOrganizationUserTree() { + return userMapperEx.getNodeTree(); + } } diff --git a/src/main/resources/mapper_xml/UserMapperEx.xml b/src/main/resources/mapper_xml/UserMapperEx.xml index 201541c3..1a4c5f70 100644 --- a/src/main/resources/mapper_xml/UserMapperEx.xml +++ b/src/main/resources/mapper_xml/UserMapperEx.xml @@ -132,4 +132,56 @@ ) + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From bd3d8bd2bdc9dd057ae426db79a113c5771e9b6c Mon Sep 17 00:00:00 2001 From: qiankunpingtai Date: Thu, 14 Mar 2019 15:12:09 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=95=86=E5=93=81?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E5=92=8C=E6=9C=BA=E6=9E=84=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E7=88=B6=E7=BA=A7=E7=9A=84=E6=97=B6=E5=80=99=E5=8F=AA=E8=83=BD?= =?UTF-8?q?=E4=BB=8E=E7=88=B6=E7=BA=A7=E6=88=96=E8=80=85=E6=97=81=E7=BA=A7?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E7=9A=84=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- erp_web/pages/manage/organization.html | 3 +- .../pages/manage/organization_forselect.html | 3 +- erp_web/pages/materials/materialcategory.html | 3 +- .../materials/materialcategory_forselect.html | 13 +++++- .../jsh/erp/constants/BusinessConstants.java | 15 +++++-- .../MaterialCategoryController.java | 4 +- .../controller/OrganizationController.java | 4 +- .../mappers/MaterialCategoryMapperEx.java | 5 ++- .../mappers/OrganizationMapperEx.java | 5 ++- .../MaterialCategoryService.java | 42 ++++--------------- .../organization/OrganizationService.java | 8 ++-- .../mapper_xml/MaterialCategoryMapperEx.xml | 14 +++++-- .../mapper_xml/OrganizationMapperEx.xml | 14 +++++-- 13 files changed, 71 insertions(+), 62 deletions(-) diff --git a/erp_web/pages/manage/organization.html b/erp_web/pages/manage/organization.html index 60f8ec8b..ff4e9332 100644 --- a/erp_web/pages/manage/organization.html +++ b/erp_web/pages/manage/organization.html @@ -116,6 +116,7 @@ var url; //初始化界面 $(function () { + var id=$("#id").val(); var treeHeight=webH-35; //初始化系统基础信息 $('#tableData').datagrid({ @@ -142,7 +143,7 @@ }); $('#tableData').prev('.datagrid-view2').find(".datagrid-body").append("
        "); $('#tt').tree({ - url: '/organization/getOrganizationTree', + url: '/organization/getOrganizationTree?id='+id, animate: true, checkbox: true, onDblClick: function(node){ diff --git a/erp_web/pages/manage/organization_forselect.html b/erp_web/pages/manage/organization_forselect.html index 6050b4d6..0e6184cf 100644 --- a/erp_web/pages/manage/organization_forselect.html +++ b/erp_web/pages/manage/organization_forselect.html @@ -23,8 +23,9 @@