|
@@ -2,6 +2,8 @@ package com.hb.proj.sys.service;
|
|
|
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -28,21 +30,57 @@ public class OrgService {
|
|
|
return dao.queryForList(sql.toString(),SideTreeNode.class);
|
|
|
}
|
|
|
|
|
|
+ public Set<String> loadMyAuthOrgs(String usId){
|
|
|
+ String sql="""
|
|
|
+ select distinct g.org_id,g.assist_code from tsys_role_data_auth rd
|
|
|
+ inner join tsys_user_role ur on rd.role_id=ur.role_id
|
|
|
+ inner join tzl_well w on rd.data_id=w.well_id and w.del_if=false
|
|
|
+ inner join tsys_org g on w.org_id=g.org_id and g.del_if=false
|
|
|
+ where ur.user_id=?
|
|
|
+ """;
|
|
|
+ Map<String,Object> mapping=dao.queryForMapping(sql, "org_id", "assist_code", usId);
|
|
|
+
|
|
|
+ return mapping!=null&&mapping.size()>0?mapping.keySet():null;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 通过父节点查询直接子节点---用于主页侧边树
|
|
|
* @param superId
|
|
|
+ * @param authOrgs 基于井权限的末级组织id
|
|
|
* @return
|
|
|
*/
|
|
|
- public List<SideTreeNode> loadSideTreeSubNodes(String superId){
|
|
|
- StringBuilder sql=new StringBuilder();
|
|
|
- sql.append("select g.org_id id,g.org_name name,g.super_id,'"+SideTreeNode.ORG_NODE+"' node_type, ");
|
|
|
- sql.append(" (select case when count(1)=0 then true else false end from tsys_org gs where gs.del_if=false and gs.super_id=g.org_id) type_end");
|
|
|
- sql.append(" from tsys_org g");
|
|
|
+ public List<SideTreeNode> loadSideTreeSubNodes(String superId,Set<String> authOrgs){
|
|
|
+
|
|
|
+ String sql="""
|
|
|
+ select g.org_id id,g.org_name name,g.super_id,? node_type,
|
|
|
+ (select case when count(1)=0 then true else false end from tsys_org gs
|
|
|
+ where gs.del_if=false and gs.super_id=g.org_id
|
|
|
+ ) type_end
|
|
|
+
|
|
|
+ from tsys_org g where g.del_if=false and g.super_id=?
|
|
|
+
|
|
|
+ """;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ String orderSql=" order by display_num";
|
|
|
+
|
|
|
+ if(authOrgs==null||authOrgs.size()==0) {
|
|
|
+
|
|
|
+ return dao.queryForList(sql+orderSql,SideTreeNode.class, SideTreeNode.ORG_NODE, superId);
|
|
|
+ }
|
|
|
|
|
|
- sql.append(" where g.del_if=false and g.super_id=?");
|
|
|
- sql.append(" order by display_num");
|
|
|
|
|
|
- return dao.queryForList(sql.toString(),SideTreeNode.class, superId);
|
|
|
+ String orgs="'"+StringUtils.join(authOrgs,"','")+"'";
|
|
|
+ String authSql="""
|
|
|
+ and exists(select org_id from tsys_org g2 where g2.org_id in ("""
|
|
|
+ +orgs+
|
|
|
+ """
|
|
|
+ ) and g2.del_if=false
|
|
|
+ and g2.assist_code like concat(g.assist_code,'%') )
|
|
|
+ """;
|
|
|
+ return dao.queryForList(sql+authSql+orderSql,SideTreeNode.class, SideTreeNode.ORG_NODE,superId);
|
|
|
}
|
|
|
|
|
|
public String add(OrgPO org) {
|