日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

JAVA生成企业组织机构代码、营业执照代码、税务登记号码、统一社会信用代码并校验

發(fā)布時(shí)間:2023/12/31 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA生成企业组织机构代码、营业执照代码、税务登记号码、统一社会信用代码并校验 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

生成代碼及校驗(yàn)代碼如下:JAVA生成企業(yè)組織機(jī)構(gòu)代碼、營(yíng)業(yè)執(zhí)照代碼、稅務(wù)登記號(hào)碼、統(tǒng)一社會(huì)信用代碼并校驗(yàn) - CodeAntenna

import java.util.HashMap; import java.util.Map; import java.util.Random;public class ProductData {//生成企業(yè)組織機(jī)構(gòu)代碼public static String getORGANIZATION_CODE(){int [] in = { 3, 7, 9, 10, 5, 8, 4, 2 };String data = "";String yz = "";int a = 0;//隨機(jī)生成英文字母和數(shù)字for (int i = 0; i < in.length; i++){String word = getCharAndNumr(1,0).toUpperCase();if (word.matches("[A-Z]")) {a += in[i] * getAsc(word);}else{a += in[i] * Integer.parseInt(word);}data += word;}//確定序列int c9 = 11 - a % 11;//判斷c9大小,安裝 X 0 或者C9if (c9 == 10) {yz = "X";} else if (c9 == 11) {yz = "0";} else {yz = c9 + "";}data += "-"+yz;return data.toUpperCase();}//生成營(yíng)業(yè)執(zhí)照代碼public static String getBUSINESS_LISENSE_CODE(){String data = "";//隨機(jī)生成14位數(shù)字String number = getCharAndNumr(14,1);//獲取校驗(yàn)后的第15位String yz = getBusinesslicenseCheckBit(number)+"";//拼湊data = number+yz;return data.toUpperCase();}//生成稅務(wù)登記號(hào)碼public static String getTAX_REGISTRATION_CODE(){String data = "";String first = "73"+getCharAndNumr(4,2);String end = getORGANIZATION_CODE();data= first+end;data =data.toUpperCase().replaceAll("-","");if (!test5(data.toUpperCase())) getTAX_REGISTRATION_CODE();return data;}//生成統(tǒng)一社會(huì)信用代碼public static String getSOCIAL_CREDIT_CODE(){String data = "";String first = "Y2"+getCharAndNumr(6,3)+getCharAndNumr(9,3);String end = String.valueOf(getUSCCCheckBit(first));data = first + end;if (!test4(data.toUpperCase())) getSOCIAL_CREDIT_CODE();return data.toUpperCase();}public static String getCharAndNumr(int length,int status) {Random random = new Random();StringBuffer valSb = new StringBuffer();String charStr = "0123456789abcdefghijklmnopqrstuvwxy";if (status == 1) charStr = "0123456789";if (status == 2) charStr = "0123456789";if (status == 3) charStr = "0123456789ABCDEFGHJKLMNPQRTUWXY";int charLength = charStr.length();for (int i = 0; i < length; i++) {int index = random.nextInt(charLength);if (status==1&&index==0){ index =3;}valSb.append(charStr.charAt(index));}return valSb.toString();}private static char getUSCCCheckBit(String businessCode) {if (("".equals(businessCode)) || businessCode.length() != 17) {return 0;}String baseCode = "0123456789ABCDEFGHJKLMNPQRTUWXY";char[] baseCodeArray = baseCode.toCharArray();Map<Character, Integer> codes = new HashMap<Character, Integer>();for (int i = 0; i < baseCode.length(); i++) {codes.put(baseCodeArray[i], i);}char[] businessCodeArray = businessCode.toCharArray();int[] wi = { 1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28 };int sum = 0;for (int i = 0; i < 17; i++) {Character key = businessCodeArray[i];if (baseCode.indexOf(key) == -1) {return 0;}sum += (codes.get(key) * wi[i]);}int value = 31 - sum % 31;if(value == 31){value = 0;}return baseCodeArray[value];}public static int getAsc(String st) {byte[] gc = st.getBytes();int ascNum = (int) gc[0] - 55;return ascNum;}/*** 校驗(yàn) 營(yíng)業(yè)執(zhí)照注冊(cè)號(hào)* @param businesslicense* @return*/public static int getBusinesslicenseCheckBit(String businesslicense){if(businesslicense.length() != 14){return 0;}char[] chars = businesslicense.toCharArray();int[] ints = new int[chars.length];for(int i=0; i<chars.length;i++){ints[i] = Integer.parseInt(String.valueOf(chars[i]));}return getCheckCode(ints);}/*** 獲取 營(yíng)業(yè)執(zhí)照注冊(cè)號(hào)的校驗(yàn)碼* @param* @return bit*/private static int getCheckCode(int[] ints){if (null != ints && ints.length > 1) {int ti = 0;int si = 0;// pi|11+tiint cj = 0;// (si||10==0?10:si||10)*2int pj = 10;// pj=cj|11==0?10:cj|11for (int i=0;i<ints.length;i++) {ti = ints[i];pj = (cj % 11) == 0 ? 10 : (cj % 11);si = pj + ti;cj = (0 == si % 10 ? 10 : si % 10) * 2;if (i == ints.length-1) {pj = (cj % 11) == 0 ? 10 : (cj % 11);return pj == 1 ? 1 : 11 - pj;}}}return -1;}public static String getCheckBit(String code) {String yz = "";int[] in = { 3, 7, 9, 10, 5, 8, 4, 2 };int a = 0;for (int i = 0; i < in.length; i++) {if (code.substring(i, i + 1).matches("[A-Z]")) {a += in[i] * getAsc(code.substring(i, i + 1));}else{a += in[i] * Integer.parseInt(code.substring(i, i + 1));}}int c9 = 11 - a % 11;if (c9 == 10) {yz = "X";} else if (c9 == 11) {yz = "0";} else {yz = c9 + "";}return yz;}public static boolean test(String data){String code = data.replace("-","");return data.endsWith(getCheckBit(code.substring(0,code.length()-1)));}public static boolean test1(String data){return data.endsWith(String.valueOf(getBusinesslicenseCheckBit(data.substring(0,data.length()-1))));}public static boolean test2(String data){return data.endsWith(String.valueOf(getCheckBit(data.substring(6,data.length()-1))));}public static boolean test3(String data){return data.endsWith(String.valueOf(getUSCCCheckBit(data.substring(0,data.length()-1))));}public static boolean test4(String data){if(data==null) {return false;}if (data.length() != 18) {return false;}if(!data.matches("[a-zA-Z0-9]+")) {return false;}String regex = "^([159Y]{1})([1239]{1})([0-9ABCDEFGHJKLMNPQRTUWXY]{6})([0-9ABCDEFGHJKLMNPQRTUWXY]{9})([0-90-9ABCDEFGHJKLMNPQRTUWXY])$";if (!data.matches(regex)) {return false;}return true;}public static boolean test5(String data){String regex = "[1-8][1-6]\\d{4}[a-zA-Z0-9]{9}$";if (!data.matches(regex)) {return false;}elsereturn true;}public static void main(String[] args) throws Exception{// // String code1 = "91530622292785224"; // String code2 = "97028471650403700000"; // // SocialCreditCodeOperation object= new SocialCreditCodeOperation(20562);String code = getORGANIZATION_CODE();System.out.println(code);System.out.println(test(code));code = getBUSINESS_LISENSE_CODE();System.out.println(code);System.out.println(test1(code));code = getTAX_REGISTRATION_CODE();System.out.println(code);System.out.println(test2(code));System.out.println(test5(code));code = getSOCIAL_CREDIT_CODE();System.out.println(code);System.out.println(test3(code));System.out.println("test4: "+test4(code)); // System.out.println(object.dataVerify(code2)); // System.out.println("仿真:" + object.simulation(code2));// System.out.println("屏蔽:" + object.maskingOut(code2)); // System.out.println("替換:" + object.substitution(code2)); // System.out.println("仿真:" + object.simulation(code2)); // System.out.println("變形:" + object.variance(code2)); // System.out.println("加密:" + object.encrypt(code2));}}

【Python實(shí)戰(zhàn)】生成虛擬的統(tǒng)一社會(huì)信用代碼 - 代碼先鋒網(wǎng)

【Python實(shí)戰(zhàn)】生成虛擬的統(tǒng)一社會(huì)信用代碼

技術(shù)標(biāo)簽:?python??統(tǒng)一社會(huì)信用代碼

1、統(tǒng)一社會(huì)信用代碼設(shè)計(jì)為18位,使用阿拉伯?dāng)?shù)字或英文字母表示,由五個(gè)部分組成。
2、第一部分(第1位),為登記管理部門(mén)代碼。
3、第二部分(第2位),為企業(yè)等納稅人類(lèi)別代碼。
4、第三部分(第3-8位),為登記管理機(jī)關(guān)行政區(qū)劃碼。
5、第四部分(第9-17位),為主體標(biāo)識(shí)碼。
6、第五部分(第18位),為校驗(yàn)碼,由系統(tǒng)自動(dòng)生成。

一是預(yù)留前兩位給登記機(jī)關(guān)和機(jī)構(gòu)類(lèi)別,這樣統(tǒng)一社會(huì)信用代碼在應(yīng)用中更加清晰高效,第一位便于登記機(jī)關(guān)管理,可以作為檢索條目,第二位可以準(zhǔn)確給組織機(jī)構(gòu)歸類(lèi),方便細(xì)化分管。
二是在組織機(jī)構(gòu)代碼前增加行政區(qū)劃代碼,這個(gè)組合不難發(fā)現(xiàn)就是稅務(wù)登記證號(hào)碼。這樣就提高了統(tǒng)一社會(huì)代碼的兼容性,在過(guò)渡期內(nèi)稅務(wù)機(jī)關(guān)可以利用這種嵌套規(guī)則更加便利地升級(jí)到新的信用代碼系統(tǒng)。
三是嵌入了組織機(jī)構(gòu)代碼作為主體標(biāo)識(shí)碼。通過(guò)組織機(jī)構(gòu)代碼的唯一性確保社會(huì)信用代碼不會(huì)重碼。換言之,組織機(jī)構(gòu)代碼的唯一性完美“遺傳”給統(tǒng)一社會(huì)信用代碼。
四是統(tǒng)一社會(huì)信用代碼的主體標(biāo)識(shí)碼天生具有的大容量。通過(guò)數(shù)字字母組合,加上指數(shù)級(jí)增長(zhǎng),可以確保在很長(zhǎng)一段時(shí)間內(nèi)無(wú)需升位就可容納大量組織機(jī)構(gòu)。
五是統(tǒng)一社會(huì)信用代碼位數(shù)為18位,和身份證的位數(shù)相同,這一巧妙設(shè)計(jì)在未來(lái)“兩碼管兩人”的應(yīng)用中可以實(shí)現(xiàn)登記、檢索、填表等統(tǒng)一。
六是統(tǒng)一社會(huì)信用代碼中內(nèi)嵌的主體標(biāo)識(shí)碼具有校驗(yàn)位,同時(shí)自身第十八位也是校驗(yàn)位,與身份證號(hào)相比是雙校驗(yàn),確保了號(hào)碼準(zhǔn)確性。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? 法人和其他組織統(tǒng)一社會(huì)信用代碼構(gòu)成

代碼序號(hào)123456789101112131415161718
代碼xxxxxxxxxxxxxxxxxx
說(shuō)明登記管理部門(mén)代碼1位機(jī)構(gòu)類(lèi)別代碼1位登記管理機(jī)關(guān)行政區(qū)劃碼6位主體標(biāo)識(shí)碼(組織機(jī)構(gòu)代碼)9位校驗(yàn)碼1位

# -!- coding: utf-8 -!- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' #作者:cacho_37967865 #博客:https://blog.csdn.net/sinat_37967865 #文件:deal_company_code.py #日期:2019-12-02 #備注:生成虛擬的企業(yè):組織機(jī)構(gòu)代碼(八位數(shù)字(或大寫(xiě)拉丁字母)本體代碼和一位數(shù)字(或大寫(xiě)拉丁字母)校驗(yàn)碼組成)三證合一和一證一碼是指工商營(yíng)業(yè)執(zhí)照,稅務(wù)登記證,組織機(jī)構(gòu)代碼證合并為一張加載統(tǒng)一社會(huì)信用代碼的營(yíng)業(yè)執(zhí)照。統(tǒng)一社會(huì)信用代碼:(登記管理部門(mén)代碼(1位)、機(jī)構(gòu)類(lèi)別代碼(1位)、登記管理機(jī)關(guān)行政區(qū)劃碼(6位)、主體標(biāo)識(shí)碼(組織機(jī)構(gòu)代碼)(9位)和校驗(yàn)碼(1位)5個(gè)部分組成) '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''import random# 統(tǒng)一社會(huì)信用代碼最后一位:代碼字符集 check_dict = {"0": 0, "1": 1, "2": 2, "3": 3, "4": 4, "5": 5, "6": 6, "7": 7, "8": 8, "9": 9,"A": 10, "B": 11, "C": 12, "D": 13, "E": 14, "F": 15, "G": 16, "H": 17, "J": 18, "K": 19, "L": 20, "M": 21,"N": 22, "P": 23, "Q": 24, "R": 25, "T": 26, "U": 27, "W": 28, "X": 29, "Y": 30 } dict_check = {value: key for key, value in check_dict.items()}# 組織機(jī)構(gòu)代碼 9位 def create_organization():weight_code = [3,7,9,10,5,8,4,2] # Wi 代表第i位上的加權(quán)因子=pow(3,i-1)%31org_code = [] # 組織機(jī)構(gòu)代碼列表sum = 0for i in range(8):org_code.append(dict_check[random.randint(0,30)]) # 前八位本體代碼:0~9 + A~Z 31個(gè)sum = sum + check_dict[org_code[i]]*weight_code[i]C9 = 11-sum % 11 # 代表校驗(yàn)碼:11-MOD(∑Ci(i=1→8)×Wi,11)-->前8位加權(quán)后與11取余,然后用11減if C9 == 10:last_code = 'X'elif C9 == 11:last_code = '0'else:last_code = str(C9)code = ''.join(org_code) + '-' +last_code # 組織機(jī)構(gòu)代碼#print(code)return (code)# 統(tǒng)一社會(huì)信用代碼 18位 def create_social_credit():manage_code = [9] # 登記管理部門(mén)代碼:9-工商type_code = [1,2,3,9] # 9-1-企業(yè),9-2-個(gè)體工商戶(hù),9-3-農(nóng)民專(zhuān)業(yè)合作社,9-9-其他area_code = '100000' # 登記管理機(jī)關(guān)行政區(qū)劃碼:100000-國(guó)家用org_code = create_organization().replace('-','') # 組織機(jī)構(gòu)代碼sum = 0weight_code = [1, 3, 9, 27, 19, 26, 16, 17,20,29,25,13,8,24,10,30,28] # Wi 代表第i位上的加權(quán)因子=pow(3,i-1)%31code = str(random.choice(manage_code)) + str(random.choice(type_code)) + area_code + org_codefor i in range(17):sum = sum + check_dict[code[i:i+1]]*weight_code[i]C18 = dict_check[31-sum % 31]social_code = code + C18print(social_code)return social_codeif __name__ == '__main__':#create_organization()create_social_credit()

【Python實(shí)戰(zhàn)】生成虛擬的統(tǒng)一社會(huì)信用代碼 - 代碼先鋒網(wǎng)

總結(jié)

以上是生活随笔為你收集整理的JAVA生成企业组织机构代码、营业执照代码、税务登记号码、统一社会信用代码并校验的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。