package io.codearte.jfairy.producer.company.locale.zh;
import io.codearte.jfairy.producer.BaseProducer;
import io.codearte.jfairy.producer.VATIdentificationNumberProvider;
import java.util.Random;
import static io.codearte.jfairy.producer.util.ZhFairyUtil.*;
/**
* io.codearte.jfairy.producer.company.locale.zh.ZhVATIdentificationNumberProvider
*
* 6 digit for area location, 9 char (0-9A-Z) for organization code (2 char for business type, 2 char for industry type, 5 char for order number), total 15 digit
*
* @author lhfcws
* @since 2017/3/1
*/
public class ZhVATIdentificationNumberProvider implements VATIdentificationNumberProvider {
private static BaseProducer baseProducer = new BaseProducer(new Random());
@Override
public String get() {
StringBuilder vatBuilder = new StringBuilder();
vatBuilder.append(baseProducer.randomElement(PROV_LIST));
vatBuilder.append(getRandomNumStr(baseProducer, CITY_MAX, 2));
vatBuilder.append(getRandomNumStr(baseProducer, DISTRICT_MAX, 2));
vatBuilder.append(getChars(9));
return vatBuilder.toString();
}
private char getChar() {
int rndNum = baseProducer.randomBetween(0, 35);
if (rndNum < 10) {
return (char) (49 + rndNum);
} else {
return (char) (65 + rndNum - 10);
}
}
private String getChars(int paddingSize) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < paddingSize; i++) {
sb.append(getChar());
}
return sb.toString();
}
}