package org.quickbundle.orgauth.util;
import java.util.ArrayList;
import java.util.List;
import org.quickbundle.util.numeral.RmBaseXNumeral;
import org.quickbundle.orgauth.cache.RmPartyViewCache;
public class RmPartyRelationCode extends RmBaseXNumeral {
public final static String MIN_VALUE = "000";
/**
* 默认3位的体系,用于组织结构编码
* @param parentPartyCode 父全编码
* @param maxChildPartyCode 子全编码
*/
public RmPartyRelationCode(String parentPartyCode, String maxChildPartyCode) {
super(parentPartyCode == null ? maxChildPartyCode : maxChildPartyCode.substring(parentPartyCode.length()));
}
/**
* 默认3位的体系,用于组织结构编码
* @param maxChildPartySelfCode 子自身编码
*/
public RmPartyRelationCode(String maxChildPartySelfCode) {
super(maxChildPartySelfCode);
}
/**
* 切割party_child_code,获得包含自身、所有祖先的编码数组
* @param view_id
* @param partyCode
* @return
*/
public static String[] splitPartyCode(String partyCode, String view_id) {
List<String> lCode = new ArrayList<String>();
if(partyCode != null && partyCode.length() > 0) {
String remainStr = partyCode;
String bk = RmPartyViewCache.getPartyView(view_id).getBs_keyword();
while(remainStr.length() > 0 && !bk.equals(remainStr)) {
lCode.add(remainStr);
remainStr = remainStr.substring(0, remainStr.length()-MIN_VALUE.length());
}
}
return lCode.toArray(new String[0]);
}
}