fengxiang
2018-09-27 2f4d9d83ae0ac1e8a44227e2a4cd2746ef010e5f
src/main/java/com/moral/service/impl/OrganizationServiceImpl.java
@@ -1,8 +1,10 @@
package com.moral.service.impl;
import com.alibaba.fastjson.JSON;
import com.github.pagehelper.PageHelper;
import com.moral.common.bean.Constants;
import com.moral.common.bean.PageBean;
import com.moral.common.exception.BusinessException;
import com.moral.common.util.ExampleUtil;
import com.moral.common.util.ValidateUtil;
import com.moral.entity.Organization;
@@ -88,8 +90,23 @@
         }else{
            organizationMapper.updateByPrimaryKey(organization);
         }
         //更新父组织关系
         addOrModifyOrgRelation(organization);
         if(organization.getId()!=null && !organization.getId().equals(organization.getParentId())){
            List<Integer> orgIds = organizationMapper.selectLowerOrgIds(organization.getId());
            boolean isChild = orgIds.stream().anyMatch(
                  item -> {
                     return item!=null && item.equals(organization.getParentId());
                  }
            );
            // 非子孙组织才能设为父组织,避免闭环脏数据
            if(!isChild){
               //更新父组织关系
               addOrModifyOrgRelation(organization);
            }else{
               throw new BusinessException("cannot set the children as father,organization:"+ JSON.toJSONString(organization));
            }
         }else {
            throw new BusinessException("id of organization can't equal to it's parentId,organization:"+ JSON.toJSONString(organization));
         }
      }
      catch (Exception ex){
         throw  ex;