zouxuan 5 years ago
parent
commit
dbc5077a70

+ 7 - 2
mec-web/src/main/java/com/ym/mec/web/controller/OrganizationController.java

@@ -2,8 +2,11 @@ package com.ym.mec.web.controller;
 
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.page.QueryInfo;
+import com.ym.mec.web.dal.page.OrganizationQueryInfo;
+import com.ym.mec.web.service.OrganizationService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -13,10 +16,12 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 public class OrganizationController extends BaseController {
 
+    @Autowired
+    private OrganizationService organizationService;
 
     @ApiOperation(value = "分页查询组织机构树状列表")
     @PostMapping("/queryPage")
-    public Object queryPage(QueryInfo queryInfo){
-        return null;
+    public Object queryPage(OrganizationQueryInfo queryInfo){
+        return organizationService.queryTreePage(queryInfo);
     }
 }

+ 10 - 1
mec-web/src/main/java/com/ym/mec/web/dal/dao/OrganizationDao.java

@@ -2,8 +2,17 @@ package com.ym.mec.web.dal.dao;
 
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.web.dal.entity.Organization;
+import com.ym.mec.web.dal.page.OrganizationQueryInfo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 public interface OrganizationDao extends BaseDAO<Integer, Organization> {
 
-	
+    /**
+     * 根据父级id查询子级列表
+     * @param parentId
+     * @return
+     */
+    List<Organization> findByParentId(@Param("parentId") Integer parentId, @Param("delFlag") String delFlag);
 }

+ 19 - 1
mec-web/src/main/java/com/ym/mec/web/dal/entity/Organization.java

@@ -1,7 +1,10 @@
 package com.ym.mec.web.dal.entity;
 
+import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import java.util.List;
+
 /**
  * 对应数据库表(organization):
  */
@@ -11,9 +14,11 @@ public class Organization {
 	private Integer id;
 	
 	/** 机构名称 */
+	@ApiModelProperty(value = "机构名称",required = false)
 	private String name;
 	
 	/** 机构编码 */
+	@ApiModelProperty(value = "机构编码",required = false)
 	private Integer code;
 	
 	/** 创建时间 */
@@ -23,11 +28,24 @@ public class Organization {
 	private java.util.Date updateTime;
 	
 	/** 是否删除  -1:已删除  0:正常 */
+	@ApiModelProperty(value = "是否删除  -1:已删除  0:正常",required = false)
 	private String delFlag;
 	
 	/** 父节点编号 */
+	@ApiModelProperty(value = "父节点编号",required = false)
 	private Integer parentOrganId;
-	
+
+	@ApiModelProperty(value = "子节点列表",required = false)
+	private List<Organization> organizations;
+
+	public List<Organization> getOrganizations() {
+		return organizations;
+	}
+
+	public void setOrganizations(List<Organization> organizations) {
+		this.organizations = organizations;
+	}
+
 	public void setId(Integer id){
 		this.id = id;
 	}

+ 11 - 0
mec-web/src/main/java/com/ym/mec/web/service/OrganizationService.java

@@ -1,8 +1,19 @@
 package com.ym.mec.web.service;
 
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.web.dal.entity.Organization;
+import com.ym.mec.web.dal.page.OrganizationQueryInfo;
+
+import java.util.List;
 
 public interface OrganizationService extends BaseService<Integer, Organization> {
 
+    /**
+     * 获取节点树状结构
+     * @param queryInfo
+     * @return
+     */
+    PageInfo<Organization> queryTreePage(OrganizationQueryInfo queryInfo);
+
 }

+ 33 - 0
mec-web/src/main/java/com/ym/mec/web/service/impl/OrganizationServiceImpl.java

@@ -1,13 +1,19 @@
 package com.ym.mec.web.service.impl;
 
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.web.dal.dao.OrganizationDao;
 import com.ym.mec.web.dal.entity.Organization;
+import com.ym.mec.web.dal.page.OrganizationQueryInfo;
 import com.ym.mec.web.service.OrganizationService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
+import java.util.List;
+
 @Service
 public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organization> implements OrganizationService {
 	
@@ -18,5 +24,32 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 	public BaseDAO<Integer, Organization> getDAO() {
 		return organizationDao;
 	}
+
+	@Override
+	public PageInfo<Organization> queryTreePage(OrganizationQueryInfo queryInfo){
+		PageInfo<Organization> pageInfo = queryPage(queryInfo);
+		for (Organization organization:pageInfo.getRows()) {
+			organization = getTree(organization);
+		}
+		return pageInfo;
+	}
+
+
+
+	private Organization getTree(Organization org){
+		//得到根节点对象
+		//获取子节点list
+		List<Organization> byParentId = organizationDao.findByParentId(org.getId(), null);
+		//如果存在子节点
+		if(byParentId != null && byParentId.size() > 0) {
+			//将子节点list放入父节点对象
+			org.setOrganizations(byParentId);
+			//遍历子节点....
+			for (Organization organization : byParentId) {
+				getTree(organization);
+			}
+		}
+			return org;
+	}
 	
 }

+ 19 - 2
mec-web/src/main/resources/config/mybatis/OrganizationMapper.xml

@@ -72,14 +72,31 @@
 		DELETE FROM organization WHERE id_ = #{id} 
 	</delete>
 
+    <sql id="queryPageSql">
+        <where>
+            <if test="parentId != null">
+                parent_organ_id_ = #{parentId}
+            </if>
+            <if test="delFlag != null and delFlag != ''">
+                AND del_flag_ = #{delFlag}
+            </if>
+        </where>
+    </sql>
+
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="Organization" parameterType="map">
-        SELECT * FROM organization ORDER BY id_
+        SELECT * FROM organization
+        <include refid="queryPageSql"/>
+         ORDER BY id_
         <include refid="global.limit"/>
     </select>
 
     <!-- 查询当前表的总记录数 -->
     <select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM organization
+		SELECT COUNT(*) FROM organization <include refid="queryPageSql"/>
 	</select>
+
+    <select id="findByParentId" resultMap="Organization">
+        SELECT * FROM organization <include refid="queryPageSql"/>
+    </select>
 </mapper>