// Path: src/main/java/com/aibibang/web/system/dao/SysOrgDao.java
// public interface SysOrgDao extends BaseDao<SysOrg, Long> {
// 
// 	public List<SysOrg> findForTreeTable(Long parentId);
// 	
// 	public void deleteByParentId(Long parentId);
// 	
// 	public String getMaxCode(Long parentId);
// }
// 
// Path: src/main/java/com/aibibang/web/system/entity/SysOrg.java
// public class SysOrg extends BaseEntity implements Serializable {
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	/** 组织编码 */
// 	private String orgCode;
// 	/** 组织名称 */
// 	private String orgName;
// 	/** 备注 */
// 	private String description;
// 	/** 上级组织ID */
// 	private Long parentId;
// 	
// 	/** 下级组织数量 */
// 	private Integer childNum;
// 	/** 上级组织 */
// 	private SysOrg parentOrg;
// 	/** 下级组织 */
// 	private List<SysOrg> children = new ArrayList<SysOrg>();
// 	
// 	public String getOrgCode() {
// 		return orgCode;
// 	}
// 	public void setOrgCode(String orgCode) {
// 		this.orgCode = orgCode;
// 	}
// 	public String getOrgName() {
// 		return orgName;
// 	}
// 	public void setOrgName(String orgName) {
// 		this.orgName = orgName;
// 	}
// 	public String getDescription() {
// 		return description;
// 	}
// 	public void setDescription(String description) {
// 		this.description = description;
// 	}
// 	public Long getParentId() {
// 		return parentId;
// 	}
// 	public void setParentId(Long parentId) {
// 		this.parentId = parentId;
// 	}
// 	
// 	public Integer getChildNum() {
// 		return childNum;
// 	}
// 	public void setChildNum(Integer childNum) {
// 		this.childNum = childNum;
// 	}
// 	public SysOrg getParentOrg() {
// 		return parentOrg;
// 	}
// 	public void setParentOrg(SysOrg parentOrg) {
// 		this.parentOrg = parentOrg;
// 	}
// 	public List<SysOrg> getChildren() {
// 		return children;
// 	}
// 	public void setChildren(List<SysOrg> children) {
// 		this.children = children;
// 	}
// 	
// }
// 
// Path: src/main/java/com/aibibang/web/system/service/SysOrgService.java
// public interface SysOrgService {
// 
// 	public List<SysOrg> find(SysOrg org);
// 	
// 	public List<SysOrg> findForTreeTable(Long parentId);
// 	
// 	public SysOrg getById(Long id);
// 	
// 	public void add(SysOrg org);
// 	
// 	public void update(SysOrg org);
// 	
// 	public void delete(Long id);
// }


import java.text.DecimalFormat;
import java.util.List;
import javax.annotation.Resource;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;
import com.aibibang.web.system.dao.SysOrgDao;
import com.aibibang.web.system.entity.SysOrg;
import com.aibibang.web.system.service.SysOrgService;

	@Override
	public void add(SysOrg org) {
		
		buildCode(org);
		
		sysOrgDao.add(org);
	}

	@Override
	public void update(SysOrg org) {
		
		// 上层组织改变时，改变组织编码
		SysOrg oldOrg = sysOrgDao.getById(org.getId());
		if(org.getParentId() != oldOrg.getParentId()){
			buildCode(org);
		}
		
		sysOrgDao.update(org);
	}

	@Override
	public void delete(Long id) {
		
		sysOrgDao.delete(id);
	}

	public void deleteChildren(Long id){
		SysOrg param = new SysOrg();
		param.setParentId(id);
		List<SysOrg> children = sysOrgDao.find(param);

// Path: src/main/java/com/aibibang/web/system/dao/SysOrgDao.java
// public interface SysOrgDao extends BaseDao<SysOrg, Long> {
// 
// 	public List<SysOrg> findForTreeTable(Long parentId);
// 	
// 	public void deleteByParentId(Long parentId);
// 	
// 	public String getMaxCode(Long parentId);
// }
// 
// Path: src/main/java/com/aibibang/web/system/entity/SysOrg.java
// public class SysOrg extends BaseEntity implements Serializable {
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	/** 组织编码 */
// 	private String orgCode;
// 	/** 组织名称 */
// 	private String orgName;
// 	/** 备注 */
// 	private String description;
// 	/** 上级组织ID */
// 	private Long parentId;
// 	
// 	/** 下级组织数量 */
// 	private Integer childNum;
// 	/** 上级组织 */
// 	private SysOrg parentOrg;
// 	/** 下级组织 */
// 	private List<SysOrg> children = new ArrayList<SysOrg>();
// 	
// 	public String getOrgCode() {
// 		return orgCode;
// 	}
// 	public void setOrgCode(String orgCode) {
// 		this.orgCode = orgCode;
// 	}
// 	public String getOrgName() {
// 		return orgName;
// 	}
// 	public void setOrgName(String orgName) {
// 		this.orgName = orgName;
// 	}
// 	public String getDescription() {
// 		return description;
// 	}
// 	public void setDescription(String description) {
// 		this.description = description;
// 	}
// 	public Long getParentId() {
// 		return parentId;
// 	}
// 	public void setParentId(Long parentId) {
// 		this.parentId = parentId;
// 	}
// 	
// 	public Integer getChildNum() {
// 		return childNum;
// 	}
// 	public void setChildNum(Integer childNum) {
// 		this.childNum = childNum;
// 	}
// 	public SysOrg getParentOrg() {
// 		return parentOrg;
// 	}
// 	public void setParentOrg(SysOrg parentOrg) {
// 		this.parentOrg = parentOrg;
// 	}
// 	public List<SysOrg> getChildren() {
// 		return children;
// 	}
// 	public void setChildren(List<SysOrg> children) {
// 		this.children = children;
// 	}
// 	
// }
// 
// Path: src/main/java/com/aibibang/web/system/service/SysOrgService.java
// public interface SysOrgService {
// 
// 	public List<SysOrg> find(SysOrg org);
// 	
// 	public List<SysOrg> findForTreeTable(Long parentId);
// 	
// 	public SysOrg getById(Long id);
// 	
// 	public void add(SysOrg org);
// 	
// 	public void update(SysOrg org);
// 	
// 	public void delete(Long id);
// }


// Path: src/main/java/com/aibibang/web/system/service/impl/SysOrgServiceImpl.java
import java.text.DecimalFormat;
import java.util.List;
import javax.annotation.Resource;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;
import com.aibibang.web.system.dao.SysOrgDao;
import com.aibibang.web.system.entity.SysOrg;
import com.aibibang.web.system.service.SysOrgService;

	@Override
	public void add(SysOrg org) {
		
		buildCode(org);
		
		sysOrgDao.add(org);
	}

	@Override
	public void update(SysOrg org) {
		
		// 上层组织改变时，改变组织编码
		SysOrg oldOrg = sysOrgDao.getById(org.getId());
		if(org.getParentId() != oldOrg.getParentId()){
			buildCode(org);
		}
		
		sysOrgDao.update(org);
	}

	@Override
	public void delete(Long id) {
		
		sysOrgDao.delete(id);
	}

	public void deleteChildren(Long id){
		SysOrg param = new SysOrg();
		param.setParentId(id);
		List<SysOrg> children = sysOrgDao.find(param);

		if(children != null && children.size() > 0){
