Commit 8d2a90d8 by zhangkb

修改标签,加入一个公司机构id字段,修改新增或修改标签按钮

parent db8fd79b
...@@ -15,6 +15,7 @@ import com.keymobile.tagmanager.model.SysTag; ...@@ -15,6 +15,7 @@ import com.keymobile.tagmanager.model.SysTag;
import com.keymobile.tagmanager.model.Tag; import com.keymobile.tagmanager.model.Tag;
import com.keymobile.tagmanager.service.TagService; import com.keymobile.tagmanager.service.TagService;
import com.keymobile.tagmanager.util.JsonTreeHelper.JsonNode; import com.keymobile.tagmanager.util.JsonTreeHelper.JsonNode;
import com.keymobile.tagmanager.util.Constants;
import com.keymobile.tagmanager.util.UserInfoUtils; import com.keymobile.tagmanager.util.UserInfoUtils;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -43,6 +44,14 @@ public class TagCtrl { ...@@ -43,6 +44,14 @@ public class TagCtrl {
tag.setCreator(userName); tag.setCreator(userName);
tag.setTagUser(userId); tag.setTagUser(userId);
tag.setDept(org); tag.setDept(org);
//如果是创建维度标签,直接保存公司机构id
if(tag.getDimensionType().equals(Constants.TAG_DIMENSION_TRUE)) {
tag.setProDept(org);
}else{
//根据当前登录用户所属机构获取公司机构id
String companyOrgId = tagService.getCompanyOrgIdByUserOrgId(org);
tag.setProDept(companyOrgId);
}
//调用新增或者修改标签接口 //调用新增或者修改标签接口
return tagService.addOrUpdateTag(parentId, tag, userName); return tagService.addOrUpdateTag(parentId, tag, userName);
} }
...@@ -129,7 +138,7 @@ public class TagCtrl { ...@@ -129,7 +138,7 @@ public class TagCtrl {
return tagService.searchSystemTagByPage(userName, keyword, path, domain, new Page(pageSize, pageNo)); return tagService.searchSystemTagByPage(userName, keyword, path, domain, new Page(pageSize, pageNo));
} }
@ApiOperation(value = "查询个人标签树不包括分享的标签", notes = "查询个人标签树不包括分享的标签") @ApiOperation(value = "查询个人标签树不包括分享的标签(用于新增普通用户个人标签加载标签挂靠的上级标签树接口)", notes = "查询个人标签树不包括分享的标签")
@GetMapping(value = "/queryPersonalTagExcludeOpenTypeAsTree") @GetMapping(value = "/queryPersonalTagExcludeOpenTypeAsTree")
public JsonNode[] queryPersonalTagExcludeOpenTypeAsTree( public JsonNode[] queryPersonalTagExcludeOpenTypeAsTree(
@RequestParam(value = "parentId", required = false) String parentId, @RequestParam(value = "parentId", required = false) String parentId,
...@@ -139,27 +148,16 @@ public class TagCtrl { ...@@ -139,27 +148,16 @@ public class TagCtrl {
return tagService.queryPersonalTagExcludeOpenTypeAsTree(parentId, userName, deptIdPath); return tagService.queryPersonalTagExcludeOpenTypeAsTree(parentId, userName, deptIdPath);
} }
@ApiOperation(value = "分享标签", notes = "分享标签") @ApiOperation(value = "分享标签", notes = "分享标签")
@PostMapping(value = "/shareTags") @PostMapping(value = "/shareTags")
public void shareTags(@RequestBody List<String> tagIds) throws Exception { public void shareTags(@RequestBody List<String> tagIds) throws Exception {
tagService.shareTags(tagIds); tagService.shareTags(tagIds);
} }
//---------------以下为导入系统的时候用到------------------
//---------------以下为导入系统的时候用到------------------
@ApiOperation(value = "查询系统标签", notes = "查询系统标签") @ApiOperation(value = "查询系统标签", notes = "查询系统标签")
@GetMapping(value = "/listSystems") @GetMapping(value = "/listSystems")
public List<SysTag> listSysTags() { public List<SysTag> listSysTags() {
......
...@@ -54,6 +54,7 @@ public class Tag implements Serializable, IExcelModel, IExcelDataModel{ ...@@ -54,6 +54,7 @@ public class Tag implements Serializable, IExcelModel, IExcelDataModel{
//author:zhangkb time:2020-1-6 desc:添加标签创建对应的用户id,普通用户创建自定义标签有用到 //author:zhangkb time:2020-1-6 desc:添加标签创建对应的用户id,普通用户创建自定义标签有用到
private String tagUser; private String tagUser;
private String proDept;//公司机构id
public Tag() {} public Tag() {}
...@@ -256,5 +257,13 @@ public class Tag implements Serializable, IExcelModel, IExcelDataModel{ ...@@ -256,5 +257,13 @@ public class Tag implements Serializable, IExcelModel, IExcelDataModel{
public void setTagUser(String tagUser) { public void setTagUser(String tagUser) {
this.tagUser = tagUser; this.tagUser = tagUser;
} }
public String getProDept() {
return proDept;
}
public void setProDept(String proDept) {
this.proDept = proDept;
}
} }
...@@ -143,6 +143,29 @@ public class TagService { ...@@ -143,6 +143,29 @@ public class TagService {
String dept) String dept)
throws TagNotExistException{ throws TagNotExistException{
List<Tag> tags = new ArrayList<>(); List<Tag> tags = new ArrayList<>();
//根据用户所属机构id获取对应的公司机构id
String companyOrgId = this.getCompanyOrgIdByUserOrgId(dept);
if (StringUtils.isEmpty(parentId)) {//从根目录开始查找
tags = mongoOperations.find(this.createNewPersonalTagQuery(userId, dept, companyOrgId), Tag.class);
}else {
Tag parentTag = getTagById(parentId);
tags = this.getNewPersonSubTag(parentTag, userId, dept, companyOrgId);
}
List<JsonNode> nodes = new ArrayList<>();
tags.forEach(p -> {
JsonNode node = new JsonNode(p.getPath(), p.getId(), p.getPath(), p.getIdPath());
nodes.add(node);
});
JsonNode root = JsonTreeHelper.toJsonTree(nodes, Constants.TAG_PATH_SEPARATOR);
if (root.children != null) {
return root.children;
}else {
return new JsonNode[] {};
}
}
//根据用户所属机构id获取对应的公司机构id
public String getCompanyOrgIdByUserOrgId(String dept) throws TagNotExistException{
//根据用户机构id获取机构信息 //根据用户机构id获取机构信息
Org org = authService.getOrgs(dept); Org org = authService.getOrgs(dept);
if(org==null) { if(org==null) {
...@@ -154,7 +177,7 @@ public class TagService { ...@@ -154,7 +177,7 @@ public class TagService {
String[] fullnames = fullname.split(","); String[] fullnames = fullname.split(",");
//如果fullname没有两层结构 //如果fullname没有两层结构
if(fullnames.length<2) { if(fullnames.length<2) {
throw new TagNotExistException("get org by id the fullname:"+fullname+" at least 2 level;"); throw new TagNotExistException("get org by id the fullname:"+fullname+" at least 2 levels;");
} }
String companyPath = fullnames[0]+Constants.TAG_PATH_SEPARATOR+fullnames[1]; String companyPath = fullnames[0]+Constants.TAG_PATH_SEPARATOR+fullnames[1];
//根据companyPath获取机构信息 //根据companyPath获取机构信息
...@@ -162,25 +185,7 @@ public class TagService { ...@@ -162,25 +185,7 @@ public class TagService {
if(companyOrg==null) { if(companyOrg==null) {
throw new TagNotExistException("get company org by fullname is null;"); throw new TagNotExistException("get company org by fullname is null;");
} }
String companyOrgId = String.valueOf(companyOrg.getId()); return String.valueOf(companyOrg.getId());
if (StringUtils.isEmpty(parentId)) {//从根目录开始查找
//
tags = mongoOperations.find(this.createNewPersonalTagQuery(userId, dept, companyOrgId), Tag.class);
}else {
Tag parentTag = getTagById(parentId);
tags = this.getNewPersonSubTag(parentTag, userId, dept, companyOrgId);
}
List<JsonNode> nodes = new ArrayList<>();
tags.forEach(p -> {
JsonNode node = new JsonNode(p.getPath(), p.getId(), p.getPath(), p.getIdPath());
nodes.add(node);
});
JsonNode root = JsonTreeHelper.toJsonTree(nodes, Constants.TAG_PATH_SEPARATOR);
if (root.children != null) {
return root.children;
}else {
return new JsonNode[] {};
}
} }
//根据关键字查询维度标签数据 //根据关键字查询维度标签数据
...@@ -295,6 +300,18 @@ public class TagService { ...@@ -295,6 +300,18 @@ public class TagService {
} }
} }
//获取分享个人标签
public List<Tag> getShareTags(String deptId) {
List<Tag> tags = new ArrayList<>();
//获取机构下的维度标签第一层维度标签数据
Criteria criteria = Criteria.where("dept").is(deptId).and("level").is(1);
List<Tag> lvOneTags = mongoOperations.find(Query.query(criteria),Tag.class);
for(Tag tag : lvOneTags) {
//根据
}
return tags;
}
//分享个人标签 //分享个人标签
public void shareTags(List<String> tagIds) { public void shareTags(List<String> tagIds) {
Iterable<Tag> tags = tagRepository.findAllById(tagIds); Iterable<Tag> tags = tagRepository.findAllById(tagIds);
...@@ -382,7 +399,8 @@ public class TagService { ...@@ -382,7 +399,8 @@ public class TagService {
.regex("^"+parentTag.getPath() + Constants.TAG_PATH_SEPARATOR) .regex("^"+parentTag.getPath() + Constants.TAG_PATH_SEPARATOR)
.and("tagType").is(Constants.TAG_PERSONAL_TYPE) .and("tagType").is(Constants.TAG_PERSONAL_TYPE)
.orOperator( .orOperator(
Criteria.where("dept").is(companyId),//标签是维度管理员机构的 Criteria.where("dept").is(companyId)
.and("dimensionType").is(Constants.TAG_DIMENSION_TRUE),//标签是维度管理员机构的
Criteria.where("dept").is(deptId).and("tagUser").is(userId)//标签是普通用户结构且普通用户名创建 Criteria.where("dept").is(deptId).and("tagUser").is(userId)//标签是普通用户结构且普通用户名创建
)).with(Sort.by(getDefaultTagOrders())), Tag.class); )).with(Sort.by(getDefaultTagOrders())), Tag.class);
dirs.add(parentTag); dirs.add(parentTag);
...@@ -428,7 +446,7 @@ public class TagService { ...@@ -428,7 +446,7 @@ public class TagService {
Criteria criteria = Criteria.where("tagType").is(Constants.TAG_PERSONAL_TYPE) Criteria criteria = Criteria.where("tagType").is(Constants.TAG_PERSONAL_TYPE)
.and("dept").is(dept).and("tagUser").is(userName); .and("dept").is(dept).and("tagUser").is(userName);
if (StringUtils.isNotBlank(path)) { if (StringUtils.isNotBlank(path)) {
criteria = criteria.and("path").regex("^"+path);; criteria = criteria.and("path").regex("^"+path);
} }
return criteria/**.orOperator( return criteria/**.orOperator(
Criteria.where("dimensionType").is(Constants.TAG_DIMENSION_TRUE), Criteria.where("dimensionType").is(Constants.TAG_DIMENSION_TRUE),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment