diff --git a/api/common/country_codes.php b/api/common/country_codes.php new file mode 100644 index 0000000..31959e9 --- /dev/null +++ b/api/common/country_codes.php @@ -0,0 +1,227 @@ + 中文国籍/地区名) + * 用于海外手机号码归属地识别(对应 DeepSeek 方案一中 phonenumbers 库的国家识别能力)。 + * 覆盖常用国家/地区;未收录区号将返回"未知"。 + */ +return [ + // 1 区:北美 + '1' => '美国/加拿大', + // 7 区:俄罗斯/哈萨克斯坦 + '7' => '俄罗斯', + // 20 区 + '20' => '埃及', + // 27 区:南非 + '27' => '南非', + // 30-39 区:欧洲 + '30' => '希腊', + '31' => '荷兰', + '32' => '比利时', + '33' => '法国', + '34' => '西班牙', + '36' => '匈牙利', + '39' => '意大利', + // 40-49 区 + '40' => '罗马尼亚', + '41' => '瑞士', + '43' => '奥地利', + '44' => '英国', + '45' => '丹麦', + '46' => '瑞典', + '47' => '挪威', + '48' => '波兰', + '49' => '德国', + // 50-59 区 + '51' => '秘鲁', + '52' => '墨西哥', + '53' => '古巴', + '54' => '阿根廷', + '55' => '巴西', + '56' => '智利', + '57' => '哥伦比亚', + '58' => '委内瑞拉', + // 60-69 区 + '60' => '马来西亚', + '61' => '澳大利亚', + '62' => '印度尼西亚', + '63' => '菲律宾', + '64' => '新西兰', + '65' => '新加坡', + '66' => '泰国', + // 7x 区:俄罗斯等(已在上方) + // 80-89 区 + '81' => '日本', + '82' => '韩国', + '84' => '越南', + '86' => '中国', + // 90-99 区 + '90' => '土耳其', + '91' => '印度', + '92' => '巴基斯坦', + '93' => '阿富汗', + '94' => '斯里兰卡', + '95' => '缅甸', + '96' => '约旦', + '97' => '叙利亚', + '98' => '伊朗', + // 其他常见 + '211' => '南苏丹', + '212' => '摩洛哥', + '213' => '阿尔及利亚', + '216' => '突尼斯', + '218' => '利比亚', + '220' => '冈比亚', + '221' => '塞内加尔', + '222' => '毛里塔尼亚', + '223' => '马里', + '224' => '几内亚', + '225' => '科特迪瓦', + '226' => '布基纳法索', + '227' => '尼日尔', + '228' => '多哥', + '229' => '贝宁', + '230' => '毛里求斯', + '231' => '利比里亚', + '232' => '塞拉利昂', + '233' => '加纳', + '234' => '尼日利亚', + '235' => '乍得', + '236' => '中非', + '237' => '喀麦隆', + '238' => '佛得角', + '239' => '圣多美和普林西比', + '240' => '赤道几内亚', + '241' => '加蓬', + '242' => '刚果(布)', + '243' => '刚果(金)', + '244' => '安哥拉', + '245' => '几内亚比绍', + '246' => '迪戈加西亚', + '248' => '塞舌尔', + '249' => '苏丹', + '250' => '卢旺达', + '251' => '埃塞俄比亚', + '252' => '索马里', + '253' => '吉布提', + '254' => '肯尼亚', + '255' => '坦桑尼亚', + '256' => '乌干达', + '257' => '布隆迪', + '258' => '莫桑比克', + '260' => '赞比亚', + '261' => '马达加斯加', + '262' => '留尼汪/马约特', + '263' => '津巴布韦', + '264' => '纳米比亚', + '265' => '马拉维', + '266' => '莱索托', + '267' => '博茨瓦纳', + '268' => '斯威士兰', + '269' => '科摩罗', + '290' => '圣赫勒拿', + '291' => '厄立特里亚', + '297' => '阿鲁巴', + '298' => '法罗群岛', + '299' => '格陵兰', + '350' => '直布罗陀', + '351' => '葡萄牙', + '352' => '卢森堡', + '353' => '爱尔兰', + '354' => '冰岛', + '355' => '阿尔巴尼亚', + '356' => '马耳他', + '357' => '塞浦路斯', + '358' => '芬兰', + '359' => '保加利亚', + '370' => '立陶宛', + '371' => '拉脱维亚', + '372' => '爱沙尼亚', + '373' => '摩尔多瓦', + '374' => '亚美尼亚', + '375' => '白俄罗斯', + '376' => '安道尔', + '377' => '摩纳哥', + '378' => '圣马力诺', + '380' => '乌克兰', + '381' => '塞尔维亚', + '382' => '黑山', + '383' => '科索沃', + '385' => '克罗地亚', + '386' => '斯洛文尼亚', + '387' => '波黑', + '389' => '北马其顿', + '420' => '捷克', + '421' => '斯洛伐克', + '423' => '列支敦士登', + '500' => '福克兰群岛', + '501' => '伯利兹', + '502' => '危地马拉', + '503' => '萨尔瓦多', + '504' => '洪都拉斯', + '505' => '尼加拉瓜', + '506' => '哥斯达黎加', + '507' => '巴拿马', + '508' => '圣皮埃尔和密克隆', + '509' => '海地', + '590' => '瓜德罗普', + '591' => '玻利维亚', + '592' => '圭亚那', + '593' => '厄瓜多尔', + '594' => '法属圭亚那', + '595' => '巴拉圭', + '596' => '马提尼克', + '597' => '苏里南', + '598' => '乌拉圭', + '599' => '加勒比荷兰', + '670' => '东帝汶', + '672' => '南极领地', + '673' => '文莱', + '674' => '瑙鲁', + '675' => '巴布亚新几内亚', + '676' => '汤加', + '677' => '所罗门群岛', + '678' => '瓦努阿图', + '679' => '斐济', + '680' => '帕劳', + '681' => '瓦利斯和富图纳', + '682' => '库克群岛', + '683' => '纽埃', + '685' => '萨摩亚', + '686' => '基里巴斯', + '687' => '新喀里多尼亚', + '688' => '图瓦卢', + '689' => '法属波利尼西亚', + '690' => '托克劳', + '691' => '密克罗尼西亚', + '692' => '马绍尔群岛', + '850' => '朝鲜', + '852' => '中国香港', + '853' => '中国澳门', + '855' => '柬埔寨', + '856' => '老挝', + '880' => '孟加拉国', + '886' => '中国台湾', + '960' => '马尔代夫', + '961' => '黎巴嫩', + '962' => '约旦', + '963' => '叙利亚', + '964' => '伊拉克', + '965' => '科威特', + '966' => '沙特阿拉伯', + '967' => '也门', + '968' => '阿曼', + '970' => '巴勒斯坦', + '971' => '阿联酋', + '972' => '以色列', + '973' => '巴林', + '974' => '卡塔尔', + '975' => '不丹', + '976' => '蒙古', + '977' => '尼泊尔', + '992' => '塔吉克斯坦', + '993' => '土库曼斯坦', + '994' => '阿塞拜疆', + '995' => '格鲁吉亚', + '996' => '吉尔吉斯斯坦', + '998' => '乌兹别克斯坦', +]; diff --git a/api/common/dicts.php b/api/common/dicts.php new file mode 100644 index 0000000..f0611ed --- /dev/null +++ b/api/common/dicts.php @@ -0,0 +1,45 @@ +getPdo(); + +$data = []; + +if ($type === 'all' || $type === 'country') { + $data['countries'] = $pdo->query( + "SELECT id, code, name FROM date_dict_country WHERE is_active = 1 ORDER BY sort_order, id" + )->fetchAll(); +} +if ($type === 'all' || $type === 'area') { + $data['areas'] = $pdo->query( + "SELECT id, code, name, parent_code FROM date_dict_area WHERE is_active = 1 ORDER BY sort_order, id" + )->fetchAll(); +} +if ($type === 'all' || $type === 'industry') { + $data['industries'] = $pdo->query( + "SELECT id, code, name, parent_code FROM date_dict_industry WHERE is_active = 1 ORDER BY sort_order, id" + )->fetchAll(); +} +if ($type === 'all' || $type === 'certificate') { + $data['certificates'] = $pdo->query( + "SELECT id, code, name FROM date_dict_certificate WHERE is_active = 1 ORDER BY sort_order, id" + )->fetchAll(); +} +if ($type === 'all' || $type === 'source_channel') { + $data['source_channels'] = $pdo->query( + "SELECT id, name FROM source_channels WHERE is_active = 1 ORDER BY sort_order, id" + )->fetchAll(); +} + +Response::success($data); diff --git a/api/common/helpers.php b/api/common/helpers.php index 30ad0f7..5b75b2b 100644 --- a/api/common/helpers.php +++ b/api/common/helpers.php @@ -14,6 +14,7 @@ const COMPANY_FIELDS = [ 'industry' => 's', 'industry_subdivision' => 's', 'latest_employee_count' => 'i', 'latest_annual_revenue' => 's', 'is_listed' => 'i', 'stock_code' => 's', 'website' => 's', + 'source_channel' => 's', 'source_detail' => 's', ]; /** 人员表可写入字段白名单 */ @@ -21,12 +22,13 @@ const PERSON_FIELDS = [ 'union_id' => 's', 'full_name' => 's', 'gender' => 's', 'nationality' => 's', 'id_type' => 's', 'id_number' => 's', 'education' => 's', 'graduated_from' => 's', 'hometown' => 's', 'work_location' => 's', + 'source_channel' => 's', 'source_detail' => 's', ]; /** 媒体(社交账号)表可写入字段白名单 */ const MEDIA_FIELDS = [ 'owner_type' => 's', 'owner_id' => 'i', 'platform' => 's', 'account_id' => 's', - 'profile_url' => 's', 'remark' => 's', 'is_primary' => 'i', + 'profile_url' => 's', 'remark' => 's', 'is_primary' => 'i', 'is_defult' => 'i', ]; /** 媒体商业属性表可写入字段白名单 */ @@ -173,7 +175,7 @@ function saveCompanyCertifications($pdo, $companyId, $certifications) return; } - $valid = $pdo->prepare("SELECT id FROM certification_types WHERE id = ?"); + $valid = $pdo->prepare("SELECT id FROM date_dict_certificate WHERE id = ?"); $ins = $pdo->prepare( "INSERT INTO company_certifications (company_id, certification_type_id, certificate_number, issue_date, expiry_date) diff --git a/api/common/phone_geo.php b/api/common/phone_geo.php new file mode 100644 index 0000000..8a4a996 --- /dev/null +++ b/api/common/phone_geo.php @@ -0,0 +1,229 @@ + $special, 'province' => '', 'city' => '', 'label' => $special, 'found' => true]; + } + + // 2) 中国大陆号码:+86/0086 开头 或 11位以 1 开头 + if (isChinaMobile($digits, $hasPlus)) { + $geo = lookupChinaPhoneDat($digits); + if ($geo !== null) { + return [ + 'country' => '中国', + 'province' => $geo['province'], + 'city' => $geo['city'], + 'label' => '中国-' . $geo['province'] . ($geo['city'] && $geo['city'] !== $geo['province'] ? '-' . $geo['city'] : ''), + 'found' => true, + ]; + } + return ['country' => '中国', 'province' => '', 'city' => '', 'label' => '中国', 'found' => false]; + } + + // 3) 海外号码:识别国籍(国家区号表) + $country = lookupCountryByCode($digits); + if ($country !== null) { + return ['country' => $country, 'province' => '', 'city' => '', 'label' => $country, 'found' => true]; + } + + return ['country' => '', 'province' => '', 'city' => '', 'label' => '未知', 'found' => false]; +} + +/** 港澳台特殊识别 */ +function specialRegion($digits) +{ + // 852 香港 / 853 澳门 / 886 台湾(号码 8-9 位) + if (strpos($digits, '852') === 0 && strlen($digits) >= 11) return '中国香港'; + if (strpos($digits, '853') === 0 && strlen($digits) >= 11) return '中国澳门'; + if (strpos($digits, '886') === 0 && strlen($digits) >= 12) return '中国台湾'; + return null; +} + +/** 是否中国大陆手机号 */ +function isChinaMobile($digits, $hasPlus) +{ + // +86 或 0086 开头(去除前缀后为 11 位 1 开头) + if (strpos($digits, '86') === 0 && strlen($digits) === 13) { + return preg_match('/^861[3-9]\d{9}$/', $digits) === 1; + } + // 纯 11 位 1 开头(无国际前缀) + if (!$hasPlus && strlen($digits) === 11 && $digits[0] === '1') { + return preg_match('/^1[3-9]\d{9}$/', $digits) === 1; + } + return false; +} + +/** 使用 phone.dat 查询国内省市 */ +function lookupChinaPhoneDat($digits) +{ + static $loader = null; + if ($loader === null) { + $loader = new PhoneDatLoader(__DIR__ . '/../../data/phone.dat'); + } + // 提取 11 位号码中的前 7 位号段(如 1381234);带 86 前缀先去前缀 + $local = preg_replace('/^86/', '', $digits); + $prefix7 = substr($local, 0, 7); + if (strlen($prefix7) !== 7 || !preg_match('/^\d{7}$/', $prefix7)) { + return null; + } + return $loader->find($prefix7); +} + +/** 海外号码:国家区号表识别国籍 */ +function lookupCountryByCode($digits) +{ + static $map = null; + if ($map === null) { + $map = require __DIR__ . '/country_codes.php'; + } + // 依次尝试 3 位 / 2 位 / 1 位区号 + for ($len = 3; $len >= 1; $len--) { + $code = substr($digits, 0, $len); + if (isset($map[$code])) { + return $map[$code]; + } + } + return null; +} + +/* ==================== phone.dat 解析器(PHP 移植) ==================== */ + +/** + * phone.dat 文件解析器 + * 文件格式(与 Python phone 库一致): + * - 头部:4字节版本号 + 4字节首条记录偏移 + * - 记录:每条 9 字节 = 4字节号段(int) + 4字节数据偏移(int) + 1字节号码类型 + * - 数据区:省份|城市|邮编|区号 (竖线分隔,\0 结尾) + */ +class PhoneDatLoader +{ + private $buf; + private $firstOffset; + private $count; + + public function __construct($file) + { + $this->buf = file_get_contents($file); + if ($this->buf === false || strlen($this->buf) < 8) { + $this->buf = ''; + $this->firstOffset = 0; + $this->count = 0; + return; + } + $head = unpack('a4version/ioffset', substr($this->buf, 0, 8)); + $this->firstOffset = $head['offset']; + $this->count = (int)((strlen($this->buf) - $this->firstOffset) / 9); + } + + /** + * 按 7 位号段查询 + * @param string $prefix7 如 "1381234" + * @return array|null ['province'=>, 'city'=>, 'zip_code'=>, 'area_code'=>, 'phone_type'=>] + */ + public function find($prefix7) + { + if ($this->count <= 0 || !preg_match('/^\d{7}$/', (string)$prefix7)) { + return null; + } + $intPhone = (int)$prefix7; + $left = 0; + $right = $this->count; + $buflen = strlen($this->buf); + + while ($left <= $right) { + $middle = (int)(($left + $right) / 2); + $offset = $this->firstOffset + $middle * 9; + if ($offset >= $buflen) { + return null; + } + $rec = unpack('iprefix/irecord_offset/Ctype', substr($this->buf, $offset, 9)); + if ($rec['prefix'] > $intPhone) { + $right = $middle - 1; + } elseif ($rec['prefix'] < $intPhone) { + $left = $middle + 1; + } else { + $content = $this->readRecord($rec['record_offset']); + if ($content === null) { + return null; + } + $parts = explode('|', $content); + return [ + 'province' => $parts[0] ?? '', + 'city' => $parts[1] ?? '', + 'zip_code' => $parts[2] ?? '', + 'area_code' => $parts[3] ?? '', + 'phone_type' => $this->typeName($rec['type']), + ]; + } + } + return null; + } + + private function readRecord($offset) + { + $end = strpos($this->buf, "\x00", $offset); + if ($end === false) { + return null; + } + return substr($this->buf, $offset, $end - $offset); + } + + private function typeName($no) + { + $map = [ + 1 => '移动', 2 => '联通', 3 => '电信', + 4 => '电信虚拟运营商', 5 => '联通虚拟运营商', 6 => '移动虚拟运营商', + 7 => '广电', 8 => '广电虚拟运营商', + ]; + return $map[$no] ?? '未知'; + } +} diff --git a/api/company/cert_types.php b/api/company/cert_types.php index 11392e2..872713e 100644 --- a/api/company/cert_types.php +++ b/api/company/cert_types.php @@ -2,6 +2,7 @@ /** * 认证类型字典接口 GET /api/company/cert_types.php * 返回启用中的认证类型(如:瞪羚企业、国家高新技术企业等),供编辑弹窗下拉使用 + * 数据源:date_dict_certificate(原 certification_types,v1.0.16 改名) */ require_once __DIR__ . '/../common/db.php'; require_once __DIR__ . '/../common/response.php'; @@ -10,6 +11,6 @@ require_once __DIR__ . '/../common/auth.php'; checkPermission('company'); $pdo = DB::getInstance()->getPdo(); -$types = $pdo->query("SELECT id, name FROM certification_types WHERE is_active = 1 ORDER BY sort_order, id")->fetchAll(); +$types = $pdo->query("SELECT id, name FROM date_dict_certificate WHERE is_active = 1 ORDER BY sort_order, id")->fetchAll(); Response::success(['types' => $types]); diff --git a/api/company/detail.php b/api/company/detail.php index d195cb0..4b8be61 100644 --- a/api/company/detail.php +++ b/api/company/detail.php @@ -1,7 +1,7 @@ prepare("SELECT id, category_name, category_description, is_core, is_active FROM company_products WHERE company_id = ? AND is_active = 1"); $products->execute([$id]); -$needs = $pdo->prepare("SELECT id, contact_person, need_category, target_product_category, application_scenario, description, is_valid, created_at FROM company_needs WHERE company_id = ? ORDER BY id DESC"); -$needs->execute([$id]); - $docs = $pdo->prepare( "SELECT cd.id, cd.doc_name, cd.storage_path, cd.file_type, cd.publish_date, cd.is_active FROM company_documents cd @@ -53,13 +50,22 @@ $certs = $pdo->prepare( "SELECT cc.certification_type_id, ct.name AS certification_name, cc.certificate_number, cc.issue_date, cc.expiry_date FROM company_certifications cc - INNER JOIN certification_types ct ON ct.id = cc.certification_type_id + INNER JOIN date_dict_certificate ct ON ct.id = cc.certification_type_id WHERE cc.company_id = ? ORDER BY ct.sort_order, ct.id" ); $certs->execute([$id]); -$certTypes = $pdo->query("SELECT id, name FROM certification_types WHERE is_active = 1 ORDER BY sort_order, id")->fetchAll(); +$certTypes = $pdo->query("SELECT id, name FROM date_dict_certificate WHERE is_active = 1 ORDER BY sort_order, id")->fetchAll(); + +// 联系方式:social_accounts 中属于该公司的记录(仅展示,无修改/删除入口) +$accounts = $pdo->prepare( + "SELECT id, platform, account_id, profile_url, remark, is_primary, is_defult, is_active, created_at + FROM social_accounts + WHERE owner_type = 'company' AND owner_id = ? + ORDER BY is_defult DESC, is_primary DESC, id DESC" +); +$accounts->execute([$id]); // 关联联系人(工作经历 + 联系方式) $contacts = $pdo->prepare( @@ -79,11 +85,11 @@ $contacts->execute([$id, $id]); Response::success([ 'company' => $company, 'products' => $products->fetchAll(), - 'needs' => $needs->fetchAll(), 'documents' => $docs->fetchAll(), 'financials' => $financials->fetchAll(), 'relations' => $relations->fetchAll(), 'contacts' => $contacts->fetchAll(), + 'accounts' => $accounts->fetchAll(), 'certifications' => $certs->fetchAll(), 'certification_types' => $certTypes, ]); diff --git a/api/company/employees.php b/api/company/employees.php index 33cfa9c..ad1b02f 100644 --- a/api/company/employees.php +++ b/api/company/employees.php @@ -60,10 +60,10 @@ $stmt = $pdo->prepare( pwe.job_level, pwe.start_date, pwe.end_date, pwe.is_current, (SELECT sa.account_id FROM social_accounts sa WHERE sa.owner_type = 'person' AND sa.owner_id = p.id AND sa.platform = 'phone' AND sa.is_active = 1 - ORDER BY sa.is_primary DESC LIMIT 1) AS phone, + ORDER BY sa.is_defult DESC, sa.is_primary DESC LIMIT 1) AS phone, (SELECT sa.account_id FROM social_accounts sa WHERE sa.owner_type = 'person' AND sa.owner_id = p.id AND sa.platform = 'email' AND sa.is_active = 1 - ORDER BY sa.is_primary DESC LIMIT 1) AS email + ORDER BY sa.is_defult DESC, sa.is_primary DESC LIMIT 1) AS email FROM person_work_experiences pwe INNER JOIN persons p ON p.id = pwe.person_id WHERE $whereSql diff --git a/api/company/export.php b/api/company/export.php index 3a41405..6260b13 100644 --- a/api/company/export.php +++ b/api/company/export.php @@ -32,7 +32,7 @@ $stmt = $pdo->prepare( "SELECT id, name_zh, name_en, business_role, country, registration_number, address, legal_representative, industry, industry_subdivision, website, registered_capital, established_date, latest_employee_count, latest_annual_revenue, - is_listed, stock_code, created_at + is_listed, stock_code, source_channel, source_detail, created_at FROM companies WHERE id IN ($in) AND is_active = 1 ORDER BY id DESC" ); $stmt->execute($idList); @@ -44,14 +44,14 @@ header('Content-Type: text/csv; charset=utf-8'); header('Content-Disposition: attachment; filename="companies_' . date('Ymd_His') . '.csv"'); echo "\xEF\xBB\xBF"; // UTF-8 BOM,便于 Excel 直接打开 $out = fopen('php://output', 'w'); -fputcsv($out, ['ID', '公司名称', '英文名称', '业务角色', '国家/地区', '注册号', '地址', '法人', '行业', '行业细分', '官网', '注册资本', '成立日期', '员工数', '年营收', '是否上市', '股票代码', '创建时间']); +fputcsv($out, ['ID', '公司名称', '英文名称', '业务角色', '国家/地区', '注册号', '地址', '法人', '行业', '行业细分', '官网', '注册资本', '成立日期', '员工数', '年营收', '是否上市', '股票代码', '来源渠道', '来源详情', '创建时间']); foreach ($list as $r) { fputcsv($out, [ $r['id'], $r['name_zh'], $r['name_en'], $r['business_role'], $r['country'], $r['registration_number'], $r['address'], $r['legal_representative'], $r['industry'], $r['industry_subdivision'], $r['website'], $r['registered_capital'], $r['established_date'], $r['latest_employee_count'], $r['latest_annual_revenue'], - $r['is_listed'], $r['stock_code'], date('Y-m-d', strtotime($r['created_at'])), + $r['is_listed'], $r['stock_code'], $r['source_channel'], $r['source_detail'], date('Y-m-d', strtotime($r['created_at'])), ]); } fclose($out); diff --git a/api/company/import.php b/api/company/import.php index 2c44fd0..8dcb71f 100644 --- a/api/company/import.php +++ b/api/company/import.php @@ -36,6 +36,7 @@ $map = [ 'industry' => 'industry', 'industry_subdivision' => 'industry_subdivision', 'website' => 'website', 'registered_capital' => 'registered_capital', 'established_date' => 'established_date', 'is_listed' => 'is_listed', 'stock_code' => 'stock_code', + 'source_channel' => 'source_channel', 'source_detail' => 'source_detail', ]; $pdo = DB::getInstance()->getPdo(); @@ -46,8 +47,8 @@ $stmt = $pdo->prepare( "INSERT INTO companies (name_zh, name_en, display_name, business_role, country, registration_number, address, legal_form, legal_representative, industry, industry_subdivision, website, - registered_capital, established_date, is_listed, stock_code) - VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)" + registered_capital, established_date, is_listed, stock_code, source_channel, source_detail) + VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)" ); while (($row = fgetcsv($handle)) !== false) { @@ -72,6 +73,7 @@ while (($row = fgetcsv($handle)) !== false) { $rec['industry'] ?? null, $rec['industry_subdivision'] ?? null, $rec['website'] ?? null, $rec['registered_capital'] ?? null, $rec['established_date'], ($rec['is_listed'] ?? 0) ? 1 : 0, $rec['stock_code'] ?? null, + $rec['source_channel'] ?? null, $rec['source_detail'] ?? null, ]); $inserted++; } catch (Exception $e) { diff --git a/api/company/list.php b/api/company/list.php index 57579c6..d5eb258 100644 --- a/api/company/list.php +++ b/api/company/list.php @@ -55,7 +55,7 @@ $stmt = $pdo->prepare( "SELECT id, name_zh, name_en, display_name, business_role, country, registration_number, address, legal_representative, industry, industry_subdivision, website, latest_employee_count, latest_annual_revenue, is_listed, stock_code, - is_active, created_at, updated_at + source_channel, source_detail, is_active, created_at, updated_at FROM companies WHERE $whereSql ORDER BY id DESC diff --git a/api/media/export.php b/api/media/export.php index 69de566..a5fe9a9 100644 --- a/api/media/export.php +++ b/api/media/export.php @@ -32,7 +32,7 @@ $whereSql = implode(' AND ', $where); $pdo = DB::getInstance()->getPdo(); $stmt = $pdo->prepare( - "SELECT sa.id, sa.owner_type, sa.owner_id, sa.platform, sa.account_id, sa.profile_url, sa.remark, + "SELECT sa.id, sa.owner_type, sa.owner_id, sa.platform, sa.account_id, sa.profile_url, sa.remark, sa.is_defult, mca.account_level, mca.content_categories, mca.follower_count, mca.avg_read_count, mca.certification_type, sa.created_at, CASE sa.owner_type @@ -52,11 +52,11 @@ header('Content-Type: text/csv; charset=utf-8'); header('Content-Disposition: attachment; filename="media_' . date('Ymd_His') . '.csv"'); echo "\xEF\xBB\xBF"; $out = fopen('php://output', 'w'); -fputcsv($out, ['ID', '归属类型', '归属ID', '归属名称', '平台', '账号', '主页链接', '备注', '等级', '内容领域', '粉丝数', '平均阅读', '认证类型', '创建时间']); +fputcsv($out, ['ID', '归属类型', '归属ID', '归属名称', '平台', '账号', '主页链接', '备注', '是否常用', '等级', '内容领域', '粉丝数', '平均阅读', '认证类型', '创建时间']); foreach ($list as $r) { fputcsv($out, [ $r['id'], $r['owner_type'], $r['owner_id'], $r['owner_name'], $r['platform'], - $r['account_id'], $r['profile_url'], $r['remark'], $r['account_level'], + $r['account_id'], $r['profile_url'], $r['remark'], $r['is_defult'] ? '常用' : '备用', $r['account_level'], $r['content_categories'], $r['follower_count'], $r['avg_read_count'], $r['certification_type'], $r['created_at'], ]); diff --git a/api/media/import.php b/api/media/import.php index 1f3ab65..9aa9083 100644 --- a/api/media/import.php +++ b/api/media/import.php @@ -1,7 +1,7 @@ getPdo(); $insAccount = $pdo->prepare( - "INSERT INTO social_accounts (owner_type, owner_id, platform, account_id, profile_url, remark, is_primary, is_active) - VALUES (?,?,?,?,?,?,?,1)" + "INSERT INTO social_accounts (owner_type, owner_id, platform, account_id, profile_url, remark, is_primary, is_defult, is_active) + VALUES (?,?,?,?,?,?,?,?,1)" ); $insAttr = $pdo->prepare( "INSERT INTO media_commercial_attributes @@ -75,6 +75,7 @@ while (($row = fgetcsv($handle)) !== false) { $insAccount->execute([ $ownerType, $ownerId, $rec['platform'], $rec['account_id'], $rec['profile_url'] ?? null, $rec['remark'] ?? null, !empty($rec['is_primary']) ? 1 : 0, + !empty($rec['is_defult']) ? 1 : 0, ]); $newId = (int)$pdo->lastInsertId(); if (!empty($rec['account_level']) || !empty($rec['certification_type'])) { diff --git a/api/media/list.php b/api/media/list.php index 678d0f2..ca023bd 100644 --- a/api/media/list.php +++ b/api/media/list.php @@ -51,7 +51,7 @@ $total = (int)$stmt->fetchColumn(); $offset = ($page - 1) * $limit; $stmt = $pdo->prepare( "SELECT sa.id, sa.owner_type, sa.owner_id, sa.platform, sa.account_id, sa.profile_url, - sa.remark, sa.is_primary, sa.is_active, sa.created_at, + sa.remark, sa.is_primary, sa.is_defult, sa.is_active, sa.created_at, mca.account_level, mca.content_categories, mca.follower_count, mca.avg_read_count, mca.certification_type, mca.special_requirements, mca.media_remark, CASE sa.owner_type diff --git a/api/person/add.php b/api/person/add.php index e079ce7..34d42cc 100644 --- a/api/person/add.php +++ b/api/person/add.php @@ -34,18 +34,18 @@ if ((int)$chk->fetchColumn() > 0) { $pdo->prepare("INSERT INTO persons $sql")->execute($params); $newId = (int)$pdo->lastInsertId(); -// 写入联系方式 +// 写入联系方式(v1.0.16:支持 is_defult 字段,1常用/0备用) $contacts = json_decode($_POST['contacts'] ?? '[]', true); if (is_array($contacts)) { $ins = $pdo->prepare( - "INSERT INTO social_accounts (owner_type, owner_id, platform, account_id, profile_url, remark, is_primary) - VALUES ('person', ?, ?, ?, ?, ?, ?)" + "INSERT INTO social_accounts (owner_type, owner_id, platform, account_id, profile_url, remark, is_primary, is_defult) + VALUES ('person', ?, ?, ?, ?, ?, ?, ?)" ); foreach ($contacts as $c) { $platform = trim($c['platform'] ?? ''); $accountId = trim($c['account_id'] ?? ''); if ($platform === '' || $accountId === '') continue; - $ins->execute([$newId, $platform, $accountId, $c['profile_url'] ?? null, $c['remark'] ?? null, !empty($c['is_primary']) ? 1 : 0]); + $ins->execute([$newId, $platform, $accountId, $c['profile_url'] ?? null, $c['remark'] ?? null, !empty($c['is_primary']) ? 1 : 0, !empty($c['is_defult']) ? 1 : 0]); } } diff --git a/api/person/detail.php b/api/person/detail.php index 734d16b..7325fb5 100644 --- a/api/person/detail.php +++ b/api/person/detail.php @@ -1,6 +1,7 @@ prepare("SELECT id, platform, account_id, profile_url, remark, is_primary, is_active FROM social_accounts WHERE owner_type = 'person' AND owner_id = ? ORDER BY is_primary DESC, id DESC"); +$accounts = $pdo->prepare("SELECT id, platform, account_id, profile_url, remark, is_primary, is_defult, is_active FROM social_accounts WHERE owner_type = 'person' AND owner_id = ? ORDER BY is_defult DESC, is_primary DESC, id DESC"); $accounts->execute([$id]); +$accountList = $accounts->fetchAll(); + +// 常用手机/邮箱(优先 is_defult=1,其次 is_primary=1) +$phone = ''; +$email = ''; +foreach ($accountList as $a) { + if ($phone === '' && $a['platform'] === 'phone') { + $phone = $a['account_id']; + } + if ($email === '' && $a['platform'] === 'email') { + $email = $a['account_id']; + } + if ($phone !== '' && $email !== '') { + break; + } +} $experiences = $pdo->prepare( "SELECT pwe.id, pwe.company_id, c.display_name, c.industry, pwe.position, pwe.department, @@ -35,4 +52,10 @@ $experiences = $pdo->prepare( ); $experiences->execute([$id]); -Response::success(['person' => $person, 'accounts' => $accounts->fetchAll(), 'experiences' => $experiences->fetchAll()]); +Response::success([ + 'person' => $person, + 'accounts' => $accountList, + 'phone' => $phone, + 'email' => $email, + 'experiences' => $experiences->fetchAll(), +]); diff --git a/api/person/export.php b/api/person/export.php index d3d6b98..2f2ad54 100644 --- a/api/person/export.php +++ b/api/person/export.php @@ -33,9 +33,9 @@ $whereSql = implode(' AND ', $where); $pdo = DB::getInstance()->getPdo(); $stmt = $pdo->prepare( "SELECT p.id, p.union_id, p.full_name, p.gender, p.nationality, p.id_type, p.id_number, - p.education, p.graduated_from, p.hometown, p.work_location, p.created_at, - (SELECT sa.account_id FROM social_accounts sa WHERE sa.owner_type='person' AND sa.owner_id=p.id AND sa.platform='phone' AND sa.is_active=1 LIMIT 1) AS phone, - (SELECT sa.account_id FROM social_accounts sa WHERE sa.owner_type='person' AND sa.owner_id=p.id AND sa.platform='email' AND sa.is_active=1 LIMIT 1) AS email + p.education, p.graduated_from, p.hometown, p.work_location, p.source_channel, p.source_detail, p.created_at, + (SELECT sa.account_id FROM social_accounts sa WHERE sa.owner_type='person' AND sa.owner_id=p.id AND sa.platform='phone' AND sa.is_active=1 ORDER BY sa.is_defult DESC, sa.is_primary DESC LIMIT 1) AS phone, + (SELECT sa.account_id FROM social_accounts sa WHERE sa.owner_type='person' AND sa.owner_id=p.id AND sa.platform='email' AND sa.is_active=1 ORDER BY sa.is_defult DESC, sa.is_primary DESC LIMIT 1) AS email FROM persons p WHERE $whereSql ORDER BY p.id DESC" ); $stmt->execute($params); @@ -47,12 +47,12 @@ header('Content-Type: text/csv; charset=utf-8'); header('Content-Disposition: attachment; filename="persons_' . date('Ymd_His') . '.csv"'); echo "\xEF\xBB\xBF"; $out = fopen('php://output', 'w'); -fputcsv($out, ['ID', 'union_id', '姓名', '性别', '国籍', '证件类型', '证件号', '学历', '毕业院校', '家乡', '工作所在地', '手机', '邮箱', '创建时间']); +fputcsv($out, ['ID', 'union_id', '姓名', '性别', '国籍', '证件类型', '证件号', '学历', '毕业院校', '家乡', '工作所在地', '来源渠道', '来源详情', '手机', '邮箱', '创建时间']); foreach ($list as $r) { fputcsv($out, [ $r['id'], $r['union_id'], $r['full_name'], $r['gender'], $r['nationality'], $r['id_type'], $r['id_number'], $r['education'], $r['graduated_from'], - $r['hometown'], $r['work_location'], $r['phone'], $r['email'], $r['created_at'], + $r['hometown'], $r['work_location'], $r['source_channel'], $r['source_detail'], $r['phone'], $r['email'], $r['created_at'], ]); } fclose($out); diff --git a/api/person/import.php b/api/person/import.php index f5dcdf4..67f3c64 100644 --- a/api/person/import.php +++ b/api/person/import.php @@ -2,8 +2,8 @@ /** * 人员 CSV 导入接口 POST /api/person/import.php (multipart/form-data, 字段名 file) * CSV 表头:union_id,full_name,gender,nationality,id_type,id_number,education, - * graduated_from,hometown,work_location,phone,email - * 仅 full_name 必填;union_id 留空自动生成;phone/email 写入 social_accounts。 + * graduated_from,hometown,work_location,phone,email,source_channel,source_detail + * 仅 full_name 必填;union_id 留空自动生成;phone/email 写入 social_accounts(默认常用)。 */ require_once __DIR__ . '/../common/db.php'; require_once __DIR__ . '/../common/response.php'; @@ -26,12 +26,12 @@ $header = str_getcsv(trim($first)); $pdo = DB::getInstance()->getPdo(); $insPerson = $pdo->prepare( - "INSERT INTO persons (union_id, full_name, gender, nationality, id_type, id_number, education, graduated_from, hometown, work_location) - VALUES (?,?,?,?,?,?,?,?,?,?)" + "INSERT INTO persons (union_id, full_name, gender, nationality, id_type, id_number, education, graduated_from, hometown, work_location, source_channel, source_detail) + VALUES (?,?,?,?,?,?,?,?,?,?,?,?)" ); $insAccount = $pdo->prepare( - "INSERT INTO social_accounts (owner_type, owner_id, platform, account_id, is_primary) - VALUES ('person', ?, ?, ?, ?)" + "INSERT INTO social_accounts (owner_type, owner_id, platform, account_id, is_defult) + VALUES ('person', ?, ?, ?, 1)" ); $inserted = 0; @@ -63,13 +63,14 @@ while (($row = fgetcsv($handle)) !== false) { $unionId, $rec['full_name'], $rec['gender'] ?? '保密', $rec['nationality'] ?? null, $rec['id_type'] ?? null, $rec['id_number'] ?? null, $rec['education'] ?? null, $rec['graduated_from'] ?? null, $rec['hometown'] ?? null, $rec['work_location'] ?? null, + $rec['source_channel'] ?? null, $rec['source_detail'] ?? null, ]); $newId = (int)$pdo->lastInsertId(); if (!empty($rec['phone'])) { - $insAccount->execute([$newId, 'phone', $rec['phone'], 1]); + $insAccount->execute([$newId, 'phone', $rec['phone']]); } if (!empty($rec['email'])) { - $insAccount->execute([$newId, 'email', $rec['email'], 0]); + $insAccount->execute([$newId, 'email', $rec['email']]); } $inserted++; } catch (Exception $e) { diff --git a/api/person/list.php b/api/person/list.php index 7ce861f..f0ca205 100644 --- a/api/person/list.php +++ b/api/person/list.php @@ -3,6 +3,7 @@ * 人员列表接口 GET/POST /api/person/list.php * 参数:page / limit / keyword(姓名/证件号/手机/邮箱)/ gender / nationality / work_location / is_active * 返回:{ list, total, page, limit } + * v1.0.16:联系方式列改为“手机”“邮箱”两个字段(仅返回常用:is_defult=1 优先,其次 is_primary=1) */ require_once __DIR__ . '/../common/db.php'; require_once __DIR__ . '/../common/response.php'; @@ -44,12 +45,21 @@ $stmt = $pdo->prepare("SELECT COUNT(*) FROM persons p WHERE $whereSql"); $stmt->execute($params); $total = (int)$stmt->fetchColumn(); +// 常用手机/邮箱:优先 is_defult=1,其次 is_primary=1,最后取任意一条 +$phoneSql = "(SELECT sa.account_id FROM social_accounts sa + WHERE sa.owner_type = 'person' AND sa.owner_id = p.id AND sa.platform = 'phone' AND sa.is_active = 1 + ORDER BY sa.is_defult DESC, sa.is_primary DESC, sa.id DESC LIMIT 1)"; +$emailSql = "(SELECT sa.account_id FROM social_accounts sa + WHERE sa.owner_type = 'person' AND sa.owner_id = p.id AND sa.platform = 'email' AND sa.is_active = 1 + ORDER BY sa.is_defult DESC, sa.is_primary DESC, sa.id DESC LIMIT 1)"; + $offset = ($page - 1) * $limit; $stmt = $pdo->prepare( "SELECT p.id, p.union_id, p.full_name, p.gender, p.nationality, p.id_type, p.id_number, p.education, p.graduated_from, p.hometown, p.work_location, p.is_active, p.created_at, - (SELECT GROUP_CONCAT(CONCAT(sa.platform, ':', sa.account_id) SEPARATOR ' | ') - FROM social_accounts sa WHERE sa.owner_type = 'person' AND sa.owner_id = p.id AND sa.is_active = 1) AS contacts + p.source_channel, p.source_detail, + $phoneSql AS phone, + $emailSql AS email FROM persons p WHERE $whereSql ORDER BY p.id DESC diff --git a/api/person/update.php b/api/person/update.php index e6dacc6..48ebe14 100644 --- a/api/person/update.php +++ b/api/person/update.php @@ -36,14 +36,14 @@ if (isset($_POST['contacts'])) { $contacts = json_decode($_POST['contacts'], true); if (is_array($contacts)) { $ins = $pdo->prepare( - "INSERT INTO social_accounts (owner_type, owner_id, platform, account_id, profile_url, remark, is_primary) - VALUES ('person', ?, ?, ?, ?, ?, ?)" + "INSERT INTO social_accounts (owner_type, owner_id, platform, account_id, profile_url, remark, is_primary, is_defult) + VALUES ('person', ?, ?, ?, ?, ?, ?, ?)" ); foreach ($contacts as $c) { $platform = trim($c['platform'] ?? ''); $accountId = trim($c['account_id'] ?? ''); if ($platform === '' || $accountId === '') continue; - $ins->execute([$id, $platform, $accountId, $c['profile_url'] ?? null, $c['remark'] ?? null, !empty($c['is_primary']) ? 1 : 0]); + $ins->execute([$id, $platform, $accountId, $c['profile_url'] ?? null, $c['remark'] ?? null, !empty($c['is_primary']) ? 1 : 0, !empty($c['is_defult']) ? 1 : 0]); } } } diff --git a/data/phone.dat b/data/phone.dat new file mode 100644 index 0000000..784f35f Binary files /dev/null and b/data/phone.dat differ diff --git a/sql/_backup_cert_types.json b/sql/_backup_cert_types.json new file mode 100644 index 0000000..cfe3b8d --- /dev/null +++ b/sql/_backup_cert_types.json @@ -0,0 +1,37 @@ +{ + "certification_types": [ + [ + 6, + "ISO14001认证" + ], + [ + 7, + "ISO45001认证" + ], + [ + 5, + "ISO9001认证" + ], + [ + 2, + "专精特新企业" + ], + [ + 4, + "制造业单项冠军" + ], + [ + 1, + "国家高新技术企业" + ], + [ + 3, + "瞪羚企业" + ], + [ + 8, + "知识产权管理体系认证" + ] + ], + "company_certifications": [] +} \ No newline at end of file diff --git a/sql/dict_seed.sql b/sql/dict_seed.sql new file mode 100644 index 0000000..7ae7a4f --- /dev/null +++ b/sql/dict_seed.sql @@ -0,0 +1,4014 @@ +-- ============================================================ +-- 数据字典种子数据(由官方 Excel 文件生成,勿手工修改) +-- 来源:国家地区编码.xls / 行政区划编码.xls / 招标行业分类.xls / 证书类型枚举.xls +-- +-- ⚠️ 重要:date_dict_certificate 被 company_certifications.certification_type_id +-- 外键 ON DELETE CASCADE 引用,本文件会对证书表 DELETE 后重建! +-- 执行前必须先备份 company_certifications(及相关业务表)!! +-- 安全做法: +-- 1) 备份:mysqldump mysuperlink company_certifications > backup.sql +-- 2) 执行本文件 +-- 3) 如公司资质关联丢失,用备份恢复并按证书名称重新关联新字典 id +-- ============================================================ +SET NAMES utf8mb4; + +-- 防止外键级联误删(执行本文件期间临时关闭外键检查) +SET FOREIGN_KEY_CHECKS = 0; + +-- 1) 国家地区编码(62 条,另补充 'CN 中国' 1 条供国内企业/人员使用) +DELETE FROM `date_dict_country`; +INSERT INTO `date_dict_country` (`code`, `name`, `sort_order`) VALUES +('CN', '中国', 0), +('HK', '中国香港', 1), +('MO', '中国澳门', 2), +('TW', '中国台湾', 3), +('SG', '新加坡', 4), +('JP', '日本', 5), +('KR', '韩国', 6), +('IN', '印度', 7), +('ID', '印度尼西亚', 8), +('TH', '泰国', 9), +('MY', '马来西亚', 10), +('VN', '越南', 11), +('KH', '柬埔寨', 12), +('MM', '缅甸', 13), +('OM', '阿曼苏丹国', 14), +('JO', '约旦', 15), +('PK', '巴基斯坦', 16), +('IL', '以色列', 17), +('SA', '沙特阿拉伯', 18), +('KW', '科威特', 19), +('AE', '阿联酋', 20), +('US', '美国', 21), +('CA', '加拿大', 22), +('JM', '牙买加', 23), +('PR', '波多黎各', 24), +('KY', '英属开曼群岛', 25), +('VG', '英属维尔京群岛', 26), +('BM', '英属百慕大群岛', 27), +('RU', '俄罗斯', 28), +('DE', '德国', 29), +('GB', '英国', 30), +('NL', '荷兰', 31), +('FR', '法国', 32), +('IT', '意大利', 33), +('IE', '爱尔兰', 34), +('LU', '卢森堡', 35), +('SE', '瑞典', 36), +('CY', '塞浦路斯', 37), +('CZ', '捷克', 38), +('MT', '马耳他', 39), +('SK', '斯洛伐克', 40), +('BE', '比利时', 41), +('FI', '芬兰', 42), +('NO', '挪威', 43), +('CH', '瑞士', 44), +('ES', '西班牙', 45), +('SI', '斯洛文尼亚', 46), +('LT', '立陶宛', 47), +('LV', '拉脱维亚', 48), +('DK', '丹麦', 49), +('EE', '爱沙尼亚', 50), +('HU', '匈牙利', 51), +('AT', '奥地利', 52), +('MA', '摩洛哥', 53), +('ZA', '南非', 54), +('MU', '毛里求斯', 55), +('SC', '塞舌尔', 56), +('RW', '卢旺达', 57), +('AU', '澳大利亚', 58), +('NZ', '新西兰', 59), +('MH', '马绍尔群岛', 60), +('WS', '萨摩亚', 61), +('BR', '巴西', 62); + +-- 2) 行政区划编码(省/市/区县三级,共 3632 条) +DELETE FROM `date_dict_area`; +INSERT INTO `date_dict_area` (`code`, `name`, `parent_code`, `sort_order`) VALUES +('110000', '北京市', NULL, 1), +('110100', '北京市', '110000', 2), +('110101', '东城区', '110100', 3), +('110102', '西城区', '110100', 4), +('110105', '朝阳区', '110100', 5), +('110106', '丰台区', '110100', 6), +('110107', '石景山区', '110100', 7), +('110108', '海淀区', '110100', 8), +('110109', '门头沟区', '110100', 9), +('110111', '房山区', '110100', 10), +('110112', '通州区', '110100', 11), +('110113', '顺义区', '110100', 12), +('110114', '昌平区', '110100', 13), +('110115', '大兴区', '110100', 14), +('110116', '怀柔区', '110100', 15), +('110117', '平谷区', '110100', 16), +('110118', '密云区', '110100', 17), +('110119', '延庆区', '110100', 18), +('120000', '天津市', NULL, 19), +('120100', '天津市', '120000', 20), +('120101', '和平区', '120100', 21), +('120102', '河东区', '120100', 22), +('120103', '河西区', '120100', 23), +('120104', '南开区', '120100', 24), +('120105', '河北区', '120100', 25), +('120106', '红桥区', '120100', 26), +('120110', '东丽区', '120100', 27), +('120111', '西青区', '120100', 28), +('120112', '津南区', '120100', 29), +('120113', '北辰区', '120100', 30), +('120114', '武清区', '120100', 31), +('120115', '宝坻区', '120100', 32), +('120116', '滨海新区', '120100', 33), +('120117', '宁河区', '120100', 34), +('120118', '静海区', '120100', 35), +('120119', '蓟州区', '120100', 36), +('130000', '河北省', NULL, 37), +('130100', '石家庄市', '130000', 38), +('130101', '市辖区', '130100', 39), +('130102', '长安区', '130100', 40), +('130104', '桥西区', '130100', 41), +('130105', '新华区', '130100', 42), +('130107', '井陉矿区', '130100', 43), +('130108', '裕华区', '130100', 44), +('130109', '藁城区', '130100', 45), +('130110', '鹿泉区', '130100', 46), +('130111', '栾城区', '130100', 47), +('130121', '井陉县', '130100', 48), +('130123', '正定县', '130100', 49), +('130125', '行唐县', '130100', 50), +('130126', '灵寿县', '130100', 51), +('130127', '高邑县', '130100', 52), +('130128', '深泽县', '130100', 53), +('130129', '赞皇县', '130100', 54), +('130130', '无极县', '130100', 55), +('130131', '平山县', '130100', 56), +('130132', '元氏县', '130100', 57), +('130133', '赵县', '130100', 58), +('130171', '石家庄高新技术产业开发区', '130100', 59), +('130172', '石家庄循环化工园区', '130100', 60), +('130181', '辛集市', '130100', 61), +('130183', '晋州市', '130100', 62), +('130184', '新乐市', '130100', 63), +('130200', '唐山市', '130000', 64), +('130201', '市辖区', '130200', 65), +('130202', '路南区', '130200', 66), +('130203', '路北区', '130200', 67), +('130204', '古冶区', '130200', 68), +('130205', '开平区', '130200', 69), +('130207', '丰南区', '130200', 70), +('130208', '丰润区', '130200', 71), +('130209', '曹妃甸区', '130200', 72), +('130224', '滦南县', '130200', 73), +('130225', '乐亭县', '130200', 74), +('130227', '迁西县', '130200', 75), +('130229', '玉田县', '130200', 76), +('130271', '河北唐山芦台经济开发区', '130200', 77), +('130272', '唐山市汉沽管理区', '130200', 78), +('130273', '唐山高新技术产业开发区', '130200', 79), +('130274', '河北唐山海港经济开发区', '130200', 80), +('130281', '遵化市', '130200', 81), +('130283', '迁安市', '130200', 82), +('130284', '滦州市', '130200', 83), +('130300', '秦皇岛市', '130000', 84), +('130301', '市辖区', '130300', 85), +('130302', '海港区', '130300', 86), +('130303', '山海关区', '130300', 87), +('130304', '北戴河区', '130300', 88), +('130306', '抚宁区', '130300', 89), +('130321', '青龙满族自治县', '130300', 90), +('130322', '昌黎县', '130300', 91), +('130324', '卢龙县', '130300', 92), +('130371', '秦皇岛市经济技术开发区', '130300', 93), +('130372', '北戴河新区', '130300', 94), +('130400', '邯郸市', '130000', 95), +('130401', '市辖区', '130400', 96), +('130402', '邯山区', '130400', 97), +('130403', '丛台区', '130400', 98), +('130404', '复兴区', '130400', 99), +('130406', '峰峰矿区', '130400', 100), +('130407', '肥乡区', '130400', 101), +('130408', '永年区', '130400', 102), +('130423', '临漳县', '130400', 103), +('130424', '成安县', '130400', 104), +('130425', '大名县', '130400', 105), +('130426', '涉县', '130400', 106), +('130427', '磁县', '130400', 107), +('130430', '邱县', '130400', 108), +('130431', '鸡泽县', '130400', 109), +('130432', '广平县', '130400', 110), +('130433', '馆陶县', '130400', 111), +('130434', '魏县', '130400', 112), +('130435', '曲周县', '130400', 113), +('130471', '邯郸经济技术开发区', '130400', 114), +('130473', '邯郸冀南新区', '130400', 115), +('130481', '武安市', '130400', 116), +('130500', '邢台市', '130000', 117), +('130501', '市辖区', '130500', 118), +('130502', '襄都区', '130500', 119), +('130503', '信都区', '130500', 120), +('130505', '任泽区', '130500', 121), +('130506', '南和区', '130500', 122), +('130522', '临城县', '130500', 123), +('130523', '内丘县', '130500', 124), +('130524', '柏乡县', '130500', 125), +('130525', '隆尧县', '130500', 126), +('130528', '宁晋县', '130500', 127), +('130529', '巨鹿县', '130500', 128), +('130530', '新河县', '130500', 129), +('130531', '广宗县', '130500', 130), +('130532', '平乡县', '130500', 131), +('130533', '威县', '130500', 132), +('130534', '清河县', '130500', 133), +('130535', '临西县', '130500', 134), +('130571', '河北邢台经济开发区', '130500', 135), +('130581', '南宫市', '130500', 136), +('130582', '沙河市', '130500', 137), +('130600', '保定市', '130000', 138), +('130601', '市辖区', '130600', 139), +('130602', '竞秀区', '130600', 140), +('130606', '莲池区', '130600', 141), +('130607', '满城区', '130600', 142), +('130608', '清苑区', '130600', 143), +('130609', '徐水区', '130600', 144), +('130623', '涞水县', '130600', 145), +('130624', '阜平县', '130600', 146), +('130626', '定兴县', '130600', 147), +('130627', '唐县', '130600', 148), +('130628', '高阳县', '130600', 149), +('130629', '容城县', '130600', 150), +('130630', '涞源县', '130600', 151), +('130631', '望都县', '130600', 152), +('130632', '安新县', '130600', 153), +('130633', '易县', '130600', 154), +('130634', '曲阳县', '130600', 155), +('130635', '蠡县', '130600', 156), +('130636', '顺平县', '130600', 157), +('130637', '博野县', '130600', 158), +('130638', '雄县', '130600', 159), +('130671', '保定高新技术产业开发区', '130600', 160), +('130672', '保定白沟新城', '130600', 161), +('130681', '涿州市', '130600', 162), +('130682', '定州市', '130600', 163), +('130683', '安国市', '130600', 164), +('130684', '高碑店市', '130600', 165), +('130700', '张家口市', '130000', 166), +('130701', '市辖区', '130700', 167), +('130702', '桥东区', '130700', 168), +('130703', '桥西区', '130700', 169), +('130705', '宣化区', '130700', 170), +('130706', '下花园区', '130700', 171), +('130708', '万全区', '130700', 172), +('130709', '崇礼区', '130700', 173), +('130722', '张北县', '130700', 174), +('130723', '康保县', '130700', 175), +('130724', '沽源县', '130700', 176), +('130725', '尚义县', '130700', 177), +('130726', '蔚县', '130700', 178), +('130727', '阳原县', '130700', 179), +('130728', '怀安县', '130700', 180), +('130730', '怀来县', '130700', 181), +('130731', '涿鹿县', '130700', 182), +('130732', '赤城县', '130700', 183), +('130771', '张家口经济开发区', '130700', 184), +('130772', '张家口市察北管理区', '130700', 185), +('130773', '张家口市塞北管理区', '130700', 186), +('130800', '承德市', '130000', 187), +('130801', '市辖区', '130800', 188), +('130802', '双桥区', '130800', 189), +('130803', '双滦区', '130800', 190), +('130804', '鹰手营子矿区', '130800', 191), +('130821', '承德县', '130800', 192), +('130822', '兴隆县', '130800', 193), +('130824', '滦平县', '130800', 194), +('130825', '隆化县', '130800', 195), +('130826', '丰宁满族自治县', '130800', 196), +('130827', '宽城满族自治县', '130800', 197), +('130828', '围场满族蒙古族自治县', '130800', 198), +('130871', '承德高新技术产业开发区', '130800', 199), +('130881', '平泉市', '130800', 200), +('130900', '沧州市', '130000', 201), +('130901', '市辖区', '130900', 202), +('130902', '新华区', '130900', 203), +('130903', '运河区', '130900', 204), +('130921', '沧县', '130900', 205), +('130922', '青县', '130900', 206), +('130923', '东光县', '130900', 207), +('130924', '海兴县', '130900', 208), +('130925', '盐山县', '130900', 209), +('130926', '肃宁县', '130900', 210), +('130927', '南皮县', '130900', 211), +('130928', '吴桥县', '130900', 212), +('130929', '献县', '130900', 213), +('130930', '孟村回族自治县', '130900', 214), +('130971', '河北沧州经济开发区', '130900', 215), +('130972', '沧州高新技术产业开发区', '130900', 216), +('130973', '沧州渤海新区', '130900', 217), +('130981', '泊头市', '130900', 218), +('130982', '任丘市', '130900', 219), +('130983', '黄骅市', '130900', 220), +('130984', '河间市', '130900', 221), +('131000', '廊坊市', '130000', 222), +('131001', '市辖区', '131000', 223), +('131002', '安次区', '131000', 224), +('131003', '广阳区', '131000', 225), +('131022', '固安县', '131000', 226), +('131023', '永清县', '131000', 227), +('131024', '香河县', '131000', 228), +('131025', '大城县', '131000', 229), +('131026', '文安县', '131000', 230), +('131028', '大厂回族自治县', '131000', 231), +('131071', '廊坊经济技术开发区', '131000', 232), +('131081', '霸州市', '131000', 233), +('131082', '三河市', '131000', 234), +('131100', '衡水市', '130000', 235), +('131101', '市辖区', '131100', 236), +('131102', '桃城区', '131100', 237), +('131103', '冀州区', '131100', 238), +('131121', '枣强县', '131100', 239), +('131122', '武邑县', '131100', 240), +('131123', '武强县', '131100', 241), +('131124', '饶阳县', '131100', 242), +('131125', '安平县', '131100', 243), +('131126', '故城县', '131100', 244), +('131127', '景县', '131100', 245), +('131128', '阜城县', '131100', 246), +('131171', '河北衡水高新技术产业开发区', '131100', 247), +('131172', '衡水滨湖新区', '131100', 248), +('131182', '深州市', '131100', 249), +('140000', '山西省', NULL, 250), +('140100', '太原市', '140000', 251), +('140101', '市辖区', '140100', 252), +('140105', '小店区', '140100', 253), +('140106', '迎泽区', '140100', 254), +('140107', '杏花岭区', '140100', 255), +('140108', '尖草坪区', '140100', 256), +('140109', '万柏林区', '140100', 257), +('140110', '晋源区', '140100', 258), +('140121', '清徐县', '140100', 259), +('140122', '阳曲县', '140100', 260), +('140123', '娄烦县', '140100', 261), +('140171', '山西转型综合改革示范区', '140100', 262), +('140181', '古交市', '140100', 263), +('140200', '大同市', '140000', 264), +('140201', '市辖区', '140200', 265), +('140212', '新荣区', '140200', 266), +('140213', '平城区', '140200', 267), +('140214', '云冈区', '140200', 268), +('140215', '云州区', '140200', 269), +('140221', '阳高县', '140200', 270), +('140222', '天镇县', '140200', 271), +('140223', '广灵县', '140200', 272), +('140224', '灵丘县', '140200', 273), +('140225', '浑源县', '140200', 274), +('140226', '左云县', '140200', 275), +('140271', '山西大同经济开发区', '140200', 276), +('140300', '阳泉市', '140000', 277), +('140301', '市辖区', '140300', 278), +('140302', '城区', '140300', 279), +('140303', '矿区', '140300', 280), +('140311', '郊区', '140300', 281), +('140321', '平定县', '140300', 282), +('140322', '盂县', '140300', 283), +('140400', '长治市', '140000', 284), +('140401', '市辖区', '140400', 285), +('140403', '潞州区', '140400', 286), +('140404', '上党区', '140400', 287), +('140405', '屯留区', '140400', 288), +('140406', '潞城区', '140400', 289), +('140423', '襄垣县', '140400', 290), +('140425', '平顺县', '140400', 291), +('140426', '黎城县', '140400', 292), +('140427', '壶关县', '140400', 293), +('140428', '长子县', '140400', 294), +('140429', '武乡县', '140400', 295), +('140430', '沁县', '140400', 296), +('140431', '沁源县', '140400', 297), +('140500', '晋城市', '140000', 298), +('140501', '市辖区', '140500', 299), +('140502', '城区', '140500', 300), +('140521', '沁水县', '140500', 301), +('140522', '阳城县', '140500', 302), +('140524', '陵川县', '140500', 303), +('140525', '泽州县', '140500', 304), +('140581', '高平市', '140500', 305), +('140600', '朔州市', '140000', 306), +('140601', '市辖区', '140600', 307), +('140602', '朔城区', '140600', 308), +('140603', '平鲁区', '140600', 309), +('140621', '山阴县', '140600', 310), +('140622', '应县', '140600', 311), +('140623', '右玉县', '140600', 312), +('140671', '山西朔州经济开发区', '140600', 313), +('140681', '怀仁市', '140600', 314), +('140700', '晋中市', '140000', 315), +('140701', '市辖区', '140700', 316), +('140702', '榆次区', '140700', 317), +('140703', '太谷区', '140700', 318), +('140721', '榆社县', '140700', 319), +('140722', '左权县', '140700', 320), +('140723', '和顺县', '140700', 321), +('140724', '昔阳县', '140700', 322), +('140725', '寿阳县', '140700', 323), +('140727', '祁县', '140700', 324), +('140728', '平遥县', '140700', 325), +('140729', '灵石县', '140700', 326), +('140781', '介休市', '140700', 327), +('140800', '运城市', '140000', 328), +('140801', '市辖区', '140800', 329), +('140802', '盐湖区', '140800', 330), +('140821', '临猗县', '140800', 331), +('140822', '万荣县', '140800', 332), +('140823', '闻喜县', '140800', 333), +('140824', '稷山县', '140800', 334), +('140825', '新绛县', '140800', 335), +('140826', '绛县', '140800', 336), +('140827', '垣曲县', '140800', 337), +('140828', '夏县', '140800', 338), +('140829', '平陆县', '140800', 339), +('140830', '芮城县', '140800', 340), +('140881', '永济市', '140800', 341), +('140882', '河津市', '140800', 342), +('140900', '忻州市', '140000', 343), +('140901', '市辖区', '140900', 344), +('140902', '忻府区', '140900', 345), +('140921', '定襄县', '140900', 346), +('140922', '五台县', '140900', 347), +('140923', '代县', '140900', 348), +('140924', '繁峙县', '140900', 349), +('140925', '宁武县', '140900', 350), +('140926', '静乐县', '140900', 351), +('140927', '神池县', '140900', 352), +('140928', '五寨县', '140900', 353), +('140929', '岢岚县', '140900', 354), +('140930', '河曲县', '140900', 355), +('140931', '保德县', '140900', 356), +('140932', '偏关县', '140900', 357), +('140971', '五台山风景名胜区', '140900', 358), +('140981', '原平市', '140900', 359), +('141000', '临汾市', '140000', 360), +('141001', '市辖区', '141000', 361), +('141002', '尧都区', '141000', 362), +('141021', '曲沃县', '141000', 363), +('141022', '翼城县', '141000', 364), +('141023', '襄汾县', '141000', 365), +('141024', '洪洞县', '141000', 366), +('141025', '古县', '141000', 367), +('141026', '安泽县', '141000', 368), +('141027', '浮山县', '141000', 369), +('141028', '吉县', '141000', 370), +('141029', '乡宁县', '141000', 371), +('141030', '大宁县', '141000', 372), +('141031', '隰县', '141000', 373), +('141032', '永和县', '141000', 374), +('141033', '蒲县', '141000', 375), +('141034', '汾西县', '141000', 376), +('141081', '侯马市', '141000', 377), +('141082', '霍州市', '141000', 378), +('141100', '吕梁市', '140000', 379), +('141101', '市辖区', '141100', 380), +('141102', '离石区', '141100', 381), +('141121', '文水县', '141100', 382), +('141122', '交城县', '141100', 383), +('141123', '兴县', '141100', 384), +('141124', '临县', '141100', 385), +('141125', '柳林县', '141100', 386), +('141126', '石楼县', '141100', 387), +('141127', '岚县', '141100', 388), +('141128', '方山县', '141100', 389), +('141129', '中阳县', '141100', 390), +('141130', '交口县', '141100', 391), +('141181', '孝义市', '141100', 392), +('141182', '汾阳市', '141100', 393), +('150000', '内蒙古自治区', NULL, 394), +('150100', '呼和浩特市', '150000', 395), +('150101', '市辖区', '150100', 396), +('150102', '新城区', '150100', 397), +('150103', '回民区', '150100', 398), +('150104', '玉泉区', '150100', 399), +('150105', '赛罕区', '150100', 400), +('150121', '土默特左旗', '150100', 401), +('150122', '托克托县', '150100', 402), +('150123', '和林格尔县', '150100', 403), +('150124', '清水河县', '150100', 404), +('150125', '武川县', '150100', 405), +('150172', '呼和浩特经济技术开发区', '150100', 406), +('150200', '包头市', '150000', 407), +('150201', '市辖区', '150200', 408), +('150202', '东河区', '150200', 409), +('150203', '昆都仑区', '150200', 410), +('150204', '青山区', '150200', 411), +('150205', '石拐区', '150200', 412), +('150206', '白云鄂博矿区', '150200', 413), +('150207', '九原区', '150200', 414), +('150221', '土默特右旗', '150200', 415), +('150222', '固阳县', '150200', 416), +('150223', '达尔罕茂明安联合旗', '150200', 417), +('150271', '包头稀土高新技术产业开发区', '150200', 418), +('150300', '乌海市', '150000', 419), +('150301', '市辖区', '150300', 420), +('150302', '海勃湾区', '150300', 421), +('150303', '海南区', '150300', 422), +('150304', '乌达区', '150300', 423), +('150400', '赤峰市', '150000', 424), +('150401', '市辖区', '150400', 425), +('150402', '红山区', '150400', 426), +('150403', '元宝山区', '150400', 427), +('150404', '松山区', '150400', 428), +('150421', '阿鲁科尔沁旗', '150400', 429), +('150422', '巴林左旗', '150400', 430), +('150423', '巴林右旗', '150400', 431), +('150424', '林西县', '150400', 432), +('150425', '克什克腾旗', '150400', 433), +('150426', '翁牛特旗', '150400', 434), +('150428', '喀喇沁旗', '150400', 435), +('150429', '宁城县', '150400', 436), +('150430', '敖汉旗', '150400', 437), +('150500', '通辽市', '150000', 438), +('150501', '市辖区', '150500', 439), +('150502', '科尔沁区', '150500', 440), +('150521', '科尔沁左翼中旗', '150500', 441), +('150522', '科尔沁左翼后旗', '150500', 442), +('150523', '开鲁县', '150500', 443), +('150524', '库伦旗', '150500', 444), +('150525', '奈曼旗', '150500', 445), +('150526', '扎鲁特旗', '150500', 446), +('150571', '通辽经济技术开发区', '150500', 447), +('150581', '霍林郭勒市', '150500', 448), +('150600', '鄂尔多斯市', '150000', 449), +('150601', '市辖区', '150600', 450), +('150602', '东胜区', '150600', 451), +('150603', '康巴什区', '150600', 452), +('150621', '达拉特旗', '150600', 453), +('150622', '准格尔旗', '150600', 454), +('150623', '鄂托克前旗', '150600', 455), +('150624', '鄂托克旗', '150600', 456), +('150625', '杭锦旗', '150600', 457), +('150626', '乌审旗', '150600', 458), +('150627', '伊金霍洛旗', '150600', 459), +('150700', '呼伦贝尔市', '150000', 460), +('150701', '市辖区', '150700', 461), +('150702', '海拉尔区', '150700', 462), +('150703', '扎赉诺尔区', '150700', 463), +('150721', '阿荣旗', '150700', 464), +('150722', '莫力达瓦达斡尔族自治旗', '150700', 465), +('150723', '鄂伦春自治旗', '150700', 466), +('150724', '鄂温克族自治旗', '150700', 467), +('150725', '陈巴尔虎旗', '150700', 468), +('150726', '新巴尔虎左旗', '150700', 469), +('150727', '新巴尔虎右旗', '150700', 470), +('150781', '满洲里市', '150700', 471), +('150782', '牙克石市', '150700', 472), +('150783', '扎兰屯市', '150700', 473), +('150784', '额尔古纳市', '150700', 474), +('150785', '根河市', '150700', 475), +('150800', '巴彦淖尔市', '150000', 476), +('150801', '市辖区', '150800', 477), +('150802', '临河区', '150800', 478), +('150821', '五原县', '150800', 479), +('150822', '磴口县', '150800', 480), +('150823', '乌拉特前旗', '150800', 481), +('150824', '乌拉特中旗', '150800', 482), +('150825', '乌拉特后旗', '150800', 483), +('150826', '杭锦后旗', '150800', 484), +('150900', '乌兰察布市', '150000', 485), +('150901', '市辖区', '150900', 486), +('150902', '集宁区', '150900', 487), +('150921', '卓资县', '150900', 488), +('150922', '化德县', '150900', 489), +('150923', '商都县', '150900', 490), +('150924', '兴和县', '150900', 491), +('150925', '凉城县', '150900', 492), +('150926', '察哈尔右翼前旗', '150900', 493), +('150927', '察哈尔右翼中旗', '150900', 494), +('150928', '察哈尔右翼后旗', '150900', 495), +('150929', '四子王旗', '150900', 496), +('150981', '丰镇市', '150900', 497), +('152200', '兴安盟', '150000', 498), +('152201', '乌兰浩特市', '152200', 499), +('152202', '阿尔山市', '152200', 500), +('152221', '科尔沁右翼前旗', '152200', 501), +('152222', '科尔沁右翼中旗', '152200', 502), +('152223', '扎赉特旗', '152200', 503), +('152224', '突泉县', '152200', 504), +('152500', '锡林郭勒盟', '150000', 505), +('152501', '二连浩特市', '152500', 506), +('152502', '锡林浩特市', '152500', 507), +('152522', '阿巴嘎旗', '152500', 508), +('152523', '苏尼特左旗', '152500', 509), +('152524', '苏尼特右旗', '152500', 510), +('152525', '东乌珠穆沁旗', '152500', 511), +('152526', '西乌珠穆沁旗', '152500', 512), +('152527', '太仆寺旗', '152500', 513), +('152528', '镶黄旗', '152500', 514), +('152529', '正镶白旗', '152500', 515), +('152530', '正蓝旗', '152500', 516), +('152531', '多伦县', '152500', 517), +('152571', '乌拉盖管理区管委会', '152500', 518), +('152900', '阿拉善盟', '150000', 519), +('152921', '阿拉善左旗', '152900', 520), +('152922', '阿拉善右旗', '152900', 521), +('152923', '额济纳旗', '152900', 522), +('152971', '内蒙古阿拉善高新技术产业开发区', '152900', 523), +('210000', '辽宁省', NULL, 524), +('210100', '沈阳市', '210000', 525), +('210101', '市辖区', '210100', 526), +('210102', '和平区', '210100', 527), +('210103', '沈河区', '210100', 528), +('210104', '大东区', '210100', 529), +('210105', '皇姑区', '210100', 530), +('210106', '铁西区', '210100', 531), +('210111', '苏家屯区', '210100', 532), +('210112', '浑南区', '210100', 533), +('210113', '沈北新区', '210100', 534), +('210114', '于洪区', '210100', 535), +('210115', '辽中区', '210100', 536), +('210123', '康平县', '210100', 537), +('210124', '法库县', '210100', 538), +('210181', '新民市', '210100', 539), +('210200', '大连市', '210000', 540), +('210201', '市辖区', '210200', 541), +('210202', '中山区', '210200', 542), +('210203', '西岗区', '210200', 543), +('210204', '沙河口区', '210200', 544), +('210211', '甘井子区', '210200', 545), +('210212', '旅顺口区', '210200', 546), +('210213', '金州区', '210200', 547), +('210214', '普兰店区', '210200', 548), +('210224', '长海县', '210200', 549), +('210281', '瓦房店市', '210200', 550), +('210283', '庄河市', '210200', 551), +('210300', '鞍山市', '210000', 552), +('210301', '市辖区', '210300', 553), +('210302', '铁东区', '210300', 554), +('210303', '铁西区', '210300', 555), +('210304', '立山区', '210300', 556), +('210311', '千山区', '210300', 557), +('210321', '台安县', '210300', 558), +('210323', '岫岩满族自治县', '210300', 559), +('210381', '海城市', '210300', 560), +('210400', '抚顺市', '210000', 561), +('210401', '市辖区', '210400', 562), +('210402', '新抚区', '210400', 563), +('210403', '东洲区', '210400', 564), +('210404', '望花区', '210400', 565), +('210411', '顺城区', '210400', 566), +('210421', '抚顺县', '210400', 567), +('210422', '新宾满族自治县', '210400', 568), +('210423', '清原满族自治县', '210400', 569), +('210500', '本溪市', '210000', 570), +('210501', '市辖区', '210500', 571), +('210502', '平山区', '210500', 572), +('210503', '溪湖区', '210500', 573), +('210504', '明山区', '210500', 574), +('210505', '南芬区', '210500', 575), +('210521', '本溪满族自治县', '210500', 576), +('210522', '桓仁满族自治县', '210500', 577), +('210600', '丹东市', '210000', 578), +('210601', '市辖区', '210600', 579), +('210602', '元宝区', '210600', 580), +('210603', '振兴区', '210600', 581), +('210604', '振安区', '210600', 582), +('210624', '宽甸满族自治县', '210600', 583), +('210681', '东港市', '210600', 584), +('210682', '凤城市', '210600', 585), +('210700', '锦州市', '210000', 586), +('210701', '市辖区', '210700', 587), +('210702', '古塔区', '210700', 588), +('210703', '凌河区', '210700', 589), +('210711', '太和区', '210700', 590), +('210726', '黑山县', '210700', 591), +('210727', '义县', '210700', 592), +('210781', '凌海市', '210700', 593), +('210782', '北镇市', '210700', 594), +('210800', '营口市', '210000', 595), +('210801', '市辖区', '210800', 596), +('210802', '站前区', '210800', 597), +('210803', '西市区', '210800', 598), +('210804', '鲅鱼圈区', '210800', 599), +('210811', '老边区', '210800', 600), +('210881', '盖州市', '210800', 601), +('210882', '大石桥市', '210800', 602), +('210900', '阜新市', '210000', 603), +('210901', '市辖区', '210900', 604), +('210902', '海州区', '210900', 605), +('210903', '新邱区', '210900', 606), +('210904', '太平区', '210900', 607), +('210905', '清河门区', '210900', 608), +('210911', '细河区', '210900', 609), +('210921', '阜新蒙古族自治县', '210900', 610), +('210922', '彰武县', '210900', 611), +('211000', '辽阳市', '210000', 612), +('211001', '市辖区', '211000', 613), +('211002', '白塔区', '211000', 614), +('211003', '文圣区', '211000', 615), +('211004', '宏伟区', '211000', 616), +('211005', '弓长岭区', '211000', 617), +('211011', '太子河区', '211000', 618), +('211021', '辽阳县', '211000', 619), +('211081', '灯塔市', '211000', 620), +('211100', '盘锦市', '210000', 621), +('211101', '市辖区', '211100', 622), +('211102', '双台子区', '211100', 623), +('211103', '兴隆台区', '211100', 624), +('211104', '大洼区', '211100', 625), +('211122', '盘山县', '211100', 626), +('211200', '铁岭市', '210000', 627), +('211201', '市辖区', '211200', 628), +('211202', '银州区', '211200', 629), +('211204', '清河区', '211200', 630), +('211221', '铁岭县', '211200', 631), +('211223', '西丰县', '211200', 632), +('211224', '昌图县', '211200', 633), +('211281', '调兵山市', '211200', 634), +('211282', '开原市', '211200', 635), +('211300', '朝阳市', '210000', 636), +('211301', '市辖区', '211300', 637), +('211302', '双塔区', '211300', 638), +('211303', '龙城区', '211300', 639), +('211321', '朝阳县', '211300', 640), +('211322', '建平县', '211300', 641), +('211324', '喀喇沁左翼蒙古族自治县', '211300', 642), +('211381', '北票市', '211300', 643), +('211382', '凌源市', '211300', 644), +('211400', '葫芦岛市', '210000', 645), +('211401', '市辖区', '211400', 646), +('211402', '连山区', '211400', 647), +('211403', '龙港区', '211400', 648), +('211404', '南票区', '211400', 649), +('211421', '绥中县', '211400', 650), +('211422', '建昌县', '211400', 651), +('211481', '兴城市', '211400', 652), +('220000', '吉林省', NULL, 653), +('220100', '长春市', '220000', 654), +('220101', '市辖区', '220100', 655), +('220102', '南关区', '220100', 656), +('220103', '宽城区', '220100', 657), +('220104', '朝阳区', '220100', 658), +('220105', '二道区', '220100', 659), +('220106', '绿园区', '220100', 660), +('220112', '双阳区', '220100', 661), +('220113', '九台区', '220100', 662), +('220122', '农安县', '220100', 663), +('220171', '长春经济技术开发区', '220100', 664), +('220172', '长春净月高新技术产业开发区', '220100', 665), +('220173', '长春高新技术产业开发区', '220100', 666), +('220174', '长春汽车经济技术开发区', '220100', 667), +('220182', '榆树市', '220100', 668), +('220183', '德惠市', '220100', 669), +('220184', '公主岭市', '220100', 670), +('220200', '吉林市', '220000', 671), +('220201', '市辖区', '220200', 672), +('220202', '昌邑区', '220200', 673), +('220203', '龙潭区', '220200', 674), +('220204', '船营区', '220200', 675), +('220211', '丰满区', '220200', 676), +('220221', '永吉县', '220200', 677), +('220271', '吉林经济开发区', '220200', 678), +('220272', '吉林高新技术产业开发区', '220200', 679), +('220273', '吉林中国新加坡食品区', '220200', 680), +('220281', '蛟河市', '220200', 681), +('220282', '桦甸市', '220200', 682), +('220283', '舒兰市', '220200', 683), +('220284', '磐石市', '220200', 684), +('220300', '四平市', '220000', 685), +('220301', '市辖区', '220300', 686), +('220302', '铁西区', '220300', 687), +('220303', '铁东区', '220300', 688), +('220322', '梨树县', '220300', 689), +('220323', '伊通满族自治县', '220300', 690), +('220382', '双辽市', '220300', 691), +('220400', '辽源市', '220000', 692), +('220401', '市辖区', '220400', 693), +('220402', '龙山区', '220400', 694), +('220403', '西安区', '220400', 695), +('220421', '东丰县', '220400', 696), +('220422', '东辽县', '220400', 697), +('220500', '通化市', '220000', 698), +('220501', '市辖区', '220500', 699), +('220502', '东昌区', '220500', 700), +('220503', '二道江区', '220500', 701), +('220521', '通化县', '220500', 702), +('220523', '辉南县', '220500', 703), +('220524', '柳河县', '220500', 704), +('220581', '梅河口市', '220500', 705), +('220582', '集安市', '220500', 706), +('220600', '白山市', '220000', 707), +('220601', '市辖区', '220600', 708), +('220602', '浑江区', '220600', 709), +('220605', '江源区', '220600', 710), +('220621', '抚松县', '220600', 711), +('220622', '靖宇县', '220600', 712), +('220623', '长白朝鲜族自治县', '220600', 713), +('220681', '临江市', '220600', 714), +('220700', '松原市', '220000', 715), +('220701', '市辖区', '220700', 716), +('220702', '宁江区', '220700', 717), +('220721', '前郭尔罗斯蒙古族自治县', '220700', 718), +('220722', '长岭县', '220700', 719), +('220723', '乾安县', '220700', 720), +('220771', '吉林松原经济开发区', '220700', 721), +('220781', '扶余市', '220700', 722), +('220800', '白城市', '220000', 723), +('220801', '市辖区', '220800', 724), +('220802', '洮北区', '220800', 725), +('220821', '镇赉县', '220800', 726), +('220822', '通榆县', '220800', 727), +('220871', '吉林白城经济开发区', '220800', 728), +('220881', '洮南市', '220800', 729), +('220882', '大安市', '220800', 730), +('222400', '延边朝鲜族自治州', '220000', 731), +('222401', '延吉市', '222400', 732), +('222402', '图们市', '222400', 733), +('222403', '敦化市', '222400', 734), +('222404', '珲春市', '222400', 735), +('222405', '龙井市', '222400', 736), +('222406', '和龙市', '222400', 737), +('222424', '汪清县', '222400', 738), +('222426', '安图县', '222400', 739), +('230000', '黑龙江省', NULL, 740), +('230100', '哈尔滨市', '230000', 741), +('230101', '市辖区', '230100', 742), +('230102', '道里区', '230100', 743), +('230103', '南岗区', '230100', 744), +('230104', '道外区', '230100', 745), +('230108', '平房区', '230100', 746), +('230109', '松北区', '230100', 747), +('230110', '香坊区', '230100', 748), +('230111', '呼兰区', '230100', 749), +('230112', '阿城区', '230100', 750), +('230113', '双城区', '230100', 751), +('230123', '依兰县', '230100', 752), +('230124', '方正县', '230100', 753), +('230125', '宾县', '230100', 754), +('230126', '巴彦县', '230100', 755), +('230127', '木兰县', '230100', 756), +('230128', '通河县', '230100', 757), +('230129', '延寿县', '230100', 758), +('230183', '尚志市', '230100', 759), +('230184', '五常市', '230100', 760), +('230200', '齐齐哈尔市', '230000', 761), +('230201', '市辖区', '230200', 762), +('230202', '龙沙区', '230200', 763), +('230203', '建华区', '230200', 764), +('230204', '铁锋区', '230200', 765), +('230205', '昂昂溪区', '230200', 766), +('230206', '富拉尔基区', '230200', 767), +('230207', '碾子山区', '230200', 768), +('230208', '梅里斯达斡尔族区', '230200', 769), +('230221', '龙江县', '230200', 770), +('230223', '依安县', '230200', 771), +('230224', '泰来县', '230200', 772), +('230225', '甘南县', '230200', 773), +('230227', '富裕县', '230200', 774), +('230229', '克山县', '230200', 775), +('230230', '克东县', '230200', 776), +('230231', '拜泉县', '230200', 777), +('230281', '讷河市', '230200', 778), +('230300', '鸡西市', '230000', 779), +('230301', '市辖区', '230300', 780), +('230302', '鸡冠区', '230300', 781), +('230303', '恒山区', '230300', 782), +('230304', '滴道区', '230300', 783), +('230305', '梨树区', '230300', 784), +('230306', '城子河区', '230300', 785), +('230307', '麻山区', '230300', 786), +('230321', '鸡东县', '230300', 787), +('230381', '虎林市', '230300', 788), +('230382', '密山市', '230300', 789), +('230400', '鹤岗市', '230000', 790), +('230401', '市辖区', '230400', 791), +('230402', '向阳区', '230400', 792), +('230403', '工农区', '230400', 793), +('230404', '南山区', '230400', 794), +('230405', '兴安区', '230400', 795), +('230406', '东山区', '230400', 796), +('230407', '兴山区', '230400', 797), +('230421', '萝北县', '230400', 798), +('230422', '绥滨县', '230400', 799), +('230500', '双鸭山市', '230000', 800), +('230501', '市辖区', '230500', 801), +('230502', '尖山区', '230500', 802), +('230503', '岭东区', '230500', 803), +('230505', '四方台区', '230500', 804), +('230506', '宝山区', '230500', 805), +('230521', '集贤县', '230500', 806), +('230522', '友谊县', '230500', 807), +('230523', '宝清县', '230500', 808), +('230524', '饶河县', '230500', 809), +('230600', '大庆市', '230000', 810), +('230601', '市辖区', '230600', 811), +('230602', '萨尔图区', '230600', 812), +('230603', '龙凤区', '230600', 813), +('230604', '让胡路区', '230600', 814), +('230605', '红岗区', '230600', 815), +('230606', '大同区', '230600', 816), +('230621', '肇州县', '230600', 817), +('230622', '肇源县', '230600', 818), +('230623', '林甸县', '230600', 819), +('230624', '杜尔伯特蒙古族自治县', '230600', 820), +('230671', '大庆高新技术产业开发区', '230600', 821), +('230700', '伊春市', '230000', 822), +('230701', '市辖区', '230700', 823), +('230717', '伊美区', '230700', 824), +('230718', '乌翠区', '230700', 825), +('230719', '友好区', '230700', 826), +('230722', '嘉荫县', '230700', 827), +('230723', '汤旺县', '230700', 828), +('230724', '丰林县', '230700', 829), +('230725', '大箐山县', '230700', 830), +('230726', '南岔县', '230700', 831), +('230751', '金林区', '230700', 832), +('230781', '铁力市', '230700', 833), +('230800', '佳木斯市', '230000', 834), +('230801', '市辖区', '230800', 835), +('230803', '向阳区', '230800', 836), +('230804', '前进区', '230800', 837), +('230805', '东风区', '230800', 838), +('230811', '郊区', '230800', 839), +('230822', '桦南县', '230800', 840), +('230826', '桦川县', '230800', 841), +('230828', '汤原县', '230800', 842), +('230881', '同江市', '230800', 843), +('230882', '富锦市', '230800', 844), +('230883', '抚远市', '230800', 845), +('230900', '七台河市', '230000', 846), +('230901', '市辖区', '230900', 847), +('230902', '新兴区', '230900', 848), +('230903', '桃山区', '230900', 849), +('230904', '茄子河区', '230900', 850), +('230921', '勃利县', '230900', 851), +('231000', '牡丹江市', '230000', 852), +('231001', '市辖区', '231000', 853), +('231002', '东安区', '231000', 854), +('231003', '阳明区', '231000', 855), +('231004', '爱民区', '231000', 856), +('231005', '西安区', '231000', 857), +('231025', '林口县', '231000', 858), +('231081', '绥芬河市', '231000', 859), +('231083', '海林市', '231000', 860), +('231084', '宁安市', '231000', 861), +('231085', '穆棱市', '231000', 862), +('231086', '东宁市', '231000', 863), +('231100', '黑河市', '230000', 864), +('231101', '市辖区', '231100', 865), +('231102', '爱辉区', '231100', 866), +('231123', '逊克县', '231100', 867), +('231124', '孙吴县', '231100', 868), +('231181', '北安市', '231100', 869), +('231182', '五大连池市', '231100', 870), +('231183', '嫩江市', '231100', 871), +('231200', '绥化市', '230000', 872), +('231201', '市辖区', '231200', 873), +('231202', '北林区', '231200', 874), +('231221', '望奎县', '231200', 875), +('231222', '兰西县', '231200', 876), +('231223', '青冈县', '231200', 877), +('231224', '庆安县', '231200', 878), +('231225', '明水县', '231200', 879), +('231226', '绥棱县', '231200', 880), +('231281', '安达市', '231200', 881), +('231282', '肇东市', '231200', 882), +('231283', '海伦市', '231200', 883), +('232700', '大兴安岭地区', '230000', 884), +('232701', '漠河市', '232700', 885), +('232721', '呼玛县', '232700', 886), +('232722', '塔河县', '232700', 887), +('232761', '加格达奇区', '232700', 888), +('232762', '松岭区', '232700', 889), +('232763', '新林区', '232700', 890), +('232764', '呼中区', '232700', 891), +('310000', '上海市', NULL, 892), +('310100', '上海市', '310000', 893), +('310101', '黄浦区', '310100', 894), +('310104', '徐汇区', '310100', 895), +('310105', '长宁区', '310100', 896), +('310106', '静安区', '310100', 897), +('310107', '普陀区', '310100', 898), +('310109', '虹口区', '310100', 899), +('310110', '杨浦区', '310100', 900), +('310112', '闵行区', '310100', 901), +('310113', '宝山区', '310100', 902), +('310114', '嘉定区', '310100', 903), +('310115', '浦东新区', '310100', 904), +('310116', '金山区', '310100', 905), +('310117', '松江区', '310100', 906), +('310118', '青浦区', '310100', 907), +('310120', '奉贤区', '310100', 908), +('310151', '崇明区', '310100', 909), +('320000', '江苏省', NULL, 910), +('320100', '南京市', '320000', 911), +('320101', '市辖区', '320100', 912), +('320102', '玄武区', '320100', 913), +('320104', '秦淮区', '320100', 914), +('320105', '建邺区', '320100', 915), +('320106', '鼓楼区', '320100', 916), +('320111', '浦口区', '320100', 917), +('320113', '栖霞区', '320100', 918), +('320114', '雨花台区', '320100', 919), +('320115', '江宁区', '320100', 920), +('320116', '六合区', '320100', 921), +('320117', '溧水区', '320100', 922), +('320118', '高淳区', '320100', 923), +('320200', '无锡市', '320000', 924), +('320201', '市辖区', '320200', 925), +('320205', '锡山区', '320200', 926), +('320206', '惠山区', '320200', 927), +('320211', '滨湖区', '320200', 928), +('320213', '梁溪区', '320200', 929), +('320214', '新吴区', '320200', 930), +('320281', '江阴市', '320200', 931), +('320282', '宜兴市', '320200', 932), +('320300', '徐州市', '320000', 933), +('320301', '市辖区', '320300', 934), +('320302', '鼓楼区', '320300', 935), +('320303', '云龙区', '320300', 936), +('320305', '贾汪区', '320300', 937), +('320311', '泉山区', '320300', 938), +('320312', '铜山区', '320300', 939), +('320321', '丰县', '320300', 940), +('320322', '沛县', '320300', 941), +('320324', '睢宁县', '320300', 942), +('320371', '徐州经济技术开发区', '320300', 943), +('320381', '新沂市', '320300', 944), +('320382', '邳州市', '320300', 945), +('320400', '常州市', '320000', 946), +('320401', '市辖区', '320400', 947), +('320402', '天宁区', '320400', 948), +('320404', '钟楼区', '320400', 949), +('320411', '新北区', '320400', 950), +('320412', '武进区', '320400', 951), +('320413', '金坛区', '320400', 952), +('320481', '溧阳市', '320400', 953), +('320500', '苏州市', '320000', 954), +('320501', '市辖区', '320500', 955), +('320505', '虎丘区', '320500', 956), +('320506', '吴中区', '320500', 957), +('320507', '相城区', '320500', 958), +('320508', '姑苏区', '320500', 959), +('320509', '吴江区', '320500', 960), +('320576', '苏州工业园区', '320500', 961), +('320581', '常熟市', '320500', 962), +('320582', '张家港市', '320500', 963), +('320583', '昆山市', '320500', 964), +('320585', '太仓市', '320500', 965), +('320600', '南通市', '320000', 966), +('320601', '市辖区', '320600', 967), +('320612', '通州区', '320600', 968), +('320613', '崇川区', '320600', 969), +('320614', '海门区', '320600', 970), +('320623', '如东县', '320600', 971), +('320671', '南通经济技术开发区', '320600', 972), +('320681', '启东市', '320600', 973), +('320682', '如皋市', '320600', 974), +('320685', '海安市', '320600', 975), +('320700', '连云港市', '320000', 976), +('320701', '市辖区', '320700', 977), +('320703', '连云区', '320700', 978), +('320706', '海州区', '320700', 979), +('320707', '赣榆区', '320700', 980), +('320722', '东海县', '320700', 981), +('320723', '灌云县', '320700', 982), +('320724', '灌南县', '320700', 983), +('320771', '连云港经济技术开发区', '320700', 984), +('320800', '淮安市', '320000', 985), +('320801', '市辖区', '320800', 986), +('320803', '淮安区', '320800', 987), +('320804', '淮阴区', '320800', 988), +('320812', '清江浦区', '320800', 989), +('320813', '洪泽区', '320800', 990), +('320826', '涟水县', '320800', 991), +('320830', '盱眙县', '320800', 992), +('320831', '金湖县', '320800', 993), +('320871', '淮安经济技术开发区', '320800', 994), +('320900', '盐城市', '320000', 995), +('320901', '市辖区', '320900', 996), +('320902', '亭湖区', '320900', 997), +('320903', '盐都区', '320900', 998), +('320904', '大丰区', '320900', 999), +('320921', '响水县', '320900', 1000), +('320922', '滨海县', '320900', 1001), +('320923', '阜宁县', '320900', 1002), +('320924', '射阳县', '320900', 1003), +('320925', '建湖县', '320900', 1004), +('320971', '盐城经济技术开发区', '320900', 1005), +('320981', '东台市', '320900', 1006), +('321000', '扬州市', '320000', 1007), +('321001', '市辖区', '321000', 1008), +('321002', '广陵区', '321000', 1009), +('321003', '邗江区', '321000', 1010), +('321012', '江都区', '321000', 1011), +('321023', '宝应县', '321000', 1012), +('321071', '扬州经济技术开发区', '321000', 1013), +('321081', '仪征市', '321000', 1014), +('321084', '高邮市', '321000', 1015), +('321100', '镇江市', '320000', 1016), +('321101', '市辖区', '321100', 1017), +('321102', '京口区', '321100', 1018), +('321111', '润州区', '321100', 1019), +('321112', '丹徒区', '321100', 1020), +('321171', '镇江新区', '321100', 1021), +('321181', '丹阳市', '321100', 1022), +('321182', '扬中市', '321100', 1023), +('321183', '句容市', '321100', 1024), +('321200', '泰州市', '320000', 1025), +('321201', '市辖区', '321200', 1026), +('321202', '海陵区', '321200', 1027), +('321203', '高港区', '321200', 1028), +('321204', '姜堰区', '321200', 1029), +('321281', '兴化市', '321200', 1030), +('321282', '靖江市', '321200', 1031), +('321283', '泰兴市', '321200', 1032), +('321300', '宿迁市', '320000', 1033), +('321301', '市辖区', '321300', 1034), +('321302', '宿城区', '321300', 1035), +('321311', '宿豫区', '321300', 1036), +('321322', '沭阳县', '321300', 1037), +('321323', '泗阳县', '321300', 1038), +('321324', '泗洪县', '321300', 1039), +('321371', '宿迁经济技术开发区', '321300', 1040), +('330000', '浙江省', NULL, 1041), +('330100', '杭州市', '330000', 1042), +('330101', '市辖区', '330100', 1043), +('330102', '上城区', '330100', 1044), +('330105', '拱墅区', '330100', 1045), +('330106', '西湖区', '330100', 1046), +('330108', '滨江区', '330100', 1047), +('330109', '萧山区', '330100', 1048), +('330110', '余杭区', '330100', 1049), +('330111', '富阳区', '330100', 1050), +('330112', '临安区', '330100', 1051), +('330113', '临平区', '330100', 1052), +('330114', '钱塘区', '330100', 1053), +('330122', '桐庐县', '330100', 1054), +('330127', '淳安县', '330100', 1055), +('330182', '建德市', '330100', 1056), +('330200', '宁波市', '330000', 1057), +('330201', '市辖区', '330200', 1058), +('330203', '海曙区', '330200', 1059), +('330205', '江北区', '330200', 1060), +('330206', '北仑区', '330200', 1061), +('330211', '镇海区', '330200', 1062), +('330212', '鄞州区', '330200', 1063), +('330213', '奉化区', '330200', 1064), +('330225', '象山县', '330200', 1065), +('330226', '宁海县', '330200', 1066), +('330281', '余姚市', '330200', 1067), +('330282', '慈溪市', '330200', 1068), +('330300', '温州市', '330000', 1069), +('330301', '市辖区', '330300', 1070), +('330302', '鹿城区', '330300', 1071), +('330303', '龙湾区', '330300', 1072), +('330304', '瓯海区', '330300', 1073), +('330305', '洞头区', '330300', 1074), +('330324', '永嘉县', '330300', 1075), +('330326', '平阳县', '330300', 1076), +('330327', '苍南县', '330300', 1077), +('330328', '文成县', '330300', 1078), +('330329', '泰顺县', '330300', 1079), +('330381', '瑞安市', '330300', 1080), +('330382', '乐清市', '330300', 1081), +('330383', '龙港市', '330300', 1082), +('330400', '嘉兴市', '330000', 1083), +('330401', '市辖区', '330400', 1084), +('330402', '南湖区', '330400', 1085), +('330411', '秀洲区', '330400', 1086), +('330421', '嘉善县', '330400', 1087), +('330424', '海盐县', '330400', 1088), +('330481', '海宁市', '330400', 1089), +('330482', '平湖市', '330400', 1090), +('330483', '桐乡市', '330400', 1091), +('330500', '湖州市', '330000', 1092), +('330501', '市辖区', '330500', 1093), +('330502', '吴兴区', '330500', 1094), +('330503', '南浔区', '330500', 1095), +('330521', '德清县', '330500', 1096), +('330522', '长兴县', '330500', 1097), +('330523', '安吉县', '330500', 1098), +('330600', '绍兴市', '330000', 1099), +('330601', '市辖区', '330600', 1100), +('330602', '越城区', '330600', 1101), +('330603', '柯桥区', '330600', 1102), +('330604', '上虞区', '330600', 1103), +('330624', '新昌县', '330600', 1104), +('330681', '诸暨市', '330600', 1105), +('330683', '嵊州市', '330600', 1106), +('330700', '金华市', '330000', 1107), +('330701', '市辖区', '330700', 1108), +('330702', '婺城区', '330700', 1109), +('330703', '金东区', '330700', 1110), +('330723', '武义县', '330700', 1111), +('330726', '浦江县', '330700', 1112), +('330727', '磐安县', '330700', 1113), +('330781', '兰溪市', '330700', 1114), +('330782', '义乌市', '330700', 1115), +('330783', '东阳市', '330700', 1116), +('330784', '永康市', '330700', 1117), +('330800', '衢州市', '330000', 1118), +('330801', '市辖区', '330800', 1119), +('330802', '柯城区', '330800', 1120), +('330803', '衢江区', '330800', 1121), +('330822', '常山县', '330800', 1122), +('330824', '开化县', '330800', 1123), +('330825', '龙游县', '330800', 1124), +('330881', '江山市', '330800', 1125), +('330900', '舟山市', '330000', 1126), +('330901', '市辖区', '330900', 1127), +('330902', '定海区', '330900', 1128), +('330903', '普陀区', '330900', 1129), +('330921', '岱山县', '330900', 1130), +('330922', '嵊泗县', '330900', 1131), +('331000', '台州市', '330000', 1132), +('331001', '市辖区', '331000', 1133), +('331002', '椒江区', '331000', 1134), +('331003', '黄岩区', '331000', 1135), +('331004', '路桥区', '331000', 1136), +('331022', '三门县', '331000', 1137), +('331023', '天台县', '331000', 1138), +('331024', '仙居县', '331000', 1139), +('331081', '温岭市', '331000', 1140), +('331082', '临海市', '331000', 1141), +('331083', '玉环市', '331000', 1142), +('331100', '丽水市', '330000', 1143), +('331101', '市辖区', '331100', 1144), +('331102', '莲都区', '331100', 1145), +('331121', '青田县', '331100', 1146), +('331122', '缙云县', '331100', 1147), +('331123', '遂昌县', '331100', 1148), +('331124', '松阳县', '331100', 1149), +('331125', '云和县', '331100', 1150), +('331126', '庆元县', '331100', 1151), +('331127', '景宁畲族自治县', '331100', 1152), +('331181', '龙泉市', '331100', 1153), +('340000', '安徽省', NULL, 1154), +('340100', '合肥市', '340000', 1155), +('340101', '市辖区', '340100', 1156), +('340102', '瑶海区', '340100', 1157), +('340103', '庐阳区', '340100', 1158), +('340104', '蜀山区', '340100', 1159), +('340111', '包河区', '340100', 1160), +('340121', '长丰县', '340100', 1161), +('340122', '肥东县', '340100', 1162), +('340123', '肥西县', '340100', 1163), +('340124', '庐江县', '340100', 1164), +('340176', '合肥高新技术产业开发区', '340100', 1165), +('340177', '合肥经济技术开发区', '340100', 1166), +('340178', '合肥新站高新技术产业开发区', '340100', 1167), +('340181', '巢湖市', '340100', 1168), +('340200', '芜湖市', '340000', 1169), +('340201', '市辖区', '340200', 1170), +('340202', '镜湖区', '340200', 1171), +('340207', '鸠江区', '340200', 1172), +('340209', '弋江区', '340200', 1173), +('340210', '湾沚区', '340200', 1174), +('340212', '繁昌区', '340200', 1175), +('340223', '南陵县', '340200', 1176), +('340271', '芜湖经济技术开发区', '340200', 1177), +('340272', '安徽芜湖三山经济开发区', '340200', 1178), +('340281', '无为市', '340200', 1179), +('340300', '蚌埠市', '340000', 1180), +('340301', '市辖区', '340300', 1181), +('340302', '龙子湖区', '340300', 1182), +('340303', '蚌山区', '340300', 1183), +('340304', '禹会区', '340300', 1184), +('340311', '淮上区', '340300', 1185), +('340321', '怀远县', '340300', 1186), +('340322', '五河县', '340300', 1187), +('340323', '固镇县', '340300', 1188), +('340371', '蚌埠市高新技术开发区', '340300', 1189), +('340372', '蚌埠市经济开发区', '340300', 1190), +('340400', '淮南市', '340000', 1191), +('340401', '市辖区', '340400', 1192), +('340402', '大通区', '340400', 1193), +('340403', '田家庵区', '340400', 1194), +('340404', '谢家集区', '340400', 1195), +('340405', '八公山区', '340400', 1196), +('340406', '潘集区', '340400', 1197), +('340421', '凤台县', '340400', 1198), +('340422', '寿县', '340400', 1199), +('340500', '马鞍山市', '340000', 1200), +('340501', '市辖区', '340500', 1201), +('340503', '花山区', '340500', 1202), +('340504', '雨山区', '340500', 1203), +('340506', '博望区', '340500', 1204), +('340521', '当涂县', '340500', 1205), +('340522', '含山县', '340500', 1206), +('340523', '和县', '340500', 1207), +('340600', '淮北市', '340000', 1208), +('340601', '市辖区', '340600', 1209), +('340602', '杜集区', '340600', 1210), +('340603', '相山区', '340600', 1211), +('340604', '烈山区', '340600', 1212), +('340621', '濉溪县', '340600', 1213), +('340700', '铜陵市', '340000', 1214), +('340701', '市辖区', '340700', 1215), +('340705', '铜官区', '340700', 1216), +('340706', '义安区', '340700', 1217), +('340711', '郊区', '340700', 1218), +('340722', '枞阳县', '340700', 1219), +('340800', '安庆市', '340000', 1220), +('340801', '市辖区', '340800', 1221), +('340802', '迎江区', '340800', 1222), +('340803', '大观区', '340800', 1223), +('340811', '宜秀区', '340800', 1224), +('340822', '怀宁县', '340800', 1225), +('340825', '太湖县', '340800', 1226), +('340826', '宿松县', '340800', 1227), +('340827', '望江县', '340800', 1228), +('340828', '岳西县', '340800', 1229), +('340871', '安徽安庆经济开发区', '340800', 1230), +('340881', '桐城市', '340800', 1231), +('340882', '潜山市', '340800', 1232), +('341000', '黄山市', '340000', 1233), +('341001', '市辖区', '341000', 1234), +('341002', '屯溪区', '341000', 1235), +('341003', '黄山区', '341000', 1236), +('341004', '徽州区', '341000', 1237), +('341021', '歙县', '341000', 1238), +('341022', '休宁县', '341000', 1239), +('341023', '黟县', '341000', 1240), +('341024', '祁门县', '341000', 1241), +('341100', '滁州市', '340000', 1242), +('341101', '市辖区', '341100', 1243), +('341102', '琅琊区', '341100', 1244), +('341103', '南谯区', '341100', 1245), +('341122', '来安县', '341100', 1246), +('341124', '全椒县', '341100', 1247), +('341125', '定远县', '341100', 1248), +('341126', '凤阳县', '341100', 1249), +('341171', '中新苏滁高新技术产业开发区', '341100', 1250), +('341172', '滁州经济技术开发区', '341100', 1251), +('341181', '天长市', '341100', 1252), +('341182', '明光市', '341100', 1253), +('341200', '阜阳市', '340000', 1254), +('341201', '市辖区', '341200', 1255), +('341202', '颍州区', '341200', 1256), +('341203', '颍东区', '341200', 1257), +('341204', '颍泉区', '341200', 1258), +('341221', '临泉县', '341200', 1259), +('341222', '太和县', '341200', 1260), +('341225', '阜南县', '341200', 1261), +('341226', '颍上县', '341200', 1262), +('341271', '阜阳合肥现代产业园区', '341200', 1263), +('341272', '阜阳经济技术开发区', '341200', 1264), +('341282', '界首市', '341200', 1265), +('341300', '宿州市', '340000', 1266), +('341301', '市辖区', '341300', 1267), +('341302', '埇桥区', '341300', 1268), +('341321', '砀山县', '341300', 1269), +('341322', '萧县', '341300', 1270), +('341323', '灵璧县', '341300', 1271), +('341324', '泗县', '341300', 1272), +('341371', '宿州马鞍山现代产业园区', '341300', 1273), +('341372', '宿州经济技术开发区', '341300', 1274), +('341500', '六安市', '340000', 1275), +('341501', '市辖区', '341500', 1276), +('341502', '金安区', '341500', 1277), +('341503', '裕安区', '341500', 1278), +('341504', '叶集区', '341500', 1279), +('341522', '霍邱县', '341500', 1280), +('341523', '舒城县', '341500', 1281), +('341524', '金寨县', '341500', 1282), +('341525', '霍山县', '341500', 1283), +('341600', '亳州市', '340000', 1284), +('341601', '市辖区', '341600', 1285), +('341602', '谯城区', '341600', 1286), +('341621', '涡阳县', '341600', 1287), +('341622', '蒙城县', '341600', 1288), +('341623', '利辛县', '341600', 1289), +('341700', '池州市', '340000', 1290), +('341701', '市辖区', '341700', 1291), +('341702', '贵池区', '341700', 1292), +('341721', '东至县', '341700', 1293), +('341722', '石台县', '341700', 1294), +('341723', '青阳县', '341700', 1295), +('341800', '宣城市', '340000', 1296), +('341801', '市辖区', '341800', 1297), +('341802', '宣州区', '341800', 1298), +('341821', '郎溪县', '341800', 1299), +('341823', '泾县', '341800', 1300), +('341824', '绩溪县', '341800', 1301), +('341825', '旌德县', '341800', 1302), +('341871', '宣城市经济开发区', '341800', 1303), +('341881', '宁国市', '341800', 1304), +('341882', '广德市', '341800', 1305), +('350000', '福建省', NULL, 1306), +('350100', '福州市', '350000', 1307), +('350101', '市辖区', '350100', 1308), +('350102', '鼓楼区', '350100', 1309), +('350103', '台江区', '350100', 1310), +('350104', '仓山区', '350100', 1311), +('350105', '马尾区', '350100', 1312), +('350111', '晋安区', '350100', 1313), +('350112', '长乐区', '350100', 1314), +('350121', '闽侯县', '350100', 1315), +('350122', '连江县', '350100', 1316), +('350123', '罗源县', '350100', 1317), +('350124', '闽清县', '350100', 1318), +('350125', '永泰县', '350100', 1319), +('350128', '平潭县', '350100', 1320), +('350181', '福清市', '350100', 1321), +('350200', '厦门市', '350000', 1322), +('350201', '市辖区', '350200', 1323), +('350203', '思明区', '350200', 1324), +('350205', '海沧区', '350200', 1325), +('350206', '湖里区', '350200', 1326), +('350211', '集美区', '350200', 1327), +('350212', '同安区', '350200', 1328), +('350213', '翔安区', '350200', 1329), +('350300', '莆田市', '350000', 1330), +('350301', '市辖区', '350300', 1331), +('350302', '城厢区', '350300', 1332), +('350303', '涵江区', '350300', 1333), +('350304', '荔城区', '350300', 1334), +('350305', '秀屿区', '350300', 1335), +('350322', '仙游县', '350300', 1336), +('350400', '三明市', '350000', 1337), +('350401', '市辖区', '350400', 1338), +('350404', '三元区', '350400', 1339), +('350405', '沙县区', '350400', 1340), +('350421', '明溪县', '350400', 1341), +('350423', '清流县', '350400', 1342), +('350424', '宁化县', '350400', 1343), +('350425', '大田县', '350400', 1344), +('350426', '尤溪县', '350400', 1345), +('350428', '将乐县', '350400', 1346), +('350429', '泰宁县', '350400', 1347), +('350430', '建宁县', '350400', 1348), +('350481', '永安市', '350400', 1349), +('350500', '泉州市', '350000', 1350), +('350501', '市辖区', '350500', 1351), +('350502', '鲤城区', '350500', 1352), +('350503', '丰泽区', '350500', 1353), +('350504', '洛江区', '350500', 1354), +('350505', '泉港区', '350500', 1355), +('350521', '惠安县', '350500', 1356), +('350524', '安溪县', '350500', 1357), +('350525', '永春县', '350500', 1358), +('350526', '德化县', '350500', 1359), +('350527', '金门县', '350500', 1360), +('350581', '石狮市', '350500', 1361), +('350582', '晋江市', '350500', 1362), +('350583', '南安市', '350500', 1363), +('350600', '漳州市', '350000', 1364), +('350601', '市辖区', '350600', 1365), +('350602', '芗城区', '350600', 1366), +('350603', '龙文区', '350600', 1367), +('350604', '龙海区', '350600', 1368), +('350605', '长泰区', '350600', 1369), +('350622', '云霄县', '350600', 1370), +('350623', '漳浦县', '350600', 1371), +('350624', '诏安县', '350600', 1372), +('350626', '东山县', '350600', 1373), +('350627', '南靖县', '350600', 1374), +('350628', '平和县', '350600', 1375), +('350629', '华安县', '350600', 1376), +('350700', '南平市', '350000', 1377), +('350701', '市辖区', '350700', 1378), +('350702', '延平区', '350700', 1379), +('350703', '建阳区', '350700', 1380), +('350721', '顺昌县', '350700', 1381), +('350722', '浦城县', '350700', 1382), +('350723', '光泽县', '350700', 1383), +('350724', '松溪县', '350700', 1384), +('350725', '政和县', '350700', 1385), +('350781', '邵武市', '350700', 1386), +('350782', '武夷山市', '350700', 1387), +('350783', '建瓯市', '350700', 1388), +('350800', '龙岩市', '350000', 1389), +('350801', '市辖区', '350800', 1390), +('350802', '新罗区', '350800', 1391), +('350803', '永定区', '350800', 1392), +('350821', '长汀县', '350800', 1393), +('350823', '上杭县', '350800', 1394), +('350824', '武平县', '350800', 1395), +('350825', '连城县', '350800', 1396), +('350881', '漳平市', '350800', 1397), +('350900', '宁德市', '350000', 1398), +('350901', '市辖区', '350900', 1399), +('350902', '蕉城区', '350900', 1400), +('350921', '霞浦县', '350900', 1401), +('350922', '古田县', '350900', 1402), +('350923', '屏南县', '350900', 1403), +('350924', '寿宁县', '350900', 1404), +('350925', '周宁县', '350900', 1405), +('350926', '柘荣县', '350900', 1406), +('350981', '福安市', '350900', 1407), +('350982', '福鼎市', '350900', 1408), +('360000', '江西省', NULL, 1409), +('360100', '南昌市', '360000', 1410), +('360101', '市辖区', '360100', 1411), +('360102', '东湖区', '360100', 1412), +('360103', '西湖区', '360100', 1413), +('360104', '青云谱区', '360100', 1414), +('360111', '青山湖区', '360100', 1415), +('360112', '新建区', '360100', 1416), +('360113', '红谷滩区', '360100', 1417), +('360121', '南昌县', '360100', 1418), +('360123', '安义县', '360100', 1419), +('360124', '进贤县', '360100', 1420), +('360200', '景德镇市', '360000', 1421), +('360201', '市辖区', '360200', 1422), +('360202', '昌江区', '360200', 1423), +('360203', '珠山区', '360200', 1424), +('360222', '浮梁县', '360200', 1425), +('360281', '乐平市', '360200', 1426), +('360300', '萍乡市', '360000', 1427), +('360301', '市辖区', '360300', 1428), +('360302', '安源区', '360300', 1429), +('360313', '湘东区', '360300', 1430), +('360321', '莲花县', '360300', 1431), +('360322', '上栗县', '360300', 1432), +('360323', '芦溪县', '360300', 1433), +('360400', '九江市', '360000', 1434), +('360401', '市辖区', '360400', 1435), +('360402', '濂溪区', '360400', 1436), +('360403', '浔阳区', '360400', 1437), +('360404', '柴桑区', '360400', 1438), +('360423', '武宁县', '360400', 1439), +('360424', '修水县', '360400', 1440), +('360425', '永修县', '360400', 1441), +('360426', '德安县', '360400', 1442), +('360428', '都昌县', '360400', 1443), +('360429', '湖口县', '360400', 1444), +('360430', '彭泽县', '360400', 1445), +('360481', '瑞昌市', '360400', 1446), +('360482', '共青城市', '360400', 1447), +('360483', '庐山市', '360400', 1448), +('360500', '新余市', '360000', 1449), +('360501', '市辖区', '360500', 1450), +('360502', '渝水区', '360500', 1451), +('360521', '分宜县', '360500', 1452), +('360600', '鹰潭市', '360000', 1453), +('360601', '市辖区', '360600', 1454), +('360602', '月湖区', '360600', 1455), +('360603', '余江区', '360600', 1456), +('360681', '贵溪市', '360600', 1457), +('360700', '赣州市', '360000', 1458), +('360701', '市辖区', '360700', 1459), +('360702', '章贡区', '360700', 1460), +('360703', '南康区', '360700', 1461), +('360704', '赣县区', '360700', 1462), +('360722', '信丰县', '360700', 1463), +('360723', '大余县', '360700', 1464), +('360724', '上犹县', '360700', 1465), +('360725', '崇义县', '360700', 1466), +('360726', '安远县', '360700', 1467), +('360728', '定南县', '360700', 1468), +('360729', '全南县', '360700', 1469), +('360730', '宁都县', '360700', 1470), +('360731', '于都县', '360700', 1471), +('360732', '兴国县', '360700', 1472), +('360733', '会昌县', '360700', 1473), +('360734', '寻乌县', '360700', 1474), +('360735', '石城县', '360700', 1475), +('360781', '瑞金市', '360700', 1476), +('360783', '龙南市', '360700', 1477), +('360800', '吉安市', '360000', 1478), +('360801', '市辖区', '360800', 1479), +('360802', '吉州区', '360800', 1480), +('360803', '青原区', '360800', 1481), +('360821', '吉安县', '360800', 1482), +('360822', '吉水县', '360800', 1483), +('360823', '峡江县', '360800', 1484), +('360824', '新干县', '360800', 1485), +('360825', '永丰县', '360800', 1486), +('360826', '泰和县', '360800', 1487), +('360827', '遂川县', '360800', 1488), +('360828', '万安县', '360800', 1489), +('360829', '安福县', '360800', 1490), +('360830', '永新县', '360800', 1491), +('360881', '井冈山市', '360800', 1492), +('360900', '宜春市', '360000', 1493), +('360901', '市辖区', '360900', 1494), +('360902', '袁州区', '360900', 1495), +('360921', '奉新县', '360900', 1496), +('360922', '万载县', '360900', 1497), +('360923', '上高县', '360900', 1498), +('360924', '宜丰县', '360900', 1499), +('360925', '靖安县', '360900', 1500), +('360926', '铜鼓县', '360900', 1501), +('360981', '丰城市', '360900', 1502), +('360982', '樟树市', '360900', 1503), +('360983', '高安市', '360900', 1504), +('361000', '抚州市', '360000', 1505), +('361001', '市辖区', '361000', 1506), +('361002', '临川区', '361000', 1507), +('361003', '东乡区', '361000', 1508), +('361021', '南城县', '361000', 1509), +('361022', '黎川县', '361000', 1510), +('361023', '南丰县', '361000', 1511), +('361024', '崇仁县', '361000', 1512), +('361025', '乐安县', '361000', 1513), +('361026', '宜黄县', '361000', 1514), +('361027', '金溪县', '361000', 1515), +('361028', '资溪县', '361000', 1516), +('361030', '广昌县', '361000', 1517), +('361100', '上饶市', '360000', 1518), +('361101', '市辖区', '361100', 1519), +('361102', '信州区', '361100', 1520), +('361103', '广丰区', '361100', 1521), +('361104', '广信区', '361100', 1522), +('361123', '玉山县', '361100', 1523), +('361124', '铅山县', '361100', 1524), +('361125', '横峰县', '361100', 1525), +('361126', '弋阳县', '361100', 1526), +('361127', '余干县', '361100', 1527), +('361128', '鄱阳县', '361100', 1528), +('361129', '万年县', '361100', 1529), +('361130', '婺源县', '361100', 1530), +('361181', '德兴市', '361100', 1531), +('370000', '山东省', NULL, 1532), +('370100', '济南市', '370000', 1533), +('370101', '市辖区', '370100', 1534), +('370102', '历下区', '370100', 1535), +('370103', '市中区', '370100', 1536), +('370104', '槐荫区', '370100', 1537), +('370105', '天桥区', '370100', 1538), +('370112', '历城区', '370100', 1539), +('370113', '长清区', '370100', 1540), +('370114', '章丘区', '370100', 1541), +('370115', '济阳区', '370100', 1542), +('370116', '莱芜区', '370100', 1543), +('370117', '钢城区', '370100', 1544), +('370124', '平阴县', '370100', 1545), +('370126', '商河县', '370100', 1546), +('370176', '济南高新技术产业开发区', '370100', 1547), +('370200', '青岛市', '370000', 1548), +('370201', '市辖区', '370200', 1549), +('370202', '市南区', '370200', 1550), +('370203', '市北区', '370200', 1551), +('370211', '黄岛区', '370200', 1552), +('370212', '崂山区', '370200', 1553), +('370213', '李沧区', '370200', 1554), +('370214', '城阳区', '370200', 1555), +('370215', '即墨区', '370200', 1556), +('370281', '胶州市', '370200', 1557), +('370283', '平度市', '370200', 1558), +('370285', '莱西市', '370200', 1559), +('370300', '淄博市', '370000', 1560), +('370301', '市辖区', '370300', 1561), +('370302', '淄川区', '370300', 1562), +('370303', '张店区', '370300', 1563), +('370304', '博山区', '370300', 1564), +('370305', '临淄区', '370300', 1565), +('370306', '周村区', '370300', 1566), +('370321', '桓台县', '370300', 1567), +('370322', '高青县', '370300', 1568), +('370323', '沂源县', '370300', 1569), +('370400', '枣庄市', '370000', 1570), +('370401', '市辖区', '370400', 1571), +('370402', '市中区', '370400', 1572), +('370403', '薛城区', '370400', 1573), +('370404', '峄城区', '370400', 1574), +('370405', '台儿庄区', '370400', 1575), +('370406', '山亭区', '370400', 1576), +('370481', '滕州市', '370400', 1577), +('370500', '东营市', '370000', 1578), +('370501', '市辖区', '370500', 1579), +('370502', '东营区', '370500', 1580), +('370503', '河口区', '370500', 1581), +('370505', '垦利区', '370500', 1582), +('370522', '利津县', '370500', 1583), +('370523', '广饶县', '370500', 1584), +('370571', '东营经济技术开发区', '370500', 1585), +('370572', '东营港经济开发区', '370500', 1586), +('370600', '烟台市', '370000', 1587), +('370601', '市辖区', '370600', 1588), +('370602', '芝罘区', '370600', 1589), +('370611', '福山区', '370600', 1590), +('370612', '牟平区', '370600', 1591), +('370613', '莱山区', '370600', 1592), +('370614', '蓬莱区', '370600', 1593), +('370671', '烟台高新技术产业开发区', '370600', 1594), +('370676', '烟台经济技术开发区', '370600', 1595), +('370681', '龙口市', '370600', 1596), +('370682', '莱阳市', '370600', 1597), +('370683', '莱州市', '370600', 1598), +('370685', '招远市', '370600', 1599), +('370686', '栖霞市', '370600', 1600), +('370687', '海阳市', '370600', 1601), +('370700', '潍坊市', '370000', 1602), +('370701', '市辖区', '370700', 1603), +('370702', '潍城区', '370700', 1604), +('370703', '寒亭区', '370700', 1605), +('370704', '坊子区', '370700', 1606), +('370705', '奎文区', '370700', 1607), +('370724', '临朐县', '370700', 1608), +('370725', '昌乐县', '370700', 1609), +('370772', '潍坊滨海经济技术开发区', '370700', 1610), +('370781', '青州市', '370700', 1611), +('370782', '诸城市', '370700', 1612), +('370783', '寿光市', '370700', 1613), +('370784', '安丘市', '370700', 1614), +('370785', '高密市', '370700', 1615), +('370786', '昌邑市', '370700', 1616), +('370800', '济宁市', '370000', 1617), +('370801', '市辖区', '370800', 1618), +('370811', '任城区', '370800', 1619), +('370812', '兖州区', '370800', 1620), +('370826', '微山县', '370800', 1621), +('370827', '鱼台县', '370800', 1622), +('370828', '金乡县', '370800', 1623), +('370829', '嘉祥县', '370800', 1624), +('370830', '汶上县', '370800', 1625), +('370831', '泗水县', '370800', 1626), +('370832', '梁山县', '370800', 1627), +('370871', '济宁高新技术产业开发区', '370800', 1628), +('370881', '曲阜市', '370800', 1629), +('370883', '邹城市', '370800', 1630), +('370900', '泰安市', '370000', 1631), +('370901', '市辖区', '370900', 1632), +('370902', '泰山区', '370900', 1633), +('370911', '岱岳区', '370900', 1634), +('370921', '宁阳县', '370900', 1635), +('370923', '东平县', '370900', 1636), +('370982', '新泰市', '370900', 1637), +('370983', '肥城市', '370900', 1638), +('371000', '威海市', '370000', 1639), +('371001', '市辖区', '371000', 1640), +('371002', '环翠区', '371000', 1641), +('371003', '文登区', '371000', 1642), +('371071', '威海火炬高技术产业开发区', '371000', 1643), +('371072', '威海经济技术开发区', '371000', 1644), +('371073', '威海临港经济技术开发区', '371000', 1645), +('371082', '荣成市', '371000', 1646), +('371083', '乳山市', '371000', 1647), +('371100', '日照市', '370000', 1648), +('371101', '市辖区', '371100', 1649), +('371102', '东港区', '371100', 1650), +('371103', '岚山区', '371100', 1651), +('371121', '五莲县', '371100', 1652), +('371122', '莒县', '371100', 1653), +('371171', '日照经济技术开发区', '371100', 1654), +('371300', '临沂市', '370000', 1655), +('371301', '市辖区', '371300', 1656), +('371302', '兰山区', '371300', 1657), +('371311', '罗庄区', '371300', 1658), +('371312', '河东区', '371300', 1659), +('371321', '沂南县', '371300', 1660), +('371322', '郯城县', '371300', 1661), +('371323', '沂水县', '371300', 1662), +('371324', '兰陵县', '371300', 1663), +('371325', '费县', '371300', 1664), +('371326', '平邑县', '371300', 1665), +('371327', '莒南县', '371300', 1666), +('371328', '蒙阴县', '371300', 1667), +('371329', '临沭县', '371300', 1668), +('371371', '临沂高新技术产业开发区', '371300', 1669), +('371400', '德州市', '370000', 1670), +('371401', '市辖区', '371400', 1671), +('371402', '德城区', '371400', 1672), +('371403', '陵城区', '371400', 1673), +('371422', '宁津县', '371400', 1674), +('371423', '庆云县', '371400', 1675), +('371424', '临邑县', '371400', 1676), +('371425', '齐河县', '371400', 1677), +('371426', '平原县', '371400', 1678), +('371427', '夏津县', '371400', 1679), +('371428', '武城县', '371400', 1680), +('371471', '德州天衢新区', '371400', 1681), +('371481', '乐陵市', '371400', 1682), +('371482', '禹城市', '371400', 1683), +('371500', '聊城市', '370000', 1684), +('371501', '市辖区', '371500', 1685), +('371502', '东昌府区', '371500', 1686), +('371503', '茌平区', '371500', 1687), +('371521', '阳谷县', '371500', 1688), +('371522', '莘县', '371500', 1689), +('371524', '东阿县', '371500', 1690), +('371525', '冠县', '371500', 1691), +('371526', '高唐县', '371500', 1692), +('371581', '临清市', '371500', 1693), +('371600', '滨州市', '370000', 1694), +('371601', '市辖区', '371600', 1695), +('371602', '滨城区', '371600', 1696), +('371603', '沾化区', '371600', 1697), +('371621', '惠民县', '371600', 1698), +('371622', '阳信县', '371600', 1699), +('371623', '无棣县', '371600', 1700), +('371625', '博兴县', '371600', 1701), +('371681', '邹平市', '371600', 1702), +('371700', '菏泽市', '370000', 1703), +('371701', '市辖区', '371700', 1704), +('371702', '牡丹区', '371700', 1705), +('371703', '定陶区', '371700', 1706), +('371721', '曹县', '371700', 1707), +('371722', '单县', '371700', 1708), +('371723', '成武县', '371700', 1709), +('371724', '巨野县', '371700', 1710), +('371725', '郓城县', '371700', 1711), +('371726', '鄄城县', '371700', 1712), +('371728', '东明县', '371700', 1713), +('371771', '菏泽经济技术开发区', '371700', 1714), +('371772', '菏泽高新技术开发区', '371700', 1715), +('410000', '河南省', NULL, 1716), +('410100', '郑州市', '410000', 1717), +('410101', '市辖区', '410100', 1718), +('410102', '中原区', '410100', 1719), +('410103', '二七区', '410100', 1720), +('410104', '管城回族区', '410100', 1721), +('410105', '金水区', '410100', 1722), +('410106', '上街区', '410100', 1723), +('410108', '惠济区', '410100', 1724), +('410122', '中牟县', '410100', 1725), +('410171', '郑州经济技术开发区', '410100', 1726), +('410172', '郑州高新技术产业开发区', '410100', 1727), +('410173', '郑州航空港经济综合实验区', '410100', 1728), +('410181', '巩义市', '410100', 1729), +('410182', '荥阳市', '410100', 1730), +('410183', '新密市', '410100', 1731), +('410184', '新郑市', '410100', 1732), +('410185', '登封市', '410100', 1733), +('410200', '开封市', '410000', 1734), +('410201', '市辖区', '410200', 1735), +('410202', '龙亭区', '410200', 1736), +('410203', '顺河回族区', '410200', 1737), +('410204', '鼓楼区', '410200', 1738), +('410205', '禹王台区', '410200', 1739), +('410212', '祥符区', '410200', 1740), +('410221', '杞县', '410200', 1741), +('410222', '通许县', '410200', 1742), +('410223', '尉氏县', '410200', 1743), +('410225', '兰考县', '410200', 1744), +('410300', '洛阳市', '410000', 1745), +('410301', '市辖区', '410300', 1746), +('410302', '老城区', '410300', 1747), +('410303', '西工区', '410300', 1748), +('410304', '瀍河回族区', '410300', 1749), +('410305', '涧西区', '410300', 1750), +('410307', '偃师区', '410300', 1751), +('410308', '孟津区', '410300', 1752), +('410311', '洛龙区', '410300', 1753), +('410323', '新安县', '410300', 1754), +('410324', '栾川县', '410300', 1755), +('410325', '嵩县', '410300', 1756), +('410326', '汝阳县', '410300', 1757), +('410327', '宜阳县', '410300', 1758), +('410328', '洛宁县', '410300', 1759), +('410329', '伊川县', '410300', 1760), +('410371', '洛阳高新技术产业开发区', '410300', 1761), +('410400', '平顶山市', '410000', 1762), +('410401', '市辖区', '410400', 1763), +('410402', '新华区', '410400', 1764), +('410403', '卫东区', '410400', 1765), +('410404', '石龙区', '410400', 1766), +('410411', '湛河区', '410400', 1767), +('410421', '宝丰县', '410400', 1768), +('410422', '叶县', '410400', 1769), +('410423', '鲁山县', '410400', 1770), +('410425', '郏县', '410400', 1771), +('410471', '平顶山高新技术产业开发区', '410400', 1772), +('410472', '平顶山市城乡一体化示范区', '410400', 1773), +('410481', '舞钢市', '410400', 1774), +('410482', '汝州市', '410400', 1775), +('410500', '安阳市', '410000', 1776), +('410501', '市辖区', '410500', 1777), +('410502', '文峰区', '410500', 1778), +('410503', '北关区', '410500', 1779), +('410505', '殷都区', '410500', 1780), +('410506', '龙安区', '410500', 1781), +('410522', '安阳县', '410500', 1782), +('410523', '汤阴县', '410500', 1783), +('410526', '滑县', '410500', 1784), +('410527', '内黄县', '410500', 1785), +('410571', '安阳高新技术产业开发区', '410500', 1786), +('410581', '林州市', '410500', 1787), +('410600', '鹤壁市', '410000', 1788), +('410601', '市辖区', '410600', 1789), +('410602', '鹤山区', '410600', 1790), +('410603', '山城区', '410600', 1791), +('410611', '淇滨区', '410600', 1792), +('410621', '浚县', '410600', 1793), +('410622', '淇县', '410600', 1794), +('410671', '鹤壁经济技术开发区', '410600', 1795), +('410700', '新乡市', '410000', 1796), +('410701', '市辖区', '410700', 1797), +('410702', '红旗区', '410700', 1798), +('410703', '卫滨区', '410700', 1799), +('410704', '凤泉区', '410700', 1800), +('410711', '牧野区', '410700', 1801), +('410721', '新乡县', '410700', 1802), +('410724', '获嘉县', '410700', 1803), +('410725', '原阳县', '410700', 1804), +('410726', '延津县', '410700', 1805), +('410727', '封丘县', '410700', 1806), +('410771', '新乡高新技术产业开发区', '410700', 1807), +('410772', '新乡经济技术开发区', '410700', 1808), +('410773', '新乡市平原城乡一体化示范区', '410700', 1809), +('410781', '卫辉市', '410700', 1810), +('410782', '辉县市', '410700', 1811), +('410783', '长垣市', '410700', 1812), +('410800', '焦作市', '410000', 1813), +('410801', '市辖区', '410800', 1814), +('410802', '解放区', '410800', 1815), +('410803', '中站区', '410800', 1816), +('410804', '马村区', '410800', 1817), +('410811', '山阳区', '410800', 1818), +('410821', '修武县', '410800', 1819), +('410822', '博爱县', '410800', 1820), +('410823', '武陟县', '410800', 1821), +('410825', '温县', '410800', 1822), +('410871', '焦作城乡一体化示范区', '410800', 1823), +('410882', '沁阳市', '410800', 1824), +('410883', '孟州市', '410800', 1825), +('410900', '濮阳市', '410000', 1826), +('410901', '市辖区', '410900', 1827), +('410902', '华龙区', '410900', 1828), +('410922', '清丰县', '410900', 1829), +('410923', '南乐县', '410900', 1830), +('410926', '范县', '410900', 1831), +('410927', '台前县', '410900', 1832), +('410928', '濮阳县', '410900', 1833), +('410971', '河南濮阳工业园区', '410900', 1834), +('410972', '濮阳经济技术开发区', '410900', 1835), +('411000', '许昌市', '410000', 1836), +('411001', '市辖区', '411000', 1837), +('411002', '魏都区', '411000', 1838), +('411003', '建安区', '411000', 1839), +('411024', '鄢陵县', '411000', 1840), +('411025', '襄城县', '411000', 1841), +('411071', '许昌经济技术开发区', '411000', 1842), +('411081', '禹州市', '411000', 1843), +('411082', '长葛市', '411000', 1844), +('411100', '漯河市', '410000', 1845), +('411101', '市辖区', '411100', 1846), +('411102', '源汇区', '411100', 1847), +('411103', '郾城区', '411100', 1848), +('411104', '召陵区', '411100', 1849), +('411121', '舞阳县', '411100', 1850), +('411122', '临颍县', '411100', 1851), +('411171', '漯河经济技术开发区', '411100', 1852), +('411200', '三门峡市', '410000', 1853), +('411201', '市辖区', '411200', 1854), +('411202', '湖滨区', '411200', 1855), +('411203', '陕州区', '411200', 1856), +('411221', '渑池县', '411200', 1857), +('411224', '卢氏县', '411200', 1858), +('411271', '河南三门峡经济开发区', '411200', 1859), +('411281', '义马市', '411200', 1860), +('411282', '灵宝市', '411200', 1861), +('411300', '南阳市', '410000', 1862), +('411301', '市辖区', '411300', 1863), +('411302', '宛城区', '411300', 1864), +('411303', '卧龙区', '411300', 1865), +('411321', '南召县', '411300', 1866), +('411322', '方城县', '411300', 1867), +('411323', '西峡县', '411300', 1868), +('411324', '镇平县', '411300', 1869), +('411325', '内乡县', '411300', 1870), +('411326', '淅川县', '411300', 1871), +('411327', '社旗县', '411300', 1872), +('411328', '唐河县', '411300', 1873), +('411329', '新野县', '411300', 1874), +('411330', '桐柏县', '411300', 1875), +('411371', '南阳高新技术产业开发区', '411300', 1876), +('411372', '南阳市城乡一体化示范区', '411300', 1877), +('411381', '邓州市', '411300', 1878), +('411400', '商丘市', '410000', 1879), +('411401', '市辖区', '411400', 1880), +('411402', '梁园区', '411400', 1881), +('411403', '睢阳区', '411400', 1882), +('411421', '民权县', '411400', 1883), +('411422', '睢县', '411400', 1884), +('411423', '宁陵县', '411400', 1885), +('411424', '柘城县', '411400', 1886), +('411425', '虞城县', '411400', 1887), +('411426', '夏邑县', '411400', 1888), +('411471', '豫东综合物流产业聚集区', '411400', 1889), +('411472', '河南商丘经济开发区', '411400', 1890), +('411481', '永城市', '411400', 1891), +('411500', '信阳市', '410000', 1892), +('411501', '市辖区', '411500', 1893), +('411502', '浉河区', '411500', 1894), +('411503', '平桥区', '411500', 1895), +('411521', '罗山县', '411500', 1896), +('411522', '光山县', '411500', 1897), +('411523', '新县', '411500', 1898), +('411524', '商城县', '411500', 1899), +('411525', '固始县', '411500', 1900), +('411526', '潢川县', '411500', 1901), +('411527', '淮滨县', '411500', 1902), +('411528', '息县', '411500', 1903), +('411571', '信阳高新技术产业开发区', '411500', 1904), +('411600', '周口市', '410000', 1905), +('411601', '市辖区', '411600', 1906), +('411602', '川汇区', '411600', 1907), +('411603', '淮阳区', '411600', 1908), +('411621', '扶沟县', '411600', 1909), +('411622', '西华县', '411600', 1910), +('411623', '商水县', '411600', 1911), +('411624', '沈丘县', '411600', 1912), +('411625', '郸城县', '411600', 1913), +('411627', '太康县', '411600', 1914), +('411628', '鹿邑县', '411600', 1915), +('411671', '周口临港开发区', '411600', 1916), +('411681', '项城市', '411600', 1917), +('411700', '驻马店市', '410000', 1918), +('411701', '市辖区', '411700', 1919), +('411702', '驿城区', '411700', 1920), +('411721', '西平县', '411700', 1921), +('411722', '上蔡县', '411700', 1922), +('411723', '平舆县', '411700', 1923), +('411724', '正阳县', '411700', 1924), +('411725', '确山县', '411700', 1925), +('411726', '泌阳县', '411700', 1926), +('411727', '汝南县', '411700', 1927), +('411728', '遂平县', '411700', 1928), +('411729', '新蔡县', '411700', 1929), +('411771', '河南驻马店经济开发区', '411700', 1930), +('419000', '省直辖县级行政区划', '410000', 1931), +('419001', '济源市', '419000', 1932), +('420000', '湖北省', NULL, 1933), +('420100', '武汉市', '420000', 1934), +('420101', '市辖区', '420100', 1935), +('420102', '江岸区', '420100', 1936), +('420103', '江汉区', '420100', 1937), +('420104', '硚口区', '420100', 1938), +('420105', '汉阳区', '420100', 1939), +('420106', '武昌区', '420100', 1940), +('420107', '青山区', '420100', 1941), +('420111', '洪山区', '420100', 1942), +('420112', '东西湖区', '420100', 1943), +('420113', '汉南区', '420100', 1944), +('420114', '蔡甸区', '420100', 1945), +('420115', '江夏区', '420100', 1946), +('420116', '黄陂区', '420100', 1947), +('420117', '新洲区', '420100', 1948), +('420200', '黄石市', '420000', 1949), +('420201', '市辖区', '420200', 1950), +('420202', '黄石港区', '420200', 1951), +('420203', '西塞山区', '420200', 1952), +('420204', '下陆区', '420200', 1953), +('420205', '铁山区', '420200', 1954), +('420222', '阳新县', '420200', 1955), +('420281', '大冶市', '420200', 1956), +('420300', '十堰市', '420000', 1957), +('420301', '市辖区', '420300', 1958), +('420302', '茅箭区', '420300', 1959), +('420303', '张湾区', '420300', 1960), +('420304', '郧阳区', '420300', 1961), +('420322', '郧西县', '420300', 1962), +('420323', '竹山县', '420300', 1963), +('420324', '竹溪县', '420300', 1964), +('420325', '房县', '420300', 1965), +('420381', '丹江口市', '420300', 1966), +('420500', '宜昌市', '420000', 1967), +('420501', '市辖区', '420500', 1968), +('420502', '西陵区', '420500', 1969), +('420503', '伍家岗区', '420500', 1970), +('420504', '点军区', '420500', 1971), +('420505', '猇亭区', '420500', 1972), +('420506', '夷陵区', '420500', 1973), +('420525', '远安县', '420500', 1974), +('420526', '兴山县', '420500', 1975), +('420527', '秭归县', '420500', 1976), +('420528', '长阳土家族自治县', '420500', 1977), +('420529', '五峰土家族自治县', '420500', 1978), +('420581', '宜都市', '420500', 1979), +('420582', '当阳市', '420500', 1980), +('420583', '枝江市', '420500', 1981), +('420600', '襄阳市', '420000', 1982), +('420601', '市辖区', '420600', 1983), +('420602', '襄城区', '420600', 1984), +('420606', '樊城区', '420600', 1985), +('420607', '襄州区', '420600', 1986), +('420624', '南漳县', '420600', 1987), +('420625', '谷城县', '420600', 1988), +('420626', '保康县', '420600', 1989), +('420682', '老河口市', '420600', 1990), +('420683', '枣阳市', '420600', 1991), +('420684', '宜城市', '420600', 1992), +('420700', '鄂州市', '420000', 1993), +('420701', '市辖区', '420700', 1994), +('420702', '梁子湖区', '420700', 1995), +('420703', '华容区', '420700', 1996), +('420704', '鄂城区', '420700', 1997), +('420800', '荆门市', '420000', 1998), +('420801', '市辖区', '420800', 1999), +('420802', '东宝区', '420800', 2000), +('420804', '掇刀区', '420800', 2001), +('420822', '沙洋县', '420800', 2002), +('420881', '钟祥市', '420800', 2003), +('420882', '京山市', '420800', 2004), +('420900', '孝感市', '420000', 2005), +('420901', '市辖区', '420900', 2006), +('420902', '孝南区', '420900', 2007), +('420921', '孝昌县', '420900', 2008), +('420922', '大悟县', '420900', 2009), +('420923', '云梦县', '420900', 2010), +('420981', '应城市', '420900', 2011), +('420982', '安陆市', '420900', 2012), +('420984', '汉川市', '420900', 2013), +('421000', '荆州市', '420000', 2014), +('421001', '市辖区', '421000', 2015), +('421002', '沙市区', '421000', 2016), +('421003', '荆州区', '421000', 2017), +('421022', '公安县', '421000', 2018), +('421024', '江陵县', '421000', 2019), +('421071', '荆州经济技术开发区', '421000', 2020), +('421081', '石首市', '421000', 2021), +('421083', '洪湖市', '421000', 2022), +('421087', '松滋市', '421000', 2023), +('421088', '监利市', '421000', 2024), +('421100', '黄冈市', '420000', 2025), +('421101', '市辖区', '421100', 2026), +('421102', '黄州区', '421100', 2027), +('421121', '团风县', '421100', 2028), +('421122', '红安县', '421100', 2029), +('421123', '罗田县', '421100', 2030), +('421124', '英山县', '421100', 2031), +('421125', '浠水县', '421100', 2032), +('421126', '蕲春县', '421100', 2033), +('421127', '黄梅县', '421100', 2034), +('421171', '龙感湖管理区', '421100', 2035), +('421181', '麻城市', '421100', 2036), +('421182', '武穴市', '421100', 2037), +('421200', '咸宁市', '420000', 2038), +('421201', '市辖区', '421200', 2039), +('421202', '咸安区', '421200', 2040), +('421221', '嘉鱼县', '421200', 2041), +('421222', '通城县', '421200', 2042), +('421223', '崇阳县', '421200', 2043), +('421224', '通山县', '421200', 2044), +('421281', '赤壁市', '421200', 2045), +('421300', '随州市', '420000', 2046), +('421301', '市辖区', '421300', 2047), +('421303', '曾都区', '421300', 2048), +('421321', '随县', '421300', 2049), +('421381', '广水市', '421300', 2050), +('422800', '恩施土家族苗族自治州', '420000', 2051), +('422801', '恩施市', '422800', 2052), +('422802', '利川市', '422800', 2053), +('422822', '建始县', '422800', 2054), +('422823', '巴东县', '422800', 2055), +('422825', '宣恩县', '422800', 2056), +('422826', '咸丰县', '422800', 2057), +('422827', '来凤县', '422800', 2058), +('422828', '鹤峰县', '422800', 2059), +('429000', '省直辖县级行政区划', '420000', 2060), +('429004', '仙桃市', '429000', 2061), +('429005', '潜江市', '429000', 2062), +('429006', '天门市', '429000', 2063), +('429021', '神农架林区', '429000', 2064), +('430000', '湖南省', NULL, 2065), +('430100', '长沙市', '430000', 2066), +('430101', '市辖区', '430100', 2067), +('430102', '芙蓉区', '430100', 2068), +('430103', '天心区', '430100', 2069), +('430104', '岳麓区', '430100', 2070), +('430105', '开福区', '430100', 2071), +('430111', '雨花区', '430100', 2072), +('430112', '望城区', '430100', 2073), +('430121', '长沙县', '430100', 2074), +('430181', '浏阳市', '430100', 2075), +('430182', '宁乡市', '430100', 2076), +('430200', '株洲市', '430000', 2077), +('430201', '市辖区', '430200', 2078), +('430202', '荷塘区', '430200', 2079), +('430203', '芦淞区', '430200', 2080), +('430204', '石峰区', '430200', 2081), +('430211', '天元区', '430200', 2082), +('430212', '渌口区', '430200', 2083), +('430223', '攸县', '430200', 2084), +('430224', '茶陵县', '430200', 2085), +('430225', '炎陵县', '430200', 2086), +('430281', '醴陵市', '430200', 2087), +('430300', '湘潭市', '430000', 2088), +('430301', '市辖区', '430300', 2089), +('430302', '雨湖区', '430300', 2090), +('430304', '岳塘区', '430300', 2091), +('430321', '湘潭县', '430300', 2092), +('430371', '湖南湘潭高新技术产业园区', '430300', 2093), +('430372', '湘潭昭山示范区', '430300', 2094), +('430373', '湘潭九华示范区', '430300', 2095), +('430381', '湘乡市', '430300', 2096), +('430382', '韶山市', '430300', 2097), +('430400', '衡阳市', '430000', 2098), +('430401', '市辖区', '430400', 2099), +('430405', '珠晖区', '430400', 2100), +('430406', '雁峰区', '430400', 2101), +('430407', '石鼓区', '430400', 2102), +('430408', '蒸湘区', '430400', 2103), +('430412', '南岳区', '430400', 2104), +('430421', '衡阳县', '430400', 2105), +('430422', '衡南县', '430400', 2106), +('430423', '衡山县', '430400', 2107), +('430424', '衡东县', '430400', 2108), +('430426', '祁东县', '430400', 2109), +('430473', '湖南衡阳松木经济开发区', '430400', 2110), +('430476', '湖南衡阳高新技术产业园区', '430400', 2111), +('430481', '耒阳市', '430400', 2112), +('430482', '常宁市', '430400', 2113), +('430500', '邵阳市', '430000', 2114), +('430501', '市辖区', '430500', 2115), +('430502', '双清区', '430500', 2116), +('430503', '大祥区', '430500', 2117), +('430511', '北塔区', '430500', 2118), +('430522', '新邵县', '430500', 2119), +('430523', '邵阳县', '430500', 2120), +('430524', '隆回县', '430500', 2121), +('430525', '洞口县', '430500', 2122), +('430527', '绥宁县', '430500', 2123), +('430528', '新宁县', '430500', 2124), +('430529', '城步苗族自治县', '430500', 2125), +('430581', '武冈市', '430500', 2126), +('430582', '邵东市', '430500', 2127), +('430600', '岳阳市', '430000', 2128), +('430601', '市辖区', '430600', 2129), +('430602', '岳阳楼区', '430600', 2130), +('430603', '云溪区', '430600', 2131), +('430611', '君山区', '430600', 2132), +('430621', '岳阳县', '430600', 2133), +('430623', '华容县', '430600', 2134), +('430624', '湘阴县', '430600', 2135), +('430626', '平江县', '430600', 2136), +('430671', '岳阳市屈原管理区', '430600', 2137), +('430681', '汨罗市', '430600', 2138), +('430682', '临湘市', '430600', 2139), +('430700', '常德市', '430000', 2140), +('430701', '市辖区', '430700', 2141), +('430702', '武陵区', '430700', 2142), +('430703', '鼎城区', '430700', 2143), +('430721', '安乡县', '430700', 2144), +('430722', '汉寿县', '430700', 2145), +('430723', '澧县', '430700', 2146), +('430724', '临澧县', '430700', 2147), +('430725', '桃源县', '430700', 2148), +('430726', '石门县', '430700', 2149), +('430771', '常德市西洞庭管理区', '430700', 2150), +('430781', '津市市', '430700', 2151), +('430800', '张家界市', '430000', 2152), +('430801', '市辖区', '430800', 2153), +('430802', '永定区', '430800', 2154), +('430811', '武陵源区', '430800', 2155), +('430821', '慈利县', '430800', 2156), +('430822', '桑植县', '430800', 2157), +('430900', '益阳市', '430000', 2158), +('430901', '市辖区', '430900', 2159), +('430902', '资阳区', '430900', 2160), +('430903', '赫山区', '430900', 2161), +('430921', '南县', '430900', 2162), +('430922', '桃江县', '430900', 2163), +('430923', '安化县', '430900', 2164), +('430971', '益阳市大通湖管理区', '430900', 2165), +('430972', '湖南益阳高新技术产业园区', '430900', 2166), +('430981', '沅江市', '430900', 2167), +('431000', '郴州市', '430000', 2168), +('431001', '市辖区', '431000', 2169), +('431002', '北湖区', '431000', 2170), +('431003', '苏仙区', '431000', 2171), +('431021', '桂阳县', '431000', 2172), +('431022', '宜章县', '431000', 2173), +('431023', '永兴县', '431000', 2174), +('431024', '嘉禾县', '431000', 2175), +('431025', '临武县', '431000', 2176), +('431026', '汝城县', '431000', 2177), +('431027', '桂东县', '431000', 2178), +('431028', '安仁县', '431000', 2179), +('431081', '资兴市', '431000', 2180), +('431100', '永州市', '430000', 2181), +('431101', '市辖区', '431100', 2182), +('431102', '零陵区', '431100', 2183), +('431103', '冷水滩区', '431100', 2184), +('431122', '东安县', '431100', 2185), +('431123', '双牌县', '431100', 2186), +('431124', '道县', '431100', 2187), +('431125', '江永县', '431100', 2188), +('431126', '宁远县', '431100', 2189), +('431127', '蓝山县', '431100', 2190), +('431128', '新田县', '431100', 2191), +('431129', '江华瑶族自治县', '431100', 2192), +('431171', '永州经济技术开发区', '431100', 2193), +('431173', '永州市回龙圩管理区', '431100', 2194), +('431181', '祁阳市', '431100', 2195), +('431200', '怀化市', '430000', 2196), +('431201', '市辖区', '431200', 2197), +('431202', '鹤城区', '431200', 2198), +('431221', '中方县', '431200', 2199), +('431222', '沅陵县', '431200', 2200), +('431223', '辰溪县', '431200', 2201), +('431224', '溆浦县', '431200', 2202), +('431225', '会同县', '431200', 2203), +('431226', '麻阳苗族自治县', '431200', 2204), +('431227', '新晃侗族自治县', '431200', 2205), +('431228', '芷江侗族自治县', '431200', 2206), +('431229', '靖州苗族侗族自治县', '431200', 2207), +('431230', '通道侗族自治县', '431200', 2208), +('431271', '怀化市洪江管理区', '431200', 2209), +('431281', '洪江市', '431200', 2210), +('431300', '娄底市', '430000', 2211), +('431301', '市辖区', '431300', 2212), +('431302', '娄星区', '431300', 2213), +('431321', '双峰县', '431300', 2214), +('431322', '新化县', '431300', 2215), +('431381', '冷水江市', '431300', 2216), +('431382', '涟源市', '431300', 2217), +('433100', '湘西土家族苗族自治州', '430000', 2218), +('433101', '吉首市', '433100', 2219), +('433122', '泸溪县', '433100', 2220), +('433123', '凤凰县', '433100', 2221), +('433124', '花垣县', '433100', 2222), +('433125', '保靖县', '433100', 2223), +('433126', '古丈县', '433100', 2224), +('433127', '永顺县', '433100', 2225), +('433130', '龙山县', '433100', 2226), +('440000', '广东省', NULL, 2227), +('440100', '广州市', '440000', 2228), +('440101', '市辖区', '440100', 2229), +('440103', '荔湾区', '440100', 2230), +('440104', '越秀区', '440100', 2231), +('440105', '海珠区', '440100', 2232), +('440106', '天河区', '440100', 2233), +('440111', '白云区', '440100', 2234), +('440112', '黄埔区', '440100', 2235), +('440113', '番禺区', '440100', 2236), +('440114', '花都区', '440100', 2237), +('440115', '南沙区', '440100', 2238), +('440117', '从化区', '440100', 2239), +('440118', '增城区', '440100', 2240), +('440200', '韶关市', '440000', 2241), +('440201', '市辖区', '440200', 2242), +('440203', '武江区', '440200', 2243), +('440204', '浈江区', '440200', 2244), +('440205', '曲江区', '440200', 2245), +('440222', '始兴县', '440200', 2246), +('440224', '仁化县', '440200', 2247), +('440229', '翁源县', '440200', 2248), +('440232', '乳源瑶族自治县', '440200', 2249), +('440233', '新丰县', '440200', 2250), +('440281', '乐昌市', '440200', 2251), +('440282', '南雄市', '440200', 2252), +('440300', '深圳市', '440000', 2253), +('440301', '市辖区', '440300', 2254), +('440303', '罗湖区', '440300', 2255), +('440304', '福田区', '440300', 2256), +('440305', '南山区', '440300', 2257), +('440306', '宝安区', '440300', 2258), +('440307', '龙岗区', '440300', 2259), +('440308', '盐田区', '440300', 2260), +('440309', '龙华区', '440300', 2261), +('440310', '坪山区', '440300', 2262), +('440311', '光明区', '440300', 2263), +('440400', '珠海市', '440000', 2264), +('440401', '市辖区', '440400', 2265), +('440402', '香洲区', '440400', 2266), +('440403', '斗门区', '440400', 2267), +('440404', '金湾区', '440400', 2268), +('440500', '汕头市', '440000', 2269), +('440501', '市辖区', '440500', 2270), +('440507', '龙湖区', '440500', 2271), +('440511', '金平区', '440500', 2272), +('440512', '濠江区', '440500', 2273), +('440513', '潮阳区', '440500', 2274), +('440514', '潮南区', '440500', 2275), +('440515', '澄海区', '440500', 2276), +('440523', '南澳县', '440500', 2277), +('440600', '佛山市', '440000', 2278), +('440601', '市辖区', '440600', 2279), +('440604', '禅城区', '440600', 2280), +('440605', '南海区', '440600', 2281), +('440606', '顺德区', '440600', 2282), +('440607', '三水区', '440600', 2283), +('440608', '高明区', '440600', 2284), +('440700', '江门市', '440000', 2285), +('440701', '市辖区', '440700', 2286), +('440703', '蓬江区', '440700', 2287), +('440704', '江海区', '440700', 2288), +('440705', '新会区', '440700', 2289), +('440781', '台山市', '440700', 2290), +('440783', '开平市', '440700', 2291), +('440784', '鹤山市', '440700', 2292), +('440785', '恩平市', '440700', 2293), +('440800', '湛江市', '440000', 2294), +('440801', '市辖区', '440800', 2295), +('440802', '赤坎区', '440800', 2296), +('440803', '霞山区', '440800', 2297), +('440804', '坡头区', '440800', 2298), +('440811', '麻章区', '440800', 2299), +('440823', '遂溪县', '440800', 2300), +('440825', '徐闻县', '440800', 2301), +('440881', '廉江市', '440800', 2302), +('440882', '雷州市', '440800', 2303), +('440883', '吴川市', '440800', 2304), +('440900', '茂名市', '440000', 2305), +('440901', '市辖区', '440900', 2306), +('440902', '茂南区', '440900', 2307), +('440904', '电白区', '440900', 2308), +('440981', '高州市', '440900', 2309), +('440982', '化州市', '440900', 2310), +('440983', '信宜市', '440900', 2311), +('441200', '肇庆市', '440000', 2312), +('441201', '市辖区', '441200', 2313), +('441202', '端州区', '441200', 2314), +('441203', '鼎湖区', '441200', 2315), +('441204', '高要区', '441200', 2316), +('441223', '广宁县', '441200', 2317), +('441224', '怀集县', '441200', 2318), +('441225', '封开县', '441200', 2319), +('441226', '德庆县', '441200', 2320), +('441284', '四会市', '441200', 2321), +('441300', '惠州市', '440000', 2322), +('441301', '市辖区', '441300', 2323), +('441302', '惠城区', '441300', 2324), +('441303', '惠阳区', '441300', 2325), +('441322', '博罗县', '441300', 2326), +('441323', '惠东县', '441300', 2327), +('441324', '龙门县', '441300', 2328), +('441400', '梅州市', '440000', 2329), +('441401', '市辖区', '441400', 2330), +('441402', '梅江区', '441400', 2331), +('441403', '梅县区', '441400', 2332), +('441422', '大埔县', '441400', 2333), +('441423', '丰顺县', '441400', 2334), +('441424', '五华县', '441400', 2335), +('441426', '平远县', '441400', 2336), +('441427', '蕉岭县', '441400', 2337), +('441481', '兴宁市', '441400', 2338), +('441500', '汕尾市', '440000', 2339), +('441501', '市辖区', '441500', 2340), +('441502', '城区', '441500', 2341), +('441521', '海丰县', '441500', 2342), +('441523', '陆河县', '441500', 2343), +('441581', '陆丰市', '441500', 2344), +('441600', '河源市', '440000', 2345), +('441601', '市辖区', '441600', 2346), +('441602', '源城区', '441600', 2347), +('441621', '紫金县', '441600', 2348), +('441622', '龙川县', '441600', 2349), +('441623', '连平县', '441600', 2350), +('441624', '和平县', '441600', 2351), +('441625', '东源县', '441600', 2352), +('441700', '阳江市', '440000', 2353), +('441701', '市辖区', '441700', 2354), +('441702', '江城区', '441700', 2355), +('441704', '阳东区', '441700', 2356), +('441721', '阳西县', '441700', 2357), +('441781', '阳春市', '441700', 2358), +('441800', '清远市', '440000', 2359), +('441801', '市辖区', '441800', 2360), +('441802', '清城区', '441800', 2361), +('441803', '清新区', '441800', 2362), +('441821', '佛冈县', '441800', 2363), +('441823', '阳山县', '441800', 2364), +('441825', '连山壮族瑶族自治县', '441800', 2365), +('441826', '连南瑶族自治县', '441800', 2366), +('441881', '英德市', '441800', 2367), +('441882', '连州市', '441800', 2368), +('441900', '东莞市', '440000', 2369), +('442000', '中山市', '440000', 2370), +('445100', '潮州市', '440000', 2371), +('445101', '市辖区', '445100', 2372), +('445102', '湘桥区', '445100', 2373), +('445103', '潮安区', '445100', 2374), +('445122', '饶平县', '445100', 2375), +('445200', '揭阳市', '440000', 2376), +('445201', '市辖区', '445200', 2377), +('445202', '榕城区', '445200', 2378), +('445203', '揭东区', '445200', 2379), +('445222', '揭西县', '445200', 2380), +('445224', '惠来县', '445200', 2381), +('445281', '普宁市', '445200', 2382), +('445300', '云浮市', '440000', 2383), +('445301', '市辖区', '445300', 2384), +('445302', '云城区', '445300', 2385), +('445303', '云安区', '445300', 2386), +('445321', '新兴县', '445300', 2387), +('445322', '郁南县', '445300', 2388), +('445381', '罗定市', '445300', 2389), +('450000', '广西壮族自治区', NULL, 2390), +('450100', '南宁市', '450000', 2391), +('450101', '市辖区', '450100', 2392), +('450102', '兴宁区', '450100', 2393), +('450103', '青秀区', '450100', 2394), +('450105', '江南区', '450100', 2395), +('450107', '西乡塘区', '450100', 2396), +('450108', '良庆区', '450100', 2397), +('450109', '邕宁区', '450100', 2398), +('450110', '武鸣区', '450100', 2399), +('450123', '隆安县', '450100', 2400), +('450124', '马山县', '450100', 2401), +('450125', '上林县', '450100', 2402), +('450126', '宾阳县', '450100', 2403), +('450181', '横州市', '450100', 2404), +('450200', '柳州市', '450000', 2405), +('450201', '市辖区', '450200', 2406), +('450202', '城中区', '450200', 2407), +('450203', '鱼峰区', '450200', 2408), +('450204', '柳南区', '450200', 2409), +('450205', '柳北区', '450200', 2410), +('450206', '柳江区', '450200', 2411), +('450222', '柳城县', '450200', 2412), +('450223', '鹿寨县', '450200', 2413), +('450224', '融安县', '450200', 2414), +('450225', '融水苗族自治县', '450200', 2415), +('450226', '三江侗族自治县', '450200', 2416), +('450300', '桂林市', '450000', 2417), +('450301', '市辖区', '450300', 2418), +('450302', '秀峰区', '450300', 2419), +('450303', '叠彩区', '450300', 2420), +('450304', '象山区', '450300', 2421), +('450305', '七星区', '450300', 2422), +('450311', '雁山区', '450300', 2423), +('450312', '临桂区', '450300', 2424), +('450321', '阳朔县', '450300', 2425), +('450323', '灵川县', '450300', 2426), +('450324', '全州县', '450300', 2427), +('450325', '兴安县', '450300', 2428), +('450326', '永福县', '450300', 2429), +('450327', '灌阳县', '450300', 2430), +('450328', '龙胜各族自治县', '450300', 2431), +('450329', '资源县', '450300', 2432), +('450330', '平乐县', '450300', 2433), +('450332', '恭城瑶族自治县', '450300', 2434), +('450381', '荔浦市', '450300', 2435), +('450400', '梧州市', '450000', 2436), +('450401', '市辖区', '450400', 2437), +('450403', '万秀区', '450400', 2438), +('450405', '长洲区', '450400', 2439), +('450406', '龙圩区', '450400', 2440), +('450421', '苍梧县', '450400', 2441), +('450422', '藤县', '450400', 2442), +('450423', '蒙山县', '450400', 2443), +('450481', '岑溪市', '450400', 2444), +('450500', '北海市', '450000', 2445), +('450501', '市辖区', '450500', 2446), +('450502', '海城区', '450500', 2447), +('450503', '银海区', '450500', 2448), +('450512', '铁山港区', '450500', 2449), +('450521', '合浦县', '450500', 2450), +('450600', '防城港市', '450000', 2451), +('450601', '市辖区', '450600', 2452), +('450602', '港口区', '450600', 2453), +('450603', '防城区', '450600', 2454), +('450621', '上思县', '450600', 2455), +('450681', '东兴市', '450600', 2456), +('450700', '钦州市', '450000', 2457), +('450701', '市辖区', '450700', 2458), +('450702', '钦南区', '450700', 2459), +('450703', '钦北区', '450700', 2460), +('450721', '灵山县', '450700', 2461), +('450722', '浦北县', '450700', 2462), +('450800', '贵港市', '450000', 2463), +('450801', '市辖区', '450800', 2464), +('450802', '港北区', '450800', 2465), +('450803', '港南区', '450800', 2466), +('450804', '覃塘区', '450800', 2467), +('450821', '平南县', '450800', 2468), +('450881', '桂平市', '450800', 2469), +('450900', '玉林市', '450000', 2470), +('450901', '市辖区', '450900', 2471), +('450902', '玉州区', '450900', 2472), +('450903', '福绵区', '450900', 2473), +('450921', '容县', '450900', 2474), +('450922', '陆川县', '450900', 2475), +('450923', '博白县', '450900', 2476), +('450924', '兴业县', '450900', 2477), +('450981', '北流市', '450900', 2478), +('451000', '百色市', '450000', 2479), +('451001', '市辖区', '451000', 2480), +('451002', '右江区', '451000', 2481), +('451003', '田阳区', '451000', 2482), +('451022', '田东县', '451000', 2483), +('451024', '德保县', '451000', 2484), +('451026', '那坡县', '451000', 2485), +('451027', '凌云县', '451000', 2486), +('451028', '乐业县', '451000', 2487), +('451029', '田林县', '451000', 2488), +('451030', '西林县', '451000', 2489), +('451031', '隆林各族自治县', '451000', 2490), +('451081', '靖西市', '451000', 2491), +('451082', '平果市', '451000', 2492), +('451100', '贺州市', '450000', 2493), +('451101', '市辖区', '451100', 2494), +('451102', '八步区', '451100', 2495), +('451103', '平桂区', '451100', 2496), +('451121', '昭平县', '451100', 2497), +('451122', '钟山县', '451100', 2498), +('451123', '富川瑶族自治县', '451100', 2499), +('451200', '河池市', '450000', 2500), +('451201', '市辖区', '451200', 2501), +('451202', '金城江区', '451200', 2502), +('451203', '宜州区', '451200', 2503), +('451221', '南丹县', '451200', 2504), +('451222', '天峨县', '451200', 2505), +('451223', '凤山县', '451200', 2506), +('451224', '东兰县', '451200', 2507), +('451225', '罗城仫佬族自治县', '451200', 2508), +('451226', '环江毛南族自治县', '451200', 2509), +('451227', '巴马瑶族自治县', '451200', 2510), +('451228', '都安瑶族自治县', '451200', 2511), +('451229', '大化瑶族自治县', '451200', 2512), +('451300', '来宾市', '450000', 2513), +('451301', '市辖区', '451300', 2514), +('451302', '兴宾区', '451300', 2515), +('451321', '忻城县', '451300', 2516), +('451322', '象州县', '451300', 2517), +('451323', '武宣县', '451300', 2518), +('451324', '金秀瑶族自治县', '451300', 2519), +('451381', '合山市', '451300', 2520), +('451400', '崇左市', '450000', 2521), +('451401', '市辖区', '451400', 2522), +('451402', '江州区', '451400', 2523), +('451421', '扶绥县', '451400', 2524), +('451422', '宁明县', '451400', 2525), +('451423', '龙州县', '451400', 2526), +('451424', '大新县', '451400', 2527), +('451425', '天等县', '451400', 2528), +('451481', '凭祥市', '451400', 2529), +('460000', '海南省', NULL, 2530), +('460100', '海口市', '460000', 2531), +('460101', '市辖区', '460100', 2532), +('460105', '秀英区', '460100', 2533), +('460106', '龙华区', '460100', 2534), +('460107', '琼山区', '460100', 2535), +('460108', '美兰区', '460100', 2536), +('460200', '三亚市', '460000', 2537), +('460201', '市辖区', '460200', 2538), +('460202', '海棠区', '460200', 2539), +('460203', '吉阳区', '460200', 2540), +('460204', '天涯区', '460200', 2541), +('460205', '崖州区', '460200', 2542), +('460300', '三沙市', '460000', 2543), +('460321', '西沙群岛', '460300', 2544), +('460322', '南沙群岛', '460300', 2545), +('460323', '中沙群岛的岛礁及其海域', '460300', 2546), +('460400', '儋州市', '460000', 2547), +('469000', '省直辖县级行政区划', '460000', 2548), +('469001', '五指山市', '469000', 2549), +('469002', '琼海市', '469000', 2550), +('469005', '文昌市', '469000', 2551), +('469006', '万宁市', '469000', 2552), +('469007', '东方市', '469000', 2553), +('469021', '定安县', '469000', 2554), +('469022', '屯昌县', '469000', 2555), +('469023', '澄迈县', '469000', 2556), +('469024', '临高县', '469000', 2557), +('469025', '白沙黎族自治县', '469000', 2558), +('469026', '昌江黎族自治县', '469000', 2559), +('469027', '乐东黎族自治县', '469000', 2560), +('469028', '陵水黎族自治县', '469000', 2561), +('469029', '保亭黎族苗族自治县', '469000', 2562), +('469030', '琼中黎族苗族自治县', '469000', 2563), +('500000', '重庆市', NULL, 2564), +('500100', '重庆市', '500000', 2565), +('500101', '万州区', '500100', 2566), +('500102', '涪陵区', '500100', 2567), +('500103', '渝中区', '500100', 2568), +('500104', '大渡口区', '500100', 2569), +('500106', '沙坪坝区', '500100', 2570), +('500107', '九龙坡区', '500100', 2571), +('500108', '南岸区', '500100', 2572), +('500109', '北碚区', '500100', 2573), +('500110', '綦江区', '500100', 2574), +('500111', '大足区', '500100', 2575), +('500113', '巴南区', '500100', 2576), +('500114', '黔江区', '500100', 2577), +('500115', '长寿区', '500100', 2578), +('500116', '江津区', '500100', 2579), +('500117', '合川区', '500100', 2580), +('500118', '永川区', '500100', 2581), +('500119', '南川区', '500100', 2582), +('500120', '璧山区', '500100', 2583), +('500151', '铜梁区', '500100', 2584), +('500152', '潼南区', '500100', 2585), +('500153', '荣昌区', '500100', 2586), +('500154', '开州区', '500100', 2587), +('500155', '梁平区', '500100', 2588), +('500156', '武隆区', '500100', 2589), +('500157', '两江新区', '500100', 2590), +('500200', '重庆市', '500000', 2591), +('500229', '城口县', '500200', 2592), +('500230', '丰都县', '500200', 2593), +('500231', '垫江县', '500200', 2594), +('500233', '忠县', '500200', 2595), +('500235', '云阳县', '500200', 2596), +('500236', '奉节县', '500200', 2597), +('500237', '巫山县', '500200', 2598), +('500238', '巫溪县', '500200', 2599), +('500240', '石柱土家族自治县', '500200', 2600), +('500241', '秀山土家族苗族自治县', '500200', 2601), +('500242', '酉阳土家族苗族自治县', '500200', 2602), +('500243', '彭水苗族土家族自治县', '500200', 2603), +('510000', '四川省', NULL, 2604), +('510100', '成都市', '510000', 2605), +('510101', '市辖区', '510100', 2606), +('510104', '锦江区', '510100', 2607), +('510105', '青羊区', '510100', 2608), +('510106', '金牛区', '510100', 2609), +('510107', '武侯区', '510100', 2610), +('510108', '成华区', '510100', 2611), +('510112', '龙泉驿区', '510100', 2612), +('510113', '青白江区', '510100', 2613), +('510114', '新都区', '510100', 2614), +('510115', '温江区', '510100', 2615), +('510116', '双流区', '510100', 2616), +('510117', '郫都区', '510100', 2617), +('510118', '新津区', '510100', 2618), +('510121', '金堂县', '510100', 2619), +('510129', '大邑县', '510100', 2620), +('510131', '蒲江县', '510100', 2621), +('510181', '都江堰市', '510100', 2622), +('510182', '彭州市', '510100', 2623), +('510183', '邛崃市', '510100', 2624), +('510184', '崇州市', '510100', 2625), +('510185', '简阳市', '510100', 2626), +('510300', '自贡市', '510000', 2627), +('510301', '市辖区', '510300', 2628), +('510302', '自流井区', '510300', 2629), +('510303', '贡井区', '510300', 2630), +('510304', '大安区', '510300', 2631), +('510311', '沿滩区', '510300', 2632), +('510321', '荣县', '510300', 2633), +('510322', '富顺县', '510300', 2634), +('510400', '攀枝花市', '510000', 2635), +('510401', '市辖区', '510400', 2636), +('510402', '东区', '510400', 2637), +('510403', '西区', '510400', 2638), +('510411', '仁和区', '510400', 2639), +('510421', '米易县', '510400', 2640), +('510422', '盐边县', '510400', 2641), +('510500', '泸州市', '510000', 2642), +('510501', '市辖区', '510500', 2643), +('510502', '江阳区', '510500', 2644), +('510503', '纳溪区', '510500', 2645), +('510504', '龙马潭区', '510500', 2646), +('510521', '泸县', '510500', 2647), +('510522', '合江县', '510500', 2648), +('510524', '叙永县', '510500', 2649), +('510525', '古蔺县', '510500', 2650), +('510600', '德阳市', '510000', 2651), +('510601', '市辖区', '510600', 2652), +('510603', '旌阳区', '510600', 2653), +('510604', '罗江区', '510600', 2654), +('510623', '中江县', '510600', 2655), +('510681', '广汉市', '510600', 2656), +('510682', '什邡市', '510600', 2657), +('510683', '绵竹市', '510600', 2658), +('510700', '绵阳市', '510000', 2659), +('510701', '市辖区', '510700', 2660), +('510703', '涪城区', '510700', 2661), +('510704', '游仙区', '510700', 2662), +('510705', '安州区', '510700', 2663), +('510722', '三台县', '510700', 2664), +('510723', '盐亭县', '510700', 2665), +('510725', '梓潼县', '510700', 2666), +('510726', '北川羌族自治县', '510700', 2667), +('510727', '平武县', '510700', 2668), +('510781', '江油市', '510700', 2669), +('510800', '广元市', '510000', 2670), +('510801', '市辖区', '510800', 2671), +('510802', '利州区', '510800', 2672), +('510811', '昭化区', '510800', 2673), +('510812', '朝天区', '510800', 2674), +('510821', '旺苍县', '510800', 2675), +('510822', '青川县', '510800', 2676), +('510823', '剑阁县', '510800', 2677), +('510824', '苍溪县', '510800', 2678), +('510900', '遂宁市', '510000', 2679), +('510901', '市辖区', '510900', 2680), +('510903', '船山区', '510900', 2681), +('510904', '安居区', '510900', 2682), +('510921', '蓬溪县', '510900', 2683), +('510923', '大英县', '510900', 2684), +('510981', '射洪市', '510900', 2685), +('511000', '内江市', '510000', 2686), +('511001', '市辖区', '511000', 2687), +('511002', '市中区', '511000', 2688), +('511011', '东兴区', '511000', 2689), +('511024', '威远县', '511000', 2690), +('511025', '资中县', '511000', 2691), +('511083', '隆昌市', '511000', 2692), +('511100', '乐山市', '510000', 2693), +('511101', '市辖区', '511100', 2694), +('511102', '市中区', '511100', 2695), +('511111', '沙湾区', '511100', 2696), +('511112', '五通桥区', '511100', 2697), +('511113', '金口河区', '511100', 2698), +('511123', '犍为县', '511100', 2699), +('511124', '井研县', '511100', 2700), +('511126', '夹江县', '511100', 2701), +('511129', '沐川县', '511100', 2702), +('511132', '峨边彝族自治县', '511100', 2703), +('511133', '马边彝族自治县', '511100', 2704), +('511181', '峨眉山市', '511100', 2705), +('511300', '南充市', '510000', 2706), +('511301', '市辖区', '511300', 2707), +('511302', '顺庆区', '511300', 2708), +('511303', '高坪区', '511300', 2709), +('511304', '嘉陵区', '511300', 2710), +('511321', '南部县', '511300', 2711), +('511322', '营山县', '511300', 2712), +('511323', '蓬安县', '511300', 2713), +('511324', '仪陇县', '511300', 2714), +('511325', '西充县', '511300', 2715), +('511381', '阆中市', '511300', 2716), +('511400', '眉山市', '510000', 2717), +('511401', '市辖区', '511400', 2718), +('511402', '东坡区', '511400', 2719), +('511403', '彭山区', '511400', 2720), +('511421', '仁寿县', '511400', 2721), +('511423', '洪雅县', '511400', 2722), +('511424', '丹棱县', '511400', 2723), +('511425', '青神县', '511400', 2724), +('511500', '宜宾市', '510000', 2725), +('511501', '市辖区', '511500', 2726), +('511502', '翠屏区', '511500', 2727), +('511503', '南溪区', '511500', 2728), +('511504', '叙州区', '511500', 2729), +('511523', '江安县', '511500', 2730), +('511524', '长宁县', '511500', 2731), +('511525', '高县', '511500', 2732), +('511526', '珙县', '511500', 2733), +('511527', '筠连县', '511500', 2734), +('511528', '兴文县', '511500', 2735), +('511529', '屏山县', '511500', 2736), +('511600', '广安市', '510000', 2737), +('511601', '市辖区', '511600', 2738), +('511602', '广安区', '511600', 2739), +('511603', '前锋区', '511600', 2740), +('511621', '岳池县', '511600', 2741), +('511622', '武胜县', '511600', 2742), +('511623', '邻水县', '511600', 2743), +('511681', '华蓥市', '511600', 2744), +('511700', '达州市', '510000', 2745), +('511701', '市辖区', '511700', 2746), +('511702', '通川区', '511700', 2747), +('511703', '达川区', '511700', 2748), +('511722', '宣汉县', '511700', 2749), +('511723', '开江县', '511700', 2750), +('511724', '大竹县', '511700', 2751), +('511725', '渠县', '511700', 2752), +('511781', '万源市', '511700', 2753), +('511800', '雅安市', '510000', 2754), +('511801', '市辖区', '511800', 2755), +('511802', '雨城区', '511800', 2756), +('511803', '名山区', '511800', 2757), +('511822', '荥经县', '511800', 2758), +('511823', '汉源县', '511800', 2759), +('511824', '石棉县', '511800', 2760), +('511825', '天全县', '511800', 2761), +('511826', '芦山县', '511800', 2762), +('511827', '宝兴县', '511800', 2763), +('511900', '巴中市', '510000', 2764), +('511901', '市辖区', '511900', 2765), +('511902', '巴州区', '511900', 2766), +('511903', '恩阳区', '511900', 2767), +('511921', '通江县', '511900', 2768), +('511922', '南江县', '511900', 2769), +('511923', '平昌县', '511900', 2770), +('512000', '资阳市', '510000', 2771), +('512001', '市辖区', '512000', 2772), +('512002', '雁江区', '512000', 2773), +('512021', '安岳县', '512000', 2774), +('512022', '乐至县', '512000', 2775), +('513200', '阿坝藏族羌族自治州', '510000', 2776), +('513201', '马尔康市', '513200', 2777), +('513221', '汶川县', '513200', 2778), +('513222', '理县', '513200', 2779), +('513223', '茂县', '513200', 2780), +('513224', '松潘县', '513200', 2781), +('513225', '九寨沟县', '513200', 2782), +('513226', '金川县', '513200', 2783), +('513227', '小金县', '513200', 2784), +('513228', '黑水县', '513200', 2785), +('513230', '壤塘县', '513200', 2786), +('513231', '阿坝县', '513200', 2787), +('513232', '若尔盖县', '513200', 2788), +('513233', '红原县', '513200', 2789), +('513300', '甘孜藏族自治州', '510000', 2790), +('513301', '康定市', '513300', 2791), +('513322', '泸定县', '513300', 2792), +('513323', '丹巴县', '513300', 2793), +('513324', '九龙县', '513300', 2794), +('513325', '雅江县', '513300', 2795), +('513326', '道孚县', '513300', 2796), +('513327', '炉霍县', '513300', 2797), +('513328', '甘孜县', '513300', 2798), +('513329', '新龙县', '513300', 2799), +('513330', '德格县', '513300', 2800), +('513331', '白玉县', '513300', 2801), +('513332', '石渠县', '513300', 2802), +('513333', '色达县', '513300', 2803), +('513334', '理塘县', '513300', 2804), +('513335', '巴塘县', '513300', 2805), +('513336', '乡城县', '513300', 2806), +('513337', '稻城县', '513300', 2807), +('513338', '得荣县', '513300', 2808), +('513400', '凉山彝族自治州', '510000', 2809), +('513401', '西昌市', '513400', 2810), +('513402', '会理市', '513400', 2811), +('513422', '木里藏族自治县', '513400', 2812), +('513423', '盐源县', '513400', 2813), +('513424', '德昌县', '513400', 2814), +('513426', '会东县', '513400', 2815), +('513427', '宁南县', '513400', 2816), +('513428', '普格县', '513400', 2817), +('513429', '布拖县', '513400', 2818), +('513430', '金阳县', '513400', 2819), +('513431', '昭觉县', '513400', 2820), +('513432', '喜德县', '513400', 2821), +('513433', '冕宁县', '513400', 2822), +('513434', '越西县', '513400', 2823), +('513435', '甘洛县', '513400', 2824), +('513436', '美姑县', '513400', 2825), +('513437', '雷波县', '513400', 2826), +('520000', '贵州省', NULL, 2827), +('520100', '贵阳市', '520000', 2828), +('520101', '市辖区', '520100', 2829), +('520102', '南明区', '520100', 2830), +('520103', '云岩区', '520100', 2831), +('520111', '花溪区', '520100', 2832), +('520112', '乌当区', '520100', 2833), +('520113', '白云区', '520100', 2834), +('520115', '观山湖区', '520100', 2835), +('520121', '开阳县', '520100', 2836), +('520122', '息烽县', '520100', 2837), +('520123', '修文县', '520100', 2838), +('520181', '清镇市', '520100', 2839), +('520200', '六盘水市', '520000', 2840), +('520201', '钟山区', '520200', 2841), +('520203', '六枝特区', '520200', 2842), +('520204', '水城区', '520200', 2843), +('520281', '盘州市', '520200', 2844), +('520300', '遵义市', '520000', 2845), +('520301', '市辖区', '520300', 2846), +('520302', '红花岗区', '520300', 2847), +('520303', '汇川区', '520300', 2848), +('520304', '播州区', '520300', 2849), +('520322', '桐梓县', '520300', 2850), +('520323', '绥阳县', '520300', 2851), +('520324', '正安县', '520300', 2852), +('520325', '道真仡佬族苗族自治县', '520300', 2853), +('520326', '务川仡佬族苗族自治县', '520300', 2854), +('520327', '凤冈县', '520300', 2855), +('520328', '湄潭县', '520300', 2856), +('520329', '余庆县', '520300', 2857), +('520330', '习水县', '520300', 2858), +('520381', '赤水市', '520300', 2859), +('520382', '仁怀市', '520300', 2860), +('520400', '安顺市', '520000', 2861), +('520401', '市辖区', '520400', 2862), +('520402', '西秀区', '520400', 2863), +('520403', '平坝区', '520400', 2864), +('520422', '普定县', '520400', 2865), +('520423', '镇宁布依族苗族自治县', '520400', 2866), +('520424', '关岭布依族苗族自治县', '520400', 2867), +('520425', '紫云苗族布依族自治县', '520400', 2868), +('520500', '毕节市', '520000', 2869), +('520501', '市辖区', '520500', 2870), +('520502', '七星关区', '520500', 2871), +('520521', '大方县', '520500', 2872), +('520523', '金沙县', '520500', 2873), +('520524', '织金县', '520500', 2874), +('520525', '纳雍县', '520500', 2875), +('520526', '威宁彝族回族苗族自治县', '520500', 2876), +('520527', '赫章县', '520500', 2877), +('520581', '黔西市', '520500', 2878), +('520600', '铜仁市', '520000', 2879), +('520601', '市辖区', '520600', 2880), +('520602', '碧江区', '520600', 2881), +('520603', '万山区', '520600', 2882), +('520621', '江口县', '520600', 2883), +('520622', '玉屏侗族自治县', '520600', 2884), +('520623', '石阡县', '520600', 2885), +('520624', '思南县', '520600', 2886), +('520625', '印江土家族苗族自治县', '520600', 2887), +('520626', '德江县', '520600', 2888), +('520627', '沿河土家族自治县', '520600', 2889), +('520628', '松桃苗族自治县', '520600', 2890), +('522300', '黔西南布依族苗族自治州', '520000', 2891), +('522301', '兴义市', '522300', 2892), +('522302', '兴仁市', '522300', 2893), +('522323', '普安县', '522300', 2894), +('522324', '晴隆县', '522300', 2895), +('522325', '贞丰县', '522300', 2896), +('522326', '望谟县', '522300', 2897), +('522327', '册亨县', '522300', 2898), +('522328', '安龙县', '522300', 2899), +('522600', '黔东南苗族侗族自治州', '520000', 2900), +('522601', '凯里市', '522600', 2901), +('522622', '黄平县', '522600', 2902), +('522623', '施秉县', '522600', 2903), +('522624', '三穗县', '522600', 2904), +('522625', '镇远县', '522600', 2905), +('522626', '岑巩县', '522600', 2906), +('522627', '天柱县', '522600', 2907), +('522628', '锦屏县', '522600', 2908), +('522629', '剑河县', '522600', 2909), +('522630', '台江县', '522600', 2910), +('522631', '黎平县', '522600', 2911), +('522632', '榕江县', '522600', 2912), +('522633', '从江县', '522600', 2913), +('522634', '雷山县', '522600', 2914), +('522635', '麻江县', '522600', 2915), +('522636', '丹寨县', '522600', 2916), +('522700', '黔南布依族苗族自治州', '520000', 2917), +('522701', '都匀市', '522700', 2918), +('522702', '福泉市', '522700', 2919), +('522722', '荔波县', '522700', 2920), +('522723', '贵定县', '522700', 2921), +('522725', '瓮安县', '522700', 2922), +('522726', '独山县', '522700', 2923), +('522727', '平塘县', '522700', 2924), +('522728', '罗甸县', '522700', 2925), +('522729', '长顺县', '522700', 2926), +('522730', '龙里县', '522700', 2927), +('522731', '惠水县', '522700', 2928), +('522732', '三都水族自治县', '522700', 2929), +('530000', '云南省', NULL, 2930), +('530100', '昆明市', '530000', 2931), +('530101', '市辖区', '530100', 2932), +('530102', '五华区', '530100', 2933), +('530103', '盘龙区', '530100', 2934), +('530111', '官渡区', '530100', 2935), +('530112', '西山区', '530100', 2936), +('530113', '东川区', '530100', 2937), +('530114', '呈贡区', '530100', 2938), +('530115', '晋宁区', '530100', 2939), +('530124', '富民县', '530100', 2940), +('530125', '宜良县', '530100', 2941), +('530126', '石林彝族自治县', '530100', 2942), +('530127', '嵩明县', '530100', 2943), +('530128', '禄劝彝族苗族自治县', '530100', 2944), +('530129', '寻甸回族彝族自治县', '530100', 2945), +('530181', '安宁市', '530100', 2946), +('530300', '曲靖市', '530000', 2947), +('530301', '市辖区', '530300', 2948), +('530302', '麒麟区', '530300', 2949), +('530303', '沾益区', '530300', 2950), +('530304', '马龙区', '530300', 2951), +('530322', '陆良县', '530300', 2952), +('530323', '师宗县', '530300', 2953), +('530324', '罗平县', '530300', 2954), +('530325', '富源县', '530300', 2955), +('530326', '会泽县', '530300', 2956), +('530381', '宣威市', '530300', 2957), +('530400', '玉溪市', '530000', 2958), +('530401', '市辖区', '530400', 2959), +('530402', '红塔区', '530400', 2960), +('530403', '江川区', '530400', 2961), +('530423', '通海县', '530400', 2962), +('530424', '华宁县', '530400', 2963), +('530425', '易门县', '530400', 2964), +('530426', '峨山彝族自治县', '530400', 2965), +('530427', '新平彝族傣族自治县', '530400', 2966), +('530428', '元江哈尼族彝族傣族自治县', '530400', 2967), +('530481', '澄江市', '530400', 2968), +('530500', '保山市', '530000', 2969), +('530501', '市辖区', '530500', 2970), +('530502', '隆阳区', '530500', 2971), +('530521', '施甸县', '530500', 2972), +('530523', '龙陵县', '530500', 2973), +('530524', '昌宁县', '530500', 2974), +('530581', '腾冲市', '530500', 2975), +('530600', '昭通市', '530000', 2976), +('530601', '市辖区', '530600', 2977), +('530602', '昭阳区', '530600', 2978), +('530621', '鲁甸县', '530600', 2979), +('530622', '巧家县', '530600', 2980), +('530623', '盐津县', '530600', 2981), +('530624', '大关县', '530600', 2982), +('530625', '永善县', '530600', 2983), +('530626', '绥江县', '530600', 2984), +('530627', '镇雄县', '530600', 2985), +('530628', '彝良县', '530600', 2986), +('530629', '威信县', '530600', 2987), +('530681', '水富市', '530600', 2988), +('530700', '丽江市', '530000', 2989), +('530701', '市辖区', '530700', 2990), +('530702', '古城区', '530700', 2991), +('530721', '玉龙纳西族自治县', '530700', 2992), +('530722', '永胜县', '530700', 2993), +('530723', '华坪县', '530700', 2994), +('530724', '宁蒗彝族自治县', '530700', 2995), +('530800', '普洱市', '530000', 2996), +('530801', '市辖区', '530800', 2997), +('530802', '思茅区', '530800', 2998), +('530821', '宁洱哈尼族彝族自治县', '530800', 2999), +('530822', '墨江哈尼族自治县', '530800', 3000), +('530823', '景东彝族自治县', '530800', 3001), +('530824', '景谷傣族彝族自治县', '530800', 3002), +('530825', '镇沅彝族哈尼族拉祜族自治县', '530800', 3003), +('530826', '江城哈尼族彝族自治县', '530800', 3004), +('530827', '孟连傣族拉祜族佤族自治县', '530800', 3005), +('530828', '澜沧拉祜族自治县', '530800', 3006), +('530829', '西盟佤族自治县', '530800', 3007), +('530900', '临沧市', '530000', 3008), +('530901', '市辖区', '530900', 3009), +('530902', '临翔区', '530900', 3010), +('530921', '凤庆县', '530900', 3011), +('530922', '云县', '530900', 3012), +('530923', '永德县', '530900', 3013), +('530924', '镇康县', '530900', 3014), +('530925', '双江拉祜族佤族布朗族傣族自治县', '530900', 3015), +('530926', '耿马傣族佤族自治县', '530900', 3016), +('530927', '沧源佤族自治县', '530900', 3017), +('532300', '楚雄彝族自治州', '530000', 3018), +('532301', '楚雄市', '532300', 3019), +('532302', '禄丰市', '532300', 3020), +('532322', '双柏县', '532300', 3021), +('532323', '牟定县', '532300', 3022), +('532324', '南华县', '532300', 3023), +('532325', '姚安县', '532300', 3024), +('532326', '大姚县', '532300', 3025), +('532327', '永仁县', '532300', 3026), +('532328', '元谋县', '532300', 3027), +('532329', '武定县', '532300', 3028), +('532500', '红河哈尼族彝族自治州', '530000', 3029), +('532501', '个旧市', '532500', 3030), +('532502', '开远市', '532500', 3031), +('532503', '蒙自市', '532500', 3032), +('532504', '弥勒市', '532500', 3033), +('532523', '屏边苗族自治县', '532500', 3034), +('532524', '建水县', '532500', 3035), +('532525', '石屏县', '532500', 3036), +('532527', '泸西县', '532500', 3037), +('532528', '元阳县', '532500', 3038), +('532529', '红河县', '532500', 3039), +('532530', '金平苗族瑶族傣族自治县', '532500', 3040), +('532531', '绿春县', '532500', 3041), +('532532', '河口瑶族自治县', '532500', 3042), +('532600', '文山壮族苗族自治州', '530000', 3043), +('532601', '文山市', '532600', 3044), +('532622', '砚山县', '532600', 3045), +('532623', '西畴县', '532600', 3046), +('532624', '麻栗坡县', '532600', 3047), +('532625', '马关县', '532600', 3048), +('532626', '丘北县', '532600', 3049), +('532627', '广南县', '532600', 3050), +('532628', '富宁县', '532600', 3051), +('532800', '西双版纳傣族自治州', '530000', 3052), +('532801', '景洪市', '532800', 3053), +('532822', '勐海县', '532800', 3054), +('532823', '勐腊县', '532800', 3055), +('532900', '大理白族自治州', '530000', 3056), +('532901', '大理市', '532900', 3057), +('532922', '漾濞彝族自治县', '532900', 3058), +('532923', '祥云县', '532900', 3059), +('532924', '宾川县', '532900', 3060), +('532925', '弥渡县', '532900', 3061), +('532926', '南涧彝族自治县', '532900', 3062), +('532927', '巍山彝族回族自治县', '532900', 3063), +('532928', '永平县', '532900', 3064), +('532929', '云龙县', '532900', 3065), +('532930', '洱源县', '532900', 3066), +('532931', '剑川县', '532900', 3067), +('532932', '鹤庆县', '532900', 3068), +('533100', '德宏傣族景颇族自治州', '530000', 3069), +('533102', '瑞丽市', '533100', 3070), +('533103', '芒市', '533100', 3071), +('533122', '梁河县', '533100', 3072), +('533123', '盈江县', '533100', 3073), +('533124', '陇川县', '533100', 3074), +('533300', '怒江傈僳族自治州', '530000', 3075), +('533301', '泸水市', '533300', 3076), +('533323', '福贡县', '533300', 3077), +('533324', '贡山独龙族怒族自治县', '533300', 3078), +('533325', '兰坪白族普米族自治县', '533300', 3079), +('533400', '迪庆藏族自治州', '530000', 3080), +('533401', '香格里拉市', '533400', 3081), +('533422', '德钦县', '533400', 3082), +('533423', '维西傈僳族自治县', '533400', 3083), +('540000', '西藏自治区', NULL, 3084), +('540100', '拉萨市', '540000', 3085), +('540101', '市辖区', '540100', 3086), +('540102', '城关区', '540100', 3087), +('540103', '堆龙德庆区', '540100', 3088), +('540104', '达孜区', '540100', 3089), +('540121', '林周县', '540100', 3090), +('540122', '当雄县', '540100', 3091), +('540123', '尼木县', '540100', 3092), +('540124', '曲水县', '540100', 3093), +('540127', '墨竹工卡县', '540100', 3094), +('540171', '格尔木藏青工业园区', '540100', 3095), +('540172', '拉萨经济技术开发区', '540100', 3096), +('540173', '西藏文化旅游创意园区', '540100', 3097), +('540174', '达孜工业园区', '540100', 3098), +('540200', '日喀则市', '540000', 3099), +('540202', '桑珠孜区', '540200', 3100), +('540221', '南木林县', '540200', 3101), +('540222', '江孜县', '540200', 3102), +('540223', '定日县', '540200', 3103), +('540224', '萨迦县', '540200', 3104), +('540225', '拉孜县', '540200', 3105), +('540226', '昂仁县', '540200', 3106), +('540227', '谢通门县', '540200', 3107), +('540228', '白朗县', '540200', 3108), +('540229', '仁布县', '540200', 3109), +('540230', '康马县', '540200', 3110), +('540231', '定结县', '540200', 3111), +('540232', '仲巴县', '540200', 3112), +('540233', '亚东县', '540200', 3113), +('540234', '吉隆县', '540200', 3114), +('540235', '聂拉木县', '540200', 3115), +('540236', '萨嘎县', '540200', 3116), +('540237', '岗巴县', '540200', 3117), +('540300', '昌都市', '540000', 3118), +('540302', '卡若区', '540300', 3119), +('540321', '江达县', '540300', 3120), +('540322', '贡觉县', '540300', 3121), +('540323', '类乌齐县', '540300', 3122), +('540324', '丁青县', '540300', 3123), +('540325', '察雅县', '540300', 3124), +('540326', '八宿县', '540300', 3125), +('540327', '左贡县', '540300', 3126), +('540328', '芒康县', '540300', 3127), +('540329', '洛隆县', '540300', 3128), +('540330', '边坝县', '540300', 3129), +('540400', '林芝市', '540000', 3130), +('540402', '巴宜区', '540400', 3131), +('540421', '工布江达县', '540400', 3132), +('540423', '墨脱县', '540400', 3133), +('540424', '波密县', '540400', 3134), +('540425', '察隅县', '540400', 3135), +('540426', '朗县', '540400', 3136), +('540481', '米林市', '540400', 3137), +('540500', '山南市', '540000', 3138), +('540501', '市辖区', '540500', 3139), +('540502', '乃东区', '540500', 3140), +('540521', '扎囊县', '540500', 3141), +('540522', '贡嘎县', '540500', 3142), +('540523', '桑日县', '540500', 3143), +('540524', '琼结县', '540500', 3144), +('540525', '曲松县', '540500', 3145), +('540526', '措美县', '540500', 3146), +('540527', '洛扎县', '540500', 3147), +('540528', '加查县', '540500', 3148), +('540529', '隆子县', '540500', 3149), +('540531', '浪卡子县', '540500', 3150), +('540581', '错那市', '540500', 3151), +('540600', '那曲市', '540000', 3152), +('540602', '色尼区', '540600', 3153), +('540621', '嘉黎县', '540600', 3154), +('540622', '比如县', '540600', 3155), +('540623', '聂荣县', '540600', 3156), +('540624', '安多县', '540600', 3157), +('540625', '申扎县', '540600', 3158), +('540626', '索县', '540600', 3159), +('540627', '班戈县', '540600', 3160), +('540628', '巴青县', '540600', 3161), +('540629', '尼玛县', '540600', 3162), +('540630', '双湖县', '540600', 3163), +('542500', '阿里地区', '540000', 3164), +('542521', '普兰县', '542500', 3165), +('542522', '札达县', '542500', 3166), +('542523', '噶尔县', '542500', 3167), +('542524', '日土县', '542500', 3168), +('542525', '革吉县', '542500', 3169), +('542526', '改则县', '542500', 3170), +('542527', '措勤县', '542500', 3171), +('610000', '陕西省', NULL, 3172), +('610100', '西安市', '610000', 3173), +('610101', '市辖区', '610100', 3174), +('610102', '新城区', '610100', 3175), +('610103', '碑林区', '610100', 3176), +('610104', '莲湖区', '610100', 3177), +('610111', '灞桥区', '610100', 3178), +('610112', '未央区', '610100', 3179), +('610113', '雁塔区', '610100', 3180), +('610114', '阎良区', '610100', 3181), +('610115', '临潼区', '610100', 3182), +('610116', '长安区', '610100', 3183), +('610117', '高陵区', '610100', 3184), +('610118', '鄠邑区', '610100', 3185), +('610122', '蓝田县', '610100', 3186), +('610124', '周至县', '610100', 3187), +('610200', '铜川市', '610000', 3188), +('610201', '市辖区', '610200', 3189), +('610202', '王益区', '610200', 3190), +('610203', '印台区', '610200', 3191), +('610204', '耀州区', '610200', 3192), +('610222', '宜君县', '610200', 3193), +('610300', '宝鸡市', '610000', 3194), +('610301', '市辖区', '610300', 3195), +('610302', '渭滨区', '610300', 3196), +('610303', '金台区', '610300', 3197), +('610304', '陈仓区', '610300', 3198), +('610305', '凤翔区', '610300', 3199), +('610323', '岐山县', '610300', 3200), +('610324', '扶风县', '610300', 3201), +('610326', '眉县', '610300', 3202), +('610327', '陇县', '610300', 3203), +('610328', '千阳县', '610300', 3204), +('610329', '麟游县', '610300', 3205), +('610330', '凤县', '610300', 3206), +('610331', '太白县', '610300', 3207), +('610400', '咸阳市', '610000', 3208), +('610401', '市辖区', '610400', 3209), +('610402', '秦都区', '610400', 3210), +('610403', '杨陵区', '610400', 3211), +('610404', '渭城区', '610400', 3212), +('610422', '三原县', '610400', 3213), +('610423', '泾阳县', '610400', 3214), +('610424', '乾县', '610400', 3215), +('610425', '礼泉县', '610400', 3216), +('610426', '永寿县', '610400', 3217), +('610428', '长武县', '610400', 3218), +('610429', '旬邑县', '610400', 3219), +('610430', '淳化县', '610400', 3220), +('610431', '武功县', '610400', 3221), +('610481', '兴平市', '610400', 3222), +('610482', '彬州市', '610400', 3223), +('610500', '渭南市', '610000', 3224), +('610501', '市辖区', '610500', 3225), +('610502', '临渭区', '610500', 3226), +('610503', '华州区', '610500', 3227), +('610522', '潼关县', '610500', 3228), +('610523', '大荔县', '610500', 3229), +('610524', '合阳县', '610500', 3230), +('610525', '澄城县', '610500', 3231), +('610526', '蒲城县', '610500', 3232), +('610527', '白水县', '610500', 3233), +('610528', '富平县', '610500', 3234), +('610581', '韩城市', '610500', 3235), +('610582', '华阴市', '610500', 3236), +('610600', '延安市', '610000', 3237), +('610601', '市辖区', '610600', 3238), +('610602', '宝塔区', '610600', 3239), +('610603', '安塞区', '610600', 3240), +('610621', '延长县', '610600', 3241), +('610622', '延川县', '610600', 3242), +('610625', '志丹县', '610600', 3243), +('610626', '吴起县', '610600', 3244), +('610627', '甘泉县', '610600', 3245), +('610628', '富县', '610600', 3246), +('610629', '洛川县', '610600', 3247), +('610630', '宜川县', '610600', 3248), +('610631', '黄龙县', '610600', 3249), +('610632', '黄陵县', '610600', 3250), +('610681', '子长市', '610600', 3251), +('610700', '汉中市', '610000', 3252), +('610701', '市辖区', '610700', 3253), +('610702', '汉台区', '610700', 3254), +('610703', '南郑区', '610700', 3255), +('610722', '城固县', '610700', 3256), +('610723', '洋县', '610700', 3257), +('610724', '西乡县', '610700', 3258), +('610725', '勉县', '610700', 3259), +('610726', '宁强县', '610700', 3260), +('610727', '略阳县', '610700', 3261), +('610728', '镇巴县', '610700', 3262), +('610729', '留坝县', '610700', 3263), +('610730', '佛坪县', '610700', 3264), +('610800', '榆林市', '610000', 3265), +('610801', '市辖区', '610800', 3266), +('610802', '榆阳区', '610800', 3267), +('610803', '横山区', '610800', 3268), +('610822', '府谷县', '610800', 3269), +('610824', '靖边县', '610800', 3270), +('610825', '定边县', '610800', 3271), +('610826', '绥德县', '610800', 3272), +('610827', '米脂县', '610800', 3273), +('610828', '佳县', '610800', 3274), +('610829', '吴堡县', '610800', 3275), +('610830', '清涧县', '610800', 3276), +('610831', '子洲县', '610800', 3277), +('610881', '神木市', '610800', 3278), +('610900', '安康市', '610000', 3279), +('610901', '市辖区', '610900', 3280), +('610902', '汉滨区', '610900', 3281), +('610921', '汉阴县', '610900', 3282), +('610922', '石泉县', '610900', 3283), +('610923', '宁陕县', '610900', 3284), +('610924', '紫阳县', '610900', 3285), +('610925', '岚皋县', '610900', 3286), +('610926', '平利县', '610900', 3287), +('610927', '镇坪县', '610900', 3288), +('610929', '白河县', '610900', 3289), +('610981', '旬阳市', '610900', 3290), +('611000', '商洛市', '610000', 3291), +('611001', '市辖区', '611000', 3292), +('611002', '商州区', '611000', 3293), +('611021', '洛南县', '611000', 3294), +('611022', '丹凤县', '611000', 3295), +('611023', '商南县', '611000', 3296), +('611024', '山阳县', '611000', 3297), +('611025', '镇安县', '611000', 3298), +('611026', '柞水县', '611000', 3299), +('620000', '甘肃省', NULL, 3300), +('620100', '兰州市', '620000', 3301), +('620101', '市辖区', '620100', 3302), +('620102', '城关区', '620100', 3303), +('620103', '七里河区', '620100', 3304), +('620104', '西固区', '620100', 3305), +('620105', '安宁区', '620100', 3306), +('620111', '红古区', '620100', 3307), +('620121', '永登县', '620100', 3308), +('620122', '皋兰县', '620100', 3309), +('620123', '榆中县', '620100', 3310), +('620171', '兰州新区', '620100', 3311), +('620200', '嘉峪关市', '620000', 3312), +('620201', '市辖区', '620200', 3313), +('620300', '金昌市', '620000', 3314), +('620301', '市辖区', '620300', 3315), +('620302', '金川区', '620300', 3316), +('620321', '永昌县', '620300', 3317), +('620400', '白银市', '620000', 3318), +('620401', '市辖区', '620400', 3319), +('620402', '白银区', '620400', 3320), +('620403', '平川区', '620400', 3321), +('620421', '靖远县', '620400', 3322), +('620422', '会宁县', '620400', 3323), +('620423', '景泰县', '620400', 3324), +('620500', '天水市', '620000', 3325), +('620501', '市辖区', '620500', 3326), +('620502', '秦州区', '620500', 3327), +('620503', '麦积区', '620500', 3328), +('620521', '清水县', '620500', 3329), +('620522', '秦安县', '620500', 3330), +('620523', '甘谷县', '620500', 3331), +('620524', '武山县', '620500', 3332), +('620525', '张家川回族自治县', '620500', 3333), +('620600', '武威市', '620000', 3334), +('620601', '市辖区', '620600', 3335), +('620602', '凉州区', '620600', 3336), +('620621', '民勤县', '620600', 3337), +('620622', '古浪县', '620600', 3338), +('620623', '天祝藏族自治县', '620600', 3339), +('620700', '张掖市', '620000', 3340), +('620701', '市辖区', '620700', 3341), +('620702', '甘州区', '620700', 3342), +('620721', '肃南裕固族自治县', '620700', 3343), +('620722', '民乐县', '620700', 3344), +('620723', '临泽县', '620700', 3345), +('620724', '高台县', '620700', 3346), +('620725', '山丹县', '620700', 3347), +('620800', '平凉市', '620000', 3348), +('620801', '市辖区', '620800', 3349), +('620802', '崆峒区', '620800', 3350), +('620821', '泾川县', '620800', 3351), +('620822', '灵台县', '620800', 3352), +('620823', '崇信县', '620800', 3353), +('620825', '庄浪县', '620800', 3354), +('620826', '静宁县', '620800', 3355), +('620881', '华亭市', '620800', 3356), +('620900', '酒泉市', '620000', 3357), +('620901', '市辖区', '620900', 3358), +('620902', '肃州区', '620900', 3359), +('620921', '金塔县', '620900', 3360), +('620922', '瓜州县', '620900', 3361), +('620923', '肃北蒙古族自治县', '620900', 3362), +('620924', '阿克塞哈萨克族自治县', '620900', 3363), +('620981', '玉门市', '620900', 3364), +('620982', '敦煌市', '620900', 3365), +('621000', '庆阳市', '620000', 3366), +('621001', '市辖区', '621000', 3367), +('621002', '西峰区', '621000', 3368), +('621021', '庆城县', '621000', 3369), +('621022', '环县', '621000', 3370), +('621023', '华池县', '621000', 3371), +('621024', '合水县', '621000', 3372), +('621025', '正宁县', '621000', 3373), +('621026', '宁县', '621000', 3374), +('621027', '镇原县', '621000', 3375), +('621100', '定西市', '620000', 3376), +('621101', '市辖区', '621100', 3377), +('621102', '安定区', '621100', 3378), +('621121', '通渭县', '621100', 3379), +('621122', '陇西县', '621100', 3380), +('621123', '渭源县', '621100', 3381), +('621124', '临洮县', '621100', 3382), +('621125', '漳县', '621100', 3383), +('621126', '岷县', '621100', 3384), +('621200', '陇南市', '620000', 3385), +('621201', '市辖区', '621200', 3386), +('621202', '武都区', '621200', 3387), +('621221', '成县', '621200', 3388), +('621222', '文县', '621200', 3389), +('621223', '宕昌县', '621200', 3390), +('621224', '康县', '621200', 3391), +('621225', '西和县', '621200', 3392), +('621226', '礼县', '621200', 3393), +('621227', '徽县', '621200', 3394), +('621228', '两当县', '621200', 3395), +('622900', '临夏回族自治州', '620000', 3396), +('622901', '临夏市', '622900', 3397), +('622921', '临夏县', '622900', 3398), +('622922', '康乐县', '622900', 3399), +('622923', '永靖县', '622900', 3400), +('622924', '广河县', '622900', 3401), +('622925', '和政县', '622900', 3402), +('622926', '东乡族自治县', '622900', 3403), +('622927', '积石山保安族东乡族撒拉族自治县', '622900', 3404), +('623000', '甘南藏族自治州', '620000', 3405), +('623001', '合作市', '623000', 3406), +('623021', '临潭县', '623000', 3407), +('623022', '卓尼县', '623000', 3408), +('623023', '舟曲县', '623000', 3409), +('623024', '迭部县', '623000', 3410), +('623025', '玛曲县', '623000', 3411), +('623026', '碌曲县', '623000', 3412), +('623027', '夏河县', '623000', 3413), +('630000', '青海省', NULL, 3414), +('630100', '西宁市', '630000', 3415), +('630101', '市辖区', '630100', 3416), +('630102', '城东区', '630100', 3417), +('630103', '城中区', '630100', 3418), +('630104', '城西区', '630100', 3419), +('630105', '城北区', '630100', 3420), +('630106', '湟中区', '630100', 3421), +('630121', '大通回族土族自治县', '630100', 3422), +('630123', '湟源县', '630100', 3423), +('630200', '海东市', '630000', 3424), +('630202', '乐都区', '630200', 3425), +('630203', '平安区', '630200', 3426), +('630222', '民和回族土族自治县', '630200', 3427), +('630223', '互助土族自治县', '630200', 3428), +('630224', '化隆回族自治县', '630200', 3429), +('630225', '循化撒拉族自治县', '630200', 3430), +('632200', '海北藏族自治州', '630000', 3431), +('632221', '门源回族自治县', '632200', 3432), +('632222', '祁连县', '632200', 3433), +('632223', '海晏县', '632200', 3434), +('632224', '刚察县', '632200', 3435), +('632300', '黄南藏族自治州', '630000', 3436), +('632301', '同仁市', '632300', 3437), +('632322', '尖扎县', '632300', 3438), +('632323', '泽库县', '632300', 3439), +('632324', '河南蒙古族自治县', '632300', 3440), +('632500', '海南藏族自治州', '630000', 3441), +('632521', '共和县', '632500', 3442), +('632522', '同德县', '632500', 3443), +('632523', '贵德县', '632500', 3444), +('632524', '兴海县', '632500', 3445), +('632525', '贵南县', '632500', 3446), +('632600', '果洛藏族自治州', '630000', 3447), +('632621', '玛沁县', '632600', 3448), +('632622', '班玛县', '632600', 3449), +('632623', '甘德县', '632600', 3450), +('632624', '达日县', '632600', 3451), +('632625', '久治县', '632600', 3452), +('632626', '玛多县', '632600', 3453), +('632700', '玉树藏族自治州', '630000', 3454), +('632701', '玉树市', '632700', 3455), +('632722', '杂多县', '632700', 3456), +('632723', '称多县', '632700', 3457), +('632724', '治多县', '632700', 3458), +('632725', '囊谦县', '632700', 3459), +('632726', '曲麻莱县', '632700', 3460), +('632800', '海西蒙古族藏族自治州', '630000', 3461), +('632801', '格尔木市', '632800', 3462), +('632802', '德令哈市', '632800', 3463), +('632803', '茫崖市', '632800', 3464), +('632821', '乌兰县', '632800', 3465), +('632822', '都兰县', '632800', 3466), +('632823', '天峻县', '632800', 3467), +('632857', '大柴旦行政委员会', '632800', 3468), +('640000', '宁夏回族自治区', NULL, 3469), +('640100', '银川市', '640000', 3470), +('640101', '市辖区', '640100', 3471), +('640104', '兴庆区', '640100', 3472), +('640105', '西夏区', '640100', 3473), +('640106', '金凤区', '640100', 3474), +('640121', '永宁县', '640100', 3475), +('640122', '贺兰县', '640100', 3476), +('640181', '灵武市', '640100', 3477), +('640200', '石嘴山市', '640000', 3478), +('640201', '市辖区', '640200', 3479), +('640202', '大武口区', '640200', 3480), +('640205', '惠农区', '640200', 3481), +('640221', '平罗县', '640200', 3482), +('640300', '吴忠市', '640000', 3483), +('640301', '市辖区', '640300', 3484), +('640302', '利通区', '640300', 3485), +('640303', '红寺堡区', '640300', 3486), +('640323', '盐池县', '640300', 3487), +('640324', '同心县', '640300', 3488), +('640381', '青铜峡市', '640300', 3489), +('640400', '固原市', '640000', 3490), +('640401', '市辖区', '640400', 3491), +('640402', '原州区', '640400', 3492), +('640422', '西吉县', '640400', 3493), +('640423', '隆德县', '640400', 3494), +('640424', '泾源县', '640400', 3495), +('640425', '彭阳县', '640400', 3496), +('640500', '中卫市', '640000', 3497), +('640501', '市辖区', '640500', 3498), +('640502', '沙坡头区', '640500', 3499), +('640521', '中宁县', '640500', 3500), +('640522', '海原县', '640500', 3501), +('650000', '新疆维吾尔自治区', NULL, 3502), +('650100', '乌鲁木齐市', '650000', 3503), +('650101', '市辖区', '650100', 3504), +('650102', '天山区', '650100', 3505), +('650103', '沙依巴克区', '650100', 3506), +('650104', '新市区', '650100', 3507), +('650105', '水磨沟区', '650100', 3508), +('650106', '头屯河区', '650100', 3509), +('650107', '达坂城区', '650100', 3510), +('650109', '米东区', '650100', 3511), +('650121', '乌鲁木齐县', '650100', 3512), +('650200', '克拉玛依市', '650000', 3513), +('650201', '市辖区', '650200', 3514), +('650202', '独山子区', '650200', 3515), +('650203', '克拉玛依区', '650200', 3516), +('650204', '白碱滩区', '650200', 3517), +('650205', '乌尔禾区', '650200', 3518), +('650400', '吐鲁番市', '650000', 3519), +('650402', '高昌区', '650400', 3520), +('650421', '鄯善县', '650400', 3521), +('650422', '托克逊县', '650400', 3522), +('650500', '哈密市', '650000', 3523), +('650502', '伊州区', '650500', 3524), +('650521', '巴里坤哈萨克自治县', '650500', 3525), +('650522', '伊吾县', '650500', 3526), +('652300', '昌吉回族自治州', '650000', 3527), +('652301', '昌吉市', '652300', 3528), +('652302', '阜康市', '652300', 3529), +('652323', '呼图壁县', '652300', 3530), +('652324', '玛纳斯县', '652300', 3531), +('652325', '奇台县', '652300', 3532), +('652327', '吉木萨尔县', '652300', 3533), +('652328', '木垒哈萨克自治县', '652300', 3534), +('652700', '博尔塔拉蒙古自治州', '650000', 3535), +('652701', '博乐市', '652700', 3536), +('652702', '阿拉山口市', '652700', 3537), +('652722', '精河县', '652700', 3538), +('652723', '温泉县', '652700', 3539), +('652800', '巴音郭楞蒙古自治州', '650000', 3540), +('652801', '库尔勒市', '652800', 3541), +('652822', '轮台县', '652800', 3542), +('652823', '尉犁县', '652800', 3543), +('652824', '若羌县', '652800', 3544), +('652825', '且末县', '652800', 3545), +('652826', '焉耆回族自治县', '652800', 3546), +('652827', '和静县', '652800', 3547), +('652828', '和硕县', '652800', 3548), +('652829', '博湖县', '652800', 3549), +('652900', '阿克苏地区', '650000', 3550), +('652901', '阿克苏市', '652900', 3551), +('652902', '库车市', '652900', 3552), +('652922', '温宿县', '652900', 3553), +('652924', '沙雅县', '652900', 3554), +('652925', '新和县', '652900', 3555), +('652926', '拜城县', '652900', 3556), +('652927', '乌什县', '652900', 3557), +('652928', '阿瓦提县', '652900', 3558), +('652929', '柯坪县', '652900', 3559), +('653000', '克孜勒苏柯尔克孜自治州', '650000', 3560), +('653001', '阿图什市', '653000', 3561), +('653022', '阿克陶县', '653000', 3562), +('653023', '阿合奇县', '653000', 3563), +('653024', '乌恰县', '653000', 3564), +('653100', '喀什地区', '650000', 3565), +('653101', '喀什市', '653100', 3566), +('653121', '疏附县', '653100', 3567), +('653122', '疏勒县', '653100', 3568), +('653123', '英吉沙县', '653100', 3569), +('653124', '泽普县', '653100', 3570), +('653125', '莎车县', '653100', 3571), +('653126', '叶城县', '653100', 3572), +('653127', '麦盖提县', '653100', 3573), +('653128', '岳普湖县', '653100', 3574), +('653129', '伽师县', '653100', 3575), +('653130', '巴楚县', '653100', 3576), +('653131', '塔什库尔干塔吉克自治县', '653100', 3577), +('653200', '和田地区', '650000', 3578), +('653201', '和田市', '653200', 3579), +('653221', '和田县', '653200', 3580), +('653222', '墨玉县', '653200', 3581), +('653223', '皮山县', '653200', 3582), +('653224', '洛浦县', '653200', 3583), +('653225', '策勒县', '653200', 3584), +('653226', '于田县', '653200', 3585), +('653227', '民丰县', '653200', 3586), +('653228', '和安县', '653200', 3587), +('653229', '和康县', '653200', 3588), +('654000', '伊犁哈萨克自治州', '650000', 3589), +('654002', '伊宁市', '654000', 3590), +('654003', '奎屯市', '654000', 3591), +('654004', '霍尔果斯市', '654000', 3592), +('654021', '伊宁县', '654000', 3593), +('654022', '察布查尔锡伯自治县', '654000', 3594), +('654023', '霍城县', '654000', 3595), +('654024', '巩留县', '654000', 3596), +('654025', '新源县', '654000', 3597), +('654026', '昭苏县', '654000', 3598), +('654027', '特克斯县', '654000', 3599), +('654028', '尼勒克县', '654000', 3600), +('654200', '塔城地区', '650000', 3601), +('654201', '塔城市', '654200', 3602), +('654202', '乌苏市', '654200', 3603), +('654203', '沙湾市', '654200', 3604), +('654221', '额敏县', '654200', 3605), +('654224', '托里县', '654200', 3606), +('654225', '裕民县', '654200', 3607), +('654226', '和布克赛尔蒙古自治县', '654200', 3608), +('654300', '阿勒泰地区', '650000', 3609), +('654301', '阿勒泰市', '654300', 3610), +('654321', '布尔津县', '654300', 3611), +('654322', '富蕴县', '654300', 3612), +('654323', '福海县', '654300', 3613), +('654324', '哈巴河县', '654300', 3614), +('654325', '青河县', '654300', 3615), +('654326', '吉木乃县', '654300', 3616), +('659000', '自治区直辖县级行政区划', '650000', 3617), +('659001', '石河子市', '659000', 3618), +('659002', '阿拉尔市', '659000', 3619), +('659003', '图木舒克市', '659000', 3620), +('659004', '五家渠市', '659000', 3621), +('659005', '北屯市', '659000', 3622), +('659006', '铁门关市', '659000', 3623), +('659007', '双河市', '659000', 3624), +('659008', '可克达拉市', '659000', 3625), +('659009', '昆玉市', '659000', 3626), +('659010', '胡杨河市', '659000', 3627), +('659011', '新星市', '659000', 3628), +('659012', '白杨市', '659000', 3629), +('710000', '台湾省', NULL, 3630), +('810000', '香港特别行政区', NULL, 3631), +('820000', '澳门特别行政区', NULL, 3632); + +-- 3) 招标行业分类(24 条) +DELETE FROM `date_dict_industry`; +INSERT INTO `date_dict_industry` (`code`, `name`, `parent_code`, `sort_order`) VALUES +('1', '工程建筑', NULL, 1), +('2', '办公文教', NULL, 2), +('3', '医疗卫生', NULL, 3), +('4', '服务采购', NULL, 4), +('5', '机械设备', NULL, 5), +('6', '水利水电', NULL, 6), +('7', '能源化工', NULL, 7), +('8', '弱电安防', NULL, 8), +('9', '信息技术', NULL, 9), +('10', '交通运输', NULL, 10), +('11', '市政基建', NULL, 11), +('12', '农林牧渔', NULL, 12), +('13', '政府部门', NULL, 13), +('14', '日用百货', NULL, 14), +('16', '材料配件', NULL, 15), +('17', '通讯电子', NULL, 16), +('18', '仪器仪表', NULL, 17), +('19', '环保绿化', NULL, 18), +('20', '服装布料', NULL, 19), +('21', '制造生产', NULL, 20), +('22', '家居建材', NULL, 21), +('23', '食品饮品', NULL, 22), +('24', '债券发行', NULL, 23), +('15', '其他', NULL, 24); + +-- 4) 证书类型枚举(263 条) +DELETE FROM `date_dict_certificate`; +INSERT INTO `date_dict_certificate` (`code`, `name`, `sort_order`) VALUES +('000001', '强制性产品认证', 1), +('000002001', '质量管理体系认证', 2), +('000002002', '环境管理体系认证', 3), +('000002003', '职业健康安全管理体系认证', 4), +('000002004', '食品安全管理体系认证', 5), +('000002005', '信息安全管理体系认证', 6), +('000002006', '信息技术服务管理体系认证', 7), +('000002007', '测量管理体系', 8), +('000002008', '能源管理体系认证', 9), +('000002009', '知识产权管理体系认证', 10), +('000002010', '其它管理体系认证', 11), +('000003', '服务认证', 12), +('000004', '自愿性产品认证', 13), +('000005', '食品农产品认证', 14), +('000006', '强制性产品认证自我声明', 15), +('001', '电信业务经营许可证', 16), +('003', '检验检测机构资质认定证书', 17), +('004001', '工程设计资质证书', 18), +('004002', '工程勘察资质证书', 19), +('004003', '工程设计与施工资质证书', 20), +('004004', '建筑业企业资质证书', 21), +('004005', '工程监理资质证书', 22), +('004006', '工程招标代理机构资质证书', 23), +('004007', '工程造价咨询企业资质证书', 24), +('004008', '建设工程质量检测机构资质证书', 25), +('004009', '进省备案登记凭证', 26), +('006001', '水利安全生产标准化证书', 27), +('007', '房地产开发企业资质证书', 28), +('008001', '承装(修、试)电力设施许可证', 29), +('008002', '电力业务许可证', 30), +('009', '房地产估价机构资质证书', 31), +('010', '地质灾害防治单位资质证书', 32), +('011', '安全生产许可证', 33), +('012001001', '医疗器械生产许可证', 34), +('012001002', '医疗器械生产备案凭证', 35), +('012002001', '医疗器械经营许可证', 36), +('012002002', '医疗器械经营备案凭证', 37), +('012003001', '医疗器械注册证', 38), +('012003002', '医疗器械备案凭证', 39), +('013001', '药品生产许可证', 40), +('013002', '药品经营许可证', 41), +('013003', '药品GMP证书', 42), +('013004', '药品GSP证书', 43), +('013005', '药物临床试验机构资格认定证书', 44), +('013006', '药包材注册证', 45), +('013007', '中药保护品种证书', 46), +('013008', '药品注册证书', 47), +('013009', '互联网药品信息服务资格证书', 48), +('013010', '生产药品备案凭证', 49), +('013011', '中药提取物使用备案凭证', 50), +('013012', '药品出口销售证明', 51), +('014001', '化妆品生产许可证', 52), +('014002', '化妆品注册和备案检验检测机构', 53), +('014003001', '特殊化妆品注册证', 54), +('014003002', '普通化妆品备案凭证', 55), +('014003003', '进口化妆品', 56), +('015001001', '特种设备设计许可证', 57), +('015001002', '特种设备制造许可证', 58), +('015001003', '特种设备安装、改造、修理许可证', 59), +('015001004', '安全附件、保护装置制造许可证', 60), +('015002001', '气瓶充装许可', 61), +('015002002', '移动式压力容器充装许可', 62), +('015003', '特种设备检验检测机构核准证', 63), +('016', 'CS证书', 64), +('017', 'ITSS证书', 65), +('018', 'CMMI证书', 66), +('019001', '软件企业证书', 67), +('019002', '软件产品证书', 68), +('019003', '国家鼓励的软件企业证书', 69), +('020', '金融许可证', 70), +('021', '保险许可证', 71), +('022', '保险中介许可证', 72), +('023001', '食品生产许可证', 73), +('023002', '食品经营许可证', 74), +('023003', '食品经营备案凭证', 75), +('023004', '出口食品生产备案凭证', 76), +('024', '工业产品生产许可证', 77), +('025001', '无线电发射设备型号核准证', 78), +('025002', '未取得型号核准的无线电发射设备进关核准', 79), +('026001', '办学许可证', 80), +('027001', '排污许可证', 81), +('027002', '排污登记凭证', 82), +('028001', '采矿许可证', 83), +('028002', '探矿许可证', 84), +('029', '支付业务许可证', 85), +('030', '集成企业资质认证证书', 86), +('031', 'SPCA认证证书', 87), +('032', '信息系统服务交付能力认证证书', 88), +('034001', '电信设备进网许可证', 89), +('035001', '农药生产批准证书', 90), +('900', 'CCC工厂认证', 91), +('901', '卫生许可证', 92), +('902', '对外承包工程资格证书', 93), +('903', '物业服务企业资质证书', 94), +('904', '电信网码号使用许可', 95), +('905', '通信建设企业资质证书', 96), +('906', '开采黄金矿产批准书', 97), +('077', '电视剧制作许可证', 98), +('035003', '农药登记试验单位证书', 99), +('088001', '施工劳务资质', 100), +('075001', '饲料和饲料添加剂生产许可证', 101), +('043001', '安全评价机构资质证书', 102), +('044', 'DCMM证书', 103), +('046002', '中国民用航空局维修许可证', 104), +('012005', '医疗器械产品出口销售证明', 105), +('048001', '农作物种子生产经营许可证', 106), +('035002', '农药登记证', 107), +('050003', '兽药GMP证书', 108), +('073001', '区块链信息服务备案', 109), +('042001', '工程咨询单位备案', 110), +('012004', '医疗器械网络交易服务第三方平台备案凭证', 111), +('056001', '营业性演出许可证', 112), +('004010', '建设工程规划许可证', 113), +('023009', '特殊医学用途配方食品注册证书', 114), +('074002', '接收卫星传送的境外电视节目许可证', 115), +('078002', '烟花爆竹经营(零售)许可证', 116), +('093001', '燃气经营许可证', 117), +('083001', '人力资源服务许可证', 118), +('056004', '艺术品经营单位备案证明', 119), +('013013', '医疗机构制剂许可证', 120), +('023005', '特殊食品验证评价技术机构备案', 121), +('092003', '获认可实验室', 122), +('057003', '危险化学品安全使用许可证', 123), +('056', '文化市场经营单位', 124), +('047001', '快递业务经营许可证', 125), +('064003', '电影发行经营许可证', 126), +('055', '招投标类综合资质', 127), +('066001', '音像制品出版许可证', 128), +('014004', '化妆品新原料备案凭证', 129), +('092004', '获认可检验机构', 130), +('079001', '非药品类易制毒化学品经营许可证', 131), +('061001', '国产电视动画片发行许可证', 132), +('087001', '个人征信业务经营许可证', 133), +('082001', '民用航空空中交通通信导航监视设备使用许可证', 134), +('079002', '非药品类易制毒化学品经营备案证明', 135), +('067001', '图书出版许可证', 136), +('076001', '生猪屠宰生产许可证', 137), +('056002', '网络文化经营许可证', 138), +('053', '公路养护作业单位资质证书', 139), +('023006', '保健食品注册证书', 140), +('012006', '定制式医疗器械备案', 141), +('036', '电子认证服务许可证', 142), +('064001', '电影剧本(梗概)备案回执', 143), +('051001', '烟草专卖零售许可证', 144), +('056003', '娱乐经营许可证', 145), +('071001', '劳务派遣经营许可证', 146), +('092002', '获认可审定与核查机构', 147), +('041001', '会计师事务所执业证书', 148), +('080002', '民用爆炸物品销售许可证', 149), +('091001', '保险公估机构备案', 150), +('094001', '电力需求侧管理服务机构能力评定证书', 151), +('050002', '兽药经营许可证', 152), +('046001', '民用航空维修培训机构合格证', 153), +('084001', '外劳务合作经营资格证书', 154), +('056005', '营业性演出备案证明', 155), +('064002', '电影片公映许可证', 156), +('085001', '互联网新闻信息服务许可证', 157), +('072001', '网上传播视听节目许可证', 158), +('058001', '涉外调查许可证', 159), +('079004', '非药品类易制毒化学品生产许可证', 160), +('068001', '广播电视节目制作经营许可证', 161), +('013014', '药物临床试验机构备案', 162), +('012007', '医疗器械临床试验机构备案', 163), +('057001', '危险化学品经营许可证', 164), +('089001', '道路运输经营许可证', 165), +('069001', '辐射安全许可证', 166), +('080001', '民用爆炸物品生产许可证', 167), +('086001', '外国机构在中国境内投资设立企业提供金融信息服务许可证', 168), +('092001', '获认可认证机构', 169), +('050001', '兽药生产许可证', 170), +('023008', '婴幼儿配方乳粉产品配方注册证书', 171), +('090001', '计算机信息系统安全专用产品销售许可证', 172), +('065001', '印刷经营许可证', 173), +('043002', '安全生产检测检验机构资质证书', 174), +('096001', '成品油零售经营批准证书', 175), +('023007', '保健食品备案凭证', 176), +('039001', '代理记账许可证书', 177), +('045001', 'DOC证书', 178), +('038001', '证券投资咨询业务资格证书', 179), +('059001', '网络出版服务许可证', 180), +('062001', '出版物经营许可证', 181), +('078001', '烟花爆竹经营(批发)许可证', 182), +('054', '公路工程监理资质证书', 183), +('070', '危险废物经营许可证', 184), +('057002', '危险化学品登记证', 185), +('060001', '国产网络剧片发行许可证', 186), +('037', '经营证券期货业务许可证', 187), +('049001', '名特优新农产品证书', 188), +('052', '测绘资质证书', 189), +('063001', '国产电视剧发行许可证', 190), +('095001', '医疗机构执业许可证', 191), +('045002', 'SMC证书', 192), +('040001', '旅行社业务经营许可证', 193), +('097001', '中国信息安全服务资质', 194), +('097002', '中国信息安全产品测评', 195), +('034002', '域名注册服务机构', 196), +('115008', '进口饲料和饲料添加剂企业', 197), +('102001', 'CNCERT网络安全应急服务支撑单位', 198), +('110001', '安防工程企业资质', 199), +('117004', '民用核安全设备无损检验许可证', 200), +('118002', '核设施运行许可证', 201), +('035005', '农药经营许可证', 202), +('034003', '互联网域名根服务器设置及其运行机构和注册管理机构', 203), +('098001', '实验动物生产许可证', 204), +('099001', '煤矿安全标志', 205), +('115022', '进口粮食定点加工企业', 206), +('115016', '供港冰鲜猪肉养殖场', 207), +('112001', '城乡规划编制单位资质', 208), +('109002', '展览陈列工程设计与施工一体化资质', 209), +('116003', '放射性固体废物处置许可证', 210), +('114001', '船用产品证书', 211), +('047002', '快递末端网点备案', 212), +('099002', '非煤安全标志', 213), +('115006', '进口毛燕指定加工企业', 214), +('115021', '进境动物遗传物质使用单位', 215), +('087003', '法人信用评级机构备案', 216), +('068005', '广播电视视频点播业务许可证', 217), +('098002', '实验动物使用许可证', 218), +('115031', '出入境检疫处理单位核准', 219), +('115017', '食品进口商', 220), +('115003', '进口食品境外出口商或者代理商', 221), +('115011', '进境粮食指定存放企业', 222), +('113001', '拍卖经营批准证书', 223), +('115005', '供港澳蔬菜生产加工企业', 224), +('115012', '出口食品原料种植场', 225), +('115026', '出口畜禽类原料养殖场', 226), +('115028', '出境特定动植物及其产品和其他检疫物的生产、加工、存放单位注册登记', 227), +('105001', '废弃电器电子产品处理资格证书', 228), +('115023', '进境植物繁殖材料隔离检疫圃', 229), +('115007', '进境肠衣定点加工企业', 230), +('115025', '出口水产品原料养殖场', 231), +('115014', '出口禽蛋原料养殖场', 232), +('115019', '出口饲料和饲料添加剂企业', 233), +('115010', '进境非食用动物产品生产/加工/存放企业', 234), +('115015', '供港冰鲜牛、羊肉养殖场', 235), +('115020', '进境食用水生动物收货人', 236), +('115004', '出口食品生产企业', 237), +('115001', '报关企业', 238), +('115030', '免税商店经营许可', 239), +('111', '博物馆陈列展览设计施工资质', 240), +('117001', '民用核安全设备设计许可证', 241), +('108', '施工图审查机构', 242), +('087002', '企业征信机构备案', 243), +('109001', '展览工程企业资质', 244), +('097003', '安全可靠测评', 245), +('116001', '放射性固体废物贮存许可证', 246), +('106', '文物保护工程资质', 247), +('116002', '放射性固体废物处理许可证', 248), +('115029', '经营海关监管作业场所企业注册登记', 249), +('115002', '跨境电子商务企业', 250), +('115018', '进口中药材指定存放、加工企业', 251), +('118001', '核设施建造许可证', 252), +('107', '消防技术服务机构资质', 253), +('042002', '工程咨询资信单位资质', 254), +('086002', '境外机构在中国境内提供金融信息服务许可证', 255), +('097004', '中国信息安全系统评估', 256), +('115027', '供港冰鲜、冷冻禽肉养殖场', 257), +('117003', '民用核安全设备安装许可证', 258), +('115013', '出口蜂产品原料养殖场', 259), +('115024', '供港澳蔬菜种植基地', 260), +('115009', '进境生物材料使用和存放单位', 261), +('117002', '民用核安全设备制造许可证', 262), +('-1', '其他', 263); diff --git a/sql/migration_v1.0.16.sql b/sql/migration_v1.0.16.sql new file mode 100644 index 0000000..84d0b1f --- /dev/null +++ b/sql/migration_v1.0.16.sql @@ -0,0 +1,140 @@ +-- ============================================================ +-- SuperLink Web 后台管理系统 - v1.0.16 数据库结构变更脚本 +-- 对应需求文档《修改说明》: +-- 1) 所有数据表时间字段调整为"年-月-日"(DATETIME -> DATE) +-- 2) companies / persons 增加 source_channel、source_detail +-- 3) social_accounts 增加 is_defult(1常用 / 0不常用备用) +-- 4) 数据字典:certification_types 改名为 date_dict_certificate, +-- 新增 date_dict_country / date_dict_area / date_dict_industry / source_channels +-- 字典数据见:sql/dict_seed.sql(由官方 Excel 生成,需一并执行) +-- 执行方式:先执行本文件,再执行 sql/dict_seed.sql。 +-- 提示:原库业务表(companies/persons/social_accounts 等)不在仓库中, +-- 时间字段批量转换建议使用 tools/migrate_time_to_date.php 自动处理。 +-- ============================================================ + +SET NAMES utf8mb4; + +-- ------------------------------------------------------------ +-- 1) 时间字段调整(DATETIME -> DATE) +-- 以下为各业务表已知时间字段的手工 ALTER 示例(请按实际库结构核对列名): +-- companies.created_at / updated_at / established_date +-- persons.created_at / updated_at +-- social_accounts.created_at +-- company_needs.created_at +-- company_documents.publish_date / created_at +-- company_certifications.issue_date / expiry_date / created_at +-- company_relations.established_date / created_at +-- person_work_experiences.start_date / end_date / created_at +-- company_products.created_at +-- media_commercial_attributes.created_at +-- channels.created_at / updated_at +-- system_users.last_login_time / created_at / updated_at +-- system_roles.created_at +-- system_logs.created_at +-- +-- 示例(MySQL 8.0.13+ 支持 DEFAULT (CURRENT_DATE);5.7 请去掉默认值改为 NULL 后由程序写入): +-- ALTER TABLE companies MODIFY COLUMN created_at DATE NULL DEFAULT (CURRENT_DATE); +-- ALTER TABLE companies MODIFY COLUMN updated_at DATE NULL DEFAULT (CURRENT_DATE); +-- 批量转换推荐直接运行:php tools/migrate_time_to_date.php (自动遍历 information_schema) + +-- ------------------------------------------------------------ +-- 2) companies / persons 增加来源字段 +-- ------------------------------------------------------------ +ALTER TABLE `companies` + ADD COLUMN `source_channel` VARCHAR(50) NULL DEFAULT NULL COMMENT '来源渠道(字典:source_channels,如展会/SNS/竞价广告)' AFTER `website`, + ADD COLUMN `source_detail` VARCHAR(255) NULL DEFAULT NULL COMMENT '来源详情(如:华南工博会)' AFTER `source_channel`; + +ALTER TABLE `persons` + ADD COLUMN `source_channel` VARCHAR(50) NULL DEFAULT NULL COMMENT '来源渠道(字典:source_channels)' AFTER `work_location`, + ADD COLUMN `source_detail` VARCHAR(255) NULL DEFAULT NULL COMMENT '来源详情' AFTER `source_channel`; + +-- ------------------------------------------------------------ +-- 3) social_accounts 增加 is_defult(1常用 / 0不常用、备用) +-- ------------------------------------------------------------ +ALTER TABLE `social_accounts` + ADD COLUMN `is_defult` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否常用:1常用,0不常用/备用' AFTER `is_primary`; + +-- ------------------------------------------------------------ +-- 4) 数据字典 +-- ------------------------------------------------------------ +-- 4.1 certification_types 改名为 date_dict_certificate(保留原数据,随后用 dict_seed.sql 覆盖为官方枚举) +RENAME TABLE `certification_types` TO `date_dict_certificate`; +ALTER TABLE `date_dict_certificate` + ADD COLUMN `code` VARCHAR(50) NULL DEFAULT NULL COMMENT '证书类型枚举编码' AFTER `id`; + +-- 4.2 国家地区编码字典 +DROP TABLE IF EXISTS `date_dict_country`; +CREATE TABLE `date_dict_country` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `code` VARCHAR(50) NOT NULL COMMENT '国家/地区编码', + `name` VARCHAR(100) NOT NULL COMMENT '国家/地区中文名', + `sort_order` INT NOT NULL DEFAULT 0 COMMENT '排序', + `is_active` TINYINT(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '启用状态', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_code` (`code`), + KEY `idx_name` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='国家地区编码字典'; + +-- 4.3 行政区划编码字典(省/市/区县三级,parent_code 关联) +DROP TABLE IF EXISTS `date_dict_area`; +CREATE TABLE `date_dict_area` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `code` VARCHAR(50) NOT NULL COMMENT '行政区划编码', + `name` VARCHAR(100) NOT NULL COMMENT '行政区划名称', + `parent_code` VARCHAR(50) DEFAULT NULL COMMENT '上级行政区划编码(省级为NULL)', + `sort_order` INT NOT NULL DEFAULT 0 COMMENT '排序', + `is_active` TINYINT(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '启用状态', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_code` (`code`), + KEY `idx_parent` (`parent_code`), + KEY `idx_name` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='行政区划编码字典'; + +-- 4.4 招标行业分类字典(parent_code 预留大类/细分层级) +DROP TABLE IF EXISTS `date_dict_industry`; +CREATE TABLE `date_dict_industry` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `code` VARCHAR(50) NOT NULL COMMENT '行业编码', + `name` VARCHAR(100) NOT NULL COMMENT '行业名称', + `parent_code` VARCHAR(50) DEFAULT NULL COMMENT '上级行业编码(大类为NULL)', + `sort_order` INT NOT NULL DEFAULT 0 COMMENT '排序', + `is_active` TINYINT(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '启用状态', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_code` (`code`), + KEY `idx_parent` (`parent_code`), + KEY `idx_name` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='招标行业分类字典'; + +-- 4.5 证书类型枚举字典 +ALTER TABLE `date_dict_certificate` + MODIFY COLUMN `code` VARCHAR(50) NULL DEFAULT NULL COMMENT '证书类型枚举编码', + ADD UNIQUE KEY `uk_code` (`code`); + +-- 4.6 来源渠道字典(source_channel 枚举,参考 certification_types 结构) +DROP TABLE IF EXISTS `source_channels`; +CREATE TABLE `source_channels` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `name` VARCHAR(50) NOT NULL COMMENT '渠道名称', + `sort_order` INT NOT NULL DEFAULT 0 COMMENT '排序', + `is_active` TINYINT(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '启用状态', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_name` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='来源渠道字典'; + +-- 来源渠道默认数据 +INSERT INTO `source_channels` (`name`, `sort_order`) VALUES +('展会', 1), ('SNS/社交媒体', 2), ('竞价广告', 3), ('搜索引擎自然流量', 4), +('行业媒体/门户', 5), ('转介绍', 6), ('电话销售', 7), ('邮件营销', 8), +('地推', 9), ('代理商/渠道', 10), ('官网咨询', 11), ('其他', 99); + +-- ------------------------------------------------------------ +-- 字典数据(date_dict_country / date_dict_area / date_dict_industry / date_dict_certificate) +-- 请执行:sql/dict_seed.sql +-- ------------------------------------------------------------ + +-- ============================================================ +-- 附:时间字段批量转换工具使用说明 +-- 在部署机上执行:php tools/migrate_time_to_date.php +-- 该脚本会自动遍历 mysuperlink 库中所有 DATETIME/TIMESTAMP 字段并转换为 DATE, +-- 即满足"所有数据表时间字段调整为年-月-日"的需求,无需手工逐个核对。 +-- ============================================================ diff --git a/sql/system_tables.sql b/sql/system_tables.sql index 1363086..b5f3202 100644 --- a/sql/system_tables.sql +++ b/sql/system_tables.sql @@ -1,11 +1,15 @@ -- ============================================================ --- SuperLink Web 后台管理系统 - 新增系统表 +-- SuperLink Web 后台管理系统 - 系统表(含 v1.0.16 数据字典表) -- 数据库:mysuperlink (utf8mb4 / utf8mb4_unicode_ci) -- 说明: -- 1) 原库已有14张业务表(companies/persons/social_accounts/company_needs 等),本文件不改动它们。 --- 2) 本文件新增文档要求的 3 张系统表:system_users / system_roles / system_logs(含默认数据)。 --- 3) 另新增 1 张业务表 channels(渠道管理模块需要,原14张表中没有渠道表), --- 如不需要渠道模块可直接跳过该段。 +-- 2) 本文件定义系统表:system_users / system_roles / system_logs / channels, +-- 以及 v1.0.16 新增的数据字典表:date_dict_country / date_dict_area / +-- date_dict_industry / date_dict_certificate / source_channels。 +-- 3) 按需求文档:所有时间字段调整为"年-月-日"(DATE 类型,不保留时分秒)。 +-- 注意:DATE 默认值使用表达式 DEFAULT (CURRENT_DATE),需 MySQL 8.0.13+; +-- 若为 MySQL 5.7,请将时间字段保留为 DATETIME 或由应用层写入日期。 +-- 4) 数据字典的完整数据由官方 Excel 生成,见 sql/dict_seed.sql(建表后执行)。 -- 执行方式:Navicat / phpMyAdmin / mysql 命令行执行本文件即可(可重复执行前请先删除旧表)。 -- ============================================================ @@ -22,10 +26,10 @@ CREATE TABLE `system_users` ( `real_name` VARCHAR(50) DEFAULT NULL COMMENT '真实姓名', `role_id` INT UNSIGNED NOT NULL COMMENT '角色ID', `is_active` TINYINT(1) UNSIGNED DEFAULT 1 COMMENT '启用状态(0禁用,1启用)', - `last_login_time` DATETIME DEFAULT NULL COMMENT '最后登录时间', + `last_login_time` DATE DEFAULT NULL COMMENT '最后登录时间(年-月-日)', `last_login_ip` VARCHAR(50) DEFAULT NULL COMMENT '最后登录IP', - `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `created_at` DATE DEFAULT (CURRENT_DATE) COMMENT '创建时间(年-月-日)', + `updated_at` DATE DEFAULT (CURRENT_DATE) COMMENT '更新时间(年-月-日)', PRIMARY KEY (`id`), UNIQUE KEY `uk_username` (`username`), KEY `idx_role_id` (`role_id`) @@ -40,7 +44,7 @@ CREATE TABLE `system_roles` ( `role_name` VARCHAR(50) NOT NULL COMMENT '角色名称', `permissions` JSON NOT NULL COMMENT '权限列表(菜单标识数组)', `is_active` TINYINT(1) UNSIGNED DEFAULT 1 COMMENT '启用状态', - `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `created_at` DATE DEFAULT (CURRENT_DATE) COMMENT '创建时间(年-月-日)', PRIMARY KEY (`id`), UNIQUE KEY `uk_role_name` (`role_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统角色表'; @@ -59,7 +63,7 @@ CREATE TABLE `system_logs` ( `target_id` INT UNSIGNED DEFAULT NULL COMMENT '操作对象记录ID', `content` JSON DEFAULT NULL COMMENT '操作内容(变更前后数据)', `ip` VARCHAR(50) DEFAULT NULL COMMENT '客户端IP', - `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间', + `created_at` DATE DEFAULT (CURRENT_DATE) COMMENT '操作时间(年-月-日)', PRIMARY KEY (`id`), KEY `idx_user_id` (`user_id`), KEY `idx_action` (`action`), @@ -97,9 +101,88 @@ CREATE TABLE `channels` ( `efficiency_score` DECIMAL(5,2) DEFAULT 0 COMMENT '效率评分(0-100)', `remark` VARCHAR(255) DEFAULT NULL COMMENT '备注', `is_active` TINYINT(1) UNSIGNED DEFAULT 1 COMMENT '启用状态', - `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `created_at` DATE DEFAULT (CURRENT_DATE) COMMENT '创建时间(年-月-日)', + `updated_at` DATE DEFAULT (CURRENT_DATE) COMMENT '更新时间(年-月-日)', PRIMARY KEY (`id`), KEY `idx_channel_type` (`channel_type`), KEY `idx_is_active` (`is_active`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='渠道管理表'; + +-- ------------------------------------------------------------ +-- 6. v1.0.16 数据字典表 +-- ------------------------------------------------------------ +-- 6.1 国家地区编码字典 +DROP TABLE IF EXISTS `date_dict_country`; +CREATE TABLE `date_dict_country` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `code` VARCHAR(50) NOT NULL COMMENT '国家/地区编码', + `name` VARCHAR(100) NOT NULL COMMENT '国家/地区中文名', + `sort_order` INT NOT NULL DEFAULT 0 COMMENT '排序', + `is_active` TINYINT(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '启用状态', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_code` (`code`), + KEY `idx_name` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='国家地区编码字典'; + +-- 6.2 行政区划编码字典(省/市/区县三级,parent_code 关联) +DROP TABLE IF EXISTS `date_dict_area`; +CREATE TABLE `date_dict_area` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `code` VARCHAR(50) NOT NULL COMMENT '行政区划编码', + `name` VARCHAR(100) NOT NULL COMMENT '行政区划名称', + `parent_code` VARCHAR(50) DEFAULT NULL COMMENT '上级行政区划编码(省级为NULL)', + `sort_order` INT NOT NULL DEFAULT 0 COMMENT '排序', + `is_active` TINYINT(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '启用状态', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_code` (`code`), + KEY `idx_parent` (`parent_code`), + KEY `idx_name` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='行政区划编码字典'; + +-- 6.3 招标行业分类字典(parent_code 预留大类/细分层级) +DROP TABLE IF EXISTS `date_dict_industry`; +CREATE TABLE `date_dict_industry` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `code` VARCHAR(50) NOT NULL COMMENT '行业编码', + `name` VARCHAR(100) NOT NULL COMMENT '行业名称', + `parent_code` VARCHAR(50) DEFAULT NULL COMMENT '上级行业编码(大类为NULL)', + `sort_order` INT NOT NULL DEFAULT 0 COMMENT '排序', + `is_active` TINYINT(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '启用状态', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_code` (`code`), + KEY `idx_parent` (`parent_code`), + KEY `idx_name` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='招标行业分类字典'; + +-- 6.4 证书类型枚举字典(原 certification_types 表改名而来;新装环境在此创建) +DROP TABLE IF EXISTS `date_dict_certificate`; +CREATE TABLE `date_dict_certificate` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `code` VARCHAR(50) DEFAULT NULL COMMENT '证书类型枚举编码', + `name` VARCHAR(100) NOT NULL COMMENT '证书类型名称', + `sort_order` INT NOT NULL DEFAULT 0 COMMENT '排序', + `is_active` TINYINT(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '启用状态', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_code` (`code`), + KEY `idx_name` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='证书类型枚举字典'; + +-- 6.5 来源渠道字典(source_channel 枚举) +DROP TABLE IF EXISTS `source_channels`; +CREATE TABLE `source_channels` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `name` VARCHAR(50) NOT NULL COMMENT '渠道名称', + `sort_order` INT NOT NULL DEFAULT 0 COMMENT '排序', + `is_active` TINYINT(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '启用状态', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_name` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='来源渠道字典'; + +-- 6.6 来源渠道默认数据 +INSERT INTO `source_channels` (`name`, `sort_order`) VALUES +('展会', 1), ('SNS/社交媒体', 2), ('竞价广告', 3), ('搜索引擎自然流量', 4), +('行业媒体/门户', 5), ('转介绍', 6), ('电话销售', 7), ('邮件营销', 8), +('地推', 9), ('代理商/渠道', 10), ('官网咨询', 11), ('其他', 99); + +-- 6.7 数据字典完整数据(国家/行政区划/行业/证书)由官方 Excel 生成: +-- 请执行 sql/dict_seed.sql diff --git a/static/js/company.js b/static/js/company.js index af74286..f48dafe 100644 --- a/static/js/company.js +++ b/static/js/company.js @@ -88,21 +88,49 @@ $(function () { /* ---------- 新增/编辑 ---------- */ $('#btn-add').on('click', function () { httpGet('company/cert_types.php').then(function (d) { - openForm(null, [], [], d.types || []); + loadDicts().then(function (dicts) { + openForm(null, [], [], d.types || [], dicts); + }); }); }); window.editCompany = function (id) { httpGet('company/detail.php', { id: id }).then(function (d) { - openForm(d.company, d.financials, d.certifications, d.certification_types); + loadDicts().then(function (dicts) { + openForm(d.company, d.financials, d.certifications, d.certification_types, dicts); + }); }); }; - function openForm(company, financials, certifications, certTypes) { + /** 拉取数据字典(国家/行业/来源渠道),供表单下拉使用 */ + function loadDicts() { + return httpGet('common/dicts.php', { type: 'all' }).catch(function () { + return { countries: [], industries: [], source_channels: [] }; + }); + } + + /** 生成下拉选项:value 与当前值匹配则选中;若当前值不在字典中则追加一个选项保留原值 */ + function dictOptions(list, cur, labelKey) { + var html = ''; + var found = false; + (list || []).forEach(function (item) { + var name = item[labelKey || 'name']; + var sel = (String(name) === String(cur)) ? ' selected' : ''; + if (sel) found = true; + html += ''; + }); + if (cur && !found) { + html += ''; + } + return html; + } + + function openForm(company, financials, certifications, certTypes, dicts) { var isEdit = !!company; var c = company || {}; financials = financials || []; certifications = certifications || []; certTypes = certTypes || []; + dicts = dicts || {}; // Tab1 工商信息 var bizHtml = @@ -113,7 +141,7 @@ $(function () { ' ' + ' ' + '
' + - '
' + + '
' + '
' + '
' + '
' + @@ -127,9 +155,11 @@ $(function () { var indHtml = '
' + '
' + - '
' + + '
' + '
' + '
' + + '
' + + '
' + '
'; // Tab3 财务信息:顶部独立字段(是否上市/股票代码/最新员工/最新营收)+ 年度财务明细列表 @@ -350,6 +380,24 @@ $(function () { window.viewCompany = function (id) { httpGet('company/detail.php', { id: id }).then(function (d) { var c = d.company; + // 联系方式列表(social_accounts 中属于该公司的记录,仅展示) + var accountsHtml = ''; + (d.accounts || []).forEach(function (a) { + var tag = ''; + if (a.is_defult) tag = ' 常用'; + else if (a.is_primary) tag = ' 默认'; + accountsHtml += '' + + '' + escHtml(a.platform || '-') + '' + + '' + escHtml(a.account_id || '-') + '' + + '' + (a.profile_url ? '打开' : '-') + '' + + '' + escHtml(a.remark || '-') + '' + + '' + (a.is_active ? '启用' : '停用') + tag + '' + + ''; + }); + var accountsSection = accountsHtml + ? '' + accountsHtml + '
平台账号/号码主页链接备注状态
' + : '
暂无联系方式
'; + var html = '
' + '

' + escHtml(c.name_zh || c.name_en || '企业 #' + c.id) + '

' + @@ -362,9 +410,10 @@ $(function () { detailRow('注册资本', c.registered_capital) + detailRow('成立日期', c.established_date) + detailRow('员工数', c.latest_employee_count) + detailRow('年营收', c.latest_annual_revenue) + detailRow('是否上市', c.is_listed ? '是' : '否') + detailRow('股票代码', c.stock_code) + + detailRow('来源渠道', c.source_channel) + detailRow('来源详情', c.source_detail) + '
' + '

经营范围

' + escHtml(c.business_scope || '-') + '
' + - '

关联需求

' + miniTable(['联系人', '需求大类', '意向品类', '场景'], d.needs.map(function (n) { return [n.contact_person || '-', n.need_category || '-', n.target_product_category || '-', n.application_scenario || '-']; })) + + '

联系方式

' + accountsSection + ''; Dialog.open({ title: '企业详情', area: ['820px', 'auto'], content: html, btn: ['关闭'] }); }); @@ -374,16 +423,6 @@ $(function () { return '
' + label + ':' + escHtml(val || '-') + '
'; } - function miniTable(headers, rows) { - if (!rows.length) return '
暂无数据
'; - var html = ''; - html += '' + headers.map(function (h) { return ''; }).join('') + ''; - rows.forEach(function (r) { - html += '' + r.map(function (v) { return ''; }).join('') + ''; - }); - return html + '
' + h + '
' + escHtml(v) + '
'; - } - /* ---------- 员工列表弹窗(按公司查看员工,分页 + 姓名/职级筛选) ---------- */ var empCompanyId = 0; var empPage = 1; diff --git a/static/js/config.js b/static/js/config.js index ff875ee..629ab53 100644 --- a/static/js/config.js +++ b/static/js/config.js @@ -5,7 +5,7 @@ var BASE_URL = '/api/'; var PAGE_SIZE = 20; /** 系统版本号(logo旁展示):修改代码后运行 tools/bump_version.php 自动递增 */ -var APP_VERSION = 'v1.0.15'; +var APP_VERSION = 'v1.0.17'; /** 页脚版权/备案信息(在 config.js 中修改) */ var FOOTER_TEXT = '© 2026 SuperLink 管理系统 版权所有 | 备案号:请替换为真实备案号'; diff --git a/static/js/media.js b/static/js/media.js index 1bd54ae..d988682 100644 --- a/static/js/media.js +++ b/static/js/media.js @@ -118,9 +118,14 @@ $(function () { ' ' + '
' + '
' + - '
' + - '
' + + ' ' + + '
' + + '
' + + '
' + '
' + + '
' + '
' + @@ -144,6 +149,25 @@ $(function () { $('#form-cancel').on('click', function () { Dialog.close(idx); }); + // 手机号归属地自动识别(平台为 phone 时,录入号码自动识别归属地) + var $geo = $('#media-account-geo'); + var bindGeo = function () { + if ($('#media-platform').val() !== 'phone') { $geo.text('').hide(); return; } + $('#media-account').off('blur.geo').on('blur.geo', function () { + var val = $.trim($(this).val()); + if (!val) { $geo.text('').hide(); return; } + httpGet('common/phone_geo.php', { phone: val }).then(function (d) { + if (d && d.label && d.label !== '未知') { + $geo.text('归属地:' + d.label).show(); + } else { + $geo.text('归属地:未能识别').show(); + } + }).catch(function () { $geo.text('').hide(); }); + }); + }; + $('#media-platform').on('change', bindGeo); + bindGeo(); + $('#media-form').on('submit', function (e) { e.preventDefault(); var data = {}; diff --git a/static/js/person.js b/static/js/person.js index 4cf83a6..363c57d 100644 --- a/static/js/person.js +++ b/static/js/person.js @@ -30,7 +30,7 @@ $(function () { ' ' + ' ' + '
' + - ' ' + + ' ' + ' ' + '
ID姓名性别国籍工作所在地家乡学历联系方式创建时间操作
ID姓名性别国籍工作所在地家乡学历手机邮箱创建时间操作
' + ' ' + @@ -58,17 +58,17 @@ $(function () { '' + escHtml(r.work_location || '-') + '' + '' + escHtml(r.hometown || '-') + '' + '' + escHtml(r.education || '-') + '' + - '' + escHtml((r.contacts || '-').substring(0, 40)) + '' + + '' + escHtml(r.phone || '-') + '' + + '' + escHtml((r.email || '-').substring(0, 30)) + '' + '' + fmtDate(r.created_at) + '' + '' + ' 详情' + - ' 公司' + - ' 产品' + + ' 履历' + ' 编辑' + ''; }); if (!rows.length) { - html = '暂无数据'; + html = '暂无数据'; } $('#person-tbody').html(html); renderPagination($('#pagination'), data, loadList); @@ -81,43 +81,155 @@ $(function () { loadList(1); }); - $('#btn-add').on('click', function () { openForm(null); }); + $('#btn-add').on('click', function () { openForm(null, null, null, null, null); }); window.editPerson = function (id) { httpGet('person/detail.php', { id: id }).then(function (d) { - openForm(d.person, d.accounts); + openForm(d.person, d.accounts, d.phone, d.email, d.experiences); }); }; - function contactsInputHtml(accounts) { - accounts = accounts || []; - var html = '
'; - if (!accounts.length) { - accounts = [{ platform: 'email', account_id: '', is_primary: 1 }]; + /** 手机号输入后自动识别归属地(录入手机号码时自动识别:国内-国家省-市;港澳台-中国香港/澳门/台湾;海外-国籍) */ + function bindPhoneGeo($phoneInput, $geoHint) { + var timer = null; + $phoneInput.on('blur', function () { + var val = $.trim($(this).val()); + if (!val) { $geoHint.text('').hide(); return; } + clearTimeout(timer); + timer = setTimeout(function () { + httpGet('common/phone_geo.php', { phone: val }).then(function (d) { + if (d && d.label && d.label !== '未知') { + $geoHint.text('归属地:' + d.label).show(); + } else { + $geoHint.text('归属地:未能识别').show(); + } + }).catch(function () { $geoHint.text('').hide(); }); + }, 300); + }); + } + + /** 省市区三级联动下拉(数据来自 date_dict_area 字典) + * value 格式:"省-市-区县"(直辖市省略市,如 "北京市-东城区") */ + function areaSelectsHtml(target, value) { + return '
' + + '' + + '' + + '' + + '
' + + ''; + } + + /** 构建省/市/区三级联动:填充选项并按已有值回选 */ + function initAreaCascade(areas) { + var provMap = {}; // code -> name + var childMap = {}; // parent_code -> [{code,name}] + (areas || []).forEach(function (a) { + if (!a.parent_code) { + provMap[a.code] = a.name; + } else { + (childMap[a.parent_code] = childMap[a.parent_code] || []).push({ code: a.code, name: a.name }); + } + }); + var provCodes = Object.keys(provMap); + + function fillProv($box) { + var html = ''; + provCodes.forEach(function (code) { + html += ''; + }); + $box.find('.area-prov').html(html); } - accounts.forEach(function (a, i) { - html += '
' + - '' + - '' + - '' + - '
'; + function fillCity($box, provCode) { + var html = ''; + (childMap[provCode] || []).forEach(function (c) { + html += ''; + }); + $box.find('.area-city').html(html); + $box.find('.area-dist').html(''); + } + function fillDist($box, cityCode) { + var html = ''; + (childMap[cityCode] || []).forEach(function (c) { + html += ''; + }); + $box.find('.area-dist').html(html); + } + function combine($box) { + var target = $box.data('target'); + var provName = $box.find('.area-prov option:selected').text(); + var cityName = $box.find('.area-city option:selected').text(); + var distName = $box.find('.area-dist option:selected').text(); + var parts = []; + if ($box.find('.area-prov').val()) parts.push(provName); + if ($box.find('.area-city').val() && cityName !== provName) parts.push(cityName); + if ($box.find('.area-dist').val()) parts.push(distName); + $box.closest('.form-item').find('input[name="' + target + '"]').val(parts.join('-')); + } + + $('.area-cascade').each(function () { + var $box = $(this); + var target = $box.data('target'); + var current = $box.closest('.form-item').find('input[name="' + target + '"]').val() || ''; + var parts = current.split('-'); + var provName = parts[0] || ''; + var cityName = parts[1] || ''; + var distName = parts[2] || ''; + + fillProv($box); + + // 回选省 + var provCode = ''; + provCodes.forEach(function (code) { + if (provMap[code] === provName) { + provCode = code; + $box.find('.area-prov').val(code); + } + }); + if (!provCode) return; + + fillCity($box, provCode); + var cityList = childMap[provCode] || []; + var cityCode = ''; + // 直接按市名匹配;直辖市(省/市同名,如"北京市-东城区")时 parts[1] 实为区县 + var direct = cityList.filter(function (c) { return c.name === cityName; }); + if (direct.length) { + cityCode = direct[0].code; + $box.find('.area-city').val(cityCode); + } else if (cityList.length === 1 && cityList[0].name === provName) { + cityCode = cityList[0].code; + $box.find('.area-city').val(cityCode); + if (parts[1] && !distName) { + distName = parts[1]; // 直辖市:第二段实为区县 + } + } + if (!cityCode) return; + + fillDist($box, cityCode); + (childMap[cityCode] || []).forEach(function (c) { + if (c.name === distName) $box.find('.area-dist').val(c.code); + }); + }); + + // 联动事件 + $('.area-cascade').off('change.area').on('change.area', '.area-prov', function () { + var $box = $(this).closest('.area-cascade'); + fillCity($box, $(this).val()); + combine($box); + }); + $('.area-cascade').off('change.areaCity').on('change.areaCity', '.area-city', function () { + var $box = $(this).closest('.area-cascade'); + fillDist($box, $(this).val()); + combine($box); + }); + $('.area-cascade').off('change.areaDist').on('change.areaDist', '.area-dist', function () { + combine($(this).closest('.area-cascade')); }); - return html + '
' + - ''; } - function platformOpts(sel) { - var list = ['phone', 'email', 'wechat', 'douyin', 'linkedin', 'x', 'facebook', 'instagram', 'tiktok', 'other']; - var html = ''; - list.forEach(function (p) { - html += ''; - }); - return html; - } - - function openForm(person, accounts) { + function openForm(person, accounts, phone, email, experiences) { var isEdit = !!person; var p = person || {}; + var pPhone = phone || ''; + var pEmail = email || ''; var content = '
' + '
' + @@ -127,14 +239,20 @@ $(function () { ' ' + ' ' + '
' + - '
' + + '
' + + '
' + '
' + '
' + '
' + '
' + - '
' + - '
' + - '
' + contactsInputHtml(accounts) + '
' + + '
' + areaSelectsHtml('hometown', p.hometown) + '
' + + '
' + areaSelectsHtml('work_location', p.work_location) + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + '' + '' + @@ -147,16 +265,32 @@ $(function () { btn: false }); + // 手机号归属地自动识别 + bindPhoneGeo($('#person-phone'), $('#person-phone-geo')); + + // 加载国籍字典 + 行政区划字典(三级联动) + 来源渠道字典 + httpGet('common/dicts.php', { type: 'all' }).then(function (d) { + var $dl = $('#person-country-list'); + var html = ''; + (d.countries || []).forEach(function (c) { html += ''; }); + $dl.html(html); + // 省市区三级联动 + initAreaCascade(d.areas || []); + var $sc = $('#person-source-channel'); + var scHtml = ''; + var hasCur = false; + (d.source_channels || []).forEach(function (s) { + var sel = (s.name === p.source_channel) ? ' selected' : ''; + if (sel) hasCur = true; + scHtml += ''; + }); + if (p.source_channel && !hasCur) { + scHtml += ''; + } + $sc.html(scHtml); + }).catch(function () {}); + $('#form-cancel').on('click', function () { Dialog.close(idx); }); - $('#add-contact').on('click', function () { - $('#contacts-box').append( - '
' + - '' + - '' + - '' + - '
' - ); - }); $('#person-form').on('submit', function (e) { e.preventDefault(); @@ -164,27 +298,21 @@ $(function () { $(this).find('input, select').each(function () { var name = $(this).attr('name'); if (!name) return; - if (name.indexOf('c-') === 0) return; - if ($(this).attr('type') === 'checkbox') { - data[name] = $(this).prop('checked') ? 1 : 0; - } else { - data[name] = $(this).val(); - } + data[name] = $(this).val(); }); if (!data.full_name) { Dialog.error('姓名为必填项'); return; } - // 联系方式 + // 联系方式(手机/邮箱,均为常用) var contacts = []; - $('#contacts-box .contact-row').each(function () { - var $row = $(this); - var account = $.trim($row.find('input[name="c-account"]').val()); - var platform = $row.find('select[name="c-platform"]').val(); - var primary = $row.find('input[name="c-primary"]').prop('checked') ? 1 : 0; - if (account) { - contacts.push({ platform: platform, account_id: account, is_primary: primary }); - } - }); + if ($.trim(data.phone || '')) { + contacts.push({ platform: 'phone', account_id: $.trim(data.phone), is_primary: 1, is_defult: 1 }); + } + if ($.trim(data.email || '')) { + contacts.push({ platform: 'email', account_id: $.trim(data.email), is_primary: 1, is_defult: 1 }); + } data.contacts = JSON.stringify(contacts); + delete data.phone; + delete data.email; if (isEdit) data.id = p.id; httpPost(isEdit ? 'person/update.php' : 'person/add.php', data).then(function () { @@ -223,11 +351,6 @@ $(function () { window.viewPerson = function (id) { httpGet('person/detail.php', { id: id }).then(function (d) { var p = d.person; - var accountsHtml = ''; - (d.accounts || []).forEach(function (a) { - accountsHtml += '
' + escHtml(a.platform) + ':' + escHtml(a.account_id) + - (a.is_primary ? ' 默认' : '') + '
'; - }); var expHtml = ''; (d.experiences || []).forEach(function (e) { expHtml += '' + escHtml(e.display_name || '-') + '' + escHtml(e.position || '-') + '' + @@ -245,10 +368,14 @@ $(function () { '
毕业院校:' + escHtml(p.graduated_from || '-') + '
' + '
家乡:' + escHtml(p.hometown || '-') + '
' + '
工作所在地:' + escHtml(p.work_location || '-') + '
' + + '
来源渠道:' + escHtml(p.source_channel || '-') + '
' + + '
来源详情:' + escHtml(p.source_detail || '-') + '
' + '
union_id:' + escHtml(p.union_id) + '
' + ' ' + - '

联系方式

' + (accountsHtml || '
暂无
') + - '

工作经历

' + + '

联系方式

' + + '
手机:' + escHtml(d.phone || '-') + '
' + + '
邮箱:' + escHtml(d.email || '-') + '
' + + '

工作履历

' + ' ' + (expHtml || '') + '
公司职位部门级别时间
暂无
' + ''; @@ -256,10 +383,10 @@ $(function () { }); } - /* ---------- 任职公司弹窗(按人员查看任职公司,分页) ---------- */ + /* ---------- 任职履历弹窗(按人员查看任职公司/履历,分页) ---------- */ var compPersonId = 0; - window.viewCompanies = function (personId) { + window.viewResume = function (personId) { compPersonId = personId; var content = '
' + @@ -276,7 +403,7 @@ $(function () { '
' + ' ' + ''; - Dialog.open({ title: '任职公司', area: ['720px', 'auto'], content: content, btn: ['关闭'] }); + Dialog.open({ title: '工作履历', area: ['720px', 'auto'], content: content, btn: ['关闭'] }); loadCompanies(1); $('#comp-search').on('click', function () { loadCompanies(1); }); @@ -314,41 +441,4 @@ $(function () { renderPagination($('#comp-pagination'), data, loadCompanies); }); } - - /* ---------- 产品品类弹窗(按人员任职公司查看产品,分页) ---------- */ - var ppPersonId = 0; - - window.viewPersonProducts = function (personId) { - ppPersonId = personId; - var content = - '
' + - '
' + - ' ' + - ' ' + - '
公司品类名称品类描述是否核心
' + - ' ' + - '
'; - Dialog.open({ title: '产品品类', area: ['760px', 'auto'], content: content, btn: ['关闭'] }); - loadPersonProducts(1); - }; - - function loadPersonProducts(page) { - httpGet('person/products.php', { person_id: ppPersonId, page: page, limit: 5 }).then(function (data) { - var rows = data.list || []; - var html = ''; - rows.forEach(function (r) { - html += '' + - '' + escHtml(r.company_name) + '' + - '' + escHtml(r.category_name) + '' + - '' + escHtml(r.category_description || '-') + '' + - '' + (r.is_core ? '核心' : '-') + '' + - ''; - }); - if (!rows.length) { - html = '暂无产品品类'; - } - $('#pp-tbody').html(html); - renderPagination($('#pp-pagination'), data, loadPersonProducts); - }); - } }); diff --git a/tools/migrate_time_to_date.php b/tools/migrate_time_to_date.php new file mode 100644 index 0000000..fe85c0b --- /dev/null +++ b/tools/migrate_time_to_date.php @@ -0,0 +1,67 @@ + DATE)。 + * 用法:php tools/migrate_time_to_date.php [库名] + * 说明: + * - 自动遍历指定库(默认取 config/database.php 的 dbname)中所有 DATETIME/TIMESTAMP 字段, + * 生成并执行 ALTER TABLE ... MODIFY ... DATE。 + * - 对带默认值 CURRENT_TIMESTAMP 的字段,改为 DEFAULT (CURRENT_DATE)(需 MySQL 8.0.13+); + * 若执行环境为 MySQL 5.7,请手动调整或保留 DATETIME。 + * - 已存在 DATE 类型的字段不会重复处理;脚本幂等,可重复执行。 + */ +require __DIR__ . '/../config/database.php'; + +$dbname = $argv[1] ?? $cfg['dbname']; +$dsn = sprintf('mysql:host=%s;port=%d;dbname=%s;charset=%s', $cfg['host'], $cfg['port'], $dbname, $cfg['charset']); + +try { + $pdo = new PDO($dsn, $cfg['username'], $cfg['password'], [ + PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, + PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, + ]); +} catch (Exception $e) { + fwrite(STDERR, "[错误] 数据库连接失败:" . $e->getMessage() . "\n"); + exit(1); +} + +// 查出所有 DATETIME / TIMESTAMP 列 +$stmt = $pdo->prepare( + "SELECT TABLE_NAME, COLUMN_NAME, IS_NULLABLE, COLUMN_DEFAULT, EXTRA + FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = ? AND DATA_TYPE IN ('datetime', 'timestamp') + ORDER BY TABLE_NAME, ORDINAL_POSITION" +); +$stmt->execute([$dbname]); +$cols = $stmt->fetchAll(); + +if (!$cols) { + echo "未发现需要转换的 DATETIME/TIMESTAMP 字段。\n"; + exit(0); +} + +$converted = 0; +foreach ($cols as $col) { + $table = $col['TABLE_NAME']; + $name = $col['COLUMN_NAME']; + $nullable = $col['IS_NULLABLE'] === 'YES' ? 'NULL' : 'NOT NULL'; + // 原默认值为 CURRENT_TIMESTAMP / on update CURRENT_TIMESTAMP 的,改为 (CURRENT_DATE) + $def = 'NULL'; + if (stripos((string)$col['COLUMN_DEFAULT'], 'CURRENT_TIMESTAMP') !== false) { + $def = '(CURRENT_DATE)'; + } + $extra = ''; + if (stripos((string)$col['EXTRA'], 'on update') !== false) { + $extra = ' ON UPDATE (CURRENT_DATE)'; + } + $sql = "ALTER TABLE `$table` MODIFY COLUMN `$name` DATE $nullable DEFAULT $def$extra"; + try { + $pdo->exec($sql); + echo "转换:$table.$name DATETIME -> DATE\n"; + $converted++; + } catch (Exception $e) { + fwrite(STDERR, "[跳过] $table.$name:" . $e->getMessage() . "\n"); + } +} + +echo "完成:共转换 $converted / " . count($cols) . " 个时间字段。\n";