Commit 8d2a90d8 by zhangkb

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

parent db8fd79b
......@@ -15,6 +15,7 @@ import com.keymobile.tagmanager.model.SysTag;
import com.keymobile.tagmanager.model.Tag;
import com.keymobile.tagmanager.service.TagService;
import com.keymobile.tagmanager.util.JsonTreeHelper.JsonNode;
import com.keymobile.tagmanager.util.Constants;
import com.keymobile.tagmanager.util.UserInfoUtils;
import io.swagger.annotations.Api;
......@@ -43,6 +44,14 @@ public class TagCtrl {
tag.setCreator(userName);
tag.setTagUser(userId);
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);
}
......@@ -129,7 +138,7 @@ public class TagCtrl {
return tagService.searchSystemTagByPage(userName, keyword, path, domain, new Page(pageSize, pageNo));
}
@ApiOperation(value = "查询个人标签树不包括分享的标签", notes = "查询个人标签树不包括分享的标签")
@ApiOperation(value = "查询个人标签树不包括分享的标签(用于新增普通用户个人标签加载标签挂靠的上级标签树接口)", notes = "查询个人标签树不包括分享的标签")
@GetMapping(value = "/queryPersonalTagExcludeOpenTypeAsTree")
public JsonNode[] queryPersonalTagExcludeOpenTypeAsTree(
@RequestParam(value = "parentId", required = false) String parentId,
......@@ -139,27 +148,16 @@ public class TagCtrl {
return tagService.queryPersonalTagExcludeOpenTypeAsTree(parentId, userName, deptIdPath);
}
@ApiOperation(value = "分享标签", notes = "分享标签")
@PostMapping(value = "/shareTags")
public void shareTags(@RequestBody List<String> tagIds) throws Exception {
tagService.shareTags(tagIds);
}
//---------------以下为导入系统的时候用到------------------
//---------------以下为导入系统的时候用到------------------
@ApiOperation(value = "查询系统标签", notes = "查询系统标签")
@GetMapping(value = "/listSystems")
public List<SysTag> listSysTags() {
......
......@@ -54,6 +54,7 @@ public class Tag implements Serializable, IExcelModel, IExcelDataModel{
//author:zhangkb time:2020-1-6 desc:添加标签创建对应的用户id,普通用户创建自定义标签有用到
private String tagUser;
private String proDept;//公司机构id
public Tag() {}
......@@ -256,5 +257,13 @@ public class Tag implements Serializable, IExcelModel, IExcelDataModel{
public void setTagUser(String tagUser) {
this.tagUser = tagUser;
}
public String getProDept() {
return proDept;
}
public void setProDept(String proDept) {
this.proDept = proDept;
}
}
......@@ -143,6 +143,29 @@ public class TagService {
String dept)
throws TagNotExistException{
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获取机构信息
Org org = authService.getOrgs(dept);
if(org==null) {
......@@ -154,7 +177,7 @@ public class TagService {
String[] fullnames = fullname.split(",");
//如果fullname没有两层结构
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];
//根据companyPath获取机构信息
......@@ -162,25 +185,7 @@ public class TagService {
if(companyOrg==null) {
throw new TagNotExistException("get company org by fullname is null;");
}
String companyOrgId = 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[] {};
}
return String.valueOf(companyOrg.getId());
}
//根据关键字查询维度标签数据
......@@ -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) {
Iterable<Tag> tags = tagRepository.findAllById(tagIds);
......@@ -382,7 +399,8 @@ public class TagService {
.regex("^"+parentTag.getPath() + Constants.TAG_PATH_SEPARATOR)
.and("tagType").is(Constants.TAG_PERSONAL_TYPE)
.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)//标签是普通用户结构且普通用户名创建
)).with(Sort.by(getDefaultTagOrders())), Tag.class);
dirs.add(parentTag);
......@@ -428,7 +446,7 @@ public class TagService {
Criteria criteria = Criteria.where("tagType").is(Constants.TAG_PERSONAL_TYPE)
.and("dept").is(dept).and("tagUser").is(userName);
if (StringUtils.isNotBlank(path)) {
criteria = criteria.and("path").regex("^"+path);;
criteria = criteria.and("path").regex("^"+path);
}
return criteria/**.orOperator(
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