From 8254675e68efaafbb1c4e0a3b923bdd7b7a7c85a Mon Sep 17 00:00:00 2001 From: liwenxuan <1298531568@qq.com> Date: Fri, 18 Oct 2024 16:34:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B3=E8=81=94=E8=A1=A8=E5=8D=95=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E8=A1=A8=E5=8D=95=E6=A0=91=E5=BD=A2=E4=BC=98=E5=8C=96?= =?UTF-8?q?--App=E8=8F=9C=E5=8D=95=E6=A0=91=E5=BD=A2=E6=9E=84=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hxgk/lowcode/mapper/AppmenusMapper.java | 11 + .../mapper/CustomerFormGroupMapper.java | 11 + .../lowcode/mapper/CustomerFormMapper.java | 3 + .../hxgk/lowcode/model/entity/Appmenus.java | 148 ++++++++++ .../lowcode/model/entity/CustomerForm.java | 67 ++++- .../model/entity/CustomerFormGroup.java | 79 +++++ .../hxgk/lowcode/service/AppmenusService.java | 8 + .../service/CustomerFormGroupService.java | 10 + .../service/impl/AppmenusSerciceImpl.java | 138 +++++++++ .../impl/CustomerFormGroupServiceImpl.java | 20 ++ .../service/impl/CustomerFormServiceImpl.java | 279 +++++++++++++++++- src/main/resources/mapper/AppmenusMapper.xml | 14 + .../mapper/CustomerFormGroupMapper.xml | 14 + .../resources/mapper/CustomerFormMapper.xml | 6 + 14 files changed, 801 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/hxgk/lowcode/mapper/AppmenusMapper.java create mode 100644 src/main/java/com/hxgk/lowcode/mapper/CustomerFormGroupMapper.java create mode 100644 src/main/java/com/hxgk/lowcode/model/entity/Appmenus.java create mode 100644 src/main/java/com/hxgk/lowcode/model/entity/CustomerFormGroup.java create mode 100644 src/main/java/com/hxgk/lowcode/service/AppmenusService.java create mode 100644 src/main/java/com/hxgk/lowcode/service/CustomerFormGroupService.java create mode 100644 src/main/java/com/hxgk/lowcode/service/impl/AppmenusSerciceImpl.java create mode 100644 src/main/java/com/hxgk/lowcode/service/impl/CustomerFormGroupServiceImpl.java create mode 100644 src/main/resources/mapper/AppmenusMapper.xml create mode 100644 src/main/resources/mapper/CustomerFormGroupMapper.xml diff --git a/src/main/java/com/hxgk/lowcode/mapper/AppmenusMapper.java b/src/main/java/com/hxgk/lowcode/mapper/AppmenusMapper.java new file mode 100644 index 0000000..dce42be --- /dev/null +++ b/src/main/java/com/hxgk/lowcode/mapper/AppmenusMapper.java @@ -0,0 +1,11 @@ +package com.hxgk.lowcode.mapper; + +import com.hxgk.lowcode.model.entity.Appmenus; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.ArrayList; +@Mapper +public interface AppmenusMapper { + ArrayList getMenuList(@Param("appkey") String appmenusAppkey); +} diff --git a/src/main/java/com/hxgk/lowcode/mapper/CustomerFormGroupMapper.java b/src/main/java/com/hxgk/lowcode/mapper/CustomerFormGroupMapper.java new file mode 100644 index 0000000..1fab91b --- /dev/null +++ b/src/main/java/com/hxgk/lowcode/mapper/CustomerFormGroupMapper.java @@ -0,0 +1,11 @@ +package com.hxgk.lowcode.mapper; + +import com.hxgk.lowcode.model.entity.CustomerFormGroup; +import org.apache.ibatis.annotations.Mapper; + +import java.util.ArrayList; + +@Mapper +public interface CustomerFormGroupMapper { + ArrayList getAllCustomerFormGroup(); +} diff --git a/src/main/java/com/hxgk/lowcode/mapper/CustomerFormMapper.java b/src/main/java/com/hxgk/lowcode/mapper/CustomerFormMapper.java index a3f56e6..9aa7241 100644 --- a/src/main/java/com/hxgk/lowcode/mapper/CustomerFormMapper.java +++ b/src/main/java/com/hxgk/lowcode/mapper/CustomerFormMapper.java @@ -2,6 +2,7 @@ package com.hxgk.lowcode.mapper; import com.hxgk.lowcode.model.entity.CustomerForm; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.ArrayList; @Mapper @@ -9,4 +10,6 @@ public interface CustomerFormMapper { ArrayList getCustomerFormList(); + + ArrayList getAppsByGroupId(@Param("groupid") String id); } diff --git a/src/main/java/com/hxgk/lowcode/model/entity/Appmenus.java b/src/main/java/com/hxgk/lowcode/model/entity/Appmenus.java new file mode 100644 index 0000000..38dc078 --- /dev/null +++ b/src/main/java/com/hxgk/lowcode/model/entity/Appmenus.java @@ -0,0 +1,148 @@ +package com.hxgk.lowcode.model.entity; + +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public class Appmenus { + + private String id; + private String label; + private Integer type; + private String svg; + private Integer pclsShow; + private Integer waplsShow; + private String parent; + private String appkey; + private String createrTime; + private String editTime; + private String creater; + private Integer isLock; + private Integer sort; + private Integer state; + private Integer isMain; + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + public String getSvg() { + return svg; + } + + public void setSvg(String svg) { + this.svg = svg; + } + + public Integer getPclsShow() { + return pclsShow; + } + + public void setPclsShow(Integer pclsShow) { + this.pclsShow = pclsShow; + } + + public Integer getWaplsShow() { + return waplsShow; + } + + public void setWaplsShow(Integer waplsShow) { + this.waplsShow = waplsShow; + } + + public String getParent() { + return parent; + } + + public void setParent(String parent) { + this.parent = parent; + } + + public String getAppkey() { + return appkey; + } + + public void setAppkey(String appkey) { + this.appkey = appkey; + } + + public String getCreaterTime() { + return createrTime; + } + + public void setCreaterTime(String createrTime) { + this.createrTime = createrTime; + } + + public String getEditTime() { + return editTime; + } + + public void setEditTime(String editTime) { + this.editTime = editTime; + } + + public String getCreater() { + return creater; + } + + public void setCreater(String creater) { + this.creater = creater; + } + + public Integer getIsLock() { + return isLock; + } + + public void setIsLock(Integer isLock) { + this.isLock = isLock; + } + + public Integer getSort() { + return sort; + } + + public void setSort(Integer sort) { + this.sort = sort; + } + + public Integer getState() { + return state; + } + + public void setState(Integer state) { + this.state = state; + } + + public Integer getIsMain() { + return isMain; + } + + public void setIsMain(Integer isMain) { + this.isMain = isMain; + } + + +} diff --git a/src/main/java/com/hxgk/lowcode/model/entity/CustomerForm.java b/src/main/java/com/hxgk/lowcode/model/entity/CustomerForm.java index c53788d..c56594d 100644 --- a/src/main/java/com/hxgk/lowcode/model/entity/CustomerForm.java +++ b/src/main/java/com/hxgk/lowcode/model/entity/CustomerForm.java @@ -33,8 +33,15 @@ public class CustomerForm { private String icon; //是否开启工作流 private Integer flowIsOpen; - - public String getId() { + private StringBuffer listjson; + private String signCode; + private StringBuffer describe; + private String orgpermit; + private String appManager; + private String appRoleManager; + private String appOrgMan; + + public String getId() { return id; } @@ -153,4 +160,60 @@ public class CustomerForm { public void setFlowIsOpen(Integer flowIsOpen) { this.flowIsOpen = flowIsOpen; } + + public StringBuffer getListjson() { + return listjson; + } + + public void setListjson(StringBuffer listjson) { + this.listjson = listjson; + } + + public String getSignCode() { + return signCode; + } + + public void setSignCode(String signCode) { + this.signCode = signCode; + } + + public StringBuffer getDescribe() { + return describe; + } + + public void setDescribe(StringBuffer describe) { + this.describe = describe; + } + + public String getOrgpermit() { + return orgpermit; + } + + public void setOrgpermit(String orgpermit) { + this.orgpermit = orgpermit; + } + + public String getAppManager() { + return appManager; + } + + public void setAppManager(String appManager) { + this.appManager = appManager; + } + + public String getAppRoleManager() { + return appRoleManager; + } + + public void setAppRoleManager(String appRoleManager) { + this.appRoleManager = appRoleManager; + } + + public String getAppOrgMan() { + return appOrgMan; + } + + public void setAppOrgMan(String appOrgMan) { + this.appOrgMan = appOrgMan; + } } diff --git a/src/main/java/com/hxgk/lowcode/model/entity/CustomerFormGroup.java b/src/main/java/com/hxgk/lowcode/model/entity/CustomerFormGroup.java new file mode 100644 index 0000000..f6c3ca5 --- /dev/null +++ b/src/main/java/com/hxgk/lowcode/model/entity/CustomerFormGroup.java @@ -0,0 +1,79 @@ +package com.hxgk.lowcode.model.entity; + +import org.springframework.stereotype.Repository; + +@Repository +public class CustomerFormGroup { + private String id; + private String title; + private String superior; + private String sort; + private String ordid; + private String state; + private String time; + private String icon; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getSuperior() { + return superior; + } + + public void setSuperior(String superior) { + this.superior = superior; + } + + public String getSort() { + return sort; + } + + public void setSort(String sort) { + this.sort = sort; + } + + public String getOrdid() { + return ordid; + } + + public void setOrdid(String ordid) { + this.ordid = ordid; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public String getTime() { + return time; + } + + public void setTime(String time) { + this.time = time; + } + + public String getIcon() { + return icon; + } + + public void setIcon(String icon) { + this.icon = icon; + } +} diff --git a/src/main/java/com/hxgk/lowcode/service/AppmenusService.java b/src/main/java/com/hxgk/lowcode/service/AppmenusService.java new file mode 100644 index 0000000..d979c88 --- /dev/null +++ b/src/main/java/com/hxgk/lowcode/service/AppmenusService.java @@ -0,0 +1,8 @@ +package com.hxgk.lowcode.service; + +import com.hxgk.lowcode.model.entity.CustomerForm; +import com.hxgk.lowcode.model.entity.Tree; + +public interface AppmenusService { + Tree getAppTree(String appmenusAppkey, CustomerForm customerForm); +} diff --git a/src/main/java/com/hxgk/lowcode/service/CustomerFormGroupService.java b/src/main/java/com/hxgk/lowcode/service/CustomerFormGroupService.java new file mode 100644 index 0000000..94bb30c --- /dev/null +++ b/src/main/java/com/hxgk/lowcode/service/CustomerFormGroupService.java @@ -0,0 +1,10 @@ +package com.hxgk.lowcode.service; + +import com.hxgk.lowcode.model.entity.CustomerFormGroup; + +import java.util.ArrayList; + +public interface CustomerFormGroupService { + + public ArrayList getAllCustomerFormGroup(); +} diff --git a/src/main/java/com/hxgk/lowcode/service/impl/AppmenusSerciceImpl.java b/src/main/java/com/hxgk/lowcode/service/impl/AppmenusSerciceImpl.java new file mode 100644 index 0000000..aae489e --- /dev/null +++ b/src/main/java/com/hxgk/lowcode/service/impl/AppmenusSerciceImpl.java @@ -0,0 +1,138 @@ +package com.hxgk.lowcode.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hxgk.lowcode.mapper.AppmenusMapper; +import com.hxgk.lowcode.model.entity.Appmenus; +import com.hxgk.lowcode.model.entity.CustomerForm; +import com.hxgk.lowcode.model.entity.Tree; +import com.hxgk.lowcode.service.AppmenusService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +@DS("tidbintranetappplatform") +public class AppmenusSerciceImpl implements AppmenusService { + + @Autowired + AppmenusMapper appmenusMapper; + @Override + public Tree getAppTree(String appmenusAppkey, CustomerForm customerForm) { + ArrayList appmenusList = appmenusMapper.getMenuList(appmenusAppkey); + //if(appmenusAppkey.equals("307150721797591040")){ + //先把所有都转成tree对象 + Tree customerFormTreeObj = convertCustomerFormToTreeObj(customerForm); + ArrayList treeObjList = convertAppmenusToTreeObj(appmenusList); + treeObjList.add(customerFormTreeObj); + Tree tree = createTree(treeObjList,appmenusAppkey); + System.out.println(1); + //} + + return tree; + } + + /* + *如上图信息,要求用递归的方式把ArrayList和CustomerForm转换成一个Tree对象 + *customerForm作为tree的根节点, + *当Appmenus的parent等于customerForm的signCode时,说明是根节点的儿子节点, + *customerForm的id作为tree的根节点id,customerForm的name作为tree的label,customerForm的groupId作为tree的parentId + *Appmenus中的parent和id属性可以确定树关系 + *要求Appmenus的id填充为Tree的id,Appmenus的parent填充为Tree的parentId,Appmenus的所有其它属性填充到Tree的treeAttrs中 + * */ + + + public static Tree convertCustomerFormToTreeObj(CustomerForm customerForm){ + Tree tree = new Tree(); + tree.setId(customerForm.getSignCode()); + tree.setLabel(customerForm.getName()); + tree.setParentId(customerForm.getGroupId()); + HashMap attrs = new HashMap<>(); + attrs.put("tablename", customerForm.getTablename()); + attrs.put("classify", customerForm.getClassify()); + attrs.put("permit", customerForm.getPermit()); + attrs.put("states", customerForm.getStates()); + attrs.put("createrTime", customerForm.getCreaterTime()); + attrs.put("editTime", customerForm.getEditTime()); + attrs.put("permitstr", customerForm.getPermitstr()); + attrs.put("flowkey", customerForm.getFlowkey()); + attrs.put("userpermit", customerForm.getUserpermit()); + attrs.put("postpermit", customerForm.getPostpermit()); + attrs.put("icon", customerForm.getIcon()); + attrs.put("flowIsOpen", customerForm.getFlowIsOpen()); + attrs.put("listjson", customerForm.getListjson()); + attrs.put("signCode", customerForm.getSignCode()); + attrs.put("describe", customerForm.getDescribe()); + attrs.put("orgpermit", customerForm.getOrgpermit()); + attrs.put("appManager", customerForm.getAppManager()); + attrs.put("appRoleManager", customerForm.getAppRoleManager()); + attrs.put("app0rgman", customerForm.getAppOrgMan()); + tree.setTreeAttrs(attrs); + return tree; + } + + public static ArrayList convertAppmenusToTreeObj(ArrayList appmenusList){ + ArrayList list = new ArrayList<>(); + for(Appmenus appmenus:appmenusList){ + Tree tree = new Tree(); + tree.setId(appmenus.getId()); + tree.setParentId(appmenus.getParent()); + tree.setLabel(appmenus.getLabel()); + HashMap attrs = new HashMap<>(); + + attrs.put("type", appmenus.getType()); + attrs.put("svg", appmenus.getSvg()); + attrs.put("pclSShow", appmenus.getPclsShow()); + attrs.put("waplsShow", appmenus.getWaplsShow()); + attrs.put("appkey", appmenus.getAppkey()); + attrs.put("createrTime", appmenus.getCreaterTime()); + attrs.put("editTime", appmenus.getEditTime()); + attrs.put("creater", appmenus.getCreater()); + attrs.put("isLock", appmenus.getIsLock()); + attrs.put("sort", appmenus.getSort()); + attrs.put("state", appmenus.getState()); + attrs.put("isMain", appmenus.getIsMain()); + tree.setTreeAttrs(attrs); + list.add(tree); + } + return list; + + } + + //构造树形结构 + public static Tree createTree(List sourceList,String appmenusAppkey){ + Tree result = new Tree(); + for (Tree tree : sourceList) { + //找到根节点进行处理,找下一级节点 + if(tree.getTreeAttrs().get("signCode")!=null&&tree.getTreeAttrs().get("signCode").equals(appmenusAppkey)){ + //把所有的根节点放到一个list + result = findChildren(tree, sourceList); + + } + } + + return result; + } + + public static Tree findChildren(Tree rootTree,List list){ + //这个方法是在找rootTree的所有子节点,然后返回rootTree + for (Tree tree : list) { + if(rootTree.getId().equals(tree.getParentId())){ + if(rootTree.getChildren() == null){ + rootTree.setChildren(new ArrayList<>()); + } + // 把这个节点tree作为新的根节点继续向下构造树,再把构造的结果作为rootTree的子节点 + rootTree.getChildren().add(findChildren(tree,list)); + } + } + + return rootTree; + } + + + + +} diff --git a/src/main/java/com/hxgk/lowcode/service/impl/CustomerFormGroupServiceImpl.java b/src/main/java/com/hxgk/lowcode/service/impl/CustomerFormGroupServiceImpl.java new file mode 100644 index 0000000..ee57a19 --- /dev/null +++ b/src/main/java/com/hxgk/lowcode/service/impl/CustomerFormGroupServiceImpl.java @@ -0,0 +1,20 @@ +package com.hxgk.lowcode.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hxgk.lowcode.mapper.CustomerFormGroupMapper; +import com.hxgk.lowcode.model.entity.CustomerFormGroup; +import com.hxgk.lowcode.service.CustomerFormGroupService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +@Service +@DS("tidbintranetappplatform") +public class CustomerFormGroupServiceImpl implements CustomerFormGroupService { + @Autowired + CustomerFormGroupMapper customerFormGroupMapper; + @Override + public ArrayList getAllCustomerFormGroup() { + return customerFormGroupMapper.getAllCustomerFormGroup(); + } +} diff --git a/src/main/java/com/hxgk/lowcode/service/impl/CustomerFormServiceImpl.java b/src/main/java/com/hxgk/lowcode/service/impl/CustomerFormServiceImpl.java index c135292..1de2192 100644 --- a/src/main/java/com/hxgk/lowcode/service/impl/CustomerFormServiceImpl.java +++ b/src/main/java/com/hxgk/lowcode/service/impl/CustomerFormServiceImpl.java @@ -12,10 +12,7 @@ import com.hxgk.lowcode.mapper.CustomerFormMapper; import com.hxgk.lowcode.mapper.CustomerFormViewMapper; import com.hxgk.lowcode.mapper.FieldRecordMapper; import com.hxgk.lowcode.model.entity.*; -import com.hxgk.lowcode.service.CustomerFormService; -import com.hxgk.lowcode.service.HrService; -import com.hxgk.lowcode.service.SystemRoleService; -import com.hxgk.lowcode.service.UserService; +import com.hxgk.lowcode.service.*; import com.hxgk.lowcode.utils.HttpUtils; import org.apache.commons.lang3.StringUtils; import org.apache.http.protocol.HTTP; @@ -45,11 +42,276 @@ public class CustomerFormServiceImpl implements CustomerFormService { @Autowired private HrService hrService; + @Autowired + private CustomerFormGroupService customerFormGroupService; + + @Autowired + private AppmenusService appmenusService; + private static final Logger logger = LogManager.getLogger(); + /*@Override + //根据用户权限查询表单列表 + public Tree getCustomerFormList(String key, String token) { + + + //查询出所有表单 + ArrayList customerFormList = customerFormMapper.getCustomerFormList(); + + //获取用户信息 从redis中根据userkey和usertoken拿到userdetail + Map keytokenmap = new HashMap<>(); + keytokenmap.put("userkey",key); + keytokenmap.put("usertoken",token); + UserDetail userDetail = userService.getUserDetailFromRedis(keytokenmap); + if(userDetail==null){ + return null; + }else{ + //得到所有启用的系统角色(state=1的) + ArrayList roleList = systemRoleService.getAllRole(); + + //根据权限算法过滤后的list + ArrayList customerFormList1 = new ArrayList<>(); + + Tree tree = new Tree(); + tree.setId("rootid"); + tree.setLabel("请选择表单"); + tree.setValue("rootvalue"); + //筛选出所有表单中,当前用户有权限的表单 + for(CustomerForm c:customerFormList){// + + //把权限相关字段字符串处理为数组 + + //可见人员 + String userpermitArrStr = c.getUserpermit(); + String[] userpermitArr = new String[0]; + if(!StringUtils.isBlank(userpermitArrStr)){ + if(userpermitArrStr.contains(",")){ + userpermitArr = userpermitArrStr.split(","); + }else{ + userpermitArr = new String[]{userpermitArrStr}; + } + } + //可见角色 + String postpermitArrStr = c.getPostpermit(); + String[] postpermitArr = new String[0]; + if(!StringUtils.isBlank(postpermitArrStr)){ + if(postpermitArrStr.contains(",")){ + postpermitArr = postpermitArrStr.split(","); + }else{ + postpermitArr = new String[]{postpermitArrStr}; + } + } + //授权范围 + String permitArrStr = c.getPermit(); + String[] permitArr = new String[0]; + //对本表单有权限的组织机构list + ArrayList permitArrList = new ArrayList<>(); + if(!StringUtils.isBlank(permitArrStr)){ + if(permitArrStr.contains("],[")) { + permitArr = StringUtils.splitByWholeSeparator(permitArrStr, "],["); + for(int i = 0; i < permitArr.length; i++){ + String[] arr = StringUtils.splitByWholeSeparator(permitArr[i],","); + for(int j = 0; j < arr.length; j++){ + if(j == arr.length-1){ + if(i == permitArr.length-1){ + String lastOrg = arr[j]; + lastOrg = lastOrg.split("]]")[0]; + permitArrList.add(lastOrg);// + }else{ + permitArrList.add(arr[j]); + } + } + } + } + + }else{ + permitArr = StringUtils.splitByWholeSeparator(permitArrStr, ","); + for(int i = 0; i < permitArr.length; i++){ + if(i==permitArr.length-1){ + permitArrList.add(permitArr[i].split("]")[0]); + } + } + } + } + + //StringUtils.isBlank() 判断null和"" + if(StringUtils.isBlank(c.getPermit())&&StringUtils.isBlank(c.getPermitstr())&&StringUtils.isBlank(c.getUserpermit())&&StringUtils.isBlank(c.getPostpermit())){ + //本表单所有用户都有权限 + customerFormList1.add(c); + }else if(StringUtils.isNotEmpty(c.getUserpermit())){ + //按照可见人员判断权限 cus + for (int i = 0; i < userpermitArr.length; i++) { + if(userpermitArr[i].equals(userDetail.getWmKey().toString())){ + customerFormList1.add(c); + } + } + }else if(StringUtils.isNotEmpty(c.getPostpermit())){ + //按照可见角色判断权限 + for (int i = 0; i < postpermitArr.length; i++) { + if(postpermitArr[i].equals(userDetail.getRoleId().toString())){ + customerFormList1.add(c); + } + } + }else if(StringUtils.isNotEmpty(c.getPermit())){ + //按照授权范围(org)判断权限 + //userDetail.adminOrg在permitArrList中的话,则本用户对本表单有权限 + for(String item: permitArrList){ + if(item.equals(userDetail.getAdminorg().toString())){ + customerFormList1.add(c); + } + } + } + } + //根据权限过滤完成customerFormList1 + ArrayList tablekeyList = new ArrayList<>(); + for(CustomerForm item:customerFormList1){ + tablekeyList.add(item.getTablename()); + } + ArrayList customerFormViewArrayList = customerFormViewMapper.getCustomerFormViewListByTablekey(tablekeyList); + ArrayList treeArrayList1 = new ArrayList<>(); + for(CustomerFormView item:customerFormViewArrayList){ + + Tree tree1 = new Tree(); + if(item.getClassify()==3){//app + *//*String signCode = item.getSignCode(); + //调用GO接口获取App结构,过滤掉非表单和目录的数据 + + String url = "http://172.20.2.87:7777/app/gainAppEditPsge";//本地+内网 + //String url = "http://36.133.126.182:39250/app/gainAppEditPsge";//外网 + + JSONObject param = new JSONObject(); + param.put("id", signCode); + String post = null; + + try { + post = HttpUtils.send(url, param, HTTP.UTF_8, key, token); + System.out.println("post:"+post.toString()); + } catch (IOException e) { + e.printStackTrace(); + }*//* + + tree1.setId(item.getCfid()); + tree1.setParentId(tree.getId()); + tree1.setLabel("App-"+item.getName()); + tree1.setValue(item.getCfid()); + tree1.setDisabled(true); + + ArrayList appForms = customerFormViewMapper.getCustomerFormViewListByGroupid(item.getSignCode()); + if(appForms.size()>0){ + ArrayList treeArrayListx = new ArrayList<>(); + for(CustomerFormView itemx:appForms){ + Tree tree2 = new Tree(); + + tree2.setId(itemx.getCfid()); + tree2.setParentId(tree1.getId()); + tree2.setLabel("Form-"+itemx.getName()); + tree2.setValue(itemx.getCfid()); + HashMap treeAttrs = new HashMap<>(); + treeAttrs.put("version",itemx.getVersion().toString()); + tree2.setTreeAttrs(treeAttrs); + ArrayList treeArrayList = new ArrayList<>(); + if(!StringUtils.isBlank(itemx.getTableStructure())){ + + String tableStructure = itemx.getTableStructure(); + tableStructure = tableStructure.replace("{",""); + tableStructure = tableStructure.replace("}",""); + tableStructure = tableStructure.replace("\"",""); + String[] tableStructureArr = StringUtils.splitByWholeSeparator(tableStructure, ","); + + for(String item1:tableStructureArr){ + String l = StringUtils.splitByWholeSeparator(item1, ":")[1]; + Tree tree3 = new Tree(); + tree3.setLabel("子表-"+l); + tree3.setParentId(tree2.getId()); + tree3.setId(tree2.getId()+":zibiaoid-"+l); + tree3.setValue(tree3.getId()); + treeArrayList.add(tree3); + } + + + } + tree2.setChildren(treeArrayList); + + + treeArrayListx.add(tree2); + + + } + + + HashMap treeAttrs = new HashMap<>(); + treeAttrs.put("version",item.getVersion().toString()); + tree1.setChildren(treeArrayListx); + tree1.setTreeAttrs(treeAttrs); + + } + treeArrayList1.add(tree1); + }else{ + tree1.setId(item.getCfid()); + tree1.setParentId(tree.getId()); + tree1.setLabel("Form-"+item.getName()); + tree1.setValue(item.getCfid()); + HashMap treeAttrs = new HashMap<>(); + treeAttrs.put("version",item.getVersion().toString()); + tree1.setTreeAttrs(treeAttrs); + ArrayList treeArrayList = new ArrayList<>(); + if(!StringUtils.isBlank(item.getTableStructure())){ + + String tableStructure = item.getTableStructure(); + tableStructure = tableStructure.replace("{",""); + tableStructure = tableStructure.replace("}",""); + tableStructure = tableStructure.replace("\"",""); + String[] tableStructureArr = StringUtils.splitByWholeSeparator(tableStructure, ","); + + for(String item1:tableStructureArr){ + String l = StringUtils.splitByWholeSeparator(item1, ":")[1]; + Tree tree2 = new Tree(); + tree2.setLabel("子表-"+l); + tree2.setParentId(tree1.getId()); + tree2.setId(tree1.getId()+":zibiaoid-"+l); + tree2.setValue(tree2.getId()); + treeArrayList.add(tree2); + } + + + } + tree1.setChildren(treeArrayList); + treeArrayList1.add(tree1); + } + + + } + tree.setChildren(treeArrayList1); + return tree; + } + + + }*/ + + @Override //根据用户权限查询表单列表 public Tree getCustomerFormList(String key, String token) { + //查询出所有分组 + ArrayList allCustomerFormGroup = customerFormGroupService.getAllCustomerFormGroup(); + ArrayList> appslists = new ArrayList<>(); + ArrayList> AllGroupAppTreeList = new ArrayList<>(); + for (CustomerFormGroup item: allCustomerFormGroup) { + //获取分组中的所有App + ArrayList appsByGroupId = getAppsByGroupId(item); + appslists.add(appsByGroupId); + //获取App的目录树 + ArrayList singleGroupAppTreeList = new ArrayList<>(); + for(CustomerForm item1:appsByGroupId){ + String appmenusAppkey = item1.getSignCode(); + Tree appTree = appmenusService.getAppTree(appmenusAppkey,item1); + singleGroupAppTreeList.add(appTree); + + } + AllGroupAppTreeList.add(singleGroupAppTreeList); + + } + System.out.println(1); //查询出所有表单 @@ -285,6 +547,8 @@ public class CustomerFormServiceImpl implements CustomerFormService { } + + @Override public Tree getFieldTree(String key,String token,String cfid) { Boolean flag = StringUtils.isBlank(cfid); @@ -363,7 +627,7 @@ public class CustomerFormServiceImpl implements CustomerFormService { SunTable sunTable = new SunTable(); String sunTableId = it.next(); sunTable.setTableid(sunTableId); - ArrayNode masterTableFields = (ArrayNode) sunTableArrObj.get(sunTableId); + ArrayNode masterTableFields = (ArrayNode) sunTableArrObj.get(sunTableId); ArrayList arr = new ArrayList<>(); for(int i = 0; i< masterTableFields.size(); i++){ JsonNode masterTableFieldsItem = masterTableFields.get(i); @@ -3937,4 +4201,9 @@ public class CustomerFormServiceImpl implements CustomerFormService { } } + + public ArrayList getAppsByGroupId(CustomerFormGroup customerFormGroup){ + return customerFormMapper.getAppsByGroupId(customerFormGroup.getId()); + } + } diff --git a/src/main/resources/mapper/AppmenusMapper.xml b/src/main/resources/mapper/AppmenusMapper.xml new file mode 100644 index 0000000..a5a84ad --- /dev/null +++ b/src/main/resources/mapper/AppmenusMapper.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/CustomerFormGroupMapper.xml b/src/main/resources/mapper/CustomerFormGroupMapper.xml new file mode 100644 index 0000000..ff576e5 --- /dev/null +++ b/src/main/resources/mapper/CustomerFormGroupMapper.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/CustomerFormMapper.xml b/src/main/resources/mapper/CustomerFormMapper.xml index 7f9c94c..9373a39 100644 --- a/src/main/resources/mapper/CustomerFormMapper.xml +++ b/src/main/resources/mapper/CustomerFormMapper.xml @@ -11,4 +11,10 @@ + + \ No newline at end of file